From c2bcb4f8445dccfa86773cd75c19050437b860ca Mon Sep 17 00:00:00 2001 From: Madhura Jayaratne Date: Fri, 22 Aug 2014 10:38:39 +0530 Subject: [PATCH 1/3] Simplify callbacks Signed-off-by: Madhura Jayaratne --- js/pmd/designer_db.js | 45 +++++++++++++++++------------------------ js/pmd/designer_page.js | 18 +++-------------- js/pmd/move.js | 2 +- 3 files changed, 23 insertions(+), 42 deletions(-) diff --git a/js/pmd/designer_db.js b/js/pmd/designer_db.js index 0c26e2a1de..27a73deac0 100644 --- a/js/pmd/designer_db.js +++ b/js/pmd/designer_db.js @@ -5,8 +5,7 @@ var DesignerOfflineDB = (function () { var designerDB = {}; var datastore = null; - designerDB.open = function (callback) - { + designerDB.open = function (callback) { var version = 1; var request = window.indexedDB.open("pmd_designer", version); @@ -29,7 +28,7 @@ var DesignerOfflineDB = (function () { request.onsuccess = function (e) { datastore = e.target.result; - if (callback != null) { + if (typeof callback !== 'undefined' && callback != null) { callback(true); } }; @@ -37,29 +36,25 @@ var DesignerOfflineDB = (function () { request.onerror = designerDB.onerror; }; - designerDB.loadObject = function (table, id, callback) - { + designerDB.loadObject = function (table, id, callback) { var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); var cursorRequest = objStore.get(parseInt(id)); cursorRequest.onsuccess = function (e) { - var result = e.target.result; - callback(result); + callback(e.target.result); }; cursorRequest.onerror = designerDB.onerror; }; - designerDB.loadAllObjects = function (table, callback) - { + designerDB.loadAllObjects = function (table, callback) { var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); var keyRange = IDBKeyRange.lowerBound(0); var cursorRequest = objStore.openCursor(keyRange); - var results = []; transaction.oncomplete = function (e) { @@ -68,7 +63,6 @@ var DesignerOfflineDB = (function () { cursorRequest.onsuccess = function (e) { var result = e.target.result; - if (!!result == false) { return; } @@ -79,14 +73,12 @@ var DesignerOfflineDB = (function () { cursorRequest.onerror = designerDB.onerror; }; - designerDB.loadFirstObject = function(table, callback) - { + designerDB.loadFirstObject = function(table, callback) { var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); var keyRange = IDBKeyRange.lowerBound(0); var cursorRequest = objStore.openCursor(keyRange); - var firstResult = null; transaction.oncomplete = function(e) { @@ -95,7 +87,6 @@ var DesignerOfflineDB = (function () { cursorRequest.onsuccess = function(e) { var result = e.target.result; - if (!!result == false) { return; } @@ -105,38 +96,40 @@ var DesignerOfflineDB = (function () { cursorRequest.onerror = designerDB.onerror; }; - designerDB.addObject = function(table, obj, callback) - { + designerDB.addObject = function(table, obj, callback) { var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); - var request = objStore.put(obj); request.onsuccess = function(e) { - callback(e.currentTarget.result); + if (typeof callback !== 'undefined' && callback != null) { + callback(e.currentTarget.result); + } }; request.onerror = designerDB.onerror; }; - designerDB.deleteObject = function(table, id, callback) - { + designerDB.deleteObject = function(table, id, callback) { var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); - var request = objStore.delete(parseInt(id)); request.onsuccess = function(e) { - callback(true); + if (typeof callback !== 'undefined' && callback != null) { + callback(true); + } } - request.onerror = function(e) { - console.log(e); - }; + request.onerror = designerDB.onerror; }; + designerDB.onerror = function(e) { + console.log(e); + } + // Export the designerDB object. return designerDB; }()); diff --git a/js/pmd/designer_page.js b/js/pmd/designer_page.js index ef0b0a2828..0622346ba5 100644 --- a/js/pmd/designer_page.js +++ b/js/pmd/designer_page.js @@ -56,11 +56,7 @@ function Create_new_page(db, page_name, callback) function Save_table_positions(positions, callback) { - DesignerOfflineDB.addObject('table_coords', positions, function (id) { - if (typeof callback !== 'undefined') { - callback(id); - } - }); + DesignerOfflineDB.addObject('table_coords', positions, callback); } function Create_page_list(callback) @@ -84,22 +80,14 @@ function Delete_page(page_id, callback) for (i in page.tbl_cords) { DesignerOfflineDB.deleteObject('table_coords', page.tbl_cords[i]); } - DesignerOfflineDB.deleteObject('pdf_pages', page_id, function (state) { - if (typeof callback !== 'undefined') { - callback(state); - } - }); + DesignerOfflineDB.deleteObject('pdf_pages', page_id, callback); } }); } function Load_first_page(callback) { - DesignerOfflineDB.loadFirstObject('pdf_pages', function (page) { - if (typeof callback !== 'undefined') { - callback(page); - } - }); + DesignerOfflineDB.loadFirstObject('pdf_pages', callback); } function Show_new_page_tables(check) diff --git a/js/pmd/move.js b/js/pmd/move.js index 067b795615..902bb7126f 100644 --- a/js/pmd/move.js +++ b/js/pmd/move.js @@ -586,7 +586,7 @@ function Save2(callback) }); } else { var name = $("#page_name").html().trim(); - Save_to_selected_page(db, selected_page, name, Get_url_pos(), function (page){ + Save_to_selected_page(db, selected_page, name, Get_url_pos(), function (page) { if (typeof callback !== 'undefined') { callback(); } From 10b90e1a74299d82ea3076bdeb942777b04c8d1d Mon Sep 17 00:00:00 2001 From: Madhura Jayaratne Date: Fri, 22 Aug 2014 11:01:06 +0530 Subject: [PATCH 2/3] Use pma_ prefix Signed-off-by: Madhura Jayaratne --- js/pmd/designer_db.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/pmd/designer_db.js b/js/pmd/designer_db.js index 27a73deac0..9cbebe58f3 100644 --- a/js/pmd/designer_db.js +++ b/js/pmd/designer_db.js @@ -7,7 +7,7 @@ var DesignerOfflineDB = (function () { designerDB.open = function (callback) { var version = 1; - var request = window.indexedDB.open("pmd_designer", version); + var request = window.indexedDB.open("pma_designer", version); request.onupgradeneeded = function (e) { var db = e.target.result; From e2f7257a2c380e67b70b340d9337da19a336f410 Mon Sep 17 00:00:00 2001 From: Madhura Jayaratne Date: Fri, 22 Aug 2014 12:17:27 +0530 Subject: [PATCH 3/3] Indicate save status Signed-off-by: Madhura Jayaratne --- js/messages.php | 2 +- js/pmd/move.js | 28 ++++++++++++++++++++-------- libraries/db_designer.lib.php | 5 ++++- libraries/pmd_common.php | 2 +- 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/js/messages.php b/js/messages.php index 5441bab8c5..ae708612c6 100644 --- a/js/messages.php +++ b/js/messages.php @@ -401,7 +401,7 @@ $js_messages['strPageName'] = __('Page name'); $js_messages['strSavePage'] = __('Save page'); $js_messages['strOpenPage'] = __('Open page'); $js_messages['strDeletePage'] = __('Delete page'); -$js_messages['strUntitled'] = __('*Untitled'); +$js_messages['strUntitled'] = __('Untitled'); $js_messages['strSelectPage'] = __('Please select a page to continue'); $js_messages['strEnterValidPageName'] = __('Please enter a valid page name'); $js_messages['strLeavingPage'] = __('Do you want to save the changes to the current page?'); diff --git a/js/pmd/move.js b/js/pmd/move.js index 902bb7126f..d5db4e1aae 100644 --- a/js/pmd/move.js +++ b/js/pmd/move.js @@ -65,6 +65,17 @@ function make_zero() { // Function called if the user stays after seeing the c _staying = 0; } +function MarkSaved() +{ + _change = 0; + $('#saved_state').text(''); +} + +function MarkUnsaved() +{ + _change = 1; + $('#saved_state').text('*'); +} var dx, dy, dy2; var cur_click = null; @@ -157,7 +168,7 @@ function MouseMove(e) //window.status = "X = "+ Glob_X + " Y = "+ Glob_Y; if (cur_click !== null) { - _change = 1; + MarkUnsaved(); var mGx = Glob_X - dx; var mGy = Glob_Y - dy; mGx = mGx > 0 ? mGx : 0; @@ -578,7 +589,7 @@ function Save2(callback) } else { PMA_ajaxRemoveMessage($msgbox); PMA_ajaxShowMessage(PMA_messages.strModificationSaved); - _change = 0; + MarkSaved(); if (typeof callback !== 'undefined') { callback(); } @@ -587,6 +598,7 @@ function Save2(callback) } else { var name = $("#page_name").html().trim(); Save_to_selected_page(db, selected_page, name, Get_url_pos(), function (page) { + MarkSaved(); if (typeof callback !== 'undefined') { callback(); } @@ -617,7 +629,7 @@ function Save3(callback) PMA_ajaxShowMessage(data.error, false); } else { PMA_ajaxRemoveMessage($msgbox); - _change = 0; + MarkSaved(); if (data.id) { selected_page = data.id; } @@ -629,7 +641,7 @@ function Save3(callback) }); } else { Save_to_new_page(db, name, Get_url_pos(), function (page) { - _change = 0; + MarkSaved(); if (page.pg_nr) { selected_page = page.pg_nr; } @@ -826,7 +838,7 @@ function Save_as() PMA_ajaxShowMessage(data.error, false); } else { PMA_ajaxRemoveMessage($msgbox); - _change = 0; + MarkSaved(); if (data.id) { selected_page = data.id; } @@ -838,7 +850,7 @@ function Save_as() var selected_page_id = $selected_page.find('option:selected').val(); Save_to_selected_page(db, selected_page_id, name, Get_url_pos(), function (page) { PMA_ajaxRemoveMessage($msgbox); - _change = 0; + MarkSaved(); if (page.pg_nr) { selected_page = page.pg_nr; } @@ -847,7 +859,7 @@ function Save_as() } else if (choice === 'new') { Save_to_new_page(db, name, Get_url_pos(), function (page) { PMA_ajaxRemoveMessage($msgbox); - _change = 0; + MarkSaved(); if (page.pg_nr) { selected_page = page.pg_nr; } @@ -1003,7 +1015,7 @@ function Load_page(page) { Show_new_page_tables(true); } } - _change = 0; + MarkSaved(); } function Grid() diff --git a/libraries/db_designer.lib.php b/libraries/db_designer.lib.php index abb68e05fb..7fd937fe50 100644 --- a/libraries/db_designer.lib.php +++ b/libraries/db_designer.lib.php @@ -370,7 +370,10 @@ function PMA_getDesignerPageTopMenu($selected_page) $html .= 'getImgPath('pmd/bord.png') . '" />'; - $html .= '' . htmlspecialchars($selected_page) . ''; + $html .= ''; + $html .= htmlspecialchars($selected_page); + $html .= ''; + $html .= ''; $html .= 'getImgPath('pmd/bord.png') . '" />'; diff --git a/libraries/pmd_common.php b/libraries/pmd_common.php index 7789795f77..858eccfca3 100644 --- a/libraries/pmd_common.php +++ b/libraries/pmd_common.php @@ -296,7 +296,7 @@ function PMA_getPageName($pg) $GLOBALS['controllink'], PMA_DatabaseInterface::QUERY_STORE ); - return count($page_name) ? $page_name[0] : __("*Untitled"); + return count($page_name) ? $page_name[0] : __("Untitled"); } /**