From d84b1adf34817b4b261db35e51f72ac78adf8e27 Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Fri, 24 Aug 2012 15:32:06 -0400 Subject: [PATCH] Dynamically update shared status icon --- core/js/share.js | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/core/js/share.js b/core/js/share.js index bd1fa14d3f..3db69dc690 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -30,6 +30,34 @@ OC.Share={ } }); }, + updateIcon:function(itemType, itemSource) { + if (itemType == 'file' || itemType == 'folder') { + var filename = $('tr').filterAttr('data-id', String(itemSource)).data('file'); + if ($('#dir').val() == '/') { + itemSource = $('#dir').val() + filename; + } else { + itemSource = $('#dir').val() + '/' + filename; + } + } + var shares = false; + $.each(OC.Share.itemShares, function(index) { + if (OC.Share.itemShares[index].length > 0) { + shares = true; + return; + } + }); + 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; + } + } 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]; + } + }, loadItem:function(itemType, itemSource) { var data = ''; var checkReshare = true; @@ -122,7 +150,6 @@ OC.Share={ OC.Share.showPrivateLink(item, share.share_with); } else { OC.Share.addShareWith(share.share_type, share.share_with, share.permissions, possiblePermissions); - } }); } @@ -149,14 +176,17 @@ OC.Share={ event.preventDefault(); }, select: function(event, selected) { + var itemType = $('#dropdown').data('item-type'); + var itemSource = $('#dropdown').data('item-source'); var shareType = selected.item.value.shareType; var shareWith = selected.item.value.shareWith; $(this).val(shareWith); // Default permissions are Read and Share var permissions = OC.Share.PERMISSION_READ | OC.Share.PERMISSION_SHARE; - OC.Share.share($('#dropdown').data('item-type'), $('#dropdown').data('item-source'), shareType, shareWith, permissions, function() { + OC.Share.share(itemType, itemSource, shareType, shareWith, permissions, function() { OC.Share.addShareWith(shareType, shareWith, permissions, possiblePermissions); $('#shareWith').val(''); + OC.Share.updateIcon(itemType, itemSource); }); return false; } @@ -327,12 +357,15 @@ $(document).ready(function() { $('.unshare').live('click', function() { var li = $(this).parent(); + var itemType = $('#dropdown').data('item-type'); + var itemSource = $('#dropdown').data('item-source'); var shareType = $(li).data('share-type'); var shareWith = $(li).data('share-with'); - OC.Share.unshare($('#dropdown').data('item-type'), $('#dropdown').data('item-source'), shareType, shareWith, function() { + OC.Share.unshare(itemType, itemSource, shareType, shareWith, function() { $(li).remove(); var index = OC.Share.itemShares[shareType].indexOf(shareWith); OC.Share.itemShares[shareType].splice(index, 1); + OC.Share.updateIcon(itemType, itemSource); }); });