Added support of CSS classes for styling the form

SVN:trunk[2787]
This commit is contained in:
Denis Flaven
2013-07-03 09:46:16 +00:00
parent f0a5a0a948
commit 3898371d44

View File

@@ -254,7 +254,7 @@ EOF
{
$sDialogTitle = addslashes($sDialogTitle);
$sOkButtonLabel = addslashes($sOkButtonLabel);
$sCancelButtonLabel = 'Cancel'; //TODO: localize
$sCancelButtonLabel = Dict::S('UI:Button:Cancel');
$oPage->add("<div id=\"$sDialogId\">");
$this->Render($oPage);
$oPage->add('</div>');
@@ -489,6 +489,7 @@ class DesignerFormField
protected $bMandatory;
protected $bReadOnly;
protected $bAutoApply;
protected $aCSSClasses;
public function __construct($sCode, $sLabel, $defaultValue)
{
@@ -498,6 +499,7 @@ class DesignerFormField
$this->bMandatory = false;
$this->bReadOnly = false;
$this->bAutoApply = false;
$this->aCSSClasses = array();
}
public function GetCode()
@@ -574,6 +576,11 @@ class DesignerFormField
{
return true;
}
public function AddCSSClass($sCSSClass)
{
$this->aCSSClasses[] = $sCSSClass;
}
}
class DesignerLabelField extends DesignerFormField
@@ -633,7 +640,12 @@ $('#$sId').bind('change keyup validate', function() { ValidateWithPattern('$sId'
}
EOF
);
return array('label' => $this->sLabel, 'value' => "<input type=\"text\" id=\"$sId\" $sReadOnly name=\"$sName\" value=\"".htmlentities($this->defaultValue, ENT_QUOTES, 'UTF-8')."\">");
$sCSSClasses = '';
if (count($this->aCSSClasses) > 0)
{
$sCSSClasses = 'class="'.implode(' ', $this->aCSSClasses).'"';
}
return array('label' => $this->sLabel, 'value' => "<input type=\"text\" $sCSSClasses id=\"$sId\" $sReadOnly name=\"$sName\" value=\"".htmlentities($this->defaultValue, ENT_QUOTES, 'UTF-8')."\">");
}
public function ReadParam(&$aValues)
@@ -665,7 +677,12 @@ $('#$sId').bind('change keyup validate', function() { ValidateWithPattern('$sId'
}
EOF
);
return array('label' => $this->sLabel, 'value' => "<textarea id=\"$sId\" $sReadOnly name=\"$sName\">".htmlentities($this->defaultValue, ENT_QUOTES, 'UTF-8')."</textarea>");
$sCSSClasses = '';
if (count($this->aCSSClasses) > 0)
{
$sCSSClasses = 'class="'.implode(' ', $this->aCSSClasses).'"';
}
return array('label' => $this->sLabel, 'value' => "<textarea $sCSSClasses id=\"$sId\" $sReadOnly name=\"$sName\">".htmlentities($this->defaultValue, ENT_QUOTES, 'UTF-8')."</textarea>");
}
}
@@ -709,13 +726,18 @@ class DesignerComboField extends DesignerFormField
$sChecked = $this->defaultValue ? 'checked' : '';
$sMandatory = $this->bMandatory ? 'true' : 'false';
$sReadOnly = $this->IsReadOnly() ? 'disabled="disabled"' : '';
$sCSSClasses = '';
if (count($this->aCSSClasses) > 0)
{
$sCSSClasses = 'class="'.implode(' ', $this->aCSSClasses).'"';
}
if ($this->bMultipleSelection)
{
$sHtml = "<select multiple size=\"8\"id=\"$sId\" name=\"$sName\" $sReadOnly>";
$sHtml = "<select $sCSSClasses multiple size=\"8\"id=\"$sId\" name=\"$sName\" $sReadOnly>";
}
else
{
$sHtml = "<select id=\"$sId\" name=\"$sName\" $sReadOnly>";
$sHtml = "<select $sCSSClasses id=\"$sId\" name=\"$sName\" $sReadOnly>";
$sHtml .= "<option value=\"\">".Dict::S('UI:SelectOne')."</option>";
}
foreach($this->aAllowedValues as $sKey => $sDisplayValue)
@@ -770,7 +792,12 @@ class DesignerBooleanField extends DesignerFormField
$sChecked = $this->defaultValue ? 'checked' : '';
$sReadOnly = $this->IsReadOnly() ? 'disabled' : ''; // readonly does not work as expected on checkboxes:
// readonly prevents the user from changing the input's value not its state (checked/unchecked)
return array('label' => $this->sLabel, 'value' => "<input type=\"checkbox\" $sChecked $sReadOnly id=\"$sId\" name=\"$sName\" value=\"true\">");
$sCSSClasses = '';
if (count($this->aCSSClasses) > 0)
{
$sCSSClasses = 'class="'.implode(' ', $this->aCSSClasses).'"';
}
return array('label' => $this->sLabel, 'value' => "<input $sCSSClasses type=\"checkbox\" $sChecked $sReadOnly id=\"$sId\" name=\"$sName\" value=\"true\">");
}
public function ReadParam(&$aValues)
@@ -862,11 +889,12 @@ class DesignerIconSelectionField extends DesignerFormField
}
}
$sJSItems = json_encode($this->aAllowedValues);
$sPostUploadTo = ($this->sUploadUrl == null) ? 'null' : "'{$this->sUploadUrl}'";
if (!$this->IsReadOnly())
{
$oP->add_ready_script(
<<<EOF
$('#$sId').icon_select({current_idx: $idx, items: $sJSItems});
$('#$sId').icon_select({current_idx: $idx, items: $sJSItems, post_upload_to: $sPostUploadTo});
EOF
);
}
@@ -960,7 +988,13 @@ class DesignerSortableField extends DesignerFormField
$bOpen = false;
$sId = $this->oForm->GetFieldId($this->sCode);
$sName = $this->oForm->GetFieldName($this->sCode);
$sHtml = "<span class=\"sort_$sId fieldslist\" id=\"sortable_$sId\">";
$sCSSClasses = '';
$this->aCSSClasses[] = "sort_$sId fieldslist";
if (count($this->aCSSClasses) > 0)
{
$sCSSClasses = 'class="'.implode(' ', $this->aCSSClasses).'"';
}
$sHtml = "<span $sCSSClasses id=\"sortable_$sId\">";
foreach($this->defaultValue as $sValue)
{
$sHtml .= "<span class=\"movable_attr\">$sValue</span>";
@@ -1016,7 +1050,12 @@ class DesignerFormSelectorField extends DesignerFormField
$sName = $this->oForm->GetFieldName($this->sCode);
$sReadOnly = $this->IsReadOnly() ? 'disabled="disabled"' : '';
$sHtml = "<select id=\"$sId\" name=\"$sName\" $sReadOnly>";
$sCSSClasses = '';
if (count($this->aCSSClasses) > 0)
{
$sCSSClasses = 'class="'.implode(' ', $this->aCSSClasses).'"';
}
$sHtml = "<select $sCSSClasses id=\"$sId\" name=\"$sName\" $sReadOnly>";
foreach($this->aSubForms as $sKey => $aFormData)
{
$sDisplayValue = $aFormData['label'];