data.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. App.Data = (function(lng, App, undefined) {
  2. //CONFIG: Data.Sql
  3. lng.Data.Sql.init({
  4. name: 'todo.js',
  5. version: '1.0',
  6. schema: [
  7. { name: 'todo', drop: false, fields: {
  8. id: 'INTEGER PRIMARY KEY',
  9. name: 'TEXT',
  10. description: 'TEXT',
  11. type: 'STRING',
  12. done: 'INTEGER DEFAULT 0',
  13. created_at: 'DATETIME'
  14. }
  15. },
  16. { name: 'types', drop: false, fields: {
  17. id: 'INTEGER PRIMARY KEY',
  18. name: 'TEXT'
  19. }
  20. },
  21. ]
  22. });
  23. var refresh = function() {
  24. _pendingTodos();
  25. _doneTodos();
  26. };
  27. var insertTodo = function(data) {
  28. lng.Data.Sql.insert('todo', data);
  29. };
  30. var removeTodo = function(id) {
  31. lng.Data.Sql.drop('todo', {id:id});
  32. };
  33. var updateTodo = function(id, data) {
  34. lng.Data.Sql.update('todo', data, {id:id});
  35. };
  36. var doneTodo = function(id) {
  37. lng.Data.Sql.update('todo', {done:1}, {id:id});
  38. };
  39. var _pendingTodos = function() {
  40. lng.Data.Sql.select('todo', {done:0}, function(result){
  41. lng.View.Template.List.create({
  42. container_id: 'pending',
  43. template_id: 'pending-tmp',
  44. data: result
  45. });
  46. });
  47. };
  48. var _doneTodos = function() {
  49. lng.Data.Sql.select('todo', {done:1}, function(result){
  50. lng.View.Template.List.create({
  51. container_id: 'done',
  52. template_id: 'list-tmp',
  53. data: result
  54. });
  55. });
  56. };
  57. refresh();
  58. return {
  59. refresh: refresh,
  60. insertTodo: insertTodo,
  61. removeTodo: removeTodo,
  62. updateTodo: updateTodo,
  63. doneTodo: doneTodo
  64. }
  65. })(LUNGO, App);