r1834 + use POST to add multiple objects
[racktables] / inc / triggers.php
CommitLineData
b325120a 1<?php
641fe9b0
DO
2/*
3*
4* This file is a library of tab triggers for RackTables.
5*
6*/
7
8// Triggers may be optionally referred by some tabs of a page.
9// In case they are defined, the given tab is only displayed if
10// the trigger returned true. In certain cases, a key is necessary
11// to decide (the 'bypass' hint of a page), and in some cases,
12// other data can be used.
13
14// This trigger filters out everything except switches with known-good
15// software.
16// FIXME: That's a bit of hardcoding at the moment, but
17// let's thinks about fixing it later.
18function trigger_switchvlans ()
19{
20 assertUIntArg ('object_id');
21 $object_id = $_REQUEST['object_id'];
22 $object = getObjectInfo ($object_id);
23 if ($object['objtype_id'] != 8)
24 return FALSE;
25 $values = getAttrValues ($object_id);
26 foreach ($values as $record)
27 {
dce5a9e7 28 if ($record['id'] != 4) // SW type
641fe9b0 29 continue;
dce5a9e7
DO
30 // Cisco IOS 12.0
31 // Cisco IOS 12.1
32 // Cisco IOS 12.2
33 if (in_array ($record['key'], array (244, 251, 252)))
641fe9b0
DO
34 return TRUE;
35 else
36 return FALSE;
37 }
38 return FALSE;
39}
40
9c67f713
DO
41// SNMP port finder tab trigger. At the moment we decide on showing it
42// for pristine switches only. Once a user has begun
43// filling the data in, we stop showing the tab.
44function trigger_snmpportfinder ()
45{
46 assertUIntArg ('object_id');
47 $object_id = $_REQUEST['object_id'];
48 $object = getObjectInfo ($object_id);
49 if ($object['objtype_id'] != 8)
50 return FALSE;
51 $tails = getObjectPortsAndLinks ($object_id);
52 if (count ($tails))
53 return FALSE;
54 return TRUE;
55}
56
9b0cf84f
DO
57// Output "click me" in an empty rackspace.
58function trigger_emptyRackspace ()
59{
60 return (count (readChapter ('RackRow')) == 0);
61}
62
3ee1252b
DO
63function trigger_lvsconfig ()
64{
65 assertUIntArg ('object_id');
6dbdc7c7
DO
66 return count (getRSPoolsForObject ($_REQUEST['object_id'])) > 0;
67}
68
69function trigger_ipv4 ()
70{
71 assertUIntArg ('object_id');
72 $info = getObjectInfo ($_REQUEST['object_id']);
73 return in_array ($info['objtype_id'], explode (',', getConfigVar ('IPV4_PERFORMERS')));
74}
75
76function trigger_natv4 ()
77{
78 assertUIntArg ('object_id');
79 $info = getObjectInfo ($_REQUEST['object_id']);
80 return in_array ($info['objtype_id'], explode (',', getConfigVar ('NATV4_PERFORMERS')));
3ee1252b
DO
81}
82
a785988f
DO
83function trigger_poolrscount ()
84{
6aff02cf
DO
85 assertUIntArg ('pool_id');
86 $poolInfo = getRSPoolInfo ($_REQUEST['pool_id']);
a785988f
DO
87 return count ($poolInfo['rslist']) > 0;
88}
89
118e4c38
DO
90function trigger_autoports ()
91{
92 assertUIntArg ('object_id');
93 if (count (getObjectPortsAndLinks ($_REQUEST['object_id'])) != 0)
94 return FALSE;
95 $info = getObjectInfo ($_REQUEST['object_id']);
96 return count (getAutoPorts ($info['objtype_id'])) != 0;
97}
98
91dbb8a3
DO
99function trigger_tags ()
100{
20c901a7
DO
101 global $taglist;
102 return count ($taglist) > 0;
91dbb8a3
DO
103}
104
641fe9b0 105?>