CVSROOT:        /cvs/cluster
Module name:    conga
Changes by:     [EMAIL PROTECTED]       2007-09-25 22:47:05

Modified files:
        luci/cluster   : form-chooser form-macros resource-form-macros 
        luci/homebase  : form-chooser form-macros luci_homebase.css 
        luci/plone-custom: sys_svc.css 
        luci/storage   : cylinder_select.js form-macros 
                         storage_probing.js storage_utils.js 
                         storage_validation.js validate_html 

Log message:
        More cleanup and fix some javascript bugs

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-chooser.diff?cvsroot=cluster&r1=1.19&r2=1.20
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.213&r2=1.214
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource-form-macros.diff?cvsroot=cluster&r1=1.42&r2=1.43
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/form-chooser.diff?cvsroot=cluster&r1=1.11&r2=1.12
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/form-macros.diff?cvsroot=cluster&r1=1.61&r2=1.62
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/luci_homebase.css.diff?cvsroot=cluster&r1=1.43&r2=1.44
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/plone-custom/sys_svc.css.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/cylinder_select.js.diff?cvsroot=cluster&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/form-macros.diff?cvsroot=cluster&r1=1.28&r2=1.29
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/storage_probing.js.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/storage_utils.js.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/storage_validation.js.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/validate_html.diff?cvsroot=cluster&r1=1.6&r2=1.7

--- conga/luci/cluster/form-chooser     2007/08/08 21:00:06     1.19
+++ conga/luci/cluster/form-chooser     2007/09/25 22:47:05     1.20
@@ -1,3 +1,12 @@
+<tal:comment tal:replace="nothing">
+** Copyright (C) 2006-2007 Red Hat, Inc.
+**
+** This program is free software; you can redistribute
+** it and/or modify it under the terms of version 2 of the
+** GNU General Public License as published by the
+** Free Software Foundation.
+</tal:comment>
+
 <html>
   <head>
     <title tal:content="string:"></title>
--- conga/luci/cluster/form-macros      2007/09/25 03:51:02     1.213
+++ conga/luci/cluster/form-macros      2007/09/25 22:47:05     1.214
@@ -1,3 +1,12 @@
+<tal:comment tal:replace="nothing">
+** Copyright (C) 2006-2007 Red Hat, Inc.
+**
+** This program is free software; you can redistribute
+** it and/or modify it under the terms of version 2 of the
+** GNU General Public License as published by the
+** Free Software Foundation.
+</tal:comment>
+
 <html>
 
 <head>
--- conga/luci/cluster/resource-form-macros     2007/09/25 03:51:02     1.42
+++ conga/luci/cluster/resource-form-macros     2007/09/25 22:47:05     1.43
@@ -1,3 +1,12 @@
+<tal:comment tal:replace="nothing">
+** Copyright (C) 2006-2007 Red Hat, Inc.
+**
+** This program is free software; you can redistribute
+** it and/or modify it under the terms of version 2 of the
+** GNU General Public License as published by the
+** Free Software Foundation.
+</tal:comment>
+
 <html>
 <head>
        <title tal:content="template/title">The title</title>
--- conga/luci/homebase/form-chooser    2006/11/01 23:04:17     1.11
+++ conga/luci/homebase/form-chooser    2007/09/25 22:47:05     1.12
@@ -1,3 +1,12 @@
+<tal:comment tal:replace="nothing">
+** Copyright (C) 2006-2007 Red Hat, Inc.
+**
+** This program is free software; you can redistribute
+** it and/or modify it under the terms of version 2 of the
+** GNU General Public License as published by the
+** Free Software Foundation.
+</tal:comment>
+
 <html>
 
 <head>
--- conga/luci/homebase/form-macros     2007/09/25 03:51:21     1.61
+++ conga/luci/homebase/form-macros     2007/09/25 22:47:05     1.62
@@ -1,3 +1,12 @@
+<tal:comment tal:replace="nothing">
+** Copyright (C) 2006-2007 Red Hat, Inc.
+**
+** This program is free software; you can redistribute
+** it and/or modify it under the terms of version 2 of the
+** GNU General Public License as published by the
+** Free Software Foundation.
+</tal:comment>
+
 <html>
 
 <head>
--- conga/luci/homebase/luci_homebase.css       2007/09/25 03:51:21     1.43
+++ conga/luci/homebase/luci_homebase.css       2007/09/25 22:47:05     1.44
@@ -1,3 +1,12 @@
+/*
+** Copyright (C) 2006-2007 Red Hat, Inc.
+**
+** This program is free software; you can redistribute
+** it and/or modify it under the terms of version 2 of the
+** GNU General Public License as published by the
+** Free Software Foundation.
+*/
+
 input[type=text], input[type=password] {
        padding: .2em ! important;
        font-family: "Bitstream Vera Sans Mono", "DejaVu Sans Mono", monospace;
--- conga/luci/plone-custom/sys_svc.css 2007/06/28 16:02:50     1.1
+++ conga/luci/plone-custom/sys_svc.css 2007/09/25 22:47:05     1.2
@@ -1,3 +1,12 @@
+/*
+** Copyright (C) 2007 Red Hat, Inc.
+**
+** This program is free software; you can redistribute
+** it and/or modify it under the terms of version 2 of the
+** GNU General Public License as published by the
+** Free Software Foundation.
+*/
+
 input[type=image] {
        border: 0;
        background: transparent;
--- conga/luci/storage/cylinder_select.js       2007/09/25 18:55:13     1.3
+++ conga/luci/storage/cylinder_select.js       2007/09/25 22:47:05     1.4
@@ -58,12 +58,12 @@
                }
        }
 
-       parent = top.document.getElementById(properties_span_id);
+       var parent_elem = top.document.getElementById(properties_span_id);
 
