Ticket #120: pool-add.vm

File pool-add.vm, 14.8 kB (added by ibaldin, 8 years ago)

pool-add.vm

Line 
1#parse("/secure/common/top.vm")
2#parse("/secure/common/calendar.vm")
3
4<div class="title">Add Resource Pool</div>
5<div class="titleSpacer"/>
6
7#if ($actor)
8        ## fetch installed controls
9        #set($tmp=$manager.getPlugins(8, 3, $identity.getAuth()))
10        #printResultNoRedirect($tmp.getStatus() "An error occurred while fetching control plugins data")
11        #if (!$errorFlag)
12                #set($controllerInstances=$tmp.getResult())
13                #if ($root.getSize($controllerInstances) == 0)
14                        #printMessage("At least one control must be installed before creating a resource pool")
15                                #set($errorFlag=true)                   
16                #end
17        #end
18       
19        ## fetch installed configuration handlers
20        #if (!$errorFlag)
21                #set($handlersTmp=$manager.getPlugins(10, 3, $identity.getAuth()))
22                #printResultNoRedirect($handlersTmp.getStatus() "An error occurred while fetching handlers data")
23                #if (!$errorFlag)
24                        #set($handlers=$handlersTmp.getResult())
25                        #if ($root.getSize($handlers) == 0)
26                                #printMessage("At least one handler must be installed before creating a resource pool")
27                                #set($errorFlag=true)
28                        #end
29                #end           
30        #end
31       
32        #if (!$errorFlag)
33                #parse("/secure/common/validate.vm")
34                <script type="text/javascript" src="$link.setRelative('/controls/util/sb.js')"></script>
35                <script type="text/javascript" src="$link.setRelative('/controls/util/base64.js')"></script>
36                <script language="JavaScript">
37                // attach the function 
38                window.onload=fixSelected;
39               
40
41               
42                // ensures that the configuration
43                // for the selected elements is visible
44                function fixSelected()
45                {
46                    obj=document.forms['poolForm'].controllerInstance;
47                        showControllerConfig(obj.options[obj.selectedIndex].getAttribute('configId'));
48                       
49                    obj=document.forms['poolForm'].handlerInstance;
50                        showHandlerConfig(obj.options[obj.selectedIndex].getAttribute('configId'));     
51                }
52               
53                // the currently active control configuration
54                currentControllerConfig='selectControllerInstance';                                                                                                                                                                                                                         
55                // shows the control configuration for the passed control
56                function showControllerConfig(value)                                                                                                                                                                                                                       
57                {                                                                                                                                                                                                                                           
58                   newSpan = document.getElementById(value);
59                   if (currentControllerConfig != null) {
60                           currentSpan = document.getElementById(currentControllerConfig);                                                                                                                                                                                                                                                                                                                                                                                                                                     
61                           currentSpan.style.display="none";                                                                                                                                                                                                       
62                   }
63                   if (newSpan){
64                       newSpan.style.display="";
65                       document.forms['poolForm'].controllerInstanceProperties.value=null;
66                   }
67                   currentControllerConfig=value;                                                                                                                                                                                                                           
68                }         
69
70                // the currently active handler configuration
71                currentHandlerConfig='selectHandlerInstance';                                                                                                                                                                                                                         
72                // shows the handler configuration for the passed handler
73                function showHandlerConfig(value)                                                                                                                                                                                                                       
74                {                                             
75                   newSpan = document.getElementById(value);
76                   if (currentHandlerConfig != null) {
77                           currentSpan = document.getElementById(currentHandlerConfig);                                                                                                                                                                                                                                                                                                                                                                                                                                     
78                           currentSpan.style.display="none";                                                                                                                                                                                                       
79                   }
80                   if (newSpan){
81                       newSpan.style.display="";
82                       document.forms['poolForm'].handlerInstanceProperties.value=null;   
83                   }
84                   currentHandlerConfig=value;                                                                                                                                                                                                                           
85                }         
86               
87                // performs form validation     
88                function checkSubmit()
89                {
90                    aform=document.forms["poolForm"];
91                   
92                        if (aform.name.value=="") {
93                                alert("Please specify a valid resource pool name");
94                                aform.name.focus();
95                                return false;
96                        }
97
98                        if (aform.processor.value=="") {
99                                alert("Please specify a valid processor description");
100                                aform.processor.focus();
101                                return false;
102                        }
103                       
104                        if (tmt_globalPatterns.positiveinteger.exec(aform.memory.value) == null){
105                                alert("Please specify memory");
106                                aform.memory.focus();
107                                return false;                           
108                        }                       
109                       
110                        if (parseFloat(aform.memory.value) < 100.0){                   
111                                alert("Memory must be at least 100MB");
112                                aform.memory.focus();
113                                return false;
114                        }
115                       
116                        if (aform.controllerInstance.value== "-1") {
117                                aform.controllerInstance.focus();
118                                alert("Please select a control instance");
119                                return false;
120                        }
121
122                    fname=aform.controllerInstance.options[aform.controllerInstance.selectedIndex].getAttribute('functionName');
123                        try{
124                                aform.controllerInstanceProperties.value = eval(fname + "()");
125                        if (aform.controllerInstanceProperties.value == -1) {
126                                return false;
127                        }
128                    } catch (err) {
129                        }
130
131                        if (aform.handlerInstance.value== "-1") {
132                                aform.handlerInstance.focus();
133                                alert("Please select a handler instance");
134                                return false;
135                        }
136
137                    fname=aform.handlerInstance.options[aform.handlerInstance.selectedIndex].getAttribute("functionName");
138                        try{
139                                aform.handlerInstanceProperties.value = eval(fname + "()");
140                        if (aform.handlerInstanceProperties.value == -1) {
141                                return false;
142                        }
143                    } catch (err) {
144                        }
145
146                       
147                        return true;
148                }
149                </script>
150        <form name="poolForm" action="pool-add-action.vm" method="post" onsubmit="return checkSubmit()">
151                        <input type="hidden" name="controllerInstanceProperties" id="controllerInstanceProperties" value="" />
152                        <input type="hidden" name="handlerInstanceProperties" id="handlerInstanceProperties" value="" />
153                    <table border="0" cellpadding="0" cellspacing="0" class="formtable">
154                        <tr>
155                                <td valign="top" width="350">
156                                        <table border="0" cellpadding="3" cellspacing="0" width="100%">
157                                        <tr>
158                                            <td class="formtablename" width="200">Name <span class="required">*</span></td>
159                                            <td class="formtablecont">
160                                                                <input type="text" name="name" value="" />
161                                                        </td>
162                                        </tr>
163                                        <tr>
164                                            <td class="formtablename" width="200">Type <span class="required">*</span></td>
165                                            <td class="formtablecont">
166                                                                <input type="text" name="poolType" value="" />
167                                                        </td>
168                                        </tr>
169                                        <tr>
170                                            <td class="formtablename" width="200">Units <span class="required">*</span></td>
171                                            <td class="formtablecont">
172                                                                <input type="text" name="units" value="" />
173                                                        </td>
174                                        </tr>
175                                        <tr>
176                                                        <td><b>Lease Start:</b></td><td><input type="text" name="start" value="$root.getTime("0")" id="start" tmt:required="true" tmt:message="Please enter a valid start date (MM/DD/YYYY hh:mm)"/></td>
177                                                        </tr>
178                                                        <tr>
179                                                        <td><b>Lease End:</b></td><td><input type="text" name="end" value="$root.getTime("1440")" id="end" tmt:required="true" tmt:message="Please enter a valid end date (MM/DD/YYYY hh:mm)"/></td>
180                                                        </tr>
181                                       
182                                        <tr>
183                                            <td class="formtablename">Control <span class="required">*</span></td>
184                                            <td class="formtablecont">       
185                                                                <select id="controllerInstance" name="controllerInstance" onchange="showControllerConfig(this.options[this.selectedIndex].getAttribute('configId'))"> >>
186                                                                                <option value="-1" selected>Select ...</option>
187                                                                        #set($p=false)
188                                                                        #foreach ($p in $controllerInstances)                                                                                                                                                                                                   
189                                                                                <option
190                                                                        value="$p.getPackageId(),$p.getId()"
191                                                                        configId="$p.getPackageId()-$p.getId()"
192                                                                        functionName="controllerInstance${velocityCount}"
193                                                                        >$p.getName()</option>                                                                                                                                                                           
194                                                                        #end                                                                                                                                                                                                                       
195                                                                </select>
196                                            </td>
197                                        </tr>
198                                        <tr>
199                                            <td class="formtablename">Handler <span class="required">*</span></td>
200                                            <td class="formtablecont">       
201                                                                <select id="handlerInstance" name="handlerInstance" onchange="showHandlerConfig(this.options[this.selectedIndex].getAttribute('configId'))"> >>
202                                                                                <option value="-1" selected>Select ...</option>
203                                                                        #set($p=false)
204                                                                        #foreach ($p in $handlers)                                                                                                                                                                                                   
205                                                                                <option
206                                                                        value="$p.getPackageId(),$p.getId()"
207                                                                        configId="$p.getPackageId()-$p.getId()"
208                                                                        functionName="handlerInstance${velocityCount}"
209                                                                        >$p.getName()</option>                                                                                                                                                                           
210                                                                        #end                                                                                                                                                                                                                       
211                                                                </select>
212                                            </td>
213                                        </tr>
214                                        <tr>
215                                                        <td class="formtablename" width="100">Properties</td>
216                                                        <td class="formtablecont"><textarea rows="3" columns="100" name="props">property.name=value</textarea></td>
217                                                </tr>
218                                                <tr>
219                                                        <td class="formtablename" width="100">Description</td>
220                                                        <td class="formtablecont"><textarea rows="3" columns="100" name="desc">No description provided.</textarea></td>
221                                                </tr>
222                                        <tr>
223                                          <td class="formtablename">&nbsp;</td>
224                                          <td class="formtablecont">
225                                            <input type="submit" value="Add"> 
226                                            &nbsp;<input type="button" value="Cancel" onclick="window.location='pools-view.vm'"/>
227                                          </td>
228                                        </tr>
229                                    </table>
230                                </td>
231                                      <td valign="top" width="350">
232                                                <span id="selectControllerInstance"></span>
233                                                #set($p=false)
234                                                #foreach ($p in $controllerInstances)
235                                                        #set($functionName="controllerInstance${velocityCount}")
236                                                        <span id="$p.getPackageId()-$p.getId()" style="display: none">
237                                                                #if ($p.getConfigurationTemplate())
238                                                                        #parse("/packages/$p.getPackageId()/$p.getConfigurationTemplate()")
239                                                                #end
240                                                        </span>
241                                                #end
242                                                <span id="selectHandlerInstance"></span>
243                                                #set($p=false)
244                                                #foreach ($p in $handlers)
245                                                        #set($functionName="handlerInstance${velocityCount}")
246                                                        <span id="$p.getPackageId()-$p.getId()" style="display: none">
247                                                                #if ($p.getConfigurationTemplate())
248                                                                        #parse("/packages/$p.getPackageId()/$p.getConfigurationTemplate()")
249                                                                #end
250                                                        </span>
251                                                #end
252                                      </td>                             
253                                </tr>   
254                        </table>                 
255        </form>
256        #end
257#else
258    #printMessage("No operable actor")
259#end
260<script type="text/javascript">
261        function setStart(cal)
262        {
263            var date = cal.date;
264            var time = date.getTime();
265            var field = document.getElementById("start");
266            var date2 = new Date(time);
267            field.value = date2.print("%m/%d/%Y %H:%M");
268        }
269       
270        function setEnd(cal)
271        {
272            var date = cal.date;
273            var time = date.getTime();
274            var field = document.getElementById("end");
275            var date2 = new Date(time);
276            field.value = date2.print("%m/%d/%Y %H:%M");
277        }
278       
279        Calendar.setup({
280            inputField     :    "start",         // id of the input field
281            ifFormat       :    "%m/%d/%Y %H:%M", // format of the input field
282            showsTime      :    true,
283            timeFormat     :    "24",
284            onUpdate       :    setStart
285            });
286       
287        Calendar.setup({
288            inputField     :    "end",         // id of the input field
289            ifFormat       :    "%m/%d/%Y %H:%M", // format of the input field
290            showsTime      :    true,
291            timeFormat     :    "24",
292            onUpdate       :    setEnd
293            });
294</script>