BUG 9508 I add the option the show scroll

I add propety in form to the grids with scroll
This commit is contained in:
Brayan Osmar Pereyra Suxo
2012-10-03 11:57:16 -04:00
parent 8c3a42812c
commit ae11d5c106
5 changed files with 44 additions and 5 deletions

View File

@@ -47,6 +47,7 @@ class Form extends XmlForm
var $objectRequiredFields = null; var $objectRequiredFields = null;
var $nextstepsave = ''; var $nextstepsave = '';
var $printdynaform = ''; var $printdynaform = '';
var $adjustgridswith = '0';
public $visual_frontend; public $visual_frontend;

View File

@@ -3295,8 +3295,34 @@ class XmlForm_Field_Grid extends XmlForm_Field
$fieldsSize += $size; $fieldsSize += $size;
$emptyRow [$key] = array ($emptyValue); $emptyRow [$key] = array ($emptyValue);
} }
if($fieldsSize>100)
$owner->width = '100%'; if (isset($owner->adjustgridswith) && $owner->adjustgridswith == '1') {
// 400w -> 34s to Firefox
// 400w -> 43s to Chrome
$baseWidth = 400;
$minusWidth = 30;
if (eregi('chrome', $_SERVER['HTTP_USER_AGENT'])) {
$baseSize = 43;
} else {
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) {
$minusWidth = 20;
}
$baseSize = 34;
}
$baseWidth = 400;
$formWidth = (int)$owner->width;
$maxSize = (($formWidth*$baseSize) / $baseWidth);
if ($fieldsSize > $maxSize) {
$this->scrollStyle = 'height:100%; overflow-x: scroll; width:';
$this->scrollStyle .= $formWidth - $minusWidth . ';';
}
} else {
if($fieldsSize>100)
$owner->width = '100%';
}
// else // else
// $owner->width = $fieldsSize . 'em'; // $owner->width = $fieldsSize . 'em';
return $this->renderGrid ( $emptyRow, $owner ); return $this->renderGrid ( $emptyRow, $owner );

View File

