3 * modular: simple app to count whatever you like
4 * author: hackbrd@hackdaworld.org
9 * Licensed to the Apache Software Foundation (ASF) under one
10 * or more contributor license agreements. See the NOTICE file
11 * distributed with this work for additional information
12 * regarding copyright ownership. The ASF licenses this file
13 * to you under the Apache License, Version 2.0 (the
14 * "License"); you may not use this file except in compliance
15 * with the License. You may obtain a copy of the License at
17 * http://www.apache.org/licenses/LICENSE-2.0
19 * Unless required by applicable law or agreed to in writing,
20 * software distributed under the License is distributed on an
21 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
22 * KIND, either express or implied. See the License for the
23 * specific language governing permissions and limitations
29 document.addEventListener('deviceready',this.startup,false);
36 'conf': db_conf_store,
37 'count': db_count_store
39 idb.init('modular',modular.dbcallback,1,stores);
41 dbcallback: function() {
42 idb.get_store_items('conf',function(item) {
47 html+="<div data-id="+i+" class=mdcbtn>"+
48 item[i].name+"</div>";
50 $('#mdcont').html(html);
51 vert_align_text('.mdhead');
52 vert_align_text('.mdcbtn');
53 $('.mdcbtn').click(function(event) {
54 var conf=$(this).attr('data-id');
55 modular.init_config(conf);
58 $('.mdni').change(function(event) {
59 modular.md_input_event(event.target.id);
62 md_input_event: function(id) {
69 var rows=$('#mdirows').val();
70 var cols=$('#mdicols').val();
71 var tot=$('#mditot').val();
73 html="<br><b>Pleas increas rows "+
74 "and/or columns ...</b>";
77 if((rows>0)&&(cols>0))
78 html+="<br>Row-Column: Name Color";
83 for(var r=1;r<=rows;r++) {
84 for(var c=1;c<=cols;c++) {
88 "<input class=mdiin type=text"+
90 "<input class=mdiic type=color"+
96 go="<br><button id=mdngo>Go</button>";
97 $('#mdnc').html(html+s+go);
99 $('#mdngo').click(function() {
103 $('.mdiin').each(function() {
104 na.push($(this).val());
107 $('.mdiic').each(function() {
108 ca.push($(this).val());
111 name: $('#mdiname').val(),
119 idb.add_store_item('conf',item,
121 modular.init_config('last');
131 init_config: function(conf) {
133 cl("starting up last configuration!");
134 idb.get_store_items('conf',function(item) {
136 modular.start_counter(item[i]);
137 modular.confignum=Number(i);
138 modular.config=item[i];
142 cl("starting configuration "+conf);
143 idb.get_item_by_key('conf',Number(conf),function(item) {
144 modular.start_counter(item);
145 modular.confignum=Number(conf);
150 start_counter: function(conf) {
151 $('#moddiag').css('display','none');
152 $('#main').css('display','block');
153 var ww=100/conf.cols;
154 var wh=100/conf.rows;
156 for(var i=1;i<=conf.items;i++) {
157 html+="<div id=item"+i+" class=item></div>";
159 $('#main').html(html);
160 for(var i=1;i<=conf.items;i++) {
162 $(id).css('width',ww+'%');
163 $(id).css('height',wh+'%');
164 $(id).css('background-color',conf.colors[i-1]);
165 $(id).html(conf.itemname[i-1]+": "+conf.cnt[i-1]);
168 $('.item').click(function(event) {
169 var id='#'+event.target.id;
170 var istr=event.target.id.replace("item","");
172 modular.inc_counter(id,i)
175 inc_counter: function(id,i) {
176 var conf=modular.config;
177 var cn=modular.confignum;
179 var html=conf.itemname[i-1]+": "+conf.cnt[i-1];
181 date: (new Date()).toString(),
184 counter: conf.cnt[i-1]
186 idb.add_store_item('count',cntitem,function() {
187 cl("increased counter for item "+i-1+
188 " to "+conf.cnt[i-1]);
189 idb.update_store_item('conf',cn,conf,function() {
196 $(document).ready(function() {
197 if('cordova' in window) {