summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing
diff options
context:
space:
mode:
authorMichael Gapczynski <GapczynskiM@gmail.com>2011-08-02 12:19:49 -0400
committerMichael Gapczynski <GapczynskiM@gmail.com>2011-08-02 12:19:49 -0400
commit0d79560e944d21aba25073c6632d2d0104bd38be (patch)
treee57335fd85ff79c59eb876c2ae04c905b4406317 /apps/files_sharing
parentddfc9fc001904232236baee7bf9a5a934354ac95 (diff)
downloadnextcloud-server-0d79560e944d21aba25073c6632d2d0104bd38be.tar.gz
nextcloud-server-0d79560e944d21aba25073c6632d2d0104bd38be.zip
New implementation of share dialog
Diffstat (limited to 'apps/files_sharing')
-rw-r--r--apps/files_sharing/ajax/getitem.php10
-rw-r--r--apps/files_sharing/js/share.js90
-rw-r--r--apps/files_sharing/lib_share.php12
3 files changed, 43 insertions, 69 deletions
diff --git a/apps/files_sharing/ajax/getitem.php b/apps/files_sharing/ajax/getitem.php
new file mode 100644
index 00000000000..a074510363f
--- /dev/null
+++ b/apps/files_sharing/ajax/getitem.php
@@ -0,0 +1,10 @@
+<?php
+$RUNTIME_NOAPPS = true;
+
+require_once('../../../lib/base.php');
+require_once('../lib_share.php');
+
+$source = "/".OC_User::getUser()."/files".$_GET['source'];
+error_log($source);
+echo json_encode(OC_Share::getMySharedItem($source));
+?> \ No newline at end of file
diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js
index 6ca018fca0c..6b5b47f90f2 100644
--- a/apps/files_sharing/js/share.js
+++ b/apps/files_sharing/js/share.js
@@ -18,88 +18,42 @@ $(document).ready(function() {
}
createShareDialog(filenames, files);
});
- $("input[name=share_type]").live('change', function() {
- $('#private').toggle();
- $('#public').toggle();
- });
- $('.uid_shared_with').live('keyup', function() {
+ $('#uid_shared_with').live('keyup', function() {
$(this).autocomplete({
- source: '../apps/files_sharing/ajax/userautocomplete.php',
- minLength: 1
+ source: '../apps/files_sharing/ajax/userautocomplete.php'
});
});
- $('button.add-uid_shared_with').live('click', function(event) {
- event.preventDefault();
- // TODO Make sure previous textbox has a valid user or group name
- var html = "<br />";
- html += "<label>Share with <input placeholder='User or Group' class='uid_shared_with' /></label>";
- html += "<button class='add-uid_shared_with fancybutton'>+</button>";
- $(html).insertAfter('.add-uid_shared_with');
- $(this).html('&nbsp-&nbsp&nbsp');
- $(this).removeClass('add-uid_shared_with fancybutton');
- $(this).addClass('remove-uid_shared_with fancybutton');
- });
$('button.remove-uid_shared_with').live('click', function(event) {
event.preventDefault();
alert("remove");
// TODO Remove corresponding row
});
- $('#expire').datepicker({
- dateFormat:'MM d, yy',
- altField: '#expire_time',
- altFormat: 'yy-mm-dd'
- });
});
function createShareDialog(filenames, files) {
- var html = "<div id='dialog' align='center'>";
- html += "<label><input type='radio' name='share_type' value='private' checked='checked' /> Private</label>";
- html += "<label><input type='radio' name='share_type' value='public' /> Public</label>";
- html += "<br />";
+ var html = "<div id='dialog' style='position: absolute'>";
html += "<div id='private'>";
- html += "<label>Share with <input placeholder='User or Group' class='uid_shared_with' /></label>";
- html += "<button id='hey' class='add-uid_shared_with fancybutton'>+</button>";
- html += "<br />";
- html += "<div id='permissions'style='text-align: left'>";
- html += "Permissions"
+ html += "<label>Share with <input placeholder='User or Group' id='uid_shared_with' /></label>";
+ html += "<label><input type='checkbox' name='permissions' value='1' /> allow editing</label><br />";
html += "<br />";
- html += "<label><input type='checkbox' name='share_permissions' value='1' /> Edit</label><br />";
- html += "<label><input type='checkbox' name='share_permissions' value='2' /> Delete</label><br />";
+ 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 += " <label><input type='checkbox' name='share_private_permissions' value='1' /> allow editing</label><br />";
+ if (row.permissions > 0) {
+ $('share_private_permissions').prop('checked', true);
+ }
+ });
+ $(list).appendTo('#shared_list');
+ });
html += "</div>";
+ html += "<div id='public'>";
+ html += "<label><input type='checkbox' name='public_link' value='1' /> make public</label>";
+ html += "<label><input type='checkbox' name='public_link_write' value='1' /> writeable</label>";
+ html += "<div id='link'>";
html += "</div>";
- html += "<div id='public' style='display: none'>";
- html += "TODO: Construct a public link";
- html += "<input placeholder='Expires' id='expire' />";
html += "</div>";
- html += "<div>";
- $(html).dialog({
- title: 'Share ' + filenames,
- modal: true,
- close: function(event, ui) {
- $(this).remove();
- },
- buttons: {
- 'Share': function() {
- if ($('input[name=share_type]:checked').val() == 'public') {
- // TODO Construct public link
- } else {
- // TODO Check all inputs are valid
- var uid_shared_with = $('.uid_shared_with').val();
- var permissions = 0;
- $(this).find('input:checkbox:checked').each(function() {
- permissions += parseInt($(this).val());
- });
- $.ajax({
- type: 'POST',
- url: '../apps/files_sharing/ajax/share.php',
- cache: false,
- data: '&sources='+encodeURIComponent(files)+'&uid_shared_with[]='+uid_shared_with+'&permissions='+permissions,
- success: function() {
- $('#dialog').dialog('close');
- }
- });
- }
- }
- }
- });
+ $(html).appendTo($('tr[data-file="'+filenames+'"] '));
} \ No newline at end of file
diff --git a/apps/files_sharing/lib_share.php b/apps/files_sharing/lib_share.php
index f8b00aa905d..159c45e11ef 100644
--- a/apps/files_sharing/lib_share.php
+++ b/apps/files_sharing/lib_share.php
@@ -117,7 +117,17 @@ class OC_Share {
$query = OC_DB::prepare("SELECT uid_owner, source, permissions FROM *PREFIX*sharing WHERE target = ? AND uid_shared_with = ? LIMIT 1");
return $query->execute(array($target, OC_User::getUser()))->fetchAll();
}
-
+
+ /**
+ * Get the item with the specified source location
+ * @param $source The source location of the item
+ * @return An array with the users and permissions the item is shared with
+ */
+ public static function getMySharedItem($source) {
+ $source = self::cleanPath($source);
+ $query = OC_DB::prepare("SELECT uid_shared_with, permissions FROM *PREFIX*sharing WHERE source = ? AND uid_owner = ?");
+ return $query->execute(array($source, OC_User::getUser()))->fetchAll();
+ }
/**
* Get all items the current user is sharing
* @return An array with all items the user is sharing