[Cluster-devel] conga/luci cluster/form-chooser cluster/form-m ...
rmccabe at sourceware.org
rmccabe at sourceware.org
Tue Sep 25 22:47:07 UTC 2007
CVSROOT: /cvs/cluster
Module name: conga
Changes by: rmccabe at sourceware.org 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;"> </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;">
-
- </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%;">
-
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr class="props-form-footer">
- <td>
-
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr class="props-form-footer">
- <td colspan="2">
- <table style="width: 100%;">
- <tr>
- <td align="left">
-
- </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%;">
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr class="props-form-footer">
+ <td>
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr class="props-form-footer">
+ <td colspan="2">
+ <table style="width: 100%;">
+ <tr>
+ <td align="left">
+
+ </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;">
+
+ </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;">
-
- </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%;">
-
- </td>
- </tr>
- </table>
- </td>
- <td>
-
- </td>
- </tr>
- <tr class="props-form-footer">
- <td colspan="2">
- <table style="width: 100%;">
- <tr>
- <td align="left">
-
- </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%;">
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td>
+
+ </td>
+ </tr>
+ <tr class="props-form-footer">
+ <td colspan="2">
+ <table style="width: 100%;">
+ <tr>
+ <td align="left">
+
+ </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%;">
-
- </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%;">
+
+ </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
More information about the Cluster-devel
mailing list