diff --git a/html/ajax_misc.php b/html/ajax_misc.php
index a35b2cd9e..3ab77bac4 100644
--- a/html/ajax_misc.php
+++ b/html/ajax_misc.php
@@ -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;
}
\ No newline at end of file
diff --git a/html/js/scripts.js b/html/js/scripts.js
index 7bf4db835..9971f9f2d 100644
--- a/html/js/scripts.js
+++ b/html/js/scripts.js
@@ -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=[];
diff --git a/include/ajax_add_menu.php b/include/ajax_add_menu.php
index 6049b4474..799381b27 100644
--- a/include/ajax_add_menu.php
+++ b/include/ajax_add_menu.php
@@ -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("
diff --git a/include/ajax_create_menu.php b/include/ajax_create_menu.php
new file mode 100644
index 000000000..f1f230591
--- /dev/null
+++ b/include/ajax_create_menu.php
@@ -0,0 +1,10 @@
+';
+require_once 'template/menu_detail.php';
+echo HtmlInput::submit('create_menu','Sauver');
+echo HtmlInput::button_close('divmenu');
+echo '';
+?>
diff --git a/include/ajax_get_menu_detail.php b/include/ajax_get_menu_detail.php
index ff346a0c1..6df72abb7 100644
--- a/include/ajax_get_menu_detail.php
+++ b/include/ajax_get_menu_detail.php
@@ -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
diff --git a/include/ajax_mod_menu.php b/include/ajax_mod_menu.php
new file mode 100644
index 000000000..57e23ab4d
--- /dev/null
+++ b/include/ajax_mod_menu.php
@@ -0,0 +1,11 @@
+me_code.h($m->menu);
+echo '
';
+?>
diff --git a/include/class_menu_ref.php b/include/class_menu_ref.php
new file mode 100644
index 000000000..bf609bbd9
--- /dev/null
+++ b/include/class_menu_ref.php
@@ -0,0 +1,38 @@
+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;
+ }
+
+}
+
+?>
diff --git a/include/menu.inc.php b/include/menu.inc.php
index af0672ccd..052618c7d 100644
--- a/include/menu.inc.php
+++ b/include/menu.inc.php
@@ -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 '';
echo '';
echo '| '.$table->get_header(0).' | ';
@@ -143,29 +167,30 @@ echo ''.$table->get_header(6).' | ';
echo ''.$table->get_header(7).' | ';
echo '
';
-for ($i=0;$iget_object($ret, $i);
- $js=$row->me_code;
- switch ($row->me_type)
- {
- case 'PL':
- $js=sprintf('%s',
- $gDossier,$row->me_code,$row->me_code);
- break;
-
- }
- $class= ( $i%2 == 0)?$class=' class="odd"':$class=' class="even"';
- echo "";
- 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 '
';
+ $row = $menu->get_object($ret, $i);
+ $js = $row->me_code;
+ switch ($row->me_type)
+ {
+ case 'PL':
+ $js = sprintf('%s', $gDossier, $row->me_code, $row->me_code);
+ break;
+ case 'ME':
+ $js = sprintf('%s', $gDossier, $row->me_code, $row->me_code);
+ break;
+ }
+ $class = ( $i % 2 == 0) ? $class = ' class="odd"' : $class = ' class="even"';
+ echo "";
+ 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 '
';
}
echo '
';
diff --git a/include/template/menu_detail.php b/include/template/menu_detail.php
new file mode 100644
index 000000000..a8bae10ea
--- /dev/null
+++ b/include/template/menu_detail.php
@@ -0,0 +1,72 @@
+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);
+
+?>
+
+
+ |
+ Code du menu
+ |
+
+ =$str_code->input()?>
+ |
+
+
+ |
+ Libellé du menu
+ |
+
+ =$str_menu->input()?>
+ |
+
+
+ |
+ Description
+ |
+
+ =$str_desc->input()?>
+ |
+
+
+ |
+ Fichier à inclure (depuis le répertoire include)
+ |
+
+ =$str_file->input()?>
+ |
+
+
+ |
+ URL
+ |
+
+ =$str_url->input()?>
+ |
+
+
+ |
+ Paramèttre
+ |
+
+ =$str_parameter->input()?>
+ |
+
+
+ |
+ Javascript
+ |
+
+ =$str_js->input()?>
+ |
+
+
\ No newline at end of file