<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="https://dev.horde.org/themes/horde//default/feed-rss.xsl" type="text/xsl"?> 
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> 
 <channel> 
  <title>Combine &quot;Tickets which are&quot; and &quot;Type&quot; selects in Search form</title> 
  <pubDate>Fri, 10 Apr 2026 09:50:15 +0000</pubDate> 
  <link>https://bugs.horde.org/ticket/4928</link> 
  <atom:link rel="self" type="application/rss+xml" title="Combine &quot;Tickets which are&quot; and &quot;Type&quot; selects in Search form" href="https://bugs.horde.org/ticket/4928/rss" /> 
  <description>Combine &quot;Tickets which are&quot; and &quot;Type&quot; selects in Search form</description> 
 
   
   
  <item> 
   <title>The &quot;Tickets which are&quot; select has two, related problems.  F</title> 
   <description>The &quot;Tickets which are&quot; select has two, related problems.  First, the ticket states shown are the Whups internal categories, which are not directly exposed to the user elsewhere (unless your own states happen to map 1:1 to those names). Second, you cannot make fine-grained distinctions between the categorizations when you have multiple &quot;Assigned&quot; states (eg states &quot;Implement&quot; and &quot;Verify&quot; are both &quot;Assigned&quot;).



The functionality of type and &quot;tickets which are&quot; can be achieved by combining both into a table of multi-selects, one column for each type.  For example:



Bug                Enhancement     Task

---------------- | ------------------- | ------------ ....

Reported     | Requested       |  .....

Open            | Open

Fix                 | Implement

Verify            | Verify

Deploy         | Deploy

Resolved     | Finished



With this construct, you can select multiple type and states in a single motion.  As an extension, clicking on the ticket type header would select/deselect all the included states (or there could be an explicit select/deselect all link).</description> 
   <pubDate>Mon, 22 Jan 2007 17:58:03 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t28845</link> 
  </item> 
   
  <item> 
   <title>Under the aegis of this ticket, I would also like to make qu</title> 
   <description>Under the aegis of this ticket, I would also like to make queue a multi-select.  This seems to be straightforward: simply changing the variable type in lib/Forms/Search.php:SearchForm() from enum to multi-enum.</description> 
   <pubDate>Sat, 27 Jan 2007 23:52:25 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t28961</link> 
  </item> 
   
  <item> 
   <title>Attached is a preliminary patch (against whups 1.0-cvs) for </title> 
   <description>Attached is a preliminary patch (against whups 1.0-cvs) for this ticket.  I could not figure out how to get the Horde_Form class to render a table of multienums (or more generally how to define a structured layout for a set of controls), so I simply list each type on its own row with its states as a multi-enum.  This is not ideal -- if someone can point me to how to structure controls, I&#039;ll make the changes.



I also noticed that the lib/Forms/Search.php file looks to be in Windows line ending mode, though the other changed files appear to be in Unix line end mode.  This might cause problems if running patch directly with this patch file.



Please review and let me know any comments/suggestions you have and also if you need more details to merge it against the latest CVS.</description> 
   <pubDate>Sun, 28 Jan 2007 05:11:35 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t28962</link> 
  </item> 
   
  <item> 
   <title>This patch is not against current CVS, and can you please ma</title> 
   <description>This patch is not against current CVS, and can you please make it a unified diff so it&#039;s easier to read? Thanks.</description> 
   <pubDate>Sat, 03 Feb 2007 03:14:48 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t29104</link> 
  </item> 
   
  <item> 
   <title>&gt; This patch is not against current CVS, and can you please </title> 
   <description>&gt; This patch is not against current CVS, and can you please make it a 

&gt; unified diff so it&#039;s easier to read? Thanks.



I will provide a unified diff.



Before doing so, I&#039;d like to finish the changes.  My question is: how can I render a table of multienums in a single row?  In the attached screenshot, you can see that the 4 ticket types we have (Bug, Enhancement, Question, and Task) are each in their own row.  I would prefer to render these multienums horizontally (perhaps in a grid if the number of types exceeds a threshold), but I couldn&#039;t figure out how to do that without breaching the abstraction offered by Horde_Form.  Thoughts?



Also, you will notice that I have refactored the code -- the functional units as they stood were too broad for me to make surgical changes and have any confidence that they worked (at least not without substantial unit tests, which I couldn&#039;t find).</description> 
   <pubDate>Sat, 03 Feb 2007 03:35:11 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t29106</link> 
  </item> 
   
  <item> 
   <title>&gt; I will provide a unified diff.



Great, thank you.



&gt; B</title> 
   <description>&gt; I will provide a unified diff.



Great, thank you.



&gt; Before doing so, I&#039;d like to finish the changes.  My question is: how 

&gt; can I render a table of multienums in a single row?



You&#039;re going to need to write a custom form renderer. It doesn&#039;t have to be fancy, just override creation of a separate table row for each input. (I&#039;ll get into more detail if you need, but there are some around in whups - queries - and other apps.)



&gt; Also, you will notice that I have refactored the code -- the 

&gt; functional units as they stood were too broad for me to make surgical 

&gt; changes and have any confidence that they worked (at least not 

&gt; without substantial unit tests, which I couldn&#039;t find).



I wasn&#039;t able to entirely follow the diff since it wasn&#039;t against HEAD, but yeah, that&#039;s likely fine. Feel free to add those unit tests. :)</description> 
   <pubDate>Sat, 03 Feb 2007 03:59:08 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t29115</link> 
  </item> 
   
  <item> 
   <title>Any update on the patch?</title> 
   <description>Any update on the patch?</description> 
   <pubDate>Fri, 13 Apr 2007 15:13:46 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t31557</link> 
  </item> 
   
  <item> 
   <title>&gt; Any update on the patch?



I took a stab at writing the c</title> 
   <description>&gt; Any update on the patch?



I took a stab at writing the custom form renderer, but no luck yet; any good docs or poignant example out there?



I also wanted to produce the patch against HEAD, so as to ease patching for you.  But, I haven&#039;t yet established an environment with that version.</description> 
   <pubDate>Fri, 13 Apr 2007 15:58:44 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t31619</link> 
  </item> 
   
  <item> 
   <title>&gt; I took a stab at writing the custom form renderer, but no </title> 
   <description>&gt; I took a stab at writing the custom form renderer, but no luck yet; any good docs

&gt; or poignant example out there?



Good docs on this, sadly. Not sure what would be poignant to you. Another idea would be to just implement a custom variable type instead, that rendered the three fields without starting another row - might be simpler.



If you want to skip that part of the patch for now it&#039;d probably be easier for me to throw it together while committing it unfortunately. I&#039;m currently working on rewriting Horde_Form and the new version will make this sort of thing much simpler (along with hopefully being documented), but that&#039;s not something for before Horde 4 apps.</description> 
   <pubDate>Mon, 16 Apr 2007 02:19:30 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t31705</link> 
  </item> 
   
  <item> 
   <title>Ping?</title> 
   <description>Ping?</description> 
   <pubDate>Mon, 30 Apr 2007 20:49:54 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t32403</link> 
  </item> 
   
  <item> 
   <title>&gt; Ping?



Alive, but haven&#039;t had time to address it (a bit </title> 
   <description>&gt; Ping?



Alive, but haven&#039;t had time to address it (a bit of a curve: need to learn HEAD and then find an example I can massage).</description> 
   <pubDate>Tue, 01 May 2007 02:49:55 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t32422</link> 
  </item> 
   
  <item> 
   <title>Another ping?</title> 
   <description>Another ping?</description> 
   <pubDate>Fri, 28 Dec 2007 23:19:30 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t40527</link> 
  </item> 
   
  <item> 
   <title>&gt; Another ping?



We have it implemented in our older versi</title> 
   <description>&gt; Another ping?



We have it implemented in our older version, but not in HEAD.  If I provided a context diff for our version, would that be enough for someone with more experience to apply it to HEAD?</description> 
   <pubDate>Sun, 30 Dec 2007 00:29:44 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t40556</link> 
  </item> 
   
  <item> 
   <title>Possible - I&#039;ll certainly take a look. Can you please make i</title> 
   <description>Possible - I&#039;ll certainly take a look. Can you please make it a unified diff, though? I find those much easier to read. Also, if you can tell me what version/date of checkout the diff is against, I can compare the original code from then with HEAD.</description> 
   <pubDate>Sun, 30 Dec 2007 01:00:17 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t40563</link> 
  </item> 
   
  <item> 
   <title>&gt;&gt; I will provide a unified diff.

&gt; Great, thank you.



Un</title> 
   <description>&gt;&gt; I will provide a unified diff.

&gt; Great, thank you.



Unified diff attached.



&gt;&gt; Before doing so, I&#039;d like to finish the changes.  My question is: how

&gt;&gt; can I render a table of multienums in a single row?

&gt; You&#039;re going to need to write a custom form renderer. It doesn&#039;t have 

&gt; to be fancy, just override creation of a separate table row for each 

&gt; input. (I&#039;ll get into more detail if you need, but there are some 

&gt; around in whups - queries - and other apps.)



I never figured out how to write the custom form renderer (owing to having essentially zero free time), so I didn&#039;t take this beyond the screen shot you see attached to this ticket.  I&#039;ve also not bulletproofed this code, as I got it to the level of &quot;good enough&quot; for us.  It seems to work fine, though.



&gt; I wasn&#039;t able to entirely follow the diff since it wasn&#039;t against 

&gt; HEAD, but yeah, that&#039;s likely fine. Feel free to add those unit 

&gt; tests. :)



It&#039;s been a while since I&#039;ve looked at this code, but let me give it an explanatory whirl.  I modified three files: 1 in Horde proper (Horde/Form.php) and 2 in Whups (search.php &amp; Forms/Search.php).



In Horde, the change was simply to add a utility method named Horde_Form_Type::getValues() to recover the (presumably) private $_values member variable.  Call me OO-obsessive.



In Whups Forms/Search.php, I changed the queue selection from drop-down (&quot;enum&quot;) to a multi-drop-down (&quot;multi-enum&quot;), and I added a message declaring what would happen if you didn&#039;t select any of the multi-enum values (this was for usability&#039;s sake).  I then needed to remove the &quot;Tickets which are&quot; and &quot;Types&quot; variables and replace them with a loop over all ticket types, adding multi-enum variables for each ticket type.



In Whups search.php, I made the biggest changes.  These were largely cleanup operations, to aid in my development as I waded through the code:

1. The code to determine the URL needed to re-run the query was moved in to a function named getSearchReplayURL().

2. The code to save a search (if logged in) was simplified by using a helper method called getNameForCriterion(): this method takes a criterion name (such as &quot;queue&quot;, &quot;summary&quot;, etc), inspects the submitted values, and then returns a human-understandable string describing the submitted values.  Owing to the changes mentioned in Ticket 4897, this may no longer be needed.

3. The code to &quot;munge a query into acceptability&quot; was moved into a method called mungeInfo().



These should be relatively easy to patch into HEAD.  Let me know if you need more details.  Thanks!</description> 
   <pubDate>Sun, 30 Dec 2007 01:44:59 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t40564</link> 
  </item> 
   
  <item> 
   <title>&gt; Possible - I&#039;ll certainly take a look. Can you please make</title> 
   <description>&gt; Possible - I&#039;ll certainly take a look. Can you please make it a 

&gt; unified diff, though? I find those much easier to read. Also, if you 

&gt; can tell me what version/date of checkout the diff is against, I can 

&gt; compare the original code from then with HEAD.



Per my comment on 01/28/07, the unified diff attached to this ticket is against whups 1.0-cvs.</description> 
   <pubDate>Sun, 30 Dec 2007 01:46:30 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t40565</link> 
  </item> 
   
  <item> 
   <title>One more comment.  In my explanation of the changes, I said </title> 
   <description>One more comment.  In my explanation of the changes, I said this:



&gt; In Whups Forms/Search.php, I changed the queue selection from 

&gt; drop-down (&quot;enum&quot;) to a multi-drop-down (&quot;multi-enum&quot;), and I added a 

&gt; message declaring what would happen if you didn&#039;t select any of the 

&gt; multi-enum values (this was for usability&#039;s sake).



Strictly speaking, this change is outside the scope of this ticket.  In our use of Whups, it makes sense for us to be able to search across all (allowed) queues.  In general usage, however, this may not be wanted.  I&#039;ll let the &quot;powers that be&quot; decide if it&#039;s wanted. :)</description> 
   <pubDate>Sun, 30 Dec 2007 01:49:54 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t40566</link> 
  </item> 
   
  <item> 
   <title>&gt; Per my comment on 01/28/07, the unified diff attached to t</title> 
   <description>&gt; Per my comment on 01/28/07, the unified diff attached to this ticket 

&gt; is against whups 1.0-cvs.



That&#039;s a tag, not a dated version... the current code is still Whups 1.0-CVS.</description> 
   <pubDate>Sun, 30 Dec 2007 02:48:07 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t40569</link> 
  </item> 
   
  <item> 
   <title>&gt;&gt; Per my comment on 01/28/07, the unified diff attached to </title> 
   <description>&gt;&gt; Per my comment on 01/28/07, the unified diff attached to this ticket

&gt;&gt; is against whups 1.0-cvs.

&gt;

&gt; That&#039;s a tag, not a dated version... the current code is still Whups 1.0-CVS.



Well, unless there&#039;s some more precise way to tell from the files that were deposited when the download was made, I can only speculate: the whups directory access time is 2006-08-09 23:09:05, and our first recorded ticket was made on 11 Aug 2006.  So, it seems reasonable it&#039;ll be around those dates in August, 2006.</description> 
   <pubDate>Sun, 30 Dec 2007 03:20:32 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t40570</link> 
  </item> 
   
  <item> 
   <title>This is on me now to either implement or reject.</title> 
   <description>This is on me now to either implement or reject.</description> 
   <pubDate>Mon, 14 Jan 2008 04:59:10 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t41118</link> 
  </item> 
   
  <item> 
   <title>This turned out to be not as bad as I feared. I was able to </title> 
   <description>This turned out to be not as bad as I feared. I was able to remove a bunch of the code, move some into the search form&#039;s getInfo() method, etc., but pretty good. Thanks!</description> 
   <pubDate>Tue, 19 Feb 2008 05:26:30 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t42576</link> 
  </item> 
   
  <item> 
   <title>&gt; This turned out to be not as bad as I feared. I was able t</title> 
   <description>&gt; This turned out to be not as bad as I feared. I was able to remove a 

&gt; bunch of the code, move some into the search form&#039;s getInfo() method, 

&gt; etc., but pretty good. Thanks!



Excellent!</description> 
   <pubDate>Tue, 19 Feb 2008 13:48:55 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t42600</link> 
  </item> 
   
  <item> 
   <title>the new Search form also shows types from queues who aren&#039;t </title> 
   <description>the new Search form also shows types from queues who aren&#039;t visible (Request #4107). 

the new code in whups/lib/Forms/Search.php seems to overwrite the $types array inside the SearchForm-methode. my small patch solves this (typo?).



thanks!</description> 
   <pubDate>Fri, 22 Feb 2008 08:37:40 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t42741</link> 
  </item> 
   
  <item> 
   <title>fixed, thanks.</title> 
   <description>fixed, thanks.</description> 
   <pubDate>Sat, 23 Feb 2008 01:26:18 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/4928#t42778</link> 
  </item> 
   
   
 
 </channel> 
</rss> 
