sharee list view: better handle collections
This commit is contained in:
parent
5db1db38ef
commit
44ecdde10d
2 changed files with 37 additions and 8 deletions
|
@ -78,6 +78,9 @@
|
|||
/** @type {boolean} **/
|
||||
showLink: true,
|
||||
|
||||
/** @type {object} **/
|
||||
_collections: {},
|
||||
|
||||
initialize: function(options) {
|
||||
if(!_.isUndefined(options.configModel)) {
|
||||
this.configModel = options.configModel;
|
||||
|
@ -91,6 +94,23 @@
|
|||
});
|
||||
},
|
||||
|
||||
processCollectionShare: function(shareIndex) {
|
||||
var type = this.model.getCollectionType(shareIndex);
|
||||
var id = this.model.getCollectionPath(shareIndex);
|
||||
if(type !== 'file' && type !== 'folder') {
|
||||
id = this.model.getCollectionSource(shareIndex);
|
||||
}
|
||||
var displayName = this.model.getShareWithDisplayName(shareIndex);
|
||||
if(!_.isUndefined(this._collections[id])) {
|
||||
this._collections[id].text = this._collections[id].text + ", " + displayName;
|
||||
} else {
|
||||
this._collections[id] = {};
|
||||
this._collections[id].text = t('core', 'Shared in {item} with {user}', {'item': id, user: displayName});
|
||||
this._collections[id].id = id;
|
||||
this._collections[id].isCollection = true;
|
||||
}
|
||||
},
|
||||
|
||||
getCollectionObject: function(shareIndex) {
|
||||
var type = this.model.getCollectionType(shareIndex);
|
||||
var id = this.model.getCollectionPath(shareIndex);
|
||||
|
@ -119,7 +139,6 @@
|
|||
shareWithDisplayName = shareWithDisplayName + " (" + t('core', 'remote') + ')';
|
||||
}
|
||||
|
||||
|
||||
return {
|
||||
hasSharePermission: this.model.hasSharePermission(shareIndex),
|
||||
hasEditPermission: this.model.hasEditPermission(shareIndex),
|
||||
|
@ -160,21 +179,34 @@
|
|||
deletePermission: OC.PERMISSION_DELETE
|
||||
};
|
||||
|
||||
this._collections = {};
|
||||
|
||||
// TODO: sharess must have following attributes
|
||||
// isRemoteShare
|
||||
// isMailSent
|
||||
|
||||
if(!this.model.hasShares()) {
|
||||
return [];
|
||||
}
|
||||
|
||||
var shares = this.model.get('shares');
|
||||
var list = [];
|
||||
for(var index in this.model.get('shares')) {
|
||||
for(var index = 0; index < shares.length; index++) {
|
||||
|
||||
// #### FIXME: LEGACY ####
|
||||
// this does not belong to a view
|
||||
var shareType = this.model.getShareType(index);
|
||||
if (!OC.Share.currentShares[shareType]) {
|
||||
OC.Share.currentShares[shareType] = [];
|
||||
}
|
||||
OC.Share.currentShares[shareType].push(this.model.getShareWith(index));
|
||||
// #### /FIXME: LEGACY ####
|
||||
|
||||
if(this.model.isCollection(index)) {
|
||||
list.unshift(this.getCollectionObject(index));
|
||||
this.processCollectionShare(index);
|
||||
} else {
|
||||
list.push(_.extend(this.getShareeObject(index), universal))
|
||||
}
|
||||
list = _.union(_.values(this._collections), list);
|
||||
}
|
||||
|
||||
return list;
|
||||
|
@ -182,7 +214,6 @@
|
|||
|
||||
render: function() {
|
||||
var shareeListTemplate = this.template();
|
||||
var list = this.getShareeList();
|
||||
this.$el.html(shareeListTemplate({
|
||||
sharees: this.getShareeList()
|
||||
}));
|
||||
|
|
|
@ -357,8 +357,6 @@
|
|||
return {};
|
||||
}
|
||||
|
||||
console.log(data.shares);
|
||||
|
||||
var permissions = this.get('possiblePermissions');
|
||||
if(!_.isUndefined(data.reshare) && !_.isUndefined(data.reshare.permissions)) {
|
||||
permissions = permissions & data.reshare.permissions;
|
||||
|
@ -376,7 +374,7 @@
|
|||
|
||||
return {
|
||||
reshare: data.reshare,
|
||||
shares: $.map(data.shares, function(value) { return [value]; }),
|
||||
shares: _.toArray(data.shares),
|
||||
permissions: permissions,
|
||||
allowPublicUploadStatus: allowPublicUploadStatus
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue