Mercurial > p > roundup > code
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>
