From: rmccabe@sourceware.org <rmccabe@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] conga/luci/storage cache_report check-batch cl ...
Date: 25 Sep 2007 03:50:34 -0000 [thread overview]
Message-ID: <20070925035034.7005.qmail@sourceware.org> (raw)
CVSROOT: /cvs/cluster
Module name: conga
Changes by: rmccabe at sourceware.org 2007-09-25 03:50:28
Modified files:
luci/storage : cache_report check-batch clu_portlet_fetcher
form-chooser form-macros index_html
mappings_macros mappings_provider
portlet_cluconfig portlet_cluconfig_macro
validate_html
Removed files:
luci/storage : 100wait.gif black_bar_40.png
black_right_end_40.png blue_bar_40.png
blue_cap_40.png blue_right_end_40.png
icon_bd_LV.png icon_bd_LV_snapshot.png
icon_bd_crypto.png icon_bd_ide.png
icon_bd_multipath.png icon_bd_net.png
icon_bd_partition.png icon_bd_raid.png
icon_bd_scsi.png icon_content_FS.png
icon_content_PV.png icon_mapper_PT.png
icon_mapper_VG.png icon_mapper_crypto.png
icon_mapper_multipath.png icon_mapper_raid.png
red_bar_40.png red_cap_40.png
red_right_end_40.png selection_1px_40.png
selection_bar_40.png selection_left_end_40.png
selection_right_end_40.png snapshot.gif
tree_bullet.gif tree_closed.gif tree_opened.gif
tree_transparent.gif
Log message:
Cleanup:
- First pass of making the look and feel of this consistent with the rest of the app
- Move all the image files into the site custom directory so they can be cached
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/cache_report.diff?cvsroot=cluster&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/check-batch.diff?cvsroot=cluster&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/clu_portlet_fetcher.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/form-chooser.diff?cvsroot=cluster&r1=1.7&r2=1.8
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/form-macros.diff?cvsroot=cluster&r1=1.25&r2=1.26
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/index_html.diff?cvsroot=cluster&r1=1.10&r2=1.11
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/mappings_macros.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/mappings_provider.diff?cvsroot=cluster&r1=1.6&r2=1.7
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/portlet_cluconfig.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/portlet_cluconfig_macro.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/validate_html.diff?cvsroot=cluster&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/100wait.gif.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/black_bar_40.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/black_right_end_40.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/blue_bar_40.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/blue_cap_40.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/blue_right_end_40.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_bd_LV.png.diff?cvsroot=cluster&r1=1.2&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_bd_LV_snapshot.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_bd_crypto.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_bd_ide.png.diff?cvsroot=cluster&r1=1.2&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_bd_multipath.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_bd_net.png.diff?cvsroot=cluster&r1=1.2&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_bd_partition.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_bd_raid.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_bd_scsi.png.diff?cvsroot=cluster&r1=1.2&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_content_FS.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_content_PV.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_mapper_PT.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_mapper_VG.png.diff?cvsroot=cluster&r1=1.2&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_mapper_crypto.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_mapper_multipath.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/icon_mapper_raid.png.diff?cvsroot=cluster&r1=1.2&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/red_bar_40.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/red_cap_40.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/red_right_end_40.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/selection_1px_40.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/selection_bar_40.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/selection_left_end_40.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/selection_right_end_40.png.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/snapshot.gif.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/tree_bullet.gif.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/tree_closed.gif.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/tree_opened.gif.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/tree_transparent.gif.diff?cvsroot=cluster&r1=1.1&r2=NONE
--- conga/luci/storage/cache_report 2007/09/11 16:04:35 1.4
+++ conga/luci/storage/cache_report 2007/09/25 03:50:27 1.5
@@ -1,15 +1,18 @@
-<span tal:define="global storagename request/storagename|nothing"
- tal:replace="string:"/>
-<span tal:define="stosystemss context/systems/storage/objectItems;
- global allowed_systems python:here.allowed_systems(stosystemss);
- global access_to_host_allowed python:here.access_to_host_allowed(storagename, allowed_systems)"
- tal:replace="string:"/>
-<span tal:define="global ricci python:here.get_ricci_communicator(storagename, allowed_systems);
- global cache_result python:here.cache_storage_report(ricci, request.SESSION)"
- tal:replace="string:"/>
-<span tal:condition="python: cache_result == True"
- tal:replace="string:OK"/>
+<tal:block tal:define="global storagename request/storagename|nothing" />
+
+<tal:block tal:define="
+ stosystemss context/systems/storage/objectItems;
+ global allowed_systems python:here.allowed_systems(stosystemss);
+ global access_to_host_allowed python:here.access_to_host_allowed(storagename, allowed_systems)" />
+
+<tal:block tal:define="
+ global ricci python:here.get_ricci_communicator(storagename, allowed_systems);
+ global cache_result python:here.cache_storage_report(ricci, request.SESSION)" />
+
+<span tal:condition="python: cache_result == True" tal:replace="string:OK" />
+
<span tal:condition="python: cache_result != True and access_to_host_allowed"
- tal:replace="structure cache_result"/>
+ tal:replace="structure cache_result" />
+
<span tal:condition="python: not access_to_host_allowed"
- tal:replace="string: Insufficient Rights"/>
+ tal:replace="string: Insufficient Rights" />
--- conga/luci/storage/check-batch 2007/09/11 16:04:35 1.3
+++ conga/luci/storage/check-batch 2007/09/25 03:50:27 1.4
@@ -1,60 +1,48 @@
-<span tal:omit-tag=""
- tal:define="global storagename request/storagename;
- global batch_id request/batch_id"/>
-<span tal:omit-tag=""
- tal:define="stosystemss context/systems/storage/objectItems;
- global allowed_systems python:here.allowed_systems(stosystemss);
- global access_to_host_allowed python:here.access_to_host_allowed(storagename, allowed_systems)"/>
-<span tal:omit-tag=""
- tal:define="global ricci python:here.get_ricci_communicator(storagename, allowed_systems)"/>
+<tal:block tal:define="
+ global storagename request/storagename;
+ global batch_id request/batch_id" />
+
+<tal:block tal:define="
+ stosystemss context/systems/storage/objectItems;
+ global allowed_systems python:here.allowed_systems(stosystemss);
+ global access_to_host_allowed python:here.access_to_host_allowed(storagename, allowed_systems)" />
+<tal:block tal:define="
+ global ricci python:here.get_ricci_communicator(storagename, allowed_systems)" />
-
-<span tal:omit-tag=""
- tal:condition="not: access_to_host_allowed">
-FAILURE
-<span tal:replace="structure context/storage/index_html/absolute_url"/>
-You are not authorized to modify storage system <span tal:replace="structure storagename"/>!!!
-</span>
-
-
-<span tal:omit-tag=""
- tal:condition="access_to_host_allowed">
- <span tal:omit-tag=""
- tal:define="index_html_URL context/storage/index_html/absolute_url;
- dummy python:here.get_storage_batch_result(storagename, ricci, index_html_URL, batch_id);
- error dummy/error;
- completed dummy/completed;
- redirect_url dummy/redirect_url;
- msg dummy/msg">
-
- <span tal:omit-tag=""
- tal:condition="not: error">
- <span tal:omit-tag=""
- tal:condition="completed">
-DONE
-<span tal:replace="structure redirect_url"/>
-<span tal:replace="structure msg"/>
- </span>
-
- <span tal:omit-tag=""
- tal:condition="not: completed">
-NOT_DONE
-<span tal:replace="structure redirect_url"/>
-<span tal:replace="structure msg"/>
- </span>
- </span>
-
-
- <span tal:omit-tag=""
- tal:condition="error">
+<tal:block tal:condition="not: access_to_host_allowed">
FAILURE
-<span tal:replace="structure redirect_url"/>
-<span tal:replace="structure msg"/>
- </span>
-
-
-
-
- </span>
-</span>
+ <span tal:replace="structure context/storage/index_html/absolute_url" />
+ You are not authorized to access system <span tal:replace="structure storagename" />
+</tal:block>
+
+<tal:block tal:condition="access_to_host_allowed">
+ <tal:block tal:define="
+ index_html_URL context/storage/index_html/absolute_url;
+ dummy python:here.get_storage_batch_result(storagename, ricci, index_html_URL, batch_id);
+ error dummy/error;
+ completed dummy/completed;
+ redirect_url dummy/redirect_url;
+ msg dummy/msg">
+
+ <tal:block tal:condition="not: error">
+ <tal:block tal:condition="completed">
+ DONE
+ <span tal:replace="structure redirect_url" />
+ <span tal:replace="structure msg" />
+ </tal:block>
+
+ <tal:block tal:condition="not: completed">
+ NOT_DONE
+ <span tal:replace="structure redirect_url" />
+ <span tal:replace="structure msg" />
+ </tal:block>
+ </tal:block>
+
+ <tal:block tal:condition="error">
+ FAILURE
+ <span tal:replace="structure redirect_url" />
+ <span tal:replace="structure msg" />
+ </tal:block>
+ </tal:block>
+</tal:block>
--- conga/luci/storage/clu_portlet_fetcher 2007/09/11 16:04:35 1.2
+++ conga/luci/storage/clu_portlet_fetcher 2007/09/25 03:50:27 1.3
@@ -1,43 +1,14 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
- i18n:domain="plone">
-
+ i18n:domain="plone">
<body>
-
<metal:leftcolumn define-macro="left_column">
-<span tal:define="global stosystems allowed_systems"/>
-<div tal:omit-tag="" metal:use-macro="here/portlet_cluconfig/macros/stochooseportlet" />
-<!--
-<span tal:omit-tag="" tal:define="global hasstoragename request/storagename |nothing"/>
-<span tal:omit-tag="" tal:condition="hasstoragename">
--->
-<span tal:omit-tag="" tal:condition="storage_report">
-<div tal:omit-tag="" metal:use-macro="here/portlet_cluconfig/macros/stoconfigportlet" />
-</span>
+ <tal:block tal:define="global stosystems allowed_systems" />
+ <div tal:omit-tag=""
+ metal:use-macro="here/portlet_cluconfig/macros/stochooseportlet" />
+ <tal:block tal:condition="storage_report">
+ <div tal:omit-tag=""
+ metal:use-macro="here/portlet_cluconfig/macros/stoconfigportlet" />
+ </tal:block>
</metal:leftcolumn>
-
-<!--
-
-<metal:rightcolumn define-macro="right_column"
- tal:define="Iterator python:modules['Products.CMFPlone'].IndexIterator;
- tabindex python:Iterator(pos=20000);"
- tal:condition="sr">
-
- <metal:block tal:repeat="slot sr">
- <tal:dontcrash tal:on-error="python:context.plone_log('Error %s on %s while rendering portlet %s'%(error.type, error.value, slot[0]))"
- tal:define="pathexpr python:slot[0];
- usemacro python:slot[1];">
-
- <tal:block tal:condition="usemacro">
- <metal:block metal:use-macro="python:path(pathexpr)" />
- </tal:block>
-
- <span tal:condition="not: usemacro"
- tal:replace="structure python:path(pathexpr)" />
-
- </tal:dontcrash>
- </metal:block>
-</metal:rightcolumn>
--->
-
</body>
</html>
--- conga/luci/storage/form-chooser 2007/09/11 16:04:35 1.7
+++ conga/luci/storage/form-chooser 2007/09/25 03:50:27 1.8
@@ -1,80 +1,69 @@
<html>
- <head>
- <title id="pagetitle" tal:content="template/title">The title</title>
- </head>
- <body>
-
- <metal:choose-form metal:define-macro="main-form">
-
- <span tal:omit-tag=""
- tal:define="global preferred_size_units python:here.set_persistent_var('preferred_size_units', 'GB')"/>
- <span tal:omit-tag=""
- tal:define="global preferred_path_display python:here.set_persistent_var('preferred_path_display', 'path')"/>
-
-<!--
- <span tal:omit-tag="" tal:condition="python: storage_report == None and storagename != None">
- <div metal:use-macro="here/form-macros/macros/error-form"/>
- </span>
--->
-
- <span tal:omit-tag="" tal:condition="python: access_to_host_allowed == False and storagename != None">
- <h2>
- Insufficient rights
- </h2>
- <div metal:use-macro="here/form-macros/macros/error-form"/>
- </span>
-
- <span tal:omit-tag="" tal:condition="python: storage_report == None and storagename != None and access_to_host_allowed">
- <div metal:use-macro="here/form-macros/macros/wait-probing-storage"/>
- </span>
-
- <span tal:omit-tag="" tal:condition="python: (pagetype == '0' or pagetype == None) and storagename == None">
- <div metal:use-macro="here/form-macros/macros/systems-form"/>
- </span>
-
- <span tal:omit-tag="" tal:condition="python: pagetype=='commit_changes' and storage_report != None">
- <div metal:use-macro="here/form-macros/macros/commit-changes"/>
- </span>
-
- <span tal:omit-tag="" tal:condition="python: pagetype == '44' and storage_report != None">
- <div metal:use-macro="here/form-macros/macros/view-mappers-all-form"/>
- </span>
-
- <span tal:omit-tag="" tal:condition="python: pagetype == '51' and storage_report != None">
- <div metal:use-macro="here/form-macros/macros/view-mappers-form"/>
- </span>
-
- <span tal:omit-tag=""
- tal:define="mapper_id request/mapper_id|nothing"
- tal:condition="mapper_id">
- <span tal:omit-tag=""
- tal:condition="python: mapper_id != 'hard_drives:' and pagetype == '62'">
- <span tal:omit-tag=""
- tal:define="global pagetype string:52"/>
- </span>
- </span>
-
- <span tal:omit-tag="" tal:condition="python: pagetype == '52' and storage_report != None">
- <div metal:use-macro="here/form-macros/macros/view-mapper-form"/>
- </span>
-
- <span tal:omit-tag="" tal:condition="python: pagetype == '61' and storage_report != None">
- <div metal:use-macro="here/form-macros/macros/view-hard-drives-form"/>
- </span>
-
- <span tal:omit-tag="" tal:condition="python: pagetype == '62' and storage_report != None">
- <div metal:use-macro="here/form-macros/macros/view-BD-form"/>
- </span>
-
- <span tal:omit-tag="" tal:condition="python: pagetype == '101' and storage_report != None">
- <div metal:use-macro="here/form-macros/macros/create-mapper-form"/>
- </span>
-
- <span tal:omit-tag="" tal:condition="python: pagetype == '102' and storage_report != None">
- <div metal:use-macro="here/form-macros/macros/add-sources-form"/>
- </span>
+<head>
+ <title id="pagetitle" tal:content="template/title" />
+</head>
+
+<body>
+<metal:choose-form metal:define-macro="main-form">
+ <tal:block tal:define="
+ global preferred_size_units python:here.set_persistent_var('preferred_size_units', 'GB')" />
+
+ <tal:block tal:define="
+ global preferred_path_display python:here.set_persistent_var('preferred_path_display', 'path')" />
+
+ <tal:block tal:condition="python: access_to_host_allowed == False and storagename != None">
+ <h2>Insufficient rights</h2>
+ <div metal:use-macro="here/form-macros/macros/error-form" />
+ </tal:block>
+
+ <tal:block tal:condition="python: storage_report == None and storagename != None and access_to_host_allowed">
+ <div metal:use-macro="here/form-macros/macros/wait-probing-storage" />
+ </tal:block>
+
+ <tal:block tal:condition="python: (pagetype == '0' or pagetype == None) and storagename == None">
+ <div metal:use-macro="here/form-macros/macros/systems-form" />
+ </tal:block>
+
+ <tal:block tal:condition="python: pagetype=='commit_changes' and storage_report != None">
+ <div metal:use-macro="here/form-macros/macros/commit-changes" />
+ </tal:block>
+
+ <tal:block tal:condition="python: pagetype == '44' and storage_report != None">
+ <div metal:use-macro="here/form-macros/macros/view-mappers-all-form" />
+ </tal:block>
+
+ <tal:block tal:condition="python: pagetype == '51' and storage_report != None">
+ <div metal:use-macro="here/form-macros/macros/view-mappers-form" />
+ </tal:block>
+
+ <tal:block tal:define="mapper_id request/mapper_id|nothing"
+ tal:condition="mapper_id">
+ <tal:block
+ tal:condition="python: mapper_id != 'hard_drives:' and pagetype == '62'">
+ <tal:block tal:define="global pagetype string:52" />
+ </tal:block>
+ </tal:block>
+
+ <tal:block tal:condition="python: pagetype == '52' and storage_report != None">
+ <div metal:use-macro="here/form-macros/macros/view-mapper-form" />
+ </tal:block>
+
+ <tal:block tal:condition="python: pagetype == '61' and storage_report != None">
+ <div metal:use-macro="here/form-macros/macros/view-hard-drives-form" />
+ </tal:block>
+
+ <tal:block tal:condition="python: pagetype == '62' and storage_report != None">
+ <div metal:use-macro="here/form-macros/macros/view-BD-form" />
+ </tal:block>
+
+ <tal:block tal:condition="python: pagetype == '101' and storage_report != None">
+ <div metal:use-macro="here/form-macros/macros/create-mapper-form" />
+ </tal:block>
+
+ <tal:block tal:condition="python: pagetype == '102' and storage_report != None">
+ <div metal:use-macro="here/form-macros/macros/add-sources-form" />
+ </tal:block>
+</metal:choose-form>
- </metal:choose-form>
-
- </body>
+</body>
</html>
--- conga/luci/storage/form-macros 2007/09/11 16:04:35 1.25
+++ conga/luci/storage/form-macros 2007/09/25 03:50:27 1.26
@@ -38,13 +38,11 @@
}
tr.props-form-header th {
background-color: #dee7ec;
- text-align: center;
+ text-align: left;
}
tr.props-form-header th:first-child {
- -moz-border-radius-topleft: 15px;
}
tr.props-form-header th:last-child {
- -moz-border-radius-topright: 15px;
}
tr.props-form-body {
@@ -68,10 +66,8 @@
padding: 3px;
}
tr.props-form-footer td:first-child {
- -moz-border-radius-bottomleft: 15px;
}
tr.props-form-footer td:last-child {
- -moz-border-radius-bottomright: 15px;
}
table.props-inner-table {
@@ -182,12 +178,12 @@
<div metal:define-macro="display-committing-changes">
<table style="width: 100%;">
<tr>
- <td align="center">
+ <td align="left">
<img src="100wait.gif" style="padding-top: 1cm;"/>
</td>
</tr>
<tr>
- <td align="center">
+ <td align="left">
<div style="padding-bottom: 4cm;">Committing Changes</div>
</td>
</tr>
@@ -236,7 +232,7 @@
<table style="width: 100%;">
<tr>
- <td align="center">
+ <td align="left">
<img src="100wait.gif" style="padding-top: 1cm;"/>
</td>
</tr>
@@ -350,7 +346,7 @@
<div metal:define-macro="error-form">
<h2>Error Form</h2>
- An error has occured, more details once implemented :)
+ An error has occurred.
</div>
@@ -599,7 +595,7 @@
<span tal:omit-tag=""
tal:define="mapper python:here.get_mapper_data(storage_report, request['mapper_id']);
properties_span_id python:mapper['mapper_id'] + '_properties_span_id'">
- <div align="center">
+ <div align="left">
<h3>
<span tal:content="python:mapper['pretty_type'] + ' '"/>
<span style="cursor: pointer; text-decoration: underline"
@@ -691,7 +687,7 @@
<div tal:attributes="id properties_span_id"
style="width: 700px; min-height: 360px; ">
<span id="warning_box"
- style="position:absolute; visibility: hidden; border: medium double red; color: red; background-color: white; text-align: center; width: 350px; ">
+ style="position:absolute; visibility: hidden; border: medium double red; color: red; background-color: white; text-align: left; width: 350px; ">
</span>
<div tal:attributes="id mapper/mapper_id;
@@ -739,7 +735,7 @@
<span tal:omit-tag=""
tal:define="bd_data python:here.get_bd_data(storage_report, request['mapper_id'], request['bd_path']);
mapper python:here.get_mapper_data(storage_report, request['mapper_id'])">
- <span tal:define="properties_span_id string:if seen in javascript error log -> FIXME">
+ <span tal:condition="bd_data">
<div metal:use-macro="here/form-macros/macros/display-BD"/>
</span>
</span>
@@ -1198,11 +1194,7 @@
input { background-image: none; }
input.validation_error { border: medium double red; background-color: orange; }
input.selected { border: thin solid orange; }
- input.form_button { background-color: #fff;
- -moz-border-radius-topleft: 7px;
- -moz-border-radius-topright: 7px;
- -moz-border-radius-bottomleft: 7px;
- -moz-border-radius-bottomright: 7px; }
+ input.form_button { background-color: #fff; }
</style>
<script language="javascript" type="text/javascript">
@@ -1940,7 +1932,7 @@
<span tal:define="act_name action/name;
act_msg action/msg;
act_link action/link"
- align="center">
+ align="left">
<span tal:condition="act_link">
<input tal:define="act_link python:act_link + '&storagename=' + storagename;
funct python:'window.location.assign(\'' + act_link + '\')'"
--- conga/luci/storage/index_html 2007/09/11 16:04:35 1.10
+++ conga/luci/storage/index_html 2007/09/25 03:50:27 1.11
@@ -79,8 +79,6 @@
}
}
-
-
var span_to_replace = "";
var replace_span_button_to_disable_id = "";
@@ -255,10 +253,6 @@
</metal:block>
</div>
-
-
-
-
</body>
</html>
</metal:page>
--- conga/luci/storage/mappings_macros 2007/09/11 16:04:35 1.2
+++ conga/luci/storage/mappings_macros 2007/09/25 03:50:27 1.3
@@ -1,133 +1,124 @@
<html>
- <head>
- <title tal:content="template/title">The title</title>
- </head>
- <body>
-
- <h2><span tal:replace="here/title_or_id">content title or id</span>
- <span tal:condition="template/title"
- tal:replace="template/title">optional template title</span></h2>
-
- This is Page Template <em tal:content="template/id">template id</em>.
- </body>
-
-
-
-
-
-
-
-
- <div metal:define-macro="draw-base-cyl"
- tal:define="cap python:cyl['color'] + '_cap_40.png'">
-
- <div tal:omit-tag=""
- tal:define="cyls cyl/cyls;
- tmp python:cyls.reverse()"
- tal:repeat="subcyl cyls">
- <div tal:define="beg subcyl/beg;
- end subcyl/end;
- id subcyl/id;
- size python:end - beg;
- right_end python:subcyl['color'] + '_right_end_40.png';
- bar python:subcyl['color'] + '_bar_40.png'"
- tal:attributes="class string:visible;
- id id;
- style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(beg), 'top: 0'))">
- <img tal:attributes="src right_end;
- height string:40;
- width string:10;
- style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(size), 'top: 0'))"/>
- <img tal:attributes="src bar;
- height string:40;
- width python:str(size);
- style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(0), 'top: 0'))"/>
- </div>
- </div>
-
- <img tal:define="one_tmp_assignment python:here.add_commas('position:absolute', here.add_commas('left: -' + str(curve_width), 'top: 0'))"
- tal:attributes="src cap;
- height string:40;
- width string:20;
- style one_tmp_assignment"/>
-
- </div>
-
-
-
- <div metal:define-macro="draw-highlights">
-
- <div tal:omit-tag=""
- tal:repeat="high highs">
- <div tal:define="beg high/beg;
- end high/end;
- size python:end - beg;
- id high/id"
- tal:attributes="class string:invisible;
- id id;
- style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(beg), 'top: 0'))">
- <span tal:omit-tag=""
- tal:condition="python:high['type'] == 'select'">
- <div metal:use-macro="here/mappings_macros/macros/draw-select"/>
- </span>
- <span tal:omit-tag=""
- tal:condition="python:high['type'] == 'snapshot'">
- <div metal:use-macro="here/mappings_macros/macros/draw-snapshot"/>
- </span>
- <span tal:omit-tag=""
- tal:condition="python:high['type'] == 'snapshot-origin'">
- <div metal:use-macro="here/mappings_macros/macros/draw-snapshot-origin"/>
- </span>
- </div>
- </div>
-
- </div>
-
-
- <div metal:define-macro="draw-select">
- <span tal:omit-tag=""
- tal:condition="python:size > 0 and size < curve_width">
- <span tal:repeat="off python:range(size)">
- <img tal:attributes="src string:selection_1px_40.png;
- height string:40;
- style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(off), 'top: 0'))"/>
- </span>
- </span>
- <span tal:omit-tag=""
- tal:condition="python:size >= curve_width">
- <img tal:attributes="src string:selection_left_end_40.png;
- height string:40;
- width string:10;
- style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(0), 'top: 0'))"/>
- <img tal:attributes="src string:selection_bar_40.png;
- height string:40;
- width python:str(size - curve_width);
- style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(curve_width), 'top: 0'))"/>
- <img tal:attributes="src string:selection_right_end_40.png;
- height string:40;
- width string:10;
- style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(size), 'top: 0'))"/>
- </span>
- </div>
-
- <div metal:define-macro="draw-snapshot">
- <div style="height:40"></div>
- <div tal:attributes="style python:here.add_commas('position:absolute', 'left: ' + str(size/2-12))">
- <img src="snapshot.gif" style="width: 25px; height: 20px;"/>
- </div>
- </div>
-
- <div metal:define-macro="draw-snapshot-origin">
-<!-- <div style="position: absolute; top: -3">
- <div style="border-top: medium dotted red; border-bottom: medium dotted red"> -->
- <div>
- <div style="border-bottom: medium dotted #0000FF">
- <div tal:attributes="style python:here.add_commas('height: 40', 'width: ' + str(size))"></div>
- </div>
- </div>
- </div>
-
-
-
+<head>
+ <title tal:content="template/title" />
+</head>
+
+<body>
+
+<h2>
+ <span tal:replace="here/title_or_id" />
+ <span tal:condition="template/title" tal:replace="template/title" />
+</h2>
+
+</body>
+
+<div metal:define-macro="draw-base-cyl"
+ tal:define="cap python:cyl['color'] + '_cap_40.png'">
+
+ <div tal:omit-tag=""
+ tal:define="
+ cyls cyl/cyls;
+ tmp python:cyls.reverse()"
+ tal:repeat="subcyl cyls">
+
+ <div
+ tal:define="
+ beg subcyl/beg;
+ end subcyl/end;
+ id subcyl/id;
+ size python:end - beg;
+ right_end python:subcyl['color'] + '_right_end_40.png';
+ bar python:subcyl['color'] + '_bar_40.png'"
+ tal:attributes="
+ class string:visible;
+ id id;
+ style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(beg), 'top: 0'))">
+
+ <img height="40" width="10"
+ tal:attributes="
+ src right_end;
+ style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(size), 'top: 0'))" />
+
+ <img height="40"
+ tal:attributes="
+ src bar;
+ width python:str(size);
+ style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(0), 'top: 0'))" />
+ </div>
+ </div>
+
+ <img height="40" width="20"
+ tal:define="
+ one_tmp_assignment python:here.add_commas('position:absolute', here.add_commas('left: -' + str(curve_width), 'top: 0'))"
+ tal:attributes="
+ src cap;
+ style one_tmp_assignment" />
+</div>
+
+
+<div metal:define-macro="draw-highlights">
+ <div tal:omit-tag="" tal:repeat="high highs">
+ <div class="invisible"
+ tal:define="
+ beg high/beg;
+ end high/end;
+ size python:end - beg;
+ id high/id"
+ tal:attributes="
+ id id;
+ style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(beg), 'top: 0'))">
+
+ <tal:block tal:condition="python:high['type'] == 'select'">
+ <div metal:use-macro="here/mappings_macros/macros/draw-select" />
+ </tal:block>
+
+ <tal:block tal:condition="python:high['type'] == 'snapshot'">
+ <div metal:use-macro="here/mappings_macros/macros/draw-snapshot"/>
+ </tal:block>
+
+ <tal:block tal:condition="python:high['type'] == 'snapshot-origin'">
+ <div metal:use-macro="here/mappings_macros/macros/draw-snapshot-origin" />
+ </tal:block>
+ </div>
+ </div>
+</div>
+
+<div metal:define-macro="draw-select">
+ <tal:block tal:condition="python:size > 0 and size < curve_width">
+ <tal:block tal:repeat="off python:range(size)">
+ <img height="40" src="selection_1px_40.png"
+ tal:attributes="style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(off), 'top: 0'))" />
+ </tal:block>
+ </tal:block>
+
+ <tal:block tal:condition="python:size >= curve_width">
+ <img height="40" width="10" src="selection_left_end_40.png"
+ tal:attributes="style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(0), 'top: 0'))" />
+
+ <img src="selection_bar_40.png" height="40"
+ tal:attributes="
+ width python:str(size - curve_width);
+ style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(curve_width), 'top: 0'))" />
+
+ <img src="selection_right_end_40.png" height="40" width="10"
+ tal:attributes="
+ style python:here.add_commas('position:absolute', here.add_commas('left: ' + str(size), 'top: 0'))" />
+ </tal:block>
+</div>
+
+<div metal:define-macro="draw-snapshot">
+ <div style="height:40"></div>
+ <div tal:attributes="style python:here.add_commas('position:absolute', 'left: ' + str(size/2-12))">
+ <img src="snapshot.gif" style="width: 25px; height: 20px;" />
+ </div>
+</div>
+
+<div metal:define-macro="draw-snapshot-origin">
+ <div>
+ <div style="border-bottom: medium dotted #0000FF">
+ <div tal:attributes="style python:here.add_commas('height: 40', 'width: ' + str(size))" />
+ </div>
+ </div>
+</div>
</html>
--- conga/luci/storage/mappings_provider 2007/09/11 16:04:35 1.6
+++ conga/luci/storage/mappings_provider 2007/09/25 03:50:27 1.7
@@ -3,11 +3,14 @@
<span tal:omit-tag=""
tal:define="global pagetype request/pagetype|nothing;
global storagename request/storagename|nothing"/>
+
<span tal:omit-tag=""
tal:condition="not: pagetype">
+
<span tal:omit-tag=""
tal:define="global pagetype python:'0'"/>
</span>
+
<span tal:omit-tag=""
tal:define="stosystemss context/systems/storage/objectItems;
global allowed_systems python:here.allowed_systems(stosystemss);
@@ -26,157 +29,7 @@
<head>
<title tal:content="mapper/pretty_name">The title</title>
-
- <script>
-
- function ellipse(y) {
- if (y == 0)
- return 2;
-
- if (y == 1)
- return 3;
-
- if (y == 2)
- return 4;
-
- if (y == 3)
- return 5;
-
- if (y == 4)
- return 5;
-
- if (y == 5)
- return 6;
-
- if (y == 6)
- return 6;
-
- if (y == 7)
- return 7;
-
- if (y == 8)
- return 7;
-
- if (y == 9)
- return 7;
-
- if (y == 10)
- return 8;
-
- if (y == 11)
- return 8;
-
- if (y == 12)
- return 8;
-
- if (y == 13)
- return 8;
-
- if (y > 26)
- return ellipse(40 - y);
-
- else
- return 9;
- }
-
- var properties_span_id = '';
- var current_selection = '';
-
- function select_subcyl(id, h_data) {
- var old_selection = current_selection;
- unselect_cyl(old_selection, h_data);
- if (id == old_selection)
- current_selection = h_data[0][0];
- else
- current_selection = id;
- display_props(h_data);
- }
- function unselect_cyl(id, h_data) {
- for (var i=0; i<h_data.length; i++) {
- var t_id = h_data[i][0];
- if (t_id == id) {
- var list = h_data[i][1];
- for (var j=0; j<list.length; j++) {
- var el = document.getElementById(list[j]);
- el.className = 'invisible';
- }
- }
- }
- current_selection = '';
- }
- function display_props(h_data) {
- for (var i=0; i<h_data.length; i++) {
- var id = h_data[i][0];
- if (id == current_selection) {
- var list = h_data[i][1];
- for (var j=0; j<list.length; j++) {
- var el = document.getElementById(list[j]);
- el.className = 'visible';
- }
- }
- }
- parent = top.document.getElementById(properties_span_id);
- for (var i=0; i < parent.childNodes.length; i++) {
- var item = parent.childNodes[i];
- if (item.nodeName == 'SPAN' || item.nodeName == 'span' || item.nodeName == 'DIV' || item.nodeName == 'div') {
- if (item.id == current_selection)
- item.className = 'visible';
- else if (item.className == 'visible')
- item.className = 'invisible';
- }
- }
- }
-
-
-
- function cyl_click(X, Y, c_data, h_data) {
- if (Y < 0 || Y > 40)
- return;
- var x = X - ellipse(Y);
- var y = Y;
- for (var i=0; i<c_data.length; i++) {
- var elem = c_data[i];
- var id = elem[0];
- var beg = elem[1][0];
- var end = elem[1][1];
- if (x > beg && x < end)
- select_subcyl(id, h_data);
- }
- }
-
-
-
-
-
- function cyl_over(msg_board, X, Y, c_data, h_data) {
- if (Y < 0 || Y > 40) {
- msg_board.style.visibility = 'invisible';
- return;
- }
- var x = X - ellipse(Y);
- var y = Y;
- for (var i=0; i<c_data.length; i++) {
- var elem = c_data[i];
- var beg = elem[1][0];
- var end = elem[1][1];
- if (x > beg && x < end) {
- var descr = elem[2];
- msg_board.innerHTML = descr;
- msg_board.style.width = (descr.length + 1) + 'ex';
- msg_board.style.left = X - 35;
- msg_board.style.top = Y + 15;
- msg_board.style.visibility = 'visible';
- return;
- }
- }
- msg_board.style.visibility = 'invisible';
- }
-
-
-
-
-
- </script>
+ <script type="text/javascript" src="cylinder_select.js"></script>
<style>
@@ -318,7 +171,5 @@
</div>
-
-
- </body>
+</body>
</html>
--- conga/luci/storage/portlet_cluconfig 2007/09/11 16:04:35 1.2
+++ conga/luci/storage/portlet_cluconfig 2007/09/25 03:50:27 1.3
@@ -1,60 +1,55 @@
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
- xmlns:metal="http://xml.zope.org/namespaces/metal">
+ xmlns:metal="http://xml.zope.org/namespaces/metal">
<body>
-
-<div metal:define-macro="stochooseportlet"
- tal:omit-tag=""
- tal:define="global data python:here.createStorageChooser(request, stosystems)">
- <dl class="portlet" id="portlet-cluconfig-tree">
- <dt class="portletHeader">
- <a href="#">
- storage
- </a>
- </dt>
- <dd class="portletItemSingle">
- <ul class="portletCluConfigTree cluConfigTreeLevel0">
- <tal:clucfgtree define=" level python:1;
- children python:data.get('children',[]);
- show_children python:True;
- isNaviTree python:False;">
- <metal:main metal:use-macro="here/portlet_cluconfig_macro/macros/cluconfig_main" />
- </tal:clucfgtree>
- </ul>
- </dd>
- </dl>
+<div metal:define-macro="stochooseportlet" tal:omit-tag=""
+ tal:define="global data python:here.createStorageChooser(request, stosystems)">
+ <dl class="portlet" id="portlet-cluconfig-tree">
+ <dt class="portletHeader">
+ <a href="#">
+ storage
+ </a>
+ </dt>
+
+ <dd class="portletItemSingle">
+ <ul class="portletCluConfigTree cluConfigTreeLevel0">
+ <tal:clucfgtree define="
+ level python:1;
+ children python:data.get('children',[]);
+ show_children python:True;
+ isNaviTree python:False;">
+ <metal:main metal:use-macro="here/portlet_cluconfig_macro/macros/cluconfig_main" />
+ </tal:clucfgtree>
+ </ul>
+ </dd>
+ </dl>
</div>
+<div metal:define-macro="stoconfigportlet" tal:omit-tag="" tal:define="
+ global data python:here.createStorageConfigTree(request, storage_report)">
-<div metal:define-macro="stoconfigportlet"
- tal:omit-tag=""
- tal:define="global data python:here.createStorageConfigTree(request, storage_report)">
- <dl class="portlet" id="portlet-cluconfig-tree">
- <dt class="portletHeader">
-<!--
- <a href="#" tal:attributes="href python:here.getClusterURL(request, modelb)">
- <div tal:omit-tag="" tal:content="python: here.getClusterName(modelb)" />
- </a>
--->
- <a href="#" tal:attributes="href python:here.getStorageURL(request, storagename)">
- <div tal:omit-tag="" tal:content="storagename" />
- </a>
- </dt>
- <dd class="portletItemSingle">
- <ul class="portletCluConfigTree cluConfigTreeLevel0">
-
- <tal:clucfgtree define=" level python:1;
- children python:data.get('children',[]);
- show_children python:True;
- isNaviTree python:False;">
- <metal:main metal:use-macro="here/portlet_cluconfig_macro/macros/cluconfig_main" />
- </tal:clucfgtree>
- </ul>
- </dd>
- </dl>
+ <dl class="portlet" id="portlet-cluconfig-tree">
+ <dt class="portletHeader">
+ <a href="#" tal:attributes="
+ href python:here.getStorageURL(request, storagename)">
+ <div tal:omit-tag="" tal:content="storagename" />
+ </a>
+ </dt>
+
+ <dd class="portletItemSingle">
+ <ul class="portletCluConfigTree cluConfigTreeLevel0">
+ <tal:clucfgtree
+ define="level python:1;
+ children python:data.get('children',[]);
+ show_children python:True;
+ isNaviTree python:False;">
+ <metal:main metal:use-macro="here/portlet_cluconfig_macro/macros/cluconfig_main" />
+ </tal:clucfgtree>
+ </ul>
+ </dd>
+ </dl>
</div>
-
</body>
</html>
--- conga/luci/storage/portlet_cluconfig_macro 2007/09/11 16:04:35 1.2
+++ conga/luci/storage/portlet_cluconfig_macro 2007/09/25 03:50:27 1.3
@@ -2,40 +2,40 @@
<body>
<metal:main define-macro="cluconfig_main">
<tal:cfgitem repeat="item children">
-<li class="cluConfigTreeItem visualNoMarker"
- tal:define="parent_shows_children show_children|nothing;
- children item/children|nothing;
- cur_item item/currentItem;"
- tal:condition="python: (cur_item or parent_shows_children or children)">
+ <li class="cluConfigTreeItem visualNoMarker"
+ tal:define="parent_shows_children show_children|nothing;
+ children item/children|nothing;
+ cur_item item/currentItem;"
+ tal:condition="python: (cur_item or parent_shows_children or children)">
- <tal:level define="item_type_class python: 'type-' + item['cfg_type'];">
- <div tal:attributes="class item_type_class">
- <a tal:condition="cur_item"
- tal:attributes="href item/absolute_url;
- title item/Description|nothing;
- class string: cluConfigTreeCurrentItem visualIconPadding"
- tal:content="item/Title|nothing">
- Selected Item Title</a>
- <tal:children condition="python: parent_shows_children or children">
- <a tal:condition="not: cur_item"
- tal:attributes="href item/absolute_url;
- title item/Description|nothing;
- class string: visualIconPadding;"
- tal:content="item/Title|nothing">
- Unselected Item Title</a>
- </tal:children>
- </div>
+ <tal:level define="item_type_class python: 'type-' + item['cfg_type'];">
+ <div tal:attributes="class item_type_class">
+ <a tal:condition="cur_item"
+ tal:attributes="href item/absolute_url;
+ title item/Description|nothing;
+ class string: cluConfigTreeCurrentItem visualIconPadding"
+ tal:content="item/Title|nothing">Selected Item Title</a>
- <ul tal:attributes="class python:'cluConfigTree cluConfigTreeLevel'+str(level)"
- tal:define="show_children item/show_children| python:True;
- level python:level+1;"
- tal:condition="python: (show_children or isNaviTree) and children">
- <metal:recurse use-macro="here/portlet_cluconfig_macro/macros/cluconfig_main"/>
- </ul>
- </tal:level>
-</li>
+ <tal:children condition="python: parent_shows_children or children">
+ <a tal:condition="not: cur_item"
+ tal:attributes="href item/absolute_url;
+ title item/Description|nothing;
+ class string: visualIconPadding;"
+ tal:content="item/Title|nothing">
+ Unselected Item Title
+ </a>
+ </tal:children>
+ </div>
+
+ <ul tal:attributes="class python:'cluConfigTree cluConfigTreeLevel'+str(level)"
+ tal:define="show_children item/show_children| python:True;
+ level python:level+1;"
+ tal:condition="python: (show_children or isNaviTree) and children">
+ <metal:recurse use-macro="here/portlet_cluconfig_macro/macros/cluconfig_main" />
+ </ul>
+ </tal:level>
+ </li>
</tal:cfgitem>
</metal:main>
</body>
</html>
-
--- conga/luci/storage/validate_html 2007/09/11 16:04:35 1.4
+++ conga/luci/storage/validate_html 2007/09/25 03:50:27 1.5
@@ -1,38 +1,30 @@
-<span tal:omit-tag=""
- tal:define="global pagetype request/pagetype|nothing;
- global storagename request/storagename|nothing"/>
-<span tal:omit-tag=""
- tal:define="stosystemss context/systems/storage/objectItems;
- global allowed_systems python:here.allowed_systems(stosystemss);
- global access_to_host_allowed python:here.access_to_host_allowed(storagename, allowed_systems)"/>
-<span tal:omit-tag=""
- tal:define="global ricci python:here.get_ricci_communicator(storagename, allowed_systems);
- global storage_report python:here.get_storage_report(ricci, request.SESSION)"/>
-
-<span tal:omit-tag=""
- tal:define="global action_type request/action_type|nothing"/>
-
-<span tal:omit-tag=""
- tal:define="global preferred_size_units python:here.set_persistent_var('preferred_size_units', 'GB')"/>
-
-
-<span tal:omit-tag=""
- tal:condition="not: access_to_host_allowed">
- widget_name You are not authorized to modify <span tal:replace="storagename"/>!!!
-</span>
-
-<span tal:omit-tag=""
- tal:condition="access_to_host_allowed">
- <span tal:omit-tag=""
- tal:condition="python:action_type == 'Validate'"
- tal:content="python:here.validate(storage_report, request)">
- Validation result:
- OK if validated
- message if not validated
- </span>
-
- <span tal:omit-tag=""
- tal:condition="python:action_type != 'Validate'">
- This form is to be used for validation only
- </span>
-</span>
+<tal:block tal:define="
+ global pagetype request/pagetype|nothing;
+ global storagename request/storagename|nothing "/>
+
+<tal:block tal:define="
+ stosystemss context/systems/storage/objectItems;
+ global allowed_systems python:here.allowed_systems(stosystemss);
+ global access_to_host_allowed python:here.access_to_host_allowed(storagename, allowed_systems)" />
+
+<tal:block tal:define="
+ global ricci python:here.get_ricci_communicator(storagename, allowed_systems);
+ global storage_report python:here.get_storage_report(ricci, request.SESSION)" />
+
+<tal:block tal:define="global action_type request/action_type|nothing" />
+
+<tal:block tal:define="
+ global preferred_size_units python:here.set_persistent_var('preferred_size_units', 'GB')" />
+
+<tal:block tal:condition="not: access_to_host_allowed">
+ You are not authorized to modify <span tal:replace="storagename" />
+</tal:block>
+
+<tal:block tal:condition="access_to_host_allowed">
+ <span tal:condition="python:action_type == 'Validate'"
+ tal:content="python:here.validate(storage_report, request)" />
+
+ <tal:block tal:condition="python:action_type != 'Validate'">
+ This form is to be used for validation only
+ </tal:block>
+</tal:block>
reply other threads:[~2007-09-25 3:50 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070925035034.7005.qmail@sourceware.org \
--to=rmccabe@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.