now you even can share
This commit is contained in:
parent
858a2a4e6c
commit
258a2e2696
6 changed files with 94 additions and 11 deletions
|
@ -61,6 +61,7 @@ $eventDispatcher->addListener(
|
|||
\OCP\Util::addScript('files_sharing', 'share');
|
||||
\OCP\Util::addScript('files_sharing', 'sharetabview');
|
||||
\OCP\Util::addScript('files_sharing', 'external');
|
||||
\OCP\Util::addStyle('files_sharing', 'sharetabview');
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
.shareTabView .oneline { white-space: nowrap; }
|
||||
|
||||
.shareTabView .shareWithLoading {
|
||||
display: inline-block !important;
|
||||
padding-left: 10px;
|
||||
position: relative;
|
||||
right: 30px;
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
enforcePasswordForPublicLink: oc_appconfig.core.enforcePasswordForPublicLink,
|
||||
isDefaultExpireDateEnforced: oc_appconfig.core.defaultExpireDateEnforced === true,
|
||||
defaultExpireDate: oc_appconfig.core.defaultExpireDate,
|
||||
isResharingAllowed: oc_appconfig.core.resharingAllowed
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -51,13 +52,6 @@
|
|||
return oc_appconfig.core.remoteShareAllowed;
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {boolean}
|
||||
*/
|
||||
isResharingAllowed: function() {
|
||||
return oc_appconfig.core.resharingAllowed
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {boolean}
|
||||
*/
|
||||
|
|
|
@ -161,7 +161,7 @@
|
|||
deletePermissionLabel: t('core', 'delete'),
|
||||
crudsLabel: t('core', 'access control'),
|
||||
triangleSImage: OC.imagePath('core', 'actions/triangle-s'),
|
||||
isResharingAllowed: this.configModel.isResharingAllowed(),
|
||||
isResharingAllowed: this.configModel.get('isResharingAllowed'),
|
||||
sharePermissionPossible: this.model.sharePermissionPossible(),
|
||||
editPermissionPossible: this.model.editPermissionPossible(),
|
||||
createPermissionPossible: this.model.createPermissionPossible(),
|
||||
|
@ -185,10 +185,12 @@
|
|||
if(this.model.isCollection(index)) {
|
||||
this.processCollectionShare(index);
|
||||
} else {
|
||||
list.push(_.extend(universal, this.getShareeObject(index)))
|
||||
// first empty {} is necessary, otherwise we get in trouble
|
||||
// with references
|
||||
list.push(_.extend({}, universal, this.getShareeObject(index)));
|
||||
}
|
||||
list = _.union(_.values(this._collections), list);
|
||||
}
|
||||
list = _.union(_.values(this._collections), list);
|
||||
|
||||
return list;
|
||||
},
|
||||
|
|
|
@ -100,6 +100,36 @@
|
|||
? new OC.Share[className](subViewOptions)
|
||||
: options[name];
|
||||
}
|
||||
|
||||
_.bindAll(this, 'autocompleteHandler');
|
||||
},
|
||||
|
||||
autocompleteHandler: function (search, response) {
|
||||
var view = this;
|
||||
var $loading = this.$el.find('.shareWithLoading');
|
||||
$loading.removeClass('hidden');
|
||||
$loading.addClass('inlineblock');
|
||||
$.get(OC.filePath('core', 'ajax', 'share.php'), {
|
||||
fetch: 'getShareWith',
|
||||
search: search.term.trim(),
|
||||
limit: 200,
|
||||
itemShares: OC.Share.itemShares,
|
||||
itemType: view.model.get('itemType')
|
||||
}, function (result) {
|
||||
$loading.addClass('hidden');
|
||||
$loading.removeClass('inlineblock');
|
||||
if (result.status == 'success' && result.data.length > 0) {
|
||||
$("#shareWith").autocomplete("option", "autoFocus", true);
|
||||
response(result.data);
|
||||
} else {
|
||||
response();
|
||||
}
|
||||
}).fail(function () {
|
||||
$loading.addClass('hidden');
|
||||
$loading.removeClass('inlineblock');
|
||||
OC.Notification.show(t('core', 'An error occured. Please try again'));
|
||||
window.setTimeout(OC.Notification.hide, 5000);
|
||||
});
|
||||
},
|
||||
|
||||
render: function() {
|
||||
|
@ -111,6 +141,22 @@
|
|||
remoteShareInfo: this._renderRemoteShareInfoPart(),
|
||||
}));
|
||||
|
||||
var view = this;
|
||||
this.$el.find('#shareWith').autocomplete({
|
||||
minLength: 2,
|
||||
delay: 750,
|
||||
source: this.autocompleteHandler,
|
||||
select: function(e, s) {
|
||||
var expiration = '';
|
||||
if($('#expirationCheckbox').is(':checked') === true) {
|
||||
expiration = view.$el.find('#expirationDate').val()
|
||||
}
|
||||
view.model.addShare(e, s, {
|
||||
expiration: expiration
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
this.resharerInfoView.$el = this.$el.find('.resharerInfoView');
|
||||
this.resharerInfoView.render();
|
||||
|
||||
|
|
|
@ -79,6 +79,8 @@
|
|||
/** @type {OC.Files.FileInfo} **/
|
||||
this.fileInfoModel = options.fileInfoModel;
|
||||
}
|
||||
|
||||
_.bindAll(this, 'addShare');
|
||||
},
|
||||
|
||||
defaults: {
|
||||
|
@ -87,6 +89,45 @@
|
|||
linkShare: {}
|
||||
},
|
||||
|
||||
addShare: function(event, selected, options) {
|
||||
event.preventDefault();
|
||||
|
||||
//console.warn(selected);
|
||||
//return false;
|
||||
|
||||
var shareType = selected.item.value.shareType;
|
||||
var shareWith = selected.item.value.shareWith;
|
||||
var fileName = this.fileInfoModel.get('name');
|
||||
options = options || {};
|
||||
|
||||
// Default permissions are Edit (CRUD) and Share
|
||||
// Check if these permissions are possible
|
||||
var permissions = OC.PERMISSION_READ;
|
||||
if (shareType === OC.Share.SHARE_TYPE_REMOTE) {
|
||||
permissions = OC.PERMISSION_CREATE | OC.PERMISSION_UPDATE | OC.PERMISSION_READ;
|
||||
} else {
|
||||
if (this.updatePermissionPossible()) {
|
||||
permissions = permissions | OC.PERMISSION_UPDATE;
|
||||
}
|
||||
if (this.createPermissionPossible()) {
|
||||
permissions = permissions | OC.PERMISSION_CREATE;
|
||||
}
|
||||
if (this.deletePermissionPossible()) {
|
||||
permissions = permissions | OC.PERMISSION_DELETE;
|
||||
}
|
||||
if (this.configModel.get('isResharingAllowed') && (this.sharePermissionPossible())) {
|
||||
permissions = permissions | OC.PERMISSION_SHARE;
|
||||
}
|
||||
}
|
||||
|
||||
var model = this;
|
||||
OC.Share.share(this.get('itemType'), this.get('itemSource'), shareType, shareWith, permissions, fileName, options.expiration, function() {
|
||||
model.fetch()
|
||||
//FIXME: updateIcon belongs to view
|
||||
OC.Share.updateIcon(itemType, itemSource);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {boolean}
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue