aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing
diff options
context:
space:
mode:
authorMichael Gapczynski <GapczynskiM@gmail.com>2011-08-03 15:21:53 -0400
committerMichael Gapczynski <GapczynskiM@gmail.com>2011-08-03 15:21:53 -0400
commit8f01abf054d577f923437871a3d6f873317c9544 (patch)
tree03cf412a794106f9a326a08f20bfab6379e5fb06 /apps/files_sharing
parent96ab35a3310b876f74c45458f9b3d36613e303cd (diff)
downloadnextcloud-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.css6
-rw-r--r--apps/files_sharing/js/share.js130
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();
+ });
}