[Pkg-owncloud-commits] [owncloud] 149/258: Added spinners in share dropdown
David Prévot
taffit at moszumanska.debian.org
Sat Oct 11 17:22:30 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository owncloud.
commit 4d261d9e15f454d3b768282255c3d004db4ea132
Author: Vincent Petry <pvince81 at owncloud.com>
Date: Thu Sep 25 19:46:30 2014 +0200
Added spinners in share dropdown
Added spinners for the following actions:
- adding user
- removing user
- changing password
- toggling allowing upload
- setting a password
---
core/css/share.css | 14 +++++++
core/js/share.js | 110 ++++++++++++++++++++++++++++++++++++++++++-----------
2 files changed, 102 insertions(+), 22 deletions(-)
diff --git a/core/css/share.css b/core/css/share.css
index aeabbbc..de90921 100644
--- a/core/css/share.css
+++ b/core/css/share.css
@@ -16,6 +16,20 @@
padding:16px;
}
+#dropdown.shareDropDown .unshare.icon-loading-small {
+ margin-top: 1px;
+}
+
+#dropdown.shareDropDown .shareWithLoading,
+#dropdown.shareDropDown .linkShare .icon-loading-small {
+ display: inline-block !important;
+ padding-left: 10px;
+}
+
+#dropdown.shareDropDown .icon-loading-small.hidden {
+ display: none !important;
+}
+
#shareWithList {
list-style-type:none;
padding:8px;
diff --git a/core/js/share.js b/core/js/share.js
index f165237..363c1c3 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -304,7 +304,7 @@ OC.Share={
);
}
- $.post(OC.filePath('core', 'ajax', 'share.php'),
+ return $.post(OC.filePath('core', 'ajax', 'share.php'),
{
action: 'share',
itemType: itemType,
@@ -351,7 +351,7 @@ OC.Share={
showDropDown:function(itemType, itemSource, appendTo, link, possiblePermissions, filename) {
var data = OC.Share.loadItem(itemType, itemSource);
var dropDownEl;
- var html = '<div id="dropdown" class="drop" data-item-type="'+itemType+'" data-item-source="'+itemSource+'">';
+ var html = '<div id="dropdown" class="drop shareDropDown" data-item-type="'+itemType+'" data-item-source="'+itemSource+'">';
if (data !== false && data.reshare !== false && data.reshare.uid_owner !== undefined) {
if (data.reshare.share_type == OC.Share.SHARE_TYPE_GROUP) {
html += '<span class="reshare">'+t('core', 'Shared with you and the group {group} by {owner}', {group: escapeHTML(data.reshare.share_with), owner: escapeHTML(data.reshare.displayname_owner)})+'</span>';
@@ -381,11 +381,13 @@ OC.Share={
});
html += '<input id="shareWith" type="text" placeholder="'+t('core', 'Share with user or group …')+'" />';
+ html += '<span class="shareWithLoading icon-loading-small hidden"></span>';
html += '<ul id="shareWithList">';
html += '</ul>';
var linksAllowed = $('#allowShareWithLink').val() === 'yes';
if (link && linksAllowed) {
- html += '<div id="link">';
+ html += '<div id="link" class="linkShare">';
+ html += '<span class="icon-loading-small hidden"></span>';
html += '<input type="checkbox" name="linkCheckbox" id="linkCheckbox" value="1" /><label for="linkCheckbox">'+t('core', 'Share link')+'</label>';
html += '<br />';
@@ -398,10 +400,12 @@ OC.Share={
html += '<input type="checkbox" name="showPassword" id="showPassword" value="1" style="display:none;" /><label for="showPassword" style="display:none;">'+t('core', 'Password protect')+'</label>';
html += '<div id="linkPass">';
html += '<input id="linkPassText" type="password" placeholder="'+t('core', 'Choose a password for the public link')+'" />';
+ html += '<span class="icon-loading-small hidden"></span>';
html += '</div>';
if (itemType === 'folder' && (possiblePermissions & OC.PERMISSION_CREATE) && publicUploadEnabled === 'yes') {
html += '<div id="allowPublicUploadWrapper" style="display:none;">';
+ html += '<span class="icon-loading-small hidden"></span>';
html += '<input type="checkbox" value="1" name="allowPublicUpload" id="sharingDialogAllowPublicUpload"' + ((allowPublicUploadStatus) ? 'checked="checked"' : '') + ' />';
html += '<label for="sharingDialogAllowPublicUpload">' + t('core', 'Allow Public Upload') + '</label>';
html += '</div>';
@@ -441,23 +445,27 @@ OC.Share={
});
}
$('#shareWith').autocomplete({minLength: 1, source: function(search, response) {
- $.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWith', search: search.term, itemShares: OC.Share.itemShares }, function(result) {
- if (result.status == 'success' && result.data.length > 0) {
- $( "#shareWith" ).autocomplete( "option", "autoFocus", true );
- response(result.data);
- } else {
- response();
- }
- });
+ var $loading = $('#dropdown .shareWithLoading');
+ $loading.removeClass('hidden');
+ $.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWith', search: search.term, itemShares: OC.Share.itemShares }, function(result) {
+ $loading.addClass('hidden');
+ if (result.status == 'success' && result.data.length > 0) {
+ $( "#shareWith" ).autocomplete( "option", "autoFocus", true );
+ response(result.data);
+ } else {
+ response();
+ }
+ });
},
focus: function(event, focused) {
event.preventDefault();
},
select: function(event, selected) {
event.stopPropagation();
- var itemType = $('#dropdown').data('item-type');
- var itemSource = $('#dropdown').data('item-source');
- var itemSourceName = $('#dropdown').data('item-source-name');
+ var $dropDown = $('#dropdown');
+ var itemType = $dropDown.data('item-type');
+ var itemSource = $dropDown.data('item-source');
+ var itemSourceName = $dropDown.data('item-source-name');
var expirationDate = '';
if ( $('#expirationCheckbox').is(':checked') === true ) {
expirationDate = $( "#expirationDate" ).val();
@@ -481,7 +489,16 @@ OC.Share={
permissions = permissions | OC.PERMISSION_SHARE;
}
+
+ var $input = $(this);
+ var $loading = $dropDown.find('.shareWithLoading');
+ $loading.removeClass('hidden');
+ $input.val(t('core', 'Adding user...'));
+ $input.prop('disabled', true);
+
OC.Share.share(itemType, itemSource, shareType, shareWith, permissions, itemSourceName, expirationDate, function() {
+ $input.prop('disabled', false);
+ $loading.addClass('hidden');
OC.Share.addShareWith(shareType, shareWith, selected.item.label, permissions, possiblePermissions);
$('#shareWith').val('');
$('#dropdown').trigger(new $.Event('sharesChanged', {shares: OC.Share.currentShares}));
@@ -807,6 +824,18 @@ $(document).ready(function() {
var itemSource = $('#dropdown').data('item-source');
var shareType = $li.data('share-type');
var shareWith = $li.attr('data-share-with');
+ var $button = $(this);
+
+ if (!$button.is('a')) {
+ $button = $button.closest('a');
+ }
+
+ if ($button.hasClass('icon-loading-small')) {
+ // deletion in progress
+ return false;
+ }
+ $button.empty().addClass('icon-loading-small');
+
OC.Share.unshare(itemType, itemSource, shareType, shareWith, function() {
$li.remove();
var index = OC.Share.itemShares[shareType].indexOf(shareWith);
@@ -819,6 +848,7 @@ $(document).ready(function() {
$('#expiration').hide('blind');
}
});
+
return false;
});
@@ -860,9 +890,17 @@ $(document).ready(function() {
});
$(document).on('change', '#dropdown #linkCheckbox', function() {
- var itemType = $('#dropdown').data('item-type');
- var itemSource = $('#dropdown').data('item-source');
- var itemSourceName = $('#dropdown').data('item-source-name');
+ var $dropDown = $('#dropdown');
+ var itemType = $dropDown.data('item-type');
+ var itemSource = $dropDown.data('item-source');
+ var itemSourceName = $dropDown.data('item-source-name');
+ var $loading = $dropDown.find('#link .icon-loading-small');
+ var $button = $(this);
+
+ if (!$loading.hasClass('hidden')) {
+ // already in progress
+ return false;
+ }
if (this.checked) {
var expireDateString = '';
@@ -877,7 +915,11 @@ $(document).ready(function() {
}
// Create a link
if (oc_appconfig.core.enforcePasswordForPublicLink === false) {
+ $loading.removeClass('hidden');
+ $button.addClass('hidden');
OC.Share.share(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, '', OC.PERMISSION_READ, itemSourceName, expireDateString, function(data) {
+ $loading.addClass('hidden');
+ $button.removeClass('hidden');
OC.Share.showLink(data.token, null, itemSource);
$('#dropdown').trigger(new $.Event('sharesChanged', {shares: OC.Share.currentShares}));
OC.Share.updateIcon(itemType, itemSource);
@@ -894,7 +936,11 @@ $(document).ready(function() {
OC.Share.hideLink();
$('#expiration').hide('blind');
if ($('#linkText').val() !== '') {
+ $loading.removeClass('hidden');
+ $button.addClass('hidden');
OC.Share.unshare(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, '', function() {
+ $loading.addClass('hidden');
+ $button.removeClass('hidden');
OC.Share.itemShares[OC.Share.SHARE_TYPE_LINK] = false;
$('#dropdown').trigger(new $.Event('sharesChanged', {shares: OC.Share.currentShares}));
OC.Share.updateIcon(itemType, itemSource);
@@ -915,15 +961,23 @@ $(document).ready(function() {
$(document).on('click', '#sharingDialogAllowPublicUpload', function() {
// Gather data
+ var $dropDown = $('#dropdown');
var allowPublicUpload = $(this).is(':checked');
- var itemType = $('#dropdown').data('item-type');
- var itemSource = $('#dropdown').data('item-source');
- var itemSourceName = $('#dropdown').data('item-source-name');
+ var itemType = $dropDown.data('item-type');
+ var itemSource = $dropDown.data('item-source');
+ var itemSourceName = $dropDown.data('item-source-name');
var expirationDate = '';
if ($('#expirationCheckbox').is(':checked') === true) {
expirationDate = $( "#expirationDate" ).val();
}
var permissions = 0;
+ var $button = $(this);
+ var $loading = $dropDown.find('#allowPublicUploadWrapper .icon-loading-small');
+
+ if (!$loading.hasClass('hidden')) {
+ // already in progress
+ return false;
+ }
// Calculate permissions
if (allowPublicUpload) {
@@ -933,7 +987,13 @@ $(document).ready(function() {
}
// Update the share information
+ $button.addClass('hidden');
+ $button.prop('disabled', true);
+ $loading.removeClass('hidden');
OC.Share.share(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, '', permissions, itemSourceName, expirationDate, function(data) {
+ $loading.addClass('hidden');
+ $button.removeClass('hidden');
+ $button.prop('disabled', false);
});
});
@@ -945,6 +1005,7 @@ $(document).ready(function() {
var itemSourceName = $('#dropdown').data('item-source-name');
var allowPublicUpload = $('#sharingDialogAllowPublicUpload').is(':checked');
var permissions = 0;
+ var $loading = $('#showPassword .icon-loading-small');
// Calculate permissions
if (allowPublicUpload) {
@@ -953,8 +1014,10 @@ $(document).ready(function() {
permissions = OC.PERMISSION_READ;
}
-
- OC.Share.share(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, '', permissions, itemSourceName);
+ $loading.removeClass('hidden');
+ OC.Share.share(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, '', permissions, itemSourceName).then(function() {
+ $loading.addClass('hidden');
+ });
} else {
$('#linkPassText').focus();
}
@@ -970,6 +1033,7 @@ $(document).ready(function() {
var itemSource = dropDown.data('item-source');
var itemSourceName = $('#dropdown').data('item-source-name');
var permissions = 0;
+ var $loading = dropDown.find('#linkPass .icon-loading-small');
// Calculate permissions
if (allowPublicUpload) {
@@ -978,7 +1042,9 @@ $(document).ready(function() {
permissions = OC.PERMISSION_READ;
}
+ $loading.removeClass('hidden');
OC.Share.share(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, $('#linkPassText').val(), permissions, itemSourceName, function(data) {
+ $loading.addClass('hidden');
linkPassText.val('');
linkPassText.attr('placeholder', t('core', 'Password protected'));
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git
More information about the Pkg-owncloud-commits
mailing list