From e0dc73527a478188cfa28b456b64798639aa73c9 Mon Sep 17 00:00:00 2001 From: Jarka Kadlecova Date: Fri, 24 Mar 2017 11:11:36 +0100 Subject: Project deploy keys json end point --- app/controllers/projects/deploy_keys_controller.rb | 9 +++++++-- app/presenters/projects/settings/deploy_keys_presenter.rb | 11 +++++++++++ app/serializers/deploy_key_entity.rb | 12 ++++++++++++ app/serializers/deploy_key_serializer.rb | 3 +++ app/serializers/project_entity.rb | 12 ++++++++++++ 5 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 app/serializers/deploy_key_entity.rb create mode 100644 app/serializers/deploy_key_serializer.rb create mode 100644 app/serializers/project_entity.rb (limited to 'app') diff --git a/app/controllers/projects/deploy_keys_controller.rb b/app/controllers/projects/deploy_keys_controller.rb index d0c44e297e3..a47e15a192b 100644 --- a/app/controllers/projects/deploy_keys_controller.rb +++ b/app/controllers/projects/deploy_keys_controller.rb @@ -8,7 +8,12 @@ class Projects::DeployKeysController < Projects::ApplicationController layout "project_settings" def index - redirect_to_repository_settings(@project) + respond_to do |format| + format.html { redirect_to_repository_settings(@project) } + format.json do + render json: Projects::Settings::DeployKeysPresenter.new(@project, current_user: current_user).as_json + end + end end def new @@ -19,7 +24,7 @@ class Projects::DeployKeysController < Projects::ApplicationController @key = DeployKey.new(deploy_key_params.merge(user: current_user)) unless @key.valid? && @project.deploy_keys << @key - flash[:alert] = @key.errors.full_messages.join(', ').html_safe + flash[:alert] = @key.errors.full_messages.join(', ').html_safe end redirect_to_repository_settings(@project) end diff --git a/app/presenters/projects/settings/deploy_keys_presenter.rb b/app/presenters/projects/settings/deploy_keys_presenter.rb index 86ac513b3c0..070b0c35e36 100644 --- a/app/presenters/projects/settings/deploy_keys_presenter.rb +++ b/app/presenters/projects/settings/deploy_keys_presenter.rb @@ -48,6 +48,17 @@ module Projects available_public_keys.any? end + def as_json + serializer = DeployKeySerializer.new + opts = { user: current_user } + + { + enabled_keys: serializer.represent(enabled_keys, opts), + available_project_keys: serializer.represent(available_project_keys, opts), + public_keys: serializer.represent(available_public_keys, opts) + } + end + def to_partial_path 'projects/deploy_keys/index' end diff --git a/app/serializers/deploy_key_entity.rb b/app/serializers/deploy_key_entity.rb new file mode 100644 index 00000000000..cdedc2c7bd0 --- /dev/null +++ b/app/serializers/deploy_key_entity.rb @@ -0,0 +1,12 @@ +class DeployKeyEntity < Grape::Entity + expose :id + expose :user_id + expose :title + expose :fingerprint + expose :can_push + expose :created_at + expose :updated_at + expose :projects, using: ProjectEntity do |deploy_key| + deploy_key.projects.select { |project| options[:user].can?(:read_project, project) } + end +end diff --git a/app/serializers/deploy_key_serializer.rb b/app/serializers/deploy_key_serializer.rb new file mode 100644 index 00000000000..8f849eb88b7 --- /dev/null +++ b/app/serializers/deploy_key_serializer.rb @@ -0,0 +1,3 @@ +class DeployKeySerializer < BaseSerializer + entity DeployKeyEntity +end diff --git a/app/serializers/project_entity.rb b/app/serializers/project_entity.rb new file mode 100644 index 00000000000..6f8061f7530 --- /dev/null +++ b/app/serializers/project_entity.rb @@ -0,0 +1,12 @@ +class ProjectEntity < Grape::Entity + expose :id + expose :name + + expose :full_path do |project| + project.full_path + end + + expose :full_name do |project| + project.full_name + end +end -- cgit v1.2.3 From 703df2881bb137a79284baafe2cc12ff32ab9ff5 Mon Sep 17 00:00:00 2001 From: Jarka Kadlecova Date: Fri, 7 Apr 2017 13:34:39 +0200 Subject: expose additional values in deploy key entity --- app/serializers/deploy_key_entity.rb | 2 ++ 1 file changed, 2 insertions(+) (limited to 'app') diff --git a/app/serializers/deploy_key_entity.rb b/app/serializers/deploy_key_entity.rb index cdedc2c7bd0..d75a83d0fa5 100644 --- a/app/serializers/deploy_key_entity.rb +++ b/app/serializers/deploy_key_entity.rb @@ -4,6 +4,8 @@ class DeployKeyEntity < Grape::Entity expose :title expose :fingerprint expose :can_push + expose :destroyed_when_orphaned?, as: :destroyed_when_orphaned + expose :almost_orphaned?, as: :almost_orphaned expose :created_at expose :updated_at expose :projects, using: ProjectEntity do |deploy_key| -- cgit v1.2.3 From a922d90414fea5b05152717a72f169c0d9ef7d09 Mon Sep 17 00:00:00 2001 From: Jacob Schatz Date: Thu, 27 Apr 2017 22:47:50 -0400 Subject: Add Vue with async deploy keys --- app/assets/javascripts/dispatcher.js | 3 + .../javascripts/settings/settings_repository.js | 92 ++++++++++++++++++++++ app/views/projects/deploy_keys/_index.html.haml | 33 +++----- 3 files changed, 107 insertions(+), 21 deletions(-) create mode 100644 app/assets/javascripts/settings/settings_repository.js (limited to 'app') diff --git a/app/assets/javascripts/dispatcher.js b/app/assets/javascripts/dispatcher.js index b20673cd03c..2300daf0727 100644 --- a/app/assets/javascripts/dispatcher.js +++ b/app/assets/javascripts/dispatcher.js @@ -48,6 +48,7 @@ import BlobForkSuggestion from './blob/blob_fork_suggestion'; import UserCallout from './user_callout'; import { ProtectedTagCreate, ProtectedTagEditList } from './protected_tags'; import ShortcutsWiki from './shortcuts_wiki'; +import SettingsDeployKeys from './settings/settings_repository'; const ShortcutsBlob = require('./shortcuts_blob'); @@ -343,6 +344,8 @@ const ShortcutsBlob = require('./shortcuts_blob'); // Initialize Protected Tag Settings new ProtectedTagCreate(); new ProtectedTagEditList(); + // Initialize deploy key ajax call + new SettingsDeployKeys(); break; case 'projects:ci_cd:show': new gl.ProjectVariables(); diff --git a/app/assets/javascripts/settings/settings_repository.js b/app/assets/javascripts/settings/settings_repository.js new file mode 100644 index 00000000000..4c6f769f533 --- /dev/null +++ b/app/assets/javascripts/settings/settings_repository.js @@ -0,0 +1,92 @@ +/* eslint-disable no-new */ +import Vue from 'vue'; +import VueResource from 'vue-resource'; + +Vue.use(VueResource); + +export default class SettingsDeployKeys { + constructor() { + this.initVue(); + } + + deployKeyRowTemplate() { + return ` +
  • + +
    + + {{deployKey.title}} + +
    + {{deployKey.fingerprint}} +
    +
    + +
    + + created {{deployKey.created_at}} + +
    + Enable + + Remove + Disable +
    +
  • ` + } + + deployKeyRowComponent() { + const self = this; + return { + props: { + deployKey: Object, + enabled: Boolean + }, + + computed: { + disableURL() { + return self.disableEndpoint.replace(':id', this.deployKey.id); + }, + + enableURL() { + return self.enableEndpoint.replace(':id', this.deployKey.id); + } + }, + + template: this.deployKeyRowTemplate() + } + } + + initVue() { + const self = this; + const el = document.getElementById('js-deploy-keys'); + const endpoint = el.dataset.endpoint; + this.jsonEndpoint = `${endpoint}.json`; + this.disableEndpoint = `${endpoint}/:id/disable`; + this.enableEndpoint = `${endpoint}/:id/enable`; + new Vue({ + el: el, + components: { + deployKeyRow: self.deployKeyRowComponent() + }, + data () { + return { + enabledKeys: [], + availableKeys: [] + } + }, + created () { + this.$http.get(self.jsonEndpoint) + .then((res) => { + const keys = JSON.parse(res.body); + this.enabledKeys = keys.enabled_keys; + this.availableKeys = keys.available_project_keys; + }); + } + }) + } +} \ No newline at end of file diff --git a/app/views/projects/deploy_keys/_index.html.haml b/app/views/projects/deploy_keys/_index.html.haml index 4cfbd9add00..b35cd356aa5 100644 --- a/app/views/projects/deploy_keys/_index.html.haml +++ b/app/views/projects/deploy_keys/_index.html.haml @@ -10,25 +10,16 @@ = render @deploy_keys.form_partial_path .col-lg-9.col-lg-offset-3 %hr - .col-lg-9.col-lg-offset-3.append-bottom-default.deploy-keys + #js-deploy-keys.col-lg-9.col-lg-offset-3.append-bottom-default{data:{endpoint: namespace_project_deploy_keys_path}} %h5.prepend-top-0 - Enabled deploy keys for this project (#{@deploy_keys.enabled_keys_size}) - - if @deploy_keys.any_keys_enabled? - %ul.well-list - = render partial: 'projects/deploy_keys/deploy_key', collection: @deploy_keys.enabled_keys, as: :deploy_key - - else - .settings-message.text-center - No deploy keys found. Create one with the form above. - %h5.prepend-top-default - Deploy keys from projects you have access to (#{@deploy_keys.available_project_keys_size}) - - if @deploy_keys.any_available_project_keys_enabled? - %ul.well-list - = render partial: 'projects/deploy_keys/deploy_key', collection: @deploy_keys.available_project_keys, as: :deploy_key - - else - .settings-message.text-center - No deploy keys from your projects could be found. Create one with the form above or add existing one below. - - if @deploy_keys.any_available_public_keys_enabled? - %h5.prepend-top-default - Public deploy keys available to any project (#{@deploy_keys.available_public_keys_size}) - %ul.well-list - = render partial: 'projects/deploy_keys/deploy_key', collection: @deploy_keys.available_public_keys, as: :deploy_key + Enabled deploy keys for this project ({{enabledKeys.length}}) + %ul.well-list{"v-if" => "enabledKeys.length"} + %deploy-key-row{"v-for" => "deployKey in enabledKeys", ":deploy-key" => "deployKey", ":enabled" =>"true"} + .settings-message.text-center{"v-else" => true} + No deploy keys found. Create one with the form above. + %h5.prepend-top-0 + Deploy keys from projects you have access to ({{availableKeys.length}}) + %ul.well-list{"v-if" => "availableKeys.length"} + %deploy-key-row{"v-for" => "deployKey in availableKeys", ":deploy-key" => "deployKey", ":enabled" =>"false"} + .settings-message.text-center{"v-else" => true} + No deploy keys found. Create one with the form above. -- cgit v1.2.3 From b5b33200ccef223e089edf6ad8cdd0ecc3e737da Mon Sep 17 00:00:00 2001 From: Jacob Schatz Date: Thu, 27 Apr 2017 23:05:22 -0400 Subject: Add timeago --- app/assets/javascripts/settings/settings_repository.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/assets/javascripts/settings/settings_repository.js b/app/assets/javascripts/settings/settings_repository.js index 4c6f769f533..9d6a60baa3a 100644 --- a/app/assets/javascripts/settings/settings_repository.js +++ b/app/assets/javascripts/settings/settings_repository.js @@ -28,12 +28,12 @@ export default class SettingsDeployKeys {
    - created {{deployKey.created_at}} + created {{timeagoDate}}
    Enable - Remove + Remove Disable
    ` @@ -48,6 +48,10 @@ export default class SettingsDeployKeys { }, computed: { + timeagoDate() { + return gl.utils.getTimeago().format(this.deployKey.createdAt, 'gl_en'); + }, + disableURL() { return self.disableEndpoint.replace(':id', this.deployKey.id); }, -- cgit v1.2.3 From e11a702afceee7f5edeb8c93a4192fa05209b091 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 28 Apr 2017 17:06:19 +0100 Subject: Re-wrote to match our docs - still not 100% sure but closer than it was --- .../deploy_keys/components/action_btn.vue | 53 +++++++++++ .../javascripts/deploy_keys/components/app.vue | 105 +++++++++++++++++++++ .../javascripts/deploy_keys/components/key.vue | 85 +++++++++++++++++ .../javascripts/deploy_keys/components/keys.vue | 52 ++++++++++ app/assets/javascripts/deploy_keys/eventhub.js | 3 + app/assets/javascripts/deploy_keys/index.js | 21 +++++ .../javascripts/deploy_keys/service/index.js | 34 +++++++ app/assets/javascripts/deploy_keys/store/index.js | 13 +++ app/assets/javascripts/dispatcher.js | 3 - .../javascripts/settings/settings_repository.js | 96 ------------------- app/controllers/projects/deploy_keys_controller.rb | 11 ++- app/serializers/project_entity.rb | 4 +- app/views/projects/deploy_keys/_index.html.haml | 14 +-- .../projects/settings/repository/show.html.haml | 4 + 14 files changed, 383 insertions(+), 115 deletions(-) create mode 100644 app/assets/javascripts/deploy_keys/components/action_btn.vue create mode 100644 app/assets/javascripts/deploy_keys/components/app.vue create mode 100644 app/assets/javascripts/deploy_keys/components/key.vue create mode 100644 app/assets/javascripts/deploy_keys/components/keys.vue create mode 100644 app/assets/javascripts/deploy_keys/eventhub.js create mode 100644 app/assets/javascripts/deploy_keys/index.js create mode 100644 app/assets/javascripts/deploy_keys/service/index.js create mode 100644 app/assets/javascripts/deploy_keys/store/index.js delete mode 100644 app/assets/javascripts/settings/settings_repository.js (limited to 'app') diff --git a/app/assets/javascripts/deploy_keys/components/action_btn.vue b/app/assets/javascripts/deploy_keys/components/action_btn.vue new file mode 100644 index 00000000000..7da2915a45e --- /dev/null +++ b/app/assets/javascripts/deploy_keys/components/action_btn.vue @@ -0,0 +1,53 @@ + + + diff --git a/app/assets/javascripts/deploy_keys/components/app.vue b/app/assets/javascripts/deploy_keys/components/app.vue new file mode 100644 index 00000000000..ff54a0f241a --- /dev/null +++ b/app/assets/javascripts/deploy_keys/components/app.vue @@ -0,0 +1,105 @@ + + + diff --git a/app/assets/javascripts/deploy_keys/components/key.vue b/app/assets/javascripts/deploy_keys/components/key.vue new file mode 100644 index 00000000000..af842a3bb39 --- /dev/null +++ b/app/assets/javascripts/deploy_keys/components/key.vue @@ -0,0 +1,85 @@ + + + diff --git a/app/assets/javascripts/deploy_keys/components/keys.vue b/app/assets/javascripts/deploy_keys/components/keys.vue new file mode 100644 index 00000000000..2470831eddf --- /dev/null +++ b/app/assets/javascripts/deploy_keys/components/keys.vue @@ -0,0 +1,52 @@ + + + diff --git a/app/assets/javascripts/deploy_keys/eventhub.js b/app/assets/javascripts/deploy_keys/eventhub.js new file mode 100644 index 00000000000..0948c2e5352 --- /dev/null +++ b/app/assets/javascripts/deploy_keys/eventhub.js @@ -0,0 +1,3 @@ +import Vue from 'vue'; + +export default new Vue(); diff --git a/app/assets/javascripts/deploy_keys/index.js b/app/assets/javascripts/deploy_keys/index.js new file mode 100644 index 00000000000..a5f232f950a --- /dev/null +++ b/app/assets/javascripts/deploy_keys/index.js @@ -0,0 +1,21 @@ +import Vue from 'vue'; +import deployKeysApp from './components/app.vue'; + +document.addEventListener('DOMContentLoaded', () => new Vue({ + el: document.getElementById('js-deploy-keys'), + data() { + return { + endpoint: this.$options.el.dataset.endpoint, + }; + }, + components: { + deployKeysApp, + }, + render(createElement) { + return createElement('deploy-keys-app', { + props: { + endpoint: this.endpoint, + }, + }); + }, +})); diff --git a/app/assets/javascripts/deploy_keys/service/index.js b/app/assets/javascripts/deploy_keys/service/index.js new file mode 100644 index 00000000000..fe6dbaa9498 --- /dev/null +++ b/app/assets/javascripts/deploy_keys/service/index.js @@ -0,0 +1,34 @@ +import Vue from 'vue'; +import VueResource from 'vue-resource'; + +Vue.use(VueResource); + +export default class DeployKeysService { + constructor(endpoint) { + this.endpoint = endpoint; + + this.resource = Vue.resource(`${this.endpoint}{/id}`, {}, { + enable: { + method: 'PUT', + url: `${this.endpoint}{/id}/enable`, + }, + disable: { + method: 'PUT', + url: `${this.endpoint}{/id}/disable`, + }, + }); + } + + getKeys() { + return this.resource.get() + .then(response => response.json()); + } + + enableKey(id) { + return this.resource.enable({ id }, {}); + } + + disableKey(id) { + return this.resource.disable({ id }, {}); + } +} diff --git a/app/assets/javascripts/deploy_keys/store/index.js b/app/assets/javascripts/deploy_keys/store/index.js new file mode 100644 index 00000000000..7177d9bed7f --- /dev/null +++ b/app/assets/javascripts/deploy_keys/store/index.js @@ -0,0 +1,13 @@ +export default class DeployKeysStore { + constructor() { + this.keys = {}; + } + + findEnabledKey(id) { + return this.keys.enabled_keys.find(key => key.id === id); + } + + removeKeyForType(deployKey, type) { + this.keys[type] = this.keys[type].filter(key => key.id !== deployKey.id); + } +} diff --git a/app/assets/javascripts/dispatcher.js b/app/assets/javascripts/dispatcher.js index f7402792c59..d3d75c4bf4a 100644 --- a/app/assets/javascripts/dispatcher.js +++ b/app/assets/javascripts/dispatcher.js @@ -48,7 +48,6 @@ import BlobForkSuggestion from './blob/blob_fork_suggestion'; import UserCallout from './user_callout'; import { ProtectedTagCreate, ProtectedTagEditList } from './protected_tags'; import ShortcutsWiki from './shortcuts_wiki'; -import SettingsDeployKeys from './settings/settings_repository'; import BlobViewer from './blob/viewer/index'; const ShortcutsBlob = require('./shortcuts_blob'); @@ -346,8 +345,6 @@ const ShortcutsBlob = require('./shortcuts_blob'); // Initialize Protected Tag Settings new ProtectedTagCreate(); new ProtectedTagEditList(); - // Initialize deploy key ajax call - new SettingsDeployKeys(); break; case 'projects:ci_cd:show': new gl.ProjectVariables(); diff --git a/app/assets/javascripts/settings/settings_repository.js b/app/assets/javascripts/settings/settings_repository.js deleted file mode 100644 index 9d6a60baa3a..00000000000 --- a/app/assets/javascripts/settings/settings_repository.js +++ /dev/null @@ -1,96 +0,0 @@ -/* eslint-disable no-new */ -import Vue from 'vue'; -import VueResource from 'vue-resource'; - -Vue.use(VueResource); - -export default class SettingsDeployKeys { - constructor() { - this.initVue(); - } - - deployKeyRowTemplate() { - return ` -
  • - -
    - - {{deployKey.title}} - -
    - {{deployKey.fingerprint}} -
    -
    - -
    - - created {{timeagoDate}} - -
    - Enable - - Remove - Disable -
    -
  • ` - } - - deployKeyRowComponent() { - const self = this; - return { - props: { - deployKey: Object, - enabled: Boolean - }, - - computed: { - timeagoDate() { - return gl.utils.getTimeago().format(this.deployKey.createdAt, 'gl_en'); - }, - - disableURL() { - return self.disableEndpoint.replace(':id', this.deployKey.id); - }, - - enableURL() { - return self.enableEndpoint.replace(':id', this.deployKey.id); - } - }, - - template: this.deployKeyRowTemplate() - } - } - - initVue() { - const self = this; - const el = document.getElementById('js-deploy-keys'); - const endpoint = el.dataset.endpoint; - this.jsonEndpoint = `${endpoint}.json`; - this.disableEndpoint = `${endpoint}/:id/disable`; - this.enableEndpoint = `${endpoint}/:id/enable`; - new Vue({ - el: el, - components: { - deployKeyRow: self.deployKeyRowComponent() - }, - data () { - return { - enabledKeys: [], - availableKeys: [] - } - }, - created () { - this.$http.get(self.jsonEndpoint) - .then((res) => { - const keys = JSON.parse(res.body); - this.enabledKeys = keys.enabled_keys; - this.availableKeys = keys.available_project_keys; - }); - } - }) - } -} \ No newline at end of file diff --git a/app/controllers/projects/deploy_keys_controller.rb b/app/controllers/projects/deploy_keys_controller.rb index a47e15a192b..f27089b8590 100644 --- a/app/controllers/projects/deploy_keys_controller.rb +++ b/app/controllers/projects/deploy_keys_controller.rb @@ -32,7 +32,10 @@ class Projects::DeployKeysController < Projects::ApplicationController def enable Projects::EnableDeployKeyService.new(@project, current_user, params).execute - redirect_to_repository_settings(@project) + respond_to do |format| + format.html { redirect_to_repository_settings(@project) } + format.json { head :ok } + end end def disable @@ -40,7 +43,11 @@ class Projects::DeployKeysController < Projects::ApplicationController return render_404 unless deploy_key_project deploy_key_project.destroy! - redirect_to_repository_settings(@project) + + respond_to do |format| + format.html { redirect_to_repository_settings(@project) } + format.json { head :ok } + end end protected diff --git a/app/serializers/project_entity.rb b/app/serializers/project_entity.rb index 6f8061f7530..a471a7e6a88 100644 --- a/app/serializers/project_entity.rb +++ b/app/serializers/project_entity.rb @@ -1,9 +1,11 @@ class ProjectEntity < Grape::Entity + include RequestAwareEntity + expose :id expose :name expose :full_path do |project| - project.full_path + namespace_project_path(project.namespace, project) end expose :full_name do |project| diff --git a/app/views/projects/deploy_keys/_index.html.haml b/app/views/projects/deploy_keys/_index.html.haml index b35cd356aa5..74756b58439 100644 --- a/app/views/projects/deploy_keys/_index.html.haml +++ b/app/views/projects/deploy_keys/_index.html.haml @@ -10,16 +10,4 @@ = render @deploy_keys.form_partial_path .col-lg-9.col-lg-offset-3 %hr - #js-deploy-keys.col-lg-9.col-lg-offset-3.append-bottom-default{data:{endpoint: namespace_project_deploy_keys_path}} - %h5.prepend-top-0 - Enabled deploy keys for this project ({{enabledKeys.length}}) - %ul.well-list{"v-if" => "enabledKeys.length"} - %deploy-key-row{"v-for" => "deployKey in enabledKeys", ":deploy-key" => "deployKey", ":enabled" =>"true"} - .settings-message.text-center{"v-else" => true} - No deploy keys found. Create one with the form above. - %h5.prepend-top-0 - Deploy keys from projects you have access to ({{availableKeys.length}}) - %ul.well-list{"v-if" => "availableKeys.length"} - %deploy-key-row{"v-for" => "deployKey in availableKeys", ":deploy-key" => "deployKey", ":enabled" =>"false"} - .settings-message.text-center{"v-else" => true} - No deploy keys found. Create one with the form above. + #js-deploy-keys{ data: { endpoint: namespace_project_deploy_keys_path } } diff --git a/app/views/projects/settings/repository/show.html.haml b/app/views/projects/settings/repository/show.html.haml index 5402320cb66..4e59033c4a3 100644 --- a/app/views/projects/settings/repository/show.html.haml +++ b/app/views/projects/settings/repository/show.html.haml @@ -1,6 +1,10 @@ - page_title "Repository" = render "projects/settings/head" +- content_for :page_specific_javascripts do + = page_specific_javascript_bundle_tag('common_vue') + = page_specific_javascript_bundle_tag('deploy_keys') + = render @deploy_keys = render "projects/protected_branches/index" = render "projects/protected_tags/index" -- cgit v1.2.3 From fde9732a27065467f4fab0ba0a6bd1cfed9b092b Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 28 Apr 2017 17:11:46 +0100 Subject: Fixed public keys always rendering even when empty --- app/assets/javascripts/deploy_keys/components/app.vue | 1 + 1 file changed, 1 insertion(+) (limited to 'app') diff --git a/app/assets/javascripts/deploy_keys/components/app.vue b/app/assets/javascripts/deploy_keys/components/app.vue index ff54a0f241a..e0443e2e0df 100644 --- a/app/assets/javascripts/deploy_keys/components/app.vue +++ b/app/assets/javascripts/deploy_keys/components/app.vue @@ -97,6 +97,7 @@ :keys="keys.available_project_keys" :store="store" /> -- cgit v1.2.3 From 0b7824d433ec5029da17114389f425f816b7be74 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 28 Apr 2017 17:22:57 +0100 Subject: Updated some Vue specific JS --- .../deploy_keys/components/action_btn.vue | 3 +- .../javascripts/deploy_keys/components/app.vue | 10 ++--- .../javascripts/deploy_keys/components/key.vue | 4 +- .../javascripts/deploy_keys/components/keys.vue | 52 ---------------------- .../deploy_keys/components/keys_panel.vue | 52 ++++++++++++++++++++++ app/assets/javascripts/deploy_keys/store/index.js | 4 -- 6 files changed, 61 insertions(+), 64 deletions(-) delete mode 100644 app/assets/javascripts/deploy_keys/components/keys.vue create mode 100644 app/assets/javascripts/deploy_keys/components/keys_panel.vue (limited to 'app') diff --git a/app/assets/javascripts/deploy_keys/components/action_btn.vue b/app/assets/javascripts/deploy_keys/components/action_btn.vue index 7da2915a45e..3ff3a9d977e 100644 --- a/app/assets/javascripts/deploy_keys/components/action_btn.vue +++ b/app/assets/javascripts/deploy_keys/components/action_btn.vue @@ -47,7 +47,8 @@ diff --git a/app/assets/javascripts/deploy_keys/components/app.vue b/app/assets/javascripts/deploy_keys/components/app.vue index e0443e2e0df..ee2f85bde53 100644 --- a/app/assets/javascripts/deploy_keys/components/app.vue +++ b/app/assets/javascripts/deploy_keys/components/app.vue @@ -3,15 +3,13 @@ import eventHub from '../eventhub'; import DeployKeysService from '../service'; import DeployKeysStore from '../store'; - import keysPanel from './keys.vue'; + import keysPanel from './keys_panel.vue'; export default { data() { - const store = new DeployKeysStore(); - return { isLoading: false, - store, + store: new DeployKeysStore(), }; }, props: { @@ -84,7 +82,9 @@ class="text-center" v-if="isLoading && !hasKeys"> + class="fa fa-spinner fa-spin fa-2x" + aria-hidden="true" + aria-label="Loading deploy keys">
    diff --git a/app/assets/javascripts/deploy_keys/components/key.vue b/app/assets/javascripts/deploy_keys/components/key.vue index af842a3bb39..1b47cceba78 100644 --- a/app/assets/javascripts/deploy_keys/components/key.vue +++ b/app/assets/javascripts/deploy_keys/components/key.vue @@ -56,9 +56,9 @@
    diff --git a/app/assets/javascripts/deploy_keys/components/keys.vue b/app/assets/javascripts/deploy_keys/components/keys.vue deleted file mode 100644 index 2470831eddf..00000000000 --- a/app/assets/javascripts/deploy_keys/components/keys.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/app/assets/javascripts/deploy_keys/components/keys_panel.vue b/app/assets/javascripts/deploy_keys/components/keys_panel.vue new file mode 100644 index 00000000000..2470831eddf --- /dev/null +++ b/app/assets/javascripts/deploy_keys/components/keys_panel.vue @@ -0,0 +1,52 @@ + + + diff --git a/app/assets/javascripts/deploy_keys/store/index.js b/app/assets/javascripts/deploy_keys/store/index.js index 7177d9bed7f..6210361af26 100644 --- a/app/assets/javascripts/deploy_keys/store/index.js +++ b/app/assets/javascripts/deploy_keys/store/index.js @@ -6,8 +6,4 @@ export default class DeployKeysStore { findEnabledKey(id) { return this.keys.enabled_keys.find(key => key.id === id); } - - removeKeyForType(deployKey, type) { - this.keys[type] = this.keys[type].filter(key => key.id !== deployKey.id); - } } -- cgit v1.2.3 From 357ab10da34102499a32ad569d9b58c8d5b97d17 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 28 Apr 2017 20:59:20 +0100 Subject: Fixed some spinach & rspec tests --- app/assets/javascripts/deploy_keys/components/app.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/assets/javascripts/deploy_keys/components/app.vue b/app/assets/javascripts/deploy_keys/components/app.vue index ee2f85bde53..2ba5001cf56 100644 --- a/app/assets/javascripts/deploy_keys/components/app.vue +++ b/app/assets/javascripts/deploy_keys/components/app.vue @@ -77,7 +77,7 @@