cronapp-framework-mobile-js 2.8.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/components/crn-QRCode.components.json +54 -0
  4. package/components/crn-anchor.components.json +89 -0
  5. package/components/crn-button-bar.components.json +64 -0
  6. package/components/crn-button.components.json +316 -0
  7. package/components/crn-card.components.json +95 -0
  8. package/components/crn-chart.components.json +56 -0
  9. package/components/crn-chat.components.json +8 -0
  10. package/components/crn-checkbox.components.json +184 -0
  11. package/components/crn-complex-search.components.json +43 -0
  12. package/components/crn-container.components.json +21 -0
  13. package/components/crn-cron-crud.components.json +21 -0
  14. package/components/crn-datasource.components.json +181 -0
  15. package/components/crn-dynamic-file.components.json +85 -0
  16. package/components/crn-dynamic-image.components.json +151 -0
  17. package/components/crn-dynamic-select.components.json +111 -0
  18. package/components/crn-evaluation.components.json +64 -0
  19. package/components/crn-filter-button.components.json +305 -0
  20. package/components/crn-form-template.components.json +11 -0
  21. package/components/crn-header-button.components.json +63 -0
  22. package/components/crn-heading.components.json +109 -0
  23. package/components/crn-icon.components.json +249 -0
  24. package/components/crn-image.components.json +121 -0
  25. package/components/crn-infinite-scroll.components.json +32 -0
  26. package/components/crn-input-button.components.json +189 -0
  27. package/components/crn-input-floating.components.json +179 -0
  28. package/components/crn-input-icon.components.json +171 -0
  29. package/components/crn-input-inline.components.json +182 -0
  30. package/components/crn-input.components.json +169 -0
  31. package/components/crn-ion-content.components.json +24 -0
  32. package/components/crn-ion-footer-bar.components.json +351 -0
  33. package/components/crn-ion-header-bar.components.json +211 -0
  34. package/components/crn-ion-list.components.json +163 -0
  35. package/components/crn-ion-nav-buttons.components.json +63 -0
  36. package/components/crn-ion-segment-item.components.json +65 -0
  37. package/components/crn-ion-segment.components.json +974 -0
  38. package/components/crn-ion-tab-item.components.json +50 -0
  39. package/components/crn-ion-tab.components.json +138 -0
  40. package/components/crn-item-options.components.json +26 -0
  41. package/components/crn-item-select.components.json +69 -0
  42. package/components/crn-item-swipe.components.json +62 -0
  43. package/components/crn-kendo-chat.components.json +88 -0
  44. package/components/crn-label.components.json +113 -0
  45. package/components/crn-list-avatar.components.json +260 -0
  46. package/components/crn-list-icon.components.json +249 -0
  47. package/components/crn-list-item-avatar.components.json +236 -0
  48. package/components/crn-list-item-icon.components.json +260 -0
  49. package/components/crn-list-item-thumbnail.components.json +226 -0
  50. package/components/crn-list-item.components.json +160 -0
  51. package/components/crn-list-simple.components.json +180 -0
  52. package/components/crn-list-swipe.components.json +105 -0
  53. package/components/crn-list-thumbnail.components.json +248 -0
  54. package/components/crn-list.components.json +75 -0
  55. package/components/crn-map.components.json +55 -0
  56. package/components/crn-mobile-menu.components.json +32 -0
  57. package/components/crn-multiselect.components.json +110 -0
  58. package/components/crn-navbar.components.json +105 -0
  59. package/components/crn-option-button.components.json +72 -0
  60. package/components/crn-paragraph.components.json +110 -0
  61. package/components/crn-radio.components.json +90 -0
  62. package/components/crn-radioOption.components.json +23 -0
  63. package/components/crn-range.components.json +106 -0
  64. package/components/crn-rating.components.json +189 -0
  65. package/components/crn-search.components.json +210 -0
  66. package/components/crn-select-options.components.json +17 -0
  67. package/components/crn-select.components.json +93 -0
  68. package/components/crn-slider-item.components.json +137 -0
  69. package/components/crn-slider.components.json +105 -0
  70. package/components/crn-spacer.components.json +21 -0
  71. package/components/crn-start.components.json +10 -0
  72. package/components/crn-tabs-icon-only-item.components.json +85 -0
  73. package/components/crn-tabs-icon-only.components.json +382 -0
  74. package/components/crn-tabs.components.json +36 -0
  75. package/components/crn-textarea.components.json +96 -0
  76. package/components/crn-toggle.components.json +161 -0
  77. package/components/crn-video.components.json +67 -0
  78. package/components/css/app.css +66 -0
  79. package/components/css/background-color.css +121 -0
  80. package/components/css/chatStyle.css +221 -0
  81. package/components/css/color-default.css +83 -0
  82. package/components/css/crn-ion-segment.css +786 -0
  83. package/components/css/icon-size.css +15 -0
  84. package/components/css/multiselect-editor.css +119 -0
  85. package/components/css/tabs-color.css +248 -0
  86. package/components/js/format.min.js +2 -0
  87. package/components/js/jquery.inputmask.bundle.js +3883 -0
  88. package/components/js/jquery.mask.min.js +19 -0
  89. package/components/js/pouchdb.cordova-sqlite.js +5540 -0
  90. package/components/js/qrcode.js +1319 -0
  91. package/components/reports/BOOLEAN.parameter.html +10 -0
  92. package/components/reports/DATE.parameter.html +4 -0
  93. package/components/reports/DOUBLE.parameter.html +4 -0
  94. package/components/reports/FLOAT.parameter.html +4 -0
  95. package/components/reports/INTEGER.parameter.html +4 -0
  96. package/components/reports/LONG.parameter.html +5 -0
  97. package/components/reports/STRING.parameter.html +5 -0
  98. package/components/reports/reports.parameters.html +20 -0
  99. package/components/templates/advanced.list.designtime.html +57 -0
  100. package/components/templates/advanced.list.template.html +1 -0
  101. package/components/templates/anchor.template.html +1 -0
  102. package/components/templates/button-bar.template.html +5 -0
  103. package/components/templates/button-report.template.html +1 -0
  104. package/components/templates/button.template.html +4 -0
  105. package/components/templates/card.template.html +7 -0
  106. package/components/templates/chat.template.html +39 -0
  107. package/components/templates/checkbox.template.html +9 -0
  108. package/components/templates/combobox.designtime.html +12 -0
  109. package/components/templates/combobox.template.html +8 -0
  110. package/components/templates/complexsearch.template.html +7 -0
  111. package/components/templates/crn-ion-segment-item.template.html +6 -0
  112. package/components/templates/crn-ion-segment.template.html +27 -0
  113. package/components/templates/cron-crud.template.html +7 -0
  114. package/components/templates/cron-mobile-menu.designtime.html +10 -0
  115. package/components/templates/div.horizontal.template.html +27 -0
  116. package/components/templates/div.vertical.template.html +11 -0
  117. package/components/templates/dynamic-combobox.template.html +6 -0
  118. package/components/templates/dynamicfile.template.html +8 -0
  119. package/components/templates/dynamicimage.designtime.html +11 -0
  120. package/components/templates/dynamicimage.template.html +9 -0
  121. package/components/templates/evaluation.designtime.html +7 -0
  122. package/components/templates/evaluation.template.html +1 -0
  123. package/components/templates/filterbutton.template.html +3 -0
  124. package/components/templates/floattextinput.designtime.html +4 -0
  125. package/components/templates/floattextinput.template.html +4 -0
  126. package/components/templates/form.template.html +5 -0
  127. package/components/templates/header.template.html +3 -0
  128. package/components/templates/icontextinput.template.html +4 -0
  129. package/components/templates/image.template.html +18 -0
  130. package/components/templates/inlinetextinput.template.html +4 -0
  131. package/components/templates/ion-footer-bar.template.html +9 -0
  132. package/components/templates/ion-header-bar.template.html +13 -0
  133. package/components/templates/ion-tab-item.designtime.html +5 -0
  134. package/components/templates/ion-tab.template.html +8 -0
  135. package/components/templates/item.avatar.template.html +5 -0
  136. package/components/templates/item.icon.template.html +4 -0
  137. package/components/templates/item.options.template.html +14 -0
  138. package/components/templates/item.slider.template.html +4 -0
  139. package/components/templates/item.swipe.template.html +14 -0
  140. package/components/templates/item.template.html +5 -0
  141. package/components/templates/item.thumbnail.template.html +5 -0
  142. package/components/templates/kendo-chat.designtime.html +20 -0
  143. package/components/templates/kendo-chat.template.html +75 -0
  144. package/components/templates/list.avatar.template.html +7 -0
  145. package/components/templates/list.icon.template.html +6 -0
  146. package/components/templates/list.swipe.template.html +16 -0
  147. package/components/templates/list.template.html +5 -0
  148. package/components/templates/list.thumbnail.template.html +7 -0
  149. package/components/templates/maps.designtime.html +1 -0
  150. package/components/templates/maps.template.html +1 -0
  151. package/components/templates/menu.template.html +21 -0
  152. package/components/templates/multiselect.template.html +5 -0
  153. package/components/templates/nav.bar.template.html +5 -0
  154. package/components/templates/publicMenu.template.html +14 -0
  155. package/components/templates/radiogroup-dynamic.template.html +15 -0
  156. package/components/templates/radiogroup.template.html +21 -0
  157. package/components/templates/range.template.html +5 -0
  158. package/components/templates/rating.template.html +9 -0
  159. package/components/templates/search.template.html +6 -0
  160. package/components/templates/slider.template.html +24 -0
  161. package/components/templates/tabs-icon-only.template.html +16 -0
  162. package/components/templates/tabs.template.html +5 -0
  163. package/components/templates/textarea.template.html +1 -0
  164. package/components/templates/textinput.template.html +3 -0
  165. package/components/templates/textinputbutton.template.html +12 -0
  166. package/components/templates/title.template.html +1 -0
  167. package/components/templates/toggle-dynamic.template.html +11 -0
  168. package/components/templates/toggle.template.html +9 -0
  169. package/components/templates/video.designtime.html +2 -0
  170. package/components/templates/video.template.html +1 -0
  171. package/components/templates/views/public/home.view.html +16 -0
  172. package/components/templates/views/public/menu.view.html +20 -0
  173. package/components/upload/upload.html +41 -0
  174. package/cronapp-framework-mobile-js.iml +9 -0
  175. package/css/app.css +306 -0
  176. package/css/cronos.css +55 -0
  177. package/css/custom-ionic.css +195 -0
  178. package/css/groupingOfCss/checkbox.css +75 -0
  179. package/css/groupingOfCss/col.css +728 -0
  180. package/css/groupingOfCss/dynamicImage.css +24 -0
  181. package/css/groupingOfCss/import_groupingOfCss.css +6 -0
  182. package/css/groupingOfCss/login.css +260 -0
  183. package/css/groupingOfCss/qrCodeCronapp.css +4 -0
  184. package/css/groupingOfCss/upload-image.css +68 -0
  185. package/css/old/modal.css +133 -0
  186. package/dist/components/css/app.css +1 -0
  187. package/dist/components/css/background-color.css +1 -0
  188. package/dist/components/css/chatStyle.css +1 -0
  189. package/dist/components/css/color-default.css +1 -0
  190. package/dist/components/css/crn-ion-segment.css +1 -0
  191. package/dist/components/css/icon-size.css +1 -0
  192. package/dist/components/css/multiselect-editor.css +1 -0
  193. package/dist/components/css/tabs-color.css +1 -0
  194. package/dist/components/js/format.min.js +1 -0
  195. package/dist/components/js/jquery.inputmask.bundle.js +3 -0
  196. package/dist/components/js/jquery.mask.min.js +1 -0
  197. package/dist/components/js/pouchdb.cordova-sqlite.js +2 -0
  198. package/dist/components/js/qrcode.js +1 -0
  199. package/dist/components/templates/advanced.list.designtime.html +1 -0
  200. package/dist/components/templates/advanced.list.template.html +1 -0
  201. package/dist/components/templates/anchor.template.html +1 -0
  202. package/dist/components/templates/button-bar.template.html +1 -0
  203. package/dist/components/templates/button-report.template.html +1 -0
  204. package/dist/components/templates/button.template.html +1 -0
  205. package/dist/components/templates/card.template.html +1 -0
  206. package/dist/components/templates/chat.template.html +1 -0
  207. package/dist/components/templates/checkbox.template.html +1 -0
  208. package/dist/components/templates/combobox.designtime.html +1 -0
  209. package/dist/components/templates/combobox.template.html +1 -0
  210. package/dist/components/templates/complexsearch.template.html +1 -0
  211. package/dist/components/templates/crn-ion-segment-item.template.html +1 -0
  212. package/dist/components/templates/crn-ion-segment.template.html +1 -0
  213. package/dist/components/templates/cron-crud.template.html +1 -0
  214. package/dist/components/templates/cron-mobile-menu.designtime.html +1 -0
  215. package/dist/components/templates/div.horizontal.template.html +1 -0
  216. package/dist/components/templates/div.vertical.template.html +1 -0
  217. package/dist/components/templates/dynamic-combobox.template.html +1 -0
  218. package/dist/components/templates/dynamicfile.template.html +1 -0
  219. package/dist/components/templates/dynamicimage.designtime.html +1 -0
  220. package/dist/components/templates/dynamicimage.template.html +1 -0
  221. package/dist/components/templates/evaluation.designtime.html +1 -0
  222. package/dist/components/templates/evaluation.template.html +1 -0
  223. package/dist/components/templates/filterbutton.template.html +1 -0
  224. package/dist/components/templates/floattextinput.designtime.html +1 -0
  225. package/dist/components/templates/floattextinput.template.html +1 -0
  226. package/dist/components/templates/form.template.html +1 -0
  227. package/dist/components/templates/header.template.html +1 -0
  228. package/dist/components/templates/iconinput.template.html +1 -0
  229. package/dist/components/templates/icontextinput.template.html +1 -0
  230. package/dist/components/templates/image.template.html +1 -0
  231. package/dist/components/templates/inlinetextinput.template.html +1 -0
  232. package/dist/components/templates/ion-footer-bar.template.html +1 -0
  233. package/dist/components/templates/ion-header-bar.template.html +1 -0
  234. package/dist/components/templates/ion-tab-item.designtime.html +1 -0
  235. package/dist/components/templates/ion-tab.designtime.html +1 -0
  236. package/dist/components/templates/ion-tab.template.html +1 -0
  237. package/dist/components/templates/item.avatar.template.html +1 -0
  238. package/dist/components/templates/item.icon.template.html +1 -0
  239. package/dist/components/templates/item.options.template.html +1 -0
  240. package/dist/components/templates/item.slider.template.html +1 -0
  241. package/dist/components/templates/item.swipe.template.html +1 -0
  242. package/dist/components/templates/item.template.html +1 -0
  243. package/dist/components/templates/item.thumbnail.template.html +1 -0
  244. package/dist/components/templates/kendo-chat.designtime.html +1 -0
  245. package/dist/components/templates/kendo-chat.template.html +1 -0
  246. package/dist/components/templates/list.avatar.template.html +1 -0
  247. package/dist/components/templates/list.icon.template.html +1 -0
  248. package/dist/components/templates/list.swipe.template.html +1 -0
  249. package/dist/components/templates/list.template.html +1 -0
  250. package/dist/components/templates/list.thumbnail.template.html +1 -0
  251. package/dist/components/templates/maps.designtime.html +1 -0
  252. package/dist/components/templates/maps.template.html +1 -0
  253. package/dist/components/templates/menu.template.html +1 -0
  254. package/dist/components/templates/multiselect.template.html +1 -0
  255. package/dist/components/templates/nav.bar.template.html +1 -0
  256. package/dist/components/templates/publicMenu.template.html +1 -0
  257. package/dist/components/templates/radiogroup-dynamic.template.html +1 -0
  258. package/dist/components/templates/radiogroup.template.html +1 -0
  259. package/dist/components/templates/range.template.html +1 -0
  260. package/dist/components/templates/rating.template.html +1 -0
  261. package/dist/components/templates/search.template.html +1 -0
  262. package/dist/components/templates/slider.template.html +1 -0
  263. package/dist/components/templates/tabs-icon-only.template.html +1 -0
  264. package/dist/components/templates/tabs.template.html +1 -0
  265. package/dist/components/templates/textarea.template.html +1 -0
  266. package/dist/components/templates/textinput.template.html +1 -0
  267. package/dist/components/templates/textinputbutton.template.html +1 -0
  268. package/dist/components/templates/title.template.html +1 -0
  269. package/dist/components/templates/toggle-dynamic.template.html +1 -0
  270. package/dist/components/templates/toggle.template.html +1 -0
  271. package/dist/components/templates/video.designtime.html +1 -0
  272. package/dist/components/templates/video.template.html +1 -0
  273. package/dist/components/templates/views/public/home.view.html +1 -0
  274. package/dist/components/templates/views/public/menu.view.html +1 -0
  275. package/dist/css/app.css +1 -0
  276. package/dist/css/cronos.css +1 -0
  277. package/dist/css/custom-ionic.css +1 -0
  278. package/dist/css/groupingOfCss/checkbox.css +1 -0
  279. package/dist/css/groupingOfCss/col.css +1 -0
  280. package/dist/css/groupingOfCss/dynamicImage.css +1 -0
  281. package/dist/css/groupingOfCss/import_groupingOfCss.css +1 -0
  282. package/dist/css/groupingOfCss/login.css +1 -0
  283. package/dist/css/groupingOfCss/qrCodeCronapp.css +1 -0
  284. package/dist/css/groupingOfCss/upload-image.css +1 -0
  285. package/dist/css/old/modal.css +1 -0
  286. package/dist/i18n/locale_en_us.json +126 -0
  287. package/dist/i18n/locale_pt_br.json +126 -0
  288. package/dist/img/cron-icon/crn-QRCode.svg +1 -0
  289. package/dist/img/cron-icon/crn-anchor.svg +1 -0
  290. package/dist/img/cron-icon/crn-button-bar.svg +1 -0
  291. package/dist/img/cron-icon/crn-button.svg +1 -0
  292. package/dist/img/cron-icon/crn-card.svg +1 -0
  293. package/dist/img/cron-icon/crn-carousel.svg +1 -0
  294. package/dist/img/cron-icon/crn-chart.svg +1 -0
  295. package/dist/img/cron-icon/crn-checkbox.svg +1 -0
  296. package/dist/img/cron-icon/crn-container.svg +1 -0
  297. package/dist/img/cron-icon/crn-cron-crud.svg +1 -0
  298. package/dist/img/cron-icon/crn-datasource.svg +1 -0
  299. package/dist/img/cron-icon/crn-dynamic-file.svg +1 -0
  300. package/dist/img/cron-icon/crn-dynamic-image.svg +1 -0
  301. package/dist/img/cron-icon/crn-enterprise-dynamic-combobox.svg +1 -0
  302. package/dist/img/cron-icon/crn-evaluation.svg +1 -0
  303. package/dist/img/cron-icon/crn-form.svg +1 -0
  304. package/dist/img/cron-icon/crn-header.svg +1 -0
  305. package/dist/img/cron-icon/crn-icon.svg +1 -0
  306. package/dist/img/cron-icon/crn-image.svg +1 -0
  307. package/dist/img/cron-icon/crn-infinite-scroll.svg +1 -0
  308. package/dist/img/cron-icon/crn-input-floating.svg +1 -0
  309. package/dist/img/cron-icon/crn-input-inline.svg +1 -0
  310. package/dist/img/cron-icon/crn-ion-footer-bar.svg +1 -0
  311. package/dist/img/cron-icon/crn-ion-list.svg +1 -0
  312. package/dist/img/cron-icon/crn-item-swipe.svg +1 -0
  313. package/dist/img/cron-icon/crn-kendo-chat.svg +1 -0
  314. package/dist/img/cron-icon/crn-label.svg +1 -0
  315. package/dist/img/cron-icon/crn-list-avatar.svg +1 -0
  316. package/dist/img/cron-icon/crn-list-icon.svg +1 -0
  317. package/dist/img/cron-icon/crn-list-item-avatar.svg +1 -0
  318. package/dist/img/cron-icon/crn-list-item-icon.svg +1 -0
  319. package/dist/img/cron-icon/crn-list-item-thumbnail.svg +1 -0
  320. package/dist/img/cron-icon/crn-list-item.svg +1 -0
  321. package/dist/img/cron-icon/crn-list-swipe.svg +1 -0
  322. package/dist/img/cron-icon/crn-list-thumbnail.svg +1 -0
  323. package/dist/img/cron-icon/crn-list.svg +1 -0
  324. package/dist/img/cron-icon/crn-map.svg +1 -0
  325. package/dist/img/cron-icon/crn-multiselect.svg +1 -0
  326. package/dist/img/cron-icon/crn-paragraph.svg +1 -0
  327. package/dist/img/cron-icon/crn-plugin.svg +1 -0
  328. package/dist/img/cron-icon/crn-radio.svg +1 -0
  329. package/dist/img/cron-icon/crn-radiogroup.svg +1 -0
  330. package/dist/img/cron-icon/crn-range.svg +1 -0
  331. package/dist/img/cron-icon/crn-rating.svg +1 -0
  332. package/dist/img/cron-icon/crn-select.svg +1 -0
  333. package/dist/img/cron-icon/crn-spacer.svg +1 -0
  334. package/dist/img/cron-icon/crn-tabs-icon-only.svg +1 -0
  335. package/dist/img/cron-icon/crn-tabs.svg +1 -0
  336. package/dist/img/cron-icon/crn-text-component.svg +1 -0
  337. package/dist/img/cron-icon/crn-textarea.svg +1 -0
  338. package/dist/img/cron-icon/crn-textinput.svg +1 -0
  339. package/dist/img/cron-icon/crn-textinputbutton.svg +1 -0
  340. package/dist/img/cron-icon/crn-textinputicon.svg +1 -0
  341. package/dist/img/cron-icon/crn-toggle.svg +1 -0
  342. package/dist/img/cron-icon/crn-video.svg +1 -0
  343. package/dist/img/placehold-100x100.png +0 -0
  344. package/dist/img/placehold-900x500.png +0 -0
  345. package/dist/img/qr-code.png +0 -0
  346. package/dist/img/svg-charts.svg +1 -0
  347. package/dist/img/user.svg +1 -0
  348. package/dist/js/LanguageSelectDirective.js +1 -0
  349. package/dist/js/LocaleService.js +1 -0
  350. package/dist/js/app.authentication.js +1 -0
  351. package/dist/js/app.js +1 -0
  352. package/dist/js/controllers.authentication.js +1 -0
  353. package/dist/js/controllers.js +1 -0
  354. package/dist/js/custom.controllers.js +1 -0
  355. package/dist/js/customModules.js +1 -0
  356. package/dist/js/customStateProvider.js +0 -0
  357. package/dist/js/directives.js +1 -0
  358. package/dist/js/filters.js +1 -0
  359. package/dist/js/local-dateformat.directive.js +1 -0
  360. package/dist/js/reports/parameters.controller.js +1 -0
  361. package/dist/js/reports/reports.service.js +1 -0
  362. package/dist/js/services.js +1 -0
  363. package/dist/js/upload.service.js +1 -0
  364. package/gulpfile.js +73 -0
  365. package/i18n/locale_en_us.json +126 -0
  366. package/i18n/locale_pt_br.json +126 -0
  367. package/img/cron-icon/crn-QRCode.svg +38 -0
  368. package/img/cron-icon/crn-anchor.svg +29 -0
  369. package/img/cron-icon/crn-button-bar.svg +1 -0
  370. package/img/cron-icon/crn-button.svg +24 -0
  371. package/img/cron-icon/crn-card.svg +1 -0
  372. package/img/cron-icon/crn-carousel.svg +26 -0
  373. package/img/cron-icon/crn-chart.svg +19 -0
  374. package/img/cron-icon/crn-checkbox.svg +15 -0
  375. package/img/cron-icon/crn-container.svg +1 -0
  376. package/img/cron-icon/crn-cron-crud.svg +28 -0
  377. package/img/cron-icon/crn-datasource.svg +27 -0
  378. package/img/cron-icon/crn-dynamic-file.svg +1 -0
  379. package/img/cron-icon/crn-dynamic-image.svg +25 -0
  380. package/img/cron-icon/crn-enterprise-dynamic-combobox.svg +27 -0
  381. package/img/cron-icon/crn-evaluation.svg +1 -0
  382. package/img/cron-icon/crn-form.svg +24 -0
  383. package/img/cron-icon/crn-header.svg +18 -0
  384. package/img/cron-icon/crn-icon.svg +23 -0
  385. package/img/cron-icon/crn-image.svg +20 -0
  386. package/img/cron-icon/crn-infinite-scroll.svg +1 -0
  387. package/img/cron-icon/crn-input-floating.svg +1 -0
  388. package/img/cron-icon/crn-input-inline.svg +1 -0
  389. package/img/cron-icon/crn-ion-footer-bar.svg +1 -0
  390. package/img/cron-icon/crn-ion-list.svg +1 -0
  391. package/img/cron-icon/crn-item-swipe.svg +15 -0
  392. package/img/cron-icon/crn-kendo-chat.svg +1 -0
  393. package/img/cron-icon/crn-label.svg +1 -0
  394. package/img/cron-icon/crn-list-avatar.svg +1 -0
  395. package/img/cron-icon/crn-list-icon.svg +1 -0
  396. package/img/cron-icon/crn-list-item-avatar.svg +1 -0
  397. package/img/cron-icon/crn-list-item-icon.svg +1 -0
  398. package/img/cron-icon/crn-list-item-thumbnail.svg +1 -0
  399. package/img/cron-icon/crn-list-item.svg +1 -0
  400. package/img/cron-icon/crn-list-swipe.svg +17 -0
  401. package/img/cron-icon/crn-list-thumbnail.svg +17 -0
  402. package/img/cron-icon/crn-list.svg +16 -0
  403. package/img/cron-icon/crn-map.svg +1 -0
  404. package/img/cron-icon/crn-multiselect.svg +1 -0
  405. package/img/cron-icon/crn-paragraph.svg +1 -0
  406. package/img/cron-icon/crn-plugin.svg +44 -0
  407. package/img/cron-icon/crn-radio.svg +21 -0
  408. package/img/cron-icon/crn-radiogroup.svg +25 -0
  409. package/img/cron-icon/crn-range.svg +1 -0
  410. package/img/cron-icon/crn-rating.svg +20 -0
  411. package/img/cron-icon/crn-select.svg +1 -0
  412. package/img/cron-icon/crn-spacer.svg +1 -0
  413. package/img/cron-icon/crn-tabs-icon-only.svg +24 -0
  414. package/img/cron-icon/crn-tabs.svg +17 -0
  415. package/img/cron-icon/crn-text-component.svg +22 -0
  416. package/img/cron-icon/crn-textarea.svg +22 -0
  417. package/img/cron-icon/crn-textinput.svg +23 -0
  418. package/img/cron-icon/crn-textinputbutton.svg +33 -0
  419. package/img/cron-icon/crn-textinputicon.svg +29 -0
  420. package/img/cron-icon/crn-toggle.svg +1 -0
  421. package/img/cron-icon/crn-video.svg +1 -0
  422. package/img/placehold-100x100.png +0 -0
  423. package/img/placehold-900x500.png +0 -0
  424. package/img/qr-code.png +0 -0
  425. package/img/svg-charts.svg +1 -0
  426. package/img/user.svg +18 -0
  427. package/js/LanguageSelectDirective.js +30 -0
  428. package/js/LocaleService.js +59 -0
  429. package/js/app.authentication.js +594 -0
  430. package/js/app.js +349 -0
  431. package/js/controllers.authentication.js +540 -0
  432. package/js/controllers.js +90 -0
  433. package/js/custom.controllers.js +11 -0
  434. package/js/customModules.js +1 -0
  435. package/js/customStateProvider.js +107 -0
  436. package/js/directives.js +2426 -0
  437. package/js/filters.js +47 -0
  438. package/js/local-dateformat.directive.js +15 -0
  439. package/js/reports/parameters.controller.js +86 -0
  440. package/js/reports/reports.service.js +466 -0
  441. package/js/services.js +5 -0
  442. package/js/upload.service.js +165 -0
  443. package/lib/ionic/css/ionic.css +9802 -0
  444. package/lib/ionic/css/ionic.min.css +23 -0
  445. package/lib/ionic/fonts/ionicons.eot +0 -0
  446. package/lib/ionic/fonts/ionicons.svg +2230 -0
  447. package/lib/ionic/fonts/ionicons.ttf +0 -0
  448. package/lib/ionic/fonts/ionicons.woff +0 -0
  449. package/lib/ionic/js/angular/angular-animate.js +4115 -0
  450. package/lib/ionic/js/angular/angular-animate.min.js +56 -0
  451. package/lib/ionic/js/angular/angular-resource.js +768 -0
  452. package/lib/ionic/js/angular/angular-resource.min.js +15 -0
  453. package/lib/ionic/js/angular/angular-sanitize.js +717 -0
  454. package/lib/ionic/js/angular/angular-sanitize.min.js +15 -0
  455. package/lib/ionic/js/angular/angular.js +30714 -0
  456. package/lib/ionic/js/angular/angular.min.js +311 -0
  457. package/lib/ionic/js/angular-ui/angular-ui-router.js +4232 -0
  458. package/lib/ionic/js/angular-ui/angular-ui-router.min.js +7 -0
  459. package/lib/ionic/js/ionic-angular.js +14391 -0
  460. package/lib/ionic/js/ionic-angular.min.js +18 -0
  461. package/lib/ionic/js/ionic.bundle.js +67590 -0
  462. package/lib/ionic/js/ionic.bundle.min.js +472 -0
  463. package/lib/ionic/js/ionic.js +13356 -0
  464. package/lib/ionic/js/ionic.min.js +20 -0
  465. package/lib/ionic/scss/_action-sheet.scss +170 -0
  466. package/lib/ionic/scss/_animations.scss +48 -0
  467. package/lib/ionic/scss/_backdrop.scss +24 -0
  468. package/lib/ionic/scss/_badge.scss +62 -0
  469. package/lib/ionic/scss/_bar.scss +417 -0
  470. package/lib/ionic/scss/_button-bar.scss +92 -0
  471. package/lib/ionic/scss/_button.scss +252 -0
  472. package/lib/ionic/scss/_checkbox.scss +180 -0
  473. package/lib/ionic/scss/_form.scss +327 -0
  474. package/lib/ionic/scss/_grid.scss +159 -0
  475. package/lib/ionic/scss/_items.scss +825 -0
  476. package/lib/ionic/scss/_list.scss +125 -0
  477. package/lib/ionic/scss/_loading.scss +51 -0
  478. package/lib/ionic/scss/_menu.scss +70 -0
  479. package/lib/ionic/scss/_mixins.scss +642 -0
  480. package/lib/ionic/scss/_modal.scss +102 -0
  481. package/lib/ionic/scss/_platform.scss +77 -0
  482. package/lib/ionic/scss/_popover.scss +168 -0
  483. package/lib/ionic/scss/_popup.scss +110 -0
  484. package/lib/ionic/scss/_progress.scss +11 -0
  485. package/lib/ionic/scss/_radio.scss +47 -0
  486. package/lib/ionic/scss/_range.scss +160 -0
  487. package/lib/ionic/scss/_refresher.scss +113 -0
  488. package/lib/ionic/scss/_reset.scss +365 -0
  489. package/lib/ionic/scss/_scaffolding.scss +291 -0
  490. package/lib/ionic/scss/_select.scss +142 -0
  491. package/lib/ionic/scss/_slide-box.scss +71 -0
  492. package/lib/ionic/scss/_slides.scss +529 -0
  493. package/lib/ionic/scss/_spinner.scss +100 -0
  494. package/lib/ionic/scss/_tabs.scss +542 -0
  495. package/lib/ionic/scss/_toggle.scss +198 -0
  496. package/lib/ionic/scss/_transitions.scss +188 -0
  497. package/lib/ionic/scss/_type.scss +166 -0
  498. package/lib/ionic/scss/_util.scss +296 -0
  499. package/lib/ionic/scss/_variables.scss +764 -0
  500. package/lib/ionic/scss/ionic.scss +54 -0
  501. package/lib/ionic/scss/ionicons/_ionicons-font.scss +28 -0
  502. package/lib/ionic/scss/ionicons/_ionicons-icons.scss +1473 -0
  503. package/lib/ionic/scss/ionicons/_ionicons-variables.scss +741 -0
  504. package/lib/ionic/scss/ionicons/ionicons.scss +16 -0
  505. package/lib/ionic/version.json +6 -0
  506. package/lib/kendo/kendo.all.min.js +125 -0
  507. package/lib/kendo/kendo.default-v2.min.css +10 -0
  508. package/lib/notification-mobile.js +57 -0
  509. package/package.json +62 -0
  510. package/postupdate.json +407 -0
