Translated using Weblate (Korean)
[phpmyadmin.git] / js / pmd / designer_page.js
blob7730fbdff66b4f719f5890325238a52fb277a173
1 function Show_tables_in_landing_page(db)
3     Load_first_page(db, function (page) {
4         if (page) {
5             Load_HTML_for_page(page.pg_nr);
6             selected_page = page.pg_nr;
7         } else {
8             Show_new_page_tables(true);
9         }
10     });
13 function Save_to_new_page(db, page_name, table_positions, callback)
15     Create_new_page(db, page_name, function (page) {
16         if (page) {
17             var tbl_cords = [];
18             for (var pos = 0; pos < table_positions.length; pos++) {
19                 table_positions[pos].pdf_pg_nr = page.pg_nr;
20                 Save_table_positions(table_positions[pos], function (id) {
21                     tbl_cords.push(id);
22                     if (table_positions.length === tbl_cords.length) {
23                         page.tbl_cords = tbl_cords;
24                         DesignerOfflineDB.addObject('pdf_pages', page);
25                     }
26                 });
27             }
28             if (typeof callback !== 'undefined') {
29                 callback(page);
30             }
31         }
32     });
35 function Save_to_selected_page(db, page_id, page_name, table_positions, callback)
37     Delete_page(page_id);
38     Save_to_new_page(db, page_name, table_positions, function (page) {
39         if (typeof callback !== 'undefined') {
40             callback(page);
41         }
42         selected_page = page.pg_nr;
43     });
46 function Create_new_page(db, page_name, callback)
48     var newPage = new PDFPage(db, page_name);
49     DesignerOfflineDB.addObject('pdf_pages', newPage, function (pg_nr) {
50         newPage.pg_nr = pg_nr;
51         if (typeof callback !== 'undefined') {
52             callback(newPage);
53         }
54     });
57 function Save_table_positions(positions, callback)
59     DesignerOfflineDB.addObject('table_coords', positions, callback);
62 function Create_page_list(db, callback)
64     DesignerOfflineDB.loadAllObjects('pdf_pages', function (pages) {
65         var html = "";
66         for (var p = 0; p < pages.length; p++) {
67             var page = pages[p];
68             if (page.db_name == db) {
69                 html += '<option value="' + page.pg_nr + '">';
70                 html += escapeHtml(page.page_descr) + '</option>';
71             }
72         }
73         if (typeof callback !== 'undefined') {
74             callback(html);
75         }
76     });
79 function Delete_page(page_id, callback)
81     DesignerOfflineDB.loadObject('pdf_pages', page_id, function (page) {
82         if (page) {
83             for (var i = 0; i < page.tbl_cords.length; i++) {
84                 DesignerOfflineDB.deleteObject('table_coords', page.tbl_cords[i]);
85             }
86             DesignerOfflineDB.deleteObject('pdf_pages', page_id, callback);
87         }
88     });
91 function Load_first_page(db, callback)
93     DesignerOfflineDB.loadAllObjects('pdf_pages', function (pages) {
94         var firstPage = null;
95         for (var i = 0; i < pages.length; i++) {
96             var page = pages[i];
97             if (page.db_name == db) {
98                 // give preference to a page having same name as the db
99                 if (page.page_descr == db) {
100                     callback(page);
101                     return;
102                 }
103                 if (firstPage == null) {
104                     firstPage = page;
105                 }
106             }
107         }
108         callback(firstPage);
109     });
112 function Show_new_page_tables(check)
114     var all_tables = $("#id_scroll_tab").find("td input:checkbox");
115     all_tables.prop('checked', check);
116     for (var tab = 0; tab < all_tables.length; tab++) {
117         var input = all_tables[tab];
118         if (input.value) {
119             var element = document.getElementById(input.value);
120             element.style.top = Get_random(550, 20) + 'px';
121             element.style.left = Get_random(700, 20) + 'px';
122             VisibleTab(input, input.value);
123         }
124     }
125     selected_page = -1;
126     $("#page_name").text(PMA_messages.strUntitled);
127     MarkUnsaved();
130 function Load_HTML_for_page(page_id)
132     Show_new_page_tables(false);
133     Load_page_objects(page_id, function (page, tbl_cords) {
134         $("#name-panel").find("#page_name").text(page.page_descr);
135         MarkSaved();
136         for (var t = 0; t < tbl_cords.length; t++) {
137             var tb_id = db + '.' + tbl_cords[t].table_name;
138             var table = document.getElementById(tb_id);
139             table.style.top = tbl_cords[t].y + 'px';
140             table.style.left = tbl_cords[t].x + 'px';
142             var checkbox = document.getElementById("check_vis_" + tb_id);
143             checkbox.checked = true;
144             VisibleTab(checkbox, checkbox.value);
145         }
146         selected_page = page.pg_nr;
147     });
150 function Load_page_objects(page_id, callback)
152     DesignerOfflineDB.loadObject('pdf_pages', page_id, function (page) {
153         var tbl_cords = [];
154         var count = page.tbl_cords.length;
155         for (var i = 0; i < count; i++) {
156             DesignerOfflineDB.loadObject('table_coords', page.tbl_cords[i], function (tbl_cord) {
157                 tbl_cords.push(tbl_cord);
158                 if (tbl_cords.length == count) {
159                     if (typeof callback !== 'undefined') {
160                         callback(page, tbl_cords);
161                     }
162                 }
163             });
164         }
165     });
168 function Get_random(max, min)
170     var val = Math.random() * (max - min) + min;
171     return Math.floor(val);