Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Sun, Feb 2, 3:51 PM

in-portal

Index: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_event_handler.php
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_event_handler.php (revision 1484)
+++ branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_event_handler.php (revision 1485)
@@ -1,222 +1,235 @@
<?php
class SelectorsEventHandler extends InpDBEventHandler
{
/**
* Show base styles or block styles
*
* @param kEvent $event
*/
function SetCustomQuery(&$event)
{
$object =& $event->getObject();
switch ($event->Special)
{
case 'base':
$object->addFilter('type_filter', '%1$s.Type = 1');
break;
case 'block':
$object->addFilter('type_filter', '%1$s.Type = 2');
break;
}
}
/**
* Get's special of main item for linking with subitem
*
* @param kEvent $event
* @return string
*/
function getMainSpecial(&$event)
{
return '';
}
/**
* Save css-style name & description before opening css editor
*
* @param kEvent $event
*/
function OnOpenStyleEditor(&$event)
{
$this->SaveChanges($event);
$event->redirect = false;
}
/**
* Saves Changes to Item
*
* @param kEvent $event
*/
function SaveChanges(&$event)
{
$this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
$object =& $event->getObject();
$items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
if($items_info)
{
list($id,$field_values) = each($items_info);
if($id == 0)
{
$object->Load( $field_values['ParentId'] );
$object->SetFieldsFromHash($field_values);
$object->Create();
if( $object->IsTempTable() ) $object->setTempID();
}
else
{
$object->Load($id);
$object->SetFieldsFromHash($field_values);
$object->Update();
}
}
}
/**
* Save style changes from style editor
*
* @param kEvent $event
*/
function OnSaveStyle(&$event)
{
$this->SaveChanges($event);
$object =& $event->getObject();
$this->Application->SetVar($event->getPrefixSpecial().'_id', $object->GetId() );
$return_tpl = $object->GetDBField('Type') == 1 ? 'base_style_edit' : 'block_style_edit';
$this->finalizePopup($event, 'selectors.base','in-commerce/stylesheets/'.$return_tpl);
}
/**
* Extract styles
*
* @param kEvent $event
*/
function OnAfterItemLoad(&$event)
{
$object =& $event->getObject();
$selector_data = $object->GetDBField('SelectorData');
if($selector_data)
{
$selector_data = unserialize($selector_data);
$object->SetDBField('SelectorData', $selector_data);
}
else
{
$selector_data = Array();
}
$this->AddParentProperties($event, $selector_data);
}
/**
* Serialize item before saving to db
*
* @param kEvent $event
*/
function OnSerializeSelectorData(&$event)
{
$object =& $event->getObject();
$selector_data = $object->GetDBField('SelectorData');
if(!$selector_data) $selector_data = Array();
$selector_data = $this->RemoveParentProperties($event, $selector_data);
if( !IsSerialized($selector_data) ) $selector_data = serialize($selector_data);
$object->SetDBField('SelectorData', $selector_data);
}
/**
* Unserialize data back when update was made
*
* @param kEvent $event
*/
function OnUnserializeSelectorData(&$event)
{
$object =& $event->getObject();
$selector_data = $object->GetDBField('SelectorData');
if(!$selector_data) $selector_data = Array();
if( IsSerialized($selector_data) ) $selector_data = unserialize($selector_data);
$selector_data = $this->AddParentProperties($event, $selector_data);
$object->SetDBField('SelectorData', $selector_data);
}
/**
* Populate options based on temporary table :)
*
* @param kEvent $event
*/
function OnPrepareBaseStyles(&$event)
{
$object =& $event->getObject();
$parent_info = $object->getLinkedInfo();
$title_field = $this->Application->getUnitOption($event->Prefix,'TitleField');
$sql = 'SELECT '.$title_field.', '.$object->IDField.' FROM '.$object->TableName.' WHERE Type = 1 AND StylesheetId = '.$parent_info['ParentId'].' ORDER BY '.$title_field;
$object->Fields['ParentId']['options'] = array_merge_recursive2($object->Fields['ParentId']['options'],
$this->Conn->GetCol($sql,$object->IDField) );
}
/**
* Remove properties of parent style that match by value from style
*
* @param kEvent $event
*/
function RemoveParentProperties(&$event, $selector_data)
{
$object =& $event->getObject();
$parent_id = $object->GetDBField('ParentId');
if($parent_id)
{
$sql = 'SELECT SelectorData FROM '.$object->TableName.' WHERE '.$object->IDField.' = '.$parent_id;
$base_selector_data = $this->Conn->GetOne($sql);
if( IsSerialized($base_selector_data) ) $base_selector_data = unserialize($base_selector_data);
foreach($selector_data as $prop_name => $prop_value)
{
- if( $base_selector_data[$prop_name] == $prop_value ) {
- unset($selector_data[$prop_name]);
- }
- if( $prop_value == '') {
+ if( !$prop_value || getArrayValue($base_selector_data,$prop_name) == $prop_value )
+ {
unset($selector_data[$prop_name]);
}
}
$object->SetDBField('SelectorData', $selector_data);
return $selector_data;
}
return $selector_data;
}
/**
* Add back properties from parent style, that match this style property values
*
* @param kEvent $event
*/
function AddParentProperties(&$event, $selector_data)
{
$object =& $event->getObject();
$parent_id = $object->GetDBField('ParentId');
if($parent_id)
{
$sql = 'SELECT SelectorData FROM '.$object->TableName.' WHERE '.$object->IDField.' = '.$parent_id;
$base_selector_data = $this->Conn->GetOne($sql);
if( IsSerialized($base_selector_data) ) $base_selector_data = unserialize($base_selector_data);
$selector_data = array_merge_recursive2($base_selector_data,$selector_data);
$object->SetDBField('SelectorData', $selector_data);
return $selector_data;
}
return $selector_data;
}
+
+ /**
+ * Reset Style definition to base style -> no customizations
+ *
+ * @param kEvent $event
+ */
+ function OnResetToBase(&$event)
+ {
+ $object =& $event->getObject();
+ $object->SetFieldsFromHash( $this->getSubmittedFields($event) );
+ $object->SetDBField( 'SelectorData', Array() );
+ $object->Update();
+
+ $event->redirect_params['pass'] = 'all,'.$event->getPrefixSpecial();
+ }
}
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.6
\ No newline at end of property
+1.1.2.7
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/js/colorselector.js
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/admin_templates/js/colorselector.js (revision 1484)
+++ branches/unlabeled/unlabeled-1.1.2/core/admin_templates/js/colorselector.js (revision 1485)
@@ -1,86 +1,78 @@
// color Selector
var aColors = '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,808080,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF';
- function kColorSelector()
+ function InitColorSelector()
{
var $selector = document.getElementById('colorSelector_div');
- this.updateColor = updateColor;
- this.colorMouseOver = colorMouseOver;
- this.colorMouseOut = colorMouseOut;
- this.colorClick = colorClick;
-
if( !isset($selector) )
{
var $selector = document.createElement('DIV');
$selector.id = 'colorSelector_div';
$selector.className = 'table_color1';
$selector.style.width = '178px';
$selector.style.borderWidth = '1px';
$selector.style.borderColor = '#000000';
$selector.style.display = 'none';
$selector.style.position = 'absolute';
$selector.style.borderStyle = 'solid';
- document.appendChild($selector);
- alert('1');
var $s_table = document.createElement('TABLE');
$s_table.id = 'colorSelector';
$selector.appendChild($s_table);
- alert('2');
+ document.body.appendChild($selector);
+
var oTable = document.getElementById('colorSelector');
var iCounter = 0;
aColors = aColors.split(',');
- alert('3');
+
while(iCounter < aColors.length)
{
- alert('aa');
var oRow = oTable.insertRow(-1);
for(var i = 0; i < 8 && iCounter < aColors.length; i++, iCounter++)
{
var $cell = document.createElement('TD');
$cell.innerHTML = '<div class="ColorBox" style="background-color: #'+aColors[iCounter]+'"></div>';
$cell.onmouseover = this.colorMouseOver;
$cell.onmouseout = this.colorMouseOut;
$cell.onclick = this.colorClick;
$cell.setAttribute('ColorIndex', iCounter);
var oDiv=oRow.insertCell(-1).appendChild($cell);
};
}
}
}
- function updateColor($event,$color_preview)
+ function updateColor($event,$color_id)
{
- alert('e: '+$event+'; cp: '+$color_preview);
- document.getElementById('color_'+$color_preview).style.backgroundColor = document.getElementById($color_preview).value;
+ document.getElementById('color_'+$color_id).style.backgroundColor = document.getElementById($color_id).value;
}
function colorMouseOver($e)
{
if(!$e) $e = window.event;
//print_pre(this);
this.parentNode.style.backgroundColor = '#C8D3E2';
this.parentNode.style.borderColor = '#7196CC';
}
function colorMouseOut($e)
{
if(!$e) $e = window.event;
this.parentNode.style.backgroundColor = '#F6F6F6';
this.parentNode.style.borderColor = '#F6F6F6';
}
function colorClick($e)
{
if(!$e) $e = window.event;
var $color = aColors[ this.getAttribute('ColorIndex') ];
document.getElementById('color_'+$input_name).style.backgroundColor = $color;
document.getElementById($input_name).value = '#' + $color;
document.getElementById('colorSelector_div').style.display = 'none';
colorMouseOut($e);
}
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/js/colorselector.js
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.2
\ No newline at end of property
+1.1.2.3
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/style_editor.tpl
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/style_editor.tpl (revision 1484)
+++ branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/style_editor.tpl (revision 1485)
@@ -1,190 +1,132 @@
<inp2:m_set nobody="yes"/>
<inp2:m_include t="incs/header"/>
<body topmargin="0" leftmargin="8" marginheight="0" marginwidth="8" bgcolor="#FFFFFF">
<inp2:m_ParseBlock name="blue_bar" prefix="css" title_preset="style_edit" module="in-commerce" icon="icon46_style"/>
<script src="incs/colorselector.js" type="text/javascript" language="javascript"></script>
<style type="text/css">
-
-
-
.ColorBox
{
font-size: 1px;
border: #808080 1px solid;
width: 10px;
position: static;
height: 10px;
}
-
-
-
</style>
<!-- ToolBar --->
<table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td>
<script type="text/javascript">
a_toolbar = new ToolBar();
a_toolbar.AddButton( new ToolBarButton('select', '<inp2:m_phrase label="la_ToolTip_Save"/>', function() {
submit_event('selectors','OnSaveStyle');
}
) );
a_toolbar.AddButton( new ToolBarButton('cancel', '<inp2:m_phrase label="la_ToolTip_Cancel"/>', function() {
window.close();
}
) );
a_toolbar.Render();
function openColorSelector($e, $field)
{
- alert('onpen colorselector called');
-
var $div = document.getElementById('colorSelector_div');
-
- var posx = 0;
- var posy = 0;
- if (!$e) var $e = window.event;
- if ($e.pageX || $e.pageY)
+ if($div)
{
- posx = $e.pageX;
- posy = $e.pageY;
+ alert('div - ok');
+ var posx = 0;
+ var posy = 0;
+ if (!$e) var $e = window.event;
+ if ($e.pageX || $e.pageY)
+ {
+ posx = $e.pageX;
+ posy = $e.pageY;
+ }
+ else if ($e.clientX || $e.clientY)
+ {
+ posx = $e.clientX + document.body.scrollLeft;
+ posy = $e.clientY + document.body.scrollTop;
+ }
+
+ $div.style.left = posx;
+ $div.style.top = posy;
+ $div.style.display = 'block';
}
- else if ($e.clientX || $e.clientY)
+ else
{
- posx = $e.clientX + document.body.scrollLeft;
- posy = $e.clientY + document.body.scrollTop;
+ alert('div not defined');
}
-
- $div.style.left = posx;
- $div.style.top = posy;
- $div.style.display = 'block';
-
}
</script>
</td>
</tr>
</tbody>
</table>
<inp2:m_block name="inp_edit_color"/>
<tr class="<inp2:m_odd_even odd="table_color1" even="table_color2"/>">
<inp2:m_ParseBlock name="inp_edit_field_caption" prefix="$prefix" field="$field" title_phrase="$title_phrase" title="$title" is_last="$is_last"/>
<td>
<input type="text"
name="<inp2:$prefix_InputName field="$field" subfield="$subfield"/>"
id="<inp2:$prefix_InputName field="$field" subfield="$subfield"/>"
value="<inp2:$prefix_Field field="$field" subfield="$subfield"/>"
tabindex="<inp2:m_get param="tab_index"/>"
size="<inp2:m_param name="size"/>"
maxlength="<inp2:m_param name="maxlength"/>"
class="<inp2:m_param name="class"/>"
onkeyup="updateColor(event,'<inp2:$prefix_InputName field="$field" subfield="$subfield"/>')"
onblur="<inp2:m_Param name="onblur"/>">
<div id="color_<inp2:$prefix_InputName field="$field" subfield="$subfield"/>" style="display: inline; border: 1px solid #000000;" onclick="openColorSelector(event,'<inp2:$prefix_InputName field="$field" subfield="$subfield"/>');">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
<script language="javascript">
- updateColor(event,'<inp2:$prefix_InputName field="$field" subfield="$subfield"/>');
+ updateColor(null,'<inp2:$prefix_InputName field="$field" subfield="$subfield"/>');
</script>
</td>
<td class="error"><inp2:$prefix_Error field="$field"/>&nbsp;</td>
</tr>
<inp2:m_blockend/>
<inp2:m_block name="inp_edit_options_style"/>
<tr class="<inp2:m_odd_even odd="table_color1" even="table_color2"/>">
<inp2:m_ParseBlock name="inp_edit_field_caption" prefix="$prefix" field="$field" title_phrase="$title_phrase" title="$title" is_last="$is_last"/>
<td>
- <select tabindex="<inp2:m_get param="tab_index"/>" name="<inp2:$prefix_InputName field="$field"/>" id="<inp2:$prefix_InputName field="$field"/>" onchange="<inp2:m_Param name="onchange"/>">
+ <select tabindex="<inp2:m_get param="tab_index"/>" name="<inp2:$prefix_InputName field="$field" subfield="$subfield"/>" id="<inp2:$prefix_InputName field="$field" subfield="$subfield"/>" onchange="<inp2:m_Param name="onchange"/>">
<inp2:$prefix_PredefinedOptions field="$value_field" block="inp_option_item" selected="selected"/>
</select>
</td>
<td class="error"><inp2:$prefix_Error field="$field"/>&nbsp;</td>
</tr>
<inp2:m_blockend/>
<table width="100%" border="0" cellspacing="0" cellpadding="4" class="tableborder">
<inp2:m_ParseBlock name="subsection" title="!la_FontAttributes!"/>
<inp2:m_ParseBlock name="inp_edit_color" prefix="selectors" field="SelectorData" subfield="color" title="!la_fld_FontColor!"/>
<inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorData" subfield="font-size" title="!la_fld_FontSize!"/>
<inp2:m_ParseBlock name="inp_edit_options_style" prefix="selectors" field="SelectorData" subfield="font-style" value_field="FontStyle" title="!la_fld_FontStyle!"/>
<inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorData" subfield="font-weight" title="!la_fld_FontWeight!"/>
<inp2:m_ParseBlock name="subsection" title="!la_BackgroundAndBorders!"/>
- <inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorData" subfield="background-color" title="!la_fld_BackgroundColor!"/>
+ <inp2:m_ParseBlock name="inp_edit_color" prefix="selectors" field="SelectorData" subfield="background-color" title="!la_fld_BackgroundColor!"/>
<inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorData" subfield="border" title="!la_fld_Border!"/>
<inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorData" subfield="padding" title="!la_fld_Padding!"/>
<inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorData" subfield="margin" title="!la_fld_Margins!"/>
<inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorData" subfield="margin-top" title="!la_fld_MarginTop!"/>
<inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorData" subfield="margin-right" title="!la_fld_MarginRight!"/>
<inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorData" subfield="margin-bottom" title="!la_fld_MarginBottom!"/>
<inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorData" subfield="margin-left" title="!la_fld_MarginLeft!"/>
</table>
<script language="javascript" type="text/javascript">
-
- $cs = new kColorSelector();
-
- var $input_name = '<inp2:selectors_InputName field="SelectorData" subfield="color"/>';
-
- var oTable = document.getElementById('colorSelector');
- var iCounter = 0;
- var aColors = '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,808080,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF';
- aColors = aColors.split(',');
-
- function updateColor($event,$color_id)
- {
- document.getElementById('color_'+$color_id).style.backgroundColor = document.getElementById($color_id).value;
- }
-
- function colorMouseOver($e)
- {
- if(!$e) $e = window.event;
- //print_pre(this);
- this.parentNode.style.backgroundColor = '#C8D3E2';
- this.parentNode.style.borderColor = '#7196CC';
-
- }
-
- function colorMouseOut($e)
- {
- if(!$e) $e = window.event;
- this.parentNode.style.backgroundColor = '#F6F6F6';
- this.parentNode.style.borderColor = '#F6F6F6';
- }
-
- function colorClick($e)
- {
- if(!$e) $e = window.event;
- var $color = aColors[ this.getAttribute('ColorIndex') ];
-
- document.getElementById('color_'+$input_name).style.backgroundColor = $color;
- document.getElementById($input_name).value = '#' + $color;
- document.getElementById('colorSelector_div').style.display = 'none';
-
- colorMouseOut($e);
- }
-
- while(iCounter < aColors.length)
- {
- var oRow=oTable.insertRow(-1);
- for(var i=0; i<8 && iCounter < aColors.length; i++,iCounter++)
- {
- var $cell = document.createElement('TD');
- $cell.innerHTML = '<div class="ColorBox" style="background-color: #'+aColors[iCounter]+'"></div>';
- $cell.onmouseover = colorMouseOver;
- $cell.onmouseout = colorMouseOut;
- $cell.onclick = colorClick;
- $cell.setAttribute('ColorIndex', iCounter);
- var oDiv=oRow.insertCell(-1).appendChild($cell);
- };
- }
+ InitColorSelector();
</script>
<inp2:m_include t="incs/footer"/>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/style_editor.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.4
\ No newline at end of property
+1.1.2.5
\ No newline at end of property

Event Timeline