Applications tab on profile settings

Closes #13855
This commit is contained in:
Phil Hughes 2016-02-29 14:47:21 +00:00
parent f8c4dc9723
commit 33ba32e6cc
6 changed files with 119 additions and 86 deletions

View file

@ -175,3 +175,17 @@
color: $profile-settings-link-color; color: $profile-settings-link-color;
} }
} }
.profile-settings-message {
line-height: 32px;
color: #9E8E60;
background-color: #FBF2D9;
border: 1px solid #F0E2BB;
border-radius: 3px;
}
.oauth-applications {
form {
display: inline-block;
}
}

View file

@ -11,6 +11,10 @@ class Oauth::ApplicationsController < Doorkeeper::ApplicationsController
head :forbidden and return head :forbidden and return
end end
def new
redirect_to applications_profile_url
end
def create def create
@application = Doorkeeper::Application.new(application_params) @application = Doorkeeper::Application.new(application_params)
@ -20,7 +24,7 @@ class Oauth::ApplicationsController < Doorkeeper::ApplicationsController
flash[:notice] = I18n.t(:notice, scope: [:doorkeeper, :flash, :applications, :create]) flash[:notice] = I18n.t(:notice, scope: [:doorkeeper, :flash, :applications, :create])
redirect_to oauth_application_url(@application) redirect_to oauth_application_url(@application)
else else
render :new redirect_to applications_profile_url, flash: {application: @application}
end end
end end

View file

@ -13,6 +13,7 @@ class ProfilesController < Profiles::ApplicationController
@authorized_tokens = current_user.oauth_authorized_tokens @authorized_tokens = current_user.oauth_authorized_tokens
@authorized_anonymous_tokens = @authorized_tokens.reject(&:application) @authorized_anonymous_tokens = @authorized_tokens.reject(&:application)
@authorized_apps = @authorized_tokens.map(&:application).uniq - [nil] @authorized_apps = @authorized_tokens.map(&:application).uniq - [nil]
@application = flash[:application] || Doorkeeper::Application.new
end end
def update def update

View file

@ -1,4 +1,10 @@
- submit_btn_css ||= 'btn btn-link btn-remove btn-sm' - submit_btn_css ||= 'btn btn-link btn-remove btn-sm'
= form_tag oauth_application_path(application) do = form_tag oauth_application_path(application) do
%input{:name => "_method", :type => "hidden", :value => "delete"}/ %input{:name => "_method", :type => "hidden", :value => "delete"}/
= submit_tag 'Destroy', onclick: "return confirm('Are you sure?')", class: submit_btn_css - if defined? small
= button_tag type: "submit", class: "btn btn-transparent", data: { confirm: "Are you sure?" } do
%span.sr-only
Destroy
= icon('trash')
- else
= submit_tag 'Destroy', data: { confirm: "Are you sure?" }, class: submit_btn_css

View file

@ -1,4 +1,4 @@
= form_for application, url: doorkeeper_submit_path(application), html: {class: 'form-horizontal', role: 'form'} do |f| = form_for application, url: doorkeeper_submit_path(application), html: {role: 'form'} do |f|
- if application.errors.any? - if application.errors.any?
.alert.alert-danger .alert.alert-danger
%ul %ul
@ -6,15 +6,11 @@
%li= msg %li= msg
.form-group .form-group
= f.label :name, class: 'control-label' = f.label :name, class: 'label-light'
.col-sm-10
= f.text_field :name, class: 'form-control', required: true = f.text_field :name, class: 'form-control', required: true
.form-group .form-group
= f.label :redirect_uri, class: 'control-label' = f.label :redirect_uri, class: 'label-light'
.col-sm-10
= f.text_area :redirect_uri, class: 'form-control', required: true = f.text_area :redirect_uri, class: 'form-control', required: true
%span.help-block %span.help-block
@ -25,6 +21,5 @@
%code= Doorkeeper.configuration.native_redirect_uri %code= Doorkeeper.configuration.native_redirect_uri
for local tests for local tests
.form-actions .prepend-top-default
= f.submit 'Submit', class: "btn btn-create" = f.submit 'Add application', class: "btn btn-create"
= link_to "Cancel", applications_profile_path, class: "btn btn-cancel"

View file

@ -1,29 +1,35 @@
- page_title "Applications" - page_title "Applications"
- header_title page_title, applications_profile_path - header_title page_title, applications_profile_path
.alert.alert-help.prepend-top-default .row.prepend-top-default
.col-lg-3.profile-settings-sidebar
%h4.prepend-top-0
= page_title
%p
- if user_oauth_applications? - if user_oauth_applications?
Manage applications that can use GitLab as an OAuth provider, Manage applications that can use GitLab as an OAuth provider,
and applications that you've authorized to use your account. and applications that you've authorized to use your account.
- else - else
Manage applications that you've authorized to use your account. Manage applications that you've authorized to use your account.
.col-lg-9
- if user_oauth_applications?
%h5
Add new application
= render 'doorkeeper/applications/form', application: @application
%hr
- if user_oauth_applications? - if user_oauth_applications?
.oauth-applications .oauth-applications
%h3 %h5
Your applications Your applications (#{@applications.size})
.pull-right
= link_to 'New Application', new_oauth_application_path, class: 'btn btn-success'
- if @applications.any? - if @applications.any?
.table-holder .table-responsive
%table.table.table-striped %table.table.table-striped
%thead %thead
%tr %tr
%th Name %th Name
%th Callback URL %th Callback URL
%th Clients %th Clients
%th %th{width: 105}
%th
%tbody %tbody
- @applications.each do |application| - @applications.each do |application|
%tr{:id => "application_#{application.id}"} %tr{:id => "application_#{application.id}"}
@ -32,16 +38,22 @@
- application.redirect_uri.split.each do |uri| - application.redirect_uri.split.each do |uri|
%div= uri %div= uri
%td= application.access_tokens.count %td= application.access_tokens.count
%td= link_to 'Edit', edit_oauth_application_path(application), class: 'btn btn-link btn-sm' %td
%td= render 'doorkeeper/applications/delete_form', application: application = link_to edit_oauth_application_path(application), class: "btn btn-transparent append-right-5" do
%span.sr-only
Edit
= icon('pencil')
= render 'doorkeeper/applications/delete_form', application: application, small: true
- else
.profile-settings-message.text-center
You don't have any applications
.oauth-authorized-applications.prepend-top-20 .oauth-authorized-applications.prepend-top-20
- if user_oauth_applications? - if user_oauth_applications?
%h3 %h5
Authorized applications Authorized applications (#{@authorized_tokens.size})
- if @authorized_tokens.any? - if @authorized_tokens.any?
.table-holder .table-responsive
%table.table.table-striped %table.table.table-striped
%thead %thead
%tr %tr
@ -67,4 +79,5 @@
%td= token.scopes %td= token.scopes
%td= render 'doorkeeper/authorized_applications/delete_form', token: token %td= render 'doorkeeper/authorized_applications/delete_form', token: token
- else - else
%p.light You don't have any authorized applications .profile-settings-message.text-center
You don't have any authorized applications