3 @author: Sudheer K. <scifi1947 at gmail.com>
4 @license: GNU General Public License
7 function getDatabase() {
8 logMessage("Opening VICaR database..");
9 return openDatabaseSync("VICaR", "1.0", "StorageDatabase", 100);
12 function logMessage(strMessage){
13 if (typeof(logUtility)!== 'undefined'){
14 logUtility.logMessage(strMessage);
17 console.log(strMessage);
22 function initialize() {
23 var db = getDatabase();
26 // Create the settings table if it doesn't already exist
27 // If the table exists, this is skipped
28 tx.executeSql('CREATE TABLE IF NOT EXISTS settings(setting TEXT PRIMARY KEY, value TEXT)');
29 tx.executeSql('CREATE TABLE IF NOT EXISTS rules(id INTEGER PRIMARY KEY, numberpattern TEXT, gatewaynumber TEXT, dtmfformat TEXT, dtmfprefix TEXT, dtmfsuffix TEXT)');
32 logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
36 function getSetting(setting) {
37 var db = getDatabase();
41 var rs = tx.executeSql('SELECT value FROM settings WHERE setting=?;', [setting]);
42 if (rs.rows.length > 0) {
43 res = rs.rows.item(0).value;
44 logMessage(setting+" is "+res);
50 logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
57 function setSetting(setting, value) {
58 var db = getDatabase();
62 var rs = tx.executeSql('INSERT OR REPLACE INTO settings VALUES (?,?);', [setting,value]);
63 if (rs.rowsAffected > 0) {
65 logMessage("Updated "+setting+" to "+value);
71 logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
77 function addRule(ruleObj){
78 logMessage('SQL> INSERT INTO rules(id, numberpattern, gatewaynumber, dtmfformat, dtmfprefix, dtmfsuffix) VALUES (NULL, '+[ruleObj.numberpattern, ruleObj.gatewaynumber, ruleObj.dtmfformat, ruleObj.dtmfprefix, ruleObj.dtmfsuffix]+')');
79 var db = getDatabase();
81 logMessage("Opened VICaR database..");
83 db.transaction(function(tx) {
84 var rs = tx.executeSql('INSERT INTO rules(id, numberpattern, gatewaynumber, dtmfformat, dtmfprefix, dtmfsuffix) VALUES (NULL, ?, ?, ?, ?, ?);', [ruleObj.numberpattern, ruleObj.gatewaynumber, ruleObj.dtmfformat, ruleObj.dtmfprefix, ruleObj.dtmfsuffix]);
85 logMessage("Inserted "+rs.rowsAffected+" rows");
86 if (rs.rowsAffected > 0) {
93 logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
99 function updateRule(id,ruleObj){
100 logMessage('SQL> UPDATE rules set numberpattern = '+[ruleObj.numberpattern]+
101 ', gatewaynumber = '+[ruleObj.gatewaynumber]+
102 ', dtmfformat = '+[ruleObj.dtmfformat]+
103 ', dtmfprefix = '+[ruleObj.dtmfprefix]+
104 ', dtmfsuffix = '+[ruleObj.dtmfsuffix]+
105 ' WHERE id = ?'+[id]);
106 var db = getDatabase();
108 db.transaction(function(tx) {
109 var rs = tx.executeSql('UPDATE rules set numberpattern = ?, gatewaynumber = ?, dtmfformat = ?, dtmfprefix = ?, dtmfsuffix = ? WHERE id = ?;',
110 [ruleObj.numberpattern, ruleObj.gatewaynumber, ruleObj.dtmfformat, ruleObj.dtmfprefix, ruleObj.dtmfsuffix, id]);
111 logMessage("Updated "+rs.rowsAffected+" rows");
112 if (rs.rowsAffected > 0) {
119 logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
125 function removeRule(id){
126 logMessage('SQL> DELETE FROM rules WHERE id = '+[id]);
127 var db = getDatabase();
129 db.transaction(function(tx) {
130 var rs = tx.executeSql('DELETE FROM rules WHERE id = ?;', [id]);
131 logMessage("Deleted "+rs.rowsAffected+" rows");
132 if (rs.rowsAffected > 0) {
139 logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
145 function getAllRules(){
146 var db = getDatabase();
147 var rulesArray = new Array();
149 db.transaction(function(tx) {
150 var rs = tx.executeSql('SELECT * FROM rules');
151 logMessage("Fetched "+rs.rows.length+" rows");
153 for (i = 0; i < rs.rows.length; i++){
154 ruleObj = new Object();
155 ruleObj.id = rs.rows.item(i).id;
156 ruleObj.numberpattern = rs.rows.item(i).numberpattern;
157 ruleObj.gatewaynumber = rs.rows.item(i).gatewaynumber;
158 ruleObj.dtmfformat = rs.rows.item(i).dtmfformat;
159 ruleObj.dtmfprefix = rs.rows.item(i).dtmfprefix;
160 ruleObj.dtmfsuffix = rs.rows.item(i).dtmfsuffix;
161 rulesArray[i] = ruleObj;
162 logMessage("id = "+ruleObj.id
163 +", numberpattern = "+ruleObj.numberpattern
164 +", gatewaynumber = "+ruleObj.gatewaynumber
165 +", dtmfformat = "+ruleObj.dtmfformat
166 +", dtmfprefix = "+ruleObj.dtmfprefix
167 +", dtmfsuffix = "+ruleObj.dtmfsuffix);
171 logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
178 function getRuleByID(id){
179 var db = getDatabase();
181 db.transaction(function(tx) {
182 logMessage('SQL> SELECT * FROM rules WHERE id = '+[id]);
183 var rs = tx.executeSql('SELECT * FROM rules WHERE id = '+[id]);
184 logMessage("Fetched "+rs.rows.length+" rows");
185 if (rs.rows.length > 0){
186 ruleObj = new Object();
187 ruleObj.id = rs.rows.item(0).id;
188 ruleObj.numberpattern = rs.rows.item(0).numberpattern;
189 ruleObj.gatewaynumber = rs.rows.item(0).gatewaynumber;
190 ruleObj.dtmfformat = rs.rows.item(0).dtmfformat;
191 ruleObj.dtmfprefix = rs.rows.item(0).dtmfprefix;
192 ruleObj.dtmfsuffix = rs.rows.item(0).dtmfsuffix;
193 logMessage("id = "+ruleObj.id
194 +", numberpattern = "+ruleObj.numberpattern
195 +", gatewaynumber = "+ruleObj.gatewaynumber
196 +", dtmfformat = "+ruleObj.dtmfformat
197 +", dtmfprefix = "+ruleObj.dtmfprefix
198 +", dtmfsuffix = "+ruleObj.dtmfsuffix);
202 logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");