diff --git a/ajax/documents.php b/ajax/documents.php
index 39948881..216f360c 100644
--- a/ajax/documents.php
+++ b/ajax/documents.php
@@ -1,10 +1,28 @@
$documents));
+\OCP\JSON::success(array('documents' => $documents,'sessions' => $sessions,'members' => $members));
diff --git a/js/documents.js b/js/documents.js
index a724f1a5..fa14654f 100644
--- a/js/documents.js
+++ b/js/documents.js
@@ -1,5 +1,8 @@
/*globals $,OC,fileDownloadPath,t,document,odf,webodfEditor,alert,require,dojo,runtime */
var documentsMain = {
+ _documents: [],
+ _sessions: [],
+ _members: [],
useUnstable : false,
onStartup: function() {
"use strict";
@@ -113,7 +116,9 @@ var documentsMain = {
documentsMain.initSession
);
},
-
+ /**
+ * FIXME
+ *
updateInfo : function(){
var fileIds = [];
$('.documentslist li').each(function(i, e){
@@ -134,6 +139,7 @@ var documentsMain = {
}
);
},
+ */
onInvite: function(event) {
event.preventDefault();
@@ -163,6 +169,56 @@ var documentsMain = {
$(document.body).removeClass('claro');
});
});
+ },
+ 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.'));
+ });
+ return def;
+ },
+ renderDocuments: function () {
+ var self = this;
+
+ //remove all but template
+ $('.documentslist .document:not(.template)').remove();
+
+ jQuery.each(this._documents, function(i,document){
+ var docElem = $('.documentslist .template').clone();
+ docElem.removeClass('template');
+ docElem.addClass('document');
+ docElem.attr('data-id', document.fileid);
+
+ var a = docElem.find('a');
+ a.attr('href', OC.Router.generate('download',{file:document.path}));
+ a.find('label').text(document.name);
+
+ getMimeIcon(document.mimetype).then(function(path){
+ a.css('background-image', 'url("'+path+'")');
+ });
+ $('.documentslist').append(docElem);
+ docElem.show();
+ });
+ jQuery.each(this._sessions, function(i,session){
+ if (self._members[session.es_id].length > 0) {
+ var docElem = $('.documentslist .document[data-id="'+session.file_id+'"]');
+ if (docElem.length > 0) {
+ docElem.attr('data-esid', session.es_id);
+ docElem.find('label').after('');
+ docElem.addClass('session');
+ } else {
+ console.log('Could not find file '+session.file_id+' for session '+session.es_id);
+ }
+ }
+ });
}
};
@@ -191,70 +247,6 @@ function getMimeIcon(mime){
}
getMimeIcon.cache={};
-// fill the albums from Gallery.images
-var documentsDocuments = {
- _documents: [],
- _sessions: []
-};
-documentsDocuments.loadDocuments = function () {
- var self = this;
- var def = new $.Deferred();
- jQuery.getJSON(OC.filePath('documents', 'ajax', 'documents.php'))
- .done(function (data) {
- self._documents = data.documents;
- def.resolve();
- })
- .fail(function(data){
- console.log(t('documents','Failed to load documents.'));
- });
- return def;
-};
-documentsDocuments.loadSessions = function () {
- var self = this;
- var def = new $.Deferred();
- jQuery.getJSON(OC.filePath('documents', 'ajax', 'sessions.php'))
- .done(function (data) {
- self._sessions = data.sessions;
- def.resolve();
- })
- .fail(function(data){
- console.log(t('documents','Failed to load sessions.'));
- });
- return def;
-};
-documentsDocuments.renderDocuments = function () {
-
- //remove all but template
- $('.documentslist .document:not(.template)').remove();
-
- jQuery.each(this._documents, function(i,document){
- var docElem = $('.documentslist .template').clone();
- docElem.removeClass('template');
- docElem.addClass('document');
- docElem.attr('data-id', document.fileid);
-
- var a = docElem.find('a');
- a.attr('href', OC.Router.generate('download',{file:document.path}));
- a.find('label').text(document.name);
-
- getMimeIcon(document.mimetype).then(function(path){
- a.css('background-image', 'url("'+path+'")');
- });
- $('.documentslist').append(docElem);
- docElem.show();
- });
- jQuery.each(this._sessions, function(i,session){
- var docElem = $('.documentslist .document[data-id="'+session.file_id+'"]');
- if (docElem.length > 0) {
- docElem.attr('data-esid', session.es_id);
- docElem.find('label').after('');
- docElem.addClass('session');
- } else {
- console.log('Could not find file '+session.file_id+' for session '+session.es_id);
- }
- });
-};
-
$(document).ready(function() {
"use strict";
@@ -305,14 +297,11 @@ $(document).ready(function() {
}
});
- //TODO load list of files
- jQuery.when(documentsDocuments.loadDocuments(), documentsDocuments.loadSessions())
+ jQuery.when(documentsMain.loadDocuments())
.then(function(){
- documentsDocuments.renderDocuments();
+ documentsMain.renderDocuments();
});
- //TODO show no docs please upload
- //TODO load list of sessions, and add 'active' as icon overlay
- //TODO when clicking on a document without a session initialize it
+ //TODO show "no docs, please upload"
//TODO when ending a session as the last user close session?
OC.addScript('documents', 'dojo-amalgamation', documentsMain.onStartup);
diff --git a/lib/session.php b/lib/session.php
index 687bf65e..da291ef5 100644
--- a/lib/session.php
+++ b/lib/session.php
@@ -111,12 +111,10 @@ class Session {
FROM `*PREFIX*documents_session` AS `s`
LEFT JOIN `*PREFIX*documents_member` AS `m` ON `s`.`es_id`=`m`.`es_id`
AND `m`.`status`='. Member::MEMBER_STATUS_ACTIVE .'
- AND `m`.`uid` != ?
WHERE `s`.`file_id` IN (' . $stmt .')
GROUP BY `m`.`es_id`
');
- $result = $query->execute(
- array_merge(array(\OCP\User::getUser()), $fileIds)
+ $result = $query->execute($fileIds
);
$info = $result->fetchAll();