package/js/app.js ADDED
@@ -0,0 +1,349 @@
1
+ var cronappModules = [
2
+ 'ionic',
3
+ 'ui.router',
4
+ 'ngResource',
5
+ 'ngSanitize',
6
+ 'custom.controllers',
7
+ 'custom.services',
8
+ 'report.services',
9
+ 'datasourcejs',
10
+ 'pascalprecht.translate',
11
+ 'tmh.dynamicLocale',
12
+ 'ui-notification',
13
+ 'ngFileUpload',
14
+ 'angularMoment'
15
+ ];
16
+
17
+ if (window.customModules) {
18
+ cronappModules = cronappModules.concat(window.customModules);
19
+ }
20
+
21
+
22
+ var app = (function() {
23
+ return angular.module('MyApp', cronappModules)
24
+ .constant('LOCALES', {
25
+ 'locales': {
26
+ 'pt_br': 'Portugues (Brasil)',
27
+ 'en_us': 'English'
28
+ },
29
+ 'preferredLocale': 'pt_br'
30
+ })
31
+ .run(function($ionicPlatform) {
32
+ $ionicPlatform.ready(function() {
33
+ // Remove splash screen
34
+ setTimeout(function() {
35
+ if (navigator.splashscreen) {
36
+ navigator.splashscreen.hide();
37
+ }
38
+ }, 100);
39
+ // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
40
+ // for form inputs)
41
+ if (window.cordova &&
42
+ window.cordova.plugins && window.cordova.plugins.Keyboard) {
43
+ cordova.plugins.Keyboard
44
+ .hideKeyboardAccessoryBar(true);
45
+ cordova.plugins.Keyboard.disableScroll(true);
46
+
47
+ }
48
+ if (window.StatusBar) {
49
+ // org.apache.cordova.statusbar required
50
+ StatusBar.styleDefault();
51
+ }
52
+ });
53
+ })
54
+ .config([
55
+ '$httpProvider',
56
+ function($httpProvider) {
57
+ var interceptor = [
58
+ '$q',
59
+ '$rootScope',
60
+ function($q, $rootScope) {
61
+ var service = {
62
+ 'request': function(config) {
63
+ var _u = JSON.parse(sessionStorage.getItem('_u'));
64
+ if (_u && _u.token) config.headers['X-AUTH-TOKEN'] = _u.token;
65
+ return config;
66
+ }
67
+ };
68
+ return service;
69
+ }
70
+ ];
71
+ $httpProvider.interceptors.push(interceptor);
72
+ }
73
+ ])
74
+ .config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
75
+ $ionicConfigProvider.navBar.alignTitle('center');
76
+ if(ionic.Platform.isIOS()) {
77
+ $ionicConfigProvider.scrolling.jsScrolling(false);
78
+ }
79
+ })
80
+ .config(function($stateProvider, $urlRouterProvider, NotificationProvider) {
81
+ NotificationProvider.setOptions({
82
+ delay: 5000,
83
+ startTop: 20,
84
+ startRight: 10,
85
+ verticalSpacing: 20,
86
+ horizontalSpacing: 20,
87
+ positionX: 'right',
88
+ positionY: 'top'
89
+ });
90
+
91
+
92
+ if (window.customStateProvider) {
93
+ window.customStateProvider($stateProvider);
94
+ }
95
+ else {
96
+ // Set up the states
97
+ $stateProvider
98
+
99
+ .state('index', {
100
+ url: "",
101
+ controller: 'HomeController',
102
+ templateUrl: 'views/home.view.html'
103
+ })
104
+
105
+ .state('main', {
106
+ url: "/",
107
+ controller: 'HomeController',
108
+ templateUrl: 'views/home.view.html'
109
+ })
110
+
111
+ .state('home', {
112
+ url: "/home",
113
+ controller: 'HomeController',
114
+ templateUrl: 'views/home.view.html'
115
+ })
116
+
117
+ .state('pages', {
118
+ url: "/app/{name:.*}",
119
+ cache: false,
120
+ controller: 'PageController',
121
+ templateUrl: function(urlattr) {
122
+ return 'views/' + urlattr.name + '.view.html';
123
+ }
124
+ })
125
+
126
+ .state('404', {
127
+ url: "/error/404",
128
+ controller: 'PageController',
129
+ templateUrl: function(urlattr) {
130
+ return 'views/error/404.view.html';
131
+ }
132
+ })
133
+
134
+ .state('403', {
135
+ url: "/error/403",
136
+ controller: 'PageController',
137
+ templateUrl: function(urlattr) {
138
+ return 'views/error/403.view.html';
139
+ }
140
+ });
141
+ }
142
+ // For any unmatched url, redirect to /state1
143
+ $urlRouterProvider.otherwise("/error/404");
144
+ })
145
+
146
+ .config(function($translateProvider, tmhDynamicLocaleProvider) {
147
+
148
+ $translateProvider.useMissingTranslationHandlerLog();
149
+
150
+ $translateProvider.useStaticFilesLoader({
151
+ prefix: 'i18n/locale_',
152
+ suffix: '.json'
153
+ });
154
+
155
+ $translateProvider.registerAvailableLanguageKeys(
156
+ ['pt_br', 'en_us'], {
157
+ 'en*': 'en_us',
158
+ 'pt*': 'pt_br',
159
+ '*': 'pt_br'
160
+ }
161
+ );
162
+
163
+ var locale = (window.navigator.userLanguage || window.navigator.language || 'pt_br').replace('-', '_');
164
+
165
+ $translateProvider.use(locale.toLowerCase());
166
+ $translateProvider.useSanitizeValueStrategy('escaped');
167
+
168
+ tmhDynamicLocaleProvider.localeLocationPattern('node_modules/angular-i18n/angular-locale_{{locale}}.js');
169
+ })
170
+
171
+ .directive('crnValue', ['$parse', function($parse) {
172
+ return {
173
+ restrict: 'A',
174
+ require: '^ngModel',
175
+ link: function(scope, element, attr, ngModel) {
176
+ var evaluatedValue;
177
+ if (attr.value) {
178
+ evaluatedValue = attr.value;
179
+ } else {
180
+ evaluatedValue = $parse(attr.crnValue)(scope);
181
+ }
182
+ element.attr("data-evaluated", JSON.stringify(evaluatedValue));
183
+ element.bind("click", function(event) {
184
+ scope.$apply(function() {
185
+ ngModel.$setViewValue(evaluatedValue);
186
+ }.bind(element));
187
+ });
188
+ }
189
+ };
190
+ }])
191
+ .decorator("$xhrFactory", [
192
+ "$delegate", "$injector",
193
+ function($delegate, $injector) {
194
+ return function(method, url) {
195
+ var xhr = $delegate(method, url);
196
+ var $http = $injector.get("$http");
197
+ var callConfig = $http.pendingRequests[$http.pendingRequests.length - 1];
198
+ if (angular.isFunction(callConfig.onProgress))
199
+ xhr.upload.addEventListener("progress",callConfig.onProgress);
200
+ return xhr;
201
+ };
202
+ }
203
+ ])
204
+ // General controller
205
+ .controller('PageController', ["$scope", "$stateParams", "Notification", "$location", "$http", "$rootScope", "$ionicModal", "$translate", function($scope, $stateParams, Notification, $location, $http, $rootScope, $ionicModal, $translate) {
206
+
207
+ app.registerEventsCronapi($scope, $translate, $ionicModal);
208
+ $rootScope.http = $http;
209
+ $scope.Notification = Notification;
210
+
211
+ for (var x in app.userEvents)
212
+ $scope[x] = app.userEvents[x].bind($scope);
213
+
214
+ // save state params into scope
215
+ $scope.params = $stateParams;
216
+ $scope.$http = $http;
217
+
218
+ // Query string params
219
+ var queryStringParams = $location.search();
220
+ for (var key in queryStringParams) {
221
+ if (queryStringParams.hasOwnProperty(key)) {
222
+ $scope.params[key] = queryStringParams[key];
223
+ }
224
+ }
225
+ registerComponentScripts();
226
+ try {
227
+ var contextAfterPageController = $controller('AfterPageController', { $scope: $scope });
228
+ app.copyContext(contextAfterPageController, this, 'AfterPageController');
229
+ } catch(e) {};
230
+ }])
231
+
232
+ .run(function($rootScope, $state) {
233
+ $rootScope.$on('$stateChangeError', function() {
234
+ if (arguments.length >= 6) {
235
+ var requestObj = arguments[5];
236
+ if (requestObj.status === 404 || requestObj.status === 403) {
237
+ $state.go(requestObj.status.toString());
238
+ }
239
+ } else {
240
+ $state.go('404');
241
+ }
242
+ });
243
+
244
+ $rootScope.$on('$stateChangeSuccess', function() {
245
+ setTimeout(function() {
246
+
247
+ $($('.icon.ion-plus-round').parent()).off('click');
248
+ $($('.icon.ion-plus-round').parent()).on('click',function() {
249
+ $('[required]').removeClass('input-validation-error');
250
+ $('input:invalid').removeClass('input-validation-error');
251
+ });
252
+
253
+ $($('.icon.ion-checkmark').parent()).off('click');
254
+ $($('.icon.ion-checkmark').parent()).on('click',function() {
255
+ $('[required].ng-invalid-required, [required].ng-invalid, [required].ng-empty').addClass('input-validation-error');
256
+ $('input:invalid').addClass('input-validation-error');
257
+ });
258
+
259
+ $('input').off('keydown')
260
+ $('input').on('keydown', function() {
261
+ $(this).removeClass('input-validation-error');
262
+ });
263
+
264
+ }, 300);
265
+
266
+ });
267
+ setInterval(() => $('ion-nav-view[name="menuContent"] .button.button-clear.hide').removeClass('hide'), 300);
268
+
269
+ });
270
+
271
+ }(window));
272
+
273
+ app.userEvents = {};
274
+
275
+ //Configuration
276
+ app.config = {};
277
+ app.config.datasourceApiVersion = 2;
278
+ app.config.defaultRoute = "/app";
279
+
280
+ app.bindScope = function($scope, obj) {
281
+ var newObj = {};
282
+
283
+ for (var x in obj) {
284
+ // var name = parentName+'.'+x;
285
+ // console.log(name);
286
+ if (typeof obj[x] == 'string' || typeof obj[x] == 'boolean')
287
+ newObj[x] = obj[x];
288
+ else if (typeof obj[x] == 'function')
289
+ newObj[x] = obj[x].bind($scope);
290
+ else {
291
+ newObj[x] = app.bindScope($scope, obj[x]);
292
+ }
293
+ }
294
+
295
+ return newObj;
296
+ };
297
+
298
+ app.registerEventsCronapi = function($scope, $translate,$ionicModal) {
299
+ for (var x in app.userEvents)
300
+ $scope[x] = app.userEvents[x].bind($scope);
301
+
302
+ $scope.vars = {};
303
+ $scope.$evt = $evt;
304
+
305
+ try {
306
+ if (cronapi) {
307
+ $scope['cronapi'] = app.bindScope($scope, cronapi);
308
+ $scope['cronapi'].$scope = $scope;
309
+ $scope['cronapi'].$scope.$ionicModal = $ionicModal;
310
+ $scope.safeApply = safeApply;
311
+ if ($translate) {
312
+ $scope['cronapi'].$translate = $translate;
313
+ }
314
+ }
315
+ } catch (e) {
316
+ console.info('Not loaded cronapi functions');
317
+ console.info(e);
318
+ }
319
+ try {
320
+ if (blockly) {
321
+ blockly.cronapi = cronapi;
322
+ $scope['blockly'] = app.bindScope($scope, blockly);
323
+ }
324
+ } catch (e) {
325
+ console.info('Not loaded blockly functions');
326
+ console.info(e);
327
+ }
328
+ };
329
+
330
+ window.safeApply = function(fn) {
331
+ var phase = this.$root.$$phase;
332
+ if (phase == '$apply' || phase == '$digest') {
333
+ if (fn && (typeof(fn) === 'function')) {
334
+ fn();
335
+ }
336
+ } else {
337
+ this.$apply(fn);
338
+ }
339
+ };
340
+
341
+ //Components personalization jquery
342
+ var registerComponentScripts = function() {
343
+ //carousel slider
344
+ $('.carousel-indicators li').on('click', function() {
345
+ var currentCarousel = '#' + $(this).parent().parent().parent().attr('id');
346
+ var index = $(currentCarousel + ' .carousel-indicators li').index(this);
347
+ $(currentCarousel + ' #carousel-example-generic').carousel(index);
348
+ });
349
+ }
@@ -0,0 +1,540 @@
1
+ (function($app) {
2
+ angular.module('custom.controllers', []);
3
+
4
+ app.controller('LoginController', [
5
+ '$scope',
6
+ '$http',
7
+ '$location',
8
+ '$rootScope',
9
+ '$window',
10
+ '$state',
11
+ '$translate',
12
+ 'Notification',
13
+ 'ReportService',
14
+ '$ionicLoading',
15
+ '$timeout',
16
+ '$stateParams',
17
+ '$ionicModal',
18
+ '$cookies',
19
+ function($scope, $http, $location, $rootScope, $window, $state, $translate, Notification, ReportService, $ionicLoading, $timeout, $stateParams, $ionicModal, $cookies) {
20
+
21
+ // Make refreshToken method available on $rootScope
22
+ $rootScope.refreshToken = window.refreshToken;
23
+
24
+ app.registerEventsCronapi($scope, $translate,$ionicModal, $ionicLoading);
25
+ $rootScope.http = $http;
26
+ $scope.Notification = Notification;
27
+ // save state params into scope
28
+ $scope.params = $stateParams;
29
+
30
+ $rootScope.getReport = function(reportName, params, config) {
31
+ ReportService.openReport(reportName, params, config);
32
+ };
33
+
34
+ // Query string params
35
+ let queryStringParams = $location.search();
36
+ for (let key in queryStringParams) {
37
+ if (queryStringParams.hasOwnProperty(key)) {
38
+ $scope.params[key] = queryStringParams[key];
39
+ }
40
+ }
41
+
42
+ for(let x in app.userEvents) {
43
+ if (app.userEvents.hasOwnProperty(x)) {
44
+ $scope[x] = app.userEvents[x].bind($scope);
45
+ }
46
+ }
47
+
48
+ $scope.redirectToLogin = function() {
49
+ localStorage.setItem('redir_mob', true);
50
+ $window.location.href = '/login';
51
+ };
52
+
53
+ $scope.autoLogin = function(){
54
+ if(localStorage.getItem('_u') && JSON.parse(localStorage.getItem('_u')).token){
55
+ window.refreshToken(Notification, $http, function(){
56
+ $state.go("app.home");
57
+ }, function(){
58
+ localStorage.removeItem('_u');
59
+ })
60
+ }
61
+ };
62
+ $scope.autoLogin();
63
+ if ($cookies.get('_u')) {
64
+ if (!localStorage.getItem('_u')) {
65
+ var decodedUser = decodeURIComponent($cookies.get('_u'));
66
+ localStorage.setItem("_u", decodedUser);
67
+ }
68
+ // Redirect to home page
69
+ $state.go("app.home");
70
+ }
71
+ $scope.user = { username : "" , password : "" };
72
+ $scope.message = {};
73
+
74
+ $scope.login = function(username, password, token) {
75
+ $scope.message.error = undefined;
76
+
77
+ let user = {
78
+ username : username?username:$scope.user.username,
79
+ password : password?password:$scope.user.password
80
+ };
81
+
82
+ let headerValues = {
83
+ 'Content-Type' : 'application/x-www-form-urlencoded'
84
+ };
85
+
86
+ if (token) {
87
+ headerValues["X-AUTH-TOKEN"] = token;
88
+ }
89
+
90
+ if(window.hostApp) {
91
+ $http({
92
+ method : 'POST',
93
+ url : window.hostApp + 'auth',
94
+ data: $.param(user),
95
+ headers: headerValues
96
+ }).success(handleSuccess).error(handleError);
97
+
98
+ }
99
+ else {
100
+ Notification.error("HostApp is required!");
101
+ }
102
+ };
103
+
104
+ $rootScope.infiniteReached = function() {
105
+ //
106
+ };
107
+
108
+ function handleSuccess(data, status, headers, config) {
109
+ // Store data response on session storage
110
+ // The session storage will be cleaned when the browser window is closed
111
+ if(typeof (Storage) !== "undefined") {
112
+ // save the user data on localStorage
113
+ localStorage.setItem('_u', JSON.stringify(data));
114
+ }
115
+ else {
116
+ // Sorry! No Web Storage support.
117
+ // The home page may not work if it depends
118
+ // on the logged user data
119
+ }
120
+
121
+ // Redirect to home page
122
+ $state.go("app.home");
123
+
124
+ // Verify if the 'onLogin' event is defined and it is a function (it can be a string pointing to a non project blockly) and run it.
125
+ if ($scope.blockly && $scope.blockly.events && $scope.blockly.events.onLogin && $scope.blockly.events.onLogin instanceof Function) {
126
+ $scope.blockly.events.onLogin();
127
+ }
128
+ }
129
+
130
+ function handleError(data, status, headers, config) {
131
+ let error;
132
+ if (data !== null && data.message) {
133
+ let message = JSON.parse(data.message);
134
+ error = message.exception
135
+ } else if (typeof data === 'string') {
136
+ error = data;
137
+ } else {
138
+ error = $translate.instant('General.ErrorNotSpecified');
139
+ }
140
+ Notification.error(error);
141
+ }
142
+
143
+ try {
144
+ let contextAfterLoginController = $controller('AfterLoginController', { $scope: $scope });
145
+ app.copyContext(contextAfterLoginController, this, 'AfterLoginController');
146
+ } catch(e) {}
147
+
148
+ $timeout(function () {
149
+ // Verify if the 'afterLoginRender' event is defined and it is a function (it can be a string pointing to a non project blockly) and run it.
150
+ if ($scope.blockly && $scope.blockly.events && $scope.blockly.events.afterLoginRender && $scope.blockly.events.afterLoginRender instanceof Function) {
151
+ $scope.blockly.events.afterLoginRender();
152
+ }
153
+ });
154
+
155
+ } ]);
156
+
157
+ app.controller('HomeController', [
158
+ '$scope',
159
+ '$http',
160
+ '$rootScope',
161
+ '$state',
162
+ '$timeout',
163
+ '$translate',
164
+ 'Notification',
165
+ '$ionicHistory',
166
+ '$ionicModal',
167
+ '$ionicLoading',
168
+ '$stateParams',
169
+ '$location',
170
+ '$controller',
171
+ 'UploadService',
172
+ 'ReportService',
173
+ function($scope, $http, $rootScope, $state, $timeout, $translate, Notification, $ionicHistory, $ionicModal, $ionicLoading, $stateParams, $location, $controller, UploadService, ReportService) {
174
+
175
+ app.registerEventsCronapi($scope, $translate,$ionicModal,$ionicLoading);
176
+ $rootScope.http = $http;
177
+ $rootScope.Notification = Notification;
178
+ $rootScope.UploadService = UploadService;
179
+
180
+ // save state params into scope
181
+ $scope.params = $stateParams;
182
+
183
+ $rootScope.getReport = function(reportName, params, config) {
184
+ ReportService.openReport(reportName, params, config);
185
+ };
186
+
187
+ // Query string params
188
+ let queryStringParams = $location.search();
189
+ for (let key in queryStringParams) {
190
+ if (queryStringParams.hasOwnProperty(key)) {
191
+ $scope.params[key] = queryStringParams[key];
192
+ }
193
+ }
194
+
195
+ for(let x in app.userEvents) {
196
+ if (app.userEvents.hasOwnProperty(x)) {
197
+ $scope[x] = app.userEvents[x].bind($scope);
198
+ }
199
+ }
200
+
201
+ // When access home page we have to check
202
+ // if the user is authenticated and the userData
203
+ // was saved on the browser's sessionStorage
204
+ $rootScope.session = (localStorage._u) ? JSON.parse(localStorage._u) : null;
205
+
206
+ if(!$rootScope.session) {
207
+
208
+ if(!$scope.ignoreAuth){
209
+ if(typeof (Storage) !== "undefined") {
210
+ // save the user data on localStorage
211
+ sessionStorage.removeItem("_u");
212
+ }
213
+ $state.go("login");
214
+ }
215
+ // If there isn't a user registered on the sessionStorage
216
+ // we must send back to login page
217
+ // TODO - REVISAR login oauth2
218
+ }else {
219
+ if ($rootScope.session.token) window.refreshToken(Notification, $http, function(){}, $rootScope.logout);
220
+ }
221
+
222
+ try {
223
+ var contextAfterHomeController = $controller('AfterHomeController', { $scope: $scope });
224
+ app.copyContext(contextAfterHomeController, this, 'AfterHomeController');
225
+ } catch(e) {}
226
+
227
+ $timeout(function () {
228
+ // Verify if the 'afterHomeRender' event is defined and it is a function (it can be a string pointing to a non project blockly) and run it.
229
+ if ($scope.blockly && $scope.blockly.events && $scope.blockly.events.afterHomeRender && $scope.blockly.events.afterHomeRender instanceof Function) {
230
+ $scope.blockly.events.afterHomeRender();
231
+ }
232
+ });
233
+
234
+ } ]);
235
+
236
+ app.controller('PublicController', function($controller, $scope) {
237
+ $scope.ignoreAuth = true;
238
+ angular.extend(this, $controller('HomeController', {
239
+ $scope: $scope
240
+ }));
241
+ });
242
+
243
+ app.controller('MenuController', [
244
+ '$scope',
245
+ '$http',
246
+ '$rootScope',
247
+ '$state',
248
+ '$timeout',
249
+ '$translate',
250
+ 'Notification',
251
+ '$ionicHistory',
252
+ '$ionicModal',
253
+ '$ionicLoading',
254
+ '$cookies',
255
+ function($scope, $http, $rootScope, $state, $timeout, $translate, Notification, $ionicHistory, $ionicModal, $ionicLoading, $cookies) {
256
+
257
+ app.registerEventsCronapi($scope, $translate,$ionicModal,$ionicLoading);
258
+ $rootScope.http = $http;
259
+ $scope.Notification = Notification;
260
+ if (!$scope.isExtendedFromPublic)
261
+ $scope.folder= 'logged';
262
+
263
+ for(let x in app.userEvents)
264
+ $scope[x]= app.userEvents[x].bind($scope);
265
+
266
+ if(!$scope.ignoreAuth){
267
+ $scope.openChangePassword = function() {
268
+ if($scope.modal.modelEl){
269
+ $scope.modal.show();
270
+ }else{
271
+ $http({url:'views/logged/_changepassword.view.html'}).then(function(data){
272
+ $scope.modal = $ionicModal.fromTemplate($(data.data).last().text(), {
273
+ scope: $scope,
274
+ animation: 'slide-in-up'
275
+ });
276
+ $scope.modal.show();
277
+ });
278
+ }
279
+ };
280
+
281
+ $scope.closeChangePassword = function() {
282
+ $scope.modal.hide();
283
+ };
284
+
285
+ $scope.logout = function logout() {
286
+ $rootScope.session = null;
287
+ localStorage.removeItem("_u");
288
+ $cookies.remove('_u', {path: '/'});
289
+ $state.go("login");
290
+ }
291
+ }
292
+
293
+
294
+ $scope.http({
295
+ method:'GET',
296
+ url:'views/'+$scope.folder+'/menu.view.html'
297
+ }).then(function onsuccess(response){
298
+ if($(response.data).find("ion-nav-bar").length > 0){
299
+ $scope.isOldMenu = true;
300
+ if($(document).find("ion-header-bar").length > 0){
301
+ $(document).find("ion-nav-bar").show();
302
+ }
303
+ }else{
304
+ $scope.isOldMenu = false;
305
+ }
306
+ });
307
+ }]);
308
+
309
+ app.controller('PublicMenuController', function($controller, $scope) {
310
+ $scope.folder = 'public';
311
+ $scope.isExtendedFromPublic = true;
312
+ angular.extend(this, $controller('MenuController', {
313
+ $scope: $scope
314
+ }));
315
+ });
316
+
317
+ app.controller('chatController', [
318
+ '$scope',
319
+ '$state',
320
+ '$ionicPopup',
321
+ '$ionicScrollDelegate',
322
+ '$timeout',
323
+ '$interval',
324
+ '$ionicModal',
325
+ '$translate',
326
+ '$rootScope',
327
+ '$http',
328
+ 'Notification',
329
+ function chatController($scope, $state,$ionicPopup, $ionicScrollDelegate, $timeout, $interval, $ionicModal,$translate,$rootScope,$http,Notification ) {
330
+
331
+ app.registerEventsCronapi($scope, $translate,$ionicModal,$ionicLoading);
332
+ $rootScope.http = $http;
333
+ $scope.Notification = Notification;
334
+ for(let x in app.userEvents)
335
+ $scope[x]= app.userEvents[x].bind($scope);
336
+
337
+ let user = JSON.parse(localStorage._u).user.username;
338
+ let viewScroll = $ionicScrollDelegate.$getByHandle('userMessageScroll');
339
+ let footerBar; // gets set in $ionicView.enter
340
+ let scroller;
341
+ let txtInput; // ^^^
342
+ $scope.enter = function () {
343
+ $timeout(function () {
344
+ footerBar = document.body.querySelector('.homeView .bar-footer');
345
+ scroller = document.body.querySelector('.homeView .scroll-content');
346
+ txtInput = angular.element(footerBar.querySelector('textarea'));
347
+ }, 0);
348
+ };
349
+ $scope.isEnter = function(e){
350
+ (e.keyCode === 13) ? $timeout(function(){
351
+ e.stopPropagation();
352
+ $('#sendButton').trigger('click')
353
+ },0): null;
354
+ };
355
+ $scope.refreshScroll = function (scrollBottom, timeout) {
356
+ $timeout(function () {
357
+ scrollBottom = scrollBottom || $scope.scrollDown;
358
+ viewScroll.resize();
359
+ if (scrollBottom) {
360
+ viewScroll.scrollBottom(true);
361
+ }
362
+ $scope.checkScroll();
363
+ }, timeout || 1000);
364
+ };
365
+ $scope.scrollDown = true;
366
+ $scope.checkScroll = function () {
367
+ $timeout(function () {
368
+ let currentTop = viewScroll.getScrollPosition().top;
369
+ let maxScrollableDistanceFromTop = viewScroll.getScrollView().__maxScrollTop;
370
+ $scope.scrollDown = (currentTop >= maxScrollableDistanceFromTop);
371
+ $scope.$apply();
372
+ }, 0);
373
+ return true;
374
+ };
375
+ }
376
+ ]);
377
+
378
+ // General controller
379
+ app.controller('PageController', [
380
+ '$scope',
381
+ '$stateParams',
382
+ 'Notification',
383
+ '$location',
384
+ '$http',
385
+ '$rootScope',
386
+ '$translate',
387
+ '$ionicModal',
388
+ '$ionicLoading',
389
+ '$timeout',
390
+ 'UploadService',
391
+ 'ReportService',
392
+ function($scope, $stateParams, Notification, $location, $http, $rootScope, $translate, $ionicModal, $ionicLoading, $timeout, UploadService, ReportService) {
393
+
394
+ app.registerEventsCronapi($scope, $translate,$ionicModal, $ionicLoading);
395
+
396
+ $rootScope.http = $http;
397
+ $rootScope.Notification = Notification;
398
+
399
+ // save state params into scope
400
+ $scope.params = $stateParams;
401
+ $rootScope.$http = $http;
402
+ $rootScope.UploadService = UploadService;
403
+ $scope.listCanSwipe = true;
404
+
405
+ $rootScope.getReport = function(reportName, params, config) {
406
+ ReportService.openReport(reportName, params, config);
407
+ };
408
+
409
+ // Query string params
410
+ let queryStringParams = $location.search();
411
+ for (let key in queryStringParams) {
412
+ if (queryStringParams.hasOwnProperty(key)) {
413
+ $scope.params[key] = queryStringParams[key];
414
+ }
415
+ }
416
+
417
+ $rootScope.session = (localStorage.getItem('_u') !== undefined) ? JSON.parse(localStorage.getItem('_u')) : null;
418
+
419
+ //Components personalization jquery
420
+ $scope.registerComponentScripts = function() {
421
+ //carousel slider
422
+ $('.carousel-indicators li').on('click', function() {
423
+ let currentCarousel = '#' + $(this).parent().parent().parent().attr('id');
424
+ let index = $(currentCarousel + ' .carousel-indicators li').index(this);
425
+ $(currentCarousel + ' #carousel-example-generic').carousel(index);
426
+ });
427
+ };
428
+
429
+ $scope.registerComponentScripts();
430
+
431
+ if ($scope.isOldMenu) {
432
+ let name = $scope.params.name ||'home';
433
+ $scope.http({
434
+ method: 'GET',
435
+ url: 'views/logged/' + name + '.view.html'
436
+ }).then(function onsuccess(response) {
437
+ if ($(response.data).find("ion-header-bar").length > 0) {
438
+ $(document).find("ion-nav-bar").hide();
439
+ }
440
+ else {
441
+ if ($(document).find("ion-header-bar").length > 0) {
442
+ $(document).find("ion-nav-bar").show();
443
+ }
444
+ }
445
+ });
446
+ }
447
+
448
+ try {
449
+ let contextAfterPageController = $controller('AfterPageController', { $scope: $scope });
450
+ app.copyContext(contextAfterPageController, this, 'AfterPageController');
451
+ } catch(e) {}
452
+
453
+ $timeout(function () {
454
+ // Verify if the 'afterPageRender' event is defined and it is a function (it can be a string pointing to a non project blockly) and run it.
455
+ if ($scope.blockly && $scope.blockly.events && $scope.blockly.events.afterPageRender && $scope.blockly.events.afterPageRender instanceof Function) {
456
+ $scope.blockly.events.afterPageRender();
457
+ }
458
+ });
459
+ }]);
460
+
461
+ // General controller
462
+ app.controller('InitialController', [
463
+ "$scope",
464
+ "$stateParams",
465
+ "$http",
466
+ "Notification",
467
+ "$location",
468
+ "$rootScope",
469
+ "$translate",
470
+ "$ionicModal",
471
+ "$ionicLoading",
472
+ "$ionicPlatform",
473
+ "$controller",
474
+ "$timeout",
475
+ "UploadService",
476
+ "$ionicHistory",
477
+ function($scope, $stateParams, $http, Notification, $location, $rootScope, $translate, $ionicModal, $ionicLoading, $ionicPlatform, $controller, $timeout, UploadService, $ionicHistory) {
478
+
479
+ $ionicPlatform.registerBackButtonAction(function (event) {
480
+ // Reference current history set
481
+ let viewHistory = $ionicHistory.viewHistory();
482
+ if (viewHistory.histories) {
483
+ if (viewHistory.histories && Object.keys(viewHistory.histories).length) {
484
+ if (viewHistory.currentView.stateName === 'app.home') {
485
+ event.preventDefault();
486
+ event.stopPropagation();
487
+ navigator.app.exitApp();
488
+ } else {
489
+ window.history.back();
490
+ }
491
+ }
492
+ }
493
+ }, 101);
494
+
495
+ app.registerEventsCronapi($scope, $translate, $ionicModal, $ionicLoading);
496
+
497
+ $rootScope.http = $http;
498
+ $rootScope.Notification = Notification;
499
+ $rootScope.UploadService = UploadService;
500
+
501
+ // save state params into scope
502
+ $scope.params = $stateParams;
503
+ $scope.$http = $http;
504
+
505
+ // Query string params
506
+ let queryStringParams = $location.search();
507
+ for (let key in queryStringParams) {
508
+ if (queryStringParams.hasOwnProperty(key)) {
509
+ $scope.params[key] = queryStringParams[key];
510
+ }
511
+ }
512
+ $scope.blockly.js.blockly.auth.Home.change();
513
+
514
+ // Due to HomeController is not being used anymore in mobile project inject AfterHomeController here
515
+ try {
516
+ let contextAfterHomeController = $controller('AfterHomeController', {$scope: $scope});
517
+ app.copyContext(contextAfterHomeController, this, 'AfterHomeController');
518
+ } catch (e) {
519
+ }
520
+
521
+ $timeout(function () {
522
+ // Verify if the 'afterHomeRender' event is defined and it is a function (it can be a string pointing to a non project blockly) and run it.
523
+ if ($scope.blockly && $scope.blockly.events && $scope.blockly.events.afterHomeRender && $scope.blockly.events.afterHomeRender instanceof Function) {
524
+ $scope.blockly.events.afterHomeRender();
525
+ }
526
+ });
527
+ }]);
528
+
529
+ }(app));
530
+
531
+ window.safeApply = function(fn) {
532
+ let phase = this.$root.$$phase;
533
+ if (phase === '$apply' || phase === '$digest') {
534
+ if (fn && (typeof(fn) === 'function')) {
535
+ fn();
536
+ }
537
+ } else {
538
+ this.$apply(fn);
539
+ }
540
+ };