Bladeren bron

Bug fix when throwing exception inside DBTableUpdateBase, and small code refactoring.

mingodad 13 jaren geleden
bovenliggende
commit
f00e873a44

+ 1 - 1
SquiLu-ourbiz/db-updater.nut

@@ -141,7 +141,7 @@ class DBTableUpdateBase {
 			//if(check_idle) Fl.check();
 		}
 
-		if(httpRequest.my_status != 200){throw(my_result);}
+		if(httpRequest.my_status != 200){throw(my_result.tostring());}
 		switch(dbAction)
 		{
 		case edbAction.e_insert:

+ 46 - 18
SquiLu-ourbiz/ourbiz-fltk.nut

@@ -12,6 +12,7 @@ dofile("db-updater.nut");
 local appServer = AppServer.getAppServer();
 appServer.credentials("mingote", "tr14pink");
 appServer.connect("localhost", 8855); //8888);//8855);
+//appServer.connect("192.168.0.88", 8855); //8888);//8855);
 
 function _tr(str){ return str;}
 
@@ -707,7 +708,10 @@ class Edit_Base_Window extends Base_Window {
 			    break;
 			}
 		}
-		catch(e){ fl_alert(e);}
+		catch(e){ 
+			//foreach(k,v in get_last_stackinfo()) print(k,v);
+			fl_alert(e);
+		}
 	}
 	function get_record_by_id(id){
 		appServer.get_record(_record, dbUpdater()->table_name, 0, dbUpdater()->edit_id);
@@ -1092,6 +1096,23 @@ class Fl_Data_Table_Calendar extends Fl_Data_Table {
 	}
 }
 
+class  List_Edit_Base_Window extends Edit_Base_Window {
+	constructor(px, py, pw, ph, pl){
+		base.constructor(px, py, pw, ph, pl);
+	}
+	function on_btnDbAction(sender, udata)
+	{
+		this = sender->window();
+		base.on_btnDbAction(sender, udata);
+		local saved_row = grid->row();
+		fill_grid();
+		if(grid->rows() > saved_row) grid->row(saved_row);
+		else grid->row(grid->rows()-1);
+	}
+	function fill_grid(){}
+}
+
+
 dofile("search-options.nut");
 dofile("utils-fltk.nut");
 dofile("ourbiz-gui.nut", false, false);
@@ -1361,9 +1382,10 @@ class OurTreeGroups extends GroupsListEditWindow {
 		delayed_focus(db_group_description);
 	}
 
