FastActions » History » Version 3

tsmr, 12/23/2011 09:26 AM

1 1 tsmr
h1. FastActions
2 1 tsmr
3 1 tsmr
*Goal* : Add a system to display fast actions on GLPI header
4 1 tsmr
5 1 tsmr
*Concerned objects* : All objects which have an interest to be launch quickly
6 1 tsmr
7 1 tsmr
Detail :
8 1 tsmr
9 1 tsmr
Example : for a Call Center which need to generate tickets on the fly :
10 1 tsmr
11 1 tsmr
|Class|Action|Parameter|
12 1 tsmr
|Ticket|New Ticket|Specify requester|
13 1 tsmr
|Problem|New Problem|Specify requester|
14 2 tsmr
|Plugins|Action defined by plugin|Parameters defined by plugin|
15 3 tsmr
16 3 tsmr
Patch envoyé : 
17 3 tsmr
18 3 tsmr
- 1 fichier ajax/dropdownHeaderActions.php appelant Html::addDropdownActionsForHeader($_POST['action']);
19 3 tsmr
20 3 tsmr
- Ajout dans define.php d'un tableau : $CFG_GLPI["header_types"] = array('Ticket'); (et modification de plugin.class.php pour la prise en charge des plugins)
21 3 tsmr
22 3 tsmr
- Ajout de 3 fonctions dans html.class.php :
23 3 tsmr
24 3 tsmr
addCriteriaForHeader qui retourne les classes ayant le droit de faire des actions rapides (avec un hook $PLUGIN_HOOKS["header_entry"])
25 3 tsmr
26 3 tsmr
showActionFromHeader qui liste ces classes  dans une liste déroulante
27 3 tsmr
28 3 tsmr
addDropdownActionsForHeader qui liste les actions pour chaque classe.
29 3 tsmr
30 3 tsmr
Coté plugin :
31 3 tsmr
32 3 tsmr
Plugin::registerClass -> 'header_types' => true
33 3 tsmr
34 3 tsmr
$PLUGIN_HOOKS['header_entry']['example'] = array('My fast action' =>'/plugins/example/front/example.form.php');
35 3 tsmr
$PLUGIN_HOOKS['header_action']['example'] = 'plugin_example_header_action';
36 3 tsmr
37 3 tsmr
function plugin_example_header_action() {
38 3 tsmr
   global $LANG;
39 3 tsmr
   
40 3 tsmr
   echo "<div class='center'><input type=\"submit\" class=\"submit\" value=\"" . $LANG['buttons'][2] . "\" ></div>";
41 3 tsmr
}