diff options
author | Michael Gapczynski <GapczynskiM@gmail.com> | 2011-08-03 15:21:53 -0400 |
---|---|---|
committer | Michael Gapczynski <GapczynskiM@gmail.com> | 2011-08-03 15:21:53 -0400 |
commit | 8f01abf054d577f923437871a3d6f873317c9544 (patch) | |
tree | 03cf412a794106f9a326a08f20bfab6379e5fb06 /apps/files_sharing | |
parent | 96ab35a3310b876f74c45458f9b3d36613e303cd (diff) | |
download | nextcloud-server-8f01abf054d577f923437871a3d6f873317c9544.tar.gz nextcloud-server-8f01abf054d577f923437871a3d6f873317c9544.zip |
Share dropdown updates, making public links now works
Diffstat (limited to 'apps/files_sharing')
-rw-r--r-- | apps/files_sharing/css/sharing.css | 6 | ||||
-rw-r--r-- | apps/files_sharing/js/share.js | 130 |
2 files changed, 102 insertions, 34 deletions
diff --git a/apps/files_sharing/css/sharing.css b/apps/files_sharing/css/sharing.css index 8fbe804a860..43b70950044 100644 --- a/apps/files_sharing/css/sharing.css +++ b/apps/files_sharing/css/sharing.css @@ -1,4 +1,8 @@ -#dialog { display:block; position:absolute; z-index:100; width:25em; right:0; margin-right:3em; background:#eee; padding-bottom:1em; +#dropdown { display:block; position:absolute; z-index:100; width:16em; right:0; margin-right:7em; background:#eee; padding:1em; -moz-box-shadow:0 1px 1px #777; -webkit-box-shadow:0 1px 1px #777; box-shadow:0 1px 1px #777; -moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em; -moz-border-radius-bottomright:1em; -webkit-border-bottom-right-radius:1em; border-bottom-right-radius:1em; } +#shared_list>ul { list-style-type: none; } +#public { border-top:1px solid #ddd; margin-top:1em; padding-top:0.5em; } +a.unshare { float:right; display:inline; margin:0 .5em; padding:.3em .3em 0 .3em !important; } +a.unshare:hover { background:#fff; -moz-box-shadow:0 0 10px #fff; -webkit-box-shadow:0 0 10px #fff; box-shadow:0 0 10px #fff; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; }
\ No newline at end of file diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js index a8fa94107ee..53057d87285 100644 --- a/apps/files_sharing/js/share.js +++ b/apps/files_sharing/js/share.js @@ -1,13 +1,14 @@ $(document).ready(function() { - $('#dialog').live('mouseleave', function(event) { - if ($(this).is(':visible')) { - $(this).hide('blind', function() { - $(this).remove(); + $(this).click(function() { + if ($('#dropdown').is(':visible')) { + $('#dropdown').hide('blind', function() { + $('#dropdown').remove(); + $('tr').removeClass('mouseOver'); }); } }); FileActions.register('all', 'Share', OC.imagePath('core', 'actions/share'), function(filename) { - createShareDialog(filename, $('#dir').val()+'/'+filename); + createShareDropdown(filename, $('#dir').val()+'/'+filename); }); $('.share').click(function(event) { event.preventDefault(); @@ -23,48 +24,111 @@ $(document).ready(function() { } else { filenames = lastFileName; } - createShareDialog(filenames, files); + createShareDropdown(filenames, files); }); $('#uid_shared_with').live('keyup', function() { $(this).autocomplete({ - source: '../apps/files_sharing/ajax/userautocomplete.php' + source: OC.linkTo('files_sharing','ajax/userautocomplete.php') + }); + $('.ui-autocomplete').click(function(event) { + event.stopPropagation(); }); }); - $('button.remove-uid_shared_with').live('click', function(event) { - event.preventDefault(); - alert("remove"); - // TODO Remove corresponding row + $('.permissions').live('change', function() { + // TODO Modify item ajax call + }); + $('.unshare').live('click', function() { + var source = $('#dropdown').data('file'); + var uid_shared_with = $(this).data('uid_shared_with'); + var data='source='+encodeURIComponent(source)+'&uid_shared_with='+encodeURIComponent(uid_shared_with); + $.ajax({ + type: 'GET', + url: OC.linkTo('files_sharing','ajax/unshare.php'), + cache: false, + data: data, + success: function() { + $(this).parent().remove(); + } + }); + }); + $('#makelink').live('change', function() { + if (this.checked) { + var path = $('#dropdown').data('file'); + var expire = 0; + var data = 'path='+path+'&expire='+expire; + $.ajax({ + type: 'GET', + url: OC.linkTo('files_publiclink','ajax/makelink.php'), + cache: false, + data: data, + success: function(token) { + if (token) { + var link = OC.linkTo('files_publiclink','get.php')+'?token='+token; + $('#link').show('blind'); + $('#link').val(link); + } + } + }); + } else { + var token = $(this).attr('data-token'); + var data = "token="+token; + $.ajax({ + type: 'GET', + url: OC.linkTo('files_publiclink','ajax/deletelink.php'), + cache: false, + data: data, + success: function(){ + $('#token').hide('blind'); + } + }); + } }); }); -function createShareDialog(filenames, files) { - var html = "<div id='dialog' style='display: none'>"; +function createShareDropdown(filenames, files) { + var html = "<div id='dropdown' data-file='"+files+"'>"; html += "<div id='private'>"; - html += "<label for='uid_shared_with'><strong>Share with</strong></label><input placeholder='User or Group' id='uid_shared_with' />"; - html += "<input type='checkbox' name='permissions' id='permissions' value='1' /><label for='permissions'>allow editing</label><br />"; - html += "<br />"; + html += "<input placeholder='User or Group' id='uid_shared_with' />"; + html += "<input type='checkbox' name='permissions' id='permissions' value='1' /><label for='permissions'>can edit</label>"; html += "<div id='shared_list'></div>"; - $.getJSON(OC.linkTo('files_sharing','ajax/getitem.php'), { source: files }, function(users) { - var list = ""; - $.each(users, function(index, row) { - list += row.uid_shared_with; - list += "<input type='checkbox' name='share_private_permissions' value='1' /><label>allow editing</label><br />"; - if (row.permissions > 0) { - $('share_private_permissions').prop('checked', true); - } - }); - $(list).appendTo('#shared_list'); - }); html += "</div>"; - html += "<hr />"; html += "<div id='public'>"; - html += "<input type='checkbox' name='public_link' id='public_link' value='1' /><label for='public_link'>make public</label>"; + html += "<input type='checkbox' name='makelink' id='makelink' value='1' /><label for='makelink'>make public</label>"; html += "<input type='checkbox' name='public_link_write' id='public_link_write' value='1' /><label for='public_link_write'>allow upload</label>"; - html += "<div id='link'>"; - html += "</div>"; + html += "<br />"; + html += "<input id='link' style='display:none;width:100%' />"; html += "</div>"; $('tr[data-file="'+filenames+'"]').addClass('mouseOver'); $(html).appendTo($('tr[data-file="'+filenames+'"] td.filename')); - $('#dialog').show('blind'); - + $.getJSON(OC.linkTo('files_sharing','ajax/getitem.php'), { source: files }, function(users) { + if (users) { + var list = "<ul>"; + $.each(users, function(index, row) { + list += "<li>"; + list += row.uid_shared_with; + list += "<input type='checkbox' name='permissions' data-uid_shared_with='"+row.uid_shared_with+"' /><label>can edit</label>"; + list += "<a href='#' title='Unshare' class='unshare' data-uid_shared_with='"+row.uid_shared_with+"'><img src='"+OC.imagePath('core','actions/delete')+"'/></a>"; + list += "</li>"; + if (row.permissions > 0) { + $('share_private_permissions').prop('checked', true); + } + }); + list += "</ul>"; + $(list).appendTo('#shared_list'); + } + }); + // TODO Create gettoken.php + //$.getJSON(OC.linkTo('files_publiclink','ajax/gettoken.php'), { path: files }, function(token) { + var token; + if (token) { + var link = OC.linkTo('files_publiclink','get.php')+'?token='+token; + $('#makelink').attr('checked', true); + $('#link').show('blind'); + $('#link').val(link); + } + //}); + $('#dropdown').show('blind'); + $('#dropdown').click(function(event) { + event.stopPropagation(); + }); } |