-	function on_btnDbAction()
+	function on_btnDbAction(sender, udata)
 	{
-		base.on_btnDbAction();
+		this = sender->window();
+		base.on_btnDbAction(sender, udata);
 		treeLoadChilds(tree, 0, 0, _table_name);
 
 		fill_edit_form(true);
@@ -1409,6 +1431,8 @@ class OurImages extends ImagesListEditWindow {
 	
 	constructor(){
 		base.constructor();
+		setup_grid(grid, this);
+		setDbActionControls(dbAction, btnDbAction);
 		dbUpdater()->table_name = "images";
 		local cols_info = [
 			"id|ID|6",
@@ -1417,8 +1441,6 @@ class OurImages extends ImagesListEditWindow {
 			"group_set|Group|6",
 		];
 		grid->set_cols(cols_info);
-		setup_grid(grid, this);
-		setDbActionControls(dbAction, btnDbAction);
 		_search_options = OurBizSearchOptions();
 		fill_grid();
 		btnImage.callback(on_image_file_browser);
@@ -1469,6 +1491,8 @@ class OurImages extends ImagesListEditWindow {
 class OurAppConfig extends AppConfigEditWindow {
 	constructor(){
 		base.constructor();
+		setup_grid(grid, this);
+		setDbActionControls(dbAction, btnDbAction);
 		dbUpdater()->table_name = "config";
 		local cols_info = [
 			"id|ID|0",
@@ -1476,8 +1500,6 @@ class OurAppConfig extends AppConfigEditWindow {
 			"value|Value|-1|L|@",
 		];
 		grid->set_cols(cols_info);
-		setup_grid(grid, this);
-		setDbActionControls(dbAction, btnDbAction);
 		fill_grid();
 	}
 	function fill_grid(){
@@ -1491,6 +1513,8 @@ class OurAppConfig extends AppConfigEditWindow {
 class OurSalesTax extends SalesTaxRatesEditWindow {
 	constructor(){
 		base.constructor();
+		setup_grid(grid, this);
+		setDbActionControls(dbAction, btnDbAction);
 		dbUpdater()->table_name = "sales_tax_rates";
 		local cols_info = [
 			"id|ID|0",
@@ -1500,8 +1524,6 @@ class OurSalesTax extends SalesTaxRatesEditWindow {
 			"is_active|Active|5|C|B",
 		];
 		grid->set_cols(cols_info);
-		setup_grid(grid, this);
-		setDbActionControls(dbAction, btnDbAction);
 		fill_grid();
 	}
 	function fill_grid(){
@@ -1515,6 +1537,8 @@ class OurSalesTax extends SalesTaxRatesEditWindow {
 class OurWarrantyTypes extends WarrantyTypesEditWindow {
 	constructor(){
 		base.constructor();
+		setup_grid(grid, this);
+		setDbActionControls(dbAction, btnDbAction);
 		dbUpdater()->table_name = "warranty_types";
 		local cols_info = [
 			"id|ID|0",
@@ -1523,8 +1547,6 @@ class OurWarrantyTypes extends WarrantyTypesEditWindow {
 			"is_active|Active|5|C|B",
 		];
 		grid->set_cols(cols_info);
-		setup_grid(grid, this);
-		setDbActionControls(dbAction, btnDbAction);
 		fill_grid();
 	}
 	function fill_grid(){
@@ -1538,6 +1560,8 @@ class OurWarrantyTypes extends WarrantyTypesEditWindow {
 class OurMeasureUnits extends MeasureUnitsEditWindow {
 	constructor(){
 		base.constructor();
+		setup_grid(grid, this);
+		setDbActionControls(dbAction, btnDbAction);
 		dbUpdater()->table_name = "measure_units";
 		local cols_info = [
 			"id|ID|0",
@@ -1546,8 +1570,6 @@ class OurMeasureUnits extends MeasureUnitsEditWindow {
 			"is_active|Active|5|C|B",
 		];
 		grid->set_cols(cols_info);
-		setup_grid(grid, this);
-		setDbActionControls(dbAction, btnDbAction);
 		fill_grid();
 	}
 	function fill_grid(){
@@ -1561,6 +1583,8 @@ class OurMeasureUnits extends MeasureUnitsEditWindow {
 class OurPaymentTypes extends PaymentTypesEditWindow {
 	constructor(){
 		base.constructor();
+		setup_grid(grid, this);
+		setDbActionControls(dbAction, btnDbAction);
 		dbUpdater()->table_name = "payment_types";
 		local cols_info = [
 			"id|ID|0",
@@ -1569,8 +1593,6 @@ class OurPaymentTypes extends PaymentTypesEditWindow {
 			"is_active|Active|5|C|B",
 		];
 		grid->set_cols(cols_info);
-		setup_grid(grid, this);
-		setDbActionControls(dbAction, btnDbAction);
 		payment_periodes->tooltip(_tr("Select a periode to use when generating the payment terms"));
 		payment_periodes->add(_tr("m months"));
 		payment_periodes->add(_tr("w weeks"));
@@ -1631,6 +1653,8 @@ class OurPaymentTypes extends PaymentTypesEditWindow {
 class OurOrderTypes extends OrderTypesEditWindow {
 	constructor(){
 		base.constructor();
+		setup_grid(grid, this);
+		setDbActionControls(dbAction, btnDbAction);
 		dbUpdater()->table_name = "order_types";
 		local cols_info = [
 			"id|ID|0|R",
@@ -1643,8 +1667,6 @@ class OurOrderTypes extends OrderTypesEditWindow {
 			"is_active|Active|6|C|B",
 		];
 		grid->set_cols(cols_info);
-		setup_grid(grid, this);
-		setDbActionControls(dbAction, btnDbAction);
 		fill_grid();
 	}
 	function fill_grid(){
@@ -2153,13 +2175,19 @@ class ProductsListSearch extends MyListSearchWindow {
 					//flag to prevent stack overflow due to multiple background calls
 					_fetching_image = true;
 					local img_id = sender->get_data_value(sender->row(), sender->cols()-1);
-					if(img_id){
+					if(img_id && img_id.len()){
 						img_id = img_id.tointeger();
 						if(img_id != _last_image_id){
 							button_show_db_image(btnThumbImage, img_id, _image_window, true, false);
 							_last_image_id = img_id;
 						}
 					}
+					else
+					{
+						btnThumbImage.hide();
+						btnThumbImage.image(null);
+						btnThumbImage.show();						
+					}
 					_fetching_image = false;
 				}
 				catch(e){

+ 12 - 12
SquiLu-ourbiz/ourbiz-gui.fl

@@ -83,7 +83,7 @@ widget_class HelpWindow {
 } 
 
 widget_class CalendarWindow {
-  label Calendar open
+  label Calendar
   xywh {732 184 350 305} type Double labelsize 16 hide
   class Base_Window
 } {
@@ -144,7 +144,7 @@ widget_class CalendarWindow {
     }
   }
   Fl_Browser grid {
-    dirty_name grid selected
+    dirty_name grid
     xywh {5 65 340 202} labeltype NO_LABEL labelsize 16
     class Fl_Data_Table
   }
@@ -957,7 +957,7 @@ widget_class AskLoginWindow {
 widget_class AppUsersEditWindow {
   label {App Users List / Edit}
   xywh {282 148 500 500} type Double labelsize 16 hide resizable
-  class Edit_Base_Window
+  class List_Edit_Base_Window
 } {
   Fl_Browser grid {
     xywh {5 5 490 140} type Multi labeltype NO_LABEL labelsize 16 textsize 16 resizable
@@ -1048,7 +1048,7 @@ widget_class AppUsersEditWindow {
 widget_class AppConfigEditWindow {
   label {Application Configuration List / Edit}
   xywh {346 83 500 490} type Double labelsize 16 hide resizable
-  class Edit_Base_Window
+  class List_Edit_Base_Window
 } {
   Fl_Browser grid {
     xywh {5 5 490 200} type Multi labeltype NO_LABEL labelsize 16 textsize 16 resizable
@@ -1115,7 +1115,7 @@ widget_class AppConfigEditWindow {
 widget_class TanslationsWindow {
   label Translations
   xywh {217 76 490 560} type Double hide
-  class Edit_Base_Window
+  class List_Edit_Base_Window
 } {
   Fl_Tabs myTabs {
     dirty_name myTabs open
@@ -1211,7 +1211,7 @@ widget_class TanslationsWindow {
 widget_class PaymentTypesEditWindow {
   label {Payment Types List / Edit}
   xywh {302 168 500 500} type Double labelsize 16 hide resizable
-  class Edit_Base_Window
+  class List_Edit_Base_Window
 } {
   Fl_Browser grid {
     xywh {5 5 490 140} type Multi labeltype NO_LABEL labelsize 16 textsize 16 resizable
@@ -1312,7 +1312,7 @@ widget_class PaymentTypesEditWindow {
 widget_class WarrantyTypesEditWindow {
   label {Warranty Types List / Edit}
   xywh {219 105 500 385} type Double labelsize 16 hide resizable
-  class Edit_Base_Window
+  class List_Edit_Base_Window
 } {
   Fl_Browser grid {
     xywh {5 5 490 200} type Multi labeltype NO_LABEL labelsize 16 textsize 16 resizable
@@ -1379,7 +1379,7 @@ widget_class WarrantyTypesEditWindow {
 widget_class MeasureUnitsEditWindow {
   label {Measure Units List / Edit}
   xywh {286 134 500 385} type Double labelsize 16 hide resizable
-  class Edit_Base_Window
+  class List_Edit_Base_Window
 } {
   Fl_Browser grid {
     xywh {5 5 490 200} type Multi labeltype NO_LABEL labelsize 16 textsize 16 resizable
@@ -1446,7 +1446,7 @@ widget_class MeasureUnitsEditWindow {
 widget_class SalesTaxRatesEditWindow {
   label {Sales Tax Rates List / Edit}
   xywh {266 87 500 385} type Double labelsize 16 hide resizable
-  class Edit_Base_Window
+  class List_Edit_Base_Window
 } {
   Fl_Browser grid {
     tooltip {List of available sales tax} xywh {5 5 490 200} type Multi labeltype NO_LABEL labelsize 16 textsize 16 resizable
@@ -1517,7 +1517,7 @@ widget_class SalesTaxRatesEditWindow {
 widget_class OrderTypesEditWindow {
   label {Order Types List / Edit}
   xywh {100 110 800 535} type Double labelsize 16 hide resizable
-  class Edit_Base_Window
+  class List_Edit_Base_Window
 } {
   Fl_Browser grid {
     xywh {5 5 790 200} type Multi labeltype NO_LABEL labelsize 16 textsize 16 resizable
@@ -1723,9 +1723,9 @@ widget_class DynamicQueryWindow {
 } 
 
 widget_class ImagesListEditWindow {
-  label {Images List / Edit}
+  label {Images List / Edit} selected
   xywh {81 129 800 560} type Double labelsize 16 hide resizable
-  class Edit_Base_Window
+  class List_Edit_Base_Window
 } {
   Fl_Browser grid {
     xywh {5 5 790 295} type Multi labeltype NO_LABEL labelsize 16 textsize 16 resizable

+ 9 - 9
SquiLu-ourbiz/ourbiz-gui.nut

@@ -1663,7 +1663,7 @@ class AskLoginWindow extends Fl_Double_Window {
   }
 }
 
-class AppUsersEditWindow extends Edit_Base_Window {
+class AppUsersEditWindow extends List_Edit_Base_Window {
   
   // Declaration of class members
   grid = null;
@@ -1809,7 +1809,7 @@ class AppUsersEditWindow extends Edit_Base_Window {
   }
 }
 
-class AppConfigEditWindow extends Edit_Base_Window {
+class AppConfigEditWindow extends List_Edit_Base_Window {
   
   // Declaration of class members
   grid = null;
@@ -1920,7 +1920,7 @@ class AppConfigEditWindow extends Edit_Base_Window {
   }
 }
 
-class TanslationsWindow extends Edit_Base_Window {
+class TanslationsWindow extends List_Edit_Base_Window {
   
   // Declaration of class members
   myTabs = null;
@@ -2066,7 +2066,7 @@ class TanslationsWindow extends Edit_Base_Window {
   }
 }
 
-class PaymentTypesEditWindow extends Edit_Base_Window {
+class PaymentTypesEditWindow extends List_Edit_Base_Window {
   
   // Declaration of class members
   grid = null;
@@ -2215,7 +2215,7 @@ class PaymentTypesEditWindow extends Edit_Base_Window {
   }
 }
 
-class WarrantyTypesEditWindow extends Edit_Base_Window {
+class WarrantyTypesEditWindow extends List_Edit_Base_Window {
   
   // Declaration of class members
   grid = null;
@@ -2317,7 +2317,7 @@ class WarrantyTypesEditWindow extends Edit_Base_Window {
   }
 }
 
-class MeasureUnitsEditWindow extends Edit_Base_Window {
+class MeasureUnitsEditWindow extends List_Edit_Base_Window {
   
   // Declaration of class members
   grid = null;
@@ -2419,7 +2419,7 @@ class MeasureUnitsEditWindow extends Edit_Base_Window {
   }
 }
 
-class SalesTaxRatesEditWindow extends Edit_Base_Window {
+class SalesTaxRatesEditWindow extends List_Edit_Base_Window {
   
   // Declaration of class members
   grid = null;
@@ -2539,7 +2539,7 @@ class SalesTaxRatesEditWindow extends Edit_Base_Window {
   }
 }
 
-class OrderTypesEditWindow extends Edit_Base_Window {
+class OrderTypesEditWindow extends List_Edit_Base_Window {
   
   // Declaration of class members
   grid = null;
@@ -2853,7 +2853,7 @@ class DynamicQueryWindow extends Edit_Base_Window {
   }
 }
 
-class ImagesListEditWindow extends Edit_Base_Window {
+class ImagesListEditWindow extends List_Edit_Base_Window {
   
   // Declaration of class members
   grid = null;

+ 1 - 1
SquiLu-ourbiz/sqlite3-cc.nut

@@ -270,7 +270,7 @@ class Fl_Data_Table extends Flv_Data_Table {
 	}
 }
 
-dofile("sqlite3-cc-gui.nut");
+dofile("sqlite3-cc-gui.nut", false, false);
 
 class Sqlite3CC extends Sqlite3cc_Window {