<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to feature-requests</title><link href="https://sourceforge.net/p/htmlobject/feature-requests/" rel="alternate"/><link href="https://sourceforge.net/p/htmlobject/feature-requests/feed.atom" rel="self"/><id>https://sourceforge.net/p/htmlobject/feature-requests/</id><updated>2006-05-18T19:47:32Z</updated><subtitle>Recent changes to feature-requests</subtitle><entry><title>javascript validation</title><link href="https://sourceforge.net/p/htmlobject/feature-requests/16/" rel="alternate"/><published>2006-05-18T19:47:32Z</published><updated>2006-05-18T19:47:32Z</updated><author><name>JT Moree</name><uri>https://sourceforge.net/u/moreejt/</uri></author><id>https://sourceforge.net18bf4087ccdf86ef6391183cc6ed4deaecaae41e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;a href="http://jsval.fantastic-bits.de/" rel="nofollow"&gt;http://jsval.fantastic-bits.de/&lt;/a&gt;  this project allows&lt;br /&gt;
for validating javascript on the client side easily. &lt;br /&gt;
If it works the correct way it uses styles instead of&lt;br /&gt;
modifying the form elements directly.  In either case&lt;br /&gt;
it could be integrated into the form code.&lt;/p&gt;
&lt;p&gt;The library works by looking at the form control for&lt;br /&gt;
extra parameters like required and regex.  All we would&lt;br /&gt;
have to do is include the library and then output those&lt;br /&gt;
extra attributes as part of the form processing.  The&lt;br /&gt;
user can ignore it or turn it on by calling the proper&lt;br /&gt;
functions from the submit onclick.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>disable button after click</title><link href="https://sourceforge.net/p/htmlobject/feature-requests/15/" rel="alternate"/><published>2006-02-13T15:25:55Z</published><updated>2006-02-13T15:25:55Z</updated><author><name>JT Moree</name><uri>https://sourceforge.net/u/moreejt/</uri></author><id>https://sourceforge.net234dcea6eee1014501480ebd4a8f596fb3596ef4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;We should add an option to the Submit buttons in&lt;br /&gt;
htmlobject::form that runs js code to disable the&lt;br /&gt;
button after clicking.  this would prevent double&lt;br /&gt;
submissions (mostly).&lt;/p&gt;
&lt;p&gt;It would be great if it could be added to regular&lt;br /&gt;
buttons also.&lt;/p&gt;
&lt;p&gt;The code I'm using in the DB::Upgrade module is&lt;br /&gt;
onclick="javascriptFunction(); this.disabled = true;"&lt;/p&gt;
&lt;p&gt;Notice that I am doing some other stuff during onclick.&lt;br /&gt;
so our api would need to add the disabled code to&lt;br /&gt;
whatever the user specifies.&lt;/p&gt;
&lt;p&gt;submit =&amp;gt; { &lt;br /&gt;
-Type =&amp;gt; "submit",&lt;br /&gt;
-Label =&amp;gt; "Click Me",&lt;br /&gt;
-ClickLabel =&amp;gt; "Please Wait",&lt;br /&gt;
onclick =&amp;gt; "javascriptFunction();"&lt;br /&gt;
-ClickDisable =&amp;gt; 1, &lt;br /&gt;
# defaults to 1 for submit buttons and 0 for regular&lt;br /&gt;
buttons.&lt;/p&gt;
&lt;p&gt;We also want to allow the user to specify different&lt;br /&gt;
text for the submit button after it has been clicked.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>HTML::Object::Easy</title><link href="https://sourceforge.net/p/htmlobject/feature-requests/14/" rel="alternate"/><published>2006-02-02T14:48:05Z</published><updated>2006-02-02T14:48:05Z</updated><author><name>JT Moree</name><uri>https://sourceforge.net/u/moreejt/</uri></author><id>https://sourceforge.net07a431cdd7162f9c13256c76aa4bfa34326d1a2a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I'm thinking of developing an extension to htmlobject&lt;br /&gt;
called Easy or Ajax that aids in development.  Perhaps&lt;br /&gt;
it would support both ajax and non ajax modes.&lt;/p&gt;
&lt;p&gt;* template, profile, data, list, baseurl would all be&lt;br /&gt;
specified as part of the object&lt;br /&gt;
* for ajax mode the UI would be one page with multiple&lt;br /&gt;
forms in divs that are hidden/shown&lt;br /&gt;
* the superclass would output the edit form generated&lt;br /&gt;
from all of this into a div called 'edit'&lt;br /&gt;
* the list of data to work on would be output into a&lt;br /&gt;
div called 'list'&lt;br /&gt;
* under the list would be the buttons: new, and delete&lt;br /&gt;
* next to each list item would be a delete checkbox&lt;br /&gt;
* each list item will be a link to edit that item&lt;br /&gt;
* user can fill in the form and click Submit button&lt;br /&gt;
* after the user has entered the data the profile will&lt;br /&gt;
be used to validate it with js regex.&lt;br /&gt;
* After validation the js code will make another&lt;br /&gt;
httpmxl_request call to the backend to submit the data.&lt;br /&gt;
the backend will also validate with the same regexp&lt;br /&gt;
from profile bc the user could always disable js and&lt;br /&gt;
push back anything&lt;br /&gt;
* a return code will be sent to the callback with the&lt;br /&gt;
action (new, edit/update, delete) and success or&lt;br /&gt;
failure with a reason for the failure &lt;br /&gt;
* Upon success of new data sent to the backend, the&lt;br /&gt;
edit form is blanked and the item is added to the list&lt;br /&gt;
- a problem here is what format is the list in vs&lt;br /&gt;
what format would be taken from the new data?&lt;br /&gt;
- this may require a form element to be added called&lt;br /&gt;
list description&lt;br /&gt;
* or user clicks a link to edit an entry&lt;br /&gt;
-the js code will call the backend to get the data&lt;br /&gt;
with httpxml_request and push it into the form in the&lt;br /&gt;
edit div.  It may also cache the data in xml on the&lt;br /&gt;
client side&lt;br /&gt;
* upon successful edit, the form is blanked and the&lt;br /&gt;
list item is updated&lt;br /&gt;
* delete code uses js confirm dialog for verification&lt;br /&gt;
* delete pushes list of ids to backend using&lt;br /&gt;
httpxml_request.  response from server is success or&lt;br /&gt;
failure with reason&lt;br /&gt;
* after successful delete those items deleted are&lt;br /&gt;
removed from the list using dom&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Rewrite</title><link href="https://sourceforge.net/p/htmlobject/feature-requests/13/" rel="alternate"/><published>2006-02-02T14:40:57Z</published><updated>2006-02-02T14:40:57Z</updated><author><name>JT Moree</name><uri>https://sourceforge.net/u/moreejt/</uri></author><id>https://sourceforge.neteb33194068fbd516c46728772d95e9b6e92bd5ff</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;We have decided to rewrite and change the APIs for&lt;br /&gt;
htmlobject for version 3.0.  It will be renamed to&lt;br /&gt;
HTML::Object.  The Form module will have a new API that&lt;br /&gt;
is more consistent.  The javascript widgets may be&lt;br /&gt;
swapped out with some that are re-usable from other&lt;br /&gt;
projects (depends on timing).  I will attach the API&lt;br /&gt;
document for forms.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;James, please make a short list of things you would&lt;br /&gt;
like to clean up in other modules or attach a document&lt;br /&gt;
with a long list.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>error and info console</title><link href="https://sourceforge.net/p/htmlobject/feature-requests/12/" rel="alternate"/><published>2006-01-15T01:58:41Z</published><updated>2006-01-15T01:58:41Z</updated><author><name>JT Moree</name><uri>https://sourceforge.net/u/moreejt/</uri></author><id>https://sourceforge.netd22c6cc8fe319deec0d1eee3ff1c9a87bcabfab2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Therew will be 2 divs with id's consoleHeader and&lt;br /&gt;
consoleBody.  consoleHeader can be absolutely&lt;br /&gt;
positioned and sized by the user and should be&lt;br /&gt;
always visible.  The code will probably force the&lt;br /&gt;
visibility part and possibly set the zindex to make it&lt;br /&gt;
be above everything else.&lt;/p&gt;
&lt;p&gt;The generateConsole() method will output the div's into&lt;br /&gt;
the current object (or would it output a string which&lt;br /&gt;
the programmer can $doc-&amp;gt;print($doc-&amp;gt;generateConsole);&lt;br /&gt;
?  The developer can overload css entries to absolutely&lt;br /&gt;
position it, etc.  if they so desire.  Otherwise it&lt;br /&gt;
will be placed in the flow of the document based on&lt;br /&gt;
when you call it, so I'm just going to write into the&lt;br /&gt;
body string at the point you call me and I'm not going&lt;br /&gt;
to try and force it to be at the top/bottom/whatever.&lt;/p&gt;
&lt;p&gt;The div consoleHeader will display "Console name | #&lt;br /&gt;
unread/new | Show/Hide button".  We need to come up&lt;br /&gt;
with the "Console name" string and if we want #unread&lt;br /&gt;
or # new, etc.&lt;/p&gt;
&lt;p&gt;The consoleBody div will be auto positioned under the&lt;br /&gt;
consoleHeader when it is displayed and the width/height&lt;br /&gt;
will be auto determined based upon the number of&lt;br /&gt;
entries to show (kindof like the searchBox does).&lt;/p&gt;
&lt;p&gt;The methods pcxWarn, pcxError, pcxInfo will take an&lt;br /&gt;
object that defines the data to be displayed and a&lt;br /&gt;
boolean value that indicates if the console should be&lt;br /&gt;
displayed if hidden.  The # unread will be updated&lt;br /&gt;
regardless.  The object will contain at least the&lt;br /&gt;
following:&lt;/p&gt;
&lt;p&gt;objtype - info, warn, error, critical?&lt;br /&gt;
line - line number&lt;br /&gt;
file - name of file the error is in&lt;br /&gt;
message - message to display &lt;br /&gt;
prgname - name of the program - optional (only used by&lt;br /&gt;
contact)&lt;br /&gt;
prgversion - version of the program - optional (only&lt;br /&gt;
used by contact)&lt;br /&gt;
type - js, db, user-input, etc.  (This is totally user&lt;br /&gt;
definable and is just a filter for us)&lt;br /&gt;
email - e-mail address the contact form should be sent to.&lt;/p&gt;
&lt;p&gt;JT says - having both type and objtype is redundant. &lt;br /&gt;
make the system flexible enough to just use type and&lt;br /&gt;
let users define new types if you really want that&lt;br /&gt;
functionality.&lt;/p&gt;
&lt;p&gt;The reason I'm suggesting an object is that we can then&lt;br /&gt;
add extra attributes to work with for different objtype&lt;br /&gt;
values without having to go back and rewrite a lot of&lt;br /&gt;
function calls down the road.&lt;/p&gt;
&lt;p&gt;The display code will then allow the user to not only&lt;br /&gt;
show All or just specify an objtype, but will also&lt;br /&gt;
provide a drop-down (possibly multi-select) of all the&lt;br /&gt;
unique type's defined for that objtype and allow the&lt;br /&gt;
user to just show them or all type's if desired. (JT&lt;br /&gt;
says clean that up.  have type be the filter and no&lt;br /&gt;
subtypes.)&lt;/p&gt;
&lt;p&gt;The user may want to allow or disallow messages.  put a&lt;br /&gt;
boolean check on the console for the user to toggle. &lt;br /&gt;
the function should check it before unhiding the&lt;br /&gt;
consoleBody.&lt;/p&gt;
&lt;p&gt;Errors of type js could add a link to popup the true js&lt;br /&gt;
console and thus be able to get at the source of the error.&lt;/p&gt;
&lt;p&gt;If the contact email is specified, then I would provide&lt;br /&gt;
a "contact developer" link and when clicked it would&lt;br /&gt;
display the current js error handler form with all the&lt;br /&gt;
info populated to allow the user to send a bug report.&lt;/p&gt;
&lt;p&gt;When the user clicks on an entry, the #unread/new will&lt;br /&gt;
be decremented in the consoleHeader div.  That entry&lt;br /&gt;
will visibly change so the user knows it has focus and&lt;br /&gt;
the "Delete" button will then become available.  The&lt;br /&gt;
"Delete All" button will always be available, as long&lt;br /&gt;
as there are entries in the console.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Value instead of Field in Forms</title><link href="https://sourceforge.net/p/htmlobject/feature-requests/11/" rel="alternate"/><published>2005-12-23T16:57:17Z</published><updated>2005-12-23T16:57:17Z</updated><author><name>JT Moree</name><uri>https://sourceforge.net/u/moreejt/</uri></author><id>https://sourceforge.net272ba6b49858735dd924cec0f9c8b7936131d376</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I keep running into places where I need JUST the value&lt;br /&gt;
in a field on a template.  When i use #FIELD=id#  i get&lt;br /&gt;
the whole hidden field which doesnt work because I&lt;br /&gt;
might be using it inside of a link or something.&lt;/p&gt;
&lt;p&gt;We NEED to support #VALUE=id#  in addition to FIELD AND&lt;br /&gt;
LABEL and all the others.&lt;/p&gt;
&lt;p&gt;this would substitute JUST the value in the field with&lt;br /&gt;
NO formatting or anything else.&lt;/p&gt;
&lt;p&gt;Right now I have to do wierd stuff just to simulate&lt;br /&gt;
this behavior.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>lang mapping in -Label</title><link href="https://sourceforge.net/p/htmlobject/feature-requests/10/" rel="alternate"/><published>2005-09-23T12:41:26Z</published><updated>2005-09-23T12:41:26Z</updated><author><name>JT Moree</name><uri>https://sourceforge.net/u/moreejt/</uri></author><id>https://sourceforge.netd8d9727a5f85832f56cda4bdc2bcc39d24a0cc11</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I propose that the -Label substitutions be done BEFORE&lt;br /&gt;
the lang mapping in the templates so that I can use&lt;br /&gt;
#LANG=Foo# instead of manually mapping the Foo myself.&lt;/p&gt;
&lt;p&gt;Right now i have to&lt;br /&gt;
"account" =&amp;gt; { -Label =&amp;gt;&lt;br /&gt;
$self-&amp;gt;{langObj}-&amp;gt;map("Account"), -Type =&amp;gt; . . .&lt;/p&gt;
&lt;p&gt;but we could easily allow for &lt;br /&gt;
"account" =&amp;gt; { -Label =&amp;gt; "#LANG=Account#", -Type =&amp;gt; . . .&lt;/p&gt;
&lt;p&gt;if the #LABEL=Foo# substitution were done BEFORE the&lt;br /&gt;
langSubstitute call.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>select name lookup from value</title><link href="https://sourceforge.net/p/htmlobject/feature-requests/9/" rel="alternate"/><published>2005-09-23T12:29:43Z</published><updated>2005-09-23T12:29:43Z</updated><author><name>JT Moree</name><uri>https://sourceforge.net/u/moreejt/</uri></author><id>https://sourceforge.net4be86759b374cccdc135700e485babe40aaf3806</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The select fields are already filled in with names and&lt;br /&gt;
values.  it would be nice to re-use this data store&lt;br /&gt;
rather than going to the database to get the&lt;br /&gt;
information again.  I propose the following api:&lt;/p&gt;
&lt;p&gt;=item string selectName(name =&amp;gt;, value =&amp;gt; )&lt;/p&gt;
&lt;p&gt;required:  name - field to look at&lt;br /&gt;
optional:  value - the value to look up&lt;br /&gt;
summary:  this routine will lookup a name in an&lt;br /&gt;
Options hash for a select or multi-select field.  If&lt;br /&gt;
value is not given it will default to the current value&lt;br /&gt;
in -Value.  If nothing is set it will return nothing.&lt;/p&gt;
&lt;p&gt;Ex.&lt;br /&gt;
data =&amp;gt; { name =&amp;gt; [ "BLUE", "BLACK", "GREEN" ], &lt;br /&gt;
value =&amp;gt; [ "blue", "black", "green" ] }&lt;/p&gt;
&lt;p&gt;$obj-&amp;gt;selectName(value =&amp;gt; "black") returns "BLACK"&lt;/p&gt;
&lt;p&gt;=cut&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Select Button Names</title><link href="https://sourceforge.net/p/htmlobject/feature-requests/8/" rel="alternate"/><published>2005-09-22T21:24:21Z</published><updated>2005-09-22T21:24:21Z</updated><author><name>JT Moree</name><uri>https://sourceforge.net/u/moreejt/</uri></author><id>https://sourceforge.net1e1dbb1529a10aeee092ce6112ad6a6380ae4af2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The Select Buttons like "SelectAll", "ToggleSelect",&lt;br /&gt;
UnSelect All should be language nuetral.&lt;/p&gt;
&lt;p&gt;I propose these to take up less space and be language&lt;br /&gt;
neutral.&lt;br /&gt;
All -        [*]&lt;br /&gt;
None -   [ ]&lt;br /&gt;
Toggle - &amp;gt;&amp;lt;&lt;/p&gt;
&lt;p&gt;They could be put on one line instead of taking up 3 lines.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>regexps in js</title><link href="https://sourceforge.net/p/htmlobject/feature-requests/7/" rel="alternate"/><published>2005-09-08T13:44:35Z</published><updated>2005-09-08T13:44:35Z</updated><author><name>JT Moree</name><uri>https://sourceforge.net/u/moreejt/</uri></author><id>https://sourceforge.net8d43f01f944ea48ed9a133c5e7cc204ea5e58612</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The form object needs a feature which would take any &lt;br /&gt;
constraints defined in the profile and output them in javascript &lt;br /&gt;
on the client side.  When the page is submitted if the &lt;br /&gt;
programmer wishes he can call a predefined methods such as &lt;br /&gt;
if (constraintCheck(this.form)) { this.form.submit(); }   &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;The routine would run this algor.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;function constraintCheck(formObj)&lt;br /&gt;
{&lt;br /&gt;
for (var i in CONSTRAINTS)&lt;br /&gt;
{&lt;br /&gt;
var value; &lt;br /&gt;
eval("value = formObj."+i+".value;"); &lt;br /&gt;
if ( CONSTRAINTS[i].exec(value) == null) &lt;br /&gt;
{ &lt;br /&gt;
alert("Invalid: " + i); &lt;br /&gt;
return false; &lt;br /&gt;
} &lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;potential problems: &lt;br /&gt;
P) if there is a constraint defined for a&lt;br /&gt;
special field that is not on the client side but is generated&lt;br /&gt;
during populate.&lt;br /&gt;
S) Programmer cannot use the automatic js constraints with &lt;br /&gt;
special fields. &lt;/p&gt;&lt;/div&gt;</summary></entry></feed>