summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2017-06-05 23:04:06 -0500
committerGitHub <noreply@github.com>2017-06-05 23:04:06 -0500
commitc092b33466d16b6e2119973315b07546c9deb035 (patch)
tree640167a66b67bc836466b5e46901296905030f78
parentbb884c341f7c5f0e8568283431555ee18aa0fe38 (diff)
parent593f6281dc0843868699629461285e549512656a (diff)
downloadnextcloud-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.css44
-rw-r--r--settings/js/authtoken_view.js57
-rw-r--r--settings/personal.php1
-rw-r--r--settings/templates/personal.php16
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>