Merge pull request #4681 from nextcloud/link_radio
Make read/write options in sharing view radiobuttons
This commit is contained in:
commit
7bb63d6a4d
|
@ -43,6 +43,9 @@
|
|||
font-weight: 400;
|
||||
white-space: nowrap;
|
||||
}
|
||||
input[type='radio'].radio + label {
|
||||
margin-left: -1px;
|
||||
}
|
||||
input[type='checkbox'] {
|
||||
margin: 0 3px 0 8px;
|
||||
vertical-align: middle;
|
||||
|
|
|
@ -35,20 +35,23 @@
|
|||
'{{{popoverMenu}}}' +
|
||||
'{{/if}}' +
|
||||
'</div>' +
|
||||
' {{#if publicUpload}}' +
|
||||
'<div id="allowPublicUploadWrapper">' +
|
||||
' <span class="icon-loading-small hidden"></span>' +
|
||||
' <input type="checkbox" value="1" name="allowPublicUpload" id="sharingDialogAllowPublicUpload-{{cid}}" class="checkbox publicUploadCheckbox" {{{publicUploadChecked}}} />' +
|
||||
'<label for="sharingDialogAllowPublicUpload-{{cid}}">{{publicUploadLabel}}</label>' +
|
||||
'</div>' +
|
||||
' {{#if hideFileList}}' +
|
||||
'<div id="hideFileListWrapper">' +
|
||||
' <span class="icon-loading-small hidden"></span>' +
|
||||
' <input type="checkbox" value="1" name="hideFileList" id="sharingDialogHideFileList-{{cid}}" class="checkbox hideFileListCheckbox" {{{hideFileListChecked}}} />' +
|
||||
'<label for="sharingDialogHideFileList-{{cid}}">{{hideFileListLabel}}</label>' +
|
||||
'</div>' +
|
||||
' {{/if}}' +
|
||||
' {{/if}}' +
|
||||
'{{#if publicUpload}}' +
|
||||
'<div>' +
|
||||
'<span class="icon-loading-small hidden"></span>' +
|
||||
'<input type="radio" name="publicUpload" value="{{publicUploadRValue}}" id="sharingDialogAllowPublicUpload-r-{{cid}}" class="radio publicUploadRadio" {{{publicUploadRChecked}}} />' +
|
||||
'<label for="sharingDialogAllowPublicUpload-r-{{cid}}">{{publicUploadRLabel}}</label>' +
|
||||
'</div>' +
|
||||
'<div>' +
|
||||
'<span class="icon-loading-small hidden"></span>' +
|
||||
'<input type="radio" name="publicUpload" value="{{publicUploadRWValue}}" id="sharingDialogAllowPublicUpload-rw-{{cid}}" class="radio publicUploadRadio" {{{publicUploadRWChecked}}} />' +
|
||||
'<label for="sharingDialogAllowPublicUpload-rw-{{cid}}">{{publicUploadRWLabel}}</label>' +
|
||||
'</div>' +
|
||||
'<div>' +
|
||||
'<span class="icon-loading-small hidden"></span>' +
|
||||
'<input type="radio" name="publicUpload" value="{{publicUploadWValue}}" id="sharingDialogAllowPublicUpload-w-{{cid}}" class="radio publicUploadRadio" {{{publicUploadWChecked}}} />' +
|
||||
'<label for="sharingDialogAllowPublicUpload-w-{{cid}}">{{publicUploadWLabel}}</label>' +
|
||||
'</div>' +
|
||||
'{{/if}}' +
|
||||
' {{#if publicEditing}}' +
|
||||
'<div id="allowPublicEditingWrapper">' +
|
||||
' <span class="icon-loading-small hidden"></span>' +
|
||||
|
@ -126,12 +129,11 @@
|
|||
'keyup input.linkPassText': 'onPasswordKeyUp',
|
||||
'click .linkCheckbox': 'onLinkCheckBoxChange',
|
||||
'click .linkText': 'onLinkTextClick',
|
||||
'change .publicUploadCheckbox': 'onAllowPublicUploadChange',
|
||||
'change .publicEditingCheckbox': 'onAllowPublicEditingChange',
|
||||
'change .hideFileListCheckbox': 'onHideFileListChange',
|
||||
'click .showPasswordCheckbox': 'onShowPasswordClick',
|
||||
'click .icon-more': 'onToggleMenu',
|
||||
'click .pop-up': 'onPopUpClick'
|
||||
'click .pop-up': 'onPopUpClick',
|
||||
'change .publicUploadRadio': 'onPublicUploadChange'
|
||||
},
|
||||
|
||||
initialize: function(options) {
|
||||
|
@ -170,9 +172,8 @@
|
|||
'onPasswordKeyUp',
|
||||
'onLinkTextClick',
|
||||
'onShowPasswordClick',
|
||||
'onHideFileListChange',
|
||||
'onAllowPublicUploadChange',
|
||||
'onAllowPublicEditingChange'
|
||||
'onAllowPublicEditingChange',
|
||||
'onPublicUploadChange'
|
||||
);
|
||||
|
||||
var clipboard = new Clipboard('.clipboardButton');
|
||||
|
@ -318,20 +319,6 @@
|
|||
});
|
||||
},
|
||||
|
||||
onAllowPublicUploadChange: function() {
|
||||
var $checkbox = this.$('.publicUploadCheckbox');
|
||||
$checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock');
|
||||
|
||||
var permissions = OC.PERMISSION_READ;
|
||||
if($checkbox.is(':checked')) {
|
||||
permissions = OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_READ | OC.PERMISSION_DELETE;
|
||||
}
|
||||
|
||||
this.model.saveLinkShare({
|
||||
permissions: permissions
|
||||
});
|
||||
},
|
||||
|
||||
onAllowPublicEditingChange: function() {
|
||||
var $checkbox = this.$('.publicEditingCheckbox');
|
||||
$checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock');
|
||||
|
@ -346,15 +333,9 @@
|
|||
});
|
||||
},
|
||||
|
||||
onHideFileListChange: function () {
|
||||
var $checkbox = this.$('.hideFileListCheckbox');
|
||||
$checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock');
|
||||
|
||||
var permissions = OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_READ | OC.PERMISSION_DELETE;
|
||||
if ($checkbox.is(':checked')) {
|
||||
permissions = OC.PERMISSION_CREATE;
|
||||
}
|
||||
|
||||
onPublicUploadChange: function(e) {
|
||||
var permissions = e.currentTarget.value;
|
||||
this.model.saveLinkShare({
|
||||
permissions: permissions
|
||||
});
|
||||
|
@ -382,9 +363,20 @@
|
|||
&& this.model.createPermissionPossible()
|
||||
&& this.configModel.isPublicUploadEnabled();
|
||||
|
||||
var publicUploadChecked = '';
|
||||
if(this.model.isPublicUploadAllowed()) {
|
||||
publicUploadChecked = 'checked="checked"';
|
||||
var publicUploadRWChecked = '';
|
||||
var publicUploadRChecked = '';
|
||||
var publicUploadWChecked = '';
|
||||
|
||||
switch (this.model.linkSharePermissions()) {
|
||||
case OC.PERMISSION_READ:
|
||||
publicUploadRChecked = 'checked';
|
||||
break;
|
||||
case OC.PERMISSION_CREATE:
|
||||
publicUploadWChecked = 'checked';
|
||||
break;
|
||||
case OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_READ | OC.PERMISSION_DELETE:
|
||||
publicUploadRWChecked = 'checked';
|
||||
break;
|
||||
}
|
||||
|
||||
var publicEditingChecked = '';
|
||||
|
@ -392,14 +384,6 @@
|
|||
publicEditingChecked = 'checked="checked"';
|
||||
}
|
||||
|
||||
|
||||
var hideFileList = publicUploadChecked;
|
||||
|
||||
var hideFileListChecked = '';
|
||||
if(this.model.isHideFileListSet()) {
|
||||
hideFileListChecked = 'checked="checked"';
|
||||
}
|
||||
|
||||
var isLinkShare = this.model.get('linkShare').isLinkShare;
|
||||
var isPasswordSet = !!this.model.get('linkShare').password;
|
||||
var showPasswordCheckBox = isLinkShare
|
||||
|
@ -437,7 +421,6 @@
|
|||
this.$el.html(linkShareTemplate({
|
||||
cid: this.cid,
|
||||
shareAllowed: true,
|
||||
hideFileList: hideFileList,
|
||||
isLinkShare: isLinkShare,
|
||||
shareLinkURL: this.model.get('linkShare').link,
|
||||
linkShareLabel: t('core', 'Share link'),
|
||||
|
@ -449,17 +432,22 @@
|
|||
isPasswordSet: isPasswordSet,
|
||||
showPasswordCheckBox: showPasswordCheckBox,
|
||||
publicUpload: publicUpload && isLinkShare,
|
||||
publicUploadChecked: publicUploadChecked,
|
||||
hideFileListChecked: hideFileListChecked,
|
||||
publicUploadLabel: t('core', 'Allow upload and editing'),
|
||||
publicEditing: publicEditable,
|
||||
publicEditingChecked: publicEditingChecked,
|
||||
publicEditingLabel: t('core', 'Allow editing'),
|
||||
hideFileListLabel: 'Secure drop (' + t('core', 'upload only') + ')',
|
||||
mailPrivatePlaceholder: t('core', 'Email link to person'),
|
||||
mailButtonText: t('core', 'Send'),
|
||||
singleAction: OC.Share.Social.Collection.size() == 0,
|
||||
popoverMenu: popover
|
||||
popoverMenu: popover,
|
||||
publicUploadRWLabel: t('core', 'Allow upload and editing'),
|
||||
publicUploadRLabel: t('core', 'Read only'),
|
||||
publicUploadWLabel: t('core', 'Secure drop (upload only)'),
|
||||
publicUploadRWValue: OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_READ | OC.PERMISSION_DELETE,
|
||||
publicUploadRValue: OC.PERMISSION_READ,
|
||||
publicUploadWValue: OC.PERMISSION_CREATE,
|
||||
publicUploadRWChecked: publicUploadRWChecked,
|
||||
publicUploadRChecked: publicUploadRChecked,
|
||||
publicUploadWChecked: publicUploadWChecked
|
||||
}));
|
||||
|
||||
if (OC.Share.Social.Collection.size() == 0) {
|
||||
|
|
|
@ -486,6 +486,13 @@
|
|||
return date2;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {int}
|
||||
*/
|
||||
getPermissions: function() {
|
||||
return this.get('permissions');
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {boolean}
|
||||
*/
|
||||
|
@ -568,6 +575,17 @@
|
|||
|| this.hasDeletePermission(shareIndex);
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {int}
|
||||
*/
|
||||
linkSharePermissions: function() {
|
||||
if (!this.hasLinkShare()) {
|
||||
return -1;
|
||||
} else {
|
||||
return this.get('linkShare').permissions;
|
||||
}
|
||||
},
|
||||
|
||||
_getUrl: function(base, params) {
|
||||
params = _.extend({format: 'json'}, params || {});
|
||||
return OC.linkToOCS('apps/files_sharing/api/v1', 2) + base + '?' + OC.buildQueryString(params);
|
||||
|
|
Loading…
Reference in New Issue