Browse Source

now you even can share

tags/v8.2beta1
Arthur Schiwon 8 years ago
parent
commit
258a2e2696

+ 1
- 0
apps/files_sharing/appinfo/app.php View File

@@ -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');
}
);


+ 0
- 1
apps/files_sharing/css/sharetabview.css View File

@@ -5,7 +5,6 @@
.shareTabView .oneline { white-space: nowrap; }

.shareTabView .shareWithLoading {
display: inline-block !important;
padding-left: 10px;
position: relative;
right: 30px;

+ 1
- 7
core/js/shareconfigmodel.js View File

@@ -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}
*/

+ 5
- 3
core/js/sharedialogshareelistview.js View File

@@ -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;
},

+ 46
- 0
core/js/sharedialogview.js View File

@@ -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();


+ 41
- 0
core/js/shareitemmodel.js View File

@@ -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…
Cancel
Save