mirror of
https://github.com/YunoHost-Apps/noalyss_ynh.git
synced 2024-09-03 19:46:20 +02:00
193 lines
6.2 KiB
JavaScript
193 lines
6.2 KiB
JavaScript
/*
|
|
* Copyright (C) 2015 Dany De Bontridder <dany@alchimerys.be>
|
|
*
|
|
* This program 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.
|
|
*
|
|
* This program 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 this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
/**
|
|
* Display the forbidden folders if the request comes from a form
|
|
* with an input text (id:database_filter_input) then this text is
|
|
* used as a filter
|
|
* @param {type} p_user : the user id
|
|
* @returns nothing
|
|
*/
|
|
function folder_display(p_user)
|
|
{
|
|
/**
|
|
* If form exist and there is something
|
|
*
|
|
*/
|
|
var p_filter = "";
|
|
if ($('database_filter_input')) {
|
|
console.log($('database_filter_input').value);
|
|
p_filter = $('database_filter_input').value;
|
|
}
|
|
/*
|
|
* Ajax request to display the folder
|
|
*/
|
|
new Ajax.Request('ajax_misc.php', {
|
|
method: "get",
|
|
parameters: {"p_user": p_user, "op": "folder_display", "p_filter": p_filter, 'gDossier': 0},
|
|
onSuccess: function (p_xml) {
|
|
// table id = database_list
|
|
var folder = {};
|
|
var create = false;
|
|
if (!$('folder_list_div')) {
|
|
folder = create_div({'id': 'folder_list_div', 'cssclass': "inner_box", 'style': 'width:90%,right:5%;top:100px'});
|
|
create = true;
|
|
}
|
|
folder = $('folder_list_div');
|
|
// Analyze XML answer
|
|
var answer = p_xml.responseXML;
|
|
var a = answer.getElementsByTagName('status');
|
|
var html = answer.getElementsByTagName('content');
|
|
if (a.length == 0) {
|
|
var rec = req.responseText;
|
|
alert_box('erreur :' + rec);
|
|
}
|
|
|
|
var content = getNodeText(html[0]);
|
|
// fill up the div
|
|
folder.innerHTML = unescape_xml(content);
|
|
|
|
// show it
|
|
folder.show();
|
|
$('database_filter_input').focus();
|
|
}
|
|
});
|
|
}
|
|
/**
|
|
* Remove the grant for an user to the given database id
|
|
* @param {integer} p_user use_id id of the user
|
|
* @param {integer} p_dossier id of the database
|
|
* @returns nothing
|
|
*/
|
|
function folder_remove(p_user,p_dossier )
|
|
{
|
|
smoke.confirm ('Confirmer',
|
|
function (e) {
|
|
if (e ) {
|
|
waiting_box();
|
|
new Ajax.Request('ajax_misc.php', {
|
|
method: "get",
|
|
parameters: {"p_user": p_user, 'p_dossier': p_dossier, "op": "folder_remove", 'gDossier': 0},
|
|
onSuccess: function (p_xml) {
|
|
// table id = database_list
|
|
new Effect.Opacity('row'+p_dossier, { from: 1.0, to: 0.0, duration: 0.2 });
|
|
remove_waiting_box();
|
|
}
|
|
|
|
});
|
|
} else {
|
|
return ;
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Grant the access to a folder for a given user and add a row in the table
|
|
* (id : database_list)
|
|
* @param {integer} p_user use_id id of the user
|
|
* @param {integer} p_dossier id of the database
|
|
* @returns {undefined}
|
|
*/
|
|
function folder_add(p_user, p_dossier)
|
|
{
|
|
waiting_box();
|
|
new Ajax.Request('ajax_misc.php', {
|
|
method: "get",
|
|
parameters: {"p_user": p_user, 'p_dossier': p_dossier, "op": "folder_add", 'gDossier': 0},
|
|
onSuccess: function (p_xml) {
|
|
// table id = database_list
|
|
// Analyze XML answer
|
|
var answer = p_xml.responseXML;
|
|
var a = answer.getElementsByTagName('status');
|
|
var html = answer.getElementsByTagName('content');
|
|
if (a.length == 0) {
|
|
var rec = req.responseText;
|
|
alert_box('erreur :' + rec);
|
|
}
|
|
|
|
var content = getNodeText(html[0]);
|
|
var nb = $('database_list').rows.length + 1;
|
|
var row = new Element('tr', {'id': 'row' + p_dossier});
|
|
if (nb % 2 == 0) {
|
|
row.addClassName('odd');
|
|
} else {
|
|
row.addClassName('even');
|
|
}
|
|
row.innerHTML = unescape_xml(content);
|
|
$('database_list').appendChild(row);
|
|
$('row_db_'+p_dossier).hide();
|
|
remove_waiting_box();
|
|
}
|
|
});
|
|
|
|
}
|
|
function display_admin_answer(p_dossier,p_action)
|
|
{
|
|
waiting_box();
|
|
new Ajax.Request ("ajax_misc.php",{
|
|
method:"get",
|
|
parameters:{"p_dossier":p_dossier,"op":p_action,'gDossier':0},
|
|
onSuccess : function (p_xml) {
|
|
try {
|
|
var div_display="folder_admin_div";
|
|
var answer = p_xml.responseXML;
|
|
var a = answer.getElementsByTagName('status');
|
|
var html = answer.getElementsByTagName('content');
|
|
if (a.length == 0) {
|
|
var rec = req.responseText;
|
|
alert_box('erreur :' + rec);
|
|
}
|
|
|
|
var folder;
|
|
var create = false;
|
|
if (!$(div_display)) {
|
|
folder = create_div({'id': div_display, 'cssclass': "inner_box", style: 'width:90%;right:5%;top:100px'});
|
|
create = true;
|
|
}
|
|
folder=$(div_display);
|
|
|
|
var content = getNodeText(html[0]);
|
|
folder.innerHTML=unescape_xml(content);
|
|
var pos=calcy(250);
|
|
$(div_display).setStyle({top:pos+'px'});
|
|
|
|
folder.show();
|
|
remove_waiting_box();
|
|
} catch (e) {
|
|
console.log(e.message);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
function folder_drop(p_dossier)
|
|
{
|
|
display_admin_answer(p_dossier,'folder_drop');
|
|
}
|
|
|
|
function folder_modify(p_dossier)
|
|
{
|
|
display_admin_answer(p_dossier,'folder_modify');
|
|
}
|
|
function modele_modify(p_dossier)
|
|
{
|
|
display_admin_answer(p_dossier,'modele_modify');
|
|
}
|
|
function modele_drop(p_dossier)
|
|
{
|
|
display_admin_answer(p_dossier,'modele_drop');
|
|
}
|