Index: trunk/kernel/admin_templates/incs/script.js =================================================================== diff -u -N -r3299 -r3543 --- trunk/kernel/admin_templates/incs/script.js (.../script.js) (revision 3299) +++ trunk/kernel/admin_templates/incs/script.js (.../script.js) (revision 3543) @@ -464,11 +464,261 @@ { if ( $kf.elements[i].id.match($cb_mask) ) { -// alert('found:' + $kf.elements[i].id); if ($kf.elements[i].checked) $tmp += '|'+$kf.elements[i].value; } } if($tmp.length > 0) $tmp += '|'; document.getElementById($hidden_id).value = $tmp.replace(/,$/, ''); -// alert('field: '+$hidden_id+' = '+document.getElementById($hidden_id).value ); -} \ No newline at end of file +} + +// related to lists operations (moving) + + + + function move_selected($from_list, $to_list) + { + if (typeof($from_list) != 'object') $from_list = document.getElementById($from_list); + if (typeof($to_list) != 'object') $to_list = document.getElementById($to_list); + + if (has_selected_options($from_list)) + { + var $from_array = select_to_array($from_list); + var $to_array = select_to_array($to_list); + var $new_from = Array(); + var $cur = null; + + for (var $i = 0; $i < $from_array.length; $i++) + { + $cur = $from_array[$i]; + if ($cur[2]) // If selected - add to To array + { + $to_array[$to_array.length] = $cur; + } + else //Else - keep in new From + { + $new_from[$new_from.length] = $cur; + } + } + + $from_list = array_to_select($new_from, $from_list); + $to_list = array_to_select($to_array, $to_list); + } + else + { + alert('Please select items to perform moving!'); + } + } + + function select_to_array($aSelect) + { + var $an_array = new Array(); + var $cur = null; + + for (var $i = 0; $i < $aSelect.length; $i++) + { + $cur = $aSelect.options[$i]; + $an_array[$an_array.length] = new Array($cur.text, $cur.value, $cur.selected); + } + return $an_array; + } + + function array_to_select($anArray, $aSelect) + { + var $initial_length = $aSelect.length; + for (var $i = $initial_length - 1; $i >= 0; $i--) + { + $aSelect.options[$i] = null; + } + + for (var $i = 0; $i < $anArray.length; $i++) + { + $cur = $anArray[$i]; + $aSelect.options[$aSelect.length] = new Option($cur[0], $cur[1]); + } + } + + function select_compare($a, $b) + { + if ($a[0] < $b[0]) + return -1; + if ($a[0] > $b[0]) + return 1; + return 0; + } + + function select_to_string($aSelect) + { + var $result = ''; + var $cur = null; + + if (typeof($aSelect) != 'object') $aSelect = document.getElementById($aSelect); + + for (var $i = 0; $i < $aSelect.length; $i++) + { + $result += $aSelect.options[$i].value + '|'; + } + + return $result.length ? '|' + $result : ''; + } + + function selected_to_string($aSelect) + { + var $result = ''; + var $cur = null; + + if (typeof($aSelect) != 'object') $aSelect = document.getElementById($aSelect); + + for (var $i = 0; $i < $aSelect.length; $i++) + { + $cur = $aSelect.options[$i]; + if ($cur.selected && $cur.value != '') + { + $result += $cur.value + '|'; + } + } + + return $result.length ? '|' + $result : ''; + } + + function string_to_selected($str, $aSelect) + { + var $cur = null; + for (var $i = 0; i < $aSelect.length; $i++) + { + $cur = $aSelect.options[$i]; + $aSelect.options[$i].selected = $str.match(',' + $cur.value + ',') ? true : false; + } + } + + function set_selected($selected_options, $aSelect) + { + if (!$selected_options.length) return false; + + for (var $i = 0; $i < $aSelect.length; $i++) + { + for (var $k = 0; $k < $selected_options.length; $k++) + { + if ($aSelect.options[$i].value == $selected_options[$k]) + { + $aSelect.options[$i].selected = true; + } + } + } + } + + function get_selected_count($theList) + { + var $count = 0; + var $cur = null; + for (var $i = 0; $i < $theList.length; $i++) + { + $cur = $theList.options[$i]; + if ($cur.selected) $count++; + } + return $count; + } + + function get_selected_index($aSelect, $typeIndex) + { + var $index = 0; + for (var $i = 0; $i < $aSelect.length; $i++) + { + if ($aSelect.options[$i].selected) + { + $index = $i; + if ($typeIndex == 'firstSelected') break; + } + } + return $index; + } + + function has_selected_options($theList) + { + var $ret = false; + var $cur = null; + + for (var $i = 0; $i < $theList.length; $i++) + { + $cur = $theList.options[$i]; + if ($cur.selected) $ret = true; + } + return $ret; + } + + function select_sort($aSelect) + { + if (typeof($aSelect) != 'object') $aSelect = document.getElementById($aSelect); + + var $to_array = select_to_array($aSelect); + $to_array.sort(select_compare); + array_to_select($to_array, $aSelect); + } + + function move_options_up($aSelect, $interval) + { + if (typeof($aSelect) != 'object') $aSelect = document.getElementById($aSelect); + + if (has_selected_options($aSelect)) + { + var $selected_options = Array(); + var $first_selected = get_selected_index($aSelect, 'firstSelected'); + + for (var $i = 0; $i < $aSelect.length; $i++) + { + if ($aSelect.options[$i].selected && ($first_selected > 0) ) + { + swap_options($aSelect, $i, $i - $interval); + $selected_options[$selected_options.length] = $aSelect.options[$i - $interval].value; + } + else if ($first_selected == 0) + { + alert('Begin of list'); + break; + } + } + set_selected($selected_options, $aSelect); + } + else + { + alert('Check items from moving'); + } + } + + function move_options_down($aSelect, $interval) + { + if (typeof($aSelect) != 'object') $aSelect = document.getElementById($aSelect); + + if (has_selected_options($aSelect)) + { + var $last_selected = get_selected_index($aSelect, 'lastSelected'); + var $selected_options = Array(); + + for (var $i = $aSelect.length - 1; $i >= 0; $i--) + { + if ($aSelect.options[$i].selected && ($aSelect.length - ($last_selected + 1) > 0)) + { + swap_options($aSelect, $i, $i + $interval); + $selected_options[$selected_options.length] = $aSelect.options[$i + $interval].value; + } + else if ($last_selected + 1 == $aSelect.length) + { + alert('End of list'); + break; + } + } + set_selected($selected_options, $aSelect); + } + else + { + alert('Check items from moving'); + } + } + + function swap_options($aSelect, $src_num, $dst_num) + { + var $src_option = new Option($aSelect.options[$src_num].innerHTML, $aSelect.options[$src_num].value); + var $dst_option = new Option($aSelect.options[$dst_num].innerHTML, $aSelect.options[$dst_num].value); + + $aSelect.options[$src_num] = $dst_option; + $aSelect.options[$dst_num] = $src_option; + } \ No newline at end of file Index: trunk/core/kernel/db/dbitem.php =================================================================== diff -u -N -r3282 -r3543 --- trunk/core/kernel/db/dbitem.php (.../dbitem.php) (revision 3282) +++ trunk/core/kernel/db/dbitem.php (.../dbitem.php) (revision 3543) @@ -135,12 +135,14 @@ */ function SetError($field, $pseudo, $error_label = '') { - $error_msg = $this->Application->Phrase($error_label); - if( !($error_msg && getArrayValue($this->ErrorMsgs,$pseudo)) ) + $error_field = isset($this->Fields[$field]['error_field']) ? $this->Fields[$field]['error_field'] : $field; + $this->FieldErrors[$error_field]['pseudo'] = $pseudo; + + $error_msg = $error_label ? $this->Application->Phrase($error_label) : ''; + if ($error_label && !getArrayValue($this->ErrorMsgs, $pseudo)) { $this->ErrorMsgs[$pseudo] = $error_msg; } - $this->FieldErrors[$field]['pseudo'] = $pseudo; } /** Index: trunk/admin/include/mainscript.js =================================================================== diff -u -N -r3145 -r3543 --- trunk/admin/include/mainscript.js (.../mainscript.js) (revision 3145) +++ trunk/admin/include/mainscript.js (.../mainscript.js) (revision 3543) @@ -153,6 +153,31 @@ if(\$window.parent) \$window = \$window.parent; \$window.document.title = (main_title.length ? main_title + ' - ' : '') + \$title; } + +// sets hidden field value +// if the field does not exist - creates it +function set_hidden_field(\$field_id, \$value) +{ +// alert('form: '+\$form_prefix+'_form'); + + var \$kf = document.getElementById(\$form_prefix+'_form'); + var \$field = \$kf.elements[\$field_id]; + if(\$field) + { + \$field.value = \$value; + return true; + } + + \$field = document.createElement('INPUT'); + \$field.type = 'hidden'; + \$field.name = \$field_id; + \$field.id = \$field_id; + \$field.value = \$value; + + \$kf.appendChild(\$field); + return false; +} + var env = "$env2"; Index: trunk/core/kernel/event_manager.php =================================================================== diff -u -N -r3374 -r3543 --- trunk/core/kernel/event_manager.php (.../event_manager.php) (revision 3374) +++ trunk/core/kernel/event_manager.php (.../event_manager.php) (revision 3543) @@ -23,7 +23,7 @@ * * @var Array */ - var $queryMaps=Array(); + var $queryMaps = Array(); /** * Build events registred for @@ -85,9 +85,9 @@ */ function setQueryMaps($new_query_maps) { - $this->queryMaps=$new_query_maps; + $this->queryMaps = $new_query_maps; } - + /** * Registers new regular event * Index: trunk/kernel/module_help/visits_list.txt =================================================================== diff -u -N -r2976 -r3543 --- trunk/kernel/module_help/visits_list.txt (.../visits_list.txt) (revision 2976) +++ trunk/kernel/module_help/visits_list.txt (.../visits_list.txt) (revision 3543) @@ -1,24 +1,24 @@ -Visits (In-portal Platform)
-
-
This section displays the log of all visits to your website. The visit is recorded when a user comes to your site. If the user logs in during his or her visit, the username will be updated in the visit record. If the user’s session expires during the visit, a new visit record will be created when he or she comes back to the site.
-The grid on this page displays the following columns:
- -
-Visits (with In-commerce installed)
-
-
This section displays the log of all visits to your website. The visit is recorded when user comes to your site. If the user logs in during his or her visit, the username will be updated in the visit record. If the user’s session expires during the visit, a new visit record will be created when he or she comes back to the site.
-The grid on this page displays the following columns:
-