Invitations. Ugly but works

This commit is contained in:
Victor Dubiniuk 2013-08-13 19:38:30 +03:00 committed by Tobias Hintze
parent 128edd8dee
commit c1c01c364c
7 changed files with 195 additions and 75 deletions

View File

@ -14,6 +14,10 @@ namespace OCA\Office;
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){
\OCP\JSON::checkLoggedIn();
@ -24,6 +28,63 @@ class Controller {
$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){
$uid = self::getUser();
$path = @$_POST['path'];
@ -56,14 +117,6 @@ class Controller {
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){
$esId = @$args['es_id'];
\OCP\JSON::checkLoggedIn();

View File

@ -52,7 +52,7 @@ try{
$x['display_name'] = \OCP\User::getDisplayName($x['uid']);
// Stub
$x['avatar_url'] = \OCP\Util::linkToRoute('office_avatar');
$x['avatar_url'] = \OCP\Util::linkToRoute('office_user_avatar');
return $x;
},
$members

View File

@ -54,7 +54,18 @@ $this->create('office_session_join', 'ajax/session/join/{es_id}')
->action('\OCA\Office\Controller', 'joinSession')
;
$this->create('office_avatar', 'ajax/avatar')
$this->create('office_user_avatar', 'ajax/user/avatar')
->get()
->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')
;

View File

@ -7,6 +7,10 @@
#office-content{
padding-left:160px;
}
#office-content.wide{
padding-left: 0;
}
#editing-sessions{
position:absolute;
left:0;
@ -28,6 +32,10 @@ position:relative;top:3em;width: 100%;
float:left;
}
#odf_invite{
float:right;
}
#editor-content #mainContainer{
background-color: transparent;
}
@ -39,3 +47,12 @@ float:left;
#memberList{
padding-top: 5px;
}
#invite-block{
position: absolute;
top:3em;
margin-top:-3px;
right:72px;
padding: 10px;
background-color: #ddd;
}

View File

@ -5,12 +5,12 @@ var officeMain = {
OC.addScript('office', 'webodf_bootstrap', function() {
OC.addScript('office', 'webodf-debug').done(function() {
require({}, ["dojo/ready"], function(ready) {
ready(function(){
ready(function() {
require({}, ["webodf/editor/Editor"], function(Editor) {
if (Editor && typeof(Editor) === 'function') {
officeMain.initialized = 1;
} else {
alert("initialization of webodf/editor/Editor\n"+
alert("initialization of webodf/editor/Editor\n" +
"failed somehow...");
}
});
@ -27,8 +27,8 @@ var officeMain = {
OC.addScript('office', 'editor/boot_editor').done(function() {
var doclocation = response.es_id;
// fade out files menu and add odf menu
$('.documentslist, #emptyfolder').fadeOut('slow').promise().done(function() {
// fade out file list and show WebODF canvas
$('.documentslist, #emptyfolder, #editing-sessions').fadeOut('slow').promise().done(function() {
// odf action toolbar
var odfToolbarHtml =
'<div id="odf-toolbar">'
@ -41,25 +41,23 @@ var officeMain = {
+ '<span id="toolbar" class="claro"></span>'
+ '</div>';
$('#controls').append(odfToolbarHtml);
});
// fade out file list and show WebODF canvas
$('.documentslist, #emptyfolder').fadeOut('slow').promise().done(function() {
$('#office-content').addClass('wide');
var memberId, odfelement, odfcanvas, canvashtml =
'<div id = "mainContainer" class="claro" style="">'+
'<div id = "editor">'+
'<div id = "container">'+
'<div id="canvas"></div>'+
'</div>'+
'</div>'+
'<div id = "collaboration">'+
'<div id = "collabContainer">'+
'<div id = "people">'+
'<div id = "inviteButton"></div>'+
'<div id = "memberList"></div>'+
'</div>'+
'</div>'+
'</div>'+
'<div id = "mainContainer" class="claro" style="">' +
'<div id = "editor">' +
'<div id = "container">' +
'<div id="canvas"></div>' +
'</div>' +
'</div>' +
'<div id = "collaboration">' +
'<div id = "collabContainer">' +
'<div id = "people">' +
'<div id = "inviteButton"></div>' +
'<div id = "memberList"></div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>';
$(document.body).addClass("claro");
$('.documentslist, #emptyfolder').after(canvashtml);
@ -86,7 +84,7 @@ var officeMain = {
});
});
},
startSession : function(filepath){
startSession: function(filepath) {
"use strict";
if (officeMain.initialized === undefined) {
alert("WebODF Editor not yet initialized...");
@ -94,29 +92,37 @@ var officeMain = {
}
$.post(OC.Router.generate('office_session_start'),
{ 'path' : filepath },
{'path': filepath},
officeMain.initSession
);
},
joinSession : function (esId){
joinSession: function(esId) {
$.post(OC.Router.generate('office_session_join') + '/' + esId,
{},
officeMain.initSession
);
},
updateSessions : function(){
updateSessions: function() {
$('#editing-sessions').load(OC.Router.generate('office_session_listhtml'), {}, officeMain.onSessions);
},
onSessions : function(){
onSessions: function() {
$('#editing-sessions a').click(
function(event){
function(event) {
event.preventDefault();
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() {
"use strict";
@ -127,8 +133,9 @@ var officeMain = {
$('#mainContainer').remove();
$('#odf-canvas').remove();
$('.actions,#file_access_panel').fadeIn('slow');
$('.documentslist, #emptyfolder').fadeIn('slow');
$('.documentslist, #emptyfolder, #editing-sessions').fadeIn('slow');
$(document.body).removeClass('claro');
$('#office-content').removeClass('wide');
webodfEditor.shutdown();
});
}
@ -141,6 +148,32 @@ $(document).ready(function() {
});
$('#odf_close').live('click', officeMain.onClose);
$('#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);
});

View File

@ -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="editing-sessions">
</div>

View File

@ -2,5 +2,5 @@
<div><a href="" data-esid="<?php p($invite['es_id']); ?>"><?php p($invite['es_id']); ?></a></div>
<?php } ?>
<?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 } ?>