diff options
Diffstat (limited to 'core/js/share.js')
-rw-r--r-- | core/js/share.js | 121 |
1 files changed, 78 insertions, 43 deletions
diff --git a/core/js/share.js b/core/js/share.js index 8a00587b77a..6c26fed18be 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -35,21 +35,29 @@ OC.Share={ } } var shares = false; + var link = false; + var image = OC.imagePath('core', 'actions/share'); $.each(OC.Share.itemShares, function(index) { - if (OC.Share.itemShares[index].length > 0) { - shares = true; - return; + if (OC.Share.itemShares[index]) { + if (index == OC.Share.SHARE_TYPE_LINK) { + if (OC.Share.itemShares[index] == true) { + shares = true; + image = OC.imagePath('core', 'actions/public'); + link = true; + return; + } + } else if (OC.Share.itemShares[index].length > 0) { + shares = true; + image = OC.imagePath('core', 'actions/shared'); + } } }); + if (itemType != 'file' && itemType != 'folder') { + $('a.share[data-item="'+itemSource+'"]').css('background', 'url('+image+') no-repeat center'); + } if (shares) { - $('a.share[data-item="'+itemSource+'"]').css('background', 'url('+OC.imagePath('core', 'actions/shared')+') no-repeat center'); - if (typeof OC.Share.statuses[itemSource] === 'undefined') { - OC.Share.statuses[itemSource] = false; - } + OC.Share.statuses[itemSource] = link; } else { - if (itemType != 'file' && itemType != 'folder') { - $('a.share[data-item="'+itemSource+'"]').css('background', 'url('+OC.imagePath('core', 'actions/share')+') no-repeat center'); - } delete OC.Share.statuses[itemSource]; } }, @@ -71,7 +79,7 @@ OC.Share={ var item = itemSource; } if (typeof OC.Share.statuses[item] === 'undefined') { - // NOTE: Check doesn't always work and misses some shares, fix later + // NOTE: Check does not always work and misses some shares, fix later checkShares = true; } else { checkShares = true; @@ -92,7 +100,7 @@ OC.Share={ callback(result.data); } } else { - OC.dialogs.alert(result.data.message, 'Error while sharing'); + OC.dialogs.alert(result.data.message, t('core', 'Error while sharing')); } }); }, @@ -103,14 +111,14 @@ OC.Share={ callback(); } } else { - OC.dialogs.alert('Error', 'Error while unsharing'); + OC.dialogs.alert(t('core', 'Error'), t('core', 'Error while unsharing')); } }); }, setPermissions:function(itemType, itemSource, shareType, shareWith, permissions) { $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'setPermissions', itemType: itemType, itemSource: itemSource, shareType: shareType, shareWith: shareWith, permissions: permissions }, function(result) { if (!result || result.status !== 'success') { - OC.dialogs.alert('Error', 'Error while changing permissions'); + OC.dialogs.alert(t('core', 'Error'), t('core', 'Error while changing permissions')); } }); }, @@ -119,30 +127,30 @@ OC.Share={ var html = '<div id="dropdown" class="drop" data-item-type="'+itemType+'" data-item-source="'+itemSource+'">'; if (data.reshare) { if (data.reshare.share_type == OC.Share.SHARE_TYPE_GROUP) { - html += '<span class="reshare">Shared with you and the group '+data.reshare.share_with+' by '+data.reshare.uid_owner+'</span>'; + html += '<span class="reshare">'+t('core', 'Shared with you and the group')+' '+data.reshare.share_with+' '+t('core', 'by')+' '+data.reshare.uid_owner+'</span>'; } else { - html += '<span class="reshare">Shared with you by '+data.reshare.uid_owner+'</span>'; + html += '<span class="reshare">'+t('core', 'Shared with you by')+' '+data.reshare.uid_owner+'</span>'; } html += '<br />'; } if (possiblePermissions & OC.PERMISSION_SHARE) { - html += '<input id="shareWith" type="text" placeholder="Share with" />'; + html += '<input id="shareWith" type="text" placeholder="'+t('core', 'Share with')+'" />'; html += '<ul id="shareWithList">'; html += '</ul>'; if (link) { html += '<div id="link">'; - html += '<input type="checkbox" name="linkCheckbox" id="linkCheckbox" value="1" /><label for="linkCheckbox">Share with link</label>'; - html += '<a href="#" id="showPassword" style="display:none;"><img class="svg" alt="Password protect" src="'+OC.imagePath('core', 'actions/lock')+'"/></a>'; + html += '<input type="checkbox" name="linkCheckbox" id="linkCheckbox" value="1" /><label for="linkCheckbox">'+t('core', 'Share with link')+'</label>'; + html += '<a href="#" id="showPassword" style="display:none;"><img class="svg" alt="'+t('core', 'Password protect')+'" src="'+OC.imagePath('core', 'actions/lock')+'"/></a>'; html += '<br />'; html += '<input id="linkText" type="text" readonly="readonly" />'; html += '<div id="linkPass">'; - html += '<input id="linkPassText" type="password" placeholder="Password" />'; + html += '<input id="linkPassText" type="password" placeholder="'+t('core', 'Password')+'" />'; html += '</div>'; html += '</div>'; } html += '<div id="expiration">'; - html += '<input type="checkbox" name="expirationCheckbox" id="expirationCheckbox" value="1" /><label for="expirationCheckbox">Set expiration date</label>'; - html += '<input id="expirationDate" type="text" placeholder="Expiration date" style="display:none; width:90%;" />'; + html += '<input type="checkbox" name="expirationCheckbox" id="expirationCheckbox" value="1" /><label for="expirationCheckbox">'+t('core', 'Set expiration date')+'</label>'; + html += '<input id="expirationDate" type="text" placeholder="'+t('core', 'Expiration date')+'" style="display:none; width:90%;" />'; html += '</div>'; $(html).appendTo(appendTo); // Reset item shares @@ -158,6 +166,9 @@ OC.Share={ OC.Share.addShareWith(share.share_type, share.share_with, share.permissions, possiblePermissions, false); } } + if (share.expiration.length > 0) { + OC.Share.showExpirationDate(share.expiration); + } }); } $('#shareWith').autocomplete({minLength: 2, source: function(search, response) { @@ -171,9 +182,9 @@ OC.Share={ // Suggest sharing via email if valid email address // var pattern = new RegExp(/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i); // if (pattern.test(search.term)) { -// response([{label: 'Share via email: '+search.term, value: {shareType: OC.Share.SHARE_TYPE_EMAIL, shareWith: search.term}}]); +// response([{label: t('core', 'Share via email:')+' '+search.term, value: {shareType: OC.Share.SHARE_TYPE_EMAIL, shareWith: search.term}}]); // } else { - response(['No people found']); + response([t('core', 'No people found')]); // } } }); @@ -183,6 +194,7 @@ OC.Share={ event.preventDefault(); }, select: function(event, selected) { + event.stopPropagation(); var itemType = $('#dropdown').data('item-type'); var itemSource = $('#dropdown').data('item-source'); var shareType = selected.item.value.shareType; @@ -199,7 +211,7 @@ OC.Share={ } }); } else { - html += '<input id="shareWith" type="text" placeholder="Resharing is not allowed" style="width:90%;" disabled="disabled"/>'; + html += '<input id="shareWith" type="text" placeholder="'+t('core', 'Resharing is not allowed')+'" style="width:90%;" disabled="disabled"/>'; html += '</div>'; $(html).appendTo(appendTo); } @@ -235,7 +247,7 @@ OC.Share={ if (collectionList.length > 0) { $(collectionList).append(', '+shareWith); } else { - var html = '<li style="clear: both;" data-collection="'+item+'">Shared in '+item+' with '+shareWith+'</li>'; + var html = '<li style="clear: both;" data-collection="'+item+'">'+t('core', 'Shared in')+' '+item+' '+t('core', 'with')+' '+shareWith+'</li>'; $('#shareWithList').prepend(html); } } else { @@ -256,6 +268,7 @@ OC.Share={ shareChecked = 'checked="checked"'; } var html = '<li style="clear: both;" data-share-type="'+shareType+'" data-share-with="'+shareWith+'">'; + html += '<a href="#" class="unshare" style="display:none;"><img class="svg" alt="'+t('core', 'Unshare')+'" src="'+OC.imagePath('core', 'actions/delete')+'"/></a>'; html += shareWith; if (possiblePermissions & OC.PERMISSION_CREATE || possiblePermissions & OC.PERMISSION_UPDATE || possiblePermissions & OC.PERMISSION_DELETE) { if (editChecked == '') { @@ -263,29 +276,30 @@ OC.Share={ } else { html += '<label>'; } - html += '<input type="checkbox" name="edit" class="permissions" '+editChecked+' />can edit</label>'; + html += '<input type="checkbox" name="edit" class="permissions" '+editChecked+' />'+t('core', 'can edit')+'</label>'; } - html += '<a href="#" class="showCruds" style="display:none;"><img class="svg" alt="Unshare" src="'+OC.imagePath('core', 'actions/triangle-s')+'"/></a>'; - html += '<a href="#" class="unshare" style="display:none;"><img class="svg" alt="Unshare" src="'+OC.imagePath('core', 'actions/delete')+'"/></a>'; + html += '<a href="#" class="showCruds" style="display:none;"><img class="svg" alt="'+t('core', 'access control')+'" src="'+OC.imagePath('core', 'actions/triangle-s')+'"/></a>'; html += '<div class="cruds" style="display:none;">'; if (possiblePermissions & OC.PERMISSION_CREATE) { - html += '<label><input type="checkbox" name="create" class="permissions" '+createChecked+' data-permissions="'+OC.PERMISSION_CREATE+'" />create</label>'; + html += '<label><input type="checkbox" name="create" class="permissions" '+createChecked+' data-permissions="'+OC.PERMISSION_CREATE+'" />'+t('core', 'create')+'</label>'; } if (possiblePermissions & OC.PERMISSION_UPDATE) { - html += '<label><input type="checkbox" name="update" class="permissions" '+updateChecked+' data-permissions="'+OC.PERMISSION_UPDATE+'" />update</label>'; + html += '<label><input type="checkbox" name="update" class="permissions" '+updateChecked+' data-permissions="'+OC.PERMISSION_UPDATE+'" />'+t('core', 'update')+'</label>'; } if (possiblePermissions & OC.PERMISSION_DELETE) { - html += '<label><input type="checkbox" name="delete" class="permissions" '+deleteChecked+' data-permissions="'+OC.PERMISSION_DELETE+'" />delete</label>'; + html += '<label><input type="checkbox" name="delete" class="permissions" '+deleteChecked+' data-permissions="'+OC.PERMISSION_DELETE+'" />'+t('core', 'delete')+'</label>'; } if (possiblePermissions & OC.PERMISSION_SHARE) { - html += '<label><input type="checkbox" name="share" class="permissions" '+shareChecked+' data-permissions="'+OC.PERMISSION_SHARE+'" />share</label>'; + html += '<label><input type="checkbox" name="share" class="permissions" '+shareChecked+' data-permissions="'+OC.PERMISSION_SHARE+'" />'+t('core', 'share')+'</label>'; } html += '</div>'; html += '</li>'; $(html).appendTo('#shareWithList'); + $('#expiration').show(); } }, showLink:function(itemSource, password) { + OC.Share.itemShares[OC.Share.SHARE_TYPE_LINK] = true; $('#linkCheckbox').attr('checked', true); var filename = $('tr').filterAttr('data-id', String(itemSource)).data('file'); if ($('#dir').val() == '/') { @@ -300,8 +314,9 @@ OC.Share={ $('#showPassword').show(); if (password != null) { $('#linkPass').show('blind'); - $('#linkPassText').attr('placeholder', 'Password protected'); + $('#linkPassText').attr('placeholder', t('core', 'Password protected')); } + $('#expiration').show(); }, hideLink:function() { $('#linkText').hide('blind'); @@ -310,6 +325,15 @@ OC.Share={ }, dirname:function(path) { return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, ''); + }, + showExpirationDate:function(date) { + $('#expirationCheckbox').attr('checked', true); + $('#expirationDate').before('<br />'); + $('#expirationDate').val(date); + $('#expirationDate').show(); + $('#expirationDate').datepicker({ + dateFormat : 'dd-mm-yy' + }); } } @@ -379,6 +403,9 @@ $(document).ready(function() { var index = OC.Share.itemShares[shareType].indexOf(shareWith); OC.Share.itemShares[shareType].splice(index, 1); OC.Share.updateIcon(itemType, itemSource); + if (typeof OC.Share.statuses[itemSource] === 'undefined') { + $('#expiration').hide(); + } }); }); @@ -416,12 +443,17 @@ $(document).ready(function() { // Create a link OC.Share.share(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, '', OC.PERMISSION_READ, function() { OC.Share.showLink(itemSource); - // TODO Change icon + OC.Share.updateIcon(itemType, itemSource); }); } else { // Delete private link OC.Share.unshare(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, '', function() { OC.Share.hideLink(); + OC.Share.itemShares[OC.Share.SHARE_TYPE_LINK] = false; + OC.Share.updateIcon(itemType, itemSource); + if (typeof OC.Share.statuses[itemSource] === 'undefined') { + $('#expiration').hide(); + } }); } }); @@ -441,20 +473,23 @@ $(document).ready(function() { var itemSource = $('#dropdown').data('item-source'); OC.Share.share(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, $(this).val(), OC.PERMISSION_READ, function() { $('#linkPassText').val(''); - $('#linkPassText').attr('placeholder', 'Password protected'); + $('#linkPassText').attr('placeholder', t('core', 'Password protected')); }); } }); $('#expirationCheckbox').live('click', function() { if (this.checked) { - $('#expirationDate').before('<br />'); - $('#expirationDate').show(); - $('#expirationDate').datepicker({ - dateFormat : 'dd-mm-yy' - }); + OC.Share.showExpirationDate(''); } else { - $('#expirationDate').hide(); + var itemType = $('#dropdown').data('item-type'); + var itemSource = $('#dropdown').data('item-source'); + $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'setExpirationDate', itemType: itemType, itemSource: itemSource, date: '' }, function(result) { + if (!result || result.status !== 'success') { + OC.dialogs.alert(t('core', 'Error'), t('core', 'Error unsetting expiration date')); + } + $('#expirationDate').hide(); + }); } }); @@ -463,7 +498,7 @@ $(document).ready(function() { var itemSource = $('#dropdown').data('item-source'); $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'setExpirationDate', itemType: itemType, itemSource: itemSource, date: $(this).val() }, function(result) { if (!result || result.status !== 'success') { - OC.dialogs.alert('Error', 'Error setting expiration date'); + OC.dialogs.alert(t('core', 'Error'), t('core', 'Error setting expiration date')); } }); }); |