1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/noalyss_ynh.git synced 2024-09-03 19:46:20 +02:00
noalyss_ynh/sources/html/js/todo_list.js
2015-09-27 00:54:25 +02:00

274 lines
No EOL
9.3 KiB
JavaScript

/*
* This file is part of NOALYSS.
*
* NOALYSS is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* NOALYSS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with NOALYSS; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* $Revision$ */
// Copyright Author Dany De Bontridder danydb@aevalys.eu
/*!\file
* \brief this file contains all the javascript needed by the todo_list.
* it requires prototype.js. The calling page must have
* the gDossier
*
*/
function todo_list_show(p_id)
{
waiting_node();
/*
* create a div id based on p_id
*/
try
{
var gDossier = $('gDossier').value;
var action = new Ajax.Request(
'ajax_todo_list.php',
{
method: 'get',
parameters:
{'show':
1, 'id':
p_id, 'gDossier':
gDossier
},
onFailure: todo_list_show_error,
onSuccess: function (req)
{
try
{
var todo_div=create_div({id:'todo_list_div'+p_id,cssclass:'add_todo_list',drag:1});
todo_div.style.top = (posY + offsetY) + 'px';
todo_div.style.left = (posX + offsetX - 200) + 'px';
var answer = req.responseXML;
var tl_id = answer.getElementsByTagName('tl_id');
var tl_content = answer.getElementsByTagName('tl_content');
if (tl_id.length == 0)
{
var rec = req.responseText;
alert_box('erreur :' + rec);
}
var content = unescape_xml(getNodeText(tl_content[0]));
todo_div.innerHTML=content;
remove_waiting_node();
content.evalScripts();
Effect.SlideDown(todo_div, {duration: 0.1, direction: 'top-left'})
}
catch (e)
{
alert_box(e.message);
}
}
}
);
}
catch (e)
{
alert_box(" Envoi ajax non possible" + e.message);
}
return false;
}
function todo_list_show_error(request_json)
{
alert_box('failure');
}
function add_todo()
{
todo_list_show(0);
}
function todo_list_remove(p_ctl)
{
smoke.confirm('Effacer ?',
function (e) {
if ( !e ) {return;}
$("tr" + p_ctl).hide();
var gDossier = $('gDossier').value;
var action = new Ajax.Request(
'ajax_todo_list.php',
{
method: 'get',
parameters:{'del':1, 'id':p_ctl, 'gDossier':gDossier}
}
);
return false;
});
}
function todo_list_save(p_form)
{
try {
var form=$('todo_form_'+p_form);
var json=form.serialize(true);
new Ajax.Request('ajax_todo_list.php',
{
method:'get',
parameters:json,
onSuccess:function (req) {
// On success : reload the correct row and close
// the box
var answer = req.responseXML;
var tl_id = answer.getElementsByTagName('tl_id');
var content = answer.getElementsByTagName('row');
var style = answer.getElementsByTagName('style');
if (tl_id.length == 0)
{
var rec = req.responseText;
alert_box('erreur :' + rec);
}
var tr = $('tr'+p_form);
if ( p_form == 0)
{
tr=document.createElement('tr');
tr.id='tr'+getNodeText(tl_id[0]);
$('table_todo').appendChild(tr);
}
var html=getNodeText(content[0]);
tr.innerHTML=unescape_xml(html);
$w(tr.className).each ( function(p_class) { tr.removeClassName(p_class); } );
tr.addClassName(getNodeText(style[0]));
// remove the user list if exists
if ( $('shared_'+p_form)) {$('shared_'+p_form).remove();}
Effect.Fold('todo_list_div'+p_form,{duration:0.1});
}
}
);
}
catch (e) {
console.log(e.message);
return false;
}
return false;
}
/**
* @brief toggle the zoom of the note
*/
var todo_maximize=false;
/**
* @brief maximize or minimize the todo list from the
* dashboard.
* @returns {undefined}
*/
function zoom_todo ()
{
waiting_box();
if ( ! todo_maximize)
{
var clonetodo=$('todo_listg_div').clone();
clonetodo.setAttribute('id','clone_todo_list')
clonetodo.setStyle({'z-index':1,'position':'absolute','width':'95%','height':'95%','top':'2%','right':'2%','left':'2%'})
clonetodo.innerHTML=$('todo_listg_div').innerHTML;
$('todo_listg_div').innerHTML="";
clonetodo.addClassName('inner_box');
clonetodo.removeClassName('box');
document.body.appendChild(clonetodo);
todo_maximize=true;
} else
{
todo_maximize=false;
$('todo_listg_div').innerHTML=$('clone_todo_list').innerHTML;
$('clone_todo_list').remove();
}
sorttable.makeSortable(document.getElementById('table_todo'));
remove_waiting_box();
}
function todo_list_share(p_note, p_dossier)
{
waiting_node();
new Ajax.Request(
'ajax_todo_list.php',
{
method: "get",
parameters: {"act": 'shared_note',
"todo_id": p_note,
"gDossier": p_dossier
},
onSuccess: function (p_xml) {
try {
/**
* Show the little div to add other user
* or a error message if it is forbidden
*/
remove_waiting_node();
var answer = p_xml.responseXML;
var content = answer.getElementsByTagName('content');
if (content.length == 0) {
return;
}
var html_content=unescape_xml(getNodeText(content[0]));
var shared_note = "shared_" + p_note;
create_div({"id": shared_note, "cssclass": "inner_box",drag:1});
$("shared_" + p_note).setStyle( { top : posY + offsetY+"px",left:posX+offsetY+"px","width":"25%"});
$("shared_" + p_note).hide();
$(shared_note).innerHTML = html_content;
$(shared_note).show();
} catch (e) {
alert_box(e.message);
}
}
}
);
}
function todo_list_set_share(note_id,p_login,p_dossier)
{
waiting_node();
new Ajax.Request('ajax_todo_list.php',
{
method:"get",
parameters: { todo_id:note_id,act:"set_share","gDossier":p_dossier,"login":p_login},
onSuccess:function() {
remove_waiting_node();
}
}
)
}
function todo_list_remove_share(note_id,p_login,p_dossier)
{
waiting_node();
new Ajax.Request('ajax_todo_list.php',{
parameters : {
'gDossier':p_dossier,
'todo_id':note_id,
'login':p_login,
'act':"remove_share"
},
method:"get",
onSuccess:function (p_xml) {
remove_waiting_node();
var answer=p_xml.responseXML;
var status=answer.getElementsByTagName('status');
if ( status.length == 0) {
alert_box ('erreur reponse ');
}
var status_code=getNodeText(status[0]);
if ( status_code == 'ok') {
$("tr" + note_id).hide();
}
}
});
}