dolibarr 19.0.3
recruitmentjobposition_card.php
Go to the documentation of this file.
1<?php
2/* Copyright (C) 2017 Laurent Destailleur <eldy@users.sourceforge.net>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <https://www.gnu.org/licenses/>.
16 */
17
24// Load Dolibarr environment
25require_once '../main.inc.php';
26require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
27require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
28require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
29require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
30require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php';
31require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment_recruitmentjobposition.lib.php';
32
33// Load translation files required by the page
34$langs->loadLangs(array("recruitment", "other"));
35
36// Get parameters
37$id = GETPOST('id', 'int');
38$ref = GETPOST('ref', 'alpha');
39$action = GETPOST('action', 'aZ09');
40$confirm = GETPOST('confirm', 'alpha');
41$cancel = GETPOST('cancel', 'aZ09');
42$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'recruitmentjobpositioncard'; // To manage different context of search
43$backtopage = GETPOST('backtopage', 'alpha');
44$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha');
45$lineid = GETPOST('lineid', 'int');
46
47// Initialize technical objects
48$object = new RecruitmentJobPosition($db);
49$extrafields = new ExtraFields($db);
50$diroutputmassaction = $conf->recruitment->dir_output.'/temp/massgeneration/'.$user->id;
51$hookmanager->initHooks(array('recruitmentjobpositioncard', 'globalcard')); // Note that conf->hooks_modules contains array
52
53// Fetch optionals attributes and labels
54$extrafields->fetch_name_optionals_label($object->table_element);
55
56$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_');
57
58// Initialize array of search criterias
59$search_all = GETPOST("search_all", 'alpha');
60$search = array();
61foreach ($object->fields as $key => $val) {
62 if (GETPOST('search_'.$key, 'alpha')) {
63 $search[$key] = GETPOST('search_'.$key, 'alpha');
64 }
65}
66
67if (empty($action) && empty($id) && empty($ref)) {
68 $action = 'create';
69}
70
71// Load object
72include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once.
73
74
75$permissiontoread = $user->hasRight('recruitment', 'recruitmentjobposition', 'read');
76$permissiontoadd = $user->hasRight('recruitment', 'recruitmentjobposition', 'write'); // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php
77$permissiontodelete = $user->hasRight('recruitment', 'recruitmentjobposition', 'delete') || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT);
78$permissionnote = $user->hasRight('recruitment', 'recruitmentjobposition', 'write'); // Used by the include of actions_setnotes.inc.php
79$permissiondellink = $user->hasRight('recruitment', 'recruitmentjobposition', 'write'); // Used by the include of actions_dellink.inc.php
80$upload_dir = $conf->recruitment->multidir_output[isset($object->entity) ? $object->entity : 1];
81
82$usercanclose = $permissiontoadd;
83
84// Security check - Protection if external user
85//if ($user->socid > 0) accessforbidden();
86//if ($user->socid > 0) $socid = $user->socid;
87$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0);
88$result = restrictedArea($user, 'recruitment', $object->id, 'recruitment_recruitmentjobposition', 'recruitmentjobposition', '', 'rowid', $isdraft);
89
90
91/*
92 * Actions
93 */
94
95$parameters = array();
96$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
97if ($reshook < 0) {
98 setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
99}
100
101if (empty($reshook)) {
102 $error = 0;
103
104 $backurlforlist = dol_buildpath('/recruitment/recruitmentjobposition_list.php', 1);
105
106 if (empty($backtopage) || ($cancel && empty($id))) {
107 if (empty($backtopage) || ($cancel && strpos($backtopage, '__ID__'))) {
108 if (empty($id) && (($action != 'add' && $action != 'create') || $cancel)) {
109 $backtopage = $backurlforlist;
110 } else {
111 $backtopage = dol_buildpath('/recruitment/recruitmentjobposition_card.php', 1).'?id='.((!empty($id) && $id > 0) ? $id : '__ID__');
112 }
113 }
114 }
115 $triggermodname = 'RECRUITMENT_RECRUITMENTJOBPOSITION_MODIFY'; // Name of trigger action code to execute when we modify record
116
117 // Actions cancel, add, update, update_extras, confirm_validate, confirm_delete, confirm_deleteline, confirm_clone, confirm_close, confirm_setdraft, confirm_reopen
118 include DOL_DOCUMENT_ROOT.'/core/actions_addupdatedelete.inc.php';
119
120 // Actions when linking object each other
121 include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php';
122
123 // Actions when printing a doc from card
124 include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
125
126 // Action to move up and down lines of object
127 //include DOL_DOCUMENT_ROOT.'/core/actions_lineupdown.inc.php';
128
129 // Action to build doc
130 include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
131
132 if ($action == 'set_thirdparty' && $permissiontoadd) {
133 $object->setValueFrom('fk_soc', GETPOST('fk_soc', 'int'), '', '', 'date', '', $user, $triggermodname);
134 }
135 if ($action == 'classin' && $permissiontoadd) {
136 $object->setProject(GETPOST('projectid', 'int'));
137 }
138 if ($action == 'confirm_closeas' && $usercanclose && !GETPOST('cancel', 'alpha')) {
139 if (!(GETPOST('status', 'int') > 0)) {
140 setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CloseAs")), null, 'errors');
141 $action = 'closeas';
142 } else {
143 // prevent browser refresh from closing proposal several times
144 if ($object->status == $object::STATUS_VALIDATED) {
145 $db->begin();
146
147 $result = $object->cloture($user, GETPOST('status', 'int'), GETPOST('note_private', 'restricthtml'));
148 if ($result < 0) {
149 setEventMessages($object->error, $object->errors, 'errors');
150 $error++;
151 }
152
153 if (!$error) {
154 $db->commit();
155 } else {
156 $db->rollback();
157 }
158 }
159 }
160 }
161
162 // Actions to send emails
163 $triggersendname = 'RECRUITMENTJOBPOSITION_SENTBYMAIL';
164 $autocopy = 'MAIN_MAIL_AUTOCOPY_RECRUITMENTJOBPOSITION_TO';
165 $trackid = 'recruitmentjobposition'.$object->id;
166 include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php';
167}
168
169
170
171
172/*
173 * View
174 */
175
176$form = new Form($db);
177$formfile = new FormFile($db);
178$formproject = new FormProjets($db);
179
180$title = $object->ref." - ".$langs->trans('Card');
181$help_url = '';
182llxHeader('', $title, $help_url);
183
184// Part to create
185if ($action == 'create') {
186 print load_fiche_titre($langs->trans("NewPositionToBeFilled"), '', 'object_'.$object->picto);
187
188 print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
189 print '<input type="hidden" name="token" value="'.newToken().'">';
190 print '<input type="hidden" name="action" value="add">';
191 if ($backtopage) {
192 print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
193 }
194 if ($backtopageforcancel) {
195 print '<input type="hidden" name="backtopageforcancel" value="'.$backtopageforcancel.'">';
196 }
197
198 // Set some default values
199 if (!GETPOSTISSET('fk_user_recruiter')) {
200 $_POST['fk_user_recruiter'] = $user->id;
201 }
202
203 print dol_get_fiche_head(array(), '');
204
205 print '<table class="border centpercent tableforfieldcreate">'."\n";
206
207 // Common attributes
208 include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_add.tpl.php';
209
210 // Other attributes
211 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php';
212
213 print '</table>'."\n";
214
215 print dol_get_fiche_end();
216
217 print $form->buttonsSaveCancel("Create");
218
219 print '</form>';
220
221 //dol_set_focus('input[name="ref"]');
222}
223
224// Part to edit record
225if (($id || $ref) && $action == 'edit') {
226 print load_fiche_titre($langs->trans("PositionToBeFilled"), '', 'object_'.$object->picto);
227
228 print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
229 print '<input type="hidden" name="token" value="'.newToken().'">';
230 print '<input type="hidden" name="action" value="update">';
231 print '<input type="hidden" name="id" value="'.$object->id.'">';
232 if ($backtopage) {
233 print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
234 }
235 if ($backtopageforcancel) {
236 print '<input type="hidden" name="backtopageforcancel" value="'.$backtopageforcancel.'">';
237 }
238
239 print dol_get_fiche_head();
240
241 print '<table class="border centpercent tableforfieldedit">'."\n";
242
243 // Common attributes
244 include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_edit.tpl.php';
245
246 // Other attributes
247 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_edit.tpl.php';
248
249 print '</table>';
250
251 print dol_get_fiche_end();
252
253 print $form->buttonsSaveCancel();
254
255 print '</form>';
256}
257
258// Part to show record
259if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) {
260 $head = recruitmentjobpositionPrepareHead($object);
261 print dol_get_fiche_head($head, 'card', $langs->trans("RecruitmentJobPosition"), -1, $object->picto);
262
263 $formconfirm = '';
264
265 // Confirmation to delete
266 if ($action == 'delete') {
267 $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteRecruitmentJobPosition'), $langs->trans('ConfirmDeleteObject'), 'confirm_delete', '', 0, 1);
268 }
269 // Confirmation to delete line
270 if ($action == 'deleteline') {
271 $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_deleteline', '', 0, 1);
272 }
273 // Clone confirmation
274 if ($action == 'clone') {
275 // Create an array for form
276 $formquestion = array();
277 $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneAsk', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
278 }
279 if ($action == 'closeas') {
280 $text = "";
281 //Form to close proposal (signed or not)
282 $formquestion = array(
283 array('type' => 'select', 'name' => 'status', 'label' => '<span class="fieldrequired">'.$langs->trans("CloseAs").'</span>', 'values' => array(3=>$object->LibStatut($object::STATUS_RECRUITED), 9=>$object->LibStatut($object::STATUS_CANCELED))),
284 array('type' => 'text', 'name' => 'note_private', 'label' => $langs->trans("Note"), 'value' => '') // Field to complete private note (not replace)
285 );
286
287 /*if (isModEnabled('notification'))
288 {
289 require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php';
290 $notify = new Notify($db);
291 $formquestion = array_merge($formquestion, array(
292 array('type' => 'onecolumn', 'value' => $notify->confirmMessage('RECRUITMENTJOBPOSITION_CLOSE_SIGNED', $object->socid, $object)),
293 ));
294 }*/
295
296 $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('Close'), $text, 'confirm_closeas', $formquestion, '', 1, 250);
297 }
298
299 // Call Hook formConfirm
300 $parameters = array('formConfirm' => $formconfirm, 'lineid' => $lineid);
301 $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
302 if (empty($reshook)) {
303 $formconfirm .= $hookmanager->resPrint;
304 } elseif ($reshook > 0) {
305 $formconfirm = $hookmanager->resPrint;
306 }
307
308 // Print form confirm
309 print $formconfirm;
310
311
312 // Object card
313 // ------------------------------------------------------------
314 $linkback = '<a href="'.dol_buildpath('/recruitment/recruitmentjobposition_list.php', 1).'?restore_lastsearch_values=1'.(!empty($socid) ? '&socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
315
316 $morehtmlref = '<div class="refidno">';
317 /*
318 // Ref customer
319 $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1);
320 $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1);
321 // Thirdparty
322 $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : '');
323 */
324 // Project
325 if (isModEnabled('project')) {
326 $langs->load("projects");
327 $morehtmlref .= $langs->trans('Project').' ';
328 if ($permissiontoadd) {
329 if ($action != 'classify') {
330 $morehtmlref .= '<a class="editfielda" href="'.$_SERVER['PHP_SELF'].'?action=classify&token='.newToken().'&id='.$object->id.'">'.img_edit($langs->transnoentitiesnoconv('SetProject')).'</a>';
331 }
332 $morehtmlref .= ' : ';
333 if ($action == 'classify') {
334 //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
335 $morehtmlref .= '<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
336 $morehtmlref .= '<input type="hidden" name="action" value="classin">';
337 $morehtmlref .= '<input type="hidden" name="token" value="'.newToken().'">';
338 $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
339 $morehtmlref .= '<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
340 $morehtmlref .= '</form>';
341 } else {
342 $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, !empty($object->socid) ? $object->socid : 0, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300');
343 }
344 } else {
345 if (!empty($object->fk_project)) {
346 $proj = new Project($db);
347 $proj->fetch($object->fk_project);
348 $morehtmlref .= ': '.$proj->getNomUrl();
349 } else {
350 $morehtmlref .= '';
351 }
352 }
353 }
354 $morehtmlref .= '</div>';
355
356
357 dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
358
359
360 print '<div class="fichecenter">';
361 print '<div class="fichehalfleft">';
362 print '<div class="underbanner clearboth"></div>';
363 print '<table class="border centpercent tableforfield">'."\n";
364
365 // Common attributes
366 $keyforbreak = 'description'; // We change column just after this field
367 unset($object->fields['fk_project']); // Hide field already shown in banner
368 //unset($object->fields['fk_soc']); // Hide field already shown in banner
369 include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_view.tpl.php';
370
371 // Other attributes. Fields from hook formObjectOptions and Extrafields.
372 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php';
373
374 print '</table>';
375 print '</div>';
376 print '</div>';
377
378 print '<div class="clearboth"></div>';
379
380 print dol_get_fiche_end();
381
382
383 // Buttons for actions
384
385 if ($action != 'presend' && $action != 'editline') {
386 print '<div class="tabsAction">'."\n";
387 $parameters = array();
388 $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
389 if ($reshook < 0) {
390 setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
391 }
392
393 if (empty($reshook)) {
394 // Send
395 if (empty($user->socid)) {
396 print dolGetButtonAction('', $langs->trans('SendMail'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=presend&mode=init&token='.newToken().'#formmailbeforetitle');
397 }
398
399 // Back to draft
400 if ($object->status == $object::STATUS_VALIDATED || $object->status == $object::STATUS_RECRUITED) {
401 if ($permissiontoadd) {
402 print dolGetButtonAction('', $langs->trans('SetToDraft'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=confirm_setdraft&confirm=yes&token='.newToken(), '', $permissiontoadd);
403 }
404 }
405
406 // Modify
407 print dolGetButtonAction('', $langs->trans('Modify'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=edit&token='.newToken(), '', $permissiontoadd);
408
409 // Validate
410 if ($object->status == $object::STATUS_DRAFT) {
411 if ($permissiontoadd) {
412 if (empty($object->table_element_line) || (is_array($object->lines) && count($object->lines) > 0)) {
413 print dolGetButtonAction('', $langs->trans('Validate'), 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=confirm_validate&confirm=yes&token='.newToken(), '', $permissiontoadd);
414 } else {
415 $langs->load("errors");
416 print dolGetButtonAction($langs->trans("ErrorAddAtLeastOneLineFirst"), $langs->trans("Validate"), 'default', '#', '', 0);
417 }
418 }
419 }
420
421 // Close as recruited/canceled
422 if ($object->status == $object::STATUS_VALIDATED) {
423 if ($usercanclose) {
424 print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=closeas&token='.newToken().(!getDolGlobalString('MAIN_JUMP_TAG') ? '' : '#close').'"';
425 print '>'.$langs->trans('Close').'</a>';
426 } else {
427 print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Close').'</a>';
428 }
429 }
430
431 // Clone
432 if ($permissiontoadd) {
433 print dolGetButtonAction($langs->trans("ToClone"), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.(!empty($object->socid) ? '&socid='.$object->socid : "").'&action=clone&object=recruitmentjobposition', 'clone', $permissiontoadd);
434 }
435
436 /*
437 if ($permissiontoadd) {
438 if ($object->status == $object::STATUS_ENABLED) {
439 print dolGetButtonAction('', $langs->trans('Disable'), 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=disable&token='.newToken(), '', $permissiontoadd);
440 } else {
441 print dolGetButtonAction('', $langs->trans('Enable'), 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=enable&token='.newToken(), '', $permissiontoadd);
442 }
443 }
444 }*/
445 if ($permissiontoadd) {
446 if ($object->status == $object::STATUS_CANCELED) {
447 print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=confirm_reopen&confirm=yes">'.$langs->trans("Re-Open").'</a>'."\n";
448 }
449 }
450
451 // Delete
452 $params = array();
453 print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete, $params);
454 }
455 print '</div>'."\n";
456 }
457
458
459 // Select mail models is same action as presend
460 if (GETPOST('modelselected')) {
461 $action = 'presend';
462 }
463
464 if ($action != 'presend') {
465 print '<div class="fichecenter"><div class="fichehalfleft">';
466 print '<a name="builddoc"></a>'; // ancre
467
468 $includedocgeneration = 1;
469
470 // Documents
471 if ($includedocgeneration) {
472 $objref = dol_sanitizeFileName($object->ref);
473 $relativepath = $objref.'/'.$objref.'.pdf';
474 $filedir = $conf->recruitment->dir_output.'/'.$object->element.'/'.$objref;
475 $urlsource = $_SERVER["PHP_SELF"]."?id=".$object->id;
476 $genallowed = $user->hasRight('recruitment', 'recruitmentjobposition', 'read'); // If you can read, you can build the PDF to read content
477 $delallowed = $user->hasRight('recruitment', 'recruitmentjobposition', 'write'); // If you can create/edit, you can remove a file on card
478 print $formfile->showdocuments('recruitment:RecruitmentJobPosition', $object->element.'/'.$objref, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 1, 0, 0, 28, 0, '', '', '', $langs->defaultlang);
479 }
480
481 // Show links to link elements
482 $linktoelem = $form->showLinkToObjectBlock($object, null, array('recruitmentjobposition'));
483 $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem);
484
485 // Show link to public job page
486 if ($object->status != RecruitmentJobPosition::STATUS_DRAFT) {
487 print '<br><!-- Link to go on public job page -->'."\n";
488 // Load translation files required by the page
489 $langs->loadLangs(array('recruitment'));
490
491 $out = img_picto('', 'globe').' <span class="opacitymedium">'.$langs->trans("PublicUrl").'</span><br>';
492
493 $url = getPublicJobPositionUrl(0, $object->ref);
494 $out .= '<div class="urllink"><input type="text" id="recruitmentjobpositionurl" class="quatrevingtpercent" value="'.$url.'">';
495 $out .= '<a href="'.$url.'" target="_blank" rel="noopener noreferrer">'.img_picto('', 'globe').'</a></div>';
496 $out .= ajax_autoselect("recruitmentjobpositionurl", 0);
497
498 print $out;
499 }
500
501 print '</div><div class="fichehalfright">';
502
503 $MAXEVENT = 10;
504
505 $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/recruitment/recruitmentjobposition_agenda.php?id='.$object->id);
506
507 // List of actions on element
508 include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
509 $formactions = new FormActions($db);
510 $somethingshown = $formactions->showactions($object, $object->element.'@recruitment', (is_object($object->thirdparty) ? $object->thirdparty->id : 0), 1, '', $MAXEVENT, '', $morehtmlcenter);
511
512 print '</div></div>';
513 }
514
515 //Select mail models is same action as presend
516 if (GETPOST('modelselected')) {
517 $action = 'presend';
518 }
519
520 // Presend form
521 $modelmail = 'recruitmentjobposition';
522 $defaulttopic = 'InformationMessage';
523 $diroutput = $conf->recruitment->dir_output;
524 $trackid = 'recruitmentjobposition'.$object->id;
525
526 include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php';
527}
528
529// End of page
530llxFooter();
531$db->close();
if(preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) if(preg_match('/del_([a-z0-9_\-]+)/i', $action, $reg)) if($action=='set') elseif( $action=='specimen') elseif($action=='setmodel') elseif( $action=='del') elseif($action=='setdoc') $formactions
View.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Definition wrapper.php:55
llxFooter()
Empty footer.
Definition wrapper.php:69
Class to manage standard extra fields.
Class to manage building of HTML components.
Class to offer components to list and upload files.
Class to manage generation of HTML components Only common components must be here.
Class to manage building of HTML components.
Class to manage projects.
Class for RecruitmentJobPosition.
dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='rowid', $fieldref='ref', $morehtmlref='', $moreparam='', $nodbprefix=0, $morehtmlleft='', $morehtmlstatus='', $onlybanner=0, $morehtmlright='')
Show tab footer of a card.
load_fiche_titre($titre, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
ajax_autoselect($htmlname, $addlink='', $textonlink='Link')
Make content of an input box selected when we click into input field.
dolGetButtonAction($label, $text='', $actionType='default', $url='', $id='', $userRight=1, $params=array())
Function dolGetButtonAction.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
img_edit($titlealt='default', $float=0, $other='')
Show logo editer/modifier fiche.
getPublicJobPositionUrl($mode, $ref='', $localorexternal=0)
Return string with full Url.
recruitmentjobpositionPrepareHead($object)
Prepare array of tabs for RecruitmentJobPosition.
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.