noalyss Version-9
follow_up-display.php
Go to the documentation of this file.
1<?php
2
3//This file is part of NOALYSS and is under GPL
4//see licence.txt
5$uniq=uniqid("tab",TRUE);
7?>
8<div>
9 <?php
10 \Noalyss\Dbg::echo_file(__FILE__);
11 ?>
12<div class="row m-0">
13
14<div class="col">
15 <table>
16 <tr class="highlight">
17 <TD>
18 <?php echo _('N° document')?>
19 </TD>
20 <TD >
21 <?php echo $this->ag_id;?>
22 </TD>
23 </TR>
24 <tr>
25 <TD>
26 <?php echo _('Reference')?>
27 </TD>
28 <TD>
29 <?php echo $str_ag_ref;
30 ?>
31 </TD>
32 </TR>
33 <tr>
34 <TD>
35 <?php echo _('Type')?>
36 </TD>
37 <TD>
38 <?php echo $str_doc_type;
39 ?>
40 </TD>
41 </tr>
42 <tr>
43
44 <tr>
45 <TD>
46 <?php echo _('Concerne')?>
47 </TD>
48 <TD>
49 <?php echo $w->search().$w->input();
50 ?>
51 </td>
52 </tr>
53 <tr class="font-weight-bolder" style="background: lightsteelblue;color:navy">
54 <td style="width: auto" colspan="2" >
55 <?=$sp->input()?>
56 </td>
57 </Tr>
58 <tr>
59 <TD>
60 <?php echo _('Contact')?>
61 </TD>
62
63 <TD>
64 <?php
65 if ($g_user->can_write_action($this->ag_id) == true ):
66 if ( $ag_contact->extra != "" ):
67 echo $ag_contact->search().$ag_contact->input();
68 else:
69 echo _('Pas de catégorie de contact');
71 endif;
72
73 ?>
74 </td>
75 </tr>
76 <tr class="font-weight-bolder" style="background: lightsteelblue;color:navy;opacity: 0.8">
77 <td style="width: auto" colspan="2">
78 <?php //nom autre contact
79 echo $spcontact->input();
80 ?>
81 </td>
82
83 </Tr>
84<?php
85//----------------------- Video Conf --------------------------------------------------------------------------------
86if (Document_Option::is_enable_video_conf($this->dt_id)):?>
87 <tr>
88 <td><?=_("VideoConf")?></td>
89 <td><A href="<?=Document_Option::option_video_conf($this->dt_id)?>" target="_blank">
90 <?=_("Salle de réunion")?>
91 </a>
92 </tr>
93<?php endif;?>
94 <tr>
95 <TD colspan="2">
96 <?php echo $spcontact->input(); ?>
97 </td>
98 </Tr>
99<?php
100//----------------------- Contact Multiple ----------------------------------------------------------------------------
101if ($this->ag_id > 0 && Document_Option::is_enable_contact_multiple($this->dt_id)):
102 ?>
103 <tr>
104 <td>
105 <?php echo _('Autres concernés')?>
106 </td>
107 <td id="concerned_card_td">
108 <?php
109 $followup_other_concerned=new Follow_Up_Other_Concerned($this->db,$this->ag_id);
110 echo $followup_other_concerned->display_linked_count();
111 if ($p_view != 'READ' && $g_user->can_write_action($this->ag_id) == true ):
112 echo $followup_other_concerned->button_action_add_concerned_card();
113 endif;
114 ?>
115 </td>
116 <td>
117 <?php
118 $csv="export.php?".
119 http_build_query(["gDossier"=>Dossier::id(),
120 "act"=>"CSV:FollowUpContactOption",
121 "ag_id"=>$ag_id]);
122 echo HtmlInput::anchor(_("Export CSV"), $csv,"",' class="line" title="Export Contacts options"');
123 ?>
124 </td>
125 </tr>
126 <?php endif; ?>
127 </table>
128 <?php if ($p_view != 'READ') echo $str_add_button;?>
129</div>
130
131
132<div class="col">
133 <table>
134
135
136 <TD>
137 <?php echo _('Date')?>
138 </TD>
139 <TD>
140 <?php echo $date->input();
141 ?>
142 </TD>
143 </TR>
144 <TR>
145 <TD>
146 <?php echo _('Heure')?>
147 </TD>
148 <TD>
149 <?php echo $str_ag_hour;
150 ?>
151 </TD>
152 </TR>
153 <tr>
154 <TR>
155 <TD>
156 <?php echo _('Date limite')?>
157 </TD>
158 <TD>
159 <?php echo $remind_date->input();
160 ?>
161 </TD>
162 </TR>
163 <tr>
164 <TD>
165 <?php echo _('Etat')?>
166 </TD>
167 <td>
168 <?php echo $str_state;
169 ?>
170 <TD>
171 </TD>
172 </TR>
173 <tr>
174 <TD>
175 <?php echo _('Priorité')?>
176 </TD>
177 <td>
178 <?php echo $str_ag_priority;
179 ?>
180 <TD>
181 </TD>
182 </TR>
183 <tr>
184 <TD>
185 <?php echo _('Groupe Gestion')?>
186 </TD>
187 <td>
188 <?php echo $str_ag_dest;?>
189 </tr>
190<?php if ($this->ag_id > 0 ): ?>
191 <tr>
192 <TD>
193 Dossier / Etiquette
194 </TD>
195
196 <td id="action_tag_td" style="max-width:35rem">
197 <?php
198 $this->tag_cell($p_view);
199 ?>
200 </td>
201 </TR>
202<?php endif; ?>
203 </table>
204
205</div>
206
207<div id="choice_other_info_div" class="col-12 col-lg-6">
208 <div class="row">
209
210 <ul class="tabs noprint" >
211 <li id="related_action_tab<?php echo $uniq?>" class="tabs_selected"><?php echo _("Actions concernées")?></li>
212 <li id="related_operation_tab<?php echo $uniq?>" class="tabs"><?php echo _('Opérations concernées')?></li>
213 <li id="dependant_action_tab<?php echo $uniq?>" class="tabs"><?php echo _('Dépendant')?></li>
214 </ul>
215 </div>
216 <div class="row">
217 <div id="related_operation_div<?php echo $uniq?>" style="display:none;" class="print concerned_action">
218 <?php if ($p_view != 'READ') echo '<span class="noprint">'.$iconcerned->input().'</span>';?>
219 <ol>
220
221 <?php
222 for ($o=0;$o<count($operation);$o++)
223 {
224 if ( $p_view != 'READ')
225 {
227 echo '<li id="op'.$operation[$o]['ago_id'].'">'.$operation[$o]['str_date']." ".HtmlInput::detail_op($operation[$o]['jr_id'],$operation[$o]['jr_internal'])." ".h($operation[$o]['jr_comment'])." "
228 .$js.'</li>';
229 }
230 else
231 {
232 echo '<li >'.$operation[$o]['str_date']." ".HtmlInput::detail_op($operation[$o]['jr_id'],$operation[$o]['jr_internal'])." ".h($operation[$o]['jr_comment'])." "
233 .'</li>';
234 }
235 }
236
237
238
239 ?>
240 </ol>
241
242 </div>
243 <div id="related_action_div<?php echo $uniq?>" class="print concerned_action" style="width: 95%" >
244 <div class="" style="display:block">
245 <div>
246
247 <?php if ( $p_view != 'READ') echo $iaction->input();?>
248 <?=\Icon_Action::detail('SmallDetailActionChildren'.$uniq.'_bt', "$('related_action_div{$uniq}').addClassName('FullDetailActionChildren');$('FullDetailActionChildren{$uniq}_bt').show();$('SmallDetailActionChildren{$uniq}_bt').hide()")?>
249 <?php
250 echo \Icon_Action::hide_icon("FullDetailActionChildren{$uniq}_bt"
251 , "$('related_action_div{$uniq}').removeClassName('FullDetailActionChildren');$('FullDetailActionChildren{$uniq}_bt').hide();$('SmallDetailActionChildren{$uniq}_bt').show()");?>
252 </div>
253 <?php
254 $this->display_children($p_view,$p_base);
255
256 ?>
257 <script>$('FullDetailActionChildren<?=$uniq?>_bt').hide()</script>
258 </div>
259 </div>
260 <div id="dependant_action_div<?php echo $uniq?>" style="display:none" class="print concerned_action">
261 <?php
262 //@todo a enlever obsolete
263 $this->display_parent($p_view,$p_base);
264 ?>
265 </div>
266 </div>
267</div>
268
269</div>
270</div>
271<div style="clear: both"></div>
272<div id="div_action_description">
273
274 <p>
275<script language="javascript">
276 function enlarge(p_id_textarea){
277 $(p_id_textarea).style.height=$(p_id_textarea).style.height+250+'px';
278 $('bt_enlarge').style.display="none";
279 $('bt_small').style.display="inline";
280 }
281function small(p_id_textarea){
282 $('bt_enlarge').style.display="inline";
283 $('bt_small').style.display="none";
284
285 }
286</script>
287 <p style="margin-left:5%;">
288 <?php echo $title->input();
289 ?>
290</p>
291 <div class="nicEdit-main">
292 <?php
293/**********************************************************************************************************************
294 * Start BLOCK Comment and description
295 **********************************************************************************************************************/
296?>
297 <?php
298 $style_enl='style="display:inline"';$style_small='style="display:none"';
299 // description
300 $description = new ITextarea("ag_description");
301 $description->set_enrichText("enrich");
302 $description->id="ag_description";
304 //---------------------------------- Description -------------------------------------------------------------------
305 // if there are comments then the first one is the description
306 if ( count($acomment)> 0) {
307 $has_description = true;
308 $editable_description = Document_Option::is_enable_editable_description($this->dt_id);
309 // if editable and the description can be changed
310 if ( $p_view != 'READ' && $editable_description == true){
311 echo h2(_("Description"));
312 $itDescription=new ITextarea("ag_description");
313 $itDescription->style='class="input_text field_follow_up" style="height:21rem;width:98%;margin-left:1em;"';
314 $itDescription->set_enrichText('enrich');
315 $ag_description_id= $acomment[0]['agc_id'];
316 $itDescription->value=$acomment[0]['agc_comment_raw'];
317 $itDescription->id="ag_description";
318 echo \HtmlInput::hidden("ag_description_id",$acomment[0]['agc_id']);
319
320 echo $itDescription->input();
321
322 }
323 elseif ($p_view == 'READ' || $editable_description == false)
324 {
325 echo h2(_("Description"));
326 echo '<div class="nicEdit-main field_follow_up" style="margin-left:5%;margin-bottom:1rem;width:90%;">';
327 echo $acomment[0]['agc_comment_raw'];
328 echo '</div>';
329 echo '</pre>';
330 }
331 } elseif ( count($acomment)> 0 && $p_view != 'READ') {
332 // there is no comments so there is no description, just input one
333 echo h2(_("Description"));
334 $description->set_enrichText('enrich');
335 $description->style='style="height:250px;width:90%;"';
336 echo '<div class="textarea" style="margin-left:5%;margin-right:5%;margin-bottom:1rem;width:90%;">';
337 echo $description->input();
338 echo '</div>';
339 } elseif ( $p_view != 'READ' ) {
340 // no description and no comment it is a new document
341
342 echo h2(_("Description"));
343 $description->set_enrichText('enrich');
344 $description->style='style="height:250px;width:90%;"';
345 echo '<div class="textarea" style="margin-left:5%;margin-right:5%;margin-bottom:1rem;width:90%;">';
346 echo $description->input();
347 echo '</div>';
348 }
349 // link to files to download
350 $aFile=$this->db->get_array('select d_id,d_filename,d_description,d_mimetype
351 from action_comment_document
352 join document on (d_id=document_id) where action_gestion_comment_id=$1'
353 , array($this->ag_id));
354 if ( ! empty ($aFile)) {
355 echo '<div style="left:10%">';
356 echo _("Fichiers :");
357 foreach ($aFile as $file)
358 {
359 $url="export.php?".http_build_query(array("act"=>'RAW:document'
360 ,"gDossier"=>$dossier_id
361 ,"d_id"=>$file["d_id"]));
362 printf('<a class="print_line" href="%s">%s</a>',
363 $url,h($file['d_filename']));
364
365 }
366 echo '</div>';
367 }
368
369 //---------------------------------- Comment -----------------------------------------------------------------------
370
372 Document_Option::option_comment($this->dt_id) == "ONE_EDIT" )
373 {
374 if (count($acomment) > 1 ) {
375 echo h2(_("Commentaire"));
376 $comment=new ITextarea("ag_comment_edit");
377 $comment->set_enrichText("plain");
378 $comment->style='class="input_text field_follow_up" style="height:21rem;width:98%;margin-left:5%;"';
379
380 $ag_comment_id= (count($acomment) > 1)?$acomment[1]['agc_id']:-1;
381 $comment->value=(count($acomment) > 1 )?$acomment[1]['agc_comment']:'';
382 $comment->id="ag_comment_edit";
383
384 if ( $p_view != 'READ') {
385
386 // One editable comment is available
387 $editable_comment=new Inplace_Edit($comment);
388 $editable_comment->add_json_param("op", "followup_comment_oneedit");
389 $editable_comment->add_json_param("agc_id", $ag_comment_id);
390 $editable_comment->add_json_param("ag_id", $ag_id);
391 $editable_comment->add_json_param("gDossier", Dossier::id());
392 $editable_comment->set_callback("ajax_misc.php");
393 echo '<p></p>';
394 echo $editable_comment->input();
395 } else {
396 echo '<p></p>';
397 echo $comment->display();
398 }
399 } else {
400 // new comment
401 echo '<span class="noprint">';
402 if ( $p_view == 'UPD' && $has_description && Document_Option::can_add_comment($ag_id) ) {
403 echo h2(_("Commentaire"));
404 echo '<p></p>';
405 // if comment are editable it will be in
406 if ( Document_Option::option_comment($this->dt_id) == "ONE_EDIT") $desc->set_enrichText("plain");
407 echo $desc->input();
408
409 }
410 echo '</span>';
411 }
412 }
413
414 if ( count($acomment) > 0
416 && Document_Option::option_comment($this->dt_id) == "SOME_FIXED")
417 {
418 echo h2(_("Commentaire"));
419
420 for( $c=1;$c<count($acomment);$c++){
421 $m_desc=_('Commentaire');
422 $comment="";
423 $comment_style='style="margin-left:5%;margin-bottom:auto;width:90%;font-weight:bold"';
424 if ( $p_view != 'READ' && $c > 0)
425 {
426 $rmComment=sprintf("return confirm_box(null,'"._('Voulez-vous effacer ce commentaire').
427 " ?',function() {remove_comment('%s','%s');});",
428 dossier::id(),
429 $acomment[$c]['agc_id']);
430 $js=Icon_Action::trash("accom".$acomment[$c]['agc_id'], $rmComment);
431 $comment=span( h($m_desc.' '.$acomment[$c]['agc_id'].'('.$acomment[$c]['tech_user']." ".
432 $acomment[$c]['str_agc_date'].')'),$comment_style).$js.
433 '<div class="nicEdit-main field_follow_up" style="margin-left:5%;margin-bottom:auto;width:90%" id="com'.$acomment[$c]['agc_id'].'"> '.
434 " ".$acomment[$c]['agc_comment_raw'].'</div>'
435 ;
436
437 }
438 else
439 {
440 $comment=span(h($m_desc.' '.$acomment[$c]['agc_id'].'('.$acomment[$c]['tech_user']." ".
441 $acomment[$c]['str_agc_date'].')'),$comment_style).
442 '<div class="field_follow_up" id="com'.$acomment[$c]['agc_id'].'"> '.
443 " ".$acomment[$c]['agc_comment_raw'].'</div>'
444 ;
445
446
447 }
448 $comment=preg_replace('/ #([0-9]+)/',' <a class="line" href="javascript:void()" onclick="view_action(\1,'.
449 Dossier::id().',0)" >\1</a>',$comment);
450 echo '<p></p>';
451 echo $comment;
452 // link to files to download
453 $aFile=$this->db->get_array('select d_id,d_filename,d_description,d_mimetype
454 from action_comment_document
455 join document on (d_id=document_id) where action_gestion_comment_id=$1'
456 , array( $acomment[$c]['agc_id']));
457 if ( ! empty ($aFile)) {
458 echo '<div style="left:10%">';
459 echo _("Fichiers :");
460 foreach ($aFile as $file)
461 {
462 $url="export.php?".http_build_query(array("act"=>'RAW:document'
463 ,"gDossier"=>$dossier_id
464 ,"d_id"=>$file["d_id"]));
465 printf('<a class="print_line" href="%s">%s</a>',
466 $url,h($file['d_filename']));
467
468 }
469 echo '</div>';
470 }
471
472 } // end for
473 if ( $has_description && $p_view == 'UPD' && Document_Option::can_add_comment($ag_id)) {
474 echo '<span class="noprint">';
475 echo '<div style="margin-left:5%;margin-top:2.5rem">';
476 echo $desc->input();
477 echo '</div>';
478 }
479 echo '</span>';
480 if ($p_view == 'UPD') {
481
482 }
483 }
484
485
486
487
488?>
489
490 </div>
491</div>
492<?php
493/**********************************************************************************************************************
494 * START BLOCK Display Detail of follow up
495 *
496 **********************************************************************************************************************/
497?>
498<?php
499// Display detail if detail_operation is set
500if ( $this->ag_id > 0 && Document_Option::is_enable_operation_detail($this->dt_id)) Follow_Up_Detail::display($this,$p_view);
501
502?>
503<?php
504/**********************************************************************************************************************
505 * END BLOCK Display Detail of follow up
506 **********************************************************************************************************************/
507?>
508
509<div style="clear:both"></div>
510<?php if ($p_view != 'READ') : ?>
511 <div class="noprint">
512 <h3 >Fichiers à ajouter: </h3>
513 <ol id='add_file' >
514 <li>
515 <?php echo $upload->input();
516 ?>
517
518 <?php
519 $js="document.getElementById('add_file').removeChild(this.parentNode)";
520 echo Icon_Action::trash(uniqid(),$js);
521 ?>
522 </li>
523 </ol>
524 <span >
525 <input type="button" class="smallbutton" onclick="addFiles();" value="<?php echo _("Ajouter un fichier")?>">
526 </span>
527<script language="javascript">
528function addFiles() {
529try {
530 docAdded=document.getElementById('add_file');
531 new_element=document.createElement('li');
532 new_element.innerHTML='<input class="inp" type="file" value="" multiple name="file_upload[]"/>';
533
534 new_element.innerHTML+='<span id="<?=uniqid("file")?>" onclick="document.getElementById(\'add_file\').removeChild(this.parentNode)" class="icon">&#xe80f;</span>';
535
536
537
538 docAdded.appendChild(new_element);
539}
540catch(exception) { alert('<?php echo j(_('Je ne peux pas ajouter de fichier'))?>'); alert(exception.message);}
541}
542</script>
543 </div>
544<?php endif;?>
545
546<?php if (($p_view != 'READ' && $str_select_doc != '' )|| ! empty ($aAttachedFile)) : ?>
547<div id="div_action_attached_doc">
548 <h2>
549 <?php
550 echo _('Pièces attachées');
551 printf("(%s)",count($aAttachedFile));
552 ?>
553 </h2>
554 <div class="noprint">
555 <?php
556/**********************************************************************************************************************
557 * start BLOCK generate document
558 **********************************************************************************************************************/
559?>
560
561 <?php if ($p_view != 'READ' && $str_select_doc != '') : ?>
562 <?php echo _('Document à générer')?>
563
564 <?php echo $str_select_doc;
565 echo $str_submit_generate;
566
567endif; ?>
568
569<?php
570/**********************************************************************************************************************
571 * end BLOCK generate document
572 **********************************************************************************************************************/
573?>
574 </div>
575 <?php
576 if ( ! empty ($aAttachedFile)) :
577 ?>
578 <div id="icon_show_file_div_id<?=$uniq?>">
579 <?php
580 /** Start Block Document **/
581 printf ("Voir tous les fichiers");
582
583 echo \Icon_Action::show_icon(uniqid(), "$('all_attached_files_div{$uniq}').show();$('icon_show_file_div_id{$uniq}').hide()");
584 ?>
585 </div>
586 <div class="print" style="display: none" id="all_attached_files_div<?=$uniq?>">
587 <?php
588 echo "Cacher les fichiers";
589 echo \Icon_Action::hide_icon(uniqid(), "$('all_attached_files_div{$uniq}').hide();$('icon_show_file_div_id{$uniq}').show()")
590 ?>
591 <table>
592 <?php
593for ($i=0;$i<sizeof($aAttachedFile);$i++) :
594 ?>
595
596 <tr>
597 <td>
598 <A class="print line" style="display:inline" id="<?php echo "doc".$aAttachedFile[$i]['d_id'];?>" href="<?php echo $aAttachedFile[$i]['link']?>">
599 <?php echo $aAttachedFile[$i]['d_filename'];?> </a>
600 </td>
601 <td>
602 <label> : </label>
603 <?php
604 // Description of the file
605 if ($p_view != 'READ') :
606 $description=new IText("value");
607 $description->id="input_desc_txt".$aAttachedFile[$i]['d_id'];
608 $description->value=h($aAttachedFile[$i]['d_description']);
609 $inplace_description=new Inplace_Edit($description);
610 $inplace_description->set_callback("ajax_misc.php");
611 $inplace_description->add_json_param("d_id", $aAttachedFile[$i]['d_id']);
612 $inplace_description->add_json_param("gDossier", Dossier::id());
613 $inplace_description->add_json_param("op", "update_comment_followUp");
614 echo $inplace_description->input();
615 else:
616 echo h($aAttachedFile[$i]['d_description']);
617 endif;
618 ?>
619<?php $rmDoc=sprintf("return confirm_box(null,'"._('Voulez-vous effacer le document')." %s' , function(){remove_document('%s','%s');});",
620 $aAttachedFile[$i]['d_filename'],
621 dossier::id(),
622 $aAttachedFile[$i]['d_id']);
623 ?>
624 </td>
625 <td>
626 <?php if ($p_view != 'READ') : ?> <span class="icon" id="<?php echo "ac".$aAttachedFile[$i]['d_id'];?>" href="javascript:void(0)" onclick="<?php echo $rmDoc;?>">&#xe80f;</span><?php endif;?>
627 </td>
628 </tr>
629 <?php
630endfor;
631
632 ?>
633 </table>
634
635 </div>
636 <div>
637<?php
638 /*** Propose to download all document in only one step */
639 $url="export.php?".http_build_query([
640 'ac'=>"FOLLOW",
641 "act"=>"RAW:document",
642 "gDossier"=>Dossier::id(),
643 "d_id"=>0,
644 "ag_id"=>$this->ag_id,
645 "a"=>"dwnall"]);
646 echo HtmlInput::button_anchor(_("Télécharger toutes les documents"), "", uniqid(),sprintf("onclick=\"download_document('%s')\"",$url));
647
648endif;?>
649 </div>
650
651</div>
652<?php endif;?>
653<?php if ($p_view != 'NEW') : ?>
654Document créé le <?php echo $this->ag_timestamp ?> par <?php echo $this->ag_owner?>
655<?php endif; ?>
656
657</div>
658
659<script>
660 $('related_action_tab<?php echo $uniq?>').onclick=function() {
661 $('related_action_tab<?php echo $uniq?>').className='tabs_selected';
662 $('related_operation_tab<?php echo $uniq?>').className='tabs';
663 $('dependant_action_tab<?php echo $uniq?>').className='tabs';
664 $('related_operation_div<?php echo $uniq?>').hide();
665 $('dependant_action_div<?php echo $uniq?>').hide();
666 $('related_action_div<?php echo $uniq?>').show();
667 } ;
668 $('related_operation_tab<?php echo $uniq?>').onclick=function() {
669 $('related_operation_tab<?php echo $uniq?>').className='tabs_selected';
670 $('related_action_tab<?php echo $uniq?>').className='tabs';
671 $('dependant_action_tab<?php echo $uniq?>').className='tabs';
672 $('related_action_div<?php echo $uniq?>').hide();
673 $('dependant_action_div<?php echo $uniq?>').hide();
674 $('related_operation_div<?php echo $uniq?>').show();
675 } ;
676 $('dependant_action_tab<?php echo $uniq?>').onclick=function() {
677 $('dependant_action_tab<?php echo $uniq?>').className='tabs_selected';
678 $('related_action_tab<?php echo $uniq?>').className='tabs';
679 $('related_operation_tab<?php echo $uniq?>').className='tabs';
680 $('related_operation_div<?php echo $uniq?>').hide();
681 $('related_action_div<?php echo $uniq?>').hide();
682 $('dependant_action_div<?php echo $uniq?>').show();
683 } ;
684</script>
h2($p_string, $p_class="", $raw="")
Definition: ac_common.php:68
span($p_string, $p_extra='')
Definition: ac_common.php:43
tr($p_string, $p_extra='')
Definition: ac_common.php:88
p($p_string)
Definition: ac_common.php:39
td($p_string='', $p_extra='')
surround the string with td
Definition: ac_common.php:83
alert($p_msg, $buffer=false)
alert in javascript
Definition: ac_common.php:738
global $g_user
if no group available , then stop
$ag_id
Definition: action.inc.php:54
h( $row[ 'oa_description'])
$url
$ret label
$opd_description style
$fl ag_id
foreach($array as $idx=> $m) $w
$input_from type
Definition: balance.inc.php:65
static is_enable_editable_description($p_document_type)
returns true if it is possible to edit the description , otherwise false
static can_add_comment($p_id)
Returns true if we can add a comment , or false if it is not possible.
static is_enable_video_conf($p_document_type)
returns true there is a videoconf enable
static is_enable_contact_multiple($p_document_type)
returns true if the operation_detail is enable, otherwise false
static option_comment($p_document_type)
returns option from the operation_detail
static is_enable_operation_detail($p_document_type)
returns true if the operation_detail is enable, otherwise false
Class Document corresponds to the table document.
manage the current dossier, everywhere we need to know to which folder we are connected,...
static id()
return the 'gDossier' value after a check
static display(Follow_Up $p_follow_up, $p_view)
Others concerned card in an action.
static detail_op($p_jr_id, $p_mesg)
return a string containing the html code for calling the modifyOperation
static button_action_remove_operation($p_operation)
static anchor($p_text, $p_url="", $p_js="", $p_style=' class="line" ', $p_title="click", array $p_attribute=[])
Return a simple anchor with a url or a javascript if $p_js is not null then p_url will be javascript:...
static button_anchor($p_label, $p_value, $p_name="", $p_javascript="", $p_class="smallbutton")
create a button with a ref
Html Input.
Definition: itext.class.php:30
Manage the TEXTAREA html element.
static detail($p_id, $p_javascript)
static trash($p_id, $p_javascript)
Display the icon of a trashbin.
Inplace_edit class for ajax update of HtmlInput object.
$all table
$SecUser db
$description id
if(count($acomment)> 0) elseif(count( $acomment)> 0 &&$p_view !='READ') elseif( $p_view !='READ') $aFile
$has_description
$dossier_id
if( $delta< 0) elseif( $delta==0)
endfor