top of page
Writer's pictureselinov

Simple model is best!

So I’m sitting there looking at my model class for the Flojuggler app and wondering at how simple it is. Instinctually I worried that it was too simple and needed some data exchanging panache but then I remembered that a good model should be simple.

var Model = {

 openDB : function () {
 if (window.openDatabase) {
 db = window.openDatabase("flos","1.0","Local database of flos", 1024*1000);
 db.transaction(function(tx) {
 tx.executeSql("CREATE TABLE IF NOT EXISTS Flos (id INTEGER PRIMARY KEY, name TEXT, cycle INTEGER, long INTEGER, startDate DATE, thumbnail TEXT)", []);
 });
 } else {
 console.log("No browser support for DB");
 }
 },

 addFlo : function(e) {
 e = $.parseJSON(e);

 db.transaction(
 function(tx) {
 tx.executeSql("INSERT INTO Flos (name,cycle,long,startDate,thumbnail) VALUES (?,?,?,?,?)", [e.name,e.cycle,e.long,e.startDate,e.thumbnail], displayInsertResult);
 },

 function(err) {
 console.log("Error: " + err.message);
 }
 );
 },

 updateFlo : function(e) {
 e = $.parseJSON(e);

 db.transaction(
 function(tx) {
 tx.executeSql("UPDATE Flos SET name=?,cycle=?,long=?,startDate=?,thumbnail=? WHERE id = " + currentFlo, [e.name,e.cycle,e.long,e.startDate,e.thumbnail]);
 },

 function(err) {
 console.log("Error: " + err.message);
 }
 );

 },

 deleteFlo : function(id) {
 db.transaction(
 function(tx) {
 tx.executeSql("DELETE FROM Flos WHERE id = ?", [id], displayDeleteResult);
 },

 function(err) {
 console.log("Error: " + err.message);
 }
 );

 },

 getFlos : function() {
 db.transaction(
 function(tx) {
 tx.executeSql("SELECT * FROM Flos", [], initFlos);
 });
 },

 getFlo : function(id) {
 db.transaction(
 function(tx) {
 tx.executeSql("SELECT * FROM Flos WHERE id = ?", [id], populateEditPage);
 });
 },

 clearTable: function() {
 db.transaction(function (tx) {
 tx.executeSql("DROP TABLE Flos");
 });
 }
} //end model

In retrospect it seems like the getFlo method is unnecessary so I’m refactoring to remove it. There’s no need to do another database read if I already pulled the set with the getFlos method.

The clearTable method is more of  helper function than anything else. It’ll likely be removed before I ship this.

Comentarios


bottom of page