diff options
author | Morris Jobke <hey@morrisjobke.de> | 2017-06-05 23:04:06 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-05 23:04:06 -0500 |
commit | c092b33466d16b6e2119973315b07546c9deb035 (patch) | |
tree | 640167a66b67bc836466b5e46901296905030f78 | |
parent | bb884c341f7c5f0e8568283431555ee18aa0fe38 (diff) | |
parent | 593f6281dc0843868699629461285e549512656a (diff) | |
download | nextcloud-server-c092b33466d16b6e2119973315b07546c9deb035.tar.gz nextcloud-server-c092b33466d16b6e2119973315b07546c9deb035.zip |
Merge pull request #5166 from nextcloud/feature/merge-sessions-app-passwords-list
Combine sessions and app passwords view into one single view
-rw-r--r-- | settings/css/settings.css | 44 | ||||
-rw-r--r-- | settings/js/authtoken_view.js | 57 | ||||
-rw-r--r-- | settings/personal.php | 1 | ||||
-rw-r--r-- | settings/templates/personal.php | 16 |
4 files changed, 33 insertions, 85 deletions
diff --git a/settings/css/settings.css b/settings/css/settings.css index f2eb6282f69..4c81ac88a89 100644 --- a/settings/css/settings.css +++ b/settings/css/settings.css @@ -300,35 +300,29 @@ table.nostyle td { padding: 0.2em 0; } -#sessions table, -#apppasswords table { +#sessions table { width: 100%; min-height: 50px; padding-top: 5px; max-width: 580px; } -#sessions table th, -#apppasswords table th { +#sessions table th{ opacity: .5; } #sessions table th, -#sessions table td, -#apppasswords table th, -#apppasswords table td { +#sessions table td { padding: 10px 10px 10px 0; } -#sessions .token-list td.more, -#apppasswords .token-list td.more { +#sessions .token-list td.more { overflow: visible; position: relative; width: 16px; } -#sessions .token-list td, -#apppasswords .token-list td { +#sessions .token-list td { border-top: 1px solid #DDD; text-overflow: ellipsis; max-width: 200px; @@ -338,37 +332,30 @@ table.nostyle td { position: relative; } -#sessions tr > *:nth-child(2), -#apppasswords tr > *:nth-child(2) { +#sessions tr > *:nth-child(2) { text-align: right; } -#sessions .token-list td > a.icon, -#apppasswords .token-list td > a.icon { +#sessions .token-list td > a.icon { opacity: 0; transition: opacity 0.5s; } -#sessions .token-list a.icon, -#apppasswords .token-list a.icon { +#sessions .token-list a.icon { margin-top: 4px; display: block; } #sessions .token-list tr:hover td > a.icon, -#apppasswords .token-list tr:hover td > a.icon, -#sessions .token-list tr.active td > a.icon, -#apppasswords .token-list tr.active td > a.icon { +#sessions .token-list tr.active td > a.icon { opacity: 0.6; } -#sessions .token-list td div.configure, -#apppasswords .token-list td div.configure { +#sessions .token-list td div.configure { display: none; } -#sessions .token-list tr.active div.configure, -#apppasswords .token-list tr.active div.configure { +#sessions .token-list tr.active div.configure { display: block; position: absolute; top: 45px; @@ -376,20 +363,17 @@ table.nostyle td { padding: 10px; } -#sessions .token-list div.configure:after, -#apppasswords .token-list div.configure:after { +#sessions .token-list div.configure:after { right: 13px; } -#sessions .token-list tr.active div.configure > *, -#apppasswords .token-list tr.active div.configure > * { +#sessions .token-list tr.active div.configure > * { margin-top: 5px; margin-bottom: 5px; display: inline-block; } -#sessions .token-list tr.active a.icon-delete, -#apppasswords .token-list tr.active a.icon-delete { +#sessions .token-list tr.active a.icon-delete { background-position: left; padding-left: 20px; } diff --git a/settings/js/authtoken_view.js b/settings/js/authtoken_view.js index 9931be2ae1f..fd967b7fedb 100644 --- a/settings/js/authtoken_view.js +++ b/settings/js/authtoken_view.js @@ -48,15 +48,6 @@ var SubView = OC.Backbone.View.extend({ collection: null, - /** - * token type - * - 0: browser - * - 1: device - * - * @see OC\Authentication\Token\IToken - */ - type: 0, - _template: undefined, template: function (data) { @@ -68,7 +59,6 @@ }, initialize: function (options) { - this.type = options.type; this.collection = options.collection; this.on(this.collection, 'change', this.render); @@ -79,7 +69,7 @@ var list = this.$('.token-list'); var tokens = this.collection.filter(function (token) { - return token.get('type') === _this.type; + return true; }); list.html(''); @@ -183,7 +173,7 @@ var AuthTokenView = OC.Backbone.View.extend({ collection: null, - _views: [], + _view: [], _form: undefined, @@ -206,26 +196,21 @@ initialize: function (options) { this.collection = options.collection; - var tokenTypes = [0, 1]; - var _this = this; - _.each(tokenTypes, function (type) { - var el = type === 0 ? '#sessions' : '#apppasswords'; - _this._views.push(new SubView({ - el: el, - type: type, - collection: _this.collection - })); - - var $el = $(el); - $('body').on('click', _.bind(_this._hideConfigureToken, _this)); - $el.on('click', '.popovermenu', function(event) { - event.stopPropagation(); - }); - $el.on('click', 'a.icon-delete', _.bind(_this._onDeleteToken, _this)); - $el.on('click', '.icon-more', _.bind(_this._onConfigureToken, _this)); - $el.on('change', 'input.filesystem', _.bind(_this._onSetTokenScope, _this)); + var el = '#sessions'; + this._view = new SubView({ + el: el, + collection: this.collection }); + var $el = $(el); + $('body').on('click', _.bind(this._hideConfigureToken, this)); + $el.on('click', '.popovermenu', function(event) { + event.stopPropagation(); + }); + $el.on('click', 'a.icon-delete', _.bind(this._onDeleteToken, this)); + $el.on('click', '.icon-more', _.bind(this._onConfigureToken, this)); + $el.on('change', 'input.filesystem', _.bind(this._onSetTokenScope, this)); + this._form = $('#app-password-form'); this._tokenName = $('#app-password-name'); this._addAppPasswordBtn = $('#add-app-password'); @@ -233,7 +218,7 @@ this._appPasswordName = $('#app-password-name'); this._appPasswordName.on('keypress', function(event) { if (event.which === 13) { - _this._addAppPassword(); + this._addAppPassword(); } }); @@ -287,18 +272,14 @@ }, render: function () { - _.each(this._views, function (view) { - view.render(); - view.toggleLoading(false); - }); + this._view.render(); + this._view.toggleLoading(false); }, reload: function () { var _this = this; - _.each(this._views, function (view) { - view.toggleLoading(true); - }); + this._view.toggleLoading(true); var loadingTokens = this.collection.fetch(); diff --git a/settings/personal.php b/settings/personal.php index d2b4801e686..5a6ff762088 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -232,7 +232,6 @@ $tmpl->assign('groups', $groups2); $formsAndMore = []; $formsAndMore[]= ['anchor' => 'personal-settings', 'section-name' => $l->t('Personal info')]; $formsAndMore[]= ['anchor' => 'sessions', 'section-name' => $l->t('Sessions')]; -$formsAndMore[]= ['anchor' => 'apppasswords', 'section-name' => $l->t('App passwords')]; $formsAndMore[]= ['anchor' => 'clientsbox', 'section-name' => $l->t('Sync clients')]; $forms=OC_App::getForms('personal'); diff --git a/settings/templates/personal.php b/settings/templates/personal.php index 3e30d775395..12f291bd807 100644 --- a/settings/templates/personal.php +++ b/settings/templates/personal.php @@ -348,22 +348,6 @@ if($_['passwordChangeSupported']) { <tbody class="token-list"> </tbody> </table> -</div> - -<div id="apppasswords" class="section"> - <h2><?php p($l->t('App passwords'));?></h2> - <p class="settings-hint"><?php p($l->t('Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too.'));?></p> - <table class="icon-loading"> - <thead class="hidden-when-empty"> - <tr> - <th><?php p($l->t('Name'));?></th> - <th><?php p($l->t('Last activity'));?></th> - <th></th> - </tr> - </thead> - <tbody class="token-list"> - </tbody> - </table> <div id="app-password-form"> <input id="app-password-name" type="text" placeholder="<?php p($l->t('App name')); ?>"> <button id="add-app-password" class="button"><?php p($l->t('Create new app password')); ?></button> |