@@ -716,6 +716,7 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax
//'ENABLETEMPLATE'=> $form->enableTemplate, //'ENABLETEMPLATE'=> $form->enableTemplate,
'MODE' => $form->mode, 'MODE' => $form->mode,
'PRINTDYNAFORM' => $form->printdynaform, 'PRINTDYNAFORM' => $form->printdynaform,
'ADJUSTGRIDSWITH'=> $form->adjustgridswith,
'NEXTSTEPSAVE' => $form->nextstepsave 'NEXTSTEPSAVE' => $form->nextstepsave
); );
$tmp['Properties']=$Properties; $tmp['Properties']=$Properties;
@@ -776,6 +777,9 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax
if (isset($Fields['PRINTDYNAFORM'])) { if (isset($Fields['PRINTDYNAFORM'])) {
$ses2->execute(G::replaceDataField("UPDATE . SET PRINTDYNAFORM = @@PRINTDYNAFORM WHERE XMLNODE_NAME = 'dynaForm' ", $Fields)); $ses2->execute(G::replaceDataField("UPDATE . SET PRINTDYNAFORM = @@PRINTDYNAFORM WHERE XMLNODE_NAME = 'dynaForm' ", $Fields));
} }
if (isset($Fields['ADJUSTGRIDSWITH'])) {
$ses2->execute(G::replaceDataField("UPDATE . SET ADJUSTGRIDSWITH = @@ADJUSTGRIDSWITH WHERE XMLNODE_NAME = 'dynaForm' ", $Fields));
}
return 0; return 0;
} }
catch(Exception $e) { catch(Exception $e) {

View File

@@ -2,18 +2,19 @@
{* this is the grid template *} {* this is the grid template *}
<div class="grid"> <div class="grid">
<div class="boxTop"><div class="a"></div><div class="b"></div><div class="c"></div></div> <div class="boxTop"><div class="a"></div><div class="b"></div><div class="c"></div></div>
<div class="content"> <div class="content" style="{$form->scrollStyle};">
<table class="" width="100%" cellpadding="0" cellspacing="0"> <table class="" width="100%" cellpadding="0" cellspacing="0">
<tr> <tr>
<th>{$form->label}</th> <th>{$form->label}</th>
</tr> </tr>
</table> </table>
<table class="tableGrid" align="center" id="form[{$form->name}]" cellpadding="0" cellspacing="0"> <table class="tableGrid" align="center" id="form[{$form->name}]" cellpadding="0" cellspacing="0">
<tr><td valign='top'> <tr><td valign='top'>
{if ($form->addRow) } {if ($form->addRow) }
<table class='Record'> <table class='Record'>
<tr><td></td> <tr><td></td>
<td><img id="form[{$form->name}][bullet]" src="/images/bulletButton.gif" />&nbsp;<a id="form[{$form->name}][addLink]" class="GridLink" href="javascript:;" value="Insert" onclick="form_{$form->owner->id}.getElementByName('{$form->name}').addGridRow(); return false;">{$form->NewLabel}</a></td> <td> <img id="form[{$form->name}][bullet]" src="/images/bulletButton.gif" />&nbsp;<a id="form[{$form->name}][addLink]" class="GridLink" href="javascript:;" value="Insert" onclick="form_{$form->owner->id}.getElementByName('{$form->name}').addGridRow(); return false;">{$form->NewLabel}</a></td>
</tr> </tr>
</table> </table>
{/if} {/if}
@@ -66,6 +67,7 @@
</table> </table>
</td></tr> </td></tr>
</table> </table>
</div> </div>
<div class="boxBottom"><div class="a"></div><div class="b"></div><div class="c"></div></div> <div class="boxBottom"><div class="a"></div><div class="b"></div><div class="c"></div></div>
</div> </div>

View File

@@ -53,11 +53,15 @@
<option name="prompt">Show prompt</option> <option name="prompt">Show prompt</option>
</en> </en>
</NEXTSTEPSAVE> </NEXTSTEPSAVE>
<PRINTDYNAFORM type="checkbox" falseValue="0" value="1" defaultvalue="0" labelOnRight="0"> <PRINTDYNAFORM type="checkbox" falseValue="0" value="1" defaultvalue="0" labelOnRight="0">
<en>Show print dynaform button</en> <en>Show print dynaform button</en>
</PRINTDYNAFORM> </PRINTDYNAFORM>
<ADJUSTGRIDSWITH type="checkbox" falseValue="0" value="0" defaultvalue="0" labelOnRight="0">
<en>Adjust the grid width to the width of the main form</en>
</ADJUSTGRIDSWITH>
<!--<ENABLETEMPLATE type="checkbox" value="1" defaultvalue="0" labelOnRight="0"> <!--<ENABLETEMPLATE type="checkbox" value="1" defaultvalue="0" labelOnRight="0">
<en>Enable Template</en> <en>Enable Template</en>
</ENABLETEMPLATE>--> </ENABLETEMPLATE>-->
@@ -83,6 +87,7 @@ if(document.getElementById("form[DYN_TYPE]").value=="grid"){
hideRowById('WIDTH'); hideRowById('WIDTH');
hideRowById('NEXTSTEPSAVE'); hideRowById('NEXTSTEPSAVE');
hideRowById('PRINTDYNAFORM'); hideRowById('PRINTDYNAFORM');
hideRowById('ADJUSTGRIDSWITH');
} }
function getElementsByClassNameCrossBrowser(searchClass,node,tag) { function getElementsByClassNameCrossBrowser(searchClass,node,tag) {
@@ -145,6 +150,7 @@ function validateGridConversion(proUid,dynUid){
hideRowById('WIDTH'); hideRowById('WIDTH');
hideRowById('NEXTSTEPSAVE'); hideRowById('NEXTSTEPSAVE');
hideRowById('PRINTDYNAFORM'); hideRowById('PRINTDYNAFORM');
hideRowById('ADJUSTGRIDSWITH');
} else { } else {
setDropdownSelection("form[DYN_TYPE]" , "xmlform"); setDropdownSelection("form[DYN_TYPE]" , "xmlform");
msgBox("Grid forms can not contain the following fields: <br>" + response,"alert"); msgBox("Grid forms can not contain the following fields: <br>" + response,"alert");