split ShareDialogResharerInfoView from base view
This commit is contained in:
parent
1bd6942be7
commit
dcb084a617
|
@ -0,0 +1,117 @@
|
||||||
|
/*
|
||||||
|
* 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 =
|
||||||
|
'<span class="reshare">' +
|
||||||
|
' {{#if avatarEnabled}}' +
|
||||||
|
' <div class="avatar"></div>' +
|
||||||
|
' {{/if}}' +
|
||||||
|
' {{sharedByText}}' +
|
||||||
|
'</span><br/>'
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @class OCA.Share.ShareDialogView
|
||||||
|
* @member {OC.Share.ShareItemModel} model
|
||||||
|
* @member {jQuery} $el
|
||||||
|
* @memberof OCA.Sharing
|
||||||
|
* @classdesc
|
||||||
|
*
|
||||||
|
* Represents the GUI of the share dialogue
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
var ShareDialogResharerInfoView = OC.Backbone.View.extend({
|
||||||
|
/** @type {string} **/
|
||||||
|
id: 'shareDialogResharerInfo',
|
||||||
|
|
||||||
|
/** @type {string} **/
|
||||||
|
tagName: 'div',
|
||||||
|
|
||||||
|
/** @type {string} **/
|
||||||
|
className: 'reshare',
|
||||||
|
|
||||||
|
/** @type {OC.Share.ShareConfigModel} **/
|
||||||
|
configModel: undefined,
|
||||||
|
|
||||||
|
/** @type {Function} **/
|
||||||
|
_template: undefined,
|
||||||
|
|
||||||
|
initialize: function(options) {
|
||||||
|
var view = this;
|
||||||
|
|
||||||
|
//FIXME: specific to reshares stuff
|
||||||
|
this.model.on('change', function() {
|
||||||
|
view.render();
|
||||||
|
});
|
||||||
|
|
||||||
|
if(!_.isUndefined(options.configModel)) {
|
||||||
|
this.configModel = options.configModel;
|
||||||
|
} else {
|
||||||
|
console.warn('missing OC.Share.ShareConfigModel');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
render: function() {
|
||||||
|
if ( !this.model.hasReshare()
|
||||||
|
|| !this.model.getReshareOwner() !== OC.currentUser)
|
||||||
|
{
|
||||||
|
this.$el.html('');
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
var reshareTemplate = this.template();
|
||||||
|
var ownerDisplayName = this.model.getReshareOwnerDisplayname();
|
||||||
|
var sharedByText = '';
|
||||||
|
if (this.model.getReshareType() === OC.Share.SHARE_TYPE_GROUP) {
|
||||||
|
sharedByText = t(
|
||||||
|
'core',
|
||||||
|
'Shared with you and the group {group} by {owner}',
|
||||||
|
{
|
||||||
|
group: this.model.getReshareWith(),
|
||||||
|
owner: ownerDisplayName
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
sharedByText = t(
|
||||||
|
'core',
|
||||||
|
'Shared with you by {owner}',
|
||||||
|
{ owner: ownerDisplayName }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$el.html(reshareTemplate({
|
||||||
|
avatarEnabled: this.configModel.areAvatarsEnabled(),
|
||||||
|
sharedByText: sharedByText
|
||||||
|
}));
|
||||||
|
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @returns {Function} from Handlebars
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
template: function () {
|
||||||
|
if (!this._template) {
|
||||||
|
this._template = Handlebars.compile(TEMPLATE);
|
||||||
|
}
|
||||||
|
return this._template;
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
OC.Share.ShareDialogResharerInfoView = ShareDialogResharerInfoView;
|
||||||
|
|
||||||
|
})();
|
|
@ -32,14 +32,6 @@
|
||||||
'{{{expiration}}}'
|
'{{{expiration}}}'
|
||||||
;
|
;
|
||||||
|
|
||||||
var TEMPLATE_RESHARER_INFO =
|
|
||||||
'<span class="reshare">' +
|
|
||||||
' {{#if avatarEnabled}}' +
|
|
||||||
' <div class="avatar"></div>' +
|
|
||||||
' {{/if}}' +
|
|
||||||
' {{sharedByText}}' +
|
|
||||||
'</span><br />';
|
|
||||||
|
|
||||||
var TEMPLATE_REMOTE_SHARE_INFO =
|
var TEMPLATE_REMOTE_SHARE_INFO =
|
||||||
'<a target="_blank" class="icon-info svg shareWithRemoteInfo hasTooltip" href="{{docLink}}" ' +
|
'<a target="_blank" class="icon-info svg shareWithRemoteInfo hasTooltip" href="{{docLink}}" ' +
|
||||||
'title="{{tooltip}}"></a>';
|
'title="{{tooltip}}"></a>';
|
||||||
|
@ -110,6 +102,9 @@
|
||||||
/** @type {OC.Share.ShareConfigModel} **/
|
/** @type {OC.Share.ShareConfigModel} **/
|
||||||
configModel: undefined,
|
configModel: undefined,
|
||||||
|
|
||||||
|
/** @type {object} **/
|
||||||
|
resharerInfoView: undefined,
|
||||||
|
|
||||||
initialize: function(options) {
|
initialize: function(options) {
|
||||||
var view = this;
|
var view = this;
|
||||||
this.model.on('change', function() {
|
this.model.on('change', function() {
|
||||||
|
@ -125,14 +120,26 @@
|
||||||
} else {
|
} else {
|
||||||
console.warn('missing OC.Share.ShareConfigModel');
|
console.warn('missing OC.Share.ShareConfigModel');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var subViewOptions = {
|
||||||
|
model: this.model,
|
||||||
|
configModel: this.configModel
|
||||||
|
};
|
||||||
|
|
||||||
|
this.resharerInfoView = _.isUndefined(options.resharerInfoView)
|
||||||
|
? new OC.Share.ShareDialogResharerInfoView(subViewOptions)
|
||||||
|
: options.resharerInfoView;
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
render: function() {
|
render: function() {
|
||||||
var baseTemplate = this._getTemplate('base', TEMPLATE_BASE);
|
var baseTemplate = this._getTemplate('base', TEMPLATE_BASE);
|
||||||
|
|
||||||
|
this.resharerInfoView.render();
|
||||||
|
|
||||||
this.$el.html(baseTemplate({
|
this.$el.html(baseTemplate({
|
||||||
shareLabel: t('core', 'Share'),
|
shareLabel: t('core', 'Share'),
|
||||||
resharerInfo: this._renderResharerInfo(),
|
resharerInfo: this.resharerInfoView.el.innerHTML,
|
||||||
sharePlaceholder: this._renderSharePlaceholderPart(),
|
sharePlaceholder: this._renderSharePlaceholderPart(),
|
||||||
remoteShareInfo: this._renderRemoteShareInfoPart(),
|
remoteShareInfo: this._renderRemoteShareInfoPart(),
|
||||||
linkShare: this._renderLinkSharePart(),
|
linkShare: this._renderLinkSharePart(),
|
||||||
|
@ -142,7 +149,9 @@
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this.$el.find('.hasTooltip').tooltip();
|
this.$el.find('.hasTooltip').tooltip();
|
||||||
this.$el.find('.avatar').avatar(this.model.getReshareOwner, 32);
|
if(this.configModel.areAvatarsEnabled()) {
|
||||||
|
this.$el.find('.avatar').avatar(this.model.getReshareOwner, 32);
|
||||||
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
@ -157,39 +166,6 @@
|
||||||
this._showLink = (typeof showLink === 'boolean') ? showLink : true;
|
this._showLink = (typeof showLink === 'boolean') ? showLink : true;
|
||||||
},
|
},
|
||||||
|
|
||||||
_renderResharerInfo: function() {
|
|
||||||
var resharerInfo = '';
|
|
||||||
if ( !this.model.hasReshare()
|
|
||||||
|| !this.model.getReshareOwner() !== OC.currentUser)
|
|
||||||
{
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
var reshareTemplate = this._getReshareTemplate();
|
|
||||||
var sharedByText = '';
|
|
||||||
if (this.model.getReshareType() === OC.Share.SHARE_TYPE_GROUP) {
|
|
||||||
sharedByText = t(
|
|
||||||
'core',
|
|
||||||
'Shared with you and the group {group} by {owner}',
|
|
||||||
{
|
|
||||||
group: this.model.getReshareWith(),
|
|
||||||
owner: this.model.getReshareOwnerDisplayname()
|
|
||||||
}
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
sharedByText = t(
|
|
||||||
'core',
|
|
||||||
'Shared with you by {owner}',
|
|
||||||
{ owner: this.model.getReshareOwnerDisplayname() }
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return reshareTemplate({
|
|
||||||
avatarEnabled: this.configModel.areAvatarsEnabled(),
|
|
||||||
sharedByText: sharedByText
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
_renderRemoteShareInfoPart: function() {
|
_renderRemoteShareInfoPart: function() {
|
||||||
var remoteShareInfo = '';
|
var remoteShareInfo = '';
|
||||||
if(this.configModel.isRemoteShareAllowed()) {
|
if(this.configModel.isRemoteShareAllowed()) {
|
||||||
|
|
|
@ -112,6 +112,7 @@
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
getReshareOwnerDisplayname: function() {
|
getReshareOwnerDisplayname: function() {
|
||||||
|
return 'foo';
|
||||||
return this.get('reshare').displayname_owner;
|
return this.get('reshare').displayname_owner;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -85,6 +85,7 @@ class Share extends Constants {
|
||||||
if(count(self::$backendTypes) === 1) {
|
if(count(self::$backendTypes) === 1) {
|
||||||
\OC_Util::addScript('core', 'shareconfigmodel');
|
\OC_Util::addScript('core', 'shareconfigmodel');
|
||||||
\OC_Util::addScript('core', 'shareitemmodel');
|
\OC_Util::addScript('core', 'shareitemmodel');
|
||||||
|
\OC_Util::addScript('core', 'sharedialogresharerinfoview');
|
||||||
\OC_Util::addScript('core', 'sharedialogview');
|
\OC_Util::addScript('core', 'sharedialogview');
|
||||||
\OC_Util::addScript('core', 'share');
|
\OC_Util::addScript('core', 'share');
|
||||||
\OC_Util::addStyle('core', 'share');
|
\OC_Util::addStyle('core', 'share');
|
||||||
|
|
Loading…
Reference in New Issue