linea21-modules
[ class tree: linea21-modules ] [ index: linea21-modules ] [ all elements ]

Source for file add.php

Documentation is available at add.php

  1. <?php
  2. /**
  3.  * @package linea21.modules
  4.  * @subpackage project
  5.  * @author linea21 <info@linea21.com>
  6.  * @version $id SVN
  7.  * @access public
  8.  * @license http://opensource.org/licenses/gpl-3.0.html
  9.  */
  10.  
  11. //////////// Check Inclusion de pages ////////////
  12. if (!class_exists('auth')) {
  13.   include_once("../lib/lib_common.php");
  14.   ReloadIndex('admin');
  15. }
  16. ////////////
  17.  
  18. //////////// Check Droits utilisateur ////////////
  19. if (!$l21auth->isSuperAdmin()) ReloadIndex('admin');
  20. ////////////
  21.  
  22. // TextboxList CSS/JS inclusion
  23. addDynamicCSS(THEME_ADMIN_PATH.'css/TextboxList.css');
  24. addDynamicCSS(THEME_ADMIN_PATH.'css/TextboxList.Autocomplete.css');
  25. footerAddJS('../lib/js/jquery.textboxList/GrowingInput.js');
  26. footerAddJS('../lib/js/jquery.textboxList/TextboxList.js');
  27. footerAddJS('../lib/js/jquery.textboxList/TextboxList.Autocomplete.js');
  28.  
  29. // MultiSelect CSS/JS inclusion
  30. addDynamicCSS('../lib/js/jquery-ui-multiselect/jquery.multiselect.css');
  31. addDynamicCSS('../lib/js/jquery-ui-multiselect/jquery.multiselect.filter.css');
  32. footerAddJS('../lib/js/jquery-ui-multiselect/src/jquery.multiselect.min.js');
  33. footerAddJS('../lib/js/jquery-ui-multiselect/src/jquery.multiselect.filter.min.js');
  34. footerAddJS('../lib/js/jquery-ui-multiselect/i18n/jquery.multiselect.'.U_L.'.js');
  35. footerAddJS('../lib/js/jquery-ui-multiselect/i18n/jquery.multiselect.filter.'.U_L.'.js');
  36. ?>
  37.  
  38. <div id="chemin">
  39.   <ul>
  40.       <li><a href="index.php" class="chemin_home"><?php echo _t('way','home'); ?></a></li>
  41.       <li><a href="<?php echo $rub_link; ?>" id="chemin_<?php echo $rub; ?>" class="chemin_rub"><?php echo _t('menu','project'); ?></a></li>
  42.       <li><span><?php echo formatNavTitle(_t('project','add')); ?></span></li>
  43.   </ul>
  44. </div>
  45. <!--end barre haute -->
  46. <?php
  47. $form_name='';
  48. $form_description='';
  49. $form_body='';
  50. $form_budget='';
  51. $form_coordinator='';
  52. $form_partners='';
  53. $form_progression=0;
  54. $form_parent_id=-1;
  55. $form_theme_id=-1;
  56. $form_scale_id=-1;
  57. $form_priority_id=-1;
  58. $form_workshop_id=-1;
  59. $form_sdi= array();
  60. $mask_statut_P="checked=\"checked\"";
  61. $mask_statut_D='';
  62. $form_begin_date='';
  63. $form_estimated_date='';
  64. $form_end_date='';
  65.  
  66.  
  67. $project_object = new project;
  68.  
  69. if(isset($_POST['enregistrer'])) {
  70.   $data_table=unserialize(urldecode($_POST['data_table']));
  71.   $result=$project_object->AddProject($data_table, $sql_object);
  72.   $link_confirm="confirm.php?rub=".$rub."&todo=".$todo;
  73.   if(is_numeric($result)) header("Location: ".$link_confirm);
  74.   else  system_error();
  75. }
  76.  
  77. if(isset($_POST['valider'])) {
  78.  
  79.   isset($_POST['choose_sdi']) ? $form_sdi=$_POST['choose_sdi'] : $form_sdi=array();
  80.  
  81.   $a[0]=$_POST['project_name'];
  82.   $a[1]=$_POST['project_description'];
  83.   $a[2]=$_POST['project_body'];
  84.   $a[3]=$_POST['project_parent_id'];
  85.   $a[4]=$_POST['project_scale_id'];
  86.   $a[5]=$_POST['project_priority_id'];
  87.   $a[6]=$_POST['project_begin_date'];
  88.   $a[7]=$_POST['project_estimated_date'];
  89.   $a[8]=$_POST['project_end_date'];
  90.   $a[9]=$l21auth->GetSessionElement('id'); // ID posteur
  91.   $a[10]=$_POST['project_statut'];
  92.   $a[11]=$_POST['project_theme_id'];
  93.   $a[12]=$_POST['project_workshop_id'];
  94.   $a[13]=$form_sdi;
  95.   $a[14]=$_POST['project_progression'];
  96.   $a[15]=$_POST['project_budget'];
  97.   $a[16]=$_POST['project_coordinator'];
  98.   $a[17]=$_POST['project_partners'];
  99.   
  100.   $project_object= new project;
  101.   $integrity=$project_object->CheckDataIntegrity($a);
  102.   
  103.  
  104.   if(is_string($integrity)) {
  105.     $text_format='2FIELD';
  106.   } else {
  107.     $text_format='2HTML';
  108.   }
  109.   $form_name=formatText($_POST['project_name'], $text_format);
  110.   $form_description=formatText($_POST['project_description'], $text_format);
  111.   $form_body=formatText($_POST['project_body'], $text_format);
  112.   $form_budget=formatText($_POST['project_budget'], $text_format);
  113.   $form_coordinator=str_replace(',', ', ', formatText($_POST['project_coordinator'], $text_format));
  114.   $form_partners=str_replace(',', ', ', formatText($_POST['project_partners'], $text_format));
  115.   $form_begin_date=$_POST['project_begin_date'];
  116.   $form_estimated_date=$_POST['project_estimated_date'];
  117.   $form_end_date=$_POST['project_end_date'];
  118.   $form_progression=$_POST['project_progression'];
  119.  
  120.   $form_theme_id=$_POST['project_theme_id'];
  121.   $form_workshop_id=$_POST['project_workshop_id'];
  122.   $form_scale_id=$_POST['project_scale_id'];
  123.   $form_parent_id=$_POST['project_parent_id'];
  124.   $form_priority_id=$_POST['project_priority_id'];
  125.  
  126.  
  127.   if($_POST['project_statut']=='D') $mask_statut_D="checked=\"checked\""; else $mask_statut_D='';
  128.   if($_POST['project_statut']=='P') $mask_statut_P="checked=\"checked\""; else $mask_statut_P='';
  129.   $a=urlencode(serialize($a));
  130. }
  131.  
  132.  
  133. if(!isset($integrity) || is_string($integrity)) {
  134.   include_once("../lib/input_helpers.php");
  135.  
  136.   // select-box de thèmes
  137.   $data=$sql_object->DBSelect($req_list_theme);
  138.   $select_theme=ThemeSelectBox($data, "project_theme_id", $form_theme_id);
  139.  
  140.   // select-box de workshops
  141.   $data=$sql_object->DBSelect($req_list_workshop);
  142.   $select_workshop=WorkshopSelectBox($data, "project_workshop_id", $form_workshop_id);
  143.  
  144.   // select-box des projets
  145.   $data=$sql_object->DBSelect(SQL_getProjectsList(0,1000, 'public'));
  146.   $select_parent=ProjectSelectBox($data, "project_parent_id", $form_parent_id);
  147.  
  148.   // select-box des échelles
  149.   $data=$sql_object->DBSelect($req_list_scale);
  150.   $select_scale=ScaleSelectBox($data, "project_scale_id", $form_scale_id);
  151.  
  152.   // select-box des priorités
  153.   $data=$sql_object->DBSelect($req_list_priority);
  154.   $select_priority=PrioritySelectBox($data, "project_priority_id", $form_priority_id);
  155.  
  156.   // select-box des indicateurs
  157.   $data=$sql_object->DBSelect($req_list_sdi);
  158.   $select_sdi=SDIMultiSelectBox($data, "choose_sdi", $form_sdi);
  159.  
  160. }
  161.  
  162. include_once(THEME_ADMIN_PATH."quickicons.php");
  163.  
  164. footerAddJS('../lib/js/jquery.datePicker.l10n/jquery.ui.datepicker-'.U_L.'.js');
  165. ?>
  166.  
  167. <script type="text/javascript">
  168.     
  169.     $(document).ready( function()
  170.     {
  171.         $("#choose_sdi").multiselect({ noneSelectedText: '<?php echo _t('divers','select_choice'); ?>', selectedList:0, minWidth:'596px' } ).multiselectfilter(); 
  172.         
  173.         $( "#project_slider" ).slider({
  174.             range: "min",
  175.             value:<?php echo $form_progression; ?>,
  176.             min: 0,
  177.             max: 100,
  178.             step: <?php echo PROJECT_STEP; ?>,
  179.             slide: function( event, ui ) {
  180.                 $( "#project_progression" ).val( ui.value );
  181.                 $( "#progression_value" ).html( ui.value + ' %' );
  182.             }
  183.         });
  184.         $( "#project_progression" ).val($( "#project_slider" ).slider( "value" ));
  185.         $( "#project_progression" ).hide();
  186.         $( "#progression_value" ).html( <?php echo $form_progression; ?> + ' %' );
  187.  
  188.  
  189.          // Autocomplete initialization
  190.         var t1 = new $.TextboxList('#project_coordinator', {unique: true, plugins: {autocomplete: {onlyFromValues: false, placeholder:"<?php echo _t('textbox_js', 'placeholder')?>"}}});
  191.         var t2 = new $.TextboxList('#project_partners', {unique: true, plugins: {autocomplete: {onlyFromValues: false, placeholder:"<?php echo _t('textbox_js', 'placeholder')?>"}}});
  192.         
  193.         $.ajax({url: '../project/_ajax_actor_autocomplete.php', dataType: 'json', success: function(r){
  194.             t1.plugins['autocomplete'].setValues(r);
  195.             t2.plugins['autocomplete'].setValues(r);
  196.         }});
  197.  
  198.         /** jquery UI datePicker integration
  199.         ---------------------------------------------------*/
  200.         
  201.         var dateFormat = "<?php echo DATE_FORMAT; ?>";
  202.         dateFormat = dateFormat.replace("yyyy", "yy");
  203.         
  204.         $(".date-pick").datepicker({
  205.             showOn: "button",
  206.             beforeShow: getAvailableRange,
  207.             buttonImage: "../lib/js/calendar.png",
  208.             buttonImageOnly: true,
  209.             dateFormat: dateFormat
  210.         });
  211.         $( ".date-pick" ).datepicker( $.datepicker.regional[ "<?php echo U_L; ?>" ] );
  212.  
  213.  
  214.         function getAvailableRange(input) 
  215.         { 
  216.                 var min = new Date(2000, 1 - 1, 1); //Set this to your absolute minimum date
  217.                 var dateMin = min;
  218.                 var dateMax = null;
  219.                 
  220.                 if (input.id == "project_begin_date") 
  221.                 {
  222.                     dateMin = min; // absolute minimum date                  
  223.                 }
  224.                 else if (input.id == "project_estimated_date")
  225.                 {
  226.                         if ($("#project_begin_date").datepicker("getDate") != null) 
  227.                         {
  228.                                 dateMin = $("#project_begin_date").datepicker("getDate");
  229.                                 dateMin.setDate(dateMin.getDate() + 1);
  230.  
  231.                         }
  232.                 }
  233.                 else if (input.id == "project_end_date")
  234.                 {
  235.                         if ($("#project_begin_date").datepicker("getDate") != null) 
  236.                         {
  237.                                 dateMin = $("#project_begin_date").datepicker("getDate");
  238.                                 dateMin.setDate(dateMin.getDate() + 1);
  239.                         }
  240.                 }
  241.             return {
  242.                         minDate: dateMin, 
  243.                         maxDate: dateMax,
  244.                     }; 
  245.  
  246.         }
  247.         
  248.         
  249.     });
  250. </script>
  251.  
  252.  
  253. <?php
  254. if(!isset($integrity) || is_string($integrity)) {
  255. ?>
  256. <div class="contentcontainer">
  257. <?php
  258. include_once(override($dir.'/menurub.php', THEME_ADMIN_PATH));
  259. ?>
  260. <div id="content">
  261. <?php
  262. if(isset($integrity) && is_string($integrity)) display_errors($integrity);
  263. ?>
  264. <h2><?php echo formatTitleh2(_t('project','add')); ?></h2>
  265. <form id="addproject" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
  266. <p>
  267.     <label for="project_name"><?php echo mb_ucfirst(_t('project','name')); ?> : *</label>
  268.     <input name="project_name" type="text" maxlength="200" id="project_name" class="textfield" value="<?php echo $form_name; ?>" />
  269. </p>
  270. <p>
  271.     <label for="project_parent_id"><?php echo mb_ucfirst(_t('project','parent')); ?> :</label>
  272.     <?php echo $select_parent; ?>
  273.     </p>
  274. <p>
  275.     <label for="project_description"><?php echo mb_ucfirst(_t('project','description')); ?> : *</label>
  276.     <textarea id="project_description" name="project_description" class="largetextfield" <?php echo AREA_SETTINGS; ?>><?php echo $form_description; ?></textarea>
  277. </p>
  278. <p>
  279.     <label for="project_body"><?php echo mb_ucfirst(_t('project','body')); ?> : *</label>
  280.     <textarea id="project_body" name="project_body" class="largetextfield" <?php echo AREA_SETTINGS; ?>><?php echo $form_body; ?></textarea>
  281. </p>
  282. <p>
  283.     <label for="project_budget"><?php echo mb_ucfirst(_t('project','budget')); ?> : </label>
  284.     <input name="project_budget" type="text" maxlength="10" id="project_budget" class="textfield" value="<?php echo $form_budget; ?>" />
  285.     </p>
  286. <p>
  287.     <label for="project_coordinator"><?php echo mb_ucfirst(_t('project','coordinator')); ?> : </label>
  288.     <input name="project_coordinator" type="text" maxlength="250" id="project_coordinator" class="textfield" value="<?php echo $form_coordinator; ?>" />
  289.     </p>
  290. <p>
  291.     <label for="project_partners"><?php echo mb_ucfirst(_t('project','partners')); ?> : </label>
  292.     <input name="project_partners" type="text" maxlength="250" id="project_partners" class="textfield" value="<?php echo $form_partners; ?>" />
  293.     </p>
  294. <p>
  295.     <label for="project_begin_date"><?php echo mb_ucfirst(_t('project','begin_date')); ?> : </label>
  296.     <input name="project_begin_date" type="text" maxlength="10"    id="project_begin_date" class="date-pick shorttextfield" value="<?php echo $form_begin_date; ?>" />
  297. </p>
  298. <p>
  299.     <label for="project_estimated_date"><?php echo mb_ucfirst(_t('project','estimated_date')); ?> : </label>
  300.     <input name="project_estimated_date" type="text" maxlength="10" id="project_estimated_date"    class="date-pick shorttextfield"    value="<?php echo $form_estimated_date; ?>" />
  301. </p>
  302. <p>
  303.     <label for="project_end_date"><?php echo mb_ucfirst(_t('project','end_date')); ?> : </label>
  304.     <input name="project_end_date" type="text" maxlength="10" id="project_end_date" class="date-pick shorttextfield" value="<?php echo $form_end_date; ?>" />
  305. </p>
  306. <div>
  307.     <label for="project_progression"><?php echo mb_ucfirst(_t('project','progression')); ?> : </label>
  308.     <div id="project_slider"></div><div id="progression_value"></div>
  309.     <input type="text" name="project_progression" id="project_progression" value="<?php echo $form_progression; ?>" maxlength="3" class="shorttextfield"  />
  310. </div>
  311. <p>
  312.     <label for="project_priority_id"><?php echo mb_ucfirst(_t('project','priority')); ?> : *</label>
  313.     <?php echo $select_priority; ?>
  314. </p>
  315. <p>
  316.     <label for="project_theme_id"><?php echo mb_ucfirst(_t('project','theme')); ?> : </label>
  317.      <?php echo $select_theme; ?>
  318. </p>
  319. <p>
  320.     <label for="project_theme_id"><?php echo mb_ucfirst(_t('project','workshop')); ?> : </label>
  321.     <?php echo $select_workshop; ?>
  322. </p>
  323. <p>
  324.     <label for="project_scale_id"><?php echo mb_ucfirst(_t('project','scale')); ?> : *</label>
  325.     <?php echo $select_scale; ?>
  326. </p>
  327. <p>
  328.     <label for="choose_sdi"><?php echo mb_ucfirst(_t('project','sdi')); ?> : </label>
  329.     <?php echo $select_sdi; ?>
  330. </p>
  331. <div class="label"><?php echo mb_ucfirst(_t('project','statut')); ?> : </div>
  332.     <div class="rightpanel">
  333.         <input name="project_statut" type="radio" id="statut_P" value="P" <?php echo $mask_statut_P; ?> />
  334.         <label for="statut_P"><?php echo mb_ucfirst(_t('statut','public')); ?></label>
  335.         <input name="project_statut" type="radio" id="statut_D" value="D" <?php echo $mask_statut_D; ?> />
  336.         <label for="statut_D"><?php echo mb_ucfirst(_t('statut','draft')); ?></label>
  337.     </div>
  338.  
  339. <div>
  340. <input name="rub" type="hidden" value="<?php echo $rub; ?>" id="rub" />
  341. <input name="todo" type="hidden" value="<?php echo $todo; ?>" id="todo" />
  342. <?php echo cancel_button('javascript:history.go(-1);'); ?>
  343. <input name="valider" type="submit" value="<?php echo _t('btn','valid') ?>" class="button" id="valider" />
  344. </div>
  345. </form>
  346. </div>
  347.     <?php include_once(override($dir.'/help.php', THEME_ADMIN_PATH)); ?></div>
  348.     <?php
  349.     // Récapitulatif
  350. } else    {
  351.  
  352.   if($form_theme_id != -1) {
  353.     $requete=SQL_getonethemeName($form_theme_id);
  354.     $result=$sql_object->DBSelect($requete);
  355.     if($result==0 || count($result)!=1) exit;
  356.     else $theme_denomination=formatText($result[0]['theme_name'], '2HTML');
  357.   } else $theme_denomination=_t('divers','none');
  358.  
  359.   $query=SQL_getonescaleDenomination($form_scale_id);
  360.   $result=$sql_object->DBSelect($query);
  361.   if($result==0 || count($result)!=1) exit;
  362.   else $scale_denomination=formatText($result[0]['scale_denomination'], '2HTML');
  363.  
  364.   $query=SQL_getonepriorityName($form_priority_id);
  365.   $result=$sql_object->DBSelect($query);
  366.   if($result==0 || count($result)!=1) exit;
  367.   else $priority_name=formatText($result[0]['priority_name'], '2HTML');
  368.  
  369.   if($form_parent_id != -1) {
  370.     $query=SQL_getProjectName($form_parent_id);
  371.     $result=$sql_object->DBSelect($query);
  372.     if($result==0 || count($result)!=1) exit;
  373.     else $parent_name=formatText($result[0]['project_name'], '2HTML');
  374.   } else $parent_name=_t('divers','none');
  375.  
  376.   if($form_workshop_id != -1) {
  377.     $query=SQL_getWorkshopName($form_workshop_id);
  378.     $result=$sql_object->DBSelect($query);
  379.     if($result==0 || count($result)!=1) exit;
  380.     else $workshop_name=formatText($result[0]['workshop_denomination'], '2HTML');
  381.   } else $workshop_name=_t('divers','none');
  382.  
  383.   if(count($form_sdi) > 0) {
  384.     $sdi_list='<ul style="padding:0">';
  385.     foreach ($form_sdi as &$value) {
  386.       $query=SQL_getSdiName($value);
  387.       $result = $sql_object->DBSelect($query);
  388.       if($result==0 || count($result)!=1) exit;
  389.       else $sdi_list.= '<li>'.formatText($result[0]['sdii_name'], '2HTML').'</li>'.END_LINE;
  390.     }
  391.     $sdi_list.='</ul>';
  392.   } else $sdi_list=_t('divers','none');
  393.  
  394.   ?>
  395. <div class="contentcontainer"><?php
  396. include_once(override($dir.'/menurub.php', THEME_ADMIN_PATH));
  397. ?>
  398. <div id="content">
  399. <h2><?php echo formatTitleh2(_t('recap','title')); ?></h2>
  400. <?php
  401. echo "<dl class=\"summary\">\n";
  402. echo "<dt>".mb_ucfirst(_t('project','name'))." :</dt>\n";
  403. echo "<dd>". $form_name."</dd>\n";
  404. echo "<dt>".mb_ucfirst(_t('project','parent'))." :</dt>\n";
  405. echo "<dd>". $parent_name."</dd>\n";
  406. echo "<dt>".mb_ucfirst(_t('project','description')). " :</dt>\n";
  407. echo "<dd>".empty_nc(linkin_content($form_description))."</dd>\n";
  408. echo "<dt>".mb_ucfirst(_t('project','body'))." :</dt>\n";
  409. echo "<dd>".linkin_content($form_body)."</dd>\n";
  410. echo "<dt>".mb_ucfirst(_t('project','budget'))." :</dt>\n";
  411. echo "<dd class=\"money\">".empty_nc(fnumber_format($form_budget, 0, false))."</dd>\n";
  412. echo "<dt>".mb_ucfirst(_t('project','coordinator'))." :</dt>\n";
  413. echo "<dd>".empty_nc($form_coordinator)."</dd>\n";
  414. echo "<dt>".mb_ucfirst(_t('project','partners'))." :</dt>\n";
  415. echo "<dd>".empty_nc($form_partners)."</dd>\n";
  416. echo "<dt>".mb_ucfirst(_t('project','begin_date'))." :</dt>\n";
  417. echo "<dd>".empty_nc($form_begin_date)."</dd>\n";
  418. echo "<dt>".mb_ucfirst(_t('project','estimated_date'))." :</dt>\n";
  419. echo "<dd>".empty_nc($form_estimated_date)."</dd>\n";
  420. echo "<dt>".mb_ucfirst(_t('project','end_date'))." :</dt>\n";
  421. echo "<dd>".empty_nc($form_end_date)."</dd>\n";
  422. echo "<dt>".mb_ucfirst(_t('project','progression'))." :</dt>\n";
  423. echo "<dd>".getProgressbar($form_progression, 100, '%')."</dd>\n";
  424. echo "<dt>".mb_ucfirst(_t('project','priority'))." :</dt>\n";
  425. echo "<dd>".$priority_name."</dd>\n";
  426. echo "<dt>".mb_ucfirst(_t('project','theme'))." :</dt>\n";
  427. echo "<dd>".$theme_denomination."</dd>\n";
  428. echo "<dt>".mb_ucfirst(_t('project','scale'))." :</dt>\n";
  429. echo "<dd>".$scale_denomination."</dd>\n";
  430. echo "<dt>".mb_ucfirst(_t('project','workshop'))." :</dt>\n";
  431. echo "<dd>".$workshop_name."</dd>\n";
  432. echo "<dt>".mb_ucfirst(_t('project','sdi'))." :</dt>\n";
  433. echo "<dd>".empty_none($sdi_list)."</dd>\n";
  434. echo "<dt>".mb_ucfirst(_t('divers','statut'))." :</dt>\n";
  435. echo "<dd>". display_statut($_POST['project_statut']). "</dd>\n";
  436. echo "</dl>\n";
  437. ?>
  438. <form id="addproject" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
  439.   <div>
  440.     <input name="rub" type="hidden" value="<?php echo $rub; ?>" id="rub" />
  441.     <input name="todo" type="hidden" value="<?php echo $todo; ?>" id="todo" />
  442.     <input name="data_table" type="hidden" value="<?php echo $a; ?>" id="data_table" />
  443.     <?php echo cancel_button('?rub_project&amp;todo=list'); ?>
  444.     <input name="retour" type="button" value="<?php echo _t('btn','preview'); ?>" class="button" id="retour" onclick="history.go(-1);" />
  445.     <input name="enregistrer" type="submit" value="<?php echo _t('btn','save'); ?>" class="button" id="valider" />
  446.   </div>
  447. </form>
  448. </div>
  449. <?php include_once(override($dir.'/help.php', THEME_ADMIN_PATH)); ?></div>
  450. <?php
  451. }
  452. ?>

Documentation generated on Thu, 20 Mar 2014 16:45:52 +0100 by phpDocumentor 1.4.1