diff --git a/js/ajax.js b/js/ajax.js index 9541e4b7b1..11d7b1bbe1 100644 --- a/js/ajax.js +++ b/js/ajax.js @@ -17,9 +17,9 @@ var AJAX = { */ xhr: null, /** - * @var object array, list of altered targets + * @var object lockedTargets, list of locked targets */ - alteredTargets: [], + lockedTargets: {}, /** * @var function Callback to execute after a successful request * Used by PMA_commonFunctions from common.js @@ -133,20 +133,36 @@ var AJAX = { } }, /** - * Registers a keyup function when changes are made in input field - * @param event for the trigged function + * function to handle lock page mechanism + * + * @param event the event object * * @return void */ - inputAltered: function(event) { - var i; - for(i=0; i < AJAX.alteredTargets.length; i++) { - if(AJAX.alteredTargets[i] == event.target) - break; + lockPageHandler: function(event) { + var lockId = $(this).data('lock-id'); + if (typeof lockId === 'undefined') { + return; } - - if(i == AJAX.alteredTargets.length) { - AJAX.alteredTargets[i] = event.target; + /* + * @todo Fix Code mirror does not give correct full value (query) + * in textarea, it returns only the change in content. + */ + var newHash = AJAX.hash($(this).val()); + var oldHash = $(this).data('val-hash'); + // Set lock if old value != new value + // otherwise release lock + if (oldHash !== newHash) { + AJAX.lockedTargets[lockId] = true; + } else { + delete AJAX.lockedTargets[lockId]; + } + // Show lock icon if locked targets is not empty. + // otherwise remove lock icon + if (!jQuery.isEmptyObject(AJAX.lockedTargets)) { + $('#lock_page_icon').html(PMA_getImage('s_lock.png').toString()); + } else { + $('#lock_page_icon').html(''); } }, /** @@ -166,8 +182,8 @@ var AJAX = { } else if ($(this).attr('target')) { return true; } else if ($(this).hasClass('ajax') || $(this).hasClass('disableAjax')) { - //reset the alteredTarget array, as specified AJAX operation has finished - AJAX.alteredTargets.length = 0; + //reset the lockedTargets object, as specified AJAX operation has finished + AJAX.lockedTargets = {}; return true; } else if (href && href.match(/^#/)) { return true; @@ -184,30 +200,20 @@ var AJAX = { event.stopImmediatePropagation(); } - //sometime we accidently click on a url,refresh button or back button - //operation to confirm if user want to leave page in such cases - //trigger confirm dialog - var isInputAltered = false; - for (var i = 0; i < AJAX.alteredTargets.length; i++) { - if(AJAX.alteredTargets[i].value.length !== 0) { - isInputAltered = true; - break; - } - } - //triggers a confirm dialog if: //the user has performed some operations on loaded page //the user clicks on some link, (won't trigger for buttons) //the click event is not triggered by script if (typeof event !== 'undefined' && event.type === 'click' && event.isTrigger !== true && - isInputAltered && + !jQuery.isEmptyObject(AJAX.lockedTargets) && confirm(PMA_messages.strConfirmNavigation) === false ) { return false; } //reset - AJAX.alteredTargets.length = 0; + AJAX.lockedTargets = {}; + $('#lock_page_icon').html(''); if (AJAX.active === true) { // Cancel the old request if abortable, when the user requests @@ -327,6 +333,7 @@ var AJAX = { .not('#pma_navigation') .not('#floating_menubar') .not('#goto_pagetop') + .not('#lock_page_icon') .not('#page_content') .not('#selflink') .not('#session_debug') @@ -385,6 +392,16 @@ var AJAX = { } AJAX._callback = function () {}; }); + // initializes all lock-page elements lock-id and + // val-hash data property + $('#page_content form.lock-page textarea, ' + + '#page_content form.lock-page input[type="text"]').each(function(i){ + $(this).data('lock-id', i); + // val-hash is the hash of default value of the field + // so that it can be compared with new value hash + // to check whether field was modified or not. + $(this).data('val-hash', AJAX.hash($(this).val())); + }); } else { PMA_ajaxShowMessage(data.error, false); AJAX.active = false; @@ -907,9 +924,14 @@ $('form').live('submit', AJAX.requestHandler); /** * Attach event listener to events when user modify visible - * Input fields to make changes in forms + * Input or Textarea fields to make changes in forms */ -$('#page_content').live("keyup", "input[type='text']:visible", AJAX.inputAltered); +$(document).on( + 'keyup change', + '#page_content form.lock-page textarea, ' + + '#page_content form.lock-page input[type="text"]', + AJAX.lockPageHandler +); /** * Gracefully handle fatal server errors diff --git a/js/messages.php b/js/messages.php index 9e3e86456c..1f3c1edb85 100644 --- a/js/messages.php +++ b/js/messages.php @@ -43,7 +43,7 @@ $js_messages['strDroppingPrimaryKeyIndex'] = __('Dropping Primary Key/Index'); $js_messages['strOperationTakesLongTime'] = __('This operation could take a long time. Proceed anyway?'); $js_messages['strDropUserGroupWarning'] = __('Do you really want to delete user group "%s"?'); $js_messages['strConfirmDeleteQBESearch'] = __('Do you really want to delete the search "%s"?'); -$js_messages['strConfirmNavigation'] = __('Are you sure you want to navigate away from this page? Press OK to continue or Cancel to stay on the current page.'); +$js_messages['strConfirmNavigation'] = __('You have unsaved changes; are you sure you want to leave this page?'); /* For indexes */ $js_messages['strFormEmpty'] = __('Missing value in the form!'); diff --git a/js/tbl_change.js b/js/tbl_change.js index b6efac1c9e..3a9111e96a 100644 --- a/js/tbl_change.js +++ b/js/tbl_change.js @@ -249,8 +249,6 @@ function verificationsAfterFieldChange(urlField, multi_edit, theType) * Unbind all event handlers before tearing down a page */ AJAX.registerTeardown('tbl_change.js', function () { - $("a").die('click'); - $("form#insertForm :input:not([type=hidden])").unbind('change'); $('span.open_gis_editor').die('click'); $("input[name='gis_data[save]']").die('click'); $('input.checkbox_null').die('click'); @@ -259,7 +257,6 @@ AJAX.registerTeardown('tbl_change.js', function () { $("select[name*='funcs']").die('click'); }); - /** * Ajax handlers for Change Table page * @@ -270,35 +267,6 @@ AJAX.registerTeardown('tbl_change.js', function () { AJAX.registerOnload('tbl_change.js', function () { $.datepicker.initialized = false; - // State of the form - var $unsavedForm = false; - - /** - * If user navigates away from the page - * without saving the changes, a prompt - * will be displayed to confirm navigation - */ - $('a').on('click', function(e){ - e.preventDefault(); - - if ($unsavedForm) { - var is_confirmed = confirm(PMA_messages.strConfirmNavigation); - if (! is_confirmed) { - return false; - } else { - unsavedForm = false; - return true; - } - } - }); - - /** - * If any form elements are changed, set $unsavedForm to true - */ - $("form#insertForm :input:not([type=hidden])").change(function(){ - $unsavedForm = true; - }); - $('span.open_gis_editor').live('click', function (event) { event.preventDefault(); diff --git a/libraries/Header.class.php b/libraries/Header.class.php index 3a237dccd2..af3f2d22b5 100644 --- a/libraries/Header.class.php +++ b/libraries/Header.class.php @@ -402,6 +402,7 @@ class PMA_Header $retval .= $this->_getWarnings(); if ($this->_menuEnabled && $GLOBALS['server'] > 0) { $retval .= $this->_menu->getDisplay(); + $retval .= ''; $retval .= sprintf( '%s', __('Click on the bar to scroll to top of page'), diff --git a/libraries/TableSearch.class.php b/libraries/TableSearch.class.php index 0e44043275..aa3f29dcf5 100644 --- a/libraries/TableSearch.class.php +++ b/libraries/TableSearch.class.php @@ -1149,7 +1149,7 @@ EOT; $html_output .= '
'; + . 'class="ajax lock-page"' . '>'; $html_output .= PMA_URL_getHiddenInputs($this->_db, $this->_table); $html_output .= ''; diff --git a/libraries/insert_edit.lib.php b/libraries/insert_edit.lib.php index b22143237a..7e4638e14f 100644 --- a/libraries/insert_edit.lib.php +++ b/libraries/insert_edit.lib.php @@ -2654,11 +2654,11 @@ function PMA_getHtmlForInsertEditColumnType($column) */ function PMA_getHtmlForInsertEditFormHeader($has_blob_field, $is_upload) { - $html_output =''; } else { $html .= ''; + . '_form ajax lock-page">'; $html .= PMA_URL_getHiddenInputs($form_params); if ($action == 'tbl_create.php') { diff --git a/themes/original/css/common.css.php b/themes/original/css/common.css.php index f7871d2eec..981df77fd5 100644 --- a/themes/original/css/common.css.php +++ b/themes/original/css/common.css.php @@ -828,15 +828,22 @@ div#tablestatistics table { white-space: nowrap; } -#goto_pagetop { +#goto_pagetop, #lock_page_icon { position: fixed; padding: .1em .3em; top: 0; - : 0; z-index: 900; background: white; } +#goto_pagetop { + : 0; +} + +#lock_page_icon { + : 2em; +} + #span_table_comment { font-weight: bold; font-style: italic; diff --git a/themes/original/img/s_lock.png b/themes/original/img/s_lock.png new file mode 100644 index 0000000000..2ebc4f6f96 Binary files /dev/null and b/themes/original/img/s_lock.png differ diff --git a/themes/original/img/sprites.png b/themes/original/img/sprites.png index a0fc056dde..f1e4a9c12f 100644 Binary files a/themes/original/img/sprites.png and b/themes/original/img/sprites.png differ diff --git a/themes/original/sprites.lib.php b/themes/original/sprites.lib.php index 829762fd7f..e040d65f0b 100644 --- a/themes/original/sprites.lib.php +++ b/themes/original/sprites.lib.php @@ -235,448 +235,458 @@ function PMA_sprites() 'width' => '16', 'height' => '16' ), - 'b_sbrowse' => array( + 'b_saveimage' => array( 'position' => '45', + 'width' => '16', + 'height' => '16' + ), + 'b_sbrowse' => array( + 'position' => '46', 'width' => '10', 'height' => '10' ), 'b_search' => array( - 'position' => '46', - 'width' => '16', - 'height' => '16' - ), - 'b_selboard' => array( 'position' => '47', 'width' => '16', 'height' => '16' ), - 'b_select' => array( + 'b_selboard' => array( 'position' => '48', 'width' => '16', 'height' => '16' ), - 'b_snewtbl' => array( + 'b_select' => array( 'position' => '49', + 'width' => '16', + 'height' => '16' + ), + 'b_snewtbl' => array( + 'position' => '50', 'width' => '10', 'height' => '10' ), 'b_spatial' => array( - 'position' => '50', - 'width' => '16', - 'height' => '16' - ), - 'b_sql' => array( 'position' => '51', 'width' => '16', 'height' => '16' ), - 'b_sqlhelp' => array( + 'b_sql' => array( 'position' => '52', 'width' => '16', 'height' => '16' ), - 'b_table_add' => array( + 'b_sqlhelp' => array( 'position' => '53', 'width' => '16', 'height' => '16' ), - 'b_tblanalyse' => array( + 'b_table_add' => array( 'position' => '54', 'width' => '16', 'height' => '16' ), - 'b_tblexport' => array( + 'b_tblanalyse' => array( 'position' => '55', 'width' => '16', 'height' => '16' ), - 'b_tblimport' => array( + 'b_tblexport' => array( 'position' => '56', 'width' => '16', 'height' => '16' ), - 'b_tblops' => array( + 'b_tblimport' => array( 'position' => '57', 'width' => '16', 'height' => '16' ), - 'b_tbloptimize' => array( + 'b_tblops' => array( 'position' => '58', 'width' => '16', 'height' => '16' ), - 'b_tipp' => array( + 'b_tbloptimize' => array( 'position' => '59', 'width' => '16', 'height' => '16' ), - 'b_trigger_add' => array( + 'b_tipp' => array( 'position' => '60', 'width' => '16', 'height' => '16' ), - 'b_triggers' => array( + 'b_trigger_add' => array( 'position' => '61', 'width' => '16', 'height' => '16' ), - 'b_undo' => array( + 'b_triggers' => array( 'position' => '62', 'width' => '16', 'height' => '16' ), - 'b_unique' => array( + 'b_undo' => array( 'position' => '63', 'width' => '16', 'height' => '16' ), - 'b_usradd' => array( + 'b_unique' => array( 'position' => '64', 'width' => '16', 'height' => '16' ), - 'b_usrcheck' => array( + 'b_usradd' => array( 'position' => '65', 'width' => '16', 'height' => '16' ), - 'b_usrdrop' => array( + 'b_usrcheck' => array( 'position' => '66', 'width' => '16', 'height' => '16' ), - 'b_usredit' => array( + 'b_usrdrop' => array( 'position' => '67', 'width' => '16', 'height' => '16' ), - 'b_usrlist' => array( + 'b_usredit' => array( 'position' => '68', 'width' => '16', 'height' => '16' ), - 'b_view' => array( + 'b_usrlist' => array( 'position' => '69', 'width' => '16', 'height' => '16' ), - 'b_view_add' => array( + 'b_view' => array( 'position' => '70', 'width' => '16', 'height' => '16' ), - 'b_views' => array( + 'b_view_add' => array( 'position' => '71', 'width' => '16', 'height' => '16' ), - 'bd_browse' => array( + 'b_views' => array( 'position' => '72', 'width' => '16', 'height' => '16' ), - 'bd_deltbl' => array( + 'bd_browse' => array( 'position' => '73', 'width' => '16', 'height' => '16' ), - 'bd_drop' => array( + 'bd_deltbl' => array( 'position' => '74', 'width' => '16', 'height' => '16' ), - 'bd_edit' => array( + 'bd_drop' => array( 'position' => '75', 'width' => '16', 'height' => '16' ), - 'bd_empty' => array( + 'bd_edit' => array( 'position' => '76', 'width' => '16', 'height' => '16' ), - 'bd_export' => array( + 'bd_empty' => array( 'position' => '77', 'width' => '16', 'height' => '16' ), - 'bd_ftext' => array( + 'bd_export' => array( 'position' => '78', 'width' => '16', 'height' => '16' ), - 'bd_index' => array( + 'bd_ftext' => array( 'position' => '79', 'width' => '16', 'height' => '16' ), - 'bd_insrow' => array( + 'bd_index' => array( 'position' => '80', 'width' => '16', 'height' => '16' ), - 'bd_nextpage' => array( + 'bd_insrow' => array( 'position' => '81', + 'width' => '16', + 'height' => '16' + ), + 'bd_nextpage' => array( + 'position' => '82', 'width' => '8', 'height' => '13' ), 'bd_primary' => array( - 'position' => '82', + 'position' => '83', 'width' => '16', 'height' => '16' ), 'bd_sbrowse' => array( - 'position' => '83', + 'position' => '84', 'width' => '10', 'height' => '10' ), 'bd_select' => array( - 'position' => '84', - 'width' => '16', - 'height' => '16' - ), - 'bd_spatial' => array( 'position' => '85', 'width' => '16', 'height' => '16' ), - 'bd_unique' => array( + 'bd_spatial' => array( 'position' => '86', 'width' => '16', 'height' => '16' ), - 'centralColumns' => array( + 'bd_unique' => array( 'position' => '87', 'width' => '16', 'height' => '16' ), - 'centralColumns_add' => array( + 'centralColumns' => array( 'position' => '88', 'width' => '16', 'height' => '16' ), - 'centralColumns_delete' => array( + 'centralColumns_add' => array( 'position' => '89', 'width' => '16', 'height' => '16' ), - 'col_drop' => array( + 'centralColumns_delete' => array( 'position' => '90', 'width' => '16', 'height' => '16' ), - 'eye' => array( + 'col_drop' => array( 'position' => '91', 'width' => '16', 'height' => '16' ), - 'eye_grey' => array( + 'eye' => array( 'position' => '92', 'width' => '16', 'height' => '16' ), - 'lightbulb' => array( + 'eye_grey' => array( 'position' => '93', 'width' => '16', 'height' => '16' ), - 'lightbulb_off' => array( + 'lightbulb' => array( 'position' => '94', 'width' => '16', 'height' => '16' ), - 'more' => array( + 'lightbulb_off' => array( 'position' => '95', + 'width' => '16', + 'height' => '16' + ), + 'more' => array( + 'position' => '96', 'width' => '13', 'height' => '16' ), 'new_data' => array( - 'position' => '96', - 'width' => '16', - 'height' => '16' - ), - 'new_data_hovered' => array( 'position' => '97', 'width' => '16', 'height' => '16' ), - 'new_data_selected' => array( + 'new_data_hovered' => array( 'position' => '98', 'width' => '16', 'height' => '16' ), - 'new_data_selected_hovered' => array( + 'new_data_selected' => array( 'position' => '99', 'width' => '16', 'height' => '16' ), - 'new_struct' => array( + 'new_data_selected_hovered' => array( 'position' => '100', 'width' => '16', 'height' => '16' ), - 'new_struct_hovered' => array( + 'new_struct' => array( 'position' => '101', 'width' => '16', 'height' => '16' ), - 'new_struct_selected' => array( + 'new_struct_hovered' => array( 'position' => '102', 'width' => '16', 'height' => '16' ), - 'new_struct_selected_hovered' => array( + 'new_struct_selected' => array( 'position' => '103', 'width' => '16', 'height' => '16' ), - 'pause' => array( + 'new_struct_selected_hovered' => array( 'position' => '104', 'width' => '16', 'height' => '16' ), - 'play' => array( + 'pause' => array( 'position' => '105', 'width' => '16', 'height' => '16' ), - 's_asc' => array( + 'play' => array( 'position' => '106', + 'width' => '16', + 'height' => '16' + ), + 's_asc' => array( + 'position' => '107', 'width' => '11', 'height' => '9' ), 's_asci' => array( - 'position' => '107', - 'width' => '16', - 'height' => '16' - ), - 's_cancel' => array( 'position' => '108', 'width' => '16', 'height' => '16' ), - 's_cog' => array( + 's_cancel' => array( 'position' => '109', 'width' => '16', 'height' => '16' ), - 's_db' => array( + 's_cog' => array( 'position' => '110', 'width' => '16', 'height' => '16' ), - 's_desc' => array( + 's_db' => array( 'position' => '111', + 'width' => '16', + 'height' => '16' + ), + 's_desc' => array( + 'position' => '112', 'width' => '11', 'height' => '9' ), 's_error' => array( - 'position' => '112', + 'position' => '113', 'width' => '16', 'height' => '16' ), 's_error2' => array( - 'position' => '113', + 'position' => '114', 'width' => '11', 'height' => '11' ), 's_host' => array( - 'position' => '114', + 'position' => '115', 'width' => '16', 'height' => '16' ), 's_info' => array( - 'position' => '115', + 'position' => '116', 'width' => '11', 'height' => '11' ), 's_lang' => array( - 'position' => '116', - 'width' => '16', - 'height' => '16' - ), - 's_loggoff' => array( 'position' => '117', 'width' => '16', 'height' => '16' ), - 's_notice' => array( + 's_lock' => array( 'position' => '118', 'width' => '16', 'height' => '16' ), - 's_passwd' => array( + 's_loggoff' => array( 'position' => '119', 'width' => '16', 'height' => '16' ), - 's_really' => array( + 's_notice' => array( 'position' => '120', - 'width' => '11', - 'height' => '11' + 'width' => '16', + 'height' => '16' ), - 's_reload' => array( + 's_passwd' => array( 'position' => '121', 'width' => '16', 'height' => '16' ), - 's_replication' => array( + 's_really' => array( 'position' => '122', - 'width' => '16', - 'height' => '16' + 'width' => '11', + 'height' => '11' ), - 's_rights' => array( + 's_reload' => array( 'position' => '123', 'width' => '16', 'height' => '16' ), - 's_sortable' => array( + 's_replication' => array( 'position' => '124', - 'width' => '11', - 'height' => '15' + 'width' => '16', + 'height' => '16' ), - 's_status' => array( + 's_rights' => array( 'position' => '125', 'width' => '16', 'height' => '16' ), - 's_success' => array( + 's_sortable' => array( 'position' => '126', - 'width' => '16', - 'height' => '16' + 'width' => '11', + 'height' => '15' ), - 's_sync' => array( + 's_status' => array( 'position' => '127', 'width' => '16', 'height' => '16' ), - 's_tbl' => array( + 's_success' => array( 'position' => '128', 'width' => '16', 'height' => '16' ), - 's_theme' => array( + 's_sync' => array( 'position' => '129', 'width' => '16', 'height' => '16' ), - 's_top' => array( + 's_tbl' => array( 'position' => '130', 'width' => '16', 'height' => '16' ), - 's_vars' => array( + 's_theme' => array( 'position' => '131', 'width' => '16', 'height' => '16' ), - 's_views' => array( + 's_top' => array( 'position' => '132', + 'width' => '16', + 'height' => '16' + ), + 's_vars' => array( + 'position' => '133', + 'width' => '16', + 'height' => '16' + ), + 's_views' => array( + 'position' => '134', 'width' => '10', 'height' => '10' ), 'window-new' => array( - 'position' => '133', + 'position' => '135', 'width' => '16', 'height' => '16' ), diff --git a/themes/pmahomme/css/common.css.php b/themes/pmahomme/css/common.css.php index ba9249c248..27b77ec1e9 100644 --- a/themes/pmahomme/css/common.css.php +++ b/themes/pmahomme/css/common.css.php @@ -1138,15 +1138,22 @@ div#tablestatistics table { color: #fff; } -#goto_pagetop { +#goto_pagetop, #lock_page_icon { position: fixed; padding: .25em .25em .2em; top: 0; - : 0; z-index: 900; background: #888; } +#goto_pagetop { + : 0; +} + +#lock_page_icon { + : 2em; +} + #span_table_comment { font-weight: bold; font-style: italic; diff --git a/themes/pmahomme/img/s_lock.png b/themes/pmahomme/img/s_lock.png new file mode 100644 index 0000000000..2ebc4f6f96 Binary files /dev/null and b/themes/pmahomme/img/s_lock.png differ diff --git a/themes/pmahomme/img/sprites.png b/themes/pmahomme/img/sprites.png index 262d86191b..7a6daebab5 100644 Binary files a/themes/pmahomme/img/sprites.png and b/themes/pmahomme/img/sprites.png differ diff --git a/themes/pmahomme/sprites.lib.php b/themes/pmahomme/sprites.lib.php index f9622a742f..167af9df73 100644 --- a/themes/pmahomme/sprites.lib.php +++ b/themes/pmahomme/sprites.lib.php @@ -265,511 +265,521 @@ function PMA_sprites() 'width' => '16', 'height' => '16' ), - 'b_sbrowse' => array( + 'b_saveimage' => array( 'position' => '51', 'width' => '16', 'height' => '16' ), - 'b_sdb' => array( + 'b_sbrowse' => array( 'position' => '52', + 'width' => '16', + 'height' => '16' + ), + 'b_sdb' => array( + 'position' => '53', 'width' => '10', 'height' => '10' ), 'b_search' => array( - 'position' => '53', - 'width' => '16', - 'height' => '16' - ), - 'b_selboard' => array( 'position' => '54', 'width' => '16', 'height' => '16' ), - 'b_select' => array( + 'b_selboard' => array( 'position' => '55', 'width' => '16', 'height' => '16' ), - 'b_snewtbl' => array( + 'b_select' => array( 'position' => '56', 'width' => '16', 'height' => '16' ), - 'b_spatial' => array( + 'b_snewtbl' => array( 'position' => '57', 'width' => '16', 'height' => '16' ), - 'b_sql' => array( + 'b_spatial' => array( 'position' => '58', 'width' => '16', 'height' => '16' ), - 'b_sqldoc' => array( + 'b_sql' => array( 'position' => '59', 'width' => '16', 'height' => '16' ), - 'b_sqlhelp' => array( + 'b_sqldoc' => array( 'position' => '60', 'width' => '16', 'height' => '16' ), - 'b_table_add' => array( + 'b_sqlhelp' => array( 'position' => '61', 'width' => '16', 'height' => '16' ), - 'b_tblanalyse' => array( + 'b_table_add' => array( 'position' => '62', 'width' => '16', 'height' => '16' ), - 'b_tblexport' => array( + 'b_tblanalyse' => array( 'position' => '63', 'width' => '16', 'height' => '16' ), - 'b_tblimport' => array( + 'b_tblexport' => array( 'position' => '64', 'width' => '16', 'height' => '16' ), - 'b_tblops' => array( + 'b_tblimport' => array( 'position' => '65', 'width' => '16', 'height' => '16' ), - 'b_tbloptimize' => array( + 'b_tblops' => array( 'position' => '66', 'width' => '16', 'height' => '16' ), - 'b_tipp' => array( + 'b_tbloptimize' => array( 'position' => '67', 'width' => '16', 'height' => '16' ), - 'b_trigger_add' => array( + 'b_tipp' => array( 'position' => '68', 'width' => '16', 'height' => '16' ), - 'b_triggers' => array( + 'b_trigger_add' => array( 'position' => '69', 'width' => '16', 'height' => '16' ), - 'b_undo' => array( + 'b_triggers' => array( 'position' => '70', 'width' => '16', 'height' => '16' ), - 'b_unique' => array( + 'b_undo' => array( 'position' => '71', 'width' => '16', 'height' => '16' ), - 'b_usradd' => array( + 'b_unique' => array( 'position' => '72', 'width' => '16', 'height' => '16' ), - 'b_usrcheck' => array( + 'b_usradd' => array( 'position' => '73', 'width' => '16', 'height' => '16' ), - 'b_usrdrop' => array( + 'b_usrcheck' => array( 'position' => '74', 'width' => '16', 'height' => '16' ), - 'b_usredit' => array( + 'b_usrdrop' => array( 'position' => '75', 'width' => '16', 'height' => '16' ), - 'b_usrlist' => array( + 'b_usredit' => array( 'position' => '76', 'width' => '16', 'height' => '16' ), - 'b_view' => array( + 'b_usrlist' => array( 'position' => '77', 'width' => '16', 'height' => '16' ), - 'b_view_add' => array( + 'b_view' => array( 'position' => '78', 'width' => '16', 'height' => '16' ), - 'b_views' => array( + 'b_view_add' => array( 'position' => '79', 'width' => '16', 'height' => '16' ), - 'bd_browse' => array( + 'b_views' => array( 'position' => '80', 'width' => '16', 'height' => '16' ), - 'bd_deltbl' => array( + 'bd_browse' => array( 'position' => '81', 'width' => '16', 'height' => '16' ), - 'bd_drop' => array( + 'bd_deltbl' => array( 'position' => '82', 'width' => '16', 'height' => '16' ), - 'bd_edit' => array( + 'bd_drop' => array( 'position' => '83', 'width' => '16', 'height' => '16' ), - 'bd_empty' => array( + 'bd_edit' => array( 'position' => '84', 'width' => '16', 'height' => '16' ), - 'bd_export' => array( + 'bd_empty' => array( 'position' => '85', 'width' => '16', 'height' => '16' ), - 'bd_firstpage' => array( + 'bd_export' => array( 'position' => '86', 'width' => '16', 'height' => '16' ), - 'bd_ftext' => array( + 'bd_firstpage' => array( 'position' => '87', 'width' => '16', 'height' => '16' ), - 'bd_index' => array( + 'bd_ftext' => array( 'position' => '88', 'width' => '16', 'height' => '16' ), - 'bd_insrow' => array( + 'bd_index' => array( 'position' => '89', 'width' => '16', 'height' => '16' ), - 'bd_lastpage' => array( + 'bd_insrow' => array( 'position' => '90', 'width' => '16', 'height' => '16' ), - 'bd_nextpage' => array( + 'bd_lastpage' => array( 'position' => '91', 'width' => '16', 'height' => '16' ), - 'bd_prevpage' => array( + 'bd_nextpage' => array( 'position' => '92', 'width' => '16', 'height' => '16' ), - 'bd_primary' => array( + 'bd_prevpage' => array( 'position' => '93', 'width' => '16', 'height' => '16' ), - 'bd_sbrowse' => array( + 'bd_primary' => array( 'position' => '94', 'width' => '16', 'height' => '16' ), - 'bd_select' => array( + 'bd_sbrowse' => array( 'position' => '95', 'width' => '16', 'height' => '16' ), - 'bd_spatial' => array( + 'bd_select' => array( 'position' => '96', 'width' => '16', 'height' => '16' ), - 'bd_unique' => array( + 'bd_spatial' => array( 'position' => '97', 'width' => '16', 'height' => '16' ), - 'centralColumns' => array( + 'bd_unique' => array( 'position' => '98', 'width' => '16', 'height' => '16' ), - 'centralColumns_add' => array( + 'centralColumns' => array( 'position' => '99', 'width' => '16', 'height' => '16' ), - 'centralColumns_delete' => array( + 'centralColumns_add' => array( 'position' => '100', 'width' => '16', 'height' => '16' ), - 'col_drop' => array( + 'centralColumns_delete' => array( 'position' => '101', 'width' => '16', 'height' => '16' ), - 'database' => array( + 'col_drop' => array( 'position' => '102', 'width' => '16', 'height' => '16' ), - 'eye' => array( + 'database' => array( 'position' => '103', 'width' => '16', 'height' => '16' ), - 'eye_grey' => array( + 'eye' => array( 'position' => '104', 'width' => '16', 'height' => '16' ), - 'item' => array( + 'eye_grey' => array( 'position' => '105', + 'width' => '16', + 'height' => '16' + ), + 'item' => array( + 'position' => '106', 'width' => '9', 'height' => '9' ), 'lightbulb' => array( - 'position' => '106', - 'width' => '16', - 'height' => '16' - ), - 'lightbulb_off' => array( 'position' => '107', 'width' => '16', 'height' => '16' ), - 'more' => array( + 'lightbulb_off' => array( 'position' => '108', + 'width' => '16', + 'height' => '16' + ), + 'more' => array( + 'position' => '109', 'width' => '13', 'height' => '16' ), 'new_data' => array( - 'position' => '109', - 'width' => '16', - 'height' => '16' - ), - 'new_data_hovered' => array( 'position' => '110', 'width' => '16', 'height' => '16' ), - 'new_data_selected' => array( + 'new_data_hovered' => array( 'position' => '111', 'width' => '16', 'height' => '16' ), - 'new_data_selected_hovered' => array( + 'new_data_selected' => array( 'position' => '112', 'width' => '16', 'height' => '16' ), - 'new_struct' => array( + 'new_data_selected_hovered' => array( 'position' => '113', 'width' => '16', 'height' => '16' ), - 'new_struct_hovered' => array( + 'new_struct' => array( 'position' => '114', 'width' => '16', 'height' => '16' ), - 'new_struct_selected' => array( + 'new_struct_hovered' => array( 'position' => '115', 'width' => '16', 'height' => '16' ), - 'new_struct_selected_hovered' => array( + 'new_struct_selected' => array( 'position' => '116', 'width' => '16', 'height' => '16' ), - 'pause' => array( + 'new_struct_selected_hovered' => array( 'position' => '117', 'width' => '16', 'height' => '16' ), - 'php_sym' => array( + 'pause' => array( 'position' => '118', 'width' => '16', 'height' => '16' ), - 'play' => array( + 'php_sym' => array( 'position' => '119', 'width' => '16', 'height' => '16' ), - 's_asc' => array( + 'play' => array( 'position' => '120', 'width' => '16', 'height' => '16' ), - 's_asci' => array( + 's_asc' => array( 'position' => '121', 'width' => '16', 'height' => '16' ), - 's_attention' => array( + 's_asci' => array( 'position' => '122', 'width' => '16', 'height' => '16' ), - 's_cancel' => array( + 's_attention' => array( 'position' => '123', 'width' => '16', 'height' => '16' ), - 's_cancel2' => array( + 's_cancel' => array( 'position' => '124', 'width' => '16', 'height' => '16' ), - 's_cog' => array( + 's_cancel2' => array( 'position' => '125', 'width' => '16', 'height' => '16' ), - 's_db' => array( + 's_cog' => array( 'position' => '126', 'width' => '16', 'height' => '16' ), - 's_desc' => array( + 's_db' => array( 'position' => '127', 'width' => '16', 'height' => '16' ), - 's_error' => array( + 's_desc' => array( 'position' => '128', 'width' => '16', 'height' => '16' ), - 's_error2' => array( + 's_error' => array( 'position' => '129', + 'width' => '16', + 'height' => '16' + ), + 's_error2' => array( + 'position' => '130', 'width' => '11', 'height' => '11' ), 's_host' => array( - 'position' => '130', - 'width' => '16', - 'height' => '16' - ), - 's_info' => array( 'position' => '131', 'width' => '16', 'height' => '16' ), - 's_lang' => array( + 's_info' => array( 'position' => '132', 'width' => '16', 'height' => '16' ), - 's_loggoff' => array( + 's_lang' => array( 'position' => '133', 'width' => '16', 'height' => '16' ), - 's_notice' => array( + 's_lock' => array( 'position' => '134', 'width' => '16', 'height' => '16' ), - 's_okay' => array( + 's_loggoff' => array( 'position' => '135', 'width' => '16', 'height' => '16' ), - 's_passwd' => array( + 's_notice' => array( 'position' => '136', 'width' => '16', 'height' => '16' ), - 's_process' => array( + 's_okay' => array( 'position' => '137', 'width' => '16', 'height' => '16' ), - 's_really' => array( + 's_passwd' => array( 'position' => '138', - 'width' => '11', - 'height' => '11' + 'width' => '16', + 'height' => '16' ), - 's_reload' => array( + 's_process' => array( 'position' => '139', 'width' => '16', 'height' => '16' ), - 's_replication' => array( + 's_really' => array( 'position' => '140', - 'width' => '16', - 'height' => '16' + 'width' => '11', + 'height' => '11' ), - 's_rights' => array( + 's_reload' => array( 'position' => '141', 'width' => '16', 'height' => '16' ), - 's_sortable' => array( + 's_replication' => array( 'position' => '142', 'width' => '16', 'height' => '16' ), - 's_status' => array( + 's_rights' => array( 'position' => '143', 'width' => '16', 'height' => '16' ), - 's_success' => array( + 's_sortable' => array( 'position' => '144', 'width' => '16', 'height' => '16' ), - 's_sync' => array( + 's_status' => array( 'position' => '145', 'width' => '16', 'height' => '16' ), - 's_tbl' => array( + 's_success' => array( 'position' => '146', 'width' => '16', 'height' => '16' ), - 's_theme' => array( + 's_sync' => array( 'position' => '147', 'width' => '16', 'height' => '16' ), - 's_top' => array( + 's_tbl' => array( 'position' => '148', 'width' => '16', 'height' => '16' ), - 's_vars' => array( + 's_theme' => array( 'position' => '149', 'width' => '16', 'height' => '16' ), - 's_views' => array( + 's_top' => array( 'position' => '150', 'width' => '16', 'height' => '16' ), - 'window-new' => array( + 's_vars' => array( 'position' => '151', 'width' => '16', 'height' => '16' ), + 's_views' => array( + 'position' => '152', + 'width' => '16', + 'height' => '16' + ), + 'window-new' => array( + 'position' => '153', + 'width' => '16', + 'height' => '16' + ), ); } ?>