/** * This file is a part of MyWebSQL package * * @file: js/interface.js * @author Samnan ur Rehman * @copyright (c) 2008-2014 Samnan ur Rehman * @web http://mywebsql.net * @license http://mywebsql.net/license */ $.mywebsql = { "popup":false, "dialogs":[] }; var main_layout; var data_layout; var currentTreeItem = null; var clipboard_helper = null; var historyCurItem = null; $(document).ready(function () { if ($.browser.msie && $.browser.version <= 7) { $('select').hide(); $('#screen-wait').find('div:first').remove(); $('#screen-wait').find('div.compat-notice').show(); return true; } $('body').bind('contextmenu', function(e) { var otarget = e.originalTarget || e.target; // allow input areas to show default context menu if (otarget.type == "textarea" || otarget.type == "text") return true; return false; }); $("ul#main-menu li ul li:has(ul)").find("a:first").append(" » "); $("ul#main-menu").find("a").click(function(event) { event.stopPropagation(); $(this).blur(); }); $('ul#main-menu li').click(function() { eval($(this).find('a').attr('href')); }); $('#toolbarHolder').mouseover(function() { if (_contextMenu) _contextMenu.hide(); }); // make tabs first to avoid resize problems $(".ui-layout-data-center").tabs(); $(".ui-layout-data-south").tabs({ select: function(event, ui) { setTimeout(focusEditor, 200); } }); main_layout_props = { spacing_open: 3, spacing_closed: 6 ,east__minSize: 200 ,west__minSize: 150, west__size: $('body').innerWidth() * 0.2 ,north__minSize: 76 ,north__resizable: false, north__closable: true, north__spacing_open: 0, north__spacing_closed: 6 ,north__onopen: function() { main_layout.allowOverflow('north'); } ,south__resizable: false, south__closable: true, south__spacing_open: 0, south__spacing_closed: 0 ,center__onresize: function() { data_layout.resizeAll(); layoutState.save('main_layout'); } ,enableCursorHotkey: false }; main_layout = $('body').layout( $.extend(main_layout_props, layoutState.load('main_layout')) ); data_layout_props = { spacing_open: 3, spacing_closed: 6 ,resizerClass: "ui-data-resizer" ,togglerClass: "ui-data-toggler" ,center__paneSelector: ".ui-layout-data-center" ,south__paneSelector: ".ui-layout-data-south" ,center__resizable: true ,south__resizable: true, south__closable: true, south__minSize: 66, south__size: 160 ,center__onresize: function() { layoutState.save('data_layout'); } ,enableCursorHotkey: false ,onresizeall_end: function() { var n = $(".ui-layout-data-center").tabs('option', 'selected'); if (n == 0) resizeTableHeader('data'); else if (n == 2) resizeTableHeader('info'); } }; data_layout = $('div.ui-layout-center').layout( $.extend(data_layout_props, layoutState.load('data_layout')) ); main_layout.close('south'); main_layout.allowOverflow('north'); $(".ui-layout-data-center").tabs('select', 2); $("#tablelist").treeview(); contextHandler(); // chrome selection issue fix when a resizer is used for resizing $('.ui-layout-resizer').bind('selectstart', function() { return false; }); $('#nav_query').button({ text: true, icons: {primary: 'ui-icon-play'} }).click(function() { queryGo(0); }); $('#nav_queryall').button({ text: true, icons: {primary: 'ui-icon-seek-end'} }).click(function() { queryGo(1); }); $('#nav_delete').button({ text: true, icons: {primary: 'ui-icon-close'} }).click(function() { queryDelete(); }); $('#nav_update').button({ text: true, icons: {primary: 'ui-icon-disk'} }).click(function() { querySave(); }); $('#nav_gensql').button({ text: true, icons: {primary: 'ui-icon-script'} }).click(function() { queryGenerate(); }); $('#nav_addrec').button({ text: true, icons: {primary: 'ui-icon-plusthick'} }).click(function() { queryAddRecord(); }); $('#nav_copyrec').button({ text: true, icons: {primary: 'ui-icon-copy'} }).click(function() { queryCopyRecord(); }); $('#nav_refresh').button({ text: true, icons: {} }).click(function() { queryRefresh(); }); $('#sp-results-maximize').button({ text: false, icons: {primary: 'ui-icon-newwin'} }).click(function() { resultsPaneToggle(); }); initClipboard(); $(window).unload(function(){ layoutState.save('data_layout'); layoutState.save('main_layout'); }); taskbar.init(); $("#object-filter-text").quickText().bind('keyup', function() { // filter database list or table list when quick search filter is applied var li = $("#tablelist").hasClass("dblist") ? "span.odb a" : "span.file a"; $("#object_list").setObjectFilter( $(this).val(), li, 'ul' ); }); $('#screen-wait').remove(); $('#wrkfrm').attr('src', 'index.php?q=wrkfrm&type=info'); loadUserPreferences(); showNavBtns('query', 'queryall'); }); function contextHandler() { // setup context menus for everything first time if(arguments.length == 0) { // remove options that do not apply to this type of database (server) $('ul#main-menu .option').not("."+DB_DRIVER).remove(); $('#object-context-menus .option').not("."+DB_DRIVER).remove(); $(".ui-layout-north").contextMenu('#panel-header'); $("#object_list").contextMenu('#panel-menu-objects'); $("#sql-editor-pane").contextMenu('#panel-menu-editor'); $("#sql-history").contextMenu('#history-menu'); } // only update context menus for object list $('#tablelist .odb').contextMenu('#db-menu'); $('#tablelist .otable').contextMenu('#table-menu'); $('#tablelist .oview').contextMenu('#view-menu'); $('#tablelist .oproc').contextMenu('#proc-menu'); $('#tablelist .ofunc').contextMenu('#func-menu'); $('#tablelist .otrig').contextMenu('#trig-menu'); $('#tablelist .oevt').contextMenu('#evt-menu'); $('#tablelist .schmf').contextMenu('#schm-menu'); $('#tablelist span').filter('.tablef,.viewf,.procf,.funcf,.trigf,.evtf').contextMenu('#object-menu'); } function initClipboard() { $('#sql-history tr').live('hover', function() { historyCurItem = $(this); } ); // copying using zeroclipboard and context menu is a pain... but we have to do it ... ZeroClipboard.setMoviePath('js/jquery.clipboard.swf'); clipboard_helper = new ZeroClipboard.Client(); $('#history-menu li.clipboard').mouseover(function() { single = $(this).hasClass('single'); // copy single or all queries clipboard_helper.setText(getHistoryText(single)); if (clipboard_helper.div) { clipboard_helper.receiveEvent('mouseout', null); clipboard_helper.reposition(this); } else { clipboard_helper.glue(this); $(clipboard_helper.div).click(function() { clipboard_helper.hide(); }); } clipboard_helper.receiveEvent('mouseover', null); }); } function showNavBtns() { bn = new Array("addrec", "copyrec", "query", "queryall", "delete", "update", "gensql"); for(i=0; i 0 && ts <= 100) ts += s; else if (s < 0 && ts >= 11) ts += s; $(currentEditor().editor.container).css('font-size', ts + 'px'); } } function editorClear() { $(currentEditor().editor.container).html(''); } function currentEditor() { n = $(".ui-layout-data-south").tabs('option', 'selected'); obj = commandEditor; switch(n) { case 1: obj = commandEditor2; break; case 2: obj = commandEditor3; break; } return obj; } function focusEditor() { ed = currentEditor(); ed.focus(); } function getDataMenu(m, t, e) { target = $(e.originalTarget || e.target); if (target.hasClass('tch')) return false; if (target.is('th')) return $('#data-menu-th').clone(); else if (target.is('td')) return $('#data-menu-td').clone(); return false; // no menu here } function objListHandler(data, state) { tree = $(data).find('#objlist').html(); if (tree != '') { $('#object_list').html(tree); $("#tablelist").treeview(); contextHandler(false); $("#object-filter-text").val(""); } else jAlert(__('An error occured while refreshing the object list.')); // restore previous tree state for(i=0;i