From 593f6281dc0843868699629461285e549512656a Mon Sep 17 00:00:00 2001 From: Christoph Wurst Date: Tue, 30 May 2017 09:54:10 +0200 Subject: [PATCH] Combine sessions and app passwords view into one single view Signed-off-by: Christoph Wurst --- settings/css/settings.css | 44 ++++++++----------------- settings/js/authtoken_view.js | 57 +++++++++++---------------------- settings/personal.php | 1 - 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 f2eb6282f6..4c81ac88a8 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 9931be2ae1..fd967b7fed 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 86ac4f753f..c0fd243ba6 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -226,7 +226,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 3e30d77539..12f291bd80 100644 --- a/settings/templates/personal.php +++ b/settings/templates/personal.php @@ -348,22 +348,6 @@ if($_['passwordChangeSupported']) { - - -
-

t('App passwords'));?>

-

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.'));?>

- - - - - - - - - - -
t('Name'));?>t('Last activity'));?>