CFGMENU let add new menu or modify them

This commit is contained in:
Dany De Bontridder 2011-12-07 13:29:40 +00:00
parent e297a14336
commit f4bb98135f
9 changed files with 247 additions and 27 deletions

View file

@ -532,6 +532,12 @@ EOF;
require_once('ajax_anc_search.php');
break;
case 'autoanc':
require_once('ajax_auto_anc_card.php');
require_once 'ajax_auto_anc_card.php' ;
break;
case 'create_menu';
require_once 'ajax_create_menu.php';
break;
case 'add_menu';
require_once 'ajax_mod_menu.php';
break;
}

View file

@ -1242,7 +1242,7 @@ function add_plugin(p_dossier)
onSuccess:function(req){
try{
remove_waiting_box();
var pos=fixed_position(250,150)+";width:30%";;
var pos=fixed_position(250,150)+";width:30%";
add_div({id:"divplugin",drag:1,cssclass:"inner_box",style:pos});
$('divplugin').innerHTML=req.responseText;
} catch(e){alert(e.message);}
@ -1273,7 +1273,65 @@ function mod_plugin(p_dossier,me_code)
}
);
}
function create_menu(p_dossier)
{
waiting_box();
removeDiv('divmenu');
var qs="op=create_menu&gDossier="+p_dossier+"&ctl=divmenu";
var action=new Ajax.Request ( 'ajax_misc.php',
{
method:'get',
parameters:qs,
onFailure:null,
onSuccess:function(req){
try{
remove_waiting_box();
var pos=fixed_position(250,150)+";width:30%";
add_div({
id:"divmenu",
drag:1,
cssclass:"inner_box",
style:pos
});
$('divmenu').innerHTML=req.responseText;
} catch(e){
alert(e.message);
}
}
}
);
}
function mod_menu(p_dossier,me_code)
{
waiting_box();
removeDiv('divmenu');
var qs="op=mod_menu&gDossier="+p_dossier+"&ctl=divmenu&me_code="+me_code;
var action=new Ajax.Request ( 'ajax_misc.php',
{
method:'get',
parameters:qs,
onFailure:null,
onSuccess:function(req){
try{
remove_waiting_box();
var pos=fixed_position(250,150)+";width:30%";
add_div({
id:"divmenu",
drag:1,
cssclass:"inner_box",
style:pos
});
$('divmenu').innerHTML=req.responseText;
} catch(e){
alert(e.message);
}
}
}
);
}
function get_properties(obj)
{
var a_array=[];

View file

@ -33,7 +33,7 @@ $ame_code_dep=$cn->make_array("
UNION ALL
select me_code,me_code||' '||me_menu||' '||coalesce(me_description,'') from menu_ref
where
me_code='EXTENSION'
me_code='EXT'
order by 1
",1);
$ame_code=$cn->make_array("

View file

@ -0,0 +1,10 @@
<?php
require_once 'class_menu_ref.php';
$msg="Création";
$m=new Menu_Ref($cn);
echo '<form method="POST">';
require_once 'template/menu_detail.php';
echo HtmlInput::submit('create_menu','Sauver');
echo HtmlInput::button_close('divmenu');
echo '</form>';
?>

View file

@ -35,7 +35,7 @@ $a_value_null=$cn->make_array("select me_code,me_code||' '||me_menu||' '||coales
UNION ALL
select me_code,me_code||' '||me_menu||' '||coalesce(me_description,'') from menu_ref
where
me_code='EXTENSION'",1);
me_code='EXT'",1);
$a_type=$cn->make_array("select pm_type,pm_desc from profile_menu_type",1);
$array=$cn->get_array("select p_id,pm_id,me_code,me_code_dep,p_order,p_type_display,pm_default

11
include/ajax_mod_menu.php Normal file
View file

@ -0,0 +1,11 @@
<?php
require_once 'class_menu_ref.php';
$m=new Menu_Ref($cn,$me_code);
$msg="Modification ".$m->me_code.h($m->menu);
echo '<form method="POST">';
require_once 'template/menu_detail.php';
echo HtmlInput::submit('mod_menu','Sauver');
echo HtmlInput::button_close('divmenu');
echo '</form>';
?>

View file

@ -0,0 +1,38 @@
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*@file
*@brief Menu_Ref let you manage the available menu
*/
require_once 'class_menu_ref_sql.php';
class Menu_Ref extends Menu_Ref_sql
{
function format_code()
{
$this->me_code=strtoupper($this->me_code);
$this->me_code=trim($this->me_code);
$this->me_code=str_replace('<','',$this->me_code);
$this->me_code=str_replace('>','',$this->me_code);
}
function verify()
{
parent::verify();
if ( $this->me_code == -1)
{
$this->format_code();
if ( $this->cn->get_value("select count(*) from menu_ref where me_code=$1",array($this->me_code)) > 0)
return -1;
if (trim($this->me_code)=='')
return -2;
}
return 0;
}
}
?>

View file

@ -27,7 +27,7 @@
* \brief Show the table menu and let you add your own
*
*/
require_once 'class_menu_ref_sql.php';
require_once 'class_menu_ref.php';
require_once 'class_sort_table.php';
require_once 'class_extension.php';
@ -68,6 +68,29 @@ if (isset($_POST['mod_plugin']))
$plugin->remove_plugin();
}
}
/**
* if post save then we save a new one
*/
if ( isset($_POST['create_menu'])|| isset($_POST['mod_menu']))
{
extract($_POST);
$menu_ref=new Menu_Ref($cn);
$menu_ref->me_code=$me_code;
$menu_ref->me_menu=$me_menu;
$menu_ref->me_file=$me_file;
$menu_ref->me_description=$me_description;
$menu_ref->me_parameter=$me_parameter;
$menu_ref->me_url=$me_url;
$menu_ref->me_javascript=$me_javascript;
$menu_ref->me_type='ME';
if ( isset($_POST['create_menu']))
{
if ( $menu_ref->verify() == 0) $menu_ref->insert();
}elseif (isset ($_POST['mod_menu']))
{
if ( $menu_ref->verify() == 0)$menu_ref->update();
}
}
/**
* if delete then delete
*/
@ -131,6 +154,7 @@ $ret=$menu->seek($sql.$order);
<?
$gDossier=Dossier::id();
echo HtmlInput::button("Add_plugin", "Ajout d'un plugin", "onclick=add_plugin($gDossier)");
echo HtmlInput::button("Add_menu", "Ajout d'un menu", "onclick=create_menu($gDossier)");
echo '<table class="result">';
echo '<tr>';
echo '<th>'.$table->get_header(0).'</th>';
@ -143,29 +167,30 @@ echo '<th>'.$table->get_header(6).'</th>';
echo '<th>'.$table->get_header(7).'</th>';
echo '</tr>';
for ($i=0;$i<Database::num_row($ret);$i++)
for ($i = 0; $i < Database::num_row($ret); $i++)
{
$row=$menu->get_object($ret, $i);
$js=$row->me_code;
switch ($row->me_type)
{
case 'PL':
$js=sprintf('<A class="line" href="javascript:void(0)" onclick="mod_plugin(\'%s\',\'%s\')">%s</A>',
$gDossier,$row->me_code,$row->me_code);
break;
}
$class= ( $i%2 == 0)?$class=' class="odd"':$class=' class="even"';
echo "<tr $class>";
echo td($js);
echo td($row->me_menu);
echo td($row->me_description);
echo td($row->me_file);
echo td($row->me_url);
echo td($row->me_parameter);
echo td($row->me_javascript);
echo td($row->me_type);
echo '</tr>';
$row = $menu->get_object($ret, $i);
$js = $row->me_code;
switch ($row->me_type)
{
case 'PL':
$js = sprintf('<A class="line" href="javascript:void(0)" onclick="mod_plugin(\'%s\',\'%s\')">%s</A>', $gDossier, $row->me_code, $row->me_code);
break;
case 'ME':
$js = sprintf('<A class="line" href="javascript:void(0)" onclick="mod_menu(\'%s\',\'%s\')">%s</A>', $gDossier, $row->me_code, $row->me_code);
break;
}
$class = ( $i % 2 == 0) ? $class = ' class="odd"' : $class = ' class="even"';
echo "<tr $class>";
echo td($js);
echo td($row->me_menu);
echo td($row->me_description);
echo td($row->me_file);
echo td($row->me_url);
echo td($row->me_parameter);
echo td($row->me_javascript);
echo td($row->me_type);
echo '</tr>';
}
echo '</table>';

View file

@ -0,0 +1,72 @@
<?php
require_once 'class_html_input.php';
require_once 'class_itext.php';
echo HtmlInput::title($msg,"divmenu");
$str_code=new IText('me_code',$m->me_code);
if ( $m->me_code != -1) $str_code->setReadOnly (true);
$str_menu=new IText('me_menu',$m->me_menu);
$str_desc=new IText('me_description',$m->me_description);
$str_file=new IText('me_file',$m->me_file);
$str_url=new IText('me_url',$m->me_url);
$str_js=new IText('me_javascript',$m->me_javascript);
?>
<table>
<tr>
<td>
Code du menu
</td>
<td>
<?=$str_code->input()?>
</td>
</tr>
<tr>
<td>
Libellé du menu
</td>
<td>
<?=$str_menu->input()?>
</td>
</tr>
<tr>
<td>
Description
</td>
<td>
<?=$str_desc->input()?>
</td>
</tr>
<tr>
<td>
Fichier à inclure (depuis le répertoire include)
</td>
<td>
<?=$str_file->input()?>
</td>
</tr>
<tr>
<td>
URL
</td>
<td>
<?=$str_url->input()?>
</td>
</tr>
<tr>
<td>
Paramèttre
</td>
<td>
<?=$str_parameter->input()?>
</td>
</tr>
<tr>
<td>
Javascript
</td>
<td>
<?=$str_js->input()?>
</td>
</tr>
</table>