Merge branch 'master' into entreprise
This commit is contained in:
sparkyx 2021-03-12 19:19:00 +01:00
commit 3867346d28
297 changed files with 22561 additions and 7418 deletions

View file

@ -2332,7 +2332,6 @@ $$;
SET default_tablespace = '';
SET default_with_oids = true;
--
-- Name: action; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -2360,7 +2359,6 @@ COMMENT ON TABLE action IS 'The different privileges';
COMMENT ON COLUMN action.ac_code IS 'this code will be used in the code with the function User::check_action ';
SET default_with_oids = false;
--
-- Name: action_detail; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -2480,7 +2478,6 @@ CREATE SEQUENCE action_gestion_ag_id_seq
SELECT pg_catalog.setval('action_gestion_ag_id_seq', 1, false);
SET default_with_oids = true;
--
-- Name: action_gestion; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -2658,7 +2655,6 @@ CREATE SEQUENCE bilan_b_id_seq
SELECT pg_catalog.setval('bilan_b_id_seq', 4, true);
SET default_with_oids = false;
--
-- Name: bilan; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -2772,7 +2768,6 @@ CREATE SEQUENCE bud_detail_periode_bdp_id_seq
SELECT pg_catalog.setval('bud_detail_periode_bdp_id_seq', 1, false);
SET default_with_oids = true;
--
-- Name: centralized; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -2803,7 +2798,6 @@ CREATE TABLE centralized (
COMMENT ON TABLE centralized IS 'The centralized journal';
SET default_with_oids = false;
--
-- Name: del_action; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -2967,7 +2961,6 @@ CREATE SEQUENCE document_d_id_seq
SELECT pg_catalog.setval('document_d_id_seq', 1, false);
SET default_with_oids = true;
--
-- Name: document; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3129,7 +3122,6 @@ CREATE TABLE document_type (
COMMENT ON TABLE document_type IS 'Type of document : meeting, invoice,...';
SET default_with_oids = false;
--
-- Name: extension; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3220,7 +3212,6 @@ ALTER SEQUENCE extension_ex_id_seq OWNED BY extension.ex_id;
SELECT pg_catalog.setval('extension_ex_id_seq', 1, true);
SET default_with_oids = true;
--
-- Name: fiche; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3296,7 +3287,6 @@ CREATE TABLE fiche_detail (
COMMENT ON TABLE fiche_detail IS 'join between the card and the attribut definition';
SET default_with_oids = false;
--
-- Name: forecast; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3508,7 +3498,6 @@ ALTER SEQUENCE forecast_item_fi_id_seq OWNED BY forecast_item.fi_id;
SELECT pg_catalog.setval('forecast_item_fi_id_seq', 1, false);
SET default_with_oids = true;
--
-- Name: form; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3540,7 +3529,6 @@ CREATE TABLE formdef (
);
SET default_with_oids = false;
--
-- Name: groupe_analytique; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3608,7 +3596,6 @@ CREATE SEQUENCE s_jnt_id
SELECT pg_catalog.setval('s_jnt_id', 53, true);
SET default_with_oids = true;
--
-- Name: jnt_fic_attr; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3629,7 +3616,6 @@ CREATE TABLE jnt_fic_attr (
COMMENT ON TABLE jnt_fic_attr IS 'join between the family card and the attribut definition';
SET default_with_oids = false;
--
-- Name: jnt_letter; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3667,7 +3653,6 @@ ALTER SEQUENCE jnt_letter_jl_id_seq OWNED BY jnt_letter.jl_id;
SELECT pg_catalog.setval('jnt_letter_jl_id_seq', 1, false);
SET default_with_oids = true;
--
-- Name: jrn; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3756,7 +3741,6 @@ CREATE TABLE jrn_def (
COMMENT ON TABLE jrn_def IS 'Definition of a journal, his properties';
SET default_with_oids = false;
--
-- Name: jrn_info; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3851,7 +3835,6 @@ CREATE TABLE jrn_periode (
);
SET default_with_oids = true;
--
-- Name: jrn_rapt; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3919,7 +3902,6 @@ CREATE TABLE jrnx (
COMMENT ON TABLE jrnx IS 'Journal: content one line for each accountancy writing';
SET default_with_oids = false;
--
-- Name: letter_cred; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -4245,7 +4227,6 @@ CREATE TABLE operation_analytique (
COMMENT ON TABLE operation_analytique IS 'History of the analytic account';
SET default_with_oids = true;
--
-- Name: parameter; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -4315,7 +4296,6 @@ CREATE TABLE parm_periode (
COMMENT ON TABLE parm_periode IS 'Periode definition';
SET default_with_oids = false;
--
-- Name: parm_poste; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -4714,7 +4694,6 @@ CREATE TABLE quant_purchase (
COMMENT ON COLUMN quant_purchase.qp_vat_sided IS 'amount of the VAT which avoid VAT, case of the VAT which add the same amount at the deb and cred';
SET default_with_oids = true;
--
-- Name: quant_sold; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -5776,7 +5755,6 @@ CREATE SEQUENCE todo_list_tl_id_seq
SELECT pg_catalog.setval('todo_list_tl_id_seq', 1, false);
SET default_with_oids = false;
--
-- Name: todo_list; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -5798,7 +5776,6 @@ CREATE TABLE todo_list (
COMMENT ON TABLE todo_list IS 'Todo list';
SET default_with_oids = true;
--
-- Name: tva_rate; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -5871,7 +5848,6 @@ CREATE TABLE user_sec_act (
);
SET default_with_oids = false;
--
-- Name: user_sec_extension; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -5918,7 +5894,6 @@ ALTER SEQUENCE user_sec_extension_use_id_seq OWNED BY user_sec_extension.use_id;
SELECT pg_catalog.setval('user_sec_extension_use_id_seq', 1, true);
SET default_with_oids = true;
--
-- Name: user_sec_jrn; Type: TABLE; Schema: public; Owner: -; Tablespace:

View file

@ -2332,7 +2332,6 @@ $$;
SET default_tablespace = '';
SET default_with_oids = true;
--
-- Name: action; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -2360,7 +2359,6 @@ COMMENT ON TABLE action IS 'The different privileges';
COMMENT ON COLUMN action.ac_code IS 'this code will be used in the code with the function User::check_action ';
SET default_with_oids = false;
--
-- Name: action_detail; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -2480,7 +2478,6 @@ CREATE SEQUENCE action_gestion_ag_id_seq
SELECT pg_catalog.setval('action_gestion_ag_id_seq', 1, false);
SET default_with_oids = true;
--
-- Name: action_gestion; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -2658,7 +2655,6 @@ CREATE SEQUENCE bilan_b_id_seq
SELECT pg_catalog.setval('bilan_b_id_seq', 4, true);
SET default_with_oids = false;
--
-- Name: bilan; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -2772,7 +2768,6 @@ CREATE SEQUENCE bud_detail_periode_bdp_id_seq
SELECT pg_catalog.setval('bud_detail_periode_bdp_id_seq', 1, false);
SET default_with_oids = true;
--
-- Name: centralized; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -2803,7 +2798,6 @@ CREATE TABLE centralized (
COMMENT ON TABLE centralized IS 'The centralized journal';
SET default_with_oids = false;
--
-- Name: del_action; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -2967,7 +2961,6 @@ CREATE SEQUENCE document_d_id_seq
SELECT pg_catalog.setval('document_d_id_seq', 1, false);
SET default_with_oids = true;
--
-- Name: document; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3129,7 +3122,6 @@ CREATE TABLE document_type (
COMMENT ON TABLE document_type IS 'Type of document : meeting, invoice,...';
SET default_with_oids = false;
--
-- Name: extension; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3220,7 +3212,6 @@ ALTER SEQUENCE extension_ex_id_seq OWNED BY extension.ex_id;
SELECT pg_catalog.setval('extension_ex_id_seq', 1, false);
SET default_with_oids = true;
--
-- Name: fiche; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3296,7 +3287,6 @@ CREATE TABLE fiche_detail (
COMMENT ON TABLE fiche_detail IS 'join between the card and the attribut definition';
SET default_with_oids = false;
--
-- Name: forecast; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3508,7 +3498,6 @@ ALTER SEQUENCE forecast_item_fi_id_seq OWNED BY forecast_item.fi_id;
SELECT pg_catalog.setval('forecast_item_fi_id_seq', 1, false);
SET default_with_oids = true;
--
-- Name: form; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3540,7 +3529,6 @@ CREATE TABLE formdef (
);
SET default_with_oids = false;
--
-- Name: groupe_analytique; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3608,7 +3596,6 @@ CREATE SEQUENCE s_jnt_id
SELECT pg_catalog.setval('s_jnt_id', 53, true);
SET default_with_oids = true;
--
-- Name: jnt_fic_attr; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3629,7 +3616,6 @@ CREATE TABLE jnt_fic_attr (
COMMENT ON TABLE jnt_fic_attr IS 'join between the family card and the attribut definition';
SET default_with_oids = false;
--
-- Name: jnt_letter; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3667,7 +3653,6 @@ ALTER SEQUENCE jnt_letter_jl_id_seq OWNED BY jnt_letter.jl_id;
SELECT pg_catalog.setval('jnt_letter_jl_id_seq', 1, false);
SET default_with_oids = true;
--
-- Name: jrn; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3756,7 +3741,6 @@ CREATE TABLE jrn_def (
COMMENT ON TABLE jrn_def IS 'Definition of a journal, his properties';
SET default_with_oids = false;
--
-- Name: jrn_info; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3851,7 +3835,6 @@ CREATE TABLE jrn_periode (
);
SET default_with_oids = true;
--
-- Name: jrn_rapt; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -3919,7 +3902,6 @@ CREATE TABLE jrnx (
COMMENT ON TABLE jrnx IS 'Journal: content one line for each accountancy writing';
SET default_with_oids = false;
--
-- Name: letter_cred; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -4245,7 +4227,6 @@ CREATE TABLE operation_analytique (
COMMENT ON TABLE operation_analytique IS 'History of the analytic account';
SET default_with_oids = true;
--
-- Name: parameter; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -4315,7 +4296,6 @@ CREATE TABLE parm_periode (
COMMENT ON TABLE parm_periode IS 'Periode definition';
SET default_with_oids = false;
--
-- Name: parm_poste; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -4714,7 +4694,6 @@ CREATE TABLE quant_purchase (
COMMENT ON COLUMN quant_purchase.qp_vat_sided IS 'amount of the VAT which avoid VAT, case of the VAT which add the same amount at the deb and cred';
SET default_with_oids = true;
--
-- Name: quant_sold; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -5776,7 +5755,6 @@ CREATE SEQUENCE todo_list_tl_id_seq
SELECT pg_catalog.setval('todo_list_tl_id_seq', 1, false);
SET default_with_oids = false;
--
-- Name: todo_list; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -5798,7 +5776,6 @@ CREATE TABLE todo_list (
COMMENT ON TABLE todo_list IS 'Todo list';
SET default_with_oids = true;
--
-- Name: tva_rate; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -5871,7 +5848,6 @@ CREATE TABLE user_sec_act (
);
SET default_with_oids = false;
--
-- Name: user_sec_extension; Type: TABLE; Schema: public; Owner: -; Tablespace:
@ -5918,7 +5894,6 @@ ALTER SEQUENCE user_sec_extension_use_id_seq OWNED BY user_sec_extension.use_id;
SELECT pg_catalog.setval('user_sec_extension_use_id_seq', 1, false);
SET default_with_oids = true;
--
-- Name: user_sec_jrn; Type: TABLE; Schema: public; Owner: -; Tablespace:

View file

@ -31,7 +31,7 @@ PROJECT_NAME = noalyss
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER = Version-7.2
PROJECT_NUMBER = Version-8.1
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.

View file

@ -28,6 +28,7 @@ $cn=Dossier::connect();
$g_parameter=new Noalyss_Parameter_Folder($cn);
$g_user=new User($cn);
$g_user->check(true);
IDate::set_firstDate($g_user->get_first_week_day());
set_language();
/* if a code has been asked */
if (isset($_REQUEST['plugin_code']) )
@ -56,7 +57,7 @@ if (isset($_REQUEST['plugin_code']) )
if ( $ext->search($_REQUEST['plugin_code']) != -1)
{
/* security */
if ( !isset ($_SESSION['g_user']) || $ext->can_request($_SESSION['g_user']) == 0 )
if ( !isset ($_SESSION[SESSION_KEY.'g_user']) || $ext->can_request($_SESSION[SESSION_KEY.'g_user']) == 0 )
{
exit();
}

View file

@ -94,6 +94,8 @@ else
$g_user->check(true);
}
IDate::set_firstDate($g_user->get_first_week_day());
// For progress bar, for saving time , we check and answer directly
if ($op == "progressBar") {
$task_id=$http->request("task_id");
@ -159,7 +161,6 @@ $path = array(
"remove_submenu"=>"ajax_remove_submenu",
"cardsearch"=>"ajax_boxcard_search",
"saldo"=>"ajax_bank_saldo",
"up_predef"=>"ajax_update_predef",
"upd_receipt"=>"ajax_get_receipt",
"up_pay_method"=>"ajax_update_payment",
"openancsearch"=>"ajax_anc_search",
@ -241,6 +242,8 @@ $path = array(
"save_filter"=>"ajax_search_filter",
// Load a search filter
"load_filter"=>"ajax_search_filter",
// display tag for filter
'display_filter_tag'=>'ajax_search_filter',
// search operation to reconcile
'search_op'=>'ajax_search_operation',
// delete operation
@ -251,6 +254,8 @@ $path = array(
'template_cat_category'=>'ajax_template_cat_category',
// From FollowUp , update a comment on a file
'update_comment_followUp'=>'ajax_follow_up',
// Update a follow up's comment
'followup_comment_oneedit'=>'ajax_follow_up',
// TVA param
"tva_parameter"=>"ajax_tva_parameter",
// Currency , add / remove / update currency
@ -259,8 +264,26 @@ $path = array(
"CurrencyRateDelete"=>"ajax_currency",
// payment_method
"payment_method"=>"ajax_payment_method",
// Display all cards using an accounting
"display_all_card"=>"ajax_display_all_card"
// Display all cards using an accounting
"display_all_card"=>"ajax_display_all_card",
// update list of predefined operation if ledger changes
"up_predef"=>"ajax_update_predef",
// cfgaction type of document
"cfgaction"=>'ajax_cfgaction',
// list options for multiple contact
"contact_option_list"=>'ajax_contact_option_list',
// Add group of tags
'tag_group'=>'ajax_tag_group',
// set the group for a tag
'tag_set_group'=>"ajax_tag_set_group",
// Document_state
"document_state"=>"ajax_document_state",
// Operations tag add
'operation_tag_add'=>"ajax_operation_tag",
// Operations tag remove
'operation_tag_remove'=>"ajax_operation_tag",
// Operations tag select
'operation_tag_select'=>"ajax_operation_tag"
) ;
if (array_key_exists($op, $path)) {
@ -445,58 +468,8 @@ EOF;
</data>
EOF;
break;
/* rem a cat of document */
case 'rem_cat_doc':
require_once NOALYSS_INCLUDE.'/class/document_type.class.php';
// if user can not return error message
$message="";
if ($g_user->check_action(PARCATDOC) == 0)
{
$html = "nok";
$message=_('Action non autorisée');
header('Content-type: text/xml; charset=UTF-8');
echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<data>
<dtid>$html</dtid>
<message>$message</message>
</data>
EOF;
return;
}
// remove the cat if no action
$count_md = $cn->get_value('select count(*) from document_modele where md_type=$1', array($dt_id));
$count_a = $cn->get_value('select count(*) from action_gestion where ag_type=$1', array($dt_id));
if ($count_md != 0 || $count_a != 0)
{
$message=_('Des actions dépendent de cette catégorie');
$html = "nok";
header('Content-type: text/xml; charset=UTF-8');
echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<data>
<dtid>$html</dtid>
<message>$message</message>
</data>
EOF;
exit;
}
$cn->exec_sql('delete from document_type where dt_id=$1', array($dt_id));
$html = $dt_id;
header('Content-type: text/xml; charset=UTF-8');
echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<data>
<dtid>$html</dtid>
<message>$message</message>
</data>
EOF;
return;
break;
case 'mod_cat_doc':
require_once NOALYSS_TEMPLATE.'/document_mod_change.php';
break;
case 'dsp_tva':
$cn = Dossier::connect();
// Filter the VAT
@ -635,9 +608,9 @@ EOF;
if ( count($ajrn)==1)
{
echo '<div>';
echo '<h2 id="info">'.$ajrn[0]['jrn_def_name'].'</h2>';
echo '<h1 >'.$ajrn[0]['jrn_def_name'].'</h1>';
if ( trim($ajrn[0]['jrn_def_description']) != "") {
echo '<p style="border:1px solid;margin-top:0px">'.$ajrn[0]['jrn_def_description'].'</p>';
echo '<p style="border:1px solid;margin-top:0px;padding:1rem">'.$ajrn[0]['jrn_def_description'].'</p>';
}
echo '</div>';
}

View file

@ -40,7 +40,7 @@ if ( ! isset($_REQUEST['gDossier']))
redirect('user_login.php');
exit();
}
if ( ! isset ($_SESSION['g_theme']))
if ( ! isset ($_SESSION[SESSION_KEY.'g_theme']))
{
echo "<h2>"._('Vous êtes déconnecté')."</h2>";
$backurl=$_SERVER['REQUEST_URI'];
@ -54,6 +54,7 @@ $cn = Dossier::connect();
global $g_user, $cn,$g_parameter,$http;
$g_user = new User($cn);
$http=new HttpInput();
IDate::set_firstDate($g_user->get_first_week_day());
/*
* check that the database is not empty
*/
@ -66,7 +67,7 @@ if ( ! $cn->exist_table('version')) {
return;
}
$style_user=$http->post("style_user","string",$_SESSION['g_theme']);
$style_user=$http->post("style_user","string",$_SESSION[SESSION_KEY.'g_theme']);
html_page_start($style_user);
if ( DEBUG ) {
@ -239,8 +240,11 @@ if (isset($_REQUEST['ac']))
fclose($file_loginput);
}
$_REQUEST['ac']= trim(strtoupper($_REQUEST['ac']));
$AC=$http->request('ac');
// Priority to POST , otherwise "duplicate operation" doesn't work
$ac_post = trim(strtoupper($http->post("ac","string","")));
$ac_get = trim(strtoupper($http->get("ac","string","")));
$AC=($ac_post == "")?$ac_get:$ac_post;
$user_profile=$g_user->get_profile();
@ -248,30 +252,38 @@ if (isset($_REQUEST['ac']))
pm_id_v3,pm_id_v2,pm_id_v1
from v_menu_profile where code= upper($1) and p_id=$2',
array($AC,$user_profile));
try {
if ( count($amenu_id) != 1 ) {
// if AC is a simple code and this menu can be accessed
// we should find the first menu which used it and change the
// request AC to it
$pm_id=$cn->get_array('select pm_id from profile_menu '
. ' where lower(me_code)=lower($1) and p_id=$2',
array($AC,$user_profile));
if ( count($pm_id) > 0 ) {
show_menu($pm_id[0]['pm_id']);
} else {
throw new Exception(_('Erreur menu'),10);
}
if (count($amenu_id) == 0 ) { throw new Exception(_('Erreur menu'),10);}
if ( count($amenu_id)> 1) {
$tmp=$amenu_id[0];
$amenu_id=[];
$amenu_id[0]=$tmp;
}
$module_id=$cn->get_value('select case when pm_id_v3 = 0 then (case when pm_id_v2 = 0 then pm_id_v1 else pm_id_v2 end) else pm_id_v3 end
from v_menu_profile where p_id=$1 and upper(code)=upper($2)',
$amenu_id=complete_default_menu($amenu_id,$user_profile);
$AC=rebuild_access_code($amenu_id);
put_global(array(array("key"=>"ac","value"=>$AC)));
$module_id=$cn->get_value('select distinct
case when pm_id_v3 = 0 then (case when pm_id_v2 = 0 then pm_id_v1 else pm_id_v2 end) else pm_id_v3 end
from
v_menu_profile
where p_id =$1
and upper(code)=upper($2)',
array($user_profile,$AC));
$g_user->audit();
// Show module and highligt selected one
show_module($module_id);
show_menu( $amenu_id[0]['pm_id_v3']);
show_menu( $amenu_id[0]['pm_id_v2']);
show_menu($amenu_id[0]['pm_id_v1']);
} catch (Exception $e) {
if ( $e->getCode() == 10 ) {
alert(_('Accès menu impossible'));

View file

@ -50,6 +50,7 @@ if ( $action=='X' || $g_user->check_print($action)==0 )
$prfile=$cn->get_value("select me_file from menu_ref where me_code=$1",array($action));
if ( $prfile == "") {
print $action;
die (_('Export impossible'));
}
require_once NOALYSS_INCLUDE."/export/$prfile";

View file

@ -45,7 +45,7 @@ $ext=new Extension($cn);
if ( $ext->search($http->request("plugin_code")) != -1 )
{
/* security */
if ( !isset ($_SESSION['g_user']) || $ext->can_request($_SESSION['g_user']) == 0 )
if ( !isset ($_SESSION[SESSION_KEY.'g_user']) || $ext->can_request($_SESSION[SESSION_KEY.'g_user']) == 0 )
{
exit();
}

View file

@ -56,7 +56,7 @@ $fTva_id=$hi->request("t","string","none");
$fPrice_sale=$hi->request("p","string","none");
$fPrice_purchase=$hi->request("b","string","none");
if ( isset($_SESSION['isValid']) && $_SESSION['isValid'] == 1)
if ( isset($_SESSION[SESSION_KEY.'isValid']) && $_SESSION[SESSION_KEY.'isValid'] == 1)
{
$jrn=$hi->get('j', "number",'-1');
$d=$hi->get('d',"string", '');
@ -115,7 +115,7 @@ if ( isset($_SESSION['isValid']) && $_SESSION['isValid'] == 1)
from vw_fiche_attr
where quick_code=upper($1)". $filter_card;
$array=$cn->get_array($sql, array($_REQUEST['FID']));
$array=$cn->get_array($sql, array($hi->request('FID')));
if ( empty($array))
{

View file

@ -107,7 +107,9 @@ else
{
if (isset($_REQUEST['type']))
{
if ($_REQUEST['type']=='gl' || $_REQUEST['type']=='') $filter_card='';
if ($_REQUEST['type']=='gl' || $_REQUEST['type']=='') {
$filter_card='';
}
else
{
$get_cred='jrn_def_fiche_cred';
@ -119,13 +121,15 @@ else
}
}
}
// filter only enable card
$filter_enable_card=" and f_enable='1' ";
$sql_str="select distinct f_id
from fiche
join fiche_detail using (f_id)
where
ad_id in (9,1,23)
and ad_value ilike '%'||$1||'%' ".$filter_card.' limit '.$limit;
and ad_value ilike '%'||$1||'%' ".$filter_enable_card.$filter_card.' limit '.$limit;
$fid=$http->request("FID");
@ -168,7 +172,7 @@ if ($sql != false && sizeof($sql) != 0 )
echo '</ul>';
if (count($sql) > 12)
{
printf ('<i>...'._('Résultat limité à 12').' ...</i>');
printf ('<i>...'._('Résultat limité à %s').' ...</i>',$limit);
}
}
else

View file

@ -1,4 +1,6 @@
.icon-check:before { content: '\e741'; } /* '' */
.icon-resize-small-1:before { content: '\e746'; } /* '' */
.icon-logout:before { content: '\e800'; } /* '' */
.icon-cancel-circled:before { content: '\e801'; } /* '' */
.icon-cancel-circled2:before { content: '\e802'; } /* '' */
@ -57,9 +59,13 @@
.icon-right-hand:before { content: '\e837'; } /* '' */
.icon-left-hand:before { content: '\e838'; } /* '' */
.icon-up-hand:before { content: '\e839'; } /* '' */
.icon-tags-3:before { content: '\e839'; } /* '' */
.icon-down-hand:before { content: '\e83a'; } /* '' */
.icon-eye-off:before { content: '\e83b'; } /* '' */
.icon-arrows-cw-1:before { content: '\e83c'; } /* '' */
.icon-resize-small-alt:before { content: '\e83d'; } /* '' */
.icon-tags:before { content: '\e83e'; } /* '' */
.icon-tags-4:before { content: '\e83f'; } /* '' */
.icon-down-open:before { content: '\f004'; } /* '' */
.icon-up-open:before { content: '\f005'; } /* '' */
.icon-right-open:before { content: '\f006'; } /* '' */
@ -67,6 +73,7 @@
.icon-move:before { content: '\f047'; } /* '' */
.icon-info-circled-alt:before { content: '\f086'; } /* '' */
.icon-link-ext:before { content: '\f08e'; } /* '' */
.icon-check-empty:before { content: '\f096'; } /* '' */
.icon-comment-empty:before { content: '\f0e5'; } /* '' */
.icon-doc-text:before { content: '\f0f6'; } /* '' */
.icon-plus-squared:before { content: '\f0fe'; } /* '' */

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,6 @@
.icon-check { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe741;&nbsp;'); }
.icon-resize-small-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe746;&nbsp;'); }
.icon-logout { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
.icon-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
.icon-cancel-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
@ -57,9 +59,13 @@
.icon-right-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe837;&nbsp;'); }
.icon-left-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe838;&nbsp;'); }
.icon-up-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe839;&nbsp;'); }
.icon-tags-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe839;&nbsp;'); }
.icon-down-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83a;&nbsp;'); }
.icon-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83b;&nbsp;'); }
.icon-arrows-cw-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83c;&nbsp;'); }
.icon-resize-small-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83d;&nbsp;'); }
.icon-tags { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83e;&nbsp;'); }
.icon-tags-4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83f;&nbsp;'); }
.icon-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf004;&nbsp;'); }
.icon-up-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf005;&nbsp;'); }
.icon-right-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf006;&nbsp;'); }
@ -67,6 +73,7 @@
.icon-move { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf047;&nbsp;'); }
.icon-info-circled-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf086;&nbsp;'); }
.icon-link-ext { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08e;&nbsp;'); }
.icon-check-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf096;&nbsp;'); }
.icon-comment-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e5;&nbsp;'); }
.icon-doc-text { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0f6;&nbsp;'); }
.icon-plus-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0fe;&nbsp;'); }

View file

@ -10,6 +10,8 @@
/* font-size: 120%; */
}
.icon-check { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe741;&nbsp;'); }
.icon-resize-small-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe746;&nbsp;'); }
.icon-logout { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
.icon-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
.icon-cancel-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
@ -68,9 +70,13 @@
.icon-right-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe837;&nbsp;'); }
.icon-left-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe838;&nbsp;'); }
.icon-up-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe839;&nbsp;'); }
.icon-tags-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe839;&nbsp;'); }
.icon-down-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83a;&nbsp;'); }
.icon-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83b;&nbsp;'); }
.icon-arrows-cw-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83c;&nbsp;'); }
.icon-resize-small-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83d;&nbsp;'); }
.icon-tags { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83e;&nbsp;'); }
.icon-tags-4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83f;&nbsp;'); }
.icon-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf004;&nbsp;'); }
.icon-up-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf005;&nbsp;'); }
.icon-right-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf006;&nbsp;'); }
@ -78,6 +84,7 @@
.icon-move { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf047;&nbsp;'); }
.icon-info-circled-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf086;&nbsp;'); }
.icon-link-ext { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08e;&nbsp;'); }
.icon-check-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf096;&nbsp;'); }
.icon-comment-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e5;&nbsp;'); }
.icon-doc-text { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0f6;&nbsp;'); }
.icon-plus-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0fe;&nbsp;'); }

View file

@ -1,11 +1,11 @@
@font-face {
font-family: 'fontello';
src: url('../font/fontello.eot?62647818');
src: url('../font/fontello.eot?62647818#iefix') format('embedded-opentype'),
url('../font/fontello.woff2?62647818') format('woff2'),
url('../font/fontello.woff?62647818') format('woff'),
url('../font/fontello.ttf?62647818') format('truetype'),
url('../font/fontello.svg?62647818#fontello') format('svg');
src: url('../font/fontello.eot?16636759');
src: url('../font/fontello.eot?16636759#iefix') format('embedded-opentype'),
url('../font/fontello.woff2?16636759') format('woff2'),
url('../font/fontello.woff?16636759') format('woff'),
url('../font/fontello.ttf?16636759') format('truetype'),
url('../font/fontello.svg?16636759#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
@ -15,7 +15,7 @@
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'fontello';
src: url('../font/fontello.svg?62647818#fontello') format('svg');
src: url('../font/fontello.svg?16636759#fontello') format('svg');
}
}
*/
@ -24,7 +24,7 @@
font-family: "fontello";
font-style: normal;
font-weight: normal;
speak: none;
speak: never;
display: inline-block;
text-decoration: inherit;
@ -55,6 +55,8 @@
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
.icon-check:before { content: '\e741'; } /* '' */
.icon-resize-small-1:before { content: '\e746'; } /* '' */
.icon-logout:before { content: '\e800'; } /* '' */
.icon-cancel-circled:before { content: '\e801'; } /* '' */
.icon-cancel-circled2:before { content: '\e802'; } /* '' */
@ -113,9 +115,13 @@
.icon-right-hand:before { content: '\e837'; } /* '' */
.icon-left-hand:before { content: '\e838'; } /* '' */
.icon-up-hand:before { content: '\e839'; } /* '' */
.icon-tags-3:before { content: '\e839'; } /* '' */
.icon-down-hand:before { content: '\e83a'; } /* '' */
.icon-eye-off:before { content: '\e83b'; } /* '' */
.icon-arrows-cw-1:before { content: '\e83c'; } /* '' */
.icon-resize-small-alt:before { content: '\e83d'; } /* '' */
.icon-tags:before { content: '\e83e'; } /* '' */
.icon-tags-4:before { content: '\e83f'; } /* '' */
.icon-down-open:before { content: '\f004'; } /* '' */
.icon-up-open:before { content: '\f005'; } /* '' */
.icon-right-open:before { content: '\f006'; } /* '' */
@ -123,6 +129,7 @@
.icon-move:before { content: '\f047'; } /* '' */
.icon-info-circled-alt:before { content: '\f086'; } /* '' */
.icon-link-ext:before { content: '\f08e'; } /* '' */
.icon-check-empty:before { content: '\f096'; } /* '' */
.icon-comment-empty:before { content: '\f0e5'; } /* '' */
.icon-doc-text:before { content: '\f0f6'; } /* '' */
.icon-plus-squared:before { content: '\f0fe'; } /* '' */

View file

@ -229,11 +229,11 @@ body {
}
@font-face {
font-family: 'fontello';
src: url('./fontello.eot?69183758');
src: url('./fontello.eot?69183758#iefix') format('embedded-opentype'),
url('./fontello.woff?69183758') format('woff'),
url('./fontello.ttf?69183758') format('truetype'),
url('./fontello.svg?69183758#fontello') format('svg');
src: url('./font/fontello.eot?78114184');
src: url('./font/fontello.eot?78114184#iefix') format('embedded-opentype'),
url('./font/fontello.woff?78114184') format('woff'),
url('./font/fontello.ttf?78114184') format('truetype'),
url('./font/fontello.svg?78114184#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
@ -244,7 +244,7 @@ body {
font-family: "fontello";
font-style: normal;
font-weight: normal;
speak: none;
speak: never;
display: inline-block;
text-decoration: inherit;
@ -298,149 +298,160 @@ body {
</div>
<div class="container" id="icons">
<div class="row">
<div class="the-icons span3" title="Code: 0xe741"><i class="demo-icon icon-check">&#xe741;</i> <span class="i-name">icon-check</span><span class="i-code">0xe741</span></div>
<div class="the-icons span3" title="Code: 0xe746"><i class="demo-icon icon-resize-small-1">&#xe746;</i> <span class="i-name">icon-resize-small-1</span><span class="i-code">0xe746</span></div>
<div class="the-icons span3" title="Code: 0xe800"><i class="demo-icon icon-logout">&#xe800;</i> <span class="i-name">icon-logout</span><span class="i-code">0xe800</span></div>
<div class="the-icons span3" title="Code: 0xe801"><i class="demo-icon icon-cancel-circled">&#xe801;</i> <span class="i-name">icon-cancel-circled</span><span class="i-code">0xe801</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe802"><i class="demo-icon icon-cancel-circled2">&#xe802;</i> <span class="i-name">icon-cancel-circled2</span><span class="i-code">0xe802</span></div>
<div class="the-icons span3" title="Code: 0xe803"><i class="demo-icon icon-eye">&#xe803;</i> <span class="i-name">icon-eye</span><span class="i-code">0xe803</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe804"><i class="demo-icon icon-upload">&#xe804;</i> <span class="i-name">icon-upload</span><span class="i-code">0xe804</span></div>
<div class="the-icons span3" title="Code: 0xe805"><i class="demo-icon icon-download">&#xe805;</i> <span class="i-name">icon-download</span><span class="i-code">0xe805</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe806"><i class="demo-icon icon-attention">&#xe806;</i> <span class="i-name">icon-attention</span><span class="i-code">0xe806</span></div>
<div class="the-icons span3" title="Code: 0xe807"><i class="demo-icon icon-search">&#xe807;</i> <span class="i-name">icon-search</span><span class="i-code">0xe807</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe808"><i class="demo-icon icon-mail">&#xe808;</i> <span class="i-name">icon-mail</span><span class="i-code">0xe808</span></div>
<div class="the-icons span3" title="Code: 0xe809"><i class="demo-icon icon-anchor">&#xe809;</i> <span class="i-name">icon-anchor</span><span class="i-code">0xe809</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe80a"><i class="demo-icon icon-resize-full-alt">&#xe80a;</i> <span class="i-name">icon-resize-full-alt</span><span class="i-code">0xe80a</span></div>
<div class="the-icons span3" title="Code: 0xe80b"><i class="demo-icon icon-tag">&#xe80b;</i> <span class="i-name">icon-tag</span><span class="i-code">0xe80b</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe80c"><i class="demo-icon icon-cw">&#xe80c;</i> <span class="i-name">icon-cw</span><span class="i-code">0xe80c</span></div>
<div class="the-icons span3" title="Code: 0xe80d"><i class="demo-icon icon-edit">&#xe80d;</i> <span class="i-name">icon-edit</span><span class="i-code">0xe80d</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe80e"><i class="demo-icon icon-attention-circled">&#xe80e;</i> <span class="i-name">icon-attention-circled</span><span class="i-code">0xe80e</span></div>
<div class="the-icons span3" title="Code: 0xe80f"><i class="demo-icon icon-trash-empty">&#xe80f;</i> <span class="i-name">icon-trash-empty</span><span class="i-code">0xe80f</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe810"><i class="demo-icon icon-doc">&#xe810;</i> <span class="i-name">icon-doc</span><span class="i-code">0xe810</span></div>
<div class="the-icons span3" title="Code: 0xe811"><i class="demo-icon icon-calendar">&#xe811;</i> <span class="i-name">icon-calendar</span><span class="i-code">0xe811</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe812"><i class="demo-icon icon-edit-1">&#xe812;</i> <span class="i-name">icon-edit-1</span><span class="i-code">0xe812</span></div>
<div class="the-icons span3" title="Code: 0xe813"><i class="demo-icon icon-resize-full">&#xe813;</i> <span class="i-name">icon-resize-full</span><span class="i-code">0xe813</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe814"><i class="demo-icon icon-up-bold">&#xe814;</i> <span class="i-name">icon-up-bold</span><span class="i-code">0xe814</span></div>
<div class="the-icons span3" title="Code: 0xe815"><i class="demo-icon icon-down-fat">&#xe815;</i> <span class="i-name">icon-down-fat</span><span class="i-code">0xe815</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe816"><i class="demo-icon icon-cancel-circled2-1">&#xe816;</i> <span class="i-name">icon-cancel-circled2-1</span><span class="i-code">0xe816</span></div>
<div class="the-icons span3" title="Code: 0xe817"><i class="demo-icon icon-upload-1">&#xe817;</i> <span class="i-name">icon-upload-1</span><span class="i-code">0xe817</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe818"><i class="demo-icon icon-exclamation">&#xe818;</i> <span class="i-name">icon-exclamation</span><span class="i-code">0xe818</span></div>
<div class="the-icons span3" title="Code: 0xe819"><i class="demo-icon icon-down-open-1">&#xe819;</i> <span class="i-name">icon-down-open-1</span><span class="i-code">0xe819</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe81a"><i class="demo-icon icon-up-open-1">&#xe81a;</i> <span class="i-name">icon-up-open-1</span><span class="i-code">0xe81a</span></div>
<div class="the-icons span3" title="Code: 0xe81b"><i class="demo-icon icon-left-open-1">&#xe81b;</i> <span class="i-name">icon-left-open-1</span><span class="i-code">0xe81b</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe81c"><i class="demo-icon icon-right-open-1">&#xe81c;</i> <span class="i-name">icon-right-open-1</span><span class="i-code">0xe81c</span></div>
<div class="the-icons span3" title="Code: 0xe81d"><i class="demo-icon icon-arrows-cw">&#xe81d;</i> <span class="i-name">icon-arrows-cw</span><span class="i-code">0xe81d</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe81e"><i class="demo-icon icon-down-dir">&#xe81e;</i> <span class="i-name">icon-down-dir</span><span class="i-code">0xe81e</span></div>
<div class="the-icons span3" title="Code: 0xe81f"><i class="demo-icon icon-up-dir">&#xe81f;</i> <span class="i-name">icon-up-dir</span><span class="i-code">0xe81f</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe820"><i class="demo-icon icon-cog">&#xe820;</i> <span class="i-name">icon-cog</span><span class="i-code">0xe820</span></div>
<div class="the-icons span3" title="Code: 0xe821"><i class="demo-icon icon-cog-alt">&#xe821;</i> <span class="i-name">icon-cog-alt</span><span class="i-code">0xe821</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe822"><i class="demo-icon icon-down-dir-1">&#xe822;</i> <span class="i-name">icon-down-dir-1</span><span class="i-code">0xe822</span></div>
<div class="the-icons span3" title="Code: 0xe823"><i class="demo-icon icon-up-dir-1">&#xe823;</i> <span class="i-name">icon-up-dir-1</span><span class="i-code">0xe823</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe824"><i class="demo-icon icon-down-open-2">&#xe824;</i> <span class="i-name">icon-down-open-2</span><span class="i-code">0xe824</span></div>
<div class="the-icons span3" title="Code: 0xe825"><i class="demo-icon icon-right-open-2">&#xe825;</i> <span class="i-name">icon-right-open-2</span><span class="i-code">0xe825</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe826"><i class="demo-icon icon-left-open-2">&#xe826;</i> <span class="i-name">icon-left-open-2</span><span class="i-code">0xe826</span></div>
<div class="the-icons span3" title="Code: 0xe827"><i class="demo-icon icon-up-open-2">&#xe827;</i> <span class="i-name">icon-up-open-2</span><span class="i-code">0xe827</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe828"><i class="demo-icon icon-plus">&#xe828;</i> <span class="i-name">icon-plus</span><span class="i-code">0xe828</span></div>
<div class="the-icons span3" title="Code: 0xe829"><i class="demo-icon icon-compass">&#xe829;</i> <span class="i-name">icon-compass</span><span class="i-code">0xe829</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe82a"><i class="demo-icon icon-resize-full-alt-1">&#xe82a;</i> <span class="i-name">icon-resize-full-alt-1</span><span class="i-code">0xe82a</span></div>
<div class="the-icons span3" title="Code: 0xe82b"><i class="demo-icon icon-tag-1">&#xe82b;</i> <span class="i-name">icon-tag-1</span><span class="i-code">0xe82b</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe82c"><i class="demo-icon icon-edit-2">&#xe82c;</i> <span class="i-name">icon-edit-2</span><span class="i-code">0xe82c</span></div>
<div class="the-icons span3" title="Code: 0xe82d"><i class="demo-icon icon-compass-1">&#xe82d;</i> <span class="i-name">icon-compass-1</span><span class="i-code">0xe82d</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe82e"><i class="demo-icon icon-cogs">&#xe82e;</i> <span class="i-name">icon-cogs</span><span class="i-code">0xe82e</span></div>
<div class="the-icons span3" title="Code: 0xe82f"><i class="demo-icon icon-up">&#xe82f;</i> <span class="i-name">icon-up</span><span class="i-code">0xe82f</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe830"><i class="demo-icon icon-thumbs-up">&#xe830;</i> <span class="i-name">icon-thumbs-up</span><span class="i-code">0xe830</span></div>
<div class="the-icons span3" title="Code: 0xe831"><i class="demo-icon icon-lock">&#xe831;</i> <span class="i-name">icon-lock</span><span class="i-code">0xe831</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe832"><i class="demo-icon icon-lock-open">&#xe832;</i> <span class="i-name">icon-lock-open</span><span class="i-code">0xe832</span></div>
<div class="the-icons span3" title="Code: 0xe833"><i class="demo-icon icon-thumbs-down">&#xe833;</i> <span class="i-name">icon-thumbs-down</span><span class="i-code">0xe833</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe834"><i class="demo-icon icon-bell">&#xe834;</i> <span class="i-name">icon-bell</span><span class="i-code">0xe834</span></div>
<div class="the-icons span3" title="Code: 0xe835"><i class="demo-icon icon-resize-small">&#xe835;</i> <span class="i-name">icon-resize-small</span><span class="i-code">0xe835</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe836"><i class="demo-icon icon-resize-full-1">&#xe836;</i> <span class="i-name">icon-resize-full-1</span><span class="i-code">0xe836</span></div>
<div class="the-icons span3" title="Code: 0xe837"><i class="demo-icon icon-right-hand">&#xe837;</i> <span class="i-name">icon-right-hand</span><span class="i-code">0xe837</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe838"><i class="demo-icon icon-left-hand">&#xe838;</i> <span class="i-name">icon-left-hand</span><span class="i-code">0xe838</span></div>
<div class="the-icons span3" title="Code: 0xe839"><i class="demo-icon icon-up-hand">&#xe839;</i> <span class="i-name">icon-up-hand</span><span class="i-code">0xe839</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe839"><i class="demo-icon icon-tags-3">&#xe839;</i> <span class="i-name">icon-tags-3</span><span class="i-code">0xe839</span></div>
<div class="the-icons span3" title="Code: 0xe83a"><i class="demo-icon icon-down-hand">&#xe83a;</i> <span class="i-name">icon-down-hand</span><span class="i-code">0xe83a</span></div>
<div class="the-icons span3" title="Code: 0xe83b"><i class="demo-icon icon-eye-off">&#xe83b;</i> <span class="i-name">icon-eye-off</span><span class="i-code">0xe83b</span></div>
<div class="the-icons span3" title="Code: 0xe83c"><i class="demo-icon icon-arrows-cw-1">&#xe83c;</i> <span class="i-name">icon-arrows-cw-1</span><span class="i-code">0xe83c</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xe83c"><i class="demo-icon icon-arrows-cw-1">&#xe83c;</i> <span class="i-name">icon-arrows-cw-1</span><span class="i-code">0xe83c</span></div>
<div class="the-icons span3" title="Code: 0xe83d"><i class="demo-icon icon-resize-small-alt">&#xe83d;</i> <span class="i-name">icon-resize-small-alt</span><span class="i-code">0xe83d</span></div>
<div class="the-icons span3" title="Code: 0xe83e"><i class="demo-icon icon-tags">&#xe83e;</i> <span class="i-name">icon-tags</span><span class="i-code">0xe83e</span></div>
<div class="the-icons span3" title="Code: 0xe83f"><i class="demo-icon icon-tags-4">&#xe83f;</i> <span class="i-name">icon-tags-4</span><span class="i-code">0xe83f</span></div>
<div class="the-icons span3" title="Code: 0xf004"><i class="demo-icon icon-down-open">&#xf004;</i> <span class="i-name">icon-down-open</span><span class="i-code">0xf004</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xf005"><i class="demo-icon icon-up-open">&#xf005;</i> <span class="i-name">icon-up-open</span><span class="i-code">0xf005</span></div>
<div class="the-icons span3" title="Code: 0xf006"><i class="demo-icon icon-right-open">&#xf006;</i> <span class="i-name">icon-right-open</span><span class="i-code">0xf006</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xf007"><i class="demo-icon icon-left-open">&#xf007;</i> <span class="i-name">icon-left-open</span><span class="i-code">0xf007</span></div>
<div class="the-icons span3" title="Code: 0xf047"><i class="demo-icon icon-move">&#xf047;</i> <span class="i-name">icon-move</span><span class="i-code">0xf047</span></div>
<div class="the-icons span3" title="Code: 0xf086"><i class="demo-icon icon-info-circled-alt">&#xf086;</i> <span class="i-name">icon-info-circled-alt</span><span class="i-code">0xf086</span></div>
<div class="the-icons span3" title="Code: 0xf08e"><i class="demo-icon icon-link-ext">&#xf08e;</i> <span class="i-name">icon-link-ext</span><span class="i-code">0xf08e</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xf086"><i class="demo-icon icon-info-circled-alt">&#xf086;</i> <span class="i-name">icon-info-circled-alt</span><span class="i-code">0xf086</span></div>
<div class="the-icons span3" title="Code: 0xf08e"><i class="demo-icon icon-link-ext">&#xf08e;</i> <span class="i-name">icon-link-ext</span><span class="i-code">0xf08e</span></div>
<div class="the-icons span3" title="Code: 0xf096"><i class="demo-icon icon-check-empty">&#xf096;</i> <span class="i-name">icon-check-empty</span><span class="i-code">0xf096</span></div>
<div class="the-icons span3" title="Code: 0xf0e5"><i class="demo-icon icon-comment-empty">&#xf0e5;</i> <span class="i-name">icon-comment-empty</span><span class="i-code">0xf0e5</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xf0f6"><i class="demo-icon icon-doc-text">&#xf0f6;</i> <span class="i-name">icon-doc-text</span><span class="i-code">0xf0f6</span></div>
<div class="the-icons span3" title="Code: 0xf0fe"><i class="demo-icon icon-plus-squared">&#xf0fe;</i> <span class="i-name">icon-plus-squared</span><span class="i-code">0xf0fe</span></div>
<div class="the-icons span3" title="Code: 0xf137"><i class="demo-icon icon-angle-circled-left">&#xf137;</i> <span class="i-name">icon-angle-circled-left</span><span class="i-code">0xf137</span></div>
<div class="the-icons span3" title="Code: 0xf138"><i class="demo-icon icon-angle-circled-right">&#xf138;</i> <span class="i-name">icon-angle-circled-right</span><span class="i-code">0xf138</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xf138"><i class="demo-icon icon-angle-circled-right">&#xf138;</i> <span class="i-name">icon-angle-circled-right</span><span class="i-code">0xf138</span></div>
<div class="the-icons span3" title="Code: 0xf139"><i class="demo-icon icon-angle-circled-up">&#xf139;</i> <span class="i-name">icon-angle-circled-up</span><span class="i-code">0xf139</span></div>
<div class="the-icons span3" title="Code: 0xf13a"><i class="demo-icon icon-angle-circled-down">&#xf13a;</i> <span class="i-name">icon-angle-circled-down</span><span class="i-code">0xf13a</span></div>
<div class="the-icons span3" title="Code: 0xf13e"><i class="demo-icon icon-lock-open-alt">&#xf13e;</i> <span class="i-name">icon-lock-open-alt</span><span class="i-code">0xf13e</span></div>
<div class="the-icons span3" title="Code: 0xf142"><i class="demo-icon icon-ellipsis-vert">&#xf142;</i> <span class="i-name">icon-ellipsis-vert</span><span class="i-code">0xf142</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xf142"><i class="demo-icon icon-ellipsis-vert">&#xf142;</i> <span class="i-name">icon-ellipsis-vert</span><span class="i-code">0xf142</span></div>
<div class="the-icons span3" title="Code: 0xf160"><i class="demo-icon icon-sort-alt-up">&#xf160;</i> <span class="i-name">icon-sort-alt-up</span><span class="i-code">0xf160</span></div>
<div class="the-icons span3" title="Code: 0xf161"><i class="demo-icon icon-sort-alt-down">&#xf161;</i> <span class="i-name">icon-sort-alt-down</span><span class="i-code">0xf161</span></div>
<div class="the-icons span3" title="Code: 0xf171"><i class="demo-icon icon-bitbucket">&#xf171;</i> <span class="i-name">icon-bitbucket</span><span class="i-code">0xf171</span></div>
<div class="the-icons span3" title="Code: 0xf17c"><i class="demo-icon icon-linux">&#xf17c;</i> <span class="i-name">icon-linux</span><span class="i-code">0xf17c</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xf17c"><i class="demo-icon icon-linux">&#xf17c;</i> <span class="i-name">icon-linux</span><span class="i-code">0xf17c</span></div>
<div class="the-icons span3" title="Code: 0xf192"><i class="demo-icon icon-dot-circled">&#xf192;</i> <span class="i-name">icon-dot-circled</span><span class="i-code">0xf192</span></div>
<div class="the-icons span3" title="Code: 0xf196"><i class="demo-icon icon-plus-squared-alt">&#xf196;</i> <span class="i-name">icon-plus-squared-alt</span><span class="i-code">0xf196</span></div>
<div class="the-icons span3" title="Code: 0xf1ac"><i class="demo-icon icon-fax">&#xf1ac;</i> <span class="i-name">icon-fax</span><span class="i-code">0xf1ac</span></div>
<div class="the-icons span3" title="Code: 0xf1de"><i class="demo-icon icon-sliders">&#xf1de;</i> <span class="i-name">icon-sliders</span><span class="i-code">0xf1de</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xf1de"><i class="demo-icon icon-sliders">&#xf1de;</i> <span class="i-name">icon-sliders</span><span class="i-code">0xf1de</span></div>
<div class="the-icons span3" title="Code: 0xf1e0"><i class="demo-icon icon-share">&#xf1e0;</i> <span class="i-name">icon-share</span><span class="i-code">0xf1e0</span></div>
<div class="the-icons span3" title="Code: 0xf1ec"><i class="demo-icon icon-calc">&#xf1ec;</i> <span class="i-name">icon-calc</span><span class="i-code">0xf1ec</span></div>
<div class="the-icons span3" title="Code: 0xf1f7"><i class="demo-icon icon-bell-off-empty">&#xf1f7;</i> <span class="i-name">icon-bell-off-empty</span><span class="i-code">0xf1f7</span></div>
<div class="the-icons span3" title="Code: 0xf204"><i class="demo-icon icon-toggle-off">&#xf204;</i> <span class="i-name">icon-toggle-off</span><span class="i-code">0xf204</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xf204"><i class="demo-icon icon-toggle-off">&#xf204;</i> <span class="i-name">icon-toggle-off</span><span class="i-code">0xf204</span></div>
<div class="the-icons span3" title="Code: 0xf205"><i class="demo-icon icon-toggle-on">&#xf205;</i> <span class="i-name">icon-toggle-on</span><span class="i-code">0xf205</span></div>
<div class="the-icons span3" title="Code: 0xf267"><i class="demo-icon icon-safari">&#xf267;</i> <span class="i-name">icon-safari</span><span class="i-code">0xf267</span></div>
<div class="the-icons span3" title="Code: 0xf268"><i class="demo-icon icon-chrome">&#xf268;</i> <span class="i-name">icon-chrome</span><span class="i-code">0xf268</span></div>
<div class="the-icons span3" title="Code: 0xf269"><i class="demo-icon icon-firefox">&#xf269;</i> <span class="i-name">icon-firefox</span><span class="i-code">0xf269</span></div>
</div>
<div class="row">
<div class="the-icons span3" title="Code: 0xf269"><i class="demo-icon icon-firefox">&#xf269;</i> <span class="i-name">icon-firefox</span><span class="i-code">0xf269</span></div>
<div class="the-icons span3" title="Code: 0xf4c5"><i class="demo-icon icon-calendar-1">&#xf4c5;</i> <span class="i-name">icon-calendar-1</span><span class="i-code">0xf4c5</span></div>
<div class="the-icons span3" title="Code: 0xf50d"><i class="demo-icon icon-search-1">&#xf50d;</i> <span class="i-name">icon-search-1</span><span class="i-code">0xf50d</span></div>
</div>
</div>
<div class="container footer">Generated by <a href="http://fontello.com">fontello.com</a></div>
</body>
</html>
</html>

Binary file not shown.

View file

@ -1,11 +1,15 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Copyright (C) 2019 by original authors @ fontello.com</metadata>
<metadata>Copyright (C) 2020 by original authors @ fontello.com</metadata>
<defs>
<font id="fontello" horiz-adv-x="1000" >
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="check" unicode="&#xe741;" d="M786 331v-177q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h464q35 0 65-14 9-4 10-13 2-10-5-16l-27-28q-6-5-13-5-1 0-5 1-13 3-25 3h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v141q0 8 5 13l36 35q6 6 13 6 3 0 7-2 11-4 11-16z m129 273l-455-454q-13-14-31-14t-32 14l-240 240q-14 13-14 31t14 32l61 62q14 13 32 13t32-13l147-147 361 361q13 13 31 13t32-13l62-61q13-14 13-32t-13-32z" horiz-adv-x="928.6" />
<glyph glyph-name="resize-small-1" unicode="&#xe746;" d="M66 672l114-116 73 74 0-210-210 0 72 72-115 115z m0-644l-66 67 115 113-72 73 210 0 0-210-73 72z m513 644l65-65-115-115 72-72-210 0 0 210 73-73z m-115-529l-73-72 0 210 210 0-72-73 115-113-65-67z" horiz-adv-x="644" />
<glyph glyph-name="logout" unicode="&#xe800;" d="M357 46q0-2 1-11t0-14-2-14-5-11-12-3h-178q-67 0-114 47t-47 114v392q0 67 47 114t114 47h178q8 0 13-5t5-13q0-2 1-11t0-15-2-13-5-11-12-3h-178q-37 0-63-26t-27-64v-392q0-37 27-63t63-27h174t6 0 7-2 4-3 4-5 1-8z m518 304q0-14-11-25l-303-304q-11-10-25-10t-25 10-11 25v161h-250q-14 0-25 11t-11 25v214q0 15 11 25t25 11h250v161q0 14 11 25t25 10 25-10l303-304q11-10 11-25z" horiz-adv-x="928.6" />
<glyph glyph-name="cancel-circled" unicode="&#xe801;" d="M641 224q0 14-10 25l-101 101 101 101q10 11 10 25 0 15-10 26l-51 50q-10 11-25 11-15 0-25-11l-101-101-101 101q-11 11-25 11-16 0-26-11l-50-50q-11-11-11-26 0-14 11-25l101-101-101-101q-11-11-11-25 0-15 11-26l50-50q10-11 26-11 14 0 25 11l101 101 101-101q10-11 25-11 15 0 25 11l51 50q10 11 10 26z m216 126q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
@ -122,12 +126,20 @@
<glyph glyph-name="up-hand" unicode="&#xe839;" d="M714-43q0 15-10 25t-25 11-25-11-11-25 11-25 25-11 25 11 10 25z m72 427q0 105-93 105-15 0-32-3-9 17-29 27t-41 9-38-10q-28 30-67 30-14 0-31-6t-26-14v185q0 29-22 50t-50 22q-28 0-50-22t-21-50v-321q-11 0-27 8t-31 19-38 18-47 8q-37 0-55-24t-17-65q0-13 78-50 25-14 36-21 36-22 81-62 45-40 59-57 32-38 32-78v-18h357v18q0 40 18 93t36 108 18 101z m71 2q0-74-38-179-33-92-33-125v-161q0-29-21-50t-51-21h-357q-29 0-50 21t-21 50v161q0 6-3 12t-8 13-10 13-12 13-12 12-12 10-10 8q-41 36-72 56-11 7-34 18t-40 21-36 23-27 30-10 39q0 70 37 115t106 46q38 0 71-13v209q0 58 43 101t100 42q58 0 101-42t42-101v-94q35-2 66-21 12 2 24 2 57 0 100-34 77 1 122-47t45-127z" horiz-adv-x="857.1" />
<glyph glyph-name="tags-3" unicode="&#xe839;" d="M1011 502q30-32 30-74t-30-73l-56-56 5-5q30-31 29-74t-30-73l-364-366q-30-30-74-30t-73 30q-227 227-342 338-106 106-106 258 0 102 54 188-8 165 105 278 106 106 257 106 153 0 259-106z m-490-647l364 365-336 340q-76 77-184 77-109 0-185-77t-76-183 76-184q115-111 341-338z m102 779l258-261 57 56-337 340q-76 76-185 76-107 0-183-76-35-35-54-79 86 52 186 52 150 0 258-108z m-258-179q-32 0-56-23t-23-55 23-55 56-23 55 23 23 55-23 55-55 23z m0 52q54 0 92-39t38-91-38-92-92-38-92 38-38 92 38 91 92 39z" horiz-adv-x="1041" />
<glyph glyph-name="down-hand" unicode="&#xe83a;" d="M786 314q0 47-18 102t-36 109-18 93v18h-357v-18q0-20-7-38t-20-35-26-28-30-27q-5-4-8-7-45-40-81-62-12-8-38-21-1-1-12-6t-20-10-20-12-17-12-7-10q0-40 17-64t55-25q24 0 47 8t38 19 31 18 27 8v-321q0-28 21-50t50-22q29 0 50 22t22 50v185q25-20 57-20 39 0 67 30 17-10 38-10t41 9 29 27q14-2 32-2 47 0 70 27t23 75z m-72 429q0 14-10 25t-25 11-25-11-11-25 11-25 25-11 25 11 10 25z m143-426q0-80-43-129t-121-48l-3 0q-43-34-100-34-12 0-24 2-30-17-66-21v-94q0-59-42-101t-101-42q-58 0-100 42t-43 101v209q-30-13-71-13-68 0-105 46t-38 115q0 21 10 39t27 31 36 22 40 21 34 18q31 20 72 56 2 1 10 8t12 10 12 12 12 13 10 13 8 13 3 12v161q0 29 21 50t50 21h357q30 0 51-21t21-50v-161q0-33 33-125 38-106 38-176z" horiz-adv-x="857.1" />
<glyph glyph-name="eye-off" unicode="&#xe83b;" d="M310 105l43 79q-48 35-76 88t-27 114q0 67 34 125-128-65-213-197 94-144 239-209z m217 424q0 11-8 19t-19 7q-70 0-120-50t-50-119q0-11 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19z m202 106q0-4 0-5-59-105-176-316t-176-316l-28-50q-5-9-15-9-7 0-75 39-9 6-9 16 0 7 25 49-80 36-147 96t-117 137q-11 17-11 38t11 39q86 131 212 207t277 76q50 0 100-10l31 54q5 9 15 9 3 0 10-3t18-9 18-10 18-10 10-7q9-5 9-15z m21-249q0-78-44-142t-117-91l157 280q4-25 4-47z m250-72q0-19-11-38-22-36-61-81-84-96-194-149t-234-53l41 74q119 10 219 76t169 171q-65 100-158 164l35 63q53-36 102-85t81-103q11-19 11-39z" horiz-adv-x="1000" />
<glyph glyph-name="arrows-cw-1" unicode="&#xe83c;" d="M843 261q0-3 0-4-36-150-150-243t-267-93q-81 0-157 31t-136 88l-72-72q-11-11-25-11t-25 11-11 25v250q0 14 11 25t25 11h250q14 0 25-11t10-25-10-25l-77-77q40-36 90-57t105-20q74 0 139 37t104 99q6 10 30 66 4 13 16 13h107q8 0 13-6t5-12z m14 446v-250q0-14-10-25t-26-11h-250q-14 0-25 11t-10 25 10 25l77 77q-82 77-194 77-75 0-140-37t-104-99q-6-10-29-66-5-13-17-13h-111q-7 0-13 6t-5 12v4q36 150 151 243t268 93q81 0 158-31t137-88l72 72q11 11 25 11t26-11 10-25z" horiz-adv-x="857.1" />
<glyph glyph-name="resize-small-alt" unicode="&#xe83d;" d="M648 88l-72-72 0 223 223 0-72-72 184-185-79-79z m-448 447l-182 183 79 79 183-182 73 70-1-222-222-1z m-182-553l184 185-72 72 223 0 0-223-72 72-184-185z m782 480l-224 0 0 225 73-72 183 182 79-79-183-183z" horiz-adv-x="928" />
<glyph glyph-name="tags" unicode="&#xe83e;" d="M250 600q0 30-21 51t-50 20-51-20-21-51 21-50 51-21 50 21 21 50z m595-321q0-30-20-51l-274-274q-22-21-51-21-30 0-50 21l-399 399q-21 21-36 57t-15 65v232q0 29 21 50t50 22h233q29 0 65-15t57-36l399-399q20-21 20-50z m215 0q0-30-21-51l-274-274q-22-21-51-21-20 0-33 8t-29 25l262 262q21 21 21 51 0 29-21 50l-399 399q-21 21-57 36t-65 15h125q29 0 65-15t57-36l399-399q21-21 21-50z" horiz-adv-x="1071.4" />
<glyph glyph-name="tags-4" unicode="&#xe83f;" d="M0 460l0 240q2 27 21 46t43 19l241 0q43 0 88-28l377-414q17-23 17-48t-17-44l-280-277q-21-18-47-19t-43 19l-355 397q-45 54-45 109z m104 138q0-25 17-42 22-20 46-19t42 19q18 19 18 44t-18 43q-20 18-45 17t-43-17q-17-21-17-45z m316 165l92 0q72-4 109-45l356-397q17-21 17-48t-17-44l-280-277q-60-35-95 8l271 271q18 22 18 47t-18 45l-318 356q-24 31-71 56t-64 28z" horiz-adv-x="994" />
<glyph glyph-name="down-open" unicode="&#xf004;" d="M0 533q0 25 18 43t44 18 42-18l305-303 304 303q18 18 43 18t43-18q18-18 18-43t-18-43l-390-391-391 391q-18 19-18 43z" horiz-adv-x="817.4" />
<glyph glyph-name="up-open" unicode="&#xf005;" d="M0 167q0 26 18 43l391 391 390-391q17-17 17-43 0-26-17-44-18-17-44-17t-43 17l-303 305-305-305q-18-17-43-17t-43 17q-18 18-18 44z" horiz-adv-x="816.9" />
@ -142,6 +154,8 @@
<glyph glyph-name="link-ext" unicode="&#xf08e;" d="M786 332v-178q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h393q7 0 12-5t5-13v-36q0-8-5-13t-12-5h-393q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v178q0 8 5 13t13 5h36q8 0 13-5t5-13z m214 482v-285q0-15-11-25t-25-11-25 11l-98 98-364-364q-5-6-13-6t-12 6l-64 64q-6 5-6 12t6 13l364 364-98 98q-11 11-11 25t11 25 25 11h285q15 0 25-11t11-25z" horiz-adv-x="1000" />
<glyph glyph-name="check-empty" unicode="&#xf096;" d="M625 707h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v464q0 37-26 63t-63 26z m161-89v-464q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h464q66 0 114-48t47-113z" horiz-adv-x="785.7" />
<glyph glyph-name="comment-empty" unicode="&#xf0e5;" d="M500 636q-114 0-213-39t-157-105-59-142q0-62 40-119t113-98l48-28-15-53q-13-51-39-97 85 36 154 96l24 21 32-3q38-5 72-5 114 0 213 39t157 105 59 142-59 142-157 105-213 39z m500-286q0-97-67-179t-182-130-251-48q-39 0-81 4-110-97-257-135-27-8-63-12h-3q-8 0-15 6t-9 15v1q-2 2 0 6t1 6 2 5l4 5t4 5 4 5q4 5 17 19t20 22 17 22 18 28 15 33 15 42q-88 50-138 123t-51 157q0 97 67 179t182 130 251 48 251-48 182-130 67-179z" horiz-adv-x="1000" />
<glyph glyph-name="doc-text" unicode="&#xf0f6;" d="M819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 17-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 16t-16 37v233h-429v-858h715z m-572 483q0 7 5 12t13 5h393q8 0 13-5t5-12v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36z m411-125q8 0 13-5t5-13v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36q0 8 5 13t13 5h393z m0-143q8 0 13-5t5-13v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36q0 8 5 13t13 5h393z" horiz-adv-x="857.1" />

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Before After
Before After

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

BIN
html/image/logo7500.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
html/image/logo7500.xcf Normal file

Binary file not shown.

BIN
html/image/logo8100.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View file

@ -142,7 +142,7 @@ BODY {
position:absolute;
z-index:-1;
height:auto;
width:10%;
width:125px;
left:1%;
top:30px;
@ -196,11 +196,12 @@ BODY {
}
#recover_link {
position:absolute;
margin-top:397px;
/*! margin-top:397px; */
left:1px;
background-color: white;
bottom: initial;
width: 20rem;
bottom: 30px;
}
}
@media only screen and (min-width : 1100px) {
@ -228,9 +229,9 @@ BODY {
width: 24rem;
}
#recover_link {
position:absolute;
top:397px;
position:fixed;
left:539px;
bottom:2px;
background-color: white;
width:auto;
@ -274,9 +275,9 @@ BODY {
width: 24rem;
}
#recover_link {
position:absolute;
top:55%;
position:fixed;
left:55%;
bottom:20px;
background-color: white;
margin-top:0px;
}

View file

@ -191,7 +191,7 @@ if (isset ($_REQUEST['reconnect']) && isset ($_REQUEST['backurl'])) {
}
echo '
<IMG SRC="image/logo7400.png" id="logo_id" alt="NOALYSS">
<IMG SRC="image/logo8100.png" id="logo_id" alt="NOALYSS">
<form id="login_frm" action="login.php" method="post" name="loginform">'.
'<h1>Noalyss</h1>'.
$goto .

View file

@ -29,14 +29,18 @@
h2 {
font-size: 105%;
text-align: left;
text-decoration: underline;
text-decoration: none;
color:darkblue;
margin-bottom: 1rem;
margin-top: 1rem;
}
h3 {
font-size : 102%;
font-style: italic;
margin-left: 3px;
}
.button {
font-size:110%;
color:white;
@ -79,7 +83,7 @@
</head>
<body>
<p align="center">
<IMG SRC="image/logo7400.png" style="width: 400px;z-index:-1;position:fixed;top:30px;rigth:50px;opacity: 0.2" alt="NOALYSS">
<IMG SRC="image/logo8100.png" style="width: 30%;z-index:-1;position:fixed;top:30%;margin-left: 20%;opacity: 0.2" alt="NOALYSS">
</p>
<h1>NOALYSS : comptabilité - accountancy </h1>
@ -141,7 +145,7 @@ load_all_script();
echo '<div id="info_div"></div>';
if ( $_GET['lang'] == "en_US.utf8" || $_GET['lang']=='fr_FR.utf8')
{
$_SESSION['g_lang']=$_GET['lang'];
$_SESSION[SESSION_KEY.'g_lang']=$_GET['lang'];
set_language();
}
?>
@ -256,13 +260,15 @@ if (isset($_POST['save_config'])) {
// If conx successfull save the file or display it
// -----
if ( $err == 0 && $cnx !== false ) {
echo '<h1>'._('Important').'</h1>';
echo '<h2 class="warning">',_("Voici l'utilisateur et mot de passe de l'utilisateur administrateur de Noalyss , "
echo '<div style="border:red 1px solid">';
echo '<h1 style="padding-top:0px;margin-top:0px;background-color:orangered">'._('Important').'</h1>';
echo '<p style="padding:10px">',_("Voici l'utilisateur et mot de passe de l'utilisateur administrateur de Noalyss , "
. " il a tous les droits et a accès à tout."
. " Connectez-vous avec ses identifiants et changer le mot de passe dans préférence (en haut à droit)"),
"</h2>";
echo '<p style="font-size:120%">'._('Utilisateur administrateur'),' ','<span style="color:red"> ',$cadmin,'</span>','</p>';
echo '<p style="font-size:120%">',_('Mot de passe'),'<span style="color:red"> '.$cpassword_admin.' </span>','</p>';
"</p>";
echo '<p style="padding:10px;font-size:120%">'._('Utilisateur administrateur'),' ','<span style="color:red"> ',$cadmin,'</span>','</p>';
echo '<p style="padding:10px;font-size:120%">',_('Mot de passe'),'<span style="color:red"> '.$cpassword_admin.' </span>','</p>';
echo '</div>';
// Create the db
if (is_writable(NOALYSS_INCLUDE)) {
$url=config_file_create($_POST,1,$os);

View file

@ -1110,16 +1110,16 @@ function search_letter(obj)
function op_save(obj)
{
try {
var queryString = $(obj).serialize();
queryString += "&gDossier=" + obj.gDossier.value;
var queryString = $(obj).serialize(true);
queryString ["gDossier"]= obj.gDossier.value;
var rapt2 = "rapt" + obj.whatdiv.value;
queryString += "&rapt=" + g(rapt2).value;
queryString += '&jr_id=' + obj.jr_id.value;
queryString ["rapt"] = g(rapt2).value;
queryString ["jr_id"] = obj.jr_id.value;
var jr_id=obj.jr_id.value;
queryString += '&div=' + obj.whatdiv.value;
queryString ["div"]= obj.whatdiv.value;
var divid=obj.whatdiv.value;
queryString += '&act=save';
queryString += '&op=ledger';
queryString ["act"]="save";
queryString ["op"]="ledger";
waiting_box();
/*
@ -1130,7 +1130,7 @@ function op_save(obj)
var action = new Ajax.Request('ajax_misc.php',
{
method: 'post',
parameters: encodeURI(queryString),
parameters: queryString,
onFailure: null,
onSuccess: infodiv
}
@ -1301,8 +1301,8 @@ function manage_search_filter(p_obj) {
onSuccess:function(req) {
remove_waiting_box();
var x=posX;
var y=posY-20;
create_div({'id':'boxfilter'+p_obj.div,'cssclass':'inner_box','html':req.responseText,'style':'top:'+y+'px;left:'+x+'px;position:absolute;width:400px'});
var y=calcy(200)
create_div({'id':'boxfilter'+p_obj.div,'cssclass':'inner_box','html':req.responseText,'style':'top:'+y+'px;left:'+x+'px;position:absolute;width:400px',drag:1});
$('boxfilter'+p_obj.div).show();
}
});
@ -1319,8 +1319,9 @@ function manage_search_filter(p_obj) {
function save_filter(p_div,p_dossier) {
var elt=['ledger_type','nb_jrn','date_start','date_end',
'date_paid_start','date_paid_end','desc','amount_min','amount_max','qcode','accounting',
'operation_filter'];
'operation_filter','tag_option'];
var eltValue={};
var i =0;
eltValue['gDossier']=p_dossier;
eltValue['op']="save_filter";
eltValue['div']=p_div;
@ -1342,6 +1343,12 @@ function save_filter(p_div,p_dossier) {
eltValue['r_jrn'+i]=$(idx).value
}
}
//ledger's tags
var aTag=Array.from(document.getElementsByName(p_div+"tag[]"));
eltValue["tag[]"]=[];
for (i=0 ; i < aTag.length;i++) {
eltValue["tag[]"][i]=aTag[i].value;
}
new Ajax.Request('ajax_misc.php', {
method:"POST",
@ -1353,7 +1360,7 @@ function save_filter(p_div,p_dossier) {
/*Add the new list to the selection */
var new_item=document.createElement('li');
new_item.innerHTML=answer.filter_name;
new_item.setAttribute("id","li"+p_div+"_"+answer.filter_id);
new_item.setAttribute("id","manageli"+p_div+"_"+answer.filter_id);
$('manage'+p_div).appendChild(new_item);
$(p_div+"filter_new").value="";
} else {
@ -1381,7 +1388,7 @@ function load_filter(p_div,p_dossier,p_filter_id) {
var answer=req.responseJSON;
console.log(answer);
var elt=['ledger_type','date_start','date_end','date_paid_start','date_paid_end',
'desc','amount_min','amount_max','qcode','accounting','operation_filter'];
'desc','amount_min','amount_max','qcode','accounting','operation_filter','tag_option'];
for (var i=0;i<elt.length;i++) {
var idx=elt[i];
$(p_div+idx).value=answer[elt[i]];
@ -1406,8 +1413,15 @@ function load_filter(p_div,p_dossier,p_filter_id) {
eltHidden.setAttribute("value",answer.r_jrn[i]);
eltLedgerId.appendChild(eltHidden);
}
new Ajax.Request("ajax_misc.php",{
method:"get",
parameters:{"gDossier":p_dossier,"div":p_div,"op":"display_filter_tag","filter_id":p_filter_id,
uf_tag:answer.uf_tag},
onSuccess:function (req) {
$(p_div+'tag_choose_td').update(req.responseText);
}
})
} catch (e) {
smoke.alert(e.message);
@ -1491,17 +1505,13 @@ function duplicate_operation(p_dossier,p_jr_id) {
},
onSuccess:function(req) {
remove_waiting_box();
console.debug("success");
var xml=req.responseXML;
console.debug ("received"+xml);
if ( xml.getElementsByTagName("ctl").length==0) {
console.log("erreur"+req.responseText);
}
console.debug("ok we display");
add_div(duplicate_div);
console.debug (getNodeText(xml.getElementsByTagName("code")[0]));
console.debug("fill div");
duplicate_div.setStyle({"position":"fixed","top":"15%","z-index":"999",
"min-width":"30rem",
"left":"30%",

View file

@ -77,6 +77,10 @@ function search_poste(obj)
if ( obj.jrn)
{
queryString+="&j="+obj.jrn;
}else {
if ($("p_jrn")) {
queryString+="&j="+$("p_jrn").value;
}
}
if ( obj.account)
{

View file

@ -226,7 +226,7 @@ function ajax_success_saldo(request,json)
* \param ctl : id of the div to show
* \param page
*/
function ajax_card(p_dossier,f_id,p_operation,ctl,page)
function _saajax_card(p_dossier,f_id,p_operation,ctl,page)
{
$(ctl).show();
var queryString="gDossier="+p_dossier+"&f_id="+f_id+"&op="+p_operation+"&p="+page+'&ctl='+ctl;

View file

@ -33,7 +33,7 @@ function boxsearch_card(p_dossier)
{
waiting_box();
removeDiv('boxsearch_card_div');
var queryString="gDossier="+p_dossier+"&op=cardsearch"+"&card="+encodeURI($(card_search).value);
var queryString="gDossier="+p_dossier+"&op=cardsearch"+"&card="+encodeURI($("card_search").value);
var action = new Ajax.Request(
"ajax_misc.php" ,
{
@ -57,14 +57,15 @@ function boxsearch_card(p_dossier)
/**
* 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)
* - acc 1 if accounting are visible
* @param obj
* @param {int} obj.jrn for the ledger
* @param {int} obj.fs route to the action
* @param {string} obj.price for the price of the card (field to update)
* @param {string} obj.tvaid for the tvaid of the card (field to update)
* @param {string} obj.inp input text to update with the quickcode
* @param {string} obj.label field to update with the name
* @param {string} obj.ctl the id to fill with the HTML answer (ending with _content)
* @param {int} obj.acc 1 if accounting are visible
*/
function search_card(obj)
{
@ -78,6 +79,13 @@ function search_card(obj)
var price=obj.price;
var tvaid=obj.tvaid;
var jrn=obj.jrn;
var inactive_card=0;
if ( obj.inactive_card) {inactive_card=obj.inactive_card.value;}
var amount_from_type=0;
if ( obj.amount_from_type) {
amount_from_type=obj.amount_from_type;
}
if ( jrn==undefined)
{
if ( g('p_jrn')) {
@ -97,7 +105,9 @@ function search_card(obj)
'inp':inp,'label':label,'price':price,'tvaid':tvaid,
'ctl':'search_card','op2':'fs','jrn':jrn,
'typecard':typecard,'query':string_to_search,'op':'card',
'accvis':accvis
'accvis':accvis,
'amount_from_type':amount_from_type,
'inactive_card':inactive_card
});
if ( $('search_card') ) {
removeDiv('search_card');
@ -122,16 +132,120 @@ function search_card(obj)
}
}
/**
* Display form for select card to add to action : other_concerned
*action_add_concerned_card
* Display found card and let you select several to link them to an action-followup
* @param {obj} obj form object
* @param {obj} obj form object
*/
function action_add_concerned_card(obj)
function action_concerned_save_card(obj)
{
try {
waiting_box();
// get all data from FORM
var query = obj.serialize();
new Ajax.Request("ajax_misc.php", {
method: "POST",
parameters: query,
onSuccess: function (req) {
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);
$(namectl).update(code_html);
removeDiv('search_card');
/* if dialog box exist with list other card, then refresh it */
if ( document.getElementById("action_concerned_list_dv") ) {
action_concerned_list({ag_id:obj.ag_id.value,dossier:obj.gDossier.value});
}
}
});
} catch (e)
{
alert_box('action_concerned_save_card' + e.message);
return false;
}
return false;
}
/**
* Display the list of other card from a followup action
* @returns {undefined}
*/
function action_concerned_list(p_obj) {
try {
var action = new Ajax.Request('ajax_misc.php',
{
method: 'get',
parameters: {gDossier: p_obj.dossier, op: 'card', 'op2': "action_concerned_list", "ag_id": p_obj.ag_id
,"ctl":'action_concerned_list_dv'},
onFailure: errorFid,
onSuccess: function (req, txt)
{
try {
var sx = 0;
if (window.scrollY)
{
sx = window.scrollY + 40;
} else
{
sx = document.body.scrollTop + 60;
}
var div_style = "top:" + sx + "px;";
add_div({id: 'action_concerned_list_dv', cssclass: 'inner_box', html: "",
style: div_style, drag: true});
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);
$('action_concerned_list_dv').innerHTML = code_html;
} catch (e) {
alert_box(e.message);
}
}
}
);
} catch (e) {
alert_box("action_concerned_list" + e.message);
}
}
/**
* Display form for searching cards to add to action-follow-up
*@see ajax_add_concerned_card.php
*@param {object} obj form object
*@param obj.elements.ag_id id of the action (elements)
*@param obj.elements.gDossier folder id
*@param obj.elements.query
*/
function action_concerned_search_card(obj)
{
try
{
var dossier = 0;
var inp="";
var ag_id=0;
var search_in=-1;
var inactive_card=0;
var search_cat=-1;
if (obj.dossier) {
dossier = obj.dossier; /* From the button */
@ -153,6 +267,15 @@ function action_add_concerned_card(obj)
if (obj.elements['ag_id']) {
ag_id = obj.elements['ag_id'].value;
}
if (obj.elements['search_in']) {
search_in = obj.elements['search_in'].value;
}
if ( obj.elements['inactive_card']) {
inactive_card=obj.elements['inactive_card'].value;
}
if ( obj.elements['search_cat']) {
search_cat=obj.elements['search_cat'].value;
}
}
if (dossier == 0) {
throw "obj.dossier not found";
@ -167,7 +290,10 @@ function action_add_concerned_card(obj)
'ctl' : 'unused',
'ag_id' : ag_id,
'op':'card',
'accvis':0
'accvis':0,
'search_in':search_in,
'inactive_card':inactive_card,
'search_cat':search_cat
});
waiting_box();
@ -204,10 +330,11 @@ function action_add_concerned_card(obj)
{
sx = document.body.scrollTop + 60;
}
var div_style = "top:" + sx + "px;height:80%";
var div_style = "top:" + sx + "px;height:52rem";
if ( ! $('search_card')) { add_div({id: 'search_card', cssclass: 'inner_box', html: "", style: div_style, drag: true}); }
$('search_card').innerHTML = code_html;
$('query').focus();
activate_checkbox_range('select_card_ck');
}catch (e) {
alert_box(e.message);
}
@ -270,11 +397,23 @@ function search_get_card(obj)
}
if ( obj.elements['accvis'] )
{
queryString+="&accvis="+$F(accvis);
queryString+="&accvis="+$F('accvis');
} else {
queryString+="&accvis=0";
}
if ( obj.elements['amount_from_type']) {
queryString+="&amount_from_type="+obj.elements['amount_from_type'].value;
}
if (obj.elements['page_card']) {
queryString+="&page_card="+obj.elements["page_card"].value;
}
if ( obj.elements["inactive_card"]) {
queryString+="&inactive_card="+obj.elements["inactive_card"].value;
}
queryString=encodeURI(queryString);
$('asearch').innerHTML=loading();
var action=new Ajax.Request ( 'ajax_misc.php',
{
method:'get',
@ -457,7 +596,8 @@ function fill_ipopcard(obj)
if ( nTop > 300 ) {
nTop=170;
}
var str_top=fixed_position(250,nTop)
var str_top="top:"+calcy(nTop)+"px";
var str_style=str_top+";width:45em;height:auto;position:absolute";
var popup={'id': content,'cssclass':'inner_box','style':str_style,'html':loading(),'drag':false};
@ -949,7 +1089,7 @@ try {
* @param {type} p_action_id action_gestion.ag_id
* @returns {undefined} nothing
*/
function action_save_concerned(p_dossier, p_fiche_id, p_action_id) {
function action_save_concerned(p_form_id) {
var query = encodeJSON({'gDossier': p_dossier, 'f_id': p_fiche_id, 'ag_id': p_action_id,'op':'card','op2':'action_save_concerned','ctl':'unused'});
var a=new Ajax.Request('ajax_misc.php',
{
@ -1005,8 +1145,11 @@ function action_remove_concerned(p_dossier,p_fiche_id,p_action_id)
var nodeXml=html[0];
var code_html = getNodeText(nodeXml);
code_html = unescape_xml(code_html);
removeDiv('search_card');
$('concerned_card_td').innerHTML = code_html;
removeDiv('search_card');
$(namectl).remove();
} catch (e) {
if ( console) { console.log('Erreur ') + e.message;}
alert_box('action_remove_concerned '+e.message);
@ -1216,4 +1359,53 @@ function card_update_row(obj)
alert_box(e.message);
return false;
}
}
/**
* Display the option of a contact linked in a action-followup
* @param {int} p_action_person_id action_person.ap_id
* @param {int} p_dossier current folder
*/
function linked_card_option(p_action_person_id,p_dossier) {
try {
waiting_box();
new Ajax.Request("ajax_misc.php",{
method:"get",
parameters: {
ap_id:p_action_person_id,
gDossier:p_dossier,
op:"card",
op2:"display_card_option",
ctl:"notused"
},
onSuccess:function(req) {
remove_waiting_box();
add_div({ "id":"d_linked_card_option",cssclass:"inner_box",style:"position:fixed;top:30%;min-width:20rem;width:auto;",drag:0});
$("d_linked_card_option").update(req.responseText);
}
});
} catch (e) {
console.error(e.message);
}
}
/**
* Save option for the contact
* @param {object} obj form
* @see card_multiple_display_option.php
* @returns {undefined}
*/
function save_linked_card_option(obj)
{
waiting_box();
new Ajax.Request("ajax_misc.php",{
method:"post",
parameters:obj.serialize(),
onSuccess:function(req) {
remove_waiting_box();
removeDiv("d_linked_card_option");
$("other_"+obj.action_person_id.value).update(req.responseText);
new Effect.Highlight("other_"+obj.action_person_id.value,{startcolor: '#FAD4D4',endcolor: '#F78082' });
}
});
return false;
}

View file

@ -65,3 +65,51 @@ function displayBulle(p_comment) {
d.style.left=posX+offsetX+"px";
d.style.visibility="visible";
}
/**
*
* @param p_name
* @see select_box.class.php
*/
function displaySelectBox(p_name) {
try {
if (! document.getElementById("select_box_content") ) {
var newDiv=new Element("div");
newDiv.id="select_box_content";
document.body.appendChild(newDiv);
newDiv.addClassName("select_box");
$("select_box_content").onmouseleave=function() {
try {
var newDiv=$("select_box_content");
newDiv.setStyle({display:"none"});
} catch(e) {
alert(e.message);
}
}
} else {
var newDiv=document.getElementById("select_box_content");
}
newDiv.innerHTML=$("select_box"+p_name).innerHTML;
var viewport = document.viewport.getDimensions();
var locPosY=posY;
if ( posY+offsetY+ newDiv.getHeight() > window.innerHeight -3) {
locPosY-=newDiv.getHeight()+20
}
newDiv.style.top=locPosY+"px";
newDiv.style.left=document.getElementById(p_name+"_bt").offsetLeft+"px";
newDiv.setStyle({display:"block",position:"absolute","z-index":999});
if ( $("search_"+p_name+"_list") ) {
var sTmp = newDiv.innerHTML;
var regex=new RegExp(p_name+"_list","g");
sTmp = sTmp.replace(regex,p_name+"_t_list");
newDiv.innerHTML=sTmp;
$("search_"+p_name+"_t_list").focus();
}
} catch(e) {
alert(e.message);
}
}

View file

@ -74,9 +74,12 @@ var ManageTable = function (p_table_name)
{
this.callback = "ajax.php"; //!< File to call
this.control = "dtr"; //<! Prefix Id of dialog box, table, row
this.mt_style={position: "fixed", top: '15%', width: "auto", "max-width":"60%","margin-left": "20%"};
this.sort_column=0;
this.param = {"table": p_table_name, "ctl_id": this.control}; //<! default value to pass
this.set_style=function(p_json) {
this.mt_style=p_json;
};
/**
* Set the sort ,
* @param {string} p_column column number start from 0
@ -87,6 +90,10 @@ var ManageTable = function (p_table_name)
this.sort_column=p_column;
};
this.set_dialog_box=function (p_dialog_box){
this.control=p_dialog_box;
}
/**
* Insert the row a the right location
* @param {type} p_element_row DOMElement TR
@ -189,18 +196,19 @@ var ManageTable = function (p_table_name)
* set
*/
this.save = function (form_id) {
var param_form={};
waiting_box();
try {
this.param['action'] = 'save';
var form = $(form_id).serialize(true);
this.param_add(form);
param_form = json_concat(this.param,form);
var here=this;
} catch (e) {
alert(e.message);
return false;
}
new Ajax.Request(this.callback, {
parameters: this.param,
parameters: param_form,
method: "post",
onSuccess: function (req) {
try {
@ -224,12 +232,12 @@ var ManageTable = function (p_table_name)
new Effect.Highlight(answer['ctl_row'] ,{startcolor: '#FAD4D4',endcolor: '#F78082' });
alternate_row_color("tb"+answer['ctl']);
remove_waiting_box();
$("dtr").hide();
$(here.control).hide();
} else {
remove_waiting_box();
smoke.alert(content[48]);
$("dtr").update(answer['html']);
$(here.control).update(answer['html']);
}
}
@ -303,7 +311,12 @@ var ManageTable = function (p_table_name)
var obj = {id: control, "cssclass": "inner_box", "html": loading()};
add_div(obj);
var pos = calcy(250);
$(obj.id).setStyle({position: "fixed", top: '15%', width: "auto", "margin-left": "20%"});
if (window.innerWidth < 1200) {
here.mt_style["margin-left"]="2%";
here.mt_style["max-width"]="80%";
}
console.log(here.mt_style);
$(obj.id).setStyle(here.mt_style);
$(obj.id).update(x['html']);
} catch (e) {
smoke.alert(content[48] + e.message);

View file

@ -0,0 +1,84 @@
/*
* Copyright (C) 2020 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.
*/
/**
*
* @param {event} evt event
* @param {object} elt checkbox elt
* @param {string} p_name name of the checkbox object
* @returns {undefined}
*/
var lastcheck = null;
var endcheck = null;
/**
* Check or uncheck checkbox if shift key is pressed and between the last checked elemet and the current one
* @param {type} evt event
* @param {type} elt Dom element
* @param {type} p_name name of range
*/
function checkbox_set_range(evt, elt, p_name) {
if (!evt.shiftKey) {
lastcheck = elt;
return;
}
var aName = document.getElementsByClassName(p_name);
var from = 0;
var end = 0;
for (var i = 0; i < aName.length; i++) {
if (aName[i] == elt) {
endcheck = aName[i];
from = i;
}
if (aName[i] == lastcheck) {
end = i;
}
}
if (from > end) {
let a = from;
from = end;
end = a;
}
var check = (aName[from].checked) ? true : false;
for (x = from; x <= end; x++) {
aName[x].checked = check;
}
}
/**
* For each checkbox , add an event on click
* @param {string} p_range_name name of the checkbox object
* @returns {undefined}
*/
function activate_checkbox_range(p_range_name) {
let node_lstCheckBox = document.getElementsByClassName(p_range_name);
var aCheckBox=Array.from(node_lstCheckBox)
if (aCheckBox == undefined) {
console.error("activate_checkbox_range_failed")
}
aCheckBox.forEach(elt => elt.addEventListener ('click',function (event) {
checkbox_set_range(event, elt, p_range_name);
},false));
}
;

View file

@ -24,12 +24,31 @@
*
*/
var ask_reload = 0;
var tag_choose = '';
// tag_choose Element which contains all the selected tags
var tag_choose = '';
var aDraggableElement = new Array();
var viewport = document.viewport.getDimensions(); // Gets the viewport as an object literal
var width = viewport.width; // Usable window width
var height = viewport.height;
/**
* return undefined if nothing is found , otherwise return the DOM elemnt
* @param {type} p_name_dom
* @param {type} name_child
* @returns {undefined}
*/
function in_child(p_element,name_child) {
var element=p_element
if ( typeof p_element !== "object" ) {
element=document.getElementById(p_element);
}
if ( ! element ) return undefined;
for ( var e=0; e < element.childElementCount;e++) {
if ( element.childNodes[e].id == name_child) {
return element.childNodes[e];
}
}
}
/**
* callback function when we just need to update a hidden div with an info
* message
@ -314,6 +333,16 @@ function format_number(obj, p_prec)
$(obj).value = value;
}
/**
* Replace slash and minus by dot
* @param p_object
*/
function format_date(p_object)
{
p_object.value=p_object.value.replace(/\//g,'.');
p_object.value=p_object.value.replace(/-/g,'.');
}
/**
*@brief check if the object is hidden or show and perform the opposite,
* show the hidden obj or hide the shown one
@ -433,7 +462,7 @@ function success_misc(req)
}
function loading()
{
var str = '<h2>' + content[64] + '</h2>';
var str = '<p>' + content[64] + '</p>';
str = str + '<image src="image/loading.gif" alt="chargement"></image>';
return str;
}
@ -1227,7 +1256,7 @@ function fill_box(req)
*@param dossier_id
*@param od_id from table op_predef
*/
function mod_predf_op(dossier_id, od_id)
function mod_predf_op(dossier_id, od_id,p_ledger)
{
var target = "mod_predf_op";
removeDiv(target);
@ -1237,7 +1266,7 @@ function mod_predf_op(dossier_id, od_id)
add_div(div);
var qs = "gDossier=" + dossier_id + '&op=mod_predf&id=' + od_id;
var qs = "gDossier=" + dossier_id + '&op=mod_predf&id=' + od_id+'&ledger_id='+p_ledger;
var action = new Ajax.Request('ajax_misc.php',
{
@ -1307,6 +1336,7 @@ function search_reconcile(dossier, ctl_concern, amount_id, ledger, p_id_target,
str_style += ";width:92%;overflow:auto;";
waiting_box();
var hide_operation = $(ctl_concern).getAttribute("hide_operation");
var single_operation = $(ctl_concern).getAttribute("single_operation");
var param_send = {gDossier: dossier,
ctlc: ctl_concern,
@ -1316,7 +1346,8 @@ function search_reconcile(dossier, ctl_concern, amount_id, ledger, p_id_target,
ledger: ledger,
target: target,
tiers: tiers,
hide_operation: hide_operation
hide_operation: hide_operation,
single_operation:single_operation
};
var qs = encodeJSON(param_send);
@ -1384,6 +1415,7 @@ function set_reconcile(obj)
if (!obj.elements['target'])
return;
var target = obj.elements['target'].value;
var single_operation = obj.elements['single_operation'].value;
for (var e = 0; e < obj.elements.length; e++)
{
@ -1417,7 +1449,12 @@ function set_reconcile(obj)
});
}
}
$(ctlc.value).value += nValue;
if (single_operation==0) {
$(ctlc.value).value += nValue;
} else {
$(ctlc.value).value = nValue;
}
}
}
}
@ -2110,7 +2147,13 @@ function view_action(ag_id, dossier, modify)
});
$(id).innerHTML = code_html;
if (ctl_txt == 'ok') {
compute_all_ledger();
// compute detail
var detail=in_child(id,"follow_up_detail");
if (detail) {
compute_all_ledger();
}
}
code_html.evalScripts();
} catch (e) {
@ -2171,7 +2214,7 @@ function filter_table(phrase, _id, colnr, start_row) {
}
if (tot_found == 0) {
if ($('info_' + _id)) {
$('info_' + _id).innerHTML = content[69]
$('info_' + _id).innerHTML = content[69];
}
} else {
if ($('info_' + _id)) {
@ -2217,7 +2260,46 @@ function filter_list(phrase, _id) {
}
if (tot_found == 0) {
if ($('info_' + _id)) {
$('info_' + _id).innerHTML = content[69]
$('info_' + _id).innerHTML = content[69];
}
} else {
if ($('info_' + _id)) {
$('info_' + _id).innerHTML = " ";
}
}
}
/**
* @brief filter quickly a select
* @param phrase : DOM id of the input text where we find the word to seach
* @param _id : id of the list
* @returns nothing
* @see HtmlInput::filter_list
*/
function filter_multiselect(phrase, _id) {
$('info_div').innerHTML = content[65];
$('info_div').style.display = "block";
var words = $(phrase).value.toLowerCase();
var l_list = document.getElementById(_id);
var tot_found = 0;
for (var r = 0; r < l_list.options.length; r++) {
var found = 0;
var ele = l_list.options[r].text;
if (ele.toLowerCase().indexOf(words) >= 0) {
tot_found++;
l_list.options[r].style.display = 'block';
} else {
l_list.options[r].style.display = 'none';
}
$('info_div').style.display = "none";
$('info_div').innerHTML = "";
}
if (tot_found == 0) {
if ($('info_' + _id)) {
$('info_' + _id).innerHTML = content[69];
}
} else {
if ($('info_' + _id)) {
@ -2458,7 +2540,7 @@ function show_tag(p_dossier, p_ac, p_tag_id, p_post)
code_html = unescape_xml(code_html);
remove_waiting_box();
var posy = calcy(250);
add_div({id: 'tag_div', cssclass: 'inner_box', drag: 0, style: "position:fixed;top:" + posy + "px"});
add_div({id: 'tag_div', cssclass: 'inner_box', drag: 0, style: "position:fixed;top:15%;"});
$('tag_div').innerHTML = code_html;
try
{
@ -2545,13 +2627,14 @@ function action_tag_select(p_dossier, ag_id)
* @brief Add the current tag to the current ag_id
* @param {type} p_dossier
* @param {type} ag_id
* @param p_isgroup g it is a group , t is a single tag
* @returns {undefined}
*/
function action_tag_add(p_dossier, ag_id, t_id)
function action_tag_add(p_dossier, ag_id, t_id,p_isgroup)
{
try {
waiting_box();
var queryString = "t_id=" + t_id + "&ag_id=" + ag_id + "&op=tag_add&gDossier=" + p_dossier;
var queryString = "t_id=" + t_id + "&ag_id=" + ag_id + "&op=tag_add&gDossier=" + p_dossier+"&isgroup="+p_isgroup;
var action = new Ajax.Request(
"ajax_misc.php",
{
@ -2594,7 +2677,7 @@ function action_tag_remove(p_dossier, ag_id, t_id)
{
method: 'get', parameters: queryString,
onFailure: ajax_misc_failure,
onSuccess: function (req, j) {
onSuccess: function (req) {
var answer = req.responseXML;
var html = answer.getElementsByTagName('code');
if (html.length === 0)
@ -2641,13 +2724,16 @@ function activate_tag(p_dossier, p_tag_id) {
* Display a div with available tags, this div can update the cell
* tag_choose_td
* @param {type} p_dossier
* @param {string} p_prefix is the prefix of the div
* @param {string} Calling object either Tag_Operation or Tag_Action
* @returns {undefined}
*
*/
function search_display_tag(p_dossier, p_prefix)
function search_display_tag(p_dossier, p_prefix,p_object)
{
try {
waiting_box();
var queryString = "op=search_display_tag&gDossier=" + p_dossier + "&pref=" + p_prefix;
var queryString = { op : "search_display_tag",gDossier:p_dossier,pref:p_prefix,caller_obj:p_object};
var action = new Ajax.Request(
"ajax_misc.php",
{
@ -2665,8 +2751,8 @@ function search_display_tag(p_dossier, p_prefix)
code_html = unescape_xml(code_html);
remove_waiting_box();
add_div({id: p_prefix + 'tag_div', style: 'left:10%;width:70%', cssclass: 'inner_box', drag: 1});
$(p_prefix + 'tag_div').style.top = posY - 80 + "px";
$(p_prefix + 'tag_div').style.left = posX - 200 + "px";
$(p_prefix + 'tag_div').style.top = calcy(200)+"px"
$(p_prefix + 'tag_div').style.left = 20+ "%";
remove_waiting_box();
$(p_prefix + 'tag_div').innerHTML = code_html;
code_html.evalScripts();
@ -2682,8 +2768,10 @@ function search_display_tag(p_dossier, p_prefix)
* in the search screen
* @param {type} p_dossier
* @param {type} p_tag_id
* @param p_prefix is the prefix of the widget
* @param p_obj is either g for group of tag or t for a single tag
*/
function search_add_tag(p_dossier, p_tag_id, p_prefix)
function search_add_tag(p_dossier, p_tag_id, p_prefix,p_obj)
{
try {
var clear_button = 0;
@ -2692,7 +2780,7 @@ function search_add_tag(p_dossier, p_tag_id, p_prefix)
clear_button = 1;
}
waiting_box();
var queryString = "op=search_add_tag&gDossier=" + p_dossier + "&id=" + p_tag_id + "&clear=" + clear_button + '&pref=' + p_prefix;
var queryString = "op=search_add_tag&gDossier=" + p_dossier + "&id=" + p_tag_id + "&clear=" + clear_button + '&pref=' + p_prefix+"&obj="+p_obj;
var action = new Ajax.Request(
"ajax_misc.php",
{
@ -3052,6 +3140,8 @@ function alert_box(p_message)
function alternate_row_color(p_table)
{
var table_colored=$(p_table);
if (! table_colored.tBodies[0] ) return;
var len = table_colored.tBodies[0].rows.length;
var i = 0;
var localClass = "";
@ -3668,6 +3758,26 @@ function toggle_onoff(icon_domid, p_value_domid)
$(icon_domid).style = 'color:red';
}
}
/**
* turn on or off , set an domElement to 1 or 0 and change the icon
* @param string icon_domid : id of the domElement which must be changed
* @param string p_value_domid : id of domElement containing 1 or 0
* @see param_jrn.php
*/
function toggle_checkbox_onoff(icon_domid, p_value_domid)
{
console.log("toggle_checkbox_onoff");
console.log("icon_domid"+icon_domid);
console.log("p_value_domid"+p_value_domid);
if ($(p_value_domid).value == 0) {
$(p_value_domid).value = 1;
$(icon_domid).innerHTML = '&#xe741;';
} else {
$(p_value_domid).value = 0;
$(icon_domid).innerHTML = '&#xf096;';
}
}
/**
* in CFGLED show or hide the row depending if the warning is enable or not
*
@ -3683,3 +3793,252 @@ function toggle_row_warning_enable(p_enable, p_row)
$(p_row).hide();
}
}
/**
* return a json object which is the merge of the 2 json objects
* from 2015 : Object.assign(obj1, obj2);
* @param p_json1 object 1 to merge
* @param p_json2 object 2 to merge
* @returns new json object
*/
function json_concat(p_json1,p_json2)
{
var result = {};
for (var key in p_json1) {
result[key] = p_json1[key];
}
for (var key in p_json2) {
result[key] = p_json2[key];
}
return result;
}
/**
* return a json object which is the merge of the 2 json objects
* from 2015 : Object.assign(obj1, obj2);
* @param p_json1 object 1 to merge
* @param p_json2 object 2 to merge
* @returns new json object
*/
function json_concat(p_json1,p_json2)
{
var result = {};
for (var key in p_json1) {
result[key] = p_json1[key];
}
for (var key in p_json2) {
result[key] = p_json2[key];
}
return result;
}
/**
* this function unchecks other checkbox , it mimics the way a radio behaves
* @param string p_click is the DOM id of the checkbox you clicked
* @param string p_name is the name of all the checkbox to uncheck
*/
function uncheck_other(p_click,p_name)
{
var aCheckbox=document.getElementsByName(p_name);
if (aCheckbox.length == 0) return;
var i=0;
for (i=0;i<aCheckbox.length;i++) {
aCheckbox[i].checked=false;
}
p_click.checked=true;
}
/**
* Manage the tag with operations
* @returns {undefined}
*/
var operation_tag = function (p_div)
{
this.ctl = p_div;
console.log("ctl "+p_div);
/**
* Show a list of tag which can be added to the current followup document
* @param {type} p_dossier
* @param {type} jrn_id
* @returns {undefined}
*/
this.select = function (p_dossier, p_jrn_id)
{
try {
waiting_box();
var queryString = {jrn_id:p_jrn_id,op:"operation_tag_select",gDossier:p_dossier,ctl:this.ctl};
var action = new Ajax.Request(
"ajax_misc.php",
{
method: 'get',
parameters: queryString,
onFailure: ajax_misc_failure,
onSuccess: function (req, j) {
remove_waiting_box();
var answer = req.responseXML;
var html = answer.getElementsByTagName('code');
if (html.length === 0)
{
var rec = unescape_xml(req.responseText);
error_message('erreur :' + rec);
}
var code_html = getNodeText(html[0]);
code_html = unescape_xml(code_html);
var pos = fixed_position(35, 229);
add_div({id: 'tag_div', style: pos, cssclass: 'inner_box tag', drag: 0});
remove_waiting_box();
$('tag_div').innerHTML = code_html;
}
}
);
} catch (e) {
error_message(e.message);
}
};
/**
* @brief Add the current tag to the current ag_id
* @param {type} p_dossier
* @param {type} ag_id
* @param p_isgroup g it is a group , t is a single tag
* @returns {undefined}
*/
this.add = function (p_dossier, p_jrn_id, t_id, p_isgroup)
{
try {
waiting_box();
var queryString = {t_id:t_id,jrn_id:p_jrn_id,op:"operation_tag_add",
gDossier:p_dossier,ctl:this.ctl,isgroup:p_isgroup};
var ctl=this.ctl;
var action = new Ajax.Request(
"ajax_misc.php",
{
method: 'get', parameters: queryString,
onFailure: ajax_misc_failure,
onSuccess: function (req, j) {
var answer = req.responseXML;
console.log("1-ctl "+ctl);
var html = answer.getElementsByTagName('code');
if (html.length === 0)
{
var rec = unescape_xml(req.responseText);
error_message('erreur :' + rec);
}
var code_html = getNodeText(html[0]);
code_html = unescape_xml(code_html);
remove_waiting_box();
$('operation_tag_td'+ctl).innerHTML = code_html;
removeDiv('tag_div');
}
}
);
} catch (e) {
error_message(e.message);
}
};
/**
* @brief remove the current tag to the current ag_id
* @param {type} p_dossier
* @param {type} ag_id
* @returns {undefined}
*/
this.remove = function (p_dossier, p_jrn_id, t_id)
{
var ctl=this.ctl;
console.log("remove-1.ctl "+ctl);
confirm_box(null, content[50], function () {
try {
waiting_box();
var queryString = {t_id:t_id,jrn_id:p_jrn_id,op:"operation_tag_remove",gDossier:p_dossier,ctl:ctl};
var action = new Ajax.Request(
"ajax_misc.php",
{
method: 'get',
parameters: queryString,
onFailure: ajax_misc_failure,
onSuccess: function (req, j) {
var answer = req.responseXML;
var html = answer.getElementsByTagName('code');
if (html.length === 0)
{
var rec = unescape_xml(req.responseText);
error_message('erreur :' + rec);
}
var code_html = getNodeText(html[0]);
code_html = unescape_xml(code_html);
remove_waiting_box();
console.log("remove-2.ctl "+ctl);
$('operation_tag_td'+ctl).innerHTML = code_html;
}
}
);
} catch (e) {
error_message(e.message);
}
});
};
};
/**
* Check the sum of size of all the FILES to upload
* @param p_object the form DOM object,
* @param p_max_size MAX_FILE_SIZE constant (see config.inc.php or constant.php)
* @returns true if the sum of filesize is greater than the limit
*/
function check_file_size(p_object,p_max_size)
{
var sum_file=0;
for(var i=0;i<p_object.elements.length;i++) {
var a=p_object.elements[i];
if ( p_object.elements[i].getAttribute('type')=="file" )
{
if( p_object.elements[i].files[0]){
sum_file+=p_object.elements[i].files[0].size;
}
}
}
if ( sum_file > p_max_size) {alert_box(content[78]);return false;}
return true;
}
/**
* Check that the receipt file is not too big
* @see ajax_ledger.php , ledger_detail_file
* @param int p_max_size maximum size
* @param p_info name of the waiting box
* @returns true if file size is less than the maximum
*/
function check_receipt_size(p_max_size,p_info)
{
document.getElementById(p_info).style.display="inline";
console.debug ("param p_max_file_size"+p_max_size);
var f=document.getElementById("receipt_id");
if ( f && f.files[0] && f.files[0].size > parseFloat(p_max_size)) {
document.getElementById("receipt_info_id").innerHTML=content[78];
document.getElementById(p_info).style.display="none";
return false;
}
document.getElementById("receipt_info_id").innerHTML="";
document.getElementById("form_file").submit();
return true;
}
/**
* @brief toggle size of a div : fullsize or normal
*
*/
function full_size(p_div) {
div_dom=document.getElementById(p_div);
if ( ! div_dom ) return;
if ( div_dom.hasClassName('fullsize')) {
div_dom.removeClassName('fullsize');$('size_'+p_div).innerHTML='&#xe82a;';
} else {
div_dom.addClassName('fullsize');$('size_'+p_div).innerHTML='&#xe83d;';
}
}

70
html/js/taggroup.js Normal file
View file

@ -0,0 +1,70 @@
/*
* Copyright (C) 2020 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.
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
var TagGroup = function ()
{
this.callback = "ajax_misc.php";
this.param_operation = "tag_set_group";
this.list_tag = "ol_tag_group";
this.div_tag_add = "d_tag_group_add";
/**
* Add a tag to group and redraw the div "div_tag_add"
* @param {int} p_tag_group_id
* @param {int} p_tag_id
* @param {int} p_dossier
*/
this.add_tag = function (p_tag_group_id, p_select, p_dossier) {
waiting_box();
// retrieve value from p_select
var p_tag_id = $(p_select).value;
new Ajax.Request(this.callback, {
method: "get",
parameters: {op: this.param_operation, gDossier: p_dossier, act: "add", tag_group: p_tag_group_id, tag: p_tag_id},
onSuccess: function (req) {
remove_waiting_box();
// redraw div_tag_add
$("d_tag_group_add").update(req.responseText);
}
});
};
/**
* removing a tag from a group and redraw the div "div_tag_add"
* @param {int} p_tag_group_id
* @param {int} p_tag_id
* @param {int} p_dossier
*/
this.remove = function (p_jt_tag, p_dossier) {
waiting_box();
new Ajax.Request(this.callback, {
method: "get",
parameters: {op: this.param_operation,
gDossier: p_dossier,
act: "remove",
jt_tag: p_jt_tag
},
onSuccess: function (req) {
remove_waiting_box();
// redraw div_tag_add
$("d_tag_group_add").update(req.responseText);
}
});
};
};

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -39,8 +39,8 @@ if ( isset ($_POST["p_user"] ) )
{
$g_user=strtolower(sql_string($_POST["p_user"]));
$g_pass=$_POST["p_pass"];
$_SESSION['g_user']=$g_user;
$_SESSION['g_pass']=$g_pass;
$_SESSION[SESSION_KEY.'g_user']=$g_user;
$_SESSION[SESSION_KEY.'g_pass']=$g_pass;
@ -48,30 +48,33 @@ if ( isset ($_POST["p_user"] ) )
* Check repository version
*/
if ($version != DBVERSIONREPO)
{
echo alert(_('Version de base de données incorrectes, vous devez mettre à jour'));
echo "<META HTTP-EQUIV=\"REFRESH\" content=\"0;url=admin-noalyss.php\">";
exit();
}
if ($version != DBVERSIONREPO)
{
echo html_page_start();
echo h1(_("Version base de donneés incorrecte"));
echo span(_('Un instant svp'));
echo alert(_('Version de base de données incorrectes, vous devez mettre à jour'));
echo "<META HTTP-EQUIV=\"REFRESH\" content=\"3;url=admin-noalyss.php??action=upgrade&sb=database\">";
exit();
}
require_once NOALYSS_INCLUDE."/class/user.class.php";
$User=new User($rep);
$User->Check(false,'LOGIN');
if ($g_captcha == true)
{
include("securimage/securimage.php");
$img = new Securimage();
$valid = $img->check($_POST['captcha_code']);
if ( $valid == false )
{
echo alert(_('Code invalide'));
echo "<META HTTP-EQUIV=\"REFRESH\" content=\"0;url=index.php\">";
exit();
}
{
include("securimage/securimage.php");
$img = new Securimage();
$valid = $img->check($_POST['captcha_code']);
if ( $valid == false )
{
echo alert(_('Code invalide'));
echo "<META HTTP-EQUIV=\"REFRESH\" content=\"0;url=index.php\">";
exit();
}
// force the nocache
$backurl='user_login.php?v='.microtime(true);
if ( isset ($_POST['backurl'])) {
}
// force the nocache
$backurl='user_login.php?v='.microtime(true);
if ( isset ($_POST['backurl'])) {
$backurl=urldecode($_POST['backurl']);
}
echo "<META HTTP-EQUIV=\"REFRESH\" content=\"0;url={$backurl}\">";
@ -86,10 +89,13 @@ else
*/
if ( $version != DBVERSIONREPO)
{
echo alert(_('Version de base de données incorrectes, vous devez mettre à jour'));
echo "<META HTTP-EQUIV=\"REFRESH\" content=\"1;url=admin-noalyss.php\">";
exit();
{
echo html_page_start();
echo h1(_("Version base de donneés incorrecte"));
echo span(_('Un instant svp'));
echo alert(_('Version de base de données incorrectes, vous devez mettre à jour'));
echo "<META HTTP-EQUIV=\"REFRESH\" content=\"3;url=admin-noalyss.php?action=upgrade&sb=database\">";
exit();
}

View file

@ -32,7 +32,7 @@ $http=new HttpInput();
/*
* Check if the user is still connected
*/
if ( ! isset ($_SESSION['g_user'] ) )
if ( ! isset ($_SESSION[SESSION_KEY.'g_user'] ) )
{
echo "<h2>"._('Vous êtes déconnecté')."</h2>";
$backurl=$_SERVER['REQUEST_URI'];
@ -42,7 +42,7 @@ if ( ! isset ($_SESSION['g_user'] ) )
}
html_page_start($_SESSION['g_theme']);
html_page_start($_SESSION[SESSION_KEY.'g_theme']);
echo '<div style="float:left;">';
?>
<script>

View file

@ -28,13 +28,13 @@ require_once NOALYSS_INCLUDE.'/class/acc_ledger.class.php';
require_once NOALYSS_INCLUDE.'/class/acc_ledger_search.class.php';
require_once NOALYSS_INCLUDE.'/lib/icon_action.class.php';
require_once NOALYSS_INCLUDE.'/lib/http_input.class.php';
if ( ! isset ($_SESSION['g_theme']))
if ( ! isset ($_SESSION[SESSION_KEY.'g_theme']))
{
echo "<h2>"._('Vous êtes déconnecté')."</h2>";
die();
}
html_page_start($_SESSION['g_theme']);
html_page_start($_SESSION[SESSION_KEY.'g_theme']);
load_all_script();
@ -101,7 +101,7 @@ if ( isset ($_GET['viewsearch']))
{
// Navigation bar
$step=$_SESSION['g_pagesize'];
$step=$_SESSION[SESSION_KEY.'g_pagesize'];
$page=$http->get("page","number",1);
$offset=$http->get("offset","number",0);
@ -124,7 +124,7 @@ if ( isset ($_GET['viewsearch']))
* Export to csv
*/
$r=HtmlInput::get_to_hidden(array('l','date_start','date_end','desc','amount_min','amount_max',
'qcode','accounting','unpaid','gDossier','ledger_type'));
'qcode','accounting','unpaid','gDossier','ledger_type','tag_option'));
if (isset($_GET['r_jrn'])) {
$http=new HttpInput();
$a_rjrn=$http->get("r_jrn","array");
@ -135,6 +135,16 @@ if ( isset ($_GET['viewsearch']))
}
}
}
if (isset($_GET['tag'])) {
$http=new HttpInput();
$aTag=$http->get("tag","array");
foreach ($aTag as $k=>$v) {
// Protect : check that $k and $v are numeric
if (isNumber($k)&&isNumber($v)) {
$r.=HtmlInput::hidden('tag[]',$v);
}
}
}
echo '<form action="export.php" method="get">';
echo $r;
echo HtmlInput::hidden('act','CSV:histo');

View file

@ -1142,6 +1142,7 @@ class Securimage {
*/
function validate()
{
$code='';
// retrieve code from session, if no code exists check sqlite database if supported.
if (isset($_SESSION['securimage_code_value']) && trim($_SESSION['securimage_code_value']) != '') {

View file

@ -2433,4 +2433,108 @@ span.title_tab_row {
background-color: #000066 !important;
color : white !important;
}
p.info {
font-size:90%;
font-family: sans-serif;
font-style: italic;
}
/* Cell with tag */
span.tagcell {
border:1px solid darkgray;
padding:2px;margin:1px;
display: inline-block;
color:black;
}
#action_add_action2_list {
height:15rem;
overflow: auto;
}
/*********************************************************************************************************************
* Color for tag
********************************************************************************************************************/
.tagcell-color1 {
/* Nothing no color */
}
.tagcell-color2 {
background-color: #002ba3 !important;
color : white !important;
}
.tagcell-color3 {
background-color: #336699 !important;
color: white !important;
}
.tagcell-color4 {
background-color: #5d90cd !important;
color: white !important;
}
.tagcell-color5 {
background-color: #C2E3FC !important;
color: #002ba3 !important;
}
.tagcell-color6 {
background-color: #006318 !important;
color : white !important;
}
.tagcell-color7 {
background-color: #008000 !important;
color : white !important;
}
.tagcell-color8 {
background-color: #00D000 !important;
color : white !important;
}
.tagcell-color9 {
background-color: #87D087 !important;
color: white !important;
}
.tagcell-color10 {
background-color: #C8EEC8 !important;
color: #006318 !important;
}
.tagcell-color11 {
background-color: red !important;
color: #edeff4 !important;
}
.tagcell-color12 {
background-color: #9D0244 !important;
color:#edeff4 !important;
}
.tagcell-color13 {
background-color: #C14064 !important;
color: #edeff4 !important;
}
.tagcell-color14 {
background-color: #F07396 !important;
color: #edeff4 !important;
}
.tagcell-color15 {
background-color: #F2AABE !important;
color: red !important;
}
.tagcell-color16 {
background-color: #77420A !important;
color: #edeff4 !important;
}
.tagcell-color17 {
background-color: #B06F2A !important;
color: #edeff4 !important;
}
.tagcell-color18 {
background-color: orange !important;
color: #edeff4 !important;
}
.tagcell-color19 {
background-color: #F2CFAA !important;
color: red !important;
}
.tagcell-color20 {
background-color: yellow !important;
color: orangered !important;
}

View file

@ -40,19 +40,20 @@ input{
font-family: 'OpenSansRegular';
padding : 2px;
margin:2px;
border:solid 1px #4b4b91;
border:1px solid #4b4b91;
font-size:14px;
color:#4b4b91;
}
input:focus {
border:solid 1px orange;
border:1px solid orange;
margin:1px;
background-color: lightyellow;
}
.notice {
color:orangered;
font-style: italic;
background-color:transparent;
}
a.mtitle span.notice {
@ -63,7 +64,7 @@ table.sortable, table.table_large, table.result ,table.resultfooter {
border-spacing: 1px;
/*border-collapse:collapse; */
border:1px #5D90CD solid;
border:1px solid #5D90CD;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
@ -86,15 +87,25 @@ table.sortable th, table.table_large th,table.result th {
h2 {
font-family: Arial, Helvetica, "Liberation Sans", FreeSans, sans-serif;
font-family: 'SansationLight';
color:#888;
color:white;
background-color:#9fbcd6;
/*! margin:1px; */
padding:1px;
/*! font-style: italic; */
font-style: italic;
font-size:15px;
font-size:1.2rem;
margin-bottom: 0;
font-size:1.1rem;
margin-top: 5px;
font-size: 1.1rem;
margin-bottom: 1rem;
margin-top: 1rem;
border-radius: 2px;
padding: 0.5rem 0rem 0.7rem 2rem;
}
@media only screen and (max-width: 1280px) {
h2{
margin-top:2px;
padding: 0.2rem 0rem 0.3rem 1rem;
}
}
div.info {
background:#879ED4;
color:#FFFFFF;
@ -227,7 +238,7 @@ table.document th{
}
table.mtitle {
border:0;
border:0px;
text-align:center;
/*! border-spacing: 0; */
}
@ -235,7 +246,7 @@ td.mshort {
height:15px;
width:60px;
text-align:center;
border: 1px solid;
border: 1px solid transparent;
color:#5D90CD ;
background-color:#DDE6FF;
}
@ -253,6 +264,7 @@ td.mtitle {
border-bottom-left-radius: 0px;
border-collapse: collapse;
background-color: #366497;
}
@media only screen and (max-width:1250px) {
td.mtitle {
@ -267,16 +279,15 @@ td.mtitle {
}
}
td.mtitle a.mtitle {
color : white;
color : lightblue;
display:block;
font-size:1rem;
font-family:OpenSansRegular;
/*! width:100%; */
padding:0px;
margin:0px;
height:100%;
height:42px;
padding:4px 0px 0px 0px;
border-radius:6px;
}
@media only screen and (max-width:1280px) {
td.mtitle a.mtitle {
@ -342,7 +353,8 @@ td.selectedcell{
}
}
.menu2 td.mtitle ,.menu2 td.selectedcell{
border-radius: 0px;
/*! border-radius: 0px; */
border-radius: 4px;
}
@media only screen and (max-width:955px) {
@ -356,7 +368,7 @@ a.mtitle {
text-decoration:none;
display:inline;
color: #0000FF;
pointer:cursor;
cursor: pointer;
background-color: transparent;
}
a.mtitle:hover {
@ -436,9 +448,9 @@ div.content a {
font-family: Arial, Helvetica, "Liberation Sans", FreeSans, sans-serif;
font-family: 'openSansRegular';
text-decoration: none;
display: block;
display: inline-block;
color: #0000FF;
padding: 0px;
padding: 0px 10px 0px 0px;
text-decoration: underline;
/*! background: rgb(247, 192, 156) none repeat scroll 0% 0%; */
@ -451,7 +463,7 @@ div.content a:hover {
color: #FFFFFF;
background-color:#336699;
text-decoration: none;
display: block;
display: inline-block;
/*! border-top-color: white; */
/*! border-top-style: solid; */
@ -500,18 +512,18 @@ a.document:hover {
}
.input_text_ro {
border:solid 1px #0000FF;
border:1px solid #0000FF;
background:#EDEDED;
color:#0000FF;
margin:1px;
}
.input_text {
border:solid text #4b4b91;
border:1px solid #4b4b91;
margin:1px;
border-radius: 2px;
}
.input_text:focus {
border:solid 1px orange;
border:1px solid orange;
margin:1px;
background-color: lightyellow;
}
@ -673,7 +685,7 @@ div.content div.pc_calendar tr{
}
div.pc_calendar td{
width:14%;
border:#879ED4 solid 1px;
border:1px solid #879ED4 ;
}
div.pc_calendar td.weekend {
@ -742,7 +754,7 @@ a#anchorbutton:hover, .button:hover,a.button:hover,div.content a.button:hover {
}
a#smallanchorbutton, .smallbutton, a.smallbutton,div.content a.smallbutton {
color:#FFFFFF;
font-weight: bold;
font-weight: normal;
text-decoration:none;
font-family: arial,verdana,sans-serif,helvetica;
/*! background-image: url("image/bg-submit2.gif"); */
@ -793,7 +805,7 @@ a#smallanchorbutton, .smallbutton, a.smallbutton,div.content a.smallbutton .butt
font-family: SansationLight;
}
td.tool {
border: solid 1px gray;
border: 1px solid gray;
background-color: #FFFFFF;
border-bottom-width: 2px;
text-align:center;
@ -808,7 +820,7 @@ td.tool {
}
}
td.toolselected {
border: solid 1px gray;
border: 1px solid gray;
color: #FFFFFF;
border-bottom-width: 2px;
text-align:center;
@ -911,7 +923,7 @@ div.inner_box {
/*! -webkit-box-shadow: 10px 10px 5px #888; */
box-shadow: 15px 15px 15px #888;
font-size:14.4px;
font-size:0.90rem;
font-size:0.9rem;
}
div.inner_box {
width: 85%;
@ -919,7 +931,7 @@ div.inner_box {
@media only screen and (min-width: 1281px) {
div.inner_box {
width: 85%;
/*! border-radius: 9px; */
border-radius: 9px;
/*! padding: 5px; */
}
}
@ -1208,7 +1220,7 @@ div.foldercontent {
font-size:0.95rem;
width: 95%;
margin-left: 2.5%;
margin-top:7%;
margin-top:5rem;
}
h1.title {
@ -1219,17 +1231,25 @@ h1.title {
}
h2.title {
color:#FFFFFF;
color:white;
text-align:center;
padding-top: 9px;
margin-top: 0px;
padding-bottom: 2px;
background-color: #366497;
font-size: 1.05rem;
background-color: #5681B7;
font-size: 1.1rem;
height: 25px;
vertical-align: middle;
border-bottom: white;
border-bottom-style: groove;
border-bottom-width: 2px;
font-style: normal;
font-stretch: normal;
font-variant-caps: all-small-caps;
font-family: OpenSansRegular;
margin-bottom: 1px;
}
h3.title {
color: #0000FF;
@ -1251,7 +1271,7 @@ div.myfieldset
margin-top: 5px;
margin-left:5px;
margin-right: 5px;
border:#EDF3FF 2px groove;
border:2px groove #EDF3FF ;
border-radius: 4px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
@ -1277,7 +1297,7 @@ div.menu2 a.mtitle{
/*color: darkblue;*/
padding:5px 0px;
margin:0px;
border-radius: 5px;
/*! border-radius: 5px; */
}
div.menu2 a.mtitle:hover,div.menu a.mtitle:hover,td.mtitle a.mtitle:hover {
/* color:#5681B7;
@ -1289,11 +1309,11 @@ div.menu2 a.mtitle:hover,div.menu a.mtitle:hover,td.mtitle a.mtitle:hover {
}
div.menu2 a.mtitle:hover {
border-radius: 0px 0px;
/*! border-radius: 0px 0px; */
/*! padding: 5px; */
}
div.menu2 table {
border-collapse: collapse;
border-collapse: separate;
/*! border-spacing:1px; */
}
div.menu3 {
@ -1323,14 +1343,14 @@ div.menu3 {
font-size : 1.2em;
}*/
textarea.itextarea{
border:solid #0000FF 1px;
border:1px solid #0000FF ;
width:90%;
margin-left:5%;
height:120px;
}
textarea.itextarea:focus {
border:solid 1px orange;
border:1px solid orange;
background-color: lightyellow;
}
div#notice {
@ -1522,7 +1542,8 @@ td.workday ol {
input.inum {
text-align:right;
border:1px solid #0000FF;
margin:2px
margin:2px;
border-radius: 2px;
}
div.box {
background-color:#e4e7ed;
@ -1967,8 +1988,8 @@ td.box {
right: 0px;
visibility: hidden;
opacity: 0;
background: rgba(0,0,0,.3);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#90000000,endColorstr=#900000000);
background-color: rgba(0,0,0,.3);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#90000000,endColorstr=#90000000);
}
.smoke-base.smoke-visible {
@ -2097,7 +2118,6 @@ td.selectedmenu {
white-space: -moz-pre-wrap;
white-space: pre-wrap;
border:1px solid blue;
width:95%;
}
@media only screen and (max-width:850px) {
@ -2208,7 +2228,7 @@ div.content a.arrow {
* Select box : list of actions
*/
.select_box {
border:solid 0.5px darkblue;
border:0.5px solid darkblue;
background:white;
width:455px;
max-width:250px;
@ -2247,8 +2267,9 @@ div.menu2 td.mtitle, div.menu2 td.mtitle a{
border-style: solid;
border-width: 0.1px;
border-color:white;
height:25px;
/*! border-radius: 0px 0px 0px 10px; */
height:40px;
border-radius: 4px 4px 4px 4px;
/*! padding: 5px; */
}
div.menu2 td.mtitle a{
border-width:0px;
@ -2273,7 +2294,7 @@ div.menu2 td.mtitle a{
*/
div.bxbutton .icon
{
color:white;
/*! color:white; */
text-decoration:none;
margin-left: 6px;
margin-right:6px;
@ -2283,6 +2304,8 @@ div.bxbutton .icon
cursor: pointer;
border:0px;
height: 18px;
color: #f0d19a;
font-size: 87%;
}
div.bxbutton .icon:hover
{
@ -2473,3 +2496,198 @@ span.title_tab_row {
color : white !important;
}
p.info {
font-size:90%;
font-family: sans-serif;
font-style: italic;
}
/* Cell with tag */
span.tagcell {
border-radius:3px;
padding:3px;margin:1px;
display: inline-block;
}
#action_add_action2_list {
height:15rem;
overflow: auto;
}
/*********************************************************************************************************************
* Color for tag
********************************************************************************************************************/
.tagcell-color1 {
/* Nothing no color */
}
.tagcell-color2 {
background-color: #002ba3 !important;
color : white !important;
}
.tagcell-color3 {
background-color: #336699 !important;
color: white !important;
}
.tagcell-color4 {
background-color: #5d90cd !important;
color: white !important;
}
.tagcell-color5 {
background-color: #C2E3FC !important;
color: #002ba3 !important;
}
.tagcell-color6 {
background-color: #006318 !important;
color : white !important;
}
.tagcell-color7 {
background-color: #008000 !important;
color : white !important;
}
.tagcell-color8 {
background-color: #00D000 !important;
color : white !important;
}
.tagcell-color9 {
background-color: #87D087 !important;
color: white !important;
}
.tagcell-color10 {
background-color: #C8EEC8 !important;
color: #006318 !important;
}
.tagcell-color11 {
background-color: red !important;
color: #edeff4 !important;
}
.tagcell-color12 {
background-color: #9D0244 !important;
color:#edeff4 !important;
}
.tagcell-color13 {
background-color: #C14064 !important;
color: #edeff4 !important;
}
.tagcell-color14 {
background-color: #F07396 !important;
color: #edeff4 !important;
}
.tagcell-color15 {
background-color: #F2AABE !important;
color: red !important;
}
.tagcell-color16 {
background-color: #77420A !important;
color: #edeff4 !important;
}
.tagcell-color17 {
background-color: #B06F2A !important;
color: #edeff4 !important;
}
.tagcell-color18 {
background-color: orange !important;
color: #edeff4 !important;
}
.tagcell-color19 {
background-color: #F2CFAA !important;
color: red !important;
}
.tagcell-color20 {
background-color: yellow !important;
color: orangered !important;
}
.tagcell-color21 {
background-color: #151514 !important;
color: orangered !important;
}
.tagcell-color22 {
background-color: #0f0f0e !important;
color: #ffef00 !important;
}
.tagcell-color23 {
background-color: #64644a !important;
color: #ffbf00 !important;
}
.tagcell-color24 {
color: orangered !important;
}
.tagcell-color25 {
color: #ff0606 !important;
font-style: oblique;
}
.tagcell-color26 {
background-color: #fff !important;
color: #03038a;
}
.tagcell-color27 {
color: #08030b !important;
background-image: linear-gradient(to right, rgb(227, 175, 175), rgb(136, 13, 13));
}
.tagcell-color28 {
color: white !important;
background-image: linear-gradient(darkblue,lightblue) !important;
}
.tagcell-color29 {
background-color: yellow !important;
color: white !important;
background-image: linear-gradient(to right,black,yellow,red) !important;
}
.tagcell-color30 {
background-color: yellow !important;
color: white !important;
background-image: linear-gradient(to right,darkblue,white,red) !important;
}
.tagcell-color31 {
color: #e1d5d0 !important;
background-image: linear-gradient(to bottom right, #9abbe3a8,#6f6fac, #002ba3) !important;
}
.tagcell-color32 {
background-color: #ff00e3 !important;
font-family: SansationLight !important;
}
.tagcell-color33 {
color: white !important;
background-color: #8d3dcc !important;
}
.tagcell-color34 {
background-image: linear-gradient(to right,blue,white) !important;
}
.tagcell-color35 {
color: white !important;
background-image: linear-gradient(to right,#a61660,#e697d2) !important;
}
.tagcell-color36 {
background-image: linear-gradient(to right,#008000,#c8eec8) !important;
color: aquamarine !important;
}
/***************************************
* Button for linked card in follow up
* **************************************/
#linked_card_bt {
font-size: 110%;
padding: 0.25em 1em 0.25em 1em;
font-family: bold;
}
/**
* set a element full size
*/
.fullsize {
width:100% !important;
height: 100% !important;
overflow:auto !important;
top:0px !important;
position:fixed !important;
left:0px !important;
}
/*********************************************
* If a input is incorrect
*/
.input-error {
border:1px dotted red !important;
color:darkred !important;
}

View file

@ -177,7 +177,9 @@ td.tool a.mtitle:hover {
width: 100%;
}
@media only screen and (max-width:955px) {
margin-bottom: 70px;
body {
margin-bottom: 70px;
}
}
#module {
@ -953,7 +955,7 @@ background: -webkit-linear-gradient(top, rgba(109,179,242,1) 0%,rgba(84,163,238,
background: -o-linear-gradient(top, rgba(109,179,242,1) 0%,rgba(84,163,238,1) 50%,rgba(54,144,240,1) 51%,rgba(30,105,222,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(109,179,242,1) 0%,rgba(84,163,238,1) 50%,rgba(54,144,240,1) 51%,rgba(30,105,222,1) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(109,179,242,1) 0%,rgba(84,163,238,1) 50%,rgba(54,144,240,1) 51%,rgba(30,105,222,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6db3f2', endColorstr='#1e69de',GradientType=0 ); /* IE6-9 */ilter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#001e5799', endColorstr='#001e5799',GradientType=0 ); /* IE6-9 */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6db3f2', endColorstr='#1e69de',GradientType=0 ); /* IE6-9 */filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#001e5799', endColorstr='#001e5799',GradientType=0 ); /* IE6-9 */
}
td.tool {
@ -2141,7 +2143,7 @@ td.selectedmenu {
*/
#summary_op1,#summary_op2
{
position:float;
float:left;
}
/*
@ -2365,4 +2367,108 @@ span.title_tab_row {
background-color: #000066 !important;
color : white !important;
}
p.info {
font-size:90%;
font-family: sans-serif;
font-style: italic;
}
/* Cell with tag */
span.tagcell {
border:1px solid blue;
padding:1px;margin:1px;
display: inline-block;
color:black;
}
#action_add_action2_list {
height:15rem;
overflow: auto;
}
/*********************************************************************************************************************
* Color for tag
********************************************************************************************************************/
.tagcell-color1 {
/* Nothing no color */
}
.tagcell-color2 {
background-color: #002ba3 !important;
color : white !important;
}
.tagcell-color3 {
background-color: #336699 !important;
color: white !important;
}
.tagcell-color4 {
background-color: #5d90cd !important;
color: white !important;
}
.tagcell-color5 {
background-color: #C2E3FC !important;
color: #002ba3 !important;
}
.tagcell-color6 {
background-color: #006318 !important;
color : white !important;
}
.tagcell-color7 {
background-color: #008000 !important;
color : white !important;
}
.tagcell-color8 {
background-color: #00D000 !important;
color : white !important;
}
.tagcell-color9 {
background-color: #87D087 !important;
color: white !important;
}
.tagcell-color10 {
background-color: #C8EEC8 !important;
color: #006318 !important;
}
.tagcell-color11 {
background-color: red !important;
color: #edeff4 !important;
}
.tagcell-color12 {
background-color: #9D0244 !important;
color:#edeff4 !important;
}
.tagcell-color13 {
background-color: #C14064 !important;
color: #edeff4 !important;
}
.tagcell-color14 {
background-color: #F07396 !important;
color: #edeff4 !important;
}
.tagcell-color15 {
background-color: #F2AABE !important;
color: red !important;
}
.tagcell-color16 {
background-color: #77420A !important;
color: #edeff4 !important;
}
.tagcell-color17 {
background-color: #B06F2A !important;
color: #edeff4 !important;
}
.tagcell-color18 {
background-color: orange !important;
color: #edeff4 !important;
}
.tagcell-color19 {
background-color: #F2CFAA !important;
color: red !important;
}
.tagcell-color20 {
background-color: yellow !important;
color: orangered !important;
}

View file

@ -38,12 +38,12 @@ require_once('lib/icon_action.class.php');
require_once ('lib/function_javascript.php');
require_once 'class/user.class.php';
require_once NOALYSS_INCLUDE.'/lib/http_input.class.php';
html_page_start();
global $http;
$http=new HttpInput();
load_all_script();
$gDossier=$http->request('gDossier',"number", -1);
if ($gDossier==-1)
{
@ -64,7 +64,7 @@ if (!file_exists('authorized_debug'))
exit();
}
define('ALLOWED', 1);
html_page_start("Classic");
load_all_script();
/******************************************************************************************************************/
/* Utilities
/******************************************************************************************************************/

View file

@ -29,7 +29,7 @@ require_once NOALYSS_INCLUDE.'/lib/http_input.class.php';
require_once NOALYSS_INCLUDE.'/lib/function_javascript.php';
require_once NOALYSS_INCLUDE.'/lib/icon_action.class.php';
@html_page_start($_SESSION['g_theme']);
@html_page_start($_SESSION[SESSION_KEY.'g_theme']);
$rep=new Database();
require_once NOALYSS_INCLUDE.'/class/user.class.php';
$User=new User($rep);

View file

@ -30,18 +30,20 @@
*
*/
if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
$http=new HttpInput();
$supl_hidden = '';
if (isset($_REQUEST['sc']))
$supl_hidden.=HtmlInput::hidden('sc', $_REQUEST['sc']);
$supl_hidden.=HtmlInput::hidden('sc', $http->request("sc"));
if (isset($_REQUEST['f_id']))
$supl_hidden.=HtmlInput::hidden('f_id', $_REQUEST['f_id']);
$supl_hidden.=HtmlInput::hidden('f_id', $http->request("f_id","number"));
if (isset($_REQUEST['sb']))
$supl_hidden.=HtmlInput::hidden('sb', $_REQUEST['sb']);
$supl_hidden.=HtmlInput::hidden('ac', $_REQUEST['ac']);
$supl_hidden.=HtmlInput::hidden('sb', $http->request("sb"));
$supl_hidden.=HtmlInput::hidden('ac', $http->request("ac"));
$correction = 0;
$error_id=0;
$http=new HttpInput();
/*-----------------------------------------------------------------------------*/
/* For other action
/*-----------------------------------------------------------------------------*/
@ -94,7 +96,7 @@ if (isset($_POST['generate']))
}
else
{
$act->Update();
$act->update();
}
$doc_mod=$http->post('doc_mod',"number");
$act->generate_document($doc_mod, $_POST);
@ -115,12 +117,12 @@ if (isset($_POST['corr']))
// if this page is called from another menu (customer, supplier,...)
// a button back is added
//----------------------------------------------------------------------
// Update the detail
// update the detail
// Add a new action related to this one or update
//----------------------------------------------------------------------
if ($sub_action == "update")
{
// Update the modification
// update the modification
if (isset($_POST['save']))
{
$act2 = new Follow_Up($cn);
@ -136,7 +138,7 @@ if ($sub_action == "update")
put_global(array(array('key' => "sa", "value" => "detail")));
try {
$act2->verify() ;
$act2->Update() ;
$act2->update() ;
}
catch (Exception $e)
{
@ -155,9 +157,9 @@ if ($sub_action == "update")
//----------------------------------------------------------------------
// Add a related action
//----------------------------------------------------------------------
if (isset($_POST['add_action_here']))
if (isset($_GET['add_action_here']))
{
$ag_id=$http->post('ag_id',"number");
$ag_id=$http->get('ag_id',"number");
$act = new Follow_Up($cn,$ag_id);
if ($g_user->can_write_action($act->ag_id) == FALSE )
{
@ -166,33 +168,44 @@ if ($sub_action == "update")
echo '</div>';
return;
}
//----------------------------------------
//----------------------------------------
// puis comme ajout normal (copier / coller )
$act->ag_id = 0;
$act->d_id = 0;
$act->action = $http->post('ag_id',"number");
$act->action = $ag_id;
$act->ag_timestamp=date('d.m.Y');
$act->ag_dest=$g_user->get_profile();
$act->ag_hour="";
$act->ag_title="";
$act->ag_remind_date="";
echo '<div class="content">';
$act->dt_id = $http->request("action_type","number");
$act->d_id = 0;
$act->ag_comment = "";
$act->qcode_dest="";
if (isset($_REQUEST['qcode'])){
$act->qcode_dest = $http->request ('qcode');
} else {
// Retrieve recipient of previous followup-action
$act->qcode_dest=$cn->get_value("select ad_value from action_gestion ag join fiche_detail fd
on (fd.f_id=ag.f_id_dest) where ag_id=$1 and ad_id=$2",
[$ag_id,ATTR_DEF_QUICKCODE ]);
}
$act->f_id_dest=$act->qcode_dest;
$act->save();
// Add hidden tag
echo '<form enctype="multipart/form-data" action="do.php" method="post"">';
echo '<form enctype="multipart/form-data" style="display:inline" action="do.php" method="post"">';
$act->ag_comment = "";
if (isset($_REQUEST['qcode_dest']))
$act->qcode_dest = $_REQUEST['qcode_dest'];
echo $act->Display('NEW', false, $base, $retour);
echo '<input type="hidden" name="ac" value="' . $http->request('ac') . '">';
echo '<input type="hidden" name="sa" value="save_action_st2">';
echo '<input type="submit" class="button" name="save_action_st2" value="' . _('Enregistrer') . '">';
echo '<input type="submit" class="button" name="generate" value="' . _('Génère le document') . '"></p>';
echo $supl_hidden;
echo '</form>';
echo '</div>';
return;
}
}
//--------------------------------------------------------------------------------
@ -207,21 +220,34 @@ if ($sub_action == 'detail')
$act->ag_id = $ag_id;
echo $act->get();
}
if ($g_user->can_write_action($ag_id) == true)
{
echo '<form enctype="multipart/form-data" id="action_common_frm" class="print" action="do.php" method="post" >';
echo $supl_hidden;
echo HtmlInput::hidden('ac', $_REQUEST['ac']);
echo dossier::hidden();
echo $act->Display('UPD', false, $base, $retour);
echo '<input type="hidden" name="sa" value="update">';
echo '<input type="hidden" id="delete" name="delete" value="0">';
echo HtmlInput::submit("save", "Sauve",' onclick="$(\'delete\').value=0"');
echo HtmlInput::submit("add_action_here", _("Ajoute un événement à celui-ci"),' onclick="$(\'delete\').value=0"');
echo HtmlInput::submit("delete_bt", _("Efface cet événement "), ' onclick="$(\'delete\').value=1;return confirm_box(\'action_common_frm\',\''. _("Vous confirmez l\'effacement") . '\')" ');
echo $retour;
echo '</form>';
printf( '<form enctype="multipart/form-data" id="action_common_frm" class="print" action="do.php"
method="post" style="display:inline" onsubmit="return check_file_size(this,%s)">',MAX_FILE_SIZE);
echo $supl_hidden;
echo HtmlInput::hidden('ac', $http->request('ac'));
echo dossier::hidden();
echo $act->Display('UPD', false, $base, $retour);
echo '<input type="hidden" name="sa" value="update">';
echo '<input type="hidden" id="delete" name="delete" value="0">';
echo HtmlInput::submit("save", "Sauve",' onclick="$(\'delete\').value=0"');
//
if ($g_user->can_delete_action($ag_id))
{
echo HtmlInput::submit("delete_bt", _("Efface cet événement "),
' onclick="$(\'delete\').value=1;return confirm_box(\'action_common_frm\',\''. _("Vous confirmez l\'effacement") . '\')" ');
}
echo $retour;
echo '</form>';
// Create select box for new Action
Follow_Up::show_action_add(["sa"=>"update","add_action_here"=>1,"ag_id"=>$ag_id]);
}
else if ($g_user->can_read_action($ag_id) == true || $act->ag_dest == -1)
{
@ -245,7 +271,7 @@ if ($sub_action == 'delete')
$act = new Follow_Up($cn);
$act->ag_id =$http->request("ag_id","number") ;
$act->get();
if ($g_user->can_write_action($act->ag_id)==true) $act->remove();
if ($g_user->can_delete_action($act->ag_id)==true) $act->remove();
$sub_action = "list";
$cn->commit();
Follow_Up::show_action_list($cn, $base);
@ -277,18 +303,22 @@ if ($sub_action == "save_action_st2")
$act->fromArray($_POST);
try {
$act->d_id = 0;
$act->ag_id=$http->request("ag_id","number");
$act->md_id = (isset($_POST['gen_doc'])) ? $_POST['gen_doc'] : 0;
$act->verify();
$sup_parameter=HtmlInput::array_to_string(["sc","sb","f_id","qcode"], $_REQUEST,"&amp;");
// insert into action_gestion
echo $act->save();
$url = "?$base&sa=detail&ag_id=" . $act->ag_id . '&' . dossier::get();
echo '<p><a class="mtitle" href="' . $url . '">' . hb(_('Evènement Sauvée').' : ' . $act->ag_ref) . '</a></p>';
$act->update();
$url = "?sa=detail&ag_id=" . $act->ag_id . '&' . dossier::get()."&ac=".$http->request("ac").
$sup_parameter;
echo '<p><a class="mtitle" href="' . $url . '">' . hb(_('Action Sauvée').' : ' . $act->ag_ref) . '</a></p>';
Follow_Up::show_action_list($cn,$base);
$url = "?$base&sa=detail&ag_id=" . $act->ag_id . '&' . dossier::get();
echo '<p><a class="mtitle" href="' . $url . '">' . hb(_('Evènement Sauvée').' : ' . $act->ag_ref) . '</a></p>';
$url = "?sa=detail&ag_id=" . $act->ag_id . '&' . dossier::get()."&ac=".$http->request("ac").
$sup_parameter;
echo '<p><a class="mtitle" href="' . $url . '">' . hb(_('Action Sauvée').' : ' . $act->ag_ref) . '</a></p>';
} catch (Exception $e)
{
echo '<span class="notice">';
@ -305,8 +335,15 @@ if ($sub_action == "add_action")
{
$act = new Follow_Up($cn);
$act->fromArray($_POST);
$act->ag_id = 0;
$act->dt_id = $http->request("action_type","number");
$act->d_id = 0;
$f_id_dest=$http->request("f_id","number",null);
if ( $f_id_dest != NULL ) {
$act->qcode_dest=$cn->get_value("select ad_value from fiche_detail where ad_id=$1 and f_id=$2",
[ATTR_DEF_QUICKCODE,$f_id_dest]);
}
$act->save();
echo '<div class="content">';
// Add hidden tag
echo '<form method="post" action="do.php" name="form_add" id="form_add" enctype="multipart/form-data" >';
@ -316,7 +353,7 @@ if ($sub_action == "add_action")
$act->ag_comment =Decode($http->post("ag_comment","string",""));
if (isset($_REQUEST['qcode']))
$act->qcode_dest = $_REQUEST['qcode'];
$act->qcode_dest = $http->request('qcode');
echo $act->Display('NEW', false, $base, $retour);
echo '<input type="hidden" name="ac" value="' . $http->request("ac") . '">';

View file

@ -22,8 +22,14 @@
*/
if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
global $g_user;
$http=new HttpInput();
$retour=HtmlInput::button_anchor(_('Retour liste'),
HtmlInput::request_to_string(array("closed_action","remind_date_end","remind_date","sag_ref","only_internal","state","ac","gDossier","qcode","ag_dest_query","action_query","tdoc","date_start","date_end","hsstate","searchtag")),
HtmlInput::request_to_string(array("closed_action","remind_date_end","remind_date","sag_ref","only_internal",
"state","ac","gDossier","qcode","ag_dest_query","action_query","tdoc","date_start","date_end","hsstate",
"searchtag",
"closed_action",
"tag_option",)),
"","","smallbutton");
//-----------------------------------------------------
// Follow_Up
@ -47,14 +53,14 @@ require_once NOALYSS_INCLUDE.'/class/follow_up.class.php';
// propose to add one
// permit also a search
// show detail
$sub_action=(isset($_REQUEST['sa']))?$_REQUEST['sa']:"";
$sub_action=$http->request("sa","string","");
/* if ag_id is set then we give it otherwise we have problem
* with the generation of document
*/
$ag_id=(isset($_REQUEST['ag_id']))?$_REQUEST['ag_id']:0;
$ac=$_REQUEST['ac'];
$base=HtmlInput::request_to_string(array('ac','gDossier'),"");
$ag_id=$http->request("ag_id","string","0");
$base="do.php?".http_build_query(["ac"=>$http->request("ac"),"gDossier"=>Dossier::id()]);
echo '<div class="content">';
require_once NOALYSS_INCLUDE.'/action.common.inc.php';
echo "</div>";

View file

@ -52,7 +52,7 @@ if ( isset($_POST['action_fiche'] ) )
return;
}
$f_id=$hi->request('f_id',"number");
$f_id=$http->request('f_id',"number");
$fiche=new Admin($cn,$f_id);
$fiche->remove();
@ -86,7 +86,7 @@ if ( $low_action == "list" )
' where frd_id=$1 '.
' order by fd_label ',1,array(FICHE_TYPE_ADM_TAX));
$sel_card->selected=$http->get("cat","number",-1);
$sel_card->javascript=' onchange="submit(this);"';
$sel_card->javascript=' onchange="waiting_box();submit(this);"';
echo _('Catégorie :').$sel_card->input();
} else
{

View file

@ -60,7 +60,7 @@ if ( $action== 'backup') {
require_once NOALYSS_INCLUDE."/backup.inc.php";
exit();
}
html_page_start($_SESSION['g_theme']);
html_page_start($_SESSION[SESSION_KEY.'g_theme']);
load_all_script();
echo '<H2 class="info"> '._('Administration').'</H2>';
echo '<div class="topmenu">';

View file

@ -0,0 +1,66 @@
<?php
/*
* Copyright (C) 2020 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.
*/
if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
$http=new HttpInput();
try {
// follow_up id
$ag_id=$http->request("ag_id","number");
} catch (Exception $ex) {
record_log(__FILE__.$ex->getMessage().$ex->getTraceAsString());
return;
}
/*
* security Who can do it ?
*/
if ( ! $g_user->can_write_action($ag_id) ) {
record_log(__FILE__."security : access refused");
return;
}
require_once 'class/follow_up_other_concerned.class.php';
ob_start();
echo HtmlInput::title_box(_("Liste Autres Fiches"), "action_concerned_list_dv");
$follow=new Follow_Up_Other_Concerned($cn,$ag_id);
$follow->display_table();
echo $follow->button_action_add_concerned_card( );
$csv="export.php?".
http_build_query(["gDossier"=>Dossier::id(),
"act"=>"CSV:FollowUpContactOption",
"ag_id"=>$ag_id]);
echo HtmlInput::button_anchor(_("Export CSV"), $csv,"",' title="Export Contacts options"','smallbutton');
echo HtmlInput::button_close("action_concerned_list_dv");
$response = ob_get_clean();
if ( headers_sent() && DEBUG) {
echo $response;
}
$html = escape_xml($response);
header('Content-type: text/xml; charset=UTF-8');
echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<data>
<ctl>$ctl</ctl>
<code>$html</code>
</data>
EOF;
?>

View file

@ -37,23 +37,38 @@ catch (Exception $exc)
error_log($exc->getTraceAsString());
return;
}
/*
* security Who can do it ?
*/
if ( ! $g_user->can_read_action($ag_id) ) {
record_log(__FILE__."security : access refused");
return;
}
require_once 'class/follow_up.class.php';
$follow=new Follow_Up($cn,$ag_id);
require_once 'class/follow_up_other_concerned.class.php';
$follow=new Follow_Up_Other_Concerned($cn,$ag_id);
ob_start();
$action_person_id=$cn->get_value(" select ap_id from action_person where ag_id =$1 and f_id =$2 ",[$ag_id,$f_id]);
// row id to update
$ctl= "other_".$action_person_id;
$follow->remove_linked_card($f_id);
echo $follow->display_linked();
HtmlInput::button_action_add_concerned_card( $follow->ag_id);
$follow->display_linked_count();
echo $follow->button_action_add_concerned_card( );
$response = ob_get_clean();
if (headers_sent() && DEBUG) {
echo $response;
}
$html = escape_xml($response);
header('Content-type: text/xml; charset=UTF-8');
echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<data>
<ctl>unused</ctl>
<ctl>$ctl</ctl>
<code>$html</code>
</data>
EOF;

View file

@ -28,23 +28,48 @@ if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
/**
* Insert into follow-up the card (f_id) for the action_gestion (ag_id)
*/
require_once 'class/follow_up.class.php';
$follow=new Follow_Up($cn,$ag_id);
$follow->insert_linked_card($f_id);
$http=new HttpInput();
try {
// follow_up id
$ag_id=$http->request("ag_id","number");
$ctl=$http->request("ctl");
$selected_card=$http->request("selected_card","array",[]);
} catch (Exception $ex) {
record_log(__FILE__.$ex->getMessage().$ex->getTraceAsString());
return;
}
/*
* security Who can do it ?
*/
if ( ! $g_user->can_write_action($ag_id) ) {
record_log(__FILE__."security : access refused");
return;
}
require_once 'class/follow_up_other_concerned.class.php';
$follow=new Follow_Up_Other_Concerned($cn,$ag_id);
$nb_card=count($selected_card);
for ($i=0;$i< $nb_card;$i++)
{
$elt=$selected_card[$i];
if (isNumber($elt)) {
$follow->insert_linked_card($elt);
}
}
/**
* Display all the linked card
*/
ob_start();
$follow->display_linked();
echo HtmlInput::button_action_add_concerned_card( $ag_id);
$follow->display_linked_count();
echo $follow->button_action_add_concerned_card( );
$response = ob_get_clean();
$html = escape_xml($response);
header('Content-type: text/xml; charset=UTF-8');
echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<data>
<ctl>unused</ctl>
<ctl>$ctl</ctl>
<code>$html</code>
</data>
EOF;

View file

@ -29,6 +29,7 @@ if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
require_once NOALYSS_INCLUDE.'/lib/http_input.class.php';
require_once NOALYSS_INCLUDE.'/class/card_multiple.class.php';
$http=new HttpInput();
ob_start();
@ -42,49 +43,105 @@ catch (Exception $exc)
error_log($exc->getTraceAsString());
return;
}
/*
* security Who can do it ?
*/
if ( ! $g_user->can_write_action($ag_id) ) {
record_log(__FILE__."security : access refused");
return;
}
require_once NOALYSS_INCLUDE.'/class/acc_ledger.class.php';
$r=HtmlInput::title_box(_("Détail fiche"), 'search_card');
$r.='<form id="search_card1_frm" method="GET" onsubmit="action_add_concerned_card(this);return false;">';
//--------------------------------------------------------------------------------------------------------------------
// Form search
//--------------------------------------------------------------------------------------------------------------------
$r.='<form id="search_card1_frm" method="GET" onsubmit="action_concerned_search_card(this);return false;">';
$q=new IText('query');
$q->value=(isset($query))?$query:'';
$r.='<span style="margin-left:50px">';
$r.=_('Fiche contenant').Icon_Action::infobulle(19);
$r.=$q->input();
$r.=HtmlInput::submit('fs', _('Recherche'), "", "smallbutton");
// where to search
$select=new ISelect("search_in");
$select->value=$cn->make_array("select ad_id, ad_text from attr_def where ad_search_followup = 1 order by 2 ",1);
$select->selected=$http->get("search_in","string","");
$r.=_("limité aux champs ").$select->input();
$r.='</span>';
$r.=dossier::hidden().HtmlInput::hidden('op', 'add_concerned_card');
$r.=dossier::hidden().HtmlInput::hidden('op2', 'add_concerned_card');
$r.=HtmlInput::request_to_hidden(array('ag_id'));
// Search by category
$sel_Category=new ISelect("search_cat");
$sel_Category->value=$cn->make_array("select fd_id,fd_label from fiche_def order by 2",1);
$sel_Category->set_value($http->request("search_cat","string","-1"));
$r.=_("Catégorie")." ".$sel_Category->input();
// search also inactive card
$inactive=$http->get("inactive_card","string",0);
if ($inactive=="undefined" || $inactive == "") $inactive=0;
$is=new InputSwitch("inactive_card",$inactive);
$is->value=$inactive;
$r.=_("Fiches inactives").$is->input();
$r.=HtmlInput::submit('fs', _('Recherche'), "", "smallbutton");
$r.='</form>';
$query=$http->get("query", "string","");
$sql_array['query']=$query;
$sql_array['typecard']='all';
$sql_array['search_in']=$select->selected;
$sql_array['inactive_card']=$inactive;
$sql_array['search_cat']=$sel_Category->selected;
$fiche=new Fiche($cn);
$fiche=new Card_Multiple($cn);
/* Build the SQL and show result */
$sql=$fiche->build_sql($sql_array);
$count_card=$fiche->count_sql($sql_array);
//--------------------------------------------------------------------------------------------------------------------
// Result
//--------------------------------------------------------------------------------------------------------------------
/* We limit the search to MAX_SEARCH_CARD records */
$sql=$sql.' order by vw_name limit '.MAX_SEARCH_CARD;
$a=$cn->get_array($sql);
$r.='<form id="search_card2_frm" method="POST" onsubmit="action_concerned_save_card(this);return false;" '
. ' style="height:45rem">';
$r.=HtmlInput::request_to_hidden(array('ag_id'));
$r.=dossier::hidden().HtmlInput::hidden('op2', 'link_concerned_card').HtmlInput::hidden("op","card");
// element to update with the answer
$r.=HtmlInput::hidden("ctl","concerned_card_td");
$array=[];
for ($i=0; $i<count($a); $i++)
{
$ic=new ICheckBox("selected_card[]");
$ic->value=$a[$i]['f_id'];
$ic->set_range("select_card_ck");
$array[$i]['checkbox']=$ic->input();
$array[$i]['quick_code']=$a[$i]['quick_code'];
$array[$i]['name']=h($a[$i]['vw_name']);
$array[$i]['accounting']=$a[$i]['accounting'];
$array[$i]['first_name']=h($a[$i]['vw_first_name']);
$array[$i]['description']=h($a[$i]['vw_description']);
$array[$i]['javascript']=sprintf("action_save_concerned(%d,'%s','%s')",$gDossier,$a[$i]['f_id'],$ag_id);
$array[$i]['company']=h($a[$i]['company']);
}//foreach
echo $r;
// No accountancy history
$accvis=0;
require_once(NOALYSS_TEMPLATE.'/card_result.php');
echo $r;
require_once(NOALYSS_TEMPLATE.'/card_multiple_result.php');
echo '<ul class="aligned-block">';
echo '<li>';
echo HtmlInput::submit("add_concerned_card",_("Ajouter"));
echo '</li>';
echo '<li>';
echo HtmlInput::button_close("search_card");
echo '</li>';
echo '</ul>';
echo '</form>';
$response=ob_get_contents();
ob_end_clean();

View file

@ -261,8 +261,8 @@ if (in_array($op, array('modele_drop', 'modele_modify', 'folder_modify', 'folder
$confirm=new ICheckBox();
$confirm->name="p_confirm";
echo '<p>';
echo _('Cochez la case si vous êtes sûr de vouloir effacer ce dossier');
echo $confirm->input();
echo _("Tapez le code de confirmation");
echo confirm_with_string("fld_drop",5);
echo '</p>';
echo '<p style="text-align:center">';
echo HtmlInput::submit('remove', _('Effacer'));

View file

@ -71,8 +71,8 @@ if ( isset($_REQUEST['go']))
$plabel=$http->request("plabel");
$sql="select po_name , po_description from poste_analytique ".
"where pa_id=$1 and ".
" (po_name ~* $2 or po_description ~* $3) order by po_name";
$array=$cn->get_array($sql,array($_c2,$plabel,$plabel));
" (po_name ilike '%'||$2||'%' or po_description ilike '%'|| $3||'%') order by po_name";
$array=$cn->get_array($sql,array($c2,$plabel,$plabel));
if (empty($array) == true)
{

View file

@ -13,12 +13,22 @@ $cn=Dossier::connect();
if ( isset($_REQUEST['pa_id']) )
{
$res=$cn->exec_sql("select po_name,po_description from poste_analytique where pa_id=$1 and (po_description ~* $2 or po_name ~* $3) order by po_id limit 12",
$res=$cn->exec_sql("select po_name,po_description
from poste_analytique
where
pa_id=$1
and (po_description ilike '%'|| $2||'%' or po_name ilike '%'|| $3 ||'%')
order by po_id limit 12",
array($_REQUEST['pa_id'],$_POST['anccard'],$_POST['anccard']));
}
else
{
$res=$cn->exec_sql("select po_name,po_description from poste_analytique where po_description ~* $1 or po_name ~* $2 order by po_id limit 12 ",
$res=$cn->exec_sql("select po_name,po_description
from poste_analytique
where
po_description ilike '%'|| $1 ||'%'
or po_name ilike '%'|| $2||'%'
order by po_id limit 12 ",
array($_POST['anccard'],$_POST['anccard']));
}
$nb=Database::num_row($res);

View file

@ -63,6 +63,7 @@ require_once NOALYSS_INCLUDE.'/lib/function_javascript.php';
require_once NOALYSS_INCLUDE.'/lib/ac_common.php';
require_once NOALYSS_INCLUDE.'/class/user.class.php';
require_once NOALYSS_INCLUDE.'/class/fiche_attr.class.php';
require_once NOALYSS_INCLUDE.'/lib/input_switch.class.php';
mb_internal_encoding("UTF-8");
@ -99,31 +100,9 @@ $extra="";
$http=new \HttpInput();
switch($op2)
{
/* ------------------------------------------------------------ */
/* Remove a attribut */
/* ------------------------------------------------------------ */
case 'rmfa':
if ($g_user->check_action(FICCAT)==0)exit();
ob_start();
try
{
$ad_id= $http->get("ad_id","number");
$cn->start();
$fa=new Fiche_Attr($cn,$ad_id);
$fa->delete();
$cn->commit();
}
catch (Exception $e)
{
$cn->rollback();
record_log($e->getMessage());
record_log($e);
echo $e->getMessage();
}
$html=ob_get_contents();
ob_end_clean();
break;
case 'attribute':
require_once "ajax/ajax_card_attribute.php";
return ;
/* ------------------------------------------------------------ */
/* Display card detail */
/* ------------------------------------------------------------ */
@ -131,14 +110,23 @@ case 'rmfa':
case 'dc':
$f=new Fiche($cn);
/* add title + close */
$html=HtmlInput::title_box(_("Détail fiche"), $ctl,"close","","y");
$qcode=$http->request("qcode","string",false);
// if there is no qcode then try to find it thanks the card id
if ( ! isset ($qcode) ){
$f->id=$http->get("f_id","number");
if ( $qcode == false ){
$f->id=$http->get("f_id","number","0");
if ( $f->id==0) {
$html=HtmlInput::title_box(_("Fiche"), $ctl,"close","","y");
$html.='<h2 class="error">'._('Aucune fiche demandée').'</h2>';
break;
}
$qcode=$f->get_quick_code();
} else {
$f->get_by_qcode($qcode);
}
$title=$f->getLabelCategory();
$html=HtmlInput::title_box($title, $ctl,"close","","y");
// after save , we can either show a card in readonly or update a row
$safter_save=$http->request("after_save","string","1");
switch ($safter_save)
@ -155,22 +143,21 @@ case 'dc':
break;
}
if ( $qcode != '')
if ( $qcode != null)
{
$f->get_by_qcode($qcode);
$can_modify=$g_user->check_action(FIC);
if ( isset($ro) )
{
$can_modify=0;
}
if ( $can_modify==1)
$card=$f->Display(false,$ctl);
else
$card=$f->Display(true);
if ( $card == 'FNT' )
{
$html.='<h2 class="error">'._('Fiche non trouvée').'</h2>';
}
$can_modify=$g_user->check_action(FIC);
if ( isset($ro) )
{
$can_modify=0;
}
if ( $can_modify==1)
$card=$f->Display(false,$ctl);
else
$card=$f->Display(true);
if ( $card == 'FNT' )
{
$html.='<h2 class="error">'._('Fiche non trouvée').'</h2>';
}
else
{
@ -213,11 +200,11 @@ case 'dc':
case 'bc':
if ( $g_user->check_action(FICADD)==1 || $g_user->check_action(FIC)==1)
{
$r=HtmlInput::title_box(_("Nouvelle fiche"), $ctl);
/* get cat. name */
$cat_name=$cn->get_value('select fd_label from fiche_def where fd_id=$1',
/* get cat. name */
$cat_name=$cn->get_value('select fd_label from fiche_def where fd_id=$1',
array($fd_id));
$f=new Fiche($cn);
$r=HtmlInput::title_box($cat_name, $ctl);
$f=new Fiche($cn);
$r.='<form id="save_card" method="POST" onsubmit="this.ipopup=\''.$ctl.'\';save_card(this);return false;" >';
$r.=dossier::hidden();
$r.=(isset($ref))?HtmlInput::hidden('ref',1):'';
@ -441,14 +428,30 @@ case 'fs':
$r.='</span>';
$r.=dossier::hidden().HtmlInput::hidden('op','fs');
$array=array();
foreach (array('accvis','query','inp','jrn','label','typecard','price','tvaid') as $i)
// to navigate
$page_card=$http->get("page_card","number",0);
$inactive=$http->get("inactive_card","string",0);
if ($inactive=="undefined" || $inactive == "") $inactive=0;
$is=new InputSwitch("inactive_card",$inactive);
$is->value=$inactive;
$r.=_("fiches inactives").$is->input();
// save previous info
$hidden="";
foreach (array('accvis','inp','jrn','label','typecard','price','tvaid','amount_from_type') as $i)
{
if (isset(${$i}) )
{
$r.=HtmlInput::hidden($i,${$i});
$hidden.=HtmlInput::hidden($i,${$i});
$sql_array[$i]=${$i};
}
}
$r.="</form>";
$sql_array["query"]=$query;
$sql_array["inactive_card"]=$inactive;
/* what is the type of the ledger */
$type="GL";
if (isset($jrn) && $jrn > 1)
@ -456,50 +459,69 @@ case 'fs':
$ledger=new Acc_Ledger($cn,$jrn);
$type=$ledger->get_type();
}
// if jrn == -10 , the search is called from the detail operation from an action follow-up
if ( isset($jrn) && $jrn == -10){
$type=$http->request("amount_from_type","string","VEN");
}
$fiche=new Fiche($cn);
/* Build the SQL and show result */
$sql=$fiche->build_sql($sql_array);
if ( strpos($sql," in ()") != 0)
{
$html=Icon_Action::close('search_card');
$html.='<div> '.h2info(_('Recherche de fiche')).'</div>';
$html="";
$html.=HtmlInput::title_box(_('Recherche de fiche'), 'search_card');
$html.='<h3 class="notice">';
$html.=_("Aucune catégorie de fiche ne correspond à".
" votre demande, le journal pourrait n'avoir accès à aucune fiche");
$html.='</h3>';
$html.=HtmlInput::button_close("search_card");
break;
}
/**
* if inactive == 0 , then only active card
*/
if ( $inactive == 0 ) {
$sql.=" and f_enable='1' ";
}
/* We limit the search to MAX_SEARCH_CARD records */
$sql=$sql.' order by vw_name limit '.MAX_SEARCH_CARD;
$a=$cn->get_array($sql);
for($i=0;$i<count($a);$i++)
{
$array[$i]['quick_code']=$a[$i]['quick_code'];
$array[$i]['name']=h($a[$i]['vw_name']);
$array[$i]['accounting']=$a[$i]['accounting'];
$array[$i]['first_name']=h($a[$i]['vw_first_name']);
$array[$i]['description']=h($a[$i]['vw_description']);
$sql=$sql.' order by vw_name ';
$total_card=$cn->get_value("select count(*) from ($sql) as c");
$record_start=$page_card*MAX_SEARCH_CARD;
$sql.=' limit '.MAX_SEARCH_CARD.' offset '.$record_start;
$aFound=$cn->get_array($sql);
$nb_found=count($aFound);
for($i=0;$i<$nb_found;$i++)
{
$array[$i]['quick_code']=$aFound[$i]['quick_code'];
$array[$i]['name']=h($aFound[$i]['vw_name']);
$array[$i]['accounting']=$aFound[$i]['accounting'];
$array[$i]['first_name']=h($aFound[$i]['vw_first_name']);
$array[$i]['description']=h($aFound[$i]['vw_description']);
$array[$i]['javascript']=sprintf("set_value('%s','%s');",
$inp,$array[$i]['quick_code']);
$array[$i]['javascript'].=sprintf("set_value('%s','%s');",
$label,j(h(strip_tags($a[$i]['vw_name']))));
$label,j(h(strip_tags($aFound[$i]['vw_name']))));
/* if it is a ledger of sales we use vw_buy
if it is a ledger of purchase we use vw_sell*/
if ( $type=="ACH" ){
$amount=(isNumber($a[$i]['vw_buy']) == 1 )?$a[$i]['vw_buy']:0;
$amount=(isNumber($aFound[$i]['vw_buy']) == 1 )?$aFound[$i]['vw_buy']:0;
$array[$i]['javascript'].=sprintf("set_value('%s','%s');",
$price,$amount);
}
if ( $type=="VEN" ){
$amount=(isNumber($a[$i]['vw_buy']) == 1 )?$a[$i]['vw_sell']:0;
$amount=(isNumber($aFound[$i]['vw_sell']) == 1 )?$aFound[$i]['vw_sell']:0;
$array[$i]['javascript'].=sprintf("set_value('%s','%s');",
$price,$amount);
}
$array[$i]['javascript'].=sprintf("set_value('%s','%s');",
$tvaid,$a[$i]['tva_id']);
$tvaid,$aFound[$i]['tva_id']);
$array[$i]['javascript'].="removeDiv('search_card');";
}//foreach
@ -516,9 +538,11 @@ case 'fs':
require_once NOALYSS_INCLUDE.'/ajax/ajax_add_concerned_card.php';
return;
break;
case 'action_save_concerned':
// add several card to an action follow⁻up
case 'link_concerned_card':
require NOALYSS_INCLUDE.'/ajax/ajax_action_save_concerned.php';
return;
// remove card from an action follow⁻up
case 'action_remove_concerned':
require NOALYSS_INCLUDE.'/ajax/ajax_action_remove_concerned.php';
return;
@ -742,6 +766,30 @@ case 'upr':
}
}
break;
//---------------------------------------------------------------------------------------------------------------
// Display option of a contact in an action-followup
//---------------------------------------------------------------------------------------------------------------
case 'display_card_option':
require_once NOALYSS_INCLUDE.'/ajax/ajax_display_card_option.php';
return;
break;
//---------------------------------------------------------------------------------------------------------------
// Save option of a contact in an action-followup
//---------------------------------------------------------------------------------------------------------------
case 'save_card_option':
require_once NOALYSS_INCLUDE.'/ajax/ajax_save_card_option.php';
return;
break;
// ----------------------------------------------------------------------------------------------------------------
// Display a list of other card linked to the event / followup
// ----------------------------------------------------------------------------------------------------------------
case 'action_concerned_list':
require_once NOALYSS_INCLUDE.'/ajax/ajax_action_concerned_list.php';
return ;
break;
} // switch
$xml=escape_xml($html);

View file

@ -0,0 +1,103 @@
<?php
/*
* This file is part of NOALYSS.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
/**
* @file
* @brief answer to card_attr_inc.php
*/
global $g_user;
// security
$g_user->can_request("CFGATCARD");
require_once NOALYSS_INCLUDE."/lib/inplace_switch.class.php";
require_once NOALYSS_INCLUDE.'/class/card_attribut_mtable.class.php';
$http=new HttpInput();
try
{
$action=$http->request("action", "string");
}
catch (Exception $ex)
{
record_log("ACA01".$ex->getMessage().$ex->getTraceAsString());
}
if ($action=="enable_search")
{
$value=$http->request("value");
$ad_id=$http->request("ad_id");
$name=$http->request("name");
if ($value==1)
{
$cn->exec_sql("update attr_def set ad_search_followup=0 where ad_id=$1", [$ad_id]);
$value=0;
}
else
{
$cn->exec_sql("update attr_def set ad_search_followup=1 where ad_id=$1", [$ad_id]);
$value=1;
}
$ic=new Inplace_Switch($name, $value);
$ic->set_callback("ajax_misc.php");
$ic->add_json_param("op", "card");
$ic->add_json_param("gDossier", Dossier::id());
$ic->add_json_param("op2", "attribute");
$ic->add_json_param("action", "enable_search");
$ic->add_json_param("ad_id", $ad_id);
$ic->add_json_param("ctl", $ad_id);
echo $ic->input();
}
else
{
$obj=new Fiche_Attr($cn);
$mtable=new Card_Attribut_MTable($obj);
$mtable->add_json_param("op", "card");
$mtable->add_json_param("op2", "attribute");
$mtable->set_callback("ajax_misc.php");
$mtable->set_object_name($http->request("ctl"));
$ad_id=$http->request("p_id");
$mtable->get_table()->set_parameter("id", $ad_id);
switch ($action)
{
case "input":
$mtable->set_pk($ad_id);
if ( $ad_id < 0 ) $mtable->get_table()->set("ad_search_followup",0);
$mtable->send_header();
echo $mtable->ajax_input()->saveXML();
break;
case "save":
$mtable->set_pk($http->request("p_id"));
$mtable->send_header();
echo $mtable->ajax_save()->saveXML();
break;
case "delete":
$mtable->set_pk($http->request("p_id"));
$mtable->send_header();
echo $mtable->ajax_delete()->saveXML();
break;
default:
break;
}
}
?>

View file

@ -0,0 +1,84 @@
<?php
/*
* This file is part of NOALYSS.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
// check right
if ($g_user->check_action(PARCATDOC)==0)
{
record_log("cfgaction01 security ");
return;
}
require_once NOALYSS_INCLUDE."/class/action_document_type_mtable.class.php";
$http=new HttpInput();
/**
* @file
* @brief call for document_type in follow up
*/
try
{
$table=$http->request('table');
$ctl_id=$http->request('ctl');
$action=$http->request('action');
$p_id=$http->request('p_id', "number");
}
catch (Exception $ex)
{
echo $e->getMessage();
return;
}
$doc_type=new Document_type_SQL($cn,$p_id);
$action_document_type=new Action_Document_Type_MTable($doc_type);
$action_document_type->set_callback("ajax_misc.php");
$action_document_type->add_json_param("op", "cfgaction");
$action_document_type->set_object_name($ctl_id);
if ($action=="input")
{
$action_document_type->set_order(["dt_id", "dt_value","dt_prefix"]);
header('Content-type: text/xml; charset=UTF-8');
echo $action_document_type->ajax_input()->saveXML();
return;
}
elseif ($action=="save")
{
$action_document_type->set_order(["dt_id", "dt_value","dt_prefix"]);
$xml=$action_document_type->ajax_save();
header('Content-type: text/xml; charset=UTF-8');
echo $xml->saveXML();
}
elseif ($action=="delete")
{
$xml=$action_document_type->ajax_delete();
header('Content-type: text/xml; charset=UTF-8');
echo $xml->saveXML();
}

View file

@ -0,0 +1,67 @@
<?php
/*
* This file is part of NOALYSS.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
require_once NOALYSS_INCLUDE."/class/contact_option_ref_mtable.class.php";
/**
* @file
* @brief add option for contact
* @see contact_option_list
* @see action_document_type_mtable::input()
*/
try
{
$contact_option_id=$http->request("p_id");
$ctl_id=$http->request("ctl");
$action=$http->request("action");
}
catch (Exception $ex)
{
record_log(__FILE__." no p_id");
return;
}
$cn=Dossier::connect();
// document_option id from document_option where do_code='contact_multiple' and document_type_id=p_id
$obj=new Contact_option_ref_SQL($cn);
$contact_mtable=new Contact_Option_Ref_MTable($obj);
$contact_mtable->set_callback("ajax_misc.php");
$contact_mtable->set_object_name("s_contact_option");
$contact_mtable->set_dialog_box("db_contact_option");
$contact_mtable->add_json_param("op", "contact_option_list");
$contact_mtable->set_object_name($ctl);
$contact_mtable->set_pk($contact_option_id);
if ($action == "input") {
$contact_mtable->send_header();
echo $contact_mtable->ajax_input()->saveXML();
} elseif($action == "save") {
$contact_mtable->send_header();
echo $contact_mtable->ajax_save()->saveXML();
} elseif ($action == "delete") {
$contact_mtable->send_header();
$contact_mtable->ajax_delete();
}

View file

@ -0,0 +1,44 @@
<?php
/*
* This file is part of NOALYSS.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
/**
* @file
* @brief display the options of a card
*/
require_once NOALYSS_INCLUDE."/class/card_multiple.class.php";
$card_multiple=new Card_Multiple();
try
{
$ap_id=$http->get("ap_id");
}
catch (Exception $exc)
{
echo $exc->getMessage();
record_log($exc->getMessage().$exc->getTraceAsString());
}
echo HtmlInput::title_box(_("Options contact"), "d_linked_card_option","close","","y");
// display existing option
$card_multiple->display_option($ap_id);

View file

@ -0,0 +1,69 @@
<?php
/*
* 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
if (!defined('ALLOWED')) die('Appel direct ne sont pas permis');
require_once NOALYSS_INCLUDE."/class/document_state_mtable.php";
global $g_user;
if ( $g_user->check_module('CFGDOCST') == 0 ) {
record_log("forbidden : CFGDOCST ".__FILE__);
exit();
}
/**
* @file
* @brief Manage Document_State
*/
try {
$table=$http->request('table');
$action=$http->request('action');
$p_id=$http->request('p_id', "number");
$ctl_id=$http->request('ctl');
} catch(Exception $e) {
echo $e->getMessage();
return;
}
$document_state_sql=new Document_State_SQL($cn,$p_id);
$mtable=new Document_State_MTable($document_state_sql);
$mtable->build();
$mtable->set_object_name($ctl_id);
if ($action=="input")
{
header('Content-type: text/xml; charset=UTF-8');
echo $mtable->ajax_input()->saveXML();
return;
}
elseif ($action=="save")
{
$xml=$mtable->ajax_save();
header('Content-type: text/xml; charset=UTF-8');
echo $xml->saveXML();
}
elseif ($action=="delete")
{
return;
}

View file

@ -71,4 +71,66 @@ if ($op=='update_comment_followUp')
throw new Exception(__FILE__.':'.__LINE__.'Invalide value');
break;
}
return;
}
// Modify followup
if ($op == 'followup_comment_oneedit') {
$input=$http->request('input');
$action=$http->request('ieaction', 'string', 'display');
$agc_id=$http->request('agc_id', "number");
$ag_id=$http->request('ag_id', "number");
global $g_user;
// check comment is the comment of this ag_id
$ctl_ag_id=$cn->get_value("select ag_id from action_gestion_comment where agc_id=$1",[$agc_id]);
if ( $agc_id != -1 && $ctl_ag_id != $ag_id) {
record_log("FLP02 ag_id [$ag_id] <> ctl_ag_id [$ctl_ag_id]");
return;
}
// Build inplace input
$inplace_description=Inplace_Edit::build($input);
$inplace_description->set_callback("ajax_misc.php");
$inplace_description->add_json_param("ag_id", $ag_id);
$inplace_description->add_json_param("gDossier", Dossier::id());
$inplace_description->add_json_param("op", "followup_comment_oneedit");
switch ($action)
{
case 'display':
$inplace_description->add_json_param("agc_id", $agc_id);
echo $inplace_description->ajax_input();
break;
case 'ok':
if ($g_user->check_action(VIEWDOC)==1)
{
$value=strip_tags($http->request('value'));
if ($g_user->can_write_action($ag_id))
{
// retrieve the document
if ( $agc_id==-1) {
$agc_id= $cn->get_value("insert into action_gestion_comment(ag_id,agc_comment,tech_user)
values ($1,$2,$3) returning agc_id" ,[$ag_id,$value,$g_user->login]);
} else {
$cn->exec_sql("update action_gestion_comment set agc_comment=$1,tech_user=$2
where agc_id=$3
" ,[$value,$g_user->login,$agc_id]);
}
}
$inplace_description->add_json_param("agc_id", $agc_id);
$inplace_description->set_value($value);
}
echo $inplace_description->value();
break;
case 'cancel':
$inplace_description->add_json_param("agc_id", $agc_id);
echo '<pre>';
echo $inplace_description->value();
echo '</pre>';
break;
default:
throw new Exception(__FILE__.':'.__LINE__.'Invalide value');
break;
}
return;
}

View file

@ -55,7 +55,7 @@ $a_tab[$call_tab]='tabs_selected';
<li class="<?php echo $a_tab['profile_gen_div']?>"><a href="javascript:void(0)" onclick="unselect_other_tab(this.parentNode.parentNode);this.parentNode.className='tabs_selected';profile_show('profile_gen_div')"><?php echo _('Nom')?></a></li>
<li class="<?php echo $a_tab['profile_menu_div']?>"><a href="javascript:void(0)" onclick="unselect_other_tab(this.parentNode.parentNode);this.parentNode.className='tabs_selected';profile_show('profile_menu_div')"><?php echo _('Détail Menus')?></a></li>
<li class="<?php echo $a_tab['profile_print_div']?>"><a href="javascript:void(0)" onclick="unselect_other_tab(this.parentNode.parentNode);this.parentNode.className='tabs_selected';profile_show('profile_print_div')"><?php echo _('Détail Impressions')?></a></li>
<li class="<?php echo $a_tab['profile_gestion_div']?>"><a href="javascript:void(0)" style="" onclick="unselect_other_tab(this.parentNode.parentNode);this.parentNode.className='tabs_selected';profile_show('profile_gestion_div')"><?php echo _('Action Gestion')?> </a></li>
<li class="<?php echo $a_tab['profile_gestion_div']?>"><a href="javascript:void(0)" style="" onclick="unselect_other_tab(this.parentNode.parentNode);this.parentNode.className='tabs_selected';profile_show('profile_gestion_div')"><?php echo _('Groupe Gestion')?> </a></li>
<li class="<?php echo $a_tab['profile_repo_div']?>"><a href="javascript:void(0)" onclick="unselect_other_tab(this.parentNode.parentNode);this.parentNode.className='tabs_selected';profile_show('profile_repo_div')"><?php echo _('Dépôts')?></a>&nbsp;
</ul>
@ -111,7 +111,6 @@ if ($profile->p_id > 0)
echo '</div>';
echo '<div class="myfieldset" style="display:none" id="profile_menu_div">';
//Menu / Module /plugin in this profile
echo "<h1 class=\"legend\">"._("Menu")."</h2>";
$profile_menu = new Profile_Menu($cn);
$profile_menu->p_id=$p_id;
$profile_menu->display_profile_menu_detail();
@ -122,7 +121,7 @@ if ($profile->p_id > 0)
echo $add_impression;
echo '</div>';
echo '<div class="myfieldset" style="display:none" id="profile_gestion_div">';
echo "<h1 class=\"legend\">".('Groupe gestion')."</h1>";
$profile_menu->available_profile();
echo '</div>';
echo '<div class="myfieldset" style="display:none" id="profile_repo_div">';

View file

@ -36,7 +36,7 @@ $div=$http->request('div');
mb_internal_encoding("UTF-8");
$http=new HttpInput();
/**
*if $_SESSION['g_user'] is not set : echo a warning
*if $_SESSION[SESSION_KEY.'g_user'] is not set : echo a warning
*/
/* security */
if ( $g_user->check_dossier(dossier::id(),true) == 'X' ) exit();

View file

@ -42,6 +42,7 @@ require_once NOALYSS_INCLUDE.'/lib/idate.class.php';
require_once NOALYSS_INCLUDE.'/class/noalyss_parameter_folder.class.php';
require_once NOALYSS_INCLUDE.'/lib/iconcerned.class.php';
require_once NOALYSS_INCLUDE.'/lib/http_input.class.php';
require_once NOALYSS_INCLUDE.'/class/tag_operation.class.php';
$http=new HttpInput();
/**
@ -65,7 +66,7 @@ catch (Exception $exc)
}
/**
*if $_SESSION['g_user'] is not set : echo a warning
*if $_SESSION[SESSION_KEY.'g_user'] is not set : echo a warning
*/
$cn=Dossier::connect();
@ -223,8 +224,7 @@ case 'file':
$obj=$op->get_quant(); /* return an obj. ACH / FIN or VEN or null if nothing is found*/
$repo = new Database();
$theme = $repo->get_value("select the_filestyle from theme where the_name=$1", array($_SESSION['g_theme']));
html_min_page_start($theme);
html_min_page_start($_SESSION[SESSION_KEY.'g_theme']);
// if there is a receipt document
if ( $obj->det->jr_pj_name=='')
@ -237,7 +237,9 @@ case 'file':
}
if ( $access=='W')
{
echo '<FORM METHOD="POST" ENCTYPE="multipart/form-data" id="form_file">';
$check_receipt=sprintf("check_receipt_size('%s','file%s')",
MAX_FILE_SIZE,$div);
echo '<FORM METHOD="POST" ENCTYPE="multipart/form-data" id="form_file" >';
$sp=new ISpan('file'.$div);
$sp->style="display:none;background-color:red;color:white;font-size:12px";
@ -247,8 +249,10 @@ case 'file':
echo dossier::hidden();
echo HtmlInput::hidden('jr_id',$jr_id);
echo HtmlInput::hidden('div',$div);
echo '<INPUT TYPE="FILE" id="receipt_id" name="pj" onchange="'.$check_receipt.'">';
echo '<p id="receipt_info_id" class="error"></p>';
echo '<INPUT TYPE="FILE" name="pj" onchange="getElementById(\'file'.$div.'\').style.display=\'inline\';submit(this);">';
echo '</FORM>';
}
else
@ -284,17 +288,20 @@ case 'file':
{
// Not possible to remove the file thanks a modal dialog box,
// because of the frameset
$x=sprintf('<a class="smallbutton icon" style="margin-left:12;margin-right:12" href="ajax_misc.php?op=ledger&gDossier=%d&div=%s&jr_id=%s&act=rmf" onclick="return confirm(\'Effacer le document ?\')">'."x".'</a>',
$gDossier,$div,$jr_id);
$x=Icon_Action::trash(uniqid(),
sprintf("if (confirm(content[47])) {document.location.href='ajax_misc.php?op=ledger&gDossier=%d&div=%s&jr_id=%s&act=rmf'}",
$gDossier,$div,$jr_id));
}
$filename= $obj->det->jr_pj_name;
if ( strlen($obj->det->jr_pj_name) > 20 )
if ( strlen($obj->det->jr_pj_name) > 60 )
{
$filename=mb_substr($obj->det->jr_pj_name,0,23);
$filename=mb_substr($obj->det->jr_pj_name,0,60);
}
echo HtmlInput::show_receipt_document($jr_id,h($filename));
echo $x;
echo '<p id="receipt_info_id" class="error"></p>';
echo '</div>';
echo '</body></html>';
exit();
@ -313,29 +320,24 @@ case 'loadfile':
// Show a link to the new file
$op->get();
$obj=$op->get_quant(); /* return an obj. ACH / FIN or VEN or null if nothing is found*/
echo "<html><head>";
$repo=new Database();
$theme=$repo->get_value("select the_filestyle from theme where the_name=$1",array($_SESSION['g_theme']));
echo " <LINK REL=\"stylesheet\" type=\"text/css\" href=\"$theme\" media=\"screen\">";
echo "</head>";
html_min_page_start($_SESSION[SESSION_KEY.'g_theme']);
if ( ! isset($_REQUEST['ajax']) ) echo "<body class=\"op_detail_frame\">"; else echo "<body>";
echo "<h2>"._("Document")."</h2>";
echo '<div class="op_detail_frame">';
$x="";
// check if the user can remove a document
if ($g_user->check_action (RMRECEIPT) == 1) {
// Not possible to remove the file thanks a modal dialog box,
// because of the frameset
$x=sprintf('<a class="mtitle" class="notice" style="margin-left:12;margin-right:12px" href="ajax_misc.php?op=ledger&gDossier=%d&div=%s&jr_id=%s&act=rmf" onclick="return confirm(\'Effacer le document ?\')">'.SMALLX.'</a>',
$gDossier,$div,$jr_id);
echo $x;
$x=Icon_Action::trash(uniqid(),
sprintf("if (confirm(content[47])) {document.location.href='ajax_misc.php?op=ledger&gDossier=%d&div=%s&jr_id=%s&act=rmf'}",
$gDossier,$div,$jr_id));
}
$filename= $obj->det->jr_pj_name;
echo HtmlInput::show_receipt_document($jr_id,h($filename));
echo $x;
echo '</div>';
echo '</body></html>';
}
exit();
/////////////////////////////////////////////////////////////////////////////
@ -344,16 +346,14 @@ case 'loadfile':
case 'rmf':
if ( $access == 'W' && $g_user->check_action (RMRECEIPT) == 1)
{
echo "<html><head>";
$repo=new Database();
$theme=$repo->get_value("select the_filestyle from theme where the_name=$1",array($_SESSION['g_theme']));
echo " <LINK REL=\"stylesheet\" type=\"text/css\" href=\"$theme\" media=\"screen\">";
echo "</head><body class=\"op_detail_frame\">";
echo "<h2>"._("Document")."</h2>";
html_min_page_start($_SESSION[SESSION_KEY.'g_theme']);
echo '<div class="op_detail_frame">';
$check_receipt=sprintf("check_receipt_size('%s','file%s')",
MAX_FILE_SIZE,$div);
echo '<FORM METHOD="POST" ENCTYPE="multipart/form-data" id="form_file">';
$sp=new ISpan('file'.$div);
$sp->style="display:none;width:155;height:15;background-color:red;color:white;font-size:10";
$sp->style="display:none;width:155px;height:15px;background-color:red;color:white;font-size:10px";
$sp->value=_("Chargement");
echo $sp->input();
@ -362,7 +362,8 @@ case 'rmf':
echo HtmlInput::hidden('jr_id',$jr_id);
echo HtmlInput::hidden('div',$div);
echo '<INPUT TYPE="FILE" name="pj" onchange="getElementById(\'file'.$div.'\').style.display=\'inline\';submit(this);">';
echo '<INPUT TYPE="FILE" id="receipt_id" name="pj" onchange="'.$check_receipt.'">';
echo '<p id="receipt_info_id" class="error"></p>';
echo '</FORM>';
$ret=$cn->exec_sql("select jr_pj from jrn where jr_id=$1",array($jr_id));
if (Database::num_row($ret) != 0)

View file

@ -26,8 +26,21 @@
if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
ob_start();
require_once NOALYSS_INCLUDE.'/class/pre_operation.class.php';
$op=new Pre_Operation($cn,$_GET['id']);
$array=$op->load();
$id=$http->get("id","number");
$op=new Pre_Operation($cn,$id);
// ----------------------------------------------------------------
// if id > 0 then we display an existing template operation
// otherwise a blank one
// -----------------------------------------------------------------
if ( $id > 0) {
$array = $op->load();
} else {
$ledger_id=$http->get("ledger_id","number");
$op->set_jrn($ledger_id);
$array=$op->blank($ledger_id);
}
echo HtmlInput::title_box(_('Modification du nom'),'mod_predf_op','close','','n');
echo '

View file

@ -34,7 +34,7 @@ $sql="
where user_name=$1
order by 2 ";
$a_menu=$cn->get_array($sql,array($_SESSION['g_user']));
$a_menu=$cn->get_array($sql,array($_SESSION[SESSION_KEY.'g_user']));
?>
<div class="content">

View file

@ -0,0 +1,166 @@
<?php
/*
* This file is part of NOALYSS.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
require_once NOALYSS_INCLUDE.'/class/tag.class.php';
require_once NOALYSS_INCLUDE.'/class/tag_operation.class.php';
/**
* @file
* @brief manage the ajax calls for adding , deleting tag on operations
*/
try
{
$op=$http->request('op');
$jrn_id=$http->request('jrn_id', "number");
}
catch (Exception $ex)
{
echo $ex->getMessage();
}
// Security : check ledger accessible
global $g_user;
$ledger=$cn->get_value("select jr_def_id from jrn where jr_id=$1", [$jrn_id]);
if ($g_user->get_ledger_access($ledger)!='W')
{
record_log("AJT0001");
return;
}
switch ($op)
{
case 'operation_tag_select':
//--------------------------------------------------------------------------------------------------
// Display a list of available tag
//--------------------------------------------------------------------------------------------------
ob_start();
$tag_operation=new Tag_Operation($cn);
echo $tag_operation->select($ctl);
//------------------- Propose to add a tag
$js=sprintf("onclick=\"show_tag('%s','%s','%s','j')\"", Dossier::id(), '', '-1');
if ($g_user->check_action(TAGADD)==1)
{
echo HtmlInput::button("tag_add", _("Ajout d'un tag"), $js);
}
echo HtmlInput::button_close("tag_div");
$response=ob_get_clean();
if (headers_sent()&&DEBUG)
{
echo $response;
}
else
{
header('Content-type: text/xml; charset=UTF-8');
}
$html=escape_xml($response);
echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<data>
<ctl></ctl>
<code>$html</code>
</data>
EOF;
return;
case 'operation_tag_add':
//--------------------------------------------------------------------------------------------------
// Display all the tags attached to this operation
//--------------------------------------------------------------------------------------------------
$tag_operation=new Tag_Operation($cn);
$tag_operation->set_jrn_id($jrn_id);
$pref=$http->request("ctl");
if ($http->request("isgroup")=='t')
{
$tag_operation->tag_add($http->request('t_id', "number"));
}
else
{
// Add all the tag from the group
$aTag=$cn->get_array("select t_id,t_tag ,t_color from jnt_tag_group_tag jtgt join tags on (tag_id=t_id) where tag_group_id=$1 order by 2 ",
[$http->request("t_id", "number")]);
$nb_atag=count($aTag);
if ($nb_atag>0)
{
for ($i=0; $i<$nb_atag; $i++)
{
$tag_operation->tag_add($aTag[$i]['t_id']);
}
}
}
ob_start();
$tag_operation->tag_cell($ctl);
$response=ob_get_clean();
if (headers_sent()&&DEBUG)
{
echo $response;
}
else
{
header('Content-type: text/xml; charset=UTF-8');
}
$html=escape_xml($response);
echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<data>
<ctl></ctl>
<code>$html</code>
</data>
EOF;
return;
break;
case 'operation_tag_remove':
$tag_operation=new Tag_Operation($cn);
$tag_operation->set_jrn_id($jrn_id);
$pref=$http->request("ctl");
$tag_operation->tag_remove($http->request("t_id", "number"));
ob_start();
$tag_operation->tag_cell($pref);
$response=ob_get_clean();
if (headers_sent()&&DEBUG)
{
echo $response;
}
else
{
header('Content-type: text/xml; charset=UTF-8');
}
$html=escape_xml($response);
echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<data>
<ctl></ctl>
<code>$html</code>
</data>
EOF;
return;
break;
}

View file

@ -59,7 +59,7 @@ if (isset($_REQUEST['gDossier']) && $http->request("gDossier","number",0) != 0 )
$style->value = $repo->make_array("select the_name,the_name
from theme
order by the_name");
$style->selected =$_SESSION['g_theme'];
$style->selected =$_SESSION[SESSION_KEY.'g_theme'];
//----------------------------------------------------------------------------------------------
// Display the form
@ -69,7 +69,7 @@ if ( $action == 'display_form' )
echo HtmlInput::title_box(_('Préférence'), 'preference_div');
echo '<DIV class="content">';
echo '<p class="notice">';
echo _("Après validation, recharger si vous changez la langue");
echo _("Après validation, recharger pour appliquer les changements");
echo '</p>';
//----------------------------------------------------------------------
//
@ -145,6 +145,29 @@ if ( $action == 'display_form' )
<?=$exercice->select("exercice_setting",$selected_exercice,$js)->input();?>
</td>
</tr>
<tr>
<td>
<?=_("Premier jour semaine")?>
</td>
<td>
<?php
$aFirstDay=array(
["label"=>_("Lundi"),"value"=>1],
["label"=>_("Mardi"),"value"=>2],
["label"=>_("Mercredi"),"value"=>3],
["label"=>_("Jeudi"),"value"=>4],
["label"=>_("Vendredi"),"value"=>5],
["label"=>_("Samedi"),"value"=>6],
["label"=>_("Dimanche"),"value"=>0],
);
$selFirstDay=new ISelect("selFirstDay");
$selFirstDay->value=$aFirstDay;
$selFirstDay->selected=$g_user->get_first_week_day();
echo $selFirstDay->input();
?>
</td>
</tr>
<tr>
<td><?php echo _('Période');?></td>
@ -164,8 +187,8 @@ if ( $action == 'display_form' )
<option value="200">200
<option value="-1"><?php echo _('Illimité');?>
<?php
$label = ($_SESSION['g_pagesize'] == -1) ? _('Illimité') : $_SESSION['g_pagesize'];
echo '<option value="' . $_SESSION['g_pagesize'] . '" selected>' . $label;
$label = ($_SESSION[SESSION_KEY.'g_pagesize'] == -1) ? _('Illimité') : $_SESSION[SESSION_KEY.'g_pagesize'];
echo '<option value="' . $_SESSION[SESSION_KEY.'g_pagesize'] . '" selected>' . $label;
?>
</SELECT>
@ -180,7 +203,7 @@ if ( $action == 'display_form' )
<legend><?=_("Format Export CSV")?></legend>
<p>
<?php
if ( $_SESSION['csv_fieldsep']==1 && $_SESSION['csv_decimal']==1)
if ( $_SESSION[SESSION_KEY.'csv_fieldsep']==1 && $_SESSION[SESSION_KEY.'csv_decimal']==1)
{
echo_warning(_("N'utilisez pas le même séparateur pour les champs et les décimales"));
}
@ -198,7 +221,7 @@ if ( $action == 'display_form' )
["label"=>_("Point-virgule"),"value"=>0],
["label"=>_("virgule"),"value"=>1]
];
$csv_fieldsep->selected=$_SESSION['csv_fieldsep'];
$csv_fieldsep->selected=$_SESSION[SESSION_KEY.'csv_fieldsep'];
echo $csv_fieldsep->input();
?>
</td>
@ -214,7 +237,7 @@ if ( $action == 'display_form' )
["label"=>_("point"),"value"=>0],
["label"=>_("virgule"),"value"=>1]
];
$csv_decimal->selected=$_SESSION['csv_decimal'];
$csv_decimal->selected=$_SESSION[SESSION_KEY.'csv_decimal'];
echo $csv_decimal->input();
?>
</td>
@ -230,7 +253,7 @@ if ( $action == 'display_form' )
["label"=>_("utf8"),"value"=>'utf8'],
["label"=>_("latin1"),"value"=>'latin1']
];
$csv_encoding->selected=$_SESSION['csv_encoding'];
$csv_encoding->selected=$_SESSION[SESSION_KEY.'csv_encoding'];
echo $csv_encoding->input();
?>
</td>
@ -268,7 +291,7 @@ if ( $action == 'display_form' )
for ($i = 0; $i < count($aLang); $i++)
{
$sel = "";
if ($aLang[$i][1] == $_SESSION['g_lang'])
if ($aLang[$i][1] == $_SESSION[SESSION_KEY.'g_lang'])
$sel = " selected ";
printf('<option value="%s" %s>%s</option>', $aLang[$i][1], $sel, $aLang[$i][0]);
}
@ -303,6 +326,7 @@ if ($action == 'save')
$csv_fieldsep=$http->post("csv_fieldsep","number");
$csv_decimal=$http->post("csv_decimal","number");
$csv_encoding=$http->post("csv_encoding");
$firstday=$http->post("selFirstDay","number");
if (strlen(trim($pass_1)) != 0 && strlen(trim($pass_2)) != 0)
{
@ -322,11 +346,12 @@ if ($action == 'save')
$g_user->save_global_preference('csv_fieldsep', $csv_fieldsep);
$g_user->save_global_preference('csv_decimal', $csv_decimal);
$g_user->save_global_preference('csv_encoding', $csv_encoding);
$g_user->save_global_preference('first_week_day', $firstday);
$g_user->save_email($p_email);
$_SESSION['g_theme']=$style_user;
$_SESSION['g_pagesize']=$p_size;
$_SESSION['g_lang']=$lang;
$_SESSION[SESSION_KEY.'g_theme']=$style_user;
$_SESSION[SESSION_KEY.'g_pagesize']=$p_size;
$_SESSION[SESSION_KEY.'g_lang']=$lang;
// find the right CSS theme
$style= $repo->get_value("select the_filestyle from theme

View file

@ -0,0 +1,58 @@
<?php
/*
* This file is part of NOALYSS.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
require_once NOALYSS_INCLUDE."/class/follow_up_other_concerned.class.php";
/**
* @file
* @brief save option of card into action_person_option
*/
try {
$ap_value=$http->post("ap_value","array",[]);
$ap_id=$http->post("ap_id","array",[]);
$cor_id=$http->post("cor_id","array",[]);
$fiche_id=$http->post("f_id");
$ag_id=$http->post("ag_id");
$action_person_id=$http->post("action_person_id");
} catch (Exception $ex) {
record_log("ASCO01".$ex->getMessage().$ex->getTraceAsString());
return;
}
/// If cannot write we stop it
if ( ! $g_user->can_write_action($ag_id)) {
record_log("ASCO02 Security ");
}
$nb=count($ap_value);
// nothing to save
if ($nb == 0) return;
for ($i=0;$i<$nb; $i++) {
$cn->exec_sql("UPDATE public.action_person_option SET ap_value=$1 WHERE ap_id=$2",
[$ap_value[$i],$ap_id[$i]]);
}
$follow=new Follow_Up_Other_Concerned($cn,$ag_id);
$aColumn = $follow->get_option();
echo $follow->display_row($fiche_id, 0, $aColumn);

View file

@ -23,46 +23,57 @@
* \brief save the new predefined operation
* included from ajax_misc
*/
require_once NOALYSS_INCLUDE.'/lib/http_input.class.php';
$http=new HttpInput();
if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
if ($g_user->check_module('PREDOP') == 0) exit();
$name=$http->post("opd_name","string", "");
if ( trim($name) != '')
{
try
{
$od_id=$http->post("od_id", "number");
$cn->exec_sql('delete from op_predef where od_id=$1',
array($od_id));
require_once NOALYSS_INCLUDE.'/lib/http_input.class.php';
require_once NOALYSS_INCLUDE.'/class/operation_predef_mtable.class.php';
$http=new HttpInput();
$cn->exec_sql("delete from op_predef_detail where od_id=$1",array($od_id));
$jrn_type=$http->post("jrn_type");
switch ($jrn_type) {
case 'ACH':
$operation=new Pre_op_ach($cn);
break;
case 'VEN':
$operation=new Pre_op_ven($cn);
break;
case 'ODS':
$operation=new Pre_Op_Advanced($cn);
break;
default :
throw new Exception(_('Type de journal invalide'));
}
$operation->get_post();
$operation->save();
$cn->commit();
}
catch (Exception $exc)
{
error_log($exc->getTraceAsString());
throw $exc;
}
}
?>
try {
$table=$http->request('table');
$action=$http->request('action');
$p_id=$http->request('p_id', "number");
$ctl_id=$http->request('ctl');
} catch(Exception $e) {
echo $e->getMessage();
return;
}
if ( $g_user->check_module("PREDOP") == 0) die();
$prd_op=new Op_predef_SQL($cn);
$prd_op->set_pk_value($p_id);
$prd_op->load();
$operation_predef_mtable=new Operation_Predef_MTable($prd_op);
$operation_predef_mtable->add_json_param("op","save_predf");
$operation_predef_mtable->set_object_name($ctl_id);
$operation_predef_mtable->set_callback("ajax_misc.php");
if ($action=="input")
{
if ($p_id < 0 ) {
$operation_predef_mtable->set_force_ledger_type($p_id);
}
// display existing operation for updating
header('Content-type: text/xml; charset=UTF-8');
echo $operation_predef_mtable->ajax_input()->saveXML();
return;
}
elseif ($action == "save")
{
$xml=$operation_predef_mtable->ajax_save();
header('Content-type: text/xml; charset=UTF-8');
echo $xml->saveXML();
}
elseif ($action == "delete")
{
$xml=$operation_predef_mtable->ajax_delete();
header('Content-type: text/xml; charset=UTF-8');
echo $xml->saveXML();
}

View file

@ -1,4 +1,5 @@
<?php
/*
* This file is part of NOALYSS.
*
@ -17,23 +18,42 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright Author Dany De Bontridder danydb@aevalys.eu
if ( !defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
/**
*@file
*@brief add tag , used for follow up
*@see Tag
* @file
* @brief add tag , used for follow up
* @see Tag
*/
require_once NOALYSS_INCLUDE.'/class/tag.class.php';
require_once NOALYSS_INCLUDE.'/class/tag_action.class.php';
//Single Tag
ob_start();
if ($_GET['clear']==1) {
if ($_GET['clear']==1)
{
/* Add a clear button */
echo Tag::add_clear_button($_GET['pref']);
echo Tag_Action::add_clear_button($_GET['pref']);
}
$tag=new Tag($cn,$_GET['id']);
$tag->update_search_cell($_GET['pref']);
if ($http->request("obj")=='t')
{
$response= ob_get_clean();
$tag=new Tag_Action($cn, $http->get("id", "number"));
$tag->update_search_cell($http->get("pref"));
}
elseif ($http->request("obj")=="g")
{
// Add all the tag from the group
$aTag=$cn->get_array("select t_id,t_tag from jnt_tag_group_tag jtgt join tags on (tag_id=t_id) where tag_group_id=$1 order by 2 ",[$http->get("id", "number")]);
$nb_atag=count($aTag);
$pref=$http->get("pref");
if ( $nb_atag > 0) {
for ($i=0;$i<$nb_atag;$i++){
$tag=new Tag_Action($cn,$aTag[$i]['t_id']);
$tag->update_search_cell($pref);
}
}
}
$response=ob_get_clean();
$html=escape_xml($response);
header('Content-type: text/xml; charset=UTF-8');
echo <<<EOF
@ -44,7 +64,5 @@ echo <<<EOF
</data>
EOF;
exit();
?>

View file

@ -24,9 +24,9 @@ if ( !defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
*@see Tag
*/
require_once NOALYSS_INCLUDE.'/class/tag.class.php';
require_once NOALYSS_INCLUDE.'/class/tag_action.class.php';
ob_start();
echo Tag::button_search($_GET['pref']);
echo Tag_Action::select_tag_search($_GET['pref']);
$response= ob_get_clean();
$html=escape_xml($response);
header('Content-type: text/xml; charset=UTF-8');

View file

@ -24,12 +24,28 @@ if ( !defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
*@see Tag
*/
require_once NOALYSS_INCLUDE.'/class/tag.class.php';
ob_start();
$tag=new Tag($cn);
$tag->select_search($_GET['pref']);
require_once NOALYSS_INCLUDE.'/class/tag_action.class.php';
require_once NOALYSS_INCLUDE.'/class/tag_operation.class.php';
try {
$caller_obj=$http->request("caller_obj");
$prefix=$http->request("pref");
} catch (Exception $ex) {
echo $ex->getMessage();
return;
}
if ( $caller_obj == 'Tag_Action' ) {
$tag=new Tag_Action($cn);
}elseif ($caller_obj=='Tag_Operation')
{
$tag=new Tag_Operation( $cn);
} else {
throw new Exception("AJD001 invalid caller [$caller_obj]");
}
$response= $tag->select_search($pref);
$response= ob_get_clean();
$html=escape_xml($response);
header('Content-type: text/xml; charset=UTF-8');
echo <<<EOF

View file

@ -24,6 +24,7 @@ if (!defined('ALLOWED'))
require NOALYSS_INCLUDE.'/database/user_filter_sql.class.php';
require NOALYSS_INCLUDE.'/class/acc_ledger_search.class.php';
require_once NOALYSS_INCLUDE.'/class/tag_operation.class.php';
$cn=Dossier::connect();
$dossier_id=Dossier::id();
global $g_user;
@ -55,12 +56,19 @@ if ($op=='save_filter')
$new->setp("amount_max", $http->post("amount_max", 'number', NULL));
$new->setp("qcode", $http->post("qcode", 'string', NULL));
$new->setp("accounting", $http->post("accounting", 'string', NULL));
$new->setp("uf_tag_option",$http->post("tag_option","string",null));
$new->setp("date_paid_start",
$http->post("date_paid_start", 'string', NULL));
$new->setp("date_paid_end", $http->post("date_paid_end", 'string', NULL));
$new->setp("ledger_type", $http->post("ledger_type", 'string'));
$new->setp("operation_filter", $http->post("operation_filter", 'string', NULL));
$new->setp("filter_name", h($http->post("filter_name", 'string')));
$tag=$http->post("tag","string",'');
if (is_array($tag) )
$new->setp("uf_tag",join(',',$tag));
else
$new->setp("uf_tag",null);
$aJrn=[];
$max=$http->post("nb_jrn");
for ($i=0; $i<$max; $i++)
@ -75,11 +83,11 @@ if ($op=='save_filter')
$new->save();
$rmAction=sprintf("delete_filter('%s','%s','%s')", trim($http->post('div')), $dossier_id,
$new->getp('id'));
$answer['filter_name']=sprintf('<a class="tinybutton" style="display:inline" id="" onclick="'.$rmAction.'">'.SMALLX.'</a>'
);
$answer['filter_name'].=sprintf("<a style=\"display:inline\" onclick=\"load_filter('%s','%s','%s')\">%s</a>",
$answer['filter_name']="";
$answer['filter_name'].=sprintf("<a class=\"line\" style=\"display:inline;text-decoration:underline\" onclick=\"load_filter('%s','%s','%s')\">%s</a>",
trim($http->post('div')), $dossier_id, $new->getp('id'),
$new->getp("filter_name"));
$answer['filter_name'].='<span id="'.uniqid().'" onclick="'.$rmAction.'" class="icon" style="display:inline;margin-left:2em">&#xe80f;</span>';;
$answer['filter_id']=$new->getp("id");
$answer['status']='OK';
}
@ -108,7 +116,8 @@ if ($op=="load_filter")
$record['desc']=$record['description'];
$record['r_jrn']=explode(",", $record['r_jrn']);
$record['tag']=explode(",",$record['uf_tag']);
$record['tag_option']=$record["uf_tag_option"];
$result=array_merge($answer, $record);
@ -148,7 +157,7 @@ if ($op=="display_search_filter")
echo "</li>";
echo "<li>";
echo HtmlInput::anchor(_("Remise à zéro"), "", "onclick=\"reset_filter('$p_div');removeDiv('boxfilter{$p_div}')\"");
echo HtmlInput::anchor(_("Remise à zéro"), "", "style=\"text-decoration:underline\" onclick=\"reset_filter('$p_div');removeDiv('boxfilter{$p_div}')\"");
echo "</li>";
// Link reset
@ -157,12 +166,11 @@ if ($op=="display_search_filter")
printf(' <li id="manageli%s_%d">', $p_div, $result[$i]["id"]);
$rmAction=sprintf("delete_filter('%s','%s','%s')", $p_div, $dossier_id,
$result[$i]['id']);
printf('<a class="tinybutton" style="display:inline" id="" onclick="'.$rmAction.'">'.SMALLX.'</a>'
);
printf("<a style=\"display:inline\" onclick=\"load_filter('%s','%s','%s');removeDiv('boxfilter%s')\">",
printf("<a href=\"javascript:void(0)\" style=\"display:inline;text-decoration:underline\" onclick=\"load_filter('%s','%s','%s');removeDiv('boxfilter%s')\">",
$p_div, $dossier_id, $result[$i]["id"],$p_div);
echo $result[$i]["filter_name"];
echo '</a>';
echo '<span id="'.uniqid().'" onclick="'.$rmAction.'" class="icon" style="display:inline;margin-left:2em">&#xe80f;</span>';
printf("</li>");
}
@ -198,4 +206,23 @@ if ($op=="delete_search_operation")
header('Content-Type: application/json;charset=utf-8');
echo json_encode($answer);
return;
}
//---------------------------------------------------------------------------------------------------------------
// display_filter_tag : transform uf_tag into a list of tag , and display those tags in cells
//----------------------------------------------------------------------------------------------------------------
if ($op=='display_filter_tag')
{
$tag=$http->request("uf_tag");
if ( trim($tag)=="") {return;}
$div=$http->request("div");
$aTag=explode(',', $tag);
if (is_array($aTag))
{
$nb_tag=count($aTag);
for ($j=0; $j<$nb_tag; $j++)
{
$tag_operation=new Tag_Operation($cn, $aTag[$j]);
$tag_operation->update_search_cell($div);
}
}
}

View file

@ -38,7 +38,7 @@ require_once NOALYSS_INCLUDE.'/class/user.class.php';
// display a search box
$base=basename($_SERVER['SCRIPT_NAME']);
$base=basename($_SERVER['PHP_SELF']);
$inside=false;
$tiers=$http->get("tiers", "string", "");
// With the amount id, we find the amount in a html elt
@ -109,6 +109,8 @@ if (isset($_GET['viewsearch']))
list($array['date_start'], $array['date_end'])=$g_user->get_limit_current_exercice();
}
$array['hide_operation']=$hide_operation;
$array['single_operation']=$http->get("single_operation");
list($sql, $where)=$ledger->build_search_sql($array);
// Count nb of line
$max_line=$cn->count_sql($sql);
@ -128,6 +130,7 @@ if (isset($_GET['viewsearch']))
}
}
echo '<form method="get" onsubmit="set_reconcile(this);return false">';
echo HtmlInput::hidden("single_operation", $array['single_operation']);
echo HtmlInput::hidden("tiers", $tiers);
echo HtmlInput::submit("upd_rec", _("Mettre à jour"));
echo HtmlInput::get_to_hidden(array('ctlc', 'amount_id', 'ledger'));

View file

@ -24,11 +24,26 @@ if ( !defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
*@see Follow_Up
*@see Tag
*/
$http=new HttpInput();
$fl=new Follow_Up($cn);
$fl->ag_id=$_REQUEST['ag_id'];
if ( $g_user->can_write_action($fl->ag_id) == TRUE )
$fl->tag_add($_REQUEST['t_id']);
$fl->ag_id=$http->request("ag_id","number");
if ( $g_user->can_write_action($fl->ag_id) != TRUE ) return;
if ( $http->request("isgroup") == 't') {
$fl->tag_add($http->request('t_id',"number"));
} else {
// Add all the tag from the group
$aTag=$cn->get_array("select t_id,t_tag ,t_color from jnt_tag_group_tag jtgt join tags on (tag_id=t_id) where tag_group_id=$1 order by 2 ",[$http->request("t_id","number")]);
$nb_atag=count($aTag);
if ( $nb_atag > 0) {
for ($i=0;$i<$nb_atag;$i++){
$fl->tag_add($aTag[$i]['t_id']);
}
}
}
ob_start();

View file

@ -11,9 +11,12 @@ require_once NOALYSS_INCLUDE.'/lib/single_record.class.php';
require_once NOALYSS_INCLUDE.'/class/tag.class.php';
ob_start();
$tag=new Tag($cn);
$tag->data->t_id=$_GET['tag'];
$tag->data->load();
echo HtmlInput::title_box(_("Détail du dossier ou étiquette"), "tag_div");
$http=new HttpInput();
$data=$tag->get_data();
$data->t_id=$http->get("tag","number");
if ($data->t_id == -1 && $g_user->check_action(TAGADD) == 0 ) return;
$data->load();
echo HtmlInput::title_box(_("Etiquette"), "tag_div","close","","y");
?>
<?php
@ -30,9 +33,10 @@ else :
<?php endif; ?>
<?php
echo dossier::hidden();
echo HtmlInput::hidden('t_id', $_GET['tag']);
echo HtmlInput::hidden('ac',$_GET['ac']);
$data=$tag->data;
echo HtmlInput::hidden('t_id', $http->get('tag') );
echo HtmlInput::hidden('ac',$http->get('ac'));
require_once NOALYSS_TEMPLATE.'/tag_detail.php';
echo HtmlInput::submit("save_tag_sb", "Valider");
echo HtmlInput::button_close("tag_div");
@ -41,8 +45,12 @@ else :
</form>
<?php
$response= ob_get_clean();
$html=escape_xml($response);
if (headers_sent() && DEBUG ) {
echo $response;
}else {
header('Content-type: text/xml; charset=UTF-8');
}
$html=escape_xml($response);
echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<data>

View file

@ -0,0 +1,71 @@
<?php
/*
* This file is part of NOALYSS.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
if ( $g_user->check_module('CFGTAG') == 0 ) {
record_log("forbidden : AJT01 ".__FILE__);
exit();
}
require_once NOALYSS_INCLUDE."/class/tag_group_mtable.class.php";
/**
* @file
* @brief Manage the group of tags
*/
try {
$table=$http->request('table');
$action=$http->request('action');
$p_id=$http->request('p_id', "number");
$ctl_id=$http->request('ctl');
} catch(Exception $e) {
echo $e->getMessage();
return;
}
$obj=new Tag_Group_SQL($cn,$p_id);
$obj_manage=new Tag_Group_MTable($obj);
$obj_manage->set_callback("ajax_misc.php");
$obj_manage->add_json_param("op", "tag_group");
$obj_manage->set_object_name($ctl_id);
if ($action=="input")
{
header('Content-type: text/xml; charset=UTF-8');
echo $obj_manage->ajax_input()->saveXML();
return;
}
elseif ($action=="save")
{
$xml=$obj_manage->ajax_save();
header('Content-type: text/xml; charset=UTF-8');
echo $xml->saveXML();
}
elseif ($action=="delete")
{
$xml=$obj_manage->ajax_delete();
header('Content-type: text/xml; charset=UTF-8');
echo $xml->saveXML();
}

View file

@ -23,20 +23,24 @@
*/
if ( !defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
require_once NOALYSS_INCLUDE.'/class/tag.class.php';
require_once NOALYSS_INCLUDE.'/class/tag_action.class.php';
ob_start();
$tag=new Tag($cn);
$tag=new Tag_Action($cn);
$tag->select();
//------------------- Propose to add a tag
$js=sprintf("onclick=\"show_tag('%s','%s','%s','j')\"",Dossier::id(),'','-1');
echo HtmlInput::button("tag_add", _("Ajout d'un tag"), $js);
if ( $g_user->check_action(TAGADD) == 1) { echo HtmlInput::button("tag_add", _("Ajout d'un tag"), $js);}
echo HtmlInput::button_close("tag_div");
$response= ob_get_clean();
if (headers_sent() && DEBUG ){
echo $response;
} else {
header('Content-type: text/xml; charset=UTF-8');
}
$html=escape_xml($response);
header('Content-type: text/xml; charset=UTF-8');
echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<data>

View file

@ -22,11 +22,11 @@
*@brief remove a tag from an event in the follow up
*/
if ( !defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
$http=new HttpInput();
$fl=new Follow_Up($cn);
$fl->ag_id=$_REQUEST['ag_id'];
$fl->ag_id=$http->request('ag_id');
if ( $g_user->can_write_action($fl->ag_id) == TRUE ) $fl->tag_remove($_REQUEST['t_id']);
if ( $g_user->can_write_action($fl->ag_id) == TRUE ) $fl->tag_remove($http->request('t_id'));
ob_start();

View file

@ -12,7 +12,7 @@ $op=$http->request("op");
global $g_user;
$nDossier=Dossier::id();
///check security
if ( $g_user->check_module('CFGTAG')==0)
if ( $g_user->check_module('CFGTAG')==0 && $g_user->check_action(TAGADD) == 0)
{
die(_("non permis"));
}
@ -36,18 +36,20 @@ if ( $op == "tag_activate")
$tag=new Tag($cn, $tag_id);
$return=array();
$id=sprintf("tag_onoff%d",$tag_id);
if ( $tag->data->getp('t_actif') == 'Y')
$data=$tag->get_data();
if ( $data->getp('t_actif') == 'Y')
{
$tag->data->t_actif='N';
$tag->data->save();
$data->t_actif='N';
$data->save();
$return['code']='&#xf204;';
$return['style']='color:red';
} else {
$tag->data->t_actif='Y';
$tag->data->save();
$data->t_actif='Y';
$data->save();
$return['code']='&#xf205;';
$return['style']='color:green';
}
$tag->set_data($data);
header("Content-type: text/json; charset: utf8",true);
echo json_encode($return);
}

View file

@ -23,9 +23,9 @@ if ( !defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
*@brief Show the tags to select
*@see Tag
*/
require_once NOALYSS_INCLUDE.'/class/tag.class.php';
require_once NOALYSS_INCLUDE.'/class/tag_action.class.php';
ob_start();
$tag=new Tag($cn);
$tag=new Tag_Action($cn);
$tag->select_search();
$response= ob_get_clean();

View file

@ -0,0 +1,77 @@
<?php
/*
* This file is part of NOALYSS.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
require_once NOALYSS_INCLUDE."/class/tag_group_mtable.class.php";
/**
* @file
* @brief
*/
global $g_user;
$g_user->can_request('CFGTAG');
/*
* Received parameter
* gDossier
* act : action to perform
* tag_group : tag_group.tg_id
* tag=tags.t_id
*
*/
try
{
$act=$http->request("act");
}
catch (Exception $e)
{
record_log(__FILE__.$e->getMessage()." ".$e->getTraceAsString());
echo $e->getMessage()." ".$e->getTraceAsString();
}
$obj=new Tag_Group_SQL($cn);
$obj_manage=new Tag_Group_MTable($obj);
$obj_manage->set_callback("ajax_misc.php");
$obj_manage->add_json_param("op", "tag_group");
if ($act=="add")
{
$tag_group_id=$http->request("tag_group");
$tag=$http->request("tag");
$obj_manage->set_pk($tag_group_id);
// add tag to group tag
// protect against duplicate
if ($cn->get_value("select count (*) from jnt_tag_group_tag where tag_id = $1 and tag_group_id = $2",
[$tag, $tag_group_id])==0)
{
$cn->exec_sql("insert into jnt_tag_group_tag(tag_id,tag_group_id) values ($1,$2)", [$tag, $tag_group_id]);
}
}
elseif ($act=="remove")
{
$tag=$http->request("jt_tag");
$tag_group_id=$cn->get_value("select tag_group_id from jnt_tag_group_tag where jt_id = $1",[$tag]);
$obj_manage->set_pk($tag_group_id);
// remove tag from tag_group
$cn->exec_sql("delete from jnt_tag_group_tag where jt_id=$1", [$tag]);
}
$obj_manage->input_tag();

View file

@ -102,7 +102,7 @@ if ($ac == 'save')
if ($id <> 0 ) { $todo->load(); }
else
{
$todo->set_parameter("owner", $_SESSION['g_user']);
$todo->set_parameter("owner", $_SESSION[SESSION_KEY.'g_user']);
}
$todo->set_parameter("date",$http->post("p_date_todo","string", ""));
@ -111,7 +111,7 @@ if ($ac == 'save')
$todo->set_is_public($http->post("p_public", "string","N"));
ob_start();
if ( $todo->get_parameter('owner') == $_SESSION['g_user'] ) $todo->save();
if ( $todo->get_parameter('owner') == $_SESSION[SESSION_KEY.'g_user'] ) $todo->save();
ob_end_clean();
$dom=new DOMDocument('1.0','UTF-8');

View file

@ -45,15 +45,15 @@ foreach (array('l','t','d','gDossier') as $a)
}
$cn=Dossier::connect();
$op=new Pre_operation_detail($cn);
$op->set('ledger',$l);
$op->set('ledger_type',$t);
$op->set('direct',$d);
$op=new Pre_operation($cn);
$op->set_p_jrn($l);
$op->set_jrn_type($t);
$op->set_od_direct($d);
$url=http_build_query(array('action'=>'use_opd','p_jrn_predef'=>$l,'ac'=>$_GET['ac'],'gDossier'=>dossier::id()));
$html="";
$html.=HtmlInput::title_box(_("Modèle d'opérations"), 'modele_op_div', 'hide',"","n");
$html.=$op->show_button('do.php?'.$url);
$html.=$op->display_list_operation('do.php?'.$url);
$html.=' <p style="text-align: center">'.
HtmlInput::button_hide('modele_op_div').
'</p>';

View file

@ -10,7 +10,7 @@ if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
echo '<div style="content">';
global $http;
require_once NOALYSS_INCLUDE.'/class/anc_grandlivre.class.php';
$cn=Dossier::connect();
$grandLivre=new Anc_Grandlivre($cn);
$grandLivre->get_request();
@ -35,18 +35,25 @@ if ($result != null)
echo _('Tout sélectionner')." ".ICheckBox::toggle_checkbox('export_pdf_bt1','export_anc_receipt_pdf');
echo '</span>';
$task_id=uniqid();
echo $grandLivre->show_button();
printf ('<form method="GET" id="export_anc_receipt_pdf" action="export.php" style="display:inline" onsubmit="return start_export_anc_receipt_pdf(\'%s\',\'%s\');">',
$task_id,
_("Le traitement est en cours , merci de patienter sans recharger la page")
);
echo $grandLivre->button_export_csv();
printf ('<form method="GET" id="export_anc_receipt_pdf" action="export.php"
style="display:inline" onsubmit="return start_export_anc_receipt_pdf(\'%s\',\'%s\');">',
$task_id,
_("Le traitement est en cours , merci de patienter sans recharger la page")
);
echo HtmlInput::hidden("task_id",$task_id);
$type_pdf=new Select_Box("type_pdf",_("Type export PDF"));
$type_pdf->add_value(_("Un seul PDF"),1);
$type_pdf->add_value(_("Un PDF par opération"),2);
$type_pdf->set_position("in-absolute");
echo $type_pdf->input();
echo $grandLivre->button_export_pdf();
echo $grandLivre->display_html();
echo $grandLivre->button_export_pdf();
echo HtmlInput::get_to_hidden(array('ac','gDossier','sa'));
echo $grandLivre->button_export_pdf();
echo '</form>';
echo $grandLivre->show_button();
echo $grandLivre->button_export_csv();
?>
<script>
function start_export_anc_receipt_pdf(p_task_id,p_message)
@ -60,11 +67,16 @@ if ($result != null)
break;
}
}
if (document.getElementById("type_pdf").value == "-1" )
{
valid=false;
}
if ( valid ) {
progress_bar_start(p_task_id,p_message);
return true;
} else {
smoke.alert("<?=_('Choisissez au moins une opération')?>");
smoke.alert("<?=_('Choisissez au moins une opération et le type d\'export')?>");
return false;
}

View file

@ -207,7 +207,11 @@ if ( isset ($_GET['view'] ) )
{
$hid=new IHidden();
$from_periode=$http->get("from_periode","number");
$to_periode=$http->get("to_periode","number");
$from_poste=$http->get("from_poste","string");
$to_poste=$http->get("to_poste","string");
$p_filter=$http->get("p_filter");
echo "<table>";
echo '<TR>';
@ -217,9 +221,9 @@ if ( isset ($_GET['view'] ) )
HtmlInput::hidden("ac",$_REQUEST['ac']).
HtmlInput::hidden("act","PDF:balance").
HtmlInput::hidden("summary", $is_summary).
HtmlInput::hidden("from_periode",$_GET['from_periode']).
HtmlInput::hidden("to_periode",$_GET['to_periode']);
echo HtmlInput::hidden('p_filter',$_GET['p_filter']);
HtmlInput::hidden("from_periode",$from_periode).
HtmlInput::hidden("to_periode",$to_periode);
echo HtmlInput::hidden('p_filter',$p_filter);
for ($e=0;$e<count($selected);$e++)
if (isset($selected[$e]) && in_array ($selected[$e],$array))
echo HtmlInput::hidden("r_jrn[$e]",$selected[$e]);
@ -227,8 +231,8 @@ if ( isset ($_GET['view'] ) )
if (isset($select_cat[$e]))
echo HtmlInput::hidden("r_cat[$e]",$e);
echo HtmlInput::hidden("from_poste",$_GET['from_poste']).
HtmlInput::hidden("to_poste",$_GET['to_poste']);
echo HtmlInput::hidden("from_poste",$from_poste).
HtmlInput::hidden("to_poste",$to_poste);
echo HtmlInput::get_to_hidden(array('lvl1','lvl2','lvl3','unsold','previous_exc'));
echo "</form></TD>";
@ -237,10 +241,10 @@ if ( isset ($_GET['view'] ) )
HtmlInput::submit('bt_csv',"Export CSV").
dossier::hidden().
HtmlInput::hidden("act","CSV:balance").
HtmlInput::hidden("from_periode",$_GET['from_periode']).
HtmlInput::hidden("to_periode",$_GET['to_periode']);
HtmlInput::hidden("from_periode",$from_periode).
HtmlInput::hidden("to_periode",$to_periode);
echo HtmlInput::get_to_hidden(array('ac'));
echo HtmlInput::hidden('p_filter',$_GET['p_filter']);
echo HtmlInput::hidden('p_filter',$p_filter);
for ($e=0;$e<count($selected);$e++){
if (isset($selected[$e]) && in_array ($selected[$e],$array)){
echo HtmlInput::hidden("r_jrn[$e]",$selected[$e]);
@ -250,8 +254,8 @@ if ( isset ($_GET['view'] ) )
if (isset($select_cat[$e]))
echo HtmlInput::hidden("r_cat[$e]",$e);
echo HtmlInput::hidden("from_poste",$_GET['from_poste']).
HtmlInput::hidden("to_poste",$_GET['to_poste']);
echo HtmlInput::hidden("from_poste",$from_poste).
HtmlInput::hidden("to_poste",$to_poste);
echo HtmlInput::get_to_hidden(array('unsold','previous_exc'));
echo "</form></TD>";
@ -295,9 +299,11 @@ if ( isset($_GET['view'] ) )
$previous= (isset ($row[0]['sum_cred_previous']))?1:0;
$periode=new Periode($cn);
$a=$periode->get_date_limit($_GET['from_periode']);
$b=$periode->get_date_limit($_GET['to_periode']);
echo "<h2 class=\"info\"> période du ".$a['p_start']." au ".$b['p_end']."</h2>";
$a=$periode->get_date_limit($from_periode);
$b=$periode->get_date_limit($to_periode);
echo '<h2>';
printf ( _("période du %s au %s"),$a['p_start'],$b['p_end']);
echo '</h2>';
echo '<span style="display:block">';
echo _('Cherche').Icon_Action::infobulle(24);
echo HtmlInput::filter_table("t_balance", "0,1","1");

View file

@ -82,7 +82,7 @@ if ( $low_action == "list" )
' where frd_id=$1'.
' order by fd_label ',1,array(FICHE_TYPE_FIN));
$sel_card->selected=$http->get("cat","number",-1);
$sel_card->javascript=' onchange="submit(this);"';
$sel_card->javascript=' onchange="waiting_box();submit(this);"';
echo _('Catégorie :').$sel_card->input();
}
else

View file

@ -20,146 +20,18 @@
// Copyright Author Dany De Bontridder danydb@aevalys.eu
/*!\file
* \brief Manage the attributs
* \brief Manage the attributs ,CFGATCARD
*/
if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
require_once NOALYSS_INCLUDE.'/class/fiche_attr.class.php';
global $http;
$fa=new Fiche_Attr($cn);
/////////////////////////////////////////////////////////////////////////////
// If data are post we save them first
/////////////////////////////////////////////////////////////////////////////
if ( isset($_POST['save']))
{
try
{
$ad_id=$http->post('ad_id');
$ad_text=$http->post('desc');
$ad_type=$http->post('type');
$ad_size=$http->post('size');
$ad_extra=$http->post('extra');
$cn->start();
for ($e=0;$e<count($ad_id);$e++)
{
$fa->set_parameter('id',$ad_id[$e]);
$fa->set_parameter('desc',$ad_text[$e]);
$fa->set_parameter('type',$ad_type[$e]);
$fa->set_parameter('size',$ad_size[$e]);
$fa->set_parameter('extra',$ad_extra[$e]);
if ( trim($ad_text[$e])!='' && trim($ad_type[$e])!='')
$fa->save();
}
$cn->commit();
}
catch (Exception $e)
{
record_log($e);
alert($e->getMessage());
$cn->rollback();
}
}
/* show list of existing */
$gDossier=dossier::id();
$array=$fa->seek();
$select_type=new ISelect('type[]');
$select_type->table=0;
$desc=new IText('desc[]');
$desc->size=50;
$size=new INum('size[]');
$size->size=5;
$extra=new IText('extra[]');
$select_type->value=array(
array('value'=>'text','label'=>_('Texte')),
array('value'=>'numeric','label'=>_('Nombre')),
array('value'=>'date','label'=>_('Date')),
array('value'=>'zone','label'=>_('Zone de texte')),
array('value'=>'poste','label'=>_('Poste Comptable')),
array('value'=>'card','label'=>_('Fiche')),
array('value'=>'select','label'=>_('Selection'))
);
require_once NOALYSS_INCLUDE.'/class/card_attribut_mtable.class.php';
$obj=new Fiche_Attr($cn);
$mtable=new Card_Attribut_MTable($obj);
$mtable->add_json_param("op", "card");
$mtable->add_json_param("op2", "attribute");
$mtable->set_callback("ajax_misc.php");
$mtable->create_js_script();
echo '<div class="content">';
echo '<form method="post">';
echo HtmlInput::hidden('sa','fat');
echo HtmlInput::hidden('p_action','divers');
echo '<table id="tb_rmfa">';
echo '<tr>';
echo th(_("id"));
echo th(_("Description"));
echo th(_("Type"));
echo th(_("Taille"));
echo th(_("Paramètre"));
echo '</tr>';
for ($e=0;$e<count($array);$e++)
{
$row=$array[$e];
$r='';
$r.=td(HtmlInput::hidden('ad_id[]',$row->get_parameter('id')).$row->get_parameter('id'));
$select_type->selected=$row->get_parameter('type');
$desc->value=$row->get_parameter('desc');
$size->value=$row->get_parameter('size');
$extra->value=$row->get_parameter('extra');
$remove=new IButton('rmfa'.$e);
$remove->label=_('Effacer');
if ( $row->get_parameter('id')>= 9000)
{
$select_type->readOnly=false;
$desc->readOnly=false;
$size->readOnly=false;
$extra->readOnly=false;
$desc->style=' class="input_text" ';
$r.=td($desc->input());
$r.=td($select_type->input());
$r.=td($size->input());
$r.=td($extra->input());
$remove->javascript=sprintf('confirm_box(\'tb_rmfa\',\'Vous confirmez ?\',function() { removeCardAttribut(%d,%d,\'tb_rmfa\',$(\'rmfa%d\') );})',
$row->get_parameter('id'),$gDossier,$e);
$msg='<span class="notice">'._("Attention : effacera les données qui y sont liées").' </span>';
$r.=td($remove->input().$msg);
}
else
{
$select_type->readOnly=true;
$desc->readOnly=true;
$size->readOnly=true;
$extra->readOnly=true;
$r.=td($desc->input().HtmlInput::hidden('type[]',''));
$r.=td($select_type->input());
$r.=td($size->input());
$r.=td($extra->input());
$r.=td("");
}
echo tr($r);
}
$desc->readOnly=false;
$select_type->readOnly=false;
$size->readOnly=false;
$extra->readOnly=false;
$desc->value='';
$select_type->selected=-1;
$r=td(_("Nouvel attribut").HtmlInput::hidden('ad_id[]','0'),'class="highlight"');
$r.=td($desc->input());
$r.=td($select_type->input());
$r.=td($size->input());
$r.=td($extra->input());
echo tr($r);
echo '</table>';
echo HtmlInput::submit('save',_('Sauver'));
echo '</form>';
echo $mtable->display_table("order by ad_text");
echo '</div>';

View file

@ -1,90 +0,0 @@
<?php
/*
* 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
*/
// Copyright Author Dany De Bontridder danydb@aevalys.eu
/*!\file
* \brief this file is included to perform modification on category of document
* table document_type
*/
// show list of document
if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
require_once NOALYSS_INCLUDE.'/class/document_type.class.php';
global $http;
if (isset($_POST['add']))
{
$catDoc=new Document_Type($cn);
try
{
$cat=$http->post('cat');
$prefix=$http->post('prefix');
$catDoc->insert($cat, $prefix);
}
catch (Exception $exc)
{
echo $exc->getMessage();
error_log($exc->getTraceAsString());
}
}
if (isset($_POST['save']))
{
try
{
$dt_id=$http->post("dt_id", "number");
$name=
$prefix=
$catDoc=new Document_Type($cn, $dt_id);
$catDoc->get();
$catDoc->dt_value=trim($http->post("dt_name"));;
$catDoc->dt_prefix=trim($http->post("dt_prefix"));
if ($catDoc->dt_value=="")
{
alert(_("Le nom ne peut pas être vide"));
}
else
{
$catDoc->update();
}
if ($_POST['seq']!=0&&isNumber($_POST['seq'])==1)
{
$catDoc->set_number($_POST['seq']);
}
}
catch (Exception $exc)
{
alert ($exc->getMessage());
error_log($exc->getTraceAsString());
}
}
$aList=Document_Type::get_list($cn);
$addCat=new IText('cat');
$addPrefix=new IText('prefix');
$str_addCat=$addCat->input();
$str_addPrefix=$addPrefix->input();
$str_submit=HtmlInput::submit('add', _('Ajout'));
echo '<div class="content">';
require_once NOALYSS_TEMPLATE.'/list_category_document.php';
echo '</div>';
?>

View file

@ -34,7 +34,7 @@ global $http;
$str_dossier=Dossier::get();
$root="?".http_build_query(["ac"=>$http->request("ac"),"sb"=>"detail","f_id"=>$http->request("f_id","number")]);
$root="do.php?".http_build_query(["ac"=>$http->request("ac"),"sb"=>"detail","f_id"=>$http->request("f_id","number")]);
$root.="&".$str_dossier;
$ss_action=$http->request("sc", "string", "dc");

View file

@ -40,8 +40,14 @@ $ag_id=$http->request("ag_id","string","0");
if (! isset($_GET['submit_query'])) {$_REQUEST['closed_action']=1;$_GET['closed_action']=1;}
$p_action=$http->request('ac');
$base="ac=$p_action&sc=sv&sb=detail&f_id=".$_REQUEST['f_id']."&".HtmlInput::request_to_string(array("closed_action","remind_date_end","remind_date","sag_ref","only_internal","state","gDossier","qcode","ag_dest","query","tdoc","date_start","date_end","hsstate","searchtag","sb","sc"),"");
$retour=HtmlInput::button_anchor('Retour','?'.dossier::get().'&'.$base);
$base="do.php?".http_build_query(["ac"=>$p_action,
"sc"=>"sv",
"sb"=>"detail",
"f_id"=>$http->request("f_id","number"),
"gDossier"=>Dossier::id()
])."&amp;"
;
$retour=HtmlInput::button_anchor(_('retour'),$base);
$fiche=new Fiche($cn,$http->request("f_id","number"));

View file

@ -0,0 +1,44 @@
<?php
/*
* 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
*/
// Copyright Author Dany De Bontridder danydb@aevalys.eu
/*!\file
* \brief this file is included to perform modification on category of document (= action)
* table document_type
*/
// show list of document
if (!defined('ALLOWED')) die('Appel direct ne sont pas permis');
require_once NOALYSS_INCLUDE."/class/action_document_type_mtable.class.php";
echo '<div class="content">';
$doc_type=new Document_type_SQL($cn);
$action_document_type=new Action_Document_Type_MTable($doc_type);
$action_document_type->set_callback("ajax_misc.php");
$action_document_type->add_json_param("op", "cfgaction");
$action_document_type->create_js_script();
$action_document_type->display_table("order by dt_value");
?>
</div>

Some files were not shown because too many files have changed in this diff Show more