diff roundup/templates/classic/html/_generic.help @ 1569:2bb4fa7050b1

added nicer popup windows for topic, nosy, etc (has add/remove buttons)
author Richard Jones <richard@users.sourceforge.net>
date Thu, 27 Mar 2003 01:36:19 +0000
parents f19dde90e473
children
line wrap: on
line diff
--- a/roundup/templates/classic/html/_generic.help	Wed Mar 26 20:56:04 2003 +0000
+++ b/roundup/templates/classic/html/_generic.help	Thu Mar 27 01:36:19 2003 +0000
@@ -2,15 +2,90 @@
 <head>
 <link rel="stylesheet" type="text/css" href="_file/style.css">
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8;">
+<script language="JavaScript" 
+        tal:condition="python:request.form.has_key('property')"
+        tal:content="structure string:
+
+// this is the name of the field in the original form that we're working on
+field = '${request/form/property/value}';
+
+function listClose() {
+  window.close();
+}
+        
+function listClear() {
+  window.opener.document.itemSynopsis[field].value = '';
+}
+        
+function pick(opt) {
+  if (window.opener && !window.opener.closed) {
+    window.opener.document.itemSynopsis[field].value = opt;
+  }
+}
+        
+// add a value to the form field
+function add(opt) {
+  val = window.opener.document.itemSynopsis[field].value;
+  if (/^\s*$$/.test(val)) {
+    newval = opt;   // existing is all whitespace, so just replace
+  } else {
+    newval = val + ', ' + opt;
+  }
+  pick(newval);
+}
+        
+// remove a value from the form field
+function remove(opt) {
+  // ((opt(,\s*)?)|(,\s*opt))
+  replaceStr = new String('(('+opt+'(,\\s*)?)|(,\\s*'+opt+'))');
+  re = new RegExp(replaceStr);
+
+  str = window.opener.document.itemSynopsis[field].value;
+
+  // replace occurences with empty string
+  newstr = str.replace(re, '');
+  pick(newstr);
+}
+">
+</script>
 </head>
+
 <body class="body" marginwidth="0" marginheight="0">
+<form>
+<div style="padding:10px;text-align:center;">
+ <script language="javascript">
+  // put up a 'reset' button if the field has values when we pop up this window
+
+  // this is the name of the field in the original form that we're working on
+  orig = window.opener.document.itemSynopsis[field].value;
+  if (/[^\s]/.test(orig)) {
+    reset = '<input type="button" onclick="pick(orig);" ' +
+      'value="Reset to original values" /> | ';
+    document.write(reset);
+  }
+ </script>
+ <input type="button"
+        tal:attributes="value string:Clear all ${request/form/property/value} values"
+        onclick="listClear();" /> | 
+ <input type="button" onclick="listClose();" value="Close this window" />
+</div>
 
 <table class="classhelp"
        tal:define="props python:request.form['properties'].value.split(',')">
-<tr><th tal:repeat="prop props" tal:content="prop"></th></tr>
+<tr>
+ <th tal:condition="python:request.form.has_key('property')">add/remove</th>
+ <th tal:repeat="prop props" tal:content="prop"></th>
+</tr>
 <tr tal:repeat="item context/list">
+ <td tal:condition="python:request.form.has_key('property')">
+ <input type="button" tal:define="opt python: item[props[0]]" 
+         tal:attributes="onclick string:add('${opt}')" value=" + ">
+ <input type="button" tal:define="opt python: item[props[0]]" 
+         tal:attributes="onclick string:remove('${opt}')" value=" - " />
+ </td>
  <td tal:repeat="prop props" tal:content="structure python:item[prop]"></td>
 </tr>
 </table>
-
+</form>
 </body>
+</html>

Roundup Issue Tracker: http://roundup-tracker.org/