Invitations. Ugly but works
This commit is contained in:
parent
128edd8dee
commit
c1c01c364c
@ -14,6 +14,10 @@ namespace OCA\Office;
|
|||||||
|
|
||||||
class Controller {
|
class Controller {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process partial/complete file download
|
||||||
|
* @param type $args - array containing session id as anelement with a key es_id
|
||||||
|
*/
|
||||||
public static function serve($args){
|
public static function serve($args){
|
||||||
\OCP\JSON::checkLoggedIn();
|
\OCP\JSON::checkLoggedIn();
|
||||||
|
|
||||||
@ -23,6 +27,63 @@ class Controller {
|
|||||||
$download = new Download($officeView, $filename);
|
$download = new Download($officeView, $filename);
|
||||||
$download->sendResponse();
|
$download->sendResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search users according to the pattern
|
||||||
|
*/
|
||||||
|
public static function search(){
|
||||||
|
$uid = self::getUser();
|
||||||
|
if (@$_GET['search']){
|
||||||
|
$found = array();
|
||||||
|
$users = array();
|
||||||
|
$count = 0;
|
||||||
|
$limit = 0;
|
||||||
|
$offset = 0;
|
||||||
|
while ($count < 15 && count($users) == $limit) {
|
||||||
|
$limit = 15 - $count;
|
||||||
|
$users = \OC_User::getDisplayNames($_GET['search'], $limit, $offset);
|
||||||
|
$offset += $limit;
|
||||||
|
foreach ($users as $userid => $displayName) {
|
||||||
|
$found[] = array(
|
||||||
|
'label' => $displayName,
|
||||||
|
'value' => $userid
|
||||||
|
);
|
||||||
|
$count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\OCP\JSON::success(array('data'=>$found));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invite users to the editing session
|
||||||
|
*/
|
||||||
|
public static function invite(){
|
||||||
|
self::getUser();
|
||||||
|
$invitees = @$_POST['users'];
|
||||||
|
|
||||||
|
if (is_array($invitees)){
|
||||||
|
$invitees = array_unique($invitees);
|
||||||
|
|
||||||
|
$esId = @$_POST['esId'];
|
||||||
|
foreach ($invitees as $userId){
|
||||||
|
try {
|
||||||
|
Invite::add($esId, $userId);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\OCP\JSON::success();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function sendAvatar(){
|
||||||
|
$uid = self::getUser();
|
||||||
|
$image = new \OC_Image('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');
|
||||||
|
\OC_Util::obEnd();
|
||||||
|
|
||||||
|
echo $image->show();
|
||||||
|
}
|
||||||
|
|
||||||
public static function startSession($args){
|
public static function startSession($args){
|
||||||
$uid = self::getUser();
|
$uid = self::getUser();
|
||||||
@ -56,14 +117,6 @@ class Controller {
|
|||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function sendAvatar(){
|
|
||||||
$uid = self::getUser();
|
|
||||||
$image = new \OC_Image('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');
|
|
||||||
\OC_Util::obEnd();
|
|
||||||
|
|
||||||
echo $image->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function joinSession($args){
|
public static function joinSession($args){
|
||||||
$esId = @$args['es_id'];
|
$esId = @$args['es_id'];
|
||||||
\OCP\JSON::checkLoggedIn();
|
\OCP\JSON::checkLoggedIn();
|
||||||
|
@ -52,7 +52,7 @@ try{
|
|||||||
$x['display_name'] = \OCP\User::getDisplayName($x['uid']);
|
$x['display_name'] = \OCP\User::getDisplayName($x['uid']);
|
||||||
|
|
||||||
// Stub
|
// Stub
|
||||||
$x['avatar_url'] = \OCP\Util::linkToRoute('office_avatar');
|
$x['avatar_url'] = \OCP\Util::linkToRoute('office_user_avatar');
|
||||||
return $x;
|
return $x;
|
||||||
},
|
},
|
||||||
$members
|
$members
|
||||||
|
@ -54,7 +54,18 @@ $this->create('office_session_join', 'ajax/session/join/{es_id}')
|
|||||||
->action('\OCA\Office\Controller', 'joinSession')
|
->action('\OCA\Office\Controller', 'joinSession')
|
||||||
;
|
;
|
||||||
|
|
||||||
$this->create('office_avatar', 'ajax/avatar')
|
|
||||||
|
$this->create('office_user_avatar', 'ajax/user/avatar')
|
||||||
->get()
|
->get()
|
||||||
->action('\OCA\Office\Controller', 'sendAvatar')
|
->action('\OCA\Office\Controller', 'sendAvatar')
|
||||||
;
|
;
|
||||||
|
|
||||||
|
$this->create('office_user_invite', 'ajax/user/invite')
|
||||||
|
->post()
|
||||||
|
->action('\OCA\Office\Controller', 'invite')
|
||||||
|
;
|
||||||
|
|
||||||
|
$this->create('office_user_search', 'ajax/user/search')
|
||||||
|
->get()
|
||||||
|
->action('\OCA\Office\Controller', 'search')
|
||||||
|
;
|
||||||
|
@ -7,6 +7,10 @@
|
|||||||
#office-content{
|
#office-content{
|
||||||
padding-left:160px;
|
padding-left:160px;
|
||||||
}
|
}
|
||||||
|
#office-content.wide{
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
#editing-sessions{
|
#editing-sessions{
|
||||||
position:absolute;
|
position:absolute;
|
||||||
left:0;
|
left:0;
|
||||||
@ -28,6 +32,10 @@ position:relative;top:3em;width: 100%;
|
|||||||
float:left;
|
float:left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#odf_invite{
|
||||||
|
float:right;
|
||||||
|
}
|
||||||
|
|
||||||
#editor-content #mainContainer{
|
#editor-content #mainContainer{
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
@ -38,4 +46,13 @@ float:left;
|
|||||||
}
|
}
|
||||||
#memberList{
|
#memberList{
|
||||||
padding-top: 5px;
|
padding-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#invite-block{
|
||||||
|
position: absolute;
|
||||||
|
top:3em;
|
||||||
|
margin-top:-3px;
|
||||||
|
right:72px;
|
||||||
|
padding: 10px;
|
||||||
|
background-color: #ddd;
|
||||||
}
|
}
|
157
js/office.js
157
js/office.js
@ -5,13 +5,13 @@ var officeMain = {
|
|||||||
OC.addScript('office', 'webodf_bootstrap', function() {
|
OC.addScript('office', 'webodf_bootstrap', function() {
|
||||||
OC.addScript('office', 'webodf-debug').done(function() {
|
OC.addScript('office', 'webodf-debug').done(function() {
|
||||||
require({}, ["dojo/ready"], function(ready) {
|
require({}, ["dojo/ready"], function(ready) {
|
||||||
ready(function(){
|
ready(function() {
|
||||||
require({}, ["webodf/editor/Editor"], function(Editor) {
|
require({}, ["webodf/editor/Editor"], function(Editor) {
|
||||||
if (Editor && typeof(Editor) === 'function') {
|
if (Editor && typeof(Editor) === 'function') {
|
||||||
officeMain.initialized = 1;
|
officeMain.initialized = 1;
|
||||||
} else {
|
} else {
|
||||||
alert("initialization of webodf/editor/Editor\n"+
|
alert("initialization of webodf/editor/Editor\n" +
|
||||||
"failed somehow...");
|
"failed somehow...");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -27,96 +27,102 @@ var officeMain = {
|
|||||||
OC.addScript('office', 'editor/boot_editor').done(function() {
|
OC.addScript('office', 'editor/boot_editor').done(function() {
|
||||||
var doclocation = response.es_id;
|
var doclocation = response.es_id;
|
||||||
|
|
||||||
// fade out files menu and add odf menu
|
// fade out file list and show WebODF canvas
|
||||||
$('.documentslist, #emptyfolder').fadeOut('slow').promise().done(function() {
|
$('.documentslist, #emptyfolder, #editing-sessions').fadeOut('slow').promise().done(function() {
|
||||||
// odf action toolbar
|
// odf action toolbar
|
||||||
var odfToolbarHtml =
|
var odfToolbarHtml =
|
||||||
'<div id="odf-toolbar">'
|
'<div id="odf-toolbar">'
|
||||||
+ '<button id="odf_close">'
|
+ '<button id="odf_close">'
|
||||||
+ t('files_odfviewer', 'Close')
|
+ t('files_odfviewer', 'Close')
|
||||||
+ '</button>'
|
+ '</button>'
|
||||||
+ '<button id="odf_invite">'
|
+ '<button id="odf_invite">'
|
||||||
+ t('files_odfviewer', 'Invite')
|
+ t('files_odfviewer', 'Invite')
|
||||||
+ '</button>'
|
+ '</button>'
|
||||||
+ '<span id="toolbar" class="claro"></span>'
|
+ '<span id="toolbar" class="claro"></span>'
|
||||||
+ '</div>';
|
+ '</div>';
|
||||||
$('#controls').append(odfToolbarHtml);
|
$('#controls').append(odfToolbarHtml);
|
||||||
});
|
|
||||||
|
|
||||||
// fade out file list and show WebODF canvas
|
$('#office-content').addClass('wide');
|
||||||
$('.documentslist, #emptyfolder').fadeOut('slow').promise().done(function() {
|
|
||||||
var memberId, odfelement, odfcanvas, canvashtml =
|
var memberId, odfelement, odfcanvas, canvashtml =
|
||||||
'<div id = "mainContainer" class="claro" style="">'+
|
'<div id = "mainContainer" class="claro" style="">' +
|
||||||
'<div id = "editor">'+
|
'<div id = "editor">' +
|
||||||
'<div id = "container">'+
|
'<div id = "container">' +
|
||||||
'<div id="canvas"></div>'+
|
'<div id="canvas"></div>' +
|
||||||
'</div>'+
|
'</div>' +
|
||||||
'</div>'+
|
'</div>' +
|
||||||
'<div id = "collaboration">'+
|
'<div id = "collaboration">' +
|
||||||
'<div id = "collabContainer">'+
|
'<div id = "collabContainer">' +
|
||||||
'<div id = "people">'+
|
'<div id = "people">' +
|
||||||
'<div id = "inviteButton"></div>'+
|
'<div id = "inviteButton"></div>' +
|
||||||
'<div id = "memberList"></div>'+
|
'<div id = "memberList"></div>' +
|
||||||
'</div>'+
|
'</div>' +
|
||||||
'</div>'+
|
'</div>' +
|
||||||
'</div>'+
|
'</div>' +
|
||||||
'</div>';
|
'</div>';
|
||||||
$(document.body).addClass("claro");
|
$(document.body).addClass("claro");
|
||||||
$('.documentslist, #emptyfolder').after(canvashtml);
|
$('.documentslist, #emptyfolder').after(canvashtml);
|
||||||
// in case we are on the public sharing page we shall display the odf into the preview tag
|
// in case we are on the public sharing page we shall display the odf into the preview tag
|
||||||
$('#preview').html(canvashtml);
|
$('#preview').html(canvashtml);
|
||||||
|
|
||||||
runtime.assert(response.es_id, "invalid session id.");
|
runtime.assert(response.es_id, "invalid session id.");
|
||||||
memberId = response.member_id;
|
memberId = response.member_id;
|
||||||
webodfEditor.boot(
|
webodfEditor.boot(
|
||||||
{
|
{
|
||||||
collaborative: "owncloud",
|
collaborative: "owncloud",
|
||||||
docUrl: doclocation,
|
docUrl: doclocation,
|
||||||
loginProcedure: function(cb) {
|
loginProcedure: function(cb) {
|
||||||
cb(response.es_id, OC.currentUser, "token");
|
cb(response.es_id, OC.currentUser, "token");
|
||||||
},
|
},
|
||||||
joinSession: function(userId, sessionId, cb) {
|
joinSession: function(userId, sessionId, cb) {
|
||||||
cb(memberId);
|
cb(memberId);
|
||||||
},
|
},
|
||||||
callback: function() {
|
callback: function() {
|
||||||
// initialized.
|
// initialized.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
startSession : function(filepath){
|
startSession: function(filepath) {
|
||||||
"use strict";
|
"use strict";
|
||||||
if (officeMain.initialized === undefined) {
|
if (officeMain.initialized === undefined) {
|
||||||
alert("WebODF Editor not yet initialized...");
|
alert("WebODF Editor not yet initialized...");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$.post(OC.Router.generate('office_session_start'),
|
$.post(OC.Router.generate('office_session_start'),
|
||||||
{ 'path' : filepath },
|
{'path': filepath},
|
||||||
officeMain.initSession
|
officeMain.initSession
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
joinSession : function (esId){
|
joinSession: function(esId) {
|
||||||
$.post(OC.Router.generate('office_session_join') + '/' + esId,
|
$.post(OC.Router.generate('office_session_join') + '/' + esId,
|
||||||
{},
|
{},
|
||||||
officeMain.initSession
|
officeMain.initSession
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
updateSessions : function(){
|
updateSessions: function() {
|
||||||
$('#editing-sessions').load(OC.Router.generate('office_session_listhtml'), {}, officeMain.onSessions);
|
$('#editing-sessions').load(OC.Router.generate('office_session_listhtml'), {}, officeMain.onSessions);
|
||||||
},
|
},
|
||||||
|
onSessions: function() {
|
||||||
onSessions : function(){
|
|
||||||
$('#editing-sessions a').click(
|
$('#editing-sessions a').click(
|
||||||
function(event){
|
function(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
officeMain.joinSession($(this).attr('data-esid'));
|
officeMain.joinSession($(this).attr('data-esid'));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
onInvite: function() {
|
||||||
|
$('#invite-block').toggle();
|
||||||
|
},
|
||||||
|
sendInvite: function() {
|
||||||
|
var users = [];
|
||||||
|
$('input[name=invitee\\[\\]]').each(function(i, e) {
|
||||||
|
users.push($(e).val());
|
||||||
|
});
|
||||||
|
$.post(OC.Router.generate('office_user_invite'), {users: users});
|
||||||
|
},
|
||||||
onClose: function() {
|
onClose: function() {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
@ -127,8 +133,9 @@ var officeMain = {
|
|||||||
$('#mainContainer').remove();
|
$('#mainContainer').remove();
|
||||||
$('#odf-canvas').remove();
|
$('#odf-canvas').remove();
|
||||||
$('.actions,#file_access_panel').fadeIn('slow');
|
$('.actions,#file_access_panel').fadeIn('slow');
|
||||||
$('.documentslist, #emptyfolder').fadeIn('slow');
|
$('.documentslist, #emptyfolder, #editing-sessions').fadeIn('slow');
|
||||||
$(document.body).removeClass('claro');
|
$(document.body).removeClass('claro');
|
||||||
|
$('#office-content').removeClass('wide');
|
||||||
webodfEditor.shutdown();
|
webodfEditor.shutdown();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -141,6 +148,32 @@ $(document).ready(function() {
|
|||||||
});
|
});
|
||||||
$('#odf_close').live('click', officeMain.onClose);
|
$('#odf_close').live('click', officeMain.onClose);
|
||||||
$('#odf_invite').live('click', officeMain.onInvite);
|
$('#odf_invite').live('click', officeMain.onInvite);
|
||||||
$('#session-list').click(officeMain.showSessions);
|
$('#invite-send').live('click', officeMain.sendInvite);
|
||||||
|
|
||||||
|
$('#inivite-input').autocomplete({
|
||||||
|
minLength: 1,
|
||||||
|
source: function(search, response) {
|
||||||
|
$.get(OC.Router.generate('office_user_search'), {search: $('#inivite-input').val()},
|
||||||
|
function(result) {
|
||||||
|
if (result.status == 'success' && result.data.length > 0) {
|
||||||
|
response(result.data);
|
||||||
|
} else {
|
||||||
|
response([t('core', 'No people found')]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
select: function(event, el) {
|
||||||
|
var item = $(
|
||||||
|
'<li>'
|
||||||
|
+ el.item.label
|
||||||
|
+ '<input type="hidden" name="invitee[]" value="'
|
||||||
|
+ el.item.value
|
||||||
|
+ '" />'
|
||||||
|
+ '</li>'
|
||||||
|
);
|
||||||
|
$('#invitee-list').append(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
OC.addScript('office', 'dojo-amalgamation', officeMain.onStartup);
|
OC.addScript('office', 'dojo-amalgamation', officeMain.onStartup);
|
||||||
});
|
});
|
||||||
|
@ -1,4 +1,10 @@
|
|||||||
<div id="controls"></div>
|
<div id="controls">
|
||||||
|
<div id="invite-block" style="display:none">
|
||||||
|
<input id="inivite-input" type="text" />
|
||||||
|
<div id="invitee-list"></div>
|
||||||
|
<button id="invite-send"><?php p('Send Invitation') ?></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div id="office-content">
|
<div id="office-content">
|
||||||
<div id="editing-sessions">
|
<div id="editing-sessions">
|
||||||
</div>
|
</div>
|
||||||
|
@ -2,5 +2,5 @@
|
|||||||
<div><a href="" data-esid="<?php p($invite['es_id']); ?>"><?php p($invite['es_id']); ?></a></div>
|
<div><a href="" data-esid="<?php p($invite['es_id']); ?>"><?php p($invite['es_id']); ?></a></div>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<?php foreach ($_['sessions'] as $session){ ?>
|
<?php foreach ($_['sessions'] as $session){ ?>
|
||||||
<div><a href="" data-esid="<?php p($session['es_id']); ?>"><?php p($session['es_id']); ?></a></div>
|
<div><a href="" data-esid="<?php p($session['es_id']); ?>"><?php p($session['document_path']); ?></a></div>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user