-       for (var i = 0 ; i < parent.childNodes.length ; i++) {
-               var item = parent.childNodes[i];
+       for (var i = 0 ; i < parent_elem.childNodes.length ; i++) {
+               var item = parent_elem.childNodes[i];
                var item_type = item.nodeName.toLowerCase();
-               if (item_type == 'span' || item.type == 'div') {
+               if (item_type == 'span' || item_type == 'div') {
                        if (item.id == current_selection) {
                                item.className = 'visible';
                        } else if (item.className == 'visible') {
@@ -86,7 +86,7 @@
                var id = elem[0];
                var beg = elem[1][0];
                var end = elem[1][1];
-               if (x > beg && x < end) {
+               if (x >= beg && x <= end) {
                        select_subcyl(id, h_data);
                }
        }
--- conga/luci/storage/form-macros      2007/09/25 18:55:13     1.28
+++ conga/luci/storage/form-macros      2007/09/25 22:47:05     1.29
@@ -21,17 +21,18 @@
 
 <div metal:define-macro="commit-changes">
        <script type="text/javascript" src="storage_utils.js"></script>
-       <span tal:omit-tag=""
-        tal:define="batch_id python:here.apply_storage_changes(ricci, 
storage_report, request);
-                    check_URL context/storage/check-batch/absolute_url;
-                    check_url python:check_URL + '?storagename=' + storagename 
+ '&batch_id=' + batch_id">
+       <tal:block tal:define="
+               batch_id python:here.apply_storage_changes(ricci, 
storage_report, request);
+               check_URL context/storage/check-batch/absolute_url;
+               check_url python:check_URL + '?storagename=' + storagename + 
'&batch_id=' + batch_id">
 
                <div 
metal:use-macro="here/form-macros/macros/display-committing-changes" />
+
                <form id="urls_form">
                        <input type="hidden" name="check_url"
                                tal:attributes="value check_url" />
                </form>
-       </span>
+       </tal:block>
 </div>
 
 <div metal:define-macro="display-committing-changes">
@@ -378,9 +379,9 @@
 </div>
 
 <div metal:define-macro="view-mapper-form">
-       <div metal:use-macro="here/form-macros/macros/content-scripts"/>
-       <div metal:use-macro="here/form-macros/macros/form-scripts"/>
-       <div metal:use-macro="here/form-macros/macros/single-visible-span"/>
+       <div metal:use-macro="here/form-macros/macros/content-scripts" />
+       <div metal:use-macro="here/form-macros/macros/form-scripts" />
+       <div metal:use-macro="here/form-macros/macros/single-visible-span" />
 
        <tal:block tal:define="
                mapper python:here.get_mapper_data(storage_report, 
request['mapper_id']);
@@ -401,7 +402,7 @@
                <input type="checkbox" id="graphics_checkbox_id"
                        tal:attributes="
                                checked mapper/graphical_view"
-                               onchange="var s = 
(this.checked)?'graphical_view':'textual_view'; 
singleVisibleSpan('mappings_view', s);" />
+                               onchange="var s = (this.checked) ? 
'graphical_view' : 'textual_view'; singleVisibleSpan('mappings_view', s);" />
                Graphical View <small>(Uncheck if volumes are too small to 
select)</small>
                <span id="mappings_view"
                        tal:define="
@@ -412,8 +413,9 @@
                                tal:define="global bd_path 
request/bd_path|nothing">
 
                                <tal:block tal:condition="not: bd_path">
-                                       <tal:block tal:define="global bd_path 
python:''"/>
+                                       <tal:block tal:define="global bd_path 
python:''" />
                                </tal:block>
+
                                <iframe style="border: none;"
                                        tal:attributes="
                                                src 
python:'mappings_provider?storagename=' + storagename + '&mapper_id=' + 
mapper['mapper_id'] + '&selected_path=' + bd_path;
@@ -545,138 +547,119 @@
        <div metal:use-macro="here/form-macros/macros/form-scripts" />
 
        <form method="get" tal:attributes="id mapper_template_form_id">
-    <input tal:attributes="type string:hidden;
-                           name string:pagetype;
-                           value string:commit_changes"/>
-
-    <input tal:attributes="type string:hidden;
-                           name string:object_type;
-                           value string:mapper_template"/>
 
-    <input tal:attributes="type string:hidden;
-                           name string:mapper_type;
-                           value mapper/mapper_type"/>
-
-    <input tal:attributes="type string:hidden;
-                           name string:mapper_id;
-                           value python:''"/>
+       <input type="hidden" name="pagetype"
+               tal:attributes="value string:commit_changes" />
 
-    <input tal:attributes="type string:hidden;
-                           name string:storagename;
-                           value storagename"/>
+       <input type="hidden" name="object_type" value="mapper_template" />
+       <input type="hidden" name="mapper_type"
+               tal:attributes="value mapper/mapper_type" />
+       <input type="hidden" name="mapper_id" value="" />
+
+       <input type="hidden" name="storagename"
+               tal:attributes="value storagename" />
+
+       <table class="props-form-table">
+               <tr class="props-form-header">
+                       <th colspan="2" tal:attributes="
+                               style python:here.add_commas('font-size: 
large', 'color: ' + mapper['color'])">
+                               <table>
+                                       <tr>
+                                               <td style="min-width: 30px;">
+                                                       <img 
tal:condition="mapper/icon"
+                                                                       
tal:attributes="src mapper/icon"
+                                                                       
height="29px"
+                                                                       
width="29px" />
+                                               </td>
+                                               <td style="width: 100%;">
+                                                       Creating New <span 
tal:replace="mapper/pretty_type" />
+                                               </td>
+                                               <td style="min-width: 
30px;">&nbsp;</td>
+                                       </tr>
+                               </table>
+                       </th>
+               </tr>
+               <tr class="props-form-body">
+                       <td>
+                               <table class="props-inner-table"
+                                       tal:define="props mapper/props_ordered">
 
-    <table class="props-form-table">
-     <tr class="props-form-header">
-      <th colspan="2"
-          tal:attributes="style python:here.add_commas('font-size: large', 
'color: ' + mapper['color'])">
-       <table>
-        <tr>
-         <td style="min-width: 30px;">
-          <img tal:condition="mapper/icon"
-               tal:attributes="src mapper/icon"
-               height="29px"
-               width="29px"/>
-         </td>
-         <td style="width: 100%;">
-          Creating New <span tal:replace="mapper/pretty_type"/>
-         </td>
-         <td style="min-width: 30px;">
-          &nbsp;
-         </td>
-        </tr>
-       </table>
-      </th>
-     </tr>
-     <tr class="props-form-body">
-      <td>
-       <table class="props-inner-table"
-              tal:define="props mapper/props_ordered">
-        <div 
metal:use-macro="here/form-macros/macros/display-props-tableless"/>
-       </table>
-      </td>
-      <td style="height: 100%;">
-       <table class="props-form-table"
-              style="height: 100%;">
-        <tr class="props-form-header">
-         <th>
-          <span tal:condition="python:mapper['min_sources'] == 
mapper['max_sources']">
-           Select <span tal:replace="mapper/min_sources"/> <span 
tal:replace="mapper/pretty_source_name"/>
-          </span>
-          <span tal:condition="python:mapper['min_sources'] != 
mapper['max_sources']">
-           Select <span tal:replace="mapper/min_sources"/> to <span 
tal:replace="mapper/max_sources"/> <span 
tal:replace="mapper/pretty_sources_name"/>
-          </span>
-         </th>
-        </tr>
-        <tr class="props-form-body">
-         <td>
-          <table class="props-inner-table">
-           <span tal:omit-tag=""
-                 tal:define="bds mapper/new_sources"
-                 tal:repeat="bd bds">
-            <tr>
-             <td>
-              <input tal:attributes="type string:checkbox;
-                                     name python:'source_bd_' + bd['path']"/>
-             </td>
-             <td tal:define="bytes bd/props/size/value;
-                             dummy python:here.bytes_to_value_units(bytes);
-                             size python:dummy[0];
-                             units python:dummy[1]">
-              <span tal:replace="bd/path"/> (<span tal:replace="size"/> <span 
tal:replace="units"/> - <span tal:replace="bd/pretty_type"/>)
-             </td>
-            </tr>
-           </span>
-           <tr>
-            <td colspan="2"
-                style="height: 100%;">
-             &nbsp;
-            </td>
-           </tr>
-          </table>
-         </td>
-        </tr>
-        <tr class="props-form-footer">
-         <td>
-          &nbsp;
-         </td>
-        </tr>
-       </table>
-      </td>
-     </tr>
-     <tr class="props-form-footer">
-      <td colspan="2">
-       <table style="width: 100%;">
-        <tr>
-         <td align="left">
-          &nbsp;
-         </td>
-         <td align="right">
-          <input type="button"
-                 name="action_type"
-                 value="Reset"
-                 onclick="return reset_form(this.form)"
-                 class="form_button"/>
-          <input tal:define="prompt_msg python:'Do you really want to create 
new ' + mapper['pretty_type'] + '?';
-                             validate_url context/validate_html/absolute_url"
-                 tal:attributes="id create_mapper_button_id;
-                                 type string:button;
-                                 name string:action_type;
-                                 value string:Create;
-                                 onclick python:'return 
validate_and_submit_form(\'' + validate_url + '\', \'' + 
mapper_template_form_id + '\', \'' + create_mapper_button_id + '\', \'' + 
prompt_msg + '\')'"
-                 class="form_button"/>
-         </td>
-        </tr>
-       </table>
-      </td>
-     </tr>
-    </table>
-   </form>
+                                       <div 
metal:use-macro="here/form-macros/macros/display-props-tableless" />
+                               </table>
+                       </td>
+                       <td style="height: 100%;">
+                               <table class="props-form-table" style="height: 
100%;">
+                                       <tr class="props-form-header">
+                                               <th>
+                                                       <span 
tal:condition="python:mapper['min_sources'] == mapper['max_sources']">
+                                                               Select <span 
tal:replace="mapper/min_sources"/> <span 
tal:replace="mapper/pretty_source_name" />
+                                                       </span>
+                                                       <span 
tal:condition="python:mapper['min_sources'] != mapper['max_sources']">
+                                                               Select <span 
tal:replace="mapper/min_sources" /> to <span tal:replace="mapper/max_sources" 
/> <span tal:replace="mapper/pretty_sources_name" />
+                                                       </span>
+                                               </th>
+                                       </tr>
+                                       <tr class="props-form-body">
+                                               <td>
+                                                       <table 
class="props-inner-table">
+                                                               <tr 
tal:repeat="bd mapper/new_sources">
+                                                                       <td>
+                                                                               
<input type="checkbox"
+                                                                               
        tal:attributes="name python:'source_bd_' + bd['path']" />
+                                                                       </td>
+                                                                       <td 
tal:define="
+                                                                               
        bytes bd/props/size/value;
+                                                                               
        dummy python:here.bytes_to_value_units(bytes);
+                                                                               
        size python:dummy[0];
+                                                                               
        units python:dummy[1]">
+                                                                               
<span tal:replace="bd/path" /> (<span tal:replace="size" /> <span 
tal:replace="units" /> - <span tal:replace="bd/pretty_type" />)
+                                                                       </td>
+                                                               </tr>
+                                                               <tr>
+                                                                       <td 
colspan="2" style="height: 100%;">
+                                                                               
&nbsp;
+                                                                       </td>
+                                                               </tr>
+                                                       </table>
+                                               </td>
+                                       </tr>
+                                       <tr class="props-form-footer">
+                                               <td>
+                                                       &nbsp;
+                                               </td>
+                                       </tr>
+                               </table>
+                       </td>
+               </tr>
+               <tr class="props-form-footer">
+                       <td colspan="2">
+                               <table style="width: 100%;">
+                                       <tr>
+                                               <td align="left">
+                                                       &nbsp;
+                                               </td>
+                                               <td align="right">
+                                                       <input type="button" 
name="action_type" value="Reset"
+                                                               onclick="return 
reset_form(this.form)"
+                                                               
class="form_button" />
+
+                                                       <input type="button" 
name="action_type"
+                                                               value="Create" 
class="form_button"
+                                                               tal:define="
+                                                                       
prompt_msg python:'Do you really want to create new ' + mapper['pretty_type'] + 
'?';
+                                                                       
validate_url context/validate_html/absolute_url"
+                                                               tal:attributes="
+                                                                       id 
create_mapper_button_id;
+                                                                       onclick 
python:'return validate_and_submit_form(\'' + validate_url + '\', \'' + 
mapper_template_form_id + '\', \'' + create_mapper_button_id + '\', \'' + 
prompt_msg + '\')'" />
+                                               </td>
+                                       </tr>
+                               </table>
+                       </td>
+               </tr>
+       </table>
+       </form>
 </div>
 
-
-
-
-
 <div metal:define-macro="add-sources-form" tal:define="
        mapper python:here.get_mapper_data(storage_report, 
request['mapper_id']);
        prefix python:'add_sources_to_' + mapper['mapper_id'] + '_';
@@ -688,249 +671,241 @@
        <div metal:use-macro="here/form-macros/macros/forms-css" />
        <div metal:use-macro="here/form-macros/macros/form-scripts" />
 
-   <span tal:omit-tag=""
-         tal:condition="not: mapper/new_sources">
-    There are no available <span tal:replace="mapper/pretty_sources_name"/> to 
be added to <span tal:replace="mapper/pretty_type"/> '<span 
tal:replace="mapper/pretty_name"/>'.
-     <br/>
-     <br/>
-    <a tal:define="go_to_mapper_url python:'./?pagetype=52&mapper_type=' + 
mapper['mapper_type'] + '&mapper_id=' + mapper['mapper_id'] + '&storagename=' + 
storagename"
-           tal:attributes="href go_to_mapper_url">
-     Go Back to <span tal:replace="mapper/pretty_type"/>
-    </a>
-   </span>
-   <form tal:condition="mapper/new_sources"
-         tal:attributes="id add_sources_form_id;
-                         method string:get">
-
-    <input tal:attributes="type string:hidden;
-                           name string:pagetype;
-                           value string:commit_changes"/>
+       <tal:block tal:condition="not: mapper/new_sources">
+               There are no available <span 
tal:replace="mapper/pretty_sources_name" /> to be added to <span 
tal:replace="mapper/pretty_type" /> '<span tal:replace="mapper/pretty_name" />'.
+               <br/>
+               <br/>
+               <a tal:define="
+                               go_to_mapper_url 
python:'./?pagetype=52&mapper_type=' + mapper['mapper_type'] + '&mapper_id=' + 
mapper['mapper_id'] + '&storagename=' + storagename"
+                       tal:attributes="href go_to_mapper_url">
+                                       Go Back to <span 
tal:replace="mapper/pretty_type" />
+               </a>
+       </tal:block>
 
-    <input tal:attributes="type string:hidden;
-                           name string:object_type;
-                           value string:add_sources"/>
+       <form method="get" tal:condition="mapper/new_sources"
+               tal:attributes="id add_sources_form_id">
 
-    <input tal:attributes="type string:hidden;
-                           name string:mapper_type;
-                           value mapper/mapper_type"/>
+       <input type="hidden" name="pagetype" value="commit_changes" />
+       <input type="hidden" name="object_type" value="add_sources" />
 
-    <input tal:attributes="type string:hidden;
-                           name string:mapper_id;
-                           value mapper/mapper_id"/>
+       <input type="hidden" name="mapper_type"
+               tal:attributes="value mapper/mapper_type"/>
 
-    <input tal:attributes="type string:hidden;
-                           name string:storagename;
-                           value storagename"/>
+       <input type="hidden" name="mapper_id"
+               tal:attributes="value mapper/mapper_id" />
+
+       <input type="hidden" name="storagename"
+               tal:attributes="value storagename" />
+
+       <table class="props-form-table">
+               <tr class="props-form-header">
+                       <th colspan="2" tal:attributes="
+                               style python:here.add_commas('font-size: 
large', 'color: ' + mapper['color'])">
+                               <table>
+                                       <tr>
+                                               <td style="min-width: 30px;">
+                                                       <img 
tal:condition="mapper/icon"
+                                                               height="29px" 
width="29px"
+                                                               
tal:attributes="src mapper/icon" />
+                                               </td>
+                                               <td style="width: 100%;">
+                                                       Adding new <span 
tal:replace="mapper/pretty_sources_name" /> to <span 
tal:replace="mapper/pretty_type" /> '<span tal:replace="mapper/pretty_name" />'
+                                               </td>
+                                               <td style="min-width: 30px;">
+                                                       &nbsp;
+                                               </td>
+                                       </tr>
+                               </table>
+                       </th>
+               </tr>
 
-    <table class="props-form-table">
-     <tr class="props-form-header">
-      <th colspan="2"
-          tal:attributes="style python:here.add_commas('font-size: large', 
'color: ' + mapper['color'])">
-       <table>
-        <tr>
-         <td style="min-width: 30px;">
-          <img tal:condition="mapper/icon"
-               tal:attributes="src mapper/icon"
-               height="29px"
-               width="29px"/>
-         </td>
-         <td style="width: 100%;">
-          Adding new <span tal:replace="mapper/pretty_sources_name"/> to <span 
tal:replace="mapper/pretty_type"/> '<span tal:replace="mapper/pretty_name"/>'
-         </td>
-         <td style="min-width: 30px;">
-          &nbsp;
-         </td>
-        </tr>
-       </table>
-      </th>
-     </tr>
-     <tr class="props-form-body">
-      <td style="height: 100%;">
-       <table class="props-inner-table">
-        <th colspan="2">
-         <span tal:condition="python:len(mapper['new_sources']) == 1">
-          Select <span tal:replace="mapper/pretty_source_name"/> to add
-         </span>
-         <span tal:condition="python:len(mapper['new_sources']) > 1">
-          Select one or more <span tal:replace="mapper/pretty_sources_name"/> 
to add
-         </span>
-        </th>
-        <span tal:omit-tag=""
-              tal:define="bds mapper/new_sources"
-              tal:repeat="bd bds">
-         <tr>
-          <td>
-           <input tal:attributes="type string:checkbox;
-                                  name python:'source_bd_' + bd['path']"/>
-          </td>
-          <td tal:define="bytes bd/props/size/value;
-                          dummy python:here.bytes_to_value_units(bytes);
-                          size python:dummy[0];
-                          units python:dummy[1]">
-           <span tal:replace="bd/path"/> (<span tal:replace="size"/> <span 
tal:replace="units"/> - <span tal:replace="bd/pretty_type"/>)
-          </td>
-         </tr>
-        </span>
-        <tr>
-         <td colspan="2"
-             style="height: 100%;">
-          &nbsp;
-         </td>
-        </tr>
-       </table>
-      </td>
-      <td>
-       &nbsp;
-      </td>
-     </tr>
-     <tr class="props-form-footer">
-      <td colspan="2">
-       <table style="width: 100%;">
-        <tr>
-         <td align="left">
-          &nbsp;
-         </td>
-         <td align="right">
-          <input tal:define="go_to_mapper_url 
python:'./?pagetype=52&mapper_type=' + mapper['mapper_type'] + '&mapper_id=' + 
mapper['mapper_id'] + '&storagename=' + storagename"
-                 tal:attributes="type string:button;
-                                 name string:cancel_button;
-                                 value string:Cancel;
-                                 onclick python:'window.location.assign(\'' + 
go_to_mapper_url + '\')'"
-                 class="form_button"/>
-          <input tal:define="prompt_msg python:'Do you really want to add 
selected ' + mapper['pretty_sources_name'] + ' to \\\'' + mapper['pretty_name'] 
+ '\\\'?';
-                             validate_url context/validate_html/absolute_url"
-                 tal:attributes="id add_sources_button_id;
-                                 type string:button;
-                                 name string:action_type;
-                                 value string:Add;
-                                 onclick python:'return 
validate_and_submit_form(\'' + validate_url + '\', \'' + add_sources_form_id + 
'\', \'' + add_sources_button_id + '\', \'' + prompt_msg + '\')'"
-                 class="form_button"/>
-         </td>
-        </tr>
-       </table>
-      </td>
-     </tr>
-    </table>
-   </form>
+               <tr class="props-form-body">
+                       <td style="height: 100%;">
+                               <table class="props-inner-table">
+                                       <th colspan="2">
+                                               <span 
tal:condition="python:len(mapper['new_sources']) == 1">
+                                                       Select <span 
tal:replace="mapper/pretty_source_name"/> to add
+                                               </span>
+                                               <span 
tal:condition="python:len(mapper['new_sources']) > 1">
+                                                       Select one or more 
<span tal:replace="mapper/pretty_sources_name"/> to add
+                                               </span>
+                                       </th>
+                                       <tr tal:repeat="bd mapper/new_sources">
+                                               <td>
+                                                       <input type="checkbox"
+                                                               
tal:attributes="name python:'source_bd_' + bd['path']" />
+                                               </td>
+                                               <td tal:define="
+                                                       bytes 
bd/props/size/value;
+                                                       dummy 
python:here.bytes_to_value_units(bytes);
+                                                       size python:dummy[0];
+                                                       units python:dummy[1]">
+
+                                                       <span 
tal:replace="bd/path" /> (<span tal:replace="size" /> <span tal:replace="units" 
/> - <span tal:replace="bd/pretty_type" />)
+                                               </td>
+                                       </tr>
+                                       <tr>
+                                               <td colspan="2" style="height: 
100%;">
+                                                       &nbsp;
+                                               </td>
+                                       </tr>
+                               </table>
+                       </td>
+                       <td>
+                               &nbsp;
+                       </td>
+               </tr>
+               <tr class="props-form-footer">
+                       <td colspan="2">
+                               <table style="width: 100%;">
+                                       <tr>
+                                               <td align="left">
+                                                       &nbsp;
+                                               </td>
+                                               <td align="right">
+                                                       <input type="button" 
name="cancel_button"
+                                                               value="Cancel" 
class="form_button"
+                                                               tal:define="
+                                                                       
go_to_mapper_url python:'./?pagetype=52&mapper_type=' + mapper['mapper_type'] + 
'&mapper_id=' + mapper['mapper_id'] + '&storagename=' + storagename"
+                                                               tal:attributes="
+                                                                       onclick 
python:'window.location.assign(\'' + go_to_mapper_url + '\')'" />
+
+                                                       <input type="button" 
name="action_type"
+                                                               value="Add" 
class="form_button"
+                                                               tal:define="
+                                                                       
prompt_msg python:'Do you really want to add selected ' + 
mapper['pretty_sources_name'] + ' to \\\'' + mapper['pretty_name'] + '\\\'?';
+                                                                       
validate_url context/validate_html/absolute_url"
+                                                               tal:attributes="
+                                                                       id 
add_sources_button_id;
+                                                                       onclick 
python:'return validate_and_submit_form(\'' + validate_url + '\', \'' + 
add_sources_form_id + '\', \'' + add_sources_button_id + '\', \'' + prompt_msg 
+ '\')'" />
+                                               </td>
+                                       </tr>
+                               </table>
+                       </td>
+               </tr>
+       </table>
+       </form>
 </div>
 
 <div tal:omit-tag="" metal:define-macro="display-props-tableless">
-   <span tal:omit-tag=""
-         tal:repeat="prop props">
-     <tr tal:define="p prop/name;
-                     prop_pr_name prop/pretty_name"
-         tal:condition="not: prop/hidden">
-      <td tal:content="prop_pr_name"/>
-      <td tal:define="prop_type prop/type;
-                      prop_units prop/units">
-       <table>
-        <tr>
-         <td>
-          <span tal:condition="python:prop_type == 'label'">
-           <span tal:omit-tag=""
-                 tal:condition="prop/replacements|nothing">
-            <input tal:attributes="type string:hidden;
-                                   name p;
-                                   value prop/value"/>
-            <select tal:define="repls prop/replacements;
-                                select_id python:prefix + 
'_select_replace_block_' + p"
-                    tal:attributes="id select_id;
-                                    onfocus 
python:'replace_properties_block__old_select_value = this.value';
-                                    onchange 
python:'replace_properties_block(\'' + properties_span_id + '\', \'' + 
select_id + '\')'">
-             <span tal:omit-tag=""
-                   tal:repeat="repl_name repls/repl_names">
-              <option tal:attributes="value 
python:repls[repl_name]['path']"/><span tal:replace="repl_name"/>
-             </span>
-            </select>
-           </span>
-           <span tal:omit-tag=""
-                 tal:condition="not: prop/replacements|nothing">
-            <span tal:condition="python: prop_units == 'bytes'">
-             <span tal:define="dummy python: 
here.bytes_to_value_units(prop['value']);
-                               value python: str(dummy[0]) + ' ' + 
str(dummy[1])"
-                   tal:replace="value"/>
-            </span>
-            <span tal:condition="python: prop_units != 'bytes'"
-                  tal:replace="prop/value"/>
-           </span>
-          </span>
-
-
-
-          <input tal:condition="python:prop_type == 'text'"
-                 tal:attributes="name p;
-                                 type string:text;
-                                 value prop/value;
-                                 onkeypress python:'return 
validate_text_keypress(this, event, 2, \'' + 
prop['validation']['illegal_chars'] + '\', ' + 
str(prop['validation']['max_length']) + ')';
-                                 onchange python:'validate_text(this, 2, \'' + 
prop['validation']['illegal_chars'] + '\', \'' + 
prop['validation']['reserved_words'] + '\', ' + 
str(prop['validation']['min_length']) + ', ' + 
str(prop['validation']['max_length']) + ', \'' + form_submit_button_id + 
'\')'"/>
-
-
+       <tal:block tal:repeat="prop props">
+               <tr tal:condition="not: prop/hidden"
+                       tal:define="
+                               p prop/name;
+                               prop_pr_name prop/pretty_name">
+                       <td tal:content="prop_pr_name" />
+                       <td tal:define="
+                               prop_type prop/type;
+                               prop_units prop/units">
+                               <table>
+                                       <tr>
+                                               <td>
+                                                       <span 
tal:condition="python:prop_type == 'label'">
+                                                               <tal:block 
tal:condition="prop/replacements|nothing">
+                                                                       <input 
type="hidden"
+                                                                               
tal:attributes="
+                                                                               
        name p;
+                                                                               
        value prop/value" />
+                                                                       <select
+                                                                               
tal:define="
+                                                                               
        repls prop/replacements;
+                                                                               
        select_id python:prefix + '_select_replace_block_' + p"
+                                                                               
tal:attributes="
+                                                                               
        id select_id;
+                                                                               
        onfocus python:'replace_properties_block__old_select_value = 
this.value';
+                                                                               
        onchange python:'replace_properties_block(\'' + properties_span_id + 
'\', \'' + select_id + '\')'">
+                                                                               
<tal:block tal:repeat="repl_name repls/repl_names">
+                                                                               
        <option tal:attributes="
+                                                                               
                value python:repls[repl_name]['path']" />
+                                                                               
        <span tal:replace="repl_name" />
+                                                                               
</tal:block>
+                                                                       
</select>
+                                                               </tal:block>
+
+                                                               <tal:block 
tal:condition="not: prop/replacements|nothing">
+                                                                       <span 
tal:condition="python: prop_units == 'bytes'">
+                                                                               
<span tal:define="
+                                                                               
                dummy python: here.bytes_to_value_units(prop['value']);
+                                                                               
                value python: str(dummy[0]) + ' ' + str(dummy[1])"
+                                                                               
                tal:replace="value" />
+                                                                       </span>
+                                                                       <span 
tal:condition="python: prop_units != 'bytes'"
+                                                                               
tal:replace="prop/value" />
+                                                               </tal:block>
+                                                       </span>
 
-          <span tal:omit-tag=""
-                tal:condition="python:prop_type == 'int' and prop_units != 
'bytes'">
-           <input tal:attributes="name p;
-                                  type string:text;
-                                  size string:15;
-                                  value prop/value;
-                                  onchange python:'validate_int(this, 2, ' + 
str(prop['validation']['min']) + ', ' + str(prop['validation']['max']) + ', ' + 
str(prop['validation']['step']) + ', \'' + prop_units + '\', \'' + 
form_submit_button_id + '\')'"
-                  onkeypress="return validate_int_keypress(this, event, 2)"/>
-           (<span tal:replace="prop/validation/min"/> - <span 
tal:replace="prop/validation/max"/>)
-           <span tal:replace="prop_units"/>
-          </span>
-          <span tal:omit-tag=""
-                tal:condition="python:prop_type == 'int' and prop_units == 
'bytes'">
-           <span tal:define="bytes prop/value;
-                             dummy python:here.bytes_to_value_prefunits(bytes);
-                             value python:dummy[0];
-                             units python:dummy[1];
-                             minim 
python:here.convert_bytes(prop['validation']['min'], units);
-                             maxim 
python:here.convert_bytes(prop['validation']['max'], units);
-                             step 
python:here.convert_bytes(prop['validation']['step'], units)">
-            <input tal:attributes="name p;
-                                   type string:text;
-                                   size string:15;
-                                   value value;
-                                   onchange python:'validate_float(this, 2, ' 
+ str(minim) + ', ' + str(maxim) + ', ' + str(step) + ', \'' + units + '\', \'' 
+ form_submit_button_id + '\')'"
-                   onkeypress="return validate_float_keypress(this, event, 
2)"/>
-            (<span tal:replace="minim"/> - <span tal:replace="maxim"/>)
-            <span tal:replace="units"/>
-           </span>
-          </span>
+                                                       <input type="text"
+                                                               
tal:condition="python:prop_type == 'text'"
+                                                               tal:attributes="
+                                                                       name p;
+                                                                       value 
prop/value;
+                                                                       
onkeypress python:'return validate_text_keypress(this, event, 2, \'' + 
prop['validation']['illegal_chars'] + '\', ' + 
str(prop['validation']['max_length']) + ')';
+                                                                       
onchange python:'validate_text(this, 2, \'' + 
prop['validation']['illegal_chars'] + '\', \'' + 
prop['validation']['reserved_words'] + '\', ' + 
str(prop['validation']['min_length']) + ', ' + 
str(prop['validation']['max_length']) + ', \'' + form_submit_button_id + '\')'" 
/>
+
+                                                       <tal:block 
tal:condition="python:prop_type == 'int' and prop_units != 'bytes'">
+                                                               <input 
type="text" size="15"
+                                                                       
tal:attributes="
+                                                                               
name p;
+                                                                               
value prop/value;
+                                                                               
onchange python:'validate_int(this, 2, ' + str(prop['validation']['min']) + ', 
' + str(prop['validation']['max']) + ', ' + str(prop['validation']['step']) + 
', \'' + prop_units + '\', \'' + form_submit_button_id + '\')'"
+                                                                       
onkeypress="return validate_int_keypress(this, event, 2)" />
+                                                               (<span 
tal:replace="prop/validation/min" /> - <span tal:replace="prop/validation/max" 
/>) <span tal:replace="prop_units" />
+                                                       </tal:block>
 
+                                                       <tal:block 
tal:condition="python:prop_type == 'int' and prop_units == 'bytes'">
+                                                               <span 
tal:define="
+                                                                       bytes 
prop/value;
+                                                                       dummy 
python:here.bytes_to_value_prefunits(bytes);
+                                                                       value 
python:dummy[0];
+                                                                       units 
python:dummy[1];
+                                                                       minim 
python:here.convert_bytes(prop['validation']['min'], units);
+                                                                       maxim 
python:here.convert_bytes(prop['validation']['max'], units);
+                                                                       step 
python:here.convert_bytes(prop['validation']['step'], units)">
 
+                                                                       <input 
type="string" size="15"
+                                                                               
tal:attributes="
+                                                                               
        name p;
+                                                                               
        value value;
+                                                                               
        onchange python:'validate_float(this, 2, ' + str(minim) + ', ' + 
str(maxim) + ', ' + str(step) + ', \'' + units + '\', \'' + 
form_submit_button_id + '\')'"
+                                                                               
onkeypress="return validate_float_keypress(this, event, 2)" />
+                                                                       (<span 
tal:replace="minim" /> - <span tal:replace="maxim" />) <span 
tal:replace="units" />
+                                                               </span>
+                                                       </tal:block>
 
-          <span tal:condition="python:prop_type == 'select'">
-           <select tal:define="prop_options prop/value"
-                   tal:attributes="name p">
-            <span tal:omit-tag=""
-                  tal:condition="python: prop_units != 'bytes'"
-                  tal:repeat="prop_opt prop_options">
-             <option tal:attributes="value prop_opt"/><span 
tal:replace="prop_opt"/>
-            </span>
-            <span tal:omit-tag=""
-                  tal:condition="python: prop_units == 'bytes'"
-                  tal:repeat="prop_opt prop_options">
-             <option tal:attributes="value prop_opt"/><span tal:define="dummy 
python: here.bytes_to_value_units(prop_opt);
-                                                                        value 
python: str(dummy[0]) + ' ' + str(dummy[1])"
-                                                            
tal:replace="value"/>
-            </span>
-           </select>
-          </span>
-         </td>
-         <td>
-          <span tal:condition="python: prop_units != 'bytes'"
-                tal:replace="prop_units"/>
-         </td>
-        </tr>
-       </table>
-      </td>
-     </tr>
-   </span>
-   <tr>
-    <td colspan="2" style="height: 100%;">
-     &nbsp;
-    </td>
-   </tr>
+                                                       <tal:block 
tal:condition="python:prop_type == 'select'">
+                                                               <select 
tal:define="prop_options prop/value" tal:attributes="name p">
+                                                                       
<tal:block
+                                                                               
tal:condition="python: prop_units != 'bytes'"
+                                                                               
tal:repeat="prop_opt prop_options">
+                                                                               
<option tal:attributes="value prop_opt" />
+                                                                               
<span tal:replace="prop_opt" />
+                                                                       
</tal:block>
+                                                                       
<tal:block
+                                                                               
tal:condition="python: prop_units == 'bytes'"
+                                                                               
tal:repeat="prop_opt prop_options">
+                                                                               
<option tal:attributes="value prop_opt" />
+                                                                               
<span
+                                                                               
        tal:define="
+                                                                               
                dummy python: here.bytes_to_value_units(prop_opt);
+                                                                               
                value python: str(dummy[0]) + ' ' + str(dummy[1])"
+                                                                               
        tal:replace="value" />
+                                                                       
</tal:block>
+                                                               </select>
+                                                       </tal:block>
+                                               </td>
+                                               <td>
+                                                       <span 
tal:condition="python: prop_units != 'bytes'" tal:replace="prop_units" />
+                                               </td>
+                                       </tr>
+                               </table>
+                       </td>
+               </tr>
+       </tal:block>
+       <tr>
+               <td colspan="2" style="height: 100%;">
+                       &nbsp;
+               </td>
+       </tr>
 </div>
 
 <div tal:omit-tag="" metal:define-macro="display-props">
@@ -968,7 +943,7 @@
 <div metal:define-macro="display-BD">
        <div metal:use-macro="here/form-macros/macros/forms-css" />
 
-   <span tal:omit-tag=""
+       <span tal:omit-tag=""
          tal:define="mapper string:;
                      conts python:bd_data['contents'];
                      prefix prefix|bd_data/path;
@@ -978,9 +953,8 @@
                      apply_button_id python:prefix + 'apply_button_id';
                      form_submit_button_id apply_button_id;
                      content_span_id python:prefix + 'content_span_id'">
-    <form tal:attributes="id bd_form_id;
-                          method string:get">
 
+    <form method="get" tal:attributes="id bd_form_id">
      <input tal:attributes="type string:hidden;
                             name string:pagetype;
                             value string:commit_changes"/>
@@ -1089,11 +1063,11 @@
                       tal:attributes="id select_content_id;
                                       name string:content_id;
                                       onchange funct">
-               <span tal:omit-tag=""
-                     tal:repeat="cont conts">
+               <span tal:omit-tag="" tal:repeat="cont conts">
                 <option tal:attributes="value cont/id"/><span 
tal:replace="cont/name"/>
                </span>
               </select>
+
               <span tal:define="cont python:conts[0]"
                     tal:condition="python:len(conts) == 1">
                <input tal:attributes="id select_content_id;
@@ -1338,8 +1312,10 @@
                   value="Reset"
                   onclick="return reset_form(this.form)"
                   class="form_button"/>
-           <input tal:define="prompt_msg python:'Do you really want to apply 
changes to ' + mapper['pretty_type'] + ' \\\'' + mapper['pretty_name'] + 
'\\\'?';
-                              validate_url context/validate_html/absolute_url"
+
+           <input tal:define="
+                                       prompt_msg python:'Do you really want 
to apply changes to ' + mapper['pretty_type'] + ' \\\'' + mapper['pretty_name'] 
+ '\\\'?';
+                                       validate_url 
context/validate_html/absolute_url"
                   tal:attributes="id apply_button_id;
                                   type string:button;
                                   name string:action_type;
--- conga/luci/storage/storage_probing.js       2007/09/25 16:49:36     1.1
+++ conga/luci/storage/storage_probing.js       2007/09/25 22:47:05     1.2
@@ -9,7 +9,9 @@
 
 function strip_left(txt) {
        for (var i = 0 ; i < txt.length ; i++) {
-               if (txt[i] == " " || txt[i] == "\n") {
+               if (txt[i] == ' ' || txt[i] == '\n' ||
+                       txt[i] == '\r' || txt[i] == '\t')
+               {
                        continue;
                }
                return txt.substr(i);
--- conga/luci/storage/storage_utils.js 2007/09/25 16:49:36     1.1
+++ conga/luci/storage/storage_utils.js 2007/09/25 22:47:05     1.2
@@ -9,7 +9,9 @@
 
 function strip_left(txt) {
        for (var i = 0 ; i < txt.length ; i++) {
-               if (txt[i] == " " || txt[i] == "\n") {
+               if (txt[i] == ' ' || txt[i] == '\n' ||
+                       txt[i] == '\r' || txt[i] == '\t')
+               {
                        continue;
                }
                return txt.substr(i);
--- conga/luci/storage/storage_validation.js    2007/09/25 16:49:36     1.1
+++ conga/luci/storage/storage_validation.js    2007/09/25 22:47:05     1.2
@@ -305,7 +305,9 @@
 
 function strip_left(txt) {
        for (var i = 0 ; i < txt.length ; i++) {
-               if (txt[i] == " " || txt[i] == "\n") {
+               if (txt[i] == ' ' || txt[i] == '\n' ||
+                       txt[i] == '\r' || txt[i] == '\t')
+               {
                        continue;
                }
                return txt.substr(i);
@@ -346,7 +348,7 @@
                                        }
                                }
 
-                               alert(err_msg);
+                               alert(err_msg || 'An unknown error occurred');
                        }
                } else {
                        alert("Error retrieving data from server");
--- conga/luci/storage/validate_html    2007/09/25 18:55:13     1.6
+++ conga/luci/storage/validate_html    2007/09/25 22:47:05     1.7
@@ -31,7 +31,7 @@
 
 <tal:block tal:condition="access_to_host_allowed">
        <span tal:condition="python:action_type == 'Validate'"
-               tal:content="python:here.validate(storage_report, request)" />
+               tal:replace="python:here.validate(storage_report, request)" />
 
        <tal:block tal:condition="python:action_type != 'Validate'">
                This form is to be used for validation only

Reply via email to