diff options
author | Arthur Schiwon <blizzz@owncloud.com> | 2015-08-21 19:35:13 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-09-16 07:23:26 +0200 |
commit | ffd4e0dc5a1977885b639b3ba1bb87a533e6a75a (patch) | |
tree | 297e35cc5fa7df4fbf03237ee08a0f96e1d070dc /core/js | |
parent | f9c232c4ce16b101fce233f1f20e0cafc7e4d1fa (diff) | |
download | nextcloud-server-ffd4e0dc5a1977885b639b3ba1bb87a533e6a75a.tar.gz nextcloud-server-ffd4e0dc5a1977885b639b3ba1bb87a533e6a75a.zip |
split off expirationView
Diffstat (limited to 'core/js')
-rw-r--r-- | core/js/sharedialogexpirationview.js | 93 | ||||
-rw-r--r-- | core/js/sharedialogview.js | 54 |
2 files changed, 108 insertions, 39 deletions
diff --git a/core/js/sharedialogexpirationview.js b/core/js/sharedialogexpirationview.js new file mode 100644 index 00000000000..e752c66bf35 --- /dev/null +++ b/core/js/sharedialogexpirationview.js @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2015 + * + * This file is licensed under the Affero General Public License version 3 + * or later. + * + * See the COPYING-README file. + * + */ + +(function() { + if (!OC.Share) { + OC.Share = {}; + } + + var TEMPLATE = + '<input type="checkbox" name="expirationCheckbox" id="expirationCheckbox" value="1" />' + + '<label for="expirationCheckbox">{{setExpirationLabel}}</label>' + + '<label for="expirationDate" class="hidden-visually">{{expirationLabel}}</label>' + + '<input id="expirationDate" type="text" placeholder="{{expirationDatePlaceholder}}" class="hidden" />' + + '<em id="defaultExpireMessage">{{defaultExpireMessage}}</em>' + ; + + /** + * @class OCA.Share.ShareDialogExpirationView + * @member {OC.Share.ShareItemModel} model + * @member {jQuery} $el + * @memberof OCA.Sharing + * @classdesc + * + * Represents the expiration part in the GUI of the share dialogue + * + */ + var ShareDialogExpirationView = OC.Backbone.View.extend({ + /** @type {string} **/ + id: 'shareDialogLinkShare', + + /** @type {OC.Share.ShareConfigModel} **/ + configModel: undefined, + + /** @type {Function} **/ + _template: undefined, + + /** @type {boolean} **/ + showLink: true, + + initialize: function(options) { + if(!_.isUndefined(options.configModel)) { + this.configModel = options.configModel; + } else { + console.warn('missing OC.Share.ShareConfigModel'); + } + }, + + render: function() { + var defaultExpireMessage = ''; + if( (this.model.isFolder() || this.model.isFile()) + && this.configModel.isDefaultExpireDateEnforced()) { + defaultExpireMessage = t( + 'core', + 'The public link will expire no later than {days} days after it is created', + {'days': this.configModel.getDefaultExpireDate()} + ); + } + + var expirationTemplate = this.template(); + this.$el.empty(); + this.$el.append(expirationTemplate({ + setExpirationLabel: t('core', 'Set expiration date'), + expirationLabel: t('core', 'Expiration'), + expirationDatePlaceholder: t('core', 'Expiration date'), + defaultExpireMessage: defaultExpireMessage + })); + + return this; + }, + + /** + * @returns {Function} from Handlebars + * @private + */ + template: function () { + if (!this._template) { + this._template = Handlebars.compile(TEMPLATE); + } + return this._template; + } + + }); + + OC.Share.ShareDialogExpirationView = ShareDialogExpirationView; + +})(); diff --git a/core/js/sharedialogview.js b/core/js/sharedialogview.js index cc9590815a7..cdf5214fa65 100644 --- a/core/js/sharedialogview.js +++ b/core/js/sharedialogview.js @@ -14,7 +14,7 @@ } var TEMPLATE_BASE = - '<div class="resharerInfo"></div>' + + '<div class="resharerInfoView"></div>' + '<label for="shareWith" class="hidden-visually">{{shareLabel}}</label>' + '<div class="oneline">' + ' <input id="shareWith" type="text" placeholder="{{sharePlaceholder}}" />' + @@ -25,11 +25,11 @@ '<ul id="shareWithList">' + '</ul>' + '{{#if shareAllowed}}' + - '<div class="linkShare"></div>' + + '<div class="linkShareView"></div>' + '{{else}}' + '{{{noSharing}}}' + '{{/if}}' + - '{{{expiration}}}' + '<div class="expirationView"></div>' ; var TEMPLATE_REMOTE_SHARE_INFO = @@ -40,16 +40,6 @@ '<input id="shareWith" type="text" placeholder="{{placeholder}}" disabled="disabled"/>' ; - var TEMPLATE_EXPIRATION = - '<div id="expiration">' + - ' <input type="checkbox" name="expirationCheckbox" id="expirationCheckbox" value="1" />' + - ' <label for="expirationCheckbox">{{setExpirationLabel}}</label>' + - ' <label for="expirationDate" class="hidden-visually">{{expirationLabel}}</label>' + - ' <input id="expirationDate" type="text" placeholder="{{expirationDatePlaceholder}}" class="hidden" />' + - ' <em id="defaultExpireMessage">{{defaultExpireMessage}}</em>' + - '</div>' - ; - /** * @class OCA.Share.ShareDialogView * @member {OC.Share.ShareItemModel} model @@ -79,6 +69,9 @@ /** @type {object} **/ linkShareView: undefined, + /** @type {object} **/ + expirationView: undefined, + initialize: function(options) { var view = this; this.model.on('change', function() { @@ -108,6 +101,10 @@ ? new OC.Share.ShareDialogLinkShareView(subViewOptions) : options.linkShareView; + this.expirationView = _.isUndefined(options.expirationView) + ? new OC.Share.ShareDialogExpirationView(subViewOptions) + : options.expirationView; + }, render: function() { @@ -119,14 +116,16 @@ remoteShareInfo: this._renderRemoteShareInfoPart(), shareAllowed: this.model.hasSharePermission(), noSharing: this._renderNoSharing(), - expiration: this._renderExpirationPart() })); - this.resharerInfoView.$el = this.$el.find('.resharerInfo'); + this.resharerInfoView.$el = this.$el.find('.resharerInfoView'); this.resharerInfoView.render(); + this.expirationView.$el = this.$el.find('.expirationView'); + this.expirationView.render(); + if(this.model.hasSharePermission()) { - this.linkShareView.$el = this.$el.find('.linkShare'); + this.linkShareView.$el = this.$el.find('.linkShareView'); this.linkShareView.render(); } @@ -181,29 +180,6 @@ return noSharing; }, - _renderExpirationPart: function() { - var expirationTemplate = this._getTemplate('expiration', TEMPLATE_EXPIRATION); - - var defaultExpireMessage = ''; - if(( this.model.isFolder() || this.model.isFile()) - && this.configModel.isDefaultExpireDateEnforced()) { - defaultExpireMessage = t( - 'core', - 'The public link will expire no later than {days} days after it is created', - {'days': this.configModel.getDefaultExpireDate()} - ); - } - - var expiration = expirationTemplate({ - setExpirationLabel: t('core', 'Set expiration date'), - expirationLabel: t('core', 'Expiration'), - expirationDatePlaceholder: t('core', 'Expiration date'), - defaultExpireMessage: defaultExpireMessage - }); - - return expiration; - }, - /** * * @param {string} key - an identifier for the template |