diff --git a/appinfo/routes.php b/appinfo/routes.php index 6062580..b128998 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -7,6 +7,7 @@ return [ 'routes' => [ ['name' => 'page#index', 'url' => '/', 'verb' => 'GET'], ['name' => 'note_api#preflighted_cors', 'url' => '/api/0.1/{path}', - 'verb' => 'OPTIONS', 'requirements' => ['path' => '.+']] + 'verb' => 'OPTIONS', 'requirements' => ['path' => '.+']], + ['name' => 'note#get_user_groups_and_users', 'url' => '/api/0.1/getusergroups', 'verb' => 'GET'] ] -]; \ No newline at end of file +]; diff --git a/controller/notecontroller.php b/controller/notecontroller.php index d142e74..d7699a8 100644 --- a/controller/notecontroller.php +++ b/controller/notecontroller.php @@ -14,6 +14,7 @@ namespace OCA\QuickNotes\Controller; use OCP\IRequest; use OCP\AppFramework\Http; use OCP\AppFramework\Http\DataResponse; +use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\Controller; use OCA\QuickNotes\Db\Note; @@ -190,4 +191,24 @@ class NoteController extends Controller { return new DataResponse($note); } + + /** + * @NoAdminRequired + */ + public function getUserGroupsAndUsers() { + $userMgr = \OC::$server->getUserManager(); + $grpMgr = \OC::$server->getGroupManager(); + $igroups = $grpMgr->getUserGroups($userMgr->get($this->userId)); + $users = array(); + $groups = array(); + foreach($igroups as $g) { + $iusers = $g->getUsers(); + foreach($iusers as $u) { + $users[] = $u->getUID(); + } + $groups[] = $g->getGID(); + } + $params = array('groups' => $groups, 'users' => array_unique($users)); + return new JSONResponse($params); + } } diff --git a/css/style.css b/css/style.css index a55ba50..59aa2bc 100644 --- a/css/style.css +++ b/css/style.css @@ -31,6 +31,10 @@ top: 6px; } +.save-button #unshare-button { + display: none; +} + #div-content .save-button { float: right; padding-right: 8px; diff --git a/js/script.js b/js/script.js index 5b193af..8feba8f 100644 --- a/js/script.js +++ b/js/script.js @@ -162,6 +162,13 @@ View.prototype = { var modalnote = $("#modal-note-div .quicknote"); var note = $('.notes-grid [data-id=' + id + ']').parent(); + if($('.notes-grid [data-id=' + id + ']').hasClass('shareowner')) { + $('.save-button #unshare-button').show(); + $('.save-button #share-button').hide(); + } else { + $('.save-button #unshare-button').hide(); + $('.save-button #share-button').show(); + } var title = note.find("#title-editable").html(); var content = note.find("#content-editable").html(); @@ -336,6 +343,16 @@ View.prototype = { modalnote.css("background-color", color); }); + // handle share editing notes. + $('#modal-note-div #share-button').click(function (event) { + $.get(OC.generateUrl('/apps/quicknotes/api/0.1/getusergroups'), function(data) { + var groups = data.groups; + var users = data.users; + alert('groups: ' + groups.toSource()); + alert('users: ' + users.toSource()); + }); + }); + // handle cancel editing notes. $('#modal-note-div #cancel-button').click(function (event) { self.cancelEdit(); diff --git a/templates/part.note-modal-editable.php b/templates/part.note-modal-editable.php index 634c377..de186c7 100644 --- a/templates/part.note-modal-editable.php +++ b/templates/part.note-modal-editable.php @@ -5,6 +5,7 @@
+ @@ -21,6 +22,9 @@
+
+ +