From e62bae00b44c87f75982a3ec4607b9464791a127 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 28 Aug 2013 19:38:17 +0200 Subject: [PATCH] move documents.php functionality to controller, add route --- ajax/controller.php | 26 +++++++++++++++++++++++++- ajax/documents.php | 28 ---------------------------- appinfo/routes.php | 5 +++++ js/documents.js | 27 +++++++++++++++++---------- 4 files changed, 47 insertions(+), 39 deletions(-) delete mode 100644 ajax/documents.php diff --git a/ajax/controller.php b/ajax/controller.php index fe62ab51..09a9f7ff 100644 --- a/ajax/controller.php +++ b/ajax/controller.php @@ -96,7 +96,7 @@ class Controller { exit(); } catch (\Exception $e){ Helper::warnLog('Joining a session failed. Reason:' . $e->getMessage()); - \OCP\JSON::error(); + \OCP\JSON::error(array('message'=>$e->getMessage())); exit(); } } @@ -124,6 +124,30 @@ class Controller { } } + /** + * lists the documents the user has access to (including shared files, once the code in core has been fixed) + * also adds session and member info for these files + */ + public static function listDocuments(){ + self::preDispatch(); + + $documents = Storage::getDocuments(); + + $fileIds = array(); + foreach ($documents as $document) { + $fileIds[] = $document['fileid']; + } + + $sessions = Session::getSessionsByFileIds($fileIds); + + $members = array(); + foreach ($sessions as $session) { + $members[$session['es_id']] = Member::getMembersByEsId($session['es_id']); + } + + \OCP\JSON::success(array('documents' => $documents,'sessions' => $sessions,'members' => $members)); + } + public static function listSessions(){ self::preDispatch(); $sessions = Session::getAll(); diff --git a/ajax/documents.php b/ajax/documents.php deleted file mode 100644 index 216f360c..00000000 --- a/ajax/documents.php +++ /dev/null @@ -1,28 +0,0 @@ - $documents,'sessions' => $sessions,'members' => $members)); diff --git a/appinfo/routes.php b/appinfo/routes.php index 1ef5e571..ff9e4ec7 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -27,6 +27,11 @@ $this->create('documents_session_start', 'ajax/session/start') ->action('\OCA\Documents\Controller', 'startSession') ; +$this->create('documents_documents_list', 'ajax/documents/list') + ->get() + ->action('\OCA\Documents\Controller', 'listDocuments') +; + $this->create('documents_session_list', 'ajax/session/list') ->get() ->action('\OCA\Documents\Controller', 'listSessions') diff --git a/js/documents.js b/js/documents.js index fa14654f..378ec86e 100644 --- a/js/documents.js +++ b/js/documents.js @@ -155,6 +155,11 @@ var documentsMain = { onClose: function() { "use strict"; + var saveSessionRoute = OC.Router.generate('documents_session_save'); + //auto save document + documentsMain.webodfEditorInstance.saveDocument(saveSessionRoute, function(){}); + + //close editor documentsMain.webodfEditorInstance.shutdown(function() { // successfull shutdown - all is good. @@ -173,16 +178,18 @@ var documentsMain = { loadDocuments: function () { var self = this; var def = new $.Deferred(); - jQuery.getJSON(OC.filePath('documents', 'ajax', 'documents.php')) - .done(function (data) { - self._documents = data.documents; - self._sessions = data.sessions; - self._members = data.members; - def.resolve(); - }) - .fail(function(data){ - console.log(t('documents','Failed to load documents.')); - }); + OC.Router.registerLoadedCallback(function () { + jQuery.getJSON(OC.Router.generate('documents_documents_list')) + .done(function (data) { + self._documents = data.documents; + self._sessions = data.sessions; + self._members = data.members; + def.resolve(); + }) + .fail(function(data){ + console.log(t('documents','Failed to load documents.')); + }); + }); return def; }, renderDocuments: function () {