mirror of
https://github.com/YunoHost-Apps/noalyss_ynh.git
synced 2024-09-03 19:46:20 +02:00
910 lines
25 KiB
JavaScript
910 lines
25 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 javascript for searching a card
|
||
|
*/
|
||
|
|
||
|
var card_layer=1;
|
||
|
/**
|
||
|
*@brief search a card an display the result into a inner box
|
||
|
*/
|
||
|
function boxsearch_card(p_dossier)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
waiting_box();
|
||
|
removeDiv('boxsearch_card_div');
|
||
|
var queryString="gDossier="+p_dossier+"&op=cardsearch"+"&card="+$(card_search).value;
|
||
|
var action = new Ajax.Request(
|
||
|
"ajax_misc.php" ,
|
||
|
{
|
||
|
method:'get', parameters:queryString,
|
||
|
onFailure:ajax_misc_failure,
|
||
|
onSuccess:function(req){
|
||
|
remove_waiting_box();
|
||
|
var y=posY+15;
|
||
|
var div_style="left:10%;width:80%;"+";top:"+y+"px";
|
||
|
add_div({id:'boxsearch_card_div',cssclass:'inner_box',html:loading(),style:div_style,drag:true});
|
||
|
$('boxsearch_card_div').innerHTML=req.responseText;
|
||
|
sorttable.makeSortable($('tb_fiche'));
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
}catch( e)
|
||
|
{
|
||
|
alert_box(e.getMessage);
|
||
|
}
|
||
|
}
|
||
|
/**
|
||
|
*@brief show the ipopup with the form to search a card
|
||
|
* the properties
|
||
|
* - jrn for the ledger
|
||
|
* - fs for the action
|
||
|
* - price for the price of the card (field to update)
|
||
|
* - tvaid for the tvaid of the card (field to update)
|
||
|
* - inp input text to update with the quickcode
|
||
|
* - label field to update with the name
|
||
|
* - ctl the id to fill with the HTML answer (ending with _content)
|
||
|
*/
|
||
|
function search_card(obj)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
var gDossier=$('gDossier').value;
|
||
|
var inp=obj.inp;
|
||
|
var string_to_search=$(inp).value;
|
||
|
var label=obj.label;
|
||
|
var typecard=obj.typecard;
|
||
|
var price=obj.price;
|
||
|
var tvaid=obj.tvaid;
|
||
|
var jrn=obj.jrn;
|
||
|
if ( jrn==undefined)
|
||
|
{
|
||
|
if ( g('p_jrn')) {
|
||
|
jrn=$('p_jrn').value;
|
||
|
}
|
||
|
else {
|
||
|
jrn=-1;
|
||
|
}
|
||
|
}
|
||
|
var query=encodeJSON({'gDossier':gDossier,
|
||
|
'inp':inp,'label':label,'price':price,'tvaid':tvaid,
|
||
|
'ctl':'search_card','op':'fs','jrn':jrn,
|
||
|
'typecard':typecard,'query':string_to_search
|
||
|
});
|
||
|
if ( $('search_card') ) {
|
||
|
removeDiv('search_card');
|
||
|
}
|
||
|
|
||
|
|
||
|
waiting_box();
|
||
|
|
||
|
|
||
|
var action=new Ajax.Request ( 'ajax_card.php',
|
||
|
{
|
||
|
method:'get',
|
||
|
parameters:query,
|
||
|
onFailure:errorFid,
|
||
|
onSuccess:result_card_search
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
catch(e)
|
||
|
{
|
||
|
alert_box('search_card failed'+e.message);
|
||
|
}
|
||
|
}
|
||
|
/**
|
||
|
*@brief Display form for select card to add to action : other_concerned
|
||
|
*action_add_concerned_card
|
||
|
*/
|
||
|
function action_add_concerned_card(obj)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
var dossier = 0;
|
||
|
var inp="";
|
||
|
var ag_id=0;
|
||
|
|
||
|
if (obj.dossier) {
|
||
|
dossier = obj.dossier; /* From the button */
|
||
|
}
|
||
|
if (obj.ag_id) {
|
||
|
ag_id=obj.ag_id;
|
||
|
}
|
||
|
/* from the form */
|
||
|
if (obj.elements) {
|
||
|
if (obj.elements['gDossier'])
|
||
|
{
|
||
|
dossier = obj.elements['gDossier'].value;
|
||
|
}
|
||
|
|
||
|
if (obj.elements['query']) {
|
||
|
inp = obj.elements['query'].value;
|
||
|
}
|
||
|
|
||
|
if (obj.elements['ag_id']) {
|
||
|
ag_id = obj.elements['ag_id'].value;
|
||
|
}
|
||
|
}
|
||
|
if (dossier == 0) {
|
||
|
throw "obj.dossier not found";
|
||
|
}
|
||
|
if (ag_id == 0) {
|
||
|
throw "obj.ag_id not found";
|
||
|
}
|
||
|
var query = encodeJSON({
|
||
|
'gDossier': dossier,
|
||
|
'op': 'action_add_concerned_card',
|
||
|
'query' : inp,
|
||
|
'ctl' : 'unused',
|
||
|
'ag_id' : ag_id
|
||
|
});
|
||
|
|
||
|
waiting_box();
|
||
|
|
||
|
|
||
|
var action = new Ajax.Request('ajax_card.php',
|
||
|
{
|
||
|
method: 'get',
|
||
|
parameters: query,
|
||
|
onFailure: errorFid,
|
||
|
onSuccess: function (req, txt)
|
||
|
{
|
||
|
try {
|
||
|
remove_waiting_box();
|
||
|
var answer = req.responseXML;
|
||
|
var a = answer.getElementsByTagName('ctl');
|
||
|
if (a.length == 0)
|
||
|
{
|
||
|
var rec = req.responseText;
|
||
|
alert_box('erreur :' + rec);
|
||
|
}
|
||
|
var html = answer.getElementsByTagName('code');
|
||
|
var namectl = a[0].firstChild.nodeValue;
|
||
|
var nodeXml = html[0];
|
||
|
var code_html = getNodeText(nodeXml);
|
||
|
code_html = unescape_xml(code_html);
|
||
|
|
||
|
var sx = 0;
|
||
|
if (window.scrollY)
|
||
|
{
|
||
|
sx = window.scrollY + 40;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
sx = document.body.scrollTop + 60;
|
||
|
}
|
||
|
var div_style = "top:" + sx + "px;height:80%";
|
||
|
if ( ! $('search_card')) { add_div({id: 'search_card', cssclass: 'inner_box', html: "", style: div_style, drag: true}); }
|
||
|
$('search_card').innerHTML = code_html;
|
||
|
$('query').focus();
|
||
|
}catch (e) {
|
||
|
alert_box(e.message);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
catch (e)
|
||
|
{
|
||
|
alert_box('search_card failed' + e.message);
|
||
|
return false;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
*@brief when you submit the form for searching a card
|
||
|
*@param obj form
|
||
|
*@note the same as search_card, except it answer to a FORM and not
|
||
|
* to a click event
|
||
|
*/
|
||
|
function search_get_card(obj)
|
||
|
{
|
||
|
var dossier=$('gDossier').value;
|
||
|
|
||
|
var queryString="gDossier="+dossier;
|
||
|
queryString+="&op=fs";
|
||
|
|
||
|
if ( obj.elements['inp'] )
|
||
|
{
|
||
|
queryString+="&inp="+$F('inp');
|
||
|
}
|
||
|
if ( obj.elements['typecard'] )
|
||
|
{
|
||
|
queryString+="&typecard="+$F('typecard');
|
||
|
}
|
||
|
if ( obj.elements['jrn'] )
|
||
|
{
|
||
|
queryString+="&jrn="+$F('jrn');
|
||
|
}
|
||
|
if ( obj.elements['label'])
|
||
|
{
|
||
|
queryString+="&label="+$F('label');
|
||
|
}
|
||
|
if ( obj.elements['price'])
|
||
|
{
|
||
|
queryString+="&price="+$F('price');
|
||
|
}
|
||
|
if ( obj.elements['tvaid'])
|
||
|
{
|
||
|
queryString+="&tvaid="+$F('tvaid');
|
||
|
}
|
||
|
if( obj.elements['query'])
|
||
|
{
|
||
|
queryString+="&query="+$F('query');
|
||
|
}
|
||
|
if (obj.ctl )
|
||
|
{
|
||
|
queryString+="&ctl="+obj.ctl;
|
||
|
}
|
||
|
$('asearch').innerHTML=loading();
|
||
|
var action=new Ajax.Request ( 'ajax_card.php',
|
||
|
{
|
||
|
method:'get',
|
||
|
parameters:queryString,
|
||
|
onFailure:errorFid,
|
||
|
onSuccess:result_card_search
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
/**
|
||
|
*@brief show the answer of ajax request
|
||
|
*@param answer in XML
|
||
|
*/
|
||
|
function result_card_search(req)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
|
||
|
remove_waiting_box();
|
||
|
var answer=req.responseXML;
|
||
|
var a=answer.getElementsByTagName('ctl');
|
||
|
if ( a.length == 0 )
|
||
|
{
|
||
|
var rec=req.responseText;
|
||
|
alert_box ('erreur :'+rec);
|
||
|
}
|
||
|
var html=answer.getElementsByTagName('code');
|
||
|
|
||
|
var name_ctl=a[0].firstChild.nodeValue;
|
||
|
var nodeXml=html[0];
|
||
|
var code_html=getNodeText(nodeXml);
|
||
|
code_html=unescape_xml(code_html);
|
||
|
|
||
|
var sx=0;
|
||
|
if ( window.scrollY)
|
||
|
{
|
||
|
sx=window.scrollY+40;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
sx=document.body.scrollTop+60;
|
||
|
}
|
||
|
|
||
|
var div_style="top:"+sx+"px;height:80%";
|
||
|
add_div({id:'search_card',cssclass:'inner_box',html:"",style:div_style,drag:true,effect:'blinddown'});
|
||
|
|
||
|
$('search_card').innerHTML=code_html;
|
||
|
|
||
|
if ($('query')) { $('query').focus();}
|
||
|
}
|
||
|
catch (e)
|
||
|
{
|
||
|
alert_box(e.message);
|
||
|
}
|
||
|
try
|
||
|
{
|
||
|
code_html.evalScripts();
|
||
|
}
|
||
|
catch(e)
|
||
|
{
|
||
|
alert_box("Impossible executer script de la reponse\n"+e.message);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
/*!\brief Set the value of 2 input fields
|
||
|
*
|
||
|
* Set the quick code in the first ctrl and the label of the quickcode in the second one. This function is a variant of SetData for
|
||
|
* some specific need. This function is called if the caller is searchcardCtrl
|
||
|
*
|
||
|
*\param p_ctrl the input with the name of the quick code
|
||
|
*\param p_quickcode the found quick_code
|
||
|
*\param p_ctrlname the name of the input field with the label
|
||
|
*\param p_label the label of the quickcode
|
||
|
*/
|
||
|
function setCtrl(p_ctrl,p_quickcode,p_ctrlname,p_label)
|
||
|
{
|
||
|
var ctrl=g(p_ctrl);
|
||
|
if ( ctrl )
|
||
|
{
|
||
|
ctrl.value=p_quickcode;
|
||
|
}
|
||
|
var ctrl_name=g(p_ctrlname);
|
||
|
if ( ctrl_name )
|
||
|
{
|
||
|
ctrl_name.value=p_label;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
/*!\brief clean the row (the label, price and vat)
|
||
|
* \param p_ctl the calling ctrl
|
||
|
*/
|
||
|
function clean_Fid(p_ctl)
|
||
|
{
|
||
|
nSell=p_ctl+"_price";
|
||
|
nBuy=p_ctl+"_price";
|
||
|
nTva_id=p_ctl+"_tva_id";
|
||
|
if ( $(nSell) )
|
||
|
{
|
||
|
$(nSell).value="";
|
||
|
}
|
||
|
if ( $(nBuy) )
|
||
|
{
|
||
|
$(nBuy).value="";
|
||
|
}
|
||
|
if ( $(nTva_id) )
|
||
|
{
|
||
|
$(nTva_id).value="-1";
|
||
|
}
|
||
|
|
||
|
}
|
||
|
function errorFid(request,json)
|
||
|
{
|
||
|
alert_box('erreur : ajax fiche');
|
||
|
}
|
||
|
function update_value(text,li)
|
||
|
{
|
||
|
ajaxFid(text);
|
||
|
}
|
||
|
/**
|
||
|
*@brief is called when something change in ICard
|
||
|
*@param the input field
|
||
|
*@see ICard
|
||
|
*/
|
||
|
function fill_data_onchange(ctl)
|
||
|
{
|
||
|
ajaxFid(ctl);
|
||
|
|
||
|
}
|
||
|
/**
|
||
|
*@brief is called when something change in ICard
|
||
|
*@param the input field
|
||
|
*@see ICard
|
||
|
*/
|
||
|
function fill_data(text,li)
|
||
|
{
|
||
|
ajaxFid(text);
|
||
|
|
||
|
}
|
||
|
/**
|
||
|
*@brief is called when something change in ICard
|
||
|
*@param the input field
|
||
|
*@see ICard
|
||
|
*/
|
||
|
function fill_fin_data_onchange(ctl)
|
||
|
{
|
||
|
ajaxFid(ctl);
|
||
|
ajax_saldo(ctl.id);
|
||
|
}
|
||
|
/**
|
||
|
*@brief is called when something change in ICard
|
||
|
*@param the input field
|
||
|
*@see ICard
|
||
|
*/
|
||
|
function fill_fin_data(text,li)
|
||
|
{
|
||
|
ajaxFid(text);
|
||
|
ajax_saldo($(text.id));
|
||
|
}
|
||
|
/**
|
||
|
*@brief show the ipopup window and display the details of a card,
|
||
|
* to work some attribute must be set
|
||
|
*@parameter obj.qcode is the qcode, obj.nohistory if you don't want to display
|
||
|
* the history button, obj.ro is the popin is readonly
|
||
|
*@note you must the gDossier as hidden in the calling page
|
||
|
*
|
||
|
*@see ajax_card.php
|
||
|
*/
|
||
|
function fill_ipopcard(obj)
|
||
|
{
|
||
|
|
||
|
card_layer++;
|
||
|
|
||
|
var content='card_'+card_layer;
|
||
|
var nTop=170+card_layer;
|
||
|
if ( nTop > 300 ) {
|
||
|
nTop=170;
|
||
|
}
|
||
|
str_top=fixed_position(250,nTop)
|
||
|
var str_style=str_top+";width:45em;height:auto;position:absolute";
|
||
|
|
||
|
var popup={'id': content,'cssclass':'inner_box','style':str_style,'html':loading(),'drag':true};
|
||
|
|
||
|
add_div(popup);
|
||
|
var dossier=$('gDossier').value;
|
||
|
var qcode='';
|
||
|
if ( $(obj).qcode != undefined )
|
||
|
{
|
||
|
qcode=obj.qcode;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
qcode=$(obj).value;
|
||
|
}
|
||
|
// ctl=$(obj).id;
|
||
|
|
||
|
var queryString='gDossier='+dossier;
|
||
|
queryString+='&qcode='+qcode;
|
||
|
queryString+='&ctl='+content;
|
||
|
queryString+='&op=dc'; // dc for detail card
|
||
|
if ( obj.readonly != undefined) {
|
||
|
queryString+='&ro';
|
||
|
}
|
||
|
|
||
|
if ( obj.nohistory != undefined) {
|
||
|
queryString+='&nohistory';
|
||
|
}
|
||
|
|
||
|
var action=new Ajax.Request ( 'ajax_card.php',
|
||
|
{
|
||
|
method:'get',
|
||
|
parameters:queryString,
|
||
|
onFailure:errorFid,
|
||
|
onSuccess:fill_box
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
/**
|
||
|
*@brief
|
||
|
* \param request : object request
|
||
|
* \param json : json answer
|
||
|
\code
|
||
|
\endcode
|
||
|
*/
|
||
|
function successFill_ipopcard(req,json)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
var answer=req.responseXML;
|
||
|
var a=answer.getElementsByTagName('ctl');
|
||
|
var html=answer.getElementsByTagName('code');
|
||
|
|
||
|
if ( a.length == 0 )
|
||
|
{
|
||
|
var rec=req.responseText;
|
||
|
alert_box ('erreur :'+rec);
|
||
|
}
|
||
|
var name_ctl=a[0].firstChild.nodeValue;
|
||
|
var code_html=getNodeText(html[0]);
|
||
|
code_html=unescape_xml(code_html);
|
||
|
|
||
|
$(name_ctl).innerHTML=code_html;
|
||
|
}
|
||
|
catch (e)
|
||
|
{
|
||
|
alert_box(e.message);
|
||
|
}
|
||
|
try
|
||
|
{
|
||
|
code_html.evalScripts();
|
||
|
}
|
||
|
catch(e)
|
||
|
{
|
||
|
alert_box("Impossible executer script de la reponse\n"+e.message);
|
||
|
}
|
||
|
}
|
||
|
/**
|
||
|
*@brief show the ipopup for selecting a card type, it is a needed step before adding
|
||
|
* a card
|
||
|
*@param input field (obj) it must have the attribute ipopup
|
||
|
* possible attribute :
|
||
|
* - filter is the filter but with a fd_id list, -1 means there is no filter
|
||
|
* - ref if we want to refresh the window after adding a card
|
||
|
* - type type of card (supplier, customer...)
|
||
|
*@see ajax_card.php
|
||
|
*/
|
||
|
function select_card_type(obj)
|
||
|
{
|
||
|
|
||
|
var dossier=$('gDossier').value;
|
||
|
|
||
|
// give a filter, -1 if not
|
||
|
var filter=$(obj).filter;
|
||
|
if ( filter==undefined)
|
||
|
{
|
||
|
filter=-1;
|
||
|
}
|
||
|
var content="select_card_div";
|
||
|
if ( $(content)){removeDiv(content);}
|
||
|
var sx=0;
|
||
|
if ( window.scrollY)
|
||
|
{
|
||
|
sx=window.scrollY+160;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
sx=document.body.scrollTop+160;
|
||
|
}
|
||
|
|
||
|
var str_style="top:"+sx+"px;height:auto";
|
||
|
waiting_box();
|
||
|
var popup={'id': content,'cssclass':'inner_box','style':str_style,'html':"",'drag':true};
|
||
|
|
||
|
add_div(popup);
|
||
|
|
||
|
var queryString='gDossier='+dossier;
|
||
|
queryString+='&ctl='+content;
|
||
|
queryString+='&op=st'; // st for selecting type
|
||
|
if ( $(obj).win_refresh!=undefined)
|
||
|
{
|
||
|
queryString+='&ref';
|
||
|
}
|
||
|
queryString+='&fil='+filter;
|
||
|
// filter on the ledger, -1 if not
|
||
|
var oledger=$(obj).jrn;
|
||
|
if (oledger==undefined)
|
||
|
{
|
||
|
ledger=-1;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
ledger=$(obj).jrn;
|
||
|
}
|
||
|
|
||
|
queryString+='&ledger='+ledger;
|
||
|
|
||
|
if ( obj.type_cat)
|
||
|
{
|
||
|
queryString+='&cat='+obj.type_cat;
|
||
|
}
|
||
|
|
||
|
var action=new Ajax.Request ( 'ajax_card.php',
|
||
|
{
|
||
|
method:'get',
|
||
|
parameters:queryString,
|
||
|
onFailure:errorFid,
|
||
|
onSuccess:function(req) {
|
||
|
|
||
|
fill_box(req);
|
||
|
$('lk_cat_card_table').focus();
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
/**
|
||
|
*@brief Show a blank card
|
||
|
*@param Form object (obj)
|
||
|
* possible attribute :
|
||
|
* - filter is the filter but with a fd_id list, -1 means there is no filter
|
||
|
* - ref : reload the window after adding card
|
||
|
* - content : name of the div
|
||
|
*@example dis_blank_card({gDossier:15,fd_id:12,ref:1});
|
||
|
*@see ajax_card.php
|
||
|
*/
|
||
|
function dis_blank_card(obj)
|
||
|
{
|
||
|
// first we have to take the form elt we need
|
||
|
if ( obj.fd_id.value != undefined )
|
||
|
{ var fd_id=$F('fd_id'); }
|
||
|
else {fd_id=obj.fd_id;}
|
||
|
|
||
|
var ref="";
|
||
|
if ( obj.elements && obj.elements['ref'] )
|
||
|
{
|
||
|
ref='&ref';
|
||
|
}
|
||
|
var content='div_new_card';
|
||
|
var nTop=calcy(150);
|
||
|
var nLeft=posX;
|
||
|
var str_style="top:"+nTop+"px;right:"+nLeft+"px;height:auto";
|
||
|
|
||
|
var popup={'id': content,'cssclass':'inner_box','style':str_style,'html':loading(),'drag':true};
|
||
|
if ( $(content)) {removeDiv(content);}
|
||
|
add_div(popup);
|
||
|
|
||
|
if ( obj.gDossier.value != undefined ) {
|
||
|
var dossier=$('gDossier').value;} else {
|
||
|
var dossier=obj.gDossier;
|
||
|
}
|
||
|
|
||
|
var queryString='gDossier='+dossier;
|
||
|
queryString+='&ctl='+content;
|
||
|
queryString+='&fd_id='+fd_id;
|
||
|
queryString+=ref;
|
||
|
queryString+='&op=bc'; // bc for blank card
|
||
|
|
||
|
var action=new Ajax.Request ( 'ajax_card.php',
|
||
|
{
|
||
|
method:'get',
|
||
|
parameters:queryString,
|
||
|
onFailure:errorFid,
|
||
|
onSuccess:successFill_ipopcard
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
function form_blank_card(obj)
|
||
|
{
|
||
|
// first we have to take the form elt we need
|
||
|
var fd_id=obj.fd_id;
|
||
|
var content='div_new_card';
|
||
|
var nTop=posY-40;
|
||
|
var nLeft=posX-20;
|
||
|
var str_style="top:"+nTop+"px;left:"+nLeft+"px;width:60em;height:auto";
|
||
|
|
||
|
var popup={'id': content,'cssclass':'inner_box','style':str_style,'html':loading(),'drag':true};
|
||
|
if ( $(content)) {removeDiv(content);}
|
||
|
add_div(popup);
|
||
|
|
||
|
|
||
|
var dossier=$('gDossier').value;
|
||
|
|
||
|
var queryString='gDossier='+dossier;
|
||
|
queryString+='&ctl='+content;
|
||
|
queryString+='&fd_id='+fd_id;
|
||
|
queryString+='&op=bc'; // bc for blank card
|
||
|
|
||
|
var action=new Ajax.Request ( 'ajax_card.php',
|
||
|
{
|
||
|
method:'get',
|
||
|
parameters:queryString,
|
||
|
onFailure:errorFid,
|
||
|
onSuccess:successFill_ipopcard
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
*@brief save the data contained into the form 'save_card'
|
||
|
*@param input field (obj) it must have the attribute ipopup
|
||
|
* possible attribute :
|
||
|
*@see ajax_card.php
|
||
|
*/
|
||
|
function save_card(obj)
|
||
|
{
|
||
|
var content=$(obj).ipopup;
|
||
|
// Data must be taken here
|
||
|
data=$('save_card').serialize(false);
|
||
|
$(content).innerHTML=loading();
|
||
|
|
||
|
var dossier=$('gDossier').value;
|
||
|
var queryString='gDossier='+dossier;
|
||
|
queryString+='&ctl='+content;
|
||
|
queryString+=data;
|
||
|
queryString+='&op=sc'; // sc for save card
|
||
|
|
||
|
var action=new Ajax.Request ( 'ajax_card.php',
|
||
|
{
|
||
|
method:'post',
|
||
|
parameters:queryString,
|
||
|
onFailure:errorFid,
|
||
|
onSuccess:fill_box
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
/**
|
||
|
*@brief add a category of card,
|
||
|
*@param obj with the attribute
|
||
|
* - ipopup the ipopup to show
|
||
|
* - type_cat the category of card we want to add
|
||
|
*/
|
||
|
function add_category(obj)
|
||
|
{
|
||
|
var sx=0;
|
||
|
if ( window.scrollY)
|
||
|
{
|
||
|
sx=window.scrollY+120;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
sx=document.body.scrollTop+120;
|
||
|
}
|
||
|
|
||
|
var div_style="top:"+sx+"px;width:60%;height:80%";
|
||
|
// show ipopup
|
||
|
var div={id:obj.ipopup,
|
||
|
cssclass:"inner_box",drag:1,style:div_style};
|
||
|
if ( $(div) ) {
|
||
|
removeDiv(div);
|
||
|
}
|
||
|
add_div(div);
|
||
|
waiting_box();
|
||
|
var dossier=$('gDossier').value;
|
||
|
var queryString='gDossier='+dossier;
|
||
|
queryString+='&op=ac';
|
||
|
queryString+='&ctl='+obj.ipopup;
|
||
|
if ( obj.type_cat)
|
||
|
{
|
||
|
queryString+='&cat='+obj.type_cat;
|
||
|
}
|
||
|
var action=new Ajax.Request ( 'ajax_card.php',
|
||
|
{
|
||
|
method:'get',
|
||
|
parameters:queryString,
|
||
|
onFailure:errorFid,
|
||
|
onSuccess:fill_box
|
||
|
}
|
||
|
);
|
||
|
|
||
|
}
|
||
|
/**
|
||
|
* @brief save the form and add a new category of card
|
||
|
* @param obj if the form object
|
||
|
*/
|
||
|
function save_card_category(obj)
|
||
|
{
|
||
|
if ( ! $(obj).ipopup)
|
||
|
{
|
||
|
alert_box('Erreur pas d\' attribut ipopup '+obj.id);
|
||
|
return;
|
||
|
};
|
||
|
try {
|
||
|
// Data must be taken here
|
||
|
|
||
|
data=$('newcat').serialize(false);
|
||
|
var dossier=$('gDossier').value;
|
||
|
queryString='ctl='+obj.ipopup+'&';
|
||
|
queryString+=data;
|
||
|
queryString+='&op=scc'; // sc for save card
|
||
|
|
||
|
var action=new Ajax.Request ( 'ajax_card.php',
|
||
|
{
|
||
|
method:'get',
|
||
|
parameters:queryString,
|
||
|
onFailure:errorFid,
|
||
|
onSuccess:fill_box
|
||
|
}
|
||
|
);
|
||
|
} catch(e)
|
||
|
{
|
||
|
alert_box(e.message);
|
||
|
return false;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
/**
|
||
|
*@brief Remove a definition of an attribut
|
||
|
*@param attr_def.ad_id
|
||
|
*@param gDossier
|
||
|
*@param table_id to rm the row
|
||
|
*@param special this pointer of the row
|
||
|
*/
|
||
|
|
||
|
function removeCardAttribut(ad_id,gDossier,table_id,row)
|
||
|
{
|
||
|
var queryString='gDossier='+gDossier;
|
||
|
queryString+='&op=rmfa';
|
||
|
queryString+='&ctl=debug'; // debug id
|
||
|
queryString+='&ad_id='+ad_id;
|
||
|
var action=new Ajax.Request ( 'ajax_card.php',
|
||
|
{
|
||
|
method:'get',
|
||
|
parameters:queryString,
|
||
|
onFailure:null,
|
||
|
onSuccess:null
|
||
|
}
|
||
|
);
|
||
|
deleteRowRec(table_id,row);
|
||
|
|
||
|
|
||
|
}
|
||
|
/**
|
||
|
* update a card in ajax
|
||
|
*/
|
||
|
function update_card(obj)
|
||
|
{
|
||
|
try {
|
||
|
var name=obj.id;
|
||
|
var qs=Form.serialize(name)+'&op=upc';
|
||
|
var action=new Ajax.Request ( 'ajax_card.php',
|
||
|
{
|
||
|
method:'get',
|
||
|
parameters:qs,
|
||
|
onFailure:errorFid,
|
||
|
onSuccess:successFill_ipopcard
|
||
|
}
|
||
|
);
|
||
|
} catch (e) {
|
||
|
alert_box(e.message);
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
/***
|
||
|
* In Follow-up, update, it is possible to add several card as concerned person or company
|
||
|
* this function save it into the database, display the result and remove the search_card div
|
||
|
* @param {type} p_dossier dossier
|
||
|
* @param {type} p_fiche_id fiche.f_id
|
||
|
* @param {type} p_action_id action_gestion.ag_id
|
||
|
* @returns {undefined} nothing
|
||
|
*/
|
||
|
function action_save_concerned(p_dossier, p_fiche_id, p_action_id) {
|
||
|
var query = encodeJSON({'gDossier': p_dossier, 'f_id': p_fiche_id, 'ag_id': p_action_id,'op':'action_save_concerned','ctl':'unused'});
|
||
|
var a=new Ajax.Request('ajax_card.php',
|
||
|
{
|
||
|
method: 'get',
|
||
|
parameters: query,
|
||
|
onFailure: errorFid,
|
||
|
onSuccess: function (req, txt)
|
||
|
{
|
||
|
try {
|
||
|
remove_waiting_box();
|
||
|
var answer = req.responseXML;
|
||
|
var a = answer.getElementsByTagName('ctl');
|
||
|
if (a.length == 0)
|
||
|
{
|
||
|
var rec = req.responseText;
|
||
|
alert_box('erreur :' + rec);
|
||
|
}
|
||
|
var html = answer.getElementsByTagName('code');
|
||
|
var namectl = a[0].firstChild.nodeValue;
|
||
|
var nodeXml=html[0];
|
||
|
var code_html = getNodeText(nodeXml);
|
||
|
code_html = unescape_xml(code_html);
|
||
|
removeDiv('search_card');
|
||
|
$('concerned_card_td').innerHTML = code_html;
|
||
|
} catch (e) {
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
function action_remove_concerned(p_dossier,p_fiche_id,p_action_id)
|
||
|
{
|
||
|
var query = encodeJSON({'gDossier': p_dossier, 'f_id': p_fiche_id, 'ag_id': p_action_id,'op':'action_remove_concerned','ctl':'unused'});
|
||
|
var a=new Ajax.Request('ajax_card.php',
|
||
|
{
|
||
|
method: 'get',
|
||
|
parameters: query,
|
||
|
onFailure: errorFid,
|
||
|
onSuccess: function (req, txt)
|
||
|
{
|
||
|
try {
|
||
|
remove_waiting_box();
|
||
|
var answer = req.responseXML;
|
||
|
var a = answer.getElementsByTagName('ctl');
|
||
|
if (a.length == 0)
|
||
|
{
|
||
|
var rec = req.responseText;
|
||
|
alert_box('erreur :' + rec);
|
||
|
}
|
||
|
var html = answer.getElementsByTagName('code');
|
||
|
var namectl = a[0].firstChild.nodeValue;
|
||
|
var nodeXml=html[0];
|
||
|
var code_html = getNodeText(nodeXml);
|
||
|
code_html = unescape_xml(code_html);
|
||
|
removeDiv('search_card');
|
||
|
$('concerned_card_td').innerHTML = code_html;
|
||
|
} catch (e) {
|
||
|
if ( console) { console.log('Erreur ') + e.message;}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
|