Thread: [Pieforms-commit] SF.net SVN: pieforms: [94] pieforms-php5/trunk/src/pieform/renderers/ multicolumn
Status: Alpha
Brought to you by:
oracleshinoda
From: <ora...@us...> - 2006-12-15 01:25:46
|
Revision: 94 http://svn.sourceforge.net/pieforms/?rev=94&view=rev Author: oracleshinoda Date: 2006-12-14 17:25:45 -0800 (Thu, 14 Dec 2006) Log Message: ----------- Namespace the renderer IDs properly Modified Paths: -------------- pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php Modified: pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php =================================================================== --- pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php 2006-12-15 01:25:13 UTC (rev 93) +++ pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php 2006-12-15 01:25:45 UTC (rev 94) @@ -45,6 +45,7 @@ // Used by the messages javascript function $form->include_plugin('renderer', 'table'); $formrenderermct->add_element($builtelement, $rawelement); + $formrenderermct->set_form($form); } function pieform_renderer_multicolumntable_messages_js($id, $submitid) { @@ -64,6 +65,7 @@ class FormRendererMultiColumnTable { private $elements = array(); + private $form; function add_element($builtelement, $rawelement) { if (!array_key_exists($rawelement['title'], $this->elements)) { @@ -76,6 +78,10 @@ $this->elements[$rawelement['title']]['builtelements'][] = $builtelement; } + function set_form(Pieform $form) { + $this->form = $form; + } + function build() { $result = "<table cellspacing=\"0\" border=\"0\"><tbody>\n"; foreach ($this->elements as $title => $data) { @@ -96,7 +102,7 @@ $rawelement = $data['rawelements'][$k]; $result .= "\t<td"; if (isset($rawelement['name'])) { - $result .= " id=\"" . $rawelement['name'] . '_container"'; + $result .= " id=\"" . $this->form->get_name() . '_' . $rawelement['name'] . '_container"'; } if ($rawelement['class']) { $result .= ' class="' . $rawelement['class'] . '"'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2006-12-18 01:12:20
|
Revision: 104 http://svn.sourceforge.net/pieforms/?rev=104&view=rev Author: oracleshinoda Date: 2006-12-17 17:12:20 -0800 (Sun, 17 Dec 2006) Log Message: ----------- Make sure the multicolumntable renderer doesn't try to pass on nonexistant values Modified Paths: -------------- pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php Modified: pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php =================================================================== --- pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php 2006-12-18 01:11:25 UTC (rev 103) +++ pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php 2006-12-18 01:12:20 UTC (rev 104) @@ -48,8 +48,8 @@ $formrenderermct->set_form($form); } -function pieform_renderer_multicolumntable_messages_js($id, $submitid) { - return pieform_renderer_table_messages_js($id, $submitid); +function pieform_renderer_multicolumntable_messages_js($id) { + return pieform_renderer_table_messages_js($id); } function pieform_renderer_multicolumntable_header() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2006-12-24 02:32:38
|
Revision: 141 http://svn.sourceforge.net/pieforms/?rev=141&view=rev Author: oracleshinoda Date: 2006-12-23 18:32:29 -0800 (Sat, 23 Dec 2006) Log Message: ----------- Insert empty table cells in gaps to preserve HTML validation. Disable fieldsets from working, they just make a mess. Fixed up the javascript for inserting errors so it actually works Modified Paths: -------------- pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php Modified: pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php =================================================================== --- pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php 2006-12-24 00:25:05 UTC (rev 140) +++ pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php 2006-12-24 02:32:29 UTC (rev 141) @@ -42,15 +42,47 @@ */ function pieform_renderer_multicolumntable(Pieform $form, $builtelement, $rawelement) { global $formrenderermct; - // Used by the messages javascript function - $form->include_plugin('renderer', 'table'); $formrenderermct->add_element($builtelement, $rawelement); $formrenderermct->set_form($form); } function pieform_renderer_multicolumntable_messages_js($id) { - return pieform_renderer_table_messages_js($id); + //return pieform_renderer_table_messages_js($id); + return <<<EOF +function {$id}_set_error (message, element) { + element = '{$id}_' + element; + var parentRow = $(element + '_container').parentNode; + var nextRow = parentRow.nextSibling; + if (!(nextRow && hasElementClass(nextRow, 'errorRow'))) { + var errorRow = TR({'class': 'errorRow'}); + log(parentRow.cells.length); + for (var i = 0; i < parentRow.cells.length; i++) { + var attrs = null; + if (parentRow.cells[i].id) { + attrs = { + 'id': parentRow.cells[i].id.replace(/_container$/, '_error'), + 'class': 'error' + }; + } + appendChildNodes(errorRow, TD(attrs)); + } + insertSiblingNodesAfter($(element + '_container').parentNode, errorRow); + } + + appendChildNodes(element + '_error', message); + addElementClass(element, 'error'); + addElementClass( element + '_container', 'error'); } +function {$id}_remove_all_errors() { + forEach(getElementsByTagAndClassName('TR', 'errorRow', '{$id}'), function(row) { + removeElement(row); + }); + forEach(getElementsByTagAndClassName(null, 'error', '{$id}'), function(item) { + removeElementClass(item, 'error'); + }); +} +EOF; +} function pieform_renderer_multicolumntable_header() { global $formrenderermct; @@ -68,6 +100,9 @@ private $form; function add_element($builtelement, $rawelement) { + if ($rawelement['type'] == 'fieldset') { + throw new PieformException('The multicolumntable renderer does not support fieldsets'); + } if (!array_key_exists($rawelement['title'], $this->elements)) { $this->elements[$rawelement['title']] = array(); $this->elements[$rawelement['title']]['rawelements'] = array(); @@ -83,6 +118,11 @@ } function build() { + // Find out the maximum number of columns + $columns = 0; + foreach ($this->elements as $data) { + $columns = max($columns, count($data['builtelements'])); + } $result = "<table cellspacing=\"0\" border=\"0\"><tbody>\n"; foreach ($this->elements as $title => $data) { $result .= "\t<tr"; @@ -120,6 +160,9 @@ // @todo description... } + for ($i = count($data['builtelements']); $i < $columns; $i++) { + $result .= "\t<td></td>\n\t"; + } $result .= "</tr>\n"; } $result .= "</tbody></table>\n"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-01-20 08:02:14
|
Revision: 168 http://svn.sourceforge.net/pieforms/?rev=168&view=rev Author: oracleshinoda Date: 2007-01-20 00:02:11 -0800 (Sat, 20 Jan 2007) Log Message: ----------- Allow the entries to be keyed by 'key' instead of title, just in case the title is not unique for some reason Modified Paths: -------------- pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php Modified: pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php =================================================================== --- pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php 2007-01-11 09:48:45 UTC (rev 167) +++ pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php 2007-01-20 08:02:11 UTC (rev 168) @@ -102,14 +102,18 @@ if ($rawelement['type'] == 'fieldset') { throw new PieformException('The multicolumntable renderer does not support fieldsets'); } - if (!array_key_exists($rawelement['title'], $this->elements)) { - $this->elements[$rawelement['title']] = array(); - $this->elements[$rawelement['title']]['rawelements'] = array(); - $this->elements[$rawelement['title']]['builtelements'] = array(); - $this->elements[$rawelement['title']]['settings'] = $rawelement; + + if (!isset($rawelement['key'])) { + $rawelement['key'] = $rawelement['title']; } - $this->elements[$rawelement['title']]['rawelements'][] = $rawelement; - $this->elements[$rawelement['title']]['builtelements'][] = $builtelement; + if (!array_key_exists($rawelement['key'], $this->elements)) { + $this->elements[$rawelement['key']] = array(); + $this->elements[$rawelement['key']]['rawelements'] = array(); + $this->elements[$rawelement['key']]['builtelements'] = array(); + $this->elements[$rawelement['key']]['settings'] = $rawelement; + } + $this->elements[$rawelement['key']]['rawelements'][] = $rawelement; + $this->elements[$rawelement['key']]['builtelements'][] = $builtelement; } function set_form(Pieform $form) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-08-19 22:11:07
|
Revision: 218 http://pieforms.svn.sourceforge.net/pieforms/?rev=218&view=rev Author: oracleshinoda Date: 2007-08-19 15:11:09 -0700 (Sun, 19 Aug 2007) Log Message: ----------- Fixed fatal error using multicolumntable renderer - artefact of copy/paste badness Modified Paths: -------------- pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php Modified: pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php =================================================================== --- pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php 2007-08-19 22:08:59 UTC (rev 217) +++ pieforms-php5/trunk/src/pieform/renderers/multicolumntable.php 2007-08-19 22:11:09 UTC (rev 218) @@ -139,7 +139,7 @@ if (isset($data['settings']['title'])) { $result .= Pieform::hsc($data['settings']['title']); } - if ($form->get_property('requiredmarker') && !empty($rawelement['rules']['required'])) { + if ($this->form->get_property('requiredmarker') && !empty($rawelement['rules']['required'])) { $result .= ' <span class="requiredmarker">*</span>'; } $result .= "</th>\n\t"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |