cpee 2.0.30 → 2.1.0

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 (330) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/js/instance.js +3 -3
  3. data/cockpit/js/wfadaptor.js +2 -0
  4. data/cockpit/templates.legacy/Async.xml +12 -12
  5. data/cockpit/templates.legacy/BCO.xml +9 -11
  6. data/cockpit/templates.legacy/BCS.xml +9 -11
  7. data/cockpit/templates.legacy/Centurio.xml +7 -7
  8. data/cockpit/templates.legacy/Concurrent.xml +7 -7
  9. data/cockpit/templates.legacy/Coopis Testset.xml +7 -7
  10. data/cockpit/templates.legacy/Endpoints and Data Manipulation.xml +6 -7
  11. data/cockpit/templates.legacy/ICSOC Testset.xml +7 -7
  12. data/cockpit/templates.legacy/Infinity.xml +7 -7
  13. data/cockpit/templates.legacy/Lego Boxer.xml +13 -13
  14. data/cockpit/templates.legacy/Lego Conveyor.xml +13 -13
  15. data/cockpit/templates.legacy/Lego Crane.xml +16 -16
  16. data/cockpit/templates.legacy/Lego Ejector.xml +16 -16
  17. data/cockpit/templates.legacy/Lego Full.xml +12 -12
  18. data/cockpit/templates.legacy/Lego Liddy.xml +13 -13
  19. data/cockpit/templates.legacy/Lego Plate.xml +13 -13
  20. data/cockpit/templates.legacy/Lego Transporter.xml +14 -14
  21. data/cockpit/templates.legacy/Lego_Part_1.xml +12 -12
  22. data/cockpit/templates.legacy/LgLinear.xml +7 -10
  23. data/cockpit/templates.legacy/Linear.xml +11 -14
  24. data/cockpit/templates.legacy/Log.xml +11 -12
  25. data/cockpit/templates.legacy/Mangler 1.xml +7 -7
  26. data/cockpit/templates.legacy/Mangler 2.xml +7 -7
  27. data/cockpit/templates.legacy/Manuel Labels.xml +11 -11
  28. data/cockpit/templates.legacy/Promise.xml +30 -30
  29. data/cockpit/templates.legacy/SOPROMO Test Sonification.xml +7 -7
  30. data/cockpit/templates.legacy/Subprocess.xml +15 -15
  31. data/cockpit/templates.legacy/Syncing P34 1.xml +8 -11
  32. data/cockpit/templates.legacy/Syncing P34 2.xml +8 -11
  33. data/cockpit/templates.legacy/Syncing P34 3.xml +8 -11
  34. data/cockpit/templates.legacy/Syncing P34.xml +8 -11
  35. data/cockpit/templates.legacy/TEST - Bad Loop.xml +7 -7
  36. data/cockpit/templates.legacy/TEST - Wrong Positions.xml +7 -7
  37. data/cockpit/templates.legacy/Take_5.xml +14 -14
  38. data/cockpit/templates.legacy/Update.xml +11 -11
  39. data/cockpit/templates.legacy/Worklist Parallel.xml +17 -17
  40. data/cockpit/templates.legacy/Worklist Test CPEE.xml +14 -14
  41. data/cockpit/templates.legacy/Worklist Test.xml +14 -14
  42. data/cockpit/templates.legacy/Worklist Test2.xml +14 -14
  43. data/cockpit/templates/Coopis 2010.xml +8 -8
  44. data/cockpit/templates/IUPC arXiv:1104.3609 P34 1.xml +8 -11
  45. data/cockpit/templates/IUPC arXiv:1104.3609 P34 2.xml +8 -11
  46. data/cockpit/templates/IUPC arXiv:1104.3609 P34 3.xml +8 -11
  47. data/cockpit/templates/Track Test Local.xml +2 -2
  48. data/cockpit/templates/Track Test.xml +1 -1
  49. data/cockpit/templates/UR-VUE 2020 Manual Adjust.xml +1 -1
  50. data/cockpit/templates/UR-VUE 2020 Solution Baseline.xml +1 -1
  51. data/cockpit/templates/UR-VUE 2020 Solution NN.xml +1 -1
  52. data/cockpit/templates/UR-VUE 2020 Solution View.xml +1 -1
  53. data/cockpit/templates/UR-VUE 2020.xml +1 -1
  54. data/cockpit/templates/Worklist.xml +14 -14
  55. data/cockpit/templates/instantiate.local/Take_Sub.xml +2 -2
  56. data/cockpit/templates/instantiate/Take_Perf.xml +1 -1
  57. data/cockpit/templates/instantiate/Take_Sub.xml +2 -2
  58. data/cockpit/templates/instantiate/Take_X.xml +2 -2
  59. data/cockpit/themes/compact/rngs/start.rng +83 -0
  60. data/cockpit/themes/compact/symbols/start.svg +1 -1
  61. data/cockpit/themes/control/rngs/start.rng +83 -0
  62. data/cockpit/themes/control/symbols/start.svg +1 -1
  63. data/cockpit/themes/default/rngs/start.rng +83 -0
  64. data/cockpit/themes/default/symbols/start.svg +1 -1
  65. data/cockpit/themes/default/theme.js +1 -1
  66. data/cockpit/themes/extended/rngs/start.rng +83 -0
  67. data/cockpit/themes/extended/symbols/start.svg +1 -1
  68. data/cockpit/themes/model/symbols/start.svg +1 -1
  69. data/cockpit/themes/packed/rngs/start.rng +83 -0
  70. data/cockpit/themes/packed/symbols/start.svg +1 -1
  71. data/cockpit/themes/preset/rngs/start.rng +83 -0
  72. data/cockpit/themes/preset/symbols/start.svg +1 -1
  73. data/cockpit/themes/preset/theme.js +1 -1
  74. data/cpee.gemspec +2 -2
  75. data/lib/cpee/attributes_helper.rb +14 -0
  76. data/lib/cpee/implementation.rb +10 -8
  77. data/lib/cpee/implementation_callbacks.rb +14 -0
  78. data/lib/cpee/implementation_notifications.rb +14 -0
  79. data/lib/cpee/implementation_properties.rb +128 -24
  80. data/lib/cpee/persistence.rb +0 -27
  81. data/lib/cpee/statemachine.rb +14 -0
  82. data/lib/cpee/value_helper.rb +14 -0
  83. data/lib/properties.xml +4 -4
  84. data/lib/properties/{handlerwrapper.rng → executionhandler.rng} +2 -2
  85. data/lib/properties/properties.rng +2 -2
  86. data/lib/properties/set-properties.rng +2 -2
  87. data/lib/properties/set-some-properties.rng +2 -2
  88. data/server/{resources → executionhandlers/ruby}/backend/README.md +0 -0
  89. data/server/{resources → executionhandlers/ruby}/backend/instance.template +2 -4
  90. data/server/{resources → executionhandlers/ruby}/backend/opts.yaml +2 -2
  91. data/server/executionhandlers/ruby/backend/run +37 -0
  92. data/server/{handlerwrappers/default.rb → executionhandlers/ruby/connection.rb} +3 -3
  93. data/server/executionhandlers/ruby/controller.rb +195 -0
  94. data/server/{resources/transformation_dslx.xsl → executionhandlers/ruby/dsl_to_dslx.xsl} +53 -8
  95. data/server/executionhandlers/ruby/execution.rb +81 -0
  96. data/server/resources/properties.empty +1 -1
  97. data/server/resources/properties.init +1 -1
  98. data/server/resources/topics.xml +2 -2
  99. data/server/routing/persist.rb +3 -3
  100. data/tools/cpee +9 -3
  101. data/tools/server/cpee +1 -1
  102. data/tools/server/resources/properties.init +1 -1
  103. metadata +19 -237
  104. data/cockpit/templates.legacy/convert_cpee2.rb +0 -15
  105. data/lib/cpee/controller.rb +0 -199
  106. data/lib/cpee/transform.rb +0 -95
  107. data/server/resources/backend/instance.rb +0 -23
  108. data/server/resources/backend/run +0 -33
  109. data/server/routing/end.pid +0 -1
  110. data/server/routing/forward-events.pid +0 -1
  111. data/server/routing/forward-votes.pid +0 -1
  112. data/server/routing/persist.pid +0 -1
  113. data/server/server.pid +0 -1
  114. data/tools/test/README +0 -4
  115. data/tools/test/config.json +0 -3
  116. data/tools/test/contrib/graph_example.svg +0 -1166
  117. data/tools/test/contrib/legend.svg +0 -817
  118. data/tools/test/contrib/symbols.svg +0 -224
  119. data/tools/test/contrib/transformation1.xsl +0 -264
  120. data/tools/test/contrib/transformation2.xsl +0 -10
  121. data/tools/test/contrib/tree_example.svg +0 -788
  122. data/tools/test/css/model.css +0 -24
  123. data/tools/test/css/track.css +0 -60
  124. data/tools/test/css/ui.css +0 -214
  125. data/tools/test/css/wfadaptor.css +0 -422
  126. data/tools/test/edit.html +0 -258
  127. data/tools/test/graph.html +0 -69
  128. data/tools/test/index.html +0 -258
  129. data/tools/test/js/details.js +0 -109
  130. data/tools/test/js/instance.js +0 -1344
  131. data/tools/test/js/model.js +0 -41
  132. data/tools/test/js/parameters.js +0 -82
  133. data/tools/test/js/track.js +0 -18
  134. data/tools/test/js/ui.js +0 -104
  135. data/tools/test/js/wfadaptor.js +0 -763
  136. data/tools/test/js_libs.zip +0 -0
  137. data/tools/test/js_libs/Makefile +0 -2
  138. data/tools/test/js_libs/ansi_up.js +0 -333
  139. data/tools/test/js_libs/console.js +0 -80
  140. data/tools/test/js_libs/custommenu.css +0 -84
  141. data/tools/test/js_libs/custommenu.js +0 -104
  142. data/tools/test/js_libs/experiments1/relaxngui.css +0 -185
  143. data/tools/test/js_libs/experiments1/relaxngui.js +0 -488
  144. data/tools/test/js_libs/experiments1/rngtest9.html +0 -60
  145. data/tools/test/js_libs/experiments1/rngtest9.rng +0 -35
  146. data/tools/test/js_libs/experiments1/rngtest9.xml +0 -8
  147. data/tools/test/js_libs/jquery-2.2.4.min.js +0 -4
  148. data/tools/test/js_libs/jquery-3.2.1.min.js +0 -4
  149. data/tools/test/js_libs/jquery-3.3.1.min.js +0 -2
  150. data/tools/test/js_libs/jquery.browser.js +0 -40
  151. data/tools/test/js_libs/jquery.caret.min.js +0 -10
  152. data/tools/test/js_libs/jquery.cookie.js +0 -117
  153. data/tools/test/js_libs/jquery.min.js +0 -1
  154. data/tools/test/js_libs/jquery.svg.min.js +0 -6
  155. data/tools/test/js_libs/jquery.svgdom.min.js +0 -6
  156. data/tools/test/js_libs/markdown.min.js +0 -1
  157. data/tools/test/js_libs/parsequery.js +0 -21
  158. data/tools/test/js_libs/printf.js +0 -368
  159. data/tools/test/js_libs/relaxngui.css +0 -213
  160. data/tools/test/js_libs/relaxngui.js +0 -543
  161. data/tools/test/js_libs/strftime.min.js +0 -1
  162. data/tools/test/js_libs/tests/dataelements.html +0 -59
  163. data/tools/test/js_libs/tests/dataelements.rng +0 -8
  164. data/tools/test/js_libs/tests/dataelements.xml +0 -3
  165. data/tools/test/js_libs/tests/relaxngui.css +0 -203
  166. data/tools/test/js_libs/tests/relaxngui.js +0 -502
  167. data/tools/test/js_libs/tests/rngtest1.html +0 -66
  168. data/tools/test/js_libs/tests/rngtest1.rng +0 -147
  169. data/tools/test/js_libs/tests/rngtest1.xml +0 -13
  170. data/tools/test/js_libs/tests/rngtest2.html +0 -60
  171. data/tools/test/js_libs/tests/rngtest2.rng +0 -6
  172. data/tools/test/js_libs/tests/rngtest2.xml +0 -3
  173. data/tools/test/js_libs/tests/rngtest3.html +0 -60
  174. data/tools/test/js_libs/tests/rngtest3.rng +0 -23
  175. data/tools/test/js_libs/tests/rngtest3.xml +0 -9
  176. data/tools/test/js_libs/tests/rngtest4.html +0 -60
  177. data/tools/test/js_libs/tests/rngtest4.rng +0 -19
  178. data/tools/test/js_libs/tests/rngtest4.xml +0 -12
  179. data/tools/test/js_libs/tests/rngtest5.html +0 -60
  180. data/tools/test/js_libs/tests/rngtest5.rng +0 -75
  181. data/tools/test/js_libs/tests/rngtest5.xml +0 -40
  182. data/tools/test/js_libs/tests/rngtest6.html +0 -60
  183. data/tools/test/js_libs/tests/rngtest6.rng +0 -24
  184. data/tools/test/js_libs/tests/rngtest6.xml +0 -6
  185. data/tools/test/js_libs/tests/rngtest8.html +0 -60
  186. data/tools/test/js_libs/tests/rngtest8.rng +0 -13
  187. data/tools/test/js_libs/tests/rngtest8.xml +0 -2
  188. data/tools/test/js_libs/tests/rngtest9.html +0 -60
  189. data/tools/test/js_libs/tests/rngtest9.rng +0 -31
  190. data/tools/test/js_libs/tests/rngtest9.xml +0 -8
  191. data/tools/test/js_libs/ui.css +0 -333
  192. data/tools/test/js_libs/ui.html +0 -168
  193. data/tools/test/js_libs/ui.js +0 -177
  194. data/tools/test/js_libs/underscore.min.js +0 -27
  195. data/tools/test/js_libs/util.js +0 -81
  196. data/tools/test/js_libs/vkbeautify.0.99.00.beta.js +0 -358
  197. data/tools/test/js_libs/vkbeautify.js +0 -1
  198. data/tools/test/js_libs/webcomponents.min.js +0 -196
  199. data/tools/test/model.html +0 -192
  200. data/tools/test/rngs/attributes.rng +0 -8
  201. data/tools/test/rngs/dataelements.rng +0 -8
  202. data/tools/test/rngs/endpoints.rng +0 -8
  203. data/tools/test/templates.legacy/Async.xml +0 -46
  204. data/tools/test/templates.legacy/BCO.xml +0 -70
  205. data/tools/test/templates.legacy/BCS.xml +0 -70
  206. data/tools/test/templates.legacy/Centurio.xml +0 -75
  207. data/tools/test/templates.legacy/Concurrent.xml +0 -40
  208. data/tools/test/templates.legacy/Coopis Testset.xml +0 -76
  209. data/tools/test/templates.legacy/Endpoints and Data Manipulation.xml +0 -30
  210. data/tools/test/templates.legacy/ICSOC Testset.xml +0 -95
  211. data/tools/test/templates.legacy/Infinity.xml +0 -28
  212. data/tools/test/templates.legacy/Lego Boxer.xml +0 -31
  213. data/tools/test/templates.legacy/Lego Conveyor.xml +0 -31
  214. data/tools/test/templates.legacy/Lego Crane.xml +0 -87
  215. data/tools/test/templates.legacy/Lego Ejector.xml +0 -55
  216. data/tools/test/templates.legacy/Lego Full.xml +0 -142
  217. data/tools/test/templates.legacy/Lego Liddy.xml +0 -40
  218. data/tools/test/templates.legacy/Lego Plate.xml +0 -31
  219. data/tools/test/templates.legacy/Lego Transporter.xml +0 -43
  220. data/tools/test/templates.legacy/Lego_Part_1.xml +0 -85
  221. data/tools/test/templates.legacy/LgLinear.xml +0 -65
  222. data/tools/test/templates.legacy/Linear.xml +0 -77
  223. data/tools/test/templates.legacy/Log.xml +0 -117
  224. data/tools/test/templates.legacy/Mangler 1.xml +0 -87
  225. data/tools/test/templates.legacy/Mangler 2.xml +0 -103
  226. data/tools/test/templates.legacy/Manuel Labels.xml +0 -55
  227. data/tools/test/templates.legacy/Promise.xml +0 -275
  228. data/tools/test/templates.legacy/SOPROMO Test Sonification.xml +0 -83
  229. data/tools/test/templates.legacy/Subprocess.xml +0 -56
  230. data/tools/test/templates.legacy/Syncing P34 1.xml +0 -77
  231. data/tools/test/templates.legacy/Syncing P34 2.xml +0 -77
  232. data/tools/test/templates.legacy/Syncing P34 3.xml +0 -77
  233. data/tools/test/templates.legacy/Syncing P34.xml +0 -77
  234. data/tools/test/templates.legacy/TEST - Bad Loop.xml +0 -173
  235. data/tools/test/templates.legacy/TEST - Wrong Positions.xml +0 -174
  236. data/tools/test/templates.legacy/Take_5.xml +0 -48
  237. data/tools/test/templates.legacy/Update.xml +0 -32
  238. data/tools/test/templates.legacy/Worklist Parallel.xml +0 -104
  239. data/tools/test/templates.legacy/Worklist Test CPEE.xml +0 -40
  240. data/tools/test/templates.legacy/Worklist Test.xml +0 -42
  241. data/tools/test/templates.legacy/Worklist Test2.xml +0 -43
  242. data/tools/test/templates.legacy/convert_cpee2.rb +0 -15
  243. data/tools/test/templates.legacy/convert_preset.rb +0 -32
  244. data/tools/test/templates.legacy/testsets.xml +0 -37
  245. data/tools/test/templates.legacy/transformations.xml +0 -4
  246. data/tools/test/templates/Coopis 2010.xml +0 -76
  247. data/tools/test/templates/IUPC arXiv:1104.3609 P34 1.xml +0 -77
  248. data/tools/test/templates/IUPC arXiv:1104.3609 P34 2.xml +0 -77
  249. data/tools/test/templates/IUPC arXiv:1104.3609 P34 3.xml +0 -77
  250. data/tools/test/templates/Track Test Local.xml +0 -82
  251. data/tools/test/templates/Track Test.xml +0 -82
  252. data/tools/test/templates/UR-VUE 2020 Manual Adjust.xml +0 -182
  253. data/tools/test/templates/UR-VUE 2020 Solution Baseline.xml +0 -203
  254. data/tools/test/templates/UR-VUE 2020 Solution NN.xml +0 -197
  255. data/tools/test/templates/UR-VUE 2020 Solution View.xml +0 -151
  256. data/tools/test/templates/UR-VUE 2020.xml +0 -26
  257. data/tools/test/templates/Worklist.xml +0 -42
  258. data/tools/test/templates/instantiate.local/Take_Sub.xml +0 -59
  259. data/tools/test/templates/instantiate/Take_Perf.xml +0 -46
  260. data/tools/test/templates/instantiate/Take_Sub.xml +0 -58
  261. data/tools/test/templates/instantiate/Take_X.xml +0 -48
  262. data/tools/test/themes/compact/theme.js +0 -1285
  263. data/tools/test/themes/diana/theme.js +0 -1650
  264. data/tools/test/themes/extended/theme.js +0 -1325
  265. data/tools/test/themes/model/rngs/alternative.rng +0 -1
  266. data/tools/test/themes/model/rngs/call.rng +0 -67
  267. data/tools/test/themes/model/rngs/callmanipulate.rng +0 -72
  268. data/tools/test/themes/model/rngs/choose.rng +0 -1
  269. data/tools/test/themes/model/rngs/critical.rng +0 -1
  270. data/tools/test/themes/model/rngs/escape.rng +0 -1
  271. data/tools/test/themes/model/rngs/group.rng +0 -1
  272. data/tools/test/themes/model/rngs/loop.rng +0 -1
  273. data/tools/test/themes/model/rngs/manipulate.rng +0 -1
  274. data/tools/test/themes/model/rngs/otherwise.rng +0 -1
  275. data/tools/test/themes/model/rngs/parallel.rng +0 -1
  276. data/tools/test/themes/model/rngs/parallel_branch.rng +0 -1
  277. data/tools/test/themes/model/rngs/scripts.rng +0 -7
  278. data/tools/test/themes/model/rngs/stop.rng +0 -1
  279. data/tools/test/themes/model/rngs/terminate.rng +0 -1
  280. data/tools/test/themes/model/theme.js +0 -1268
  281. data/tools/test/themes/packed/theme.js +0 -1286
  282. data/tools/test/themes/preset/rngs/alternative.rng +0 -25
  283. data/tools/test/themes/preset/rngs/call.rng +0 -122
  284. data/tools/test/themes/preset/rngs/callmanipulate.rng +0 -145
  285. data/tools/test/themes/preset/rngs/choose.rng +0 -14
  286. data/tools/test/themes/preset/rngs/closed_loop.rng +0 -62
  287. data/tools/test/themes/preset/rngs/closed_loop_cancel.rng +0 -5
  288. data/tools/test/themes/preset/rngs/closed_loop_control.rng +0 -31
  289. data/tools/test/themes/preset/rngs/closed_loop_measuring.rng +0 -12
  290. data/tools/test/themes/preset/rngs/critical.rng +0 -5
  291. data/tools/test/themes/preset/rngs/escape.rng +0 -1
  292. data/tools/test/themes/preset/rngs/group.rng +0 -3
  293. data/tools/test/themes/preset/rngs/loop.rng +0 -22
  294. data/tools/test/themes/preset/rngs/manipulate.rng +0 -9
  295. data/tools/test/themes/preset/rngs/otherwise.rng +0 -22
  296. data/tools/test/themes/preset/rngs/parallel.rng +0 -21
  297. data/tools/test/themes/preset/rngs/parallel_branch.rng +0 -8
  298. data/tools/test/themes/preset/rngs/scripts.rng +0 -23
  299. data/tools/test/themes/preset/rngs/stop.rng +0 -5
  300. data/tools/test/themes/preset/rngs/terminate.rng +0 -1
  301. data/tools/test/themes/preset/symbols/alternative.svg +0 -5
  302. data/tools/test/themes/preset/symbols/arrow.svg +0 -3
  303. data/tools/test/themes/preset/symbols/call.svg +0 -6
  304. data/tools/test/themes/preset/symbols/callmanipulate.svg +0 -8
  305. data/tools/test/themes/preset/symbols/choose.svg +0 -5
  306. data/tools/test/themes/preset/symbols/choose_exclusive.svg +0 -5
  307. data/tools/test/themes/preset/symbols/choose_inclusive.svg +0 -4
  308. data/tools/test/themes/preset/symbols/closed_loop.svg +0 -5
  309. data/tools/test/themes/preset/symbols/closed_loop_cancel.svg +0 -5
  310. data/tools/test/themes/preset/symbols/closed_loop_control.svg +0 -5
  311. data/tools/test/themes/preset/symbols/closed_loop_measuring.svg +0 -6
  312. data/tools/test/themes/preset/symbols/complex.svg +0 -8
  313. data/tools/test/themes/preset/symbols/critical.svg +0 -4
  314. data/tools/test/themes/preset/symbols/end.svg +0 -3
  315. data/tools/test/themes/preset/symbols/escape.svg +0 -5
  316. data/tools/test/themes/preset/symbols/event_end.svg +0 -3
  317. data/tools/test/themes/preset/symbols/loop.svg +0 -5
  318. data/tools/test/themes/preset/symbols/manipulate.svg +0 -4
  319. data/tools/test/themes/preset/symbols/otherwise.svg +0 -5
  320. data/tools/test/themes/preset/symbols/parallel.svg +0 -5
  321. data/tools/test/themes/preset/symbols/parallel_branch.svg +0 -5
  322. data/tools/test/themes/preset/symbols/parallel_branch_compact.svg +0 -4
  323. data/tools/test/themes/preset/symbols/parallel_branch_event.svg +0 -14
  324. data/tools/test/themes/preset/symbols/parallel_branch_normal.svg +0 -5
  325. data/tools/test/themes/preset/symbols/scripts.svg +0 -4
  326. data/tools/test/themes/preset/symbols/start.svg +0 -3
  327. data/tools/test/themes/preset/symbols/stop.svg +0 -5
  328. data/tools/test/themes/preset/symbols/terminate.svg +0 -4
  329. data/tools/test/themes/preset/theme.js +0 -1287
  330. data/tools/test/track.html +0 -142
@@ -1,177 +0,0 @@
1
- /*
2
- This file is part of CPEE.
3
-
4
- CPEE is free software: you can redistribute it and/or modify it under the terms
5
- of the GNU General Public License as published by the Free Software Foundation,
6
- either version 3 of the License, or (at your option) any later version.
7
-
8
- CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
9
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
10
- PARTICULAR PURPOSE. See the GNU General Public License for more details.
11
-
12
- You should have received a copy of the GNU General Public License along with
13
- CPEE (file COPYING in the main directory). If not, see
14
- <http://www.gnu.org/licenses/>.
15
- */
16
-
17
- function ui_click_tab(moi) { // {{{
18
- $(moi).trigger('click');
19
- } // }}}
20
-
21
- function ui_close_tab(moi){
22
- var active = $(moi).parent().attr('data-tab');
23
- var tabbed = $(moi).parent().parent().parent();
24
- var is_inactive = $(moi).parent().hasClass('inactive');
25
- $('*[data-tab=' + active + ']').remove();
26
- $('*[data-belongs-to-tab=' + active + ']').remove();
27
- if (!is_inactive)
28
- ui_click_tab($('ui-tabbar ui-tab.default'));
29
- }
30
-
31
- function ui_add_close(moi) {
32
- $(moi).append($('<ui-close>✖</ui-close>'));
33
- }
34
-
35
- function ui_empty_tab_contents(id) {
36
- $('ui-content ui-area[data-belongs-to-tab=' + id + ']').empty();
37
- }
38
-
39
- function ui_add_tab(tabbed,title,id,closeable,additionalclasses) {
40
- additionalclasses = typeof additionalclasses !== 'undefined' ? additionalclasses : '';
41
- if ($('ui-tabbar ui-tab[data-tab=' + id + ']').length > 0) {
42
- ui_activate_tab($('ui-tabbar ui-tab[data-tab=' + id + ']'));
43
- return false;
44
- } else {
45
- var instab = $("<ui-tab class='inactive" + (closeable ? ' closeable' : '') + (additionalclasses == '' ? '' : ' ' + additionalclasses) + "' data-tab='" + id + "'>" + title + "</ui-tab>");
46
- var insarea = $("<ui-area data-belongs-to-tab='" + id + "' class='inactive'></ui-area>");
47
- $(tabbed).find('ui-behind').before(instab);
48
- $(tabbed).find('ui-content').append(insarea);
49
- ui_add_close($('ui-tabbar ui-tab[data-tab=' + id + ']'));
50
- return true;
51
- }
52
- }
53
- function ui_add_tab_active(tabbed,title,id,closeable,additionalclasses) {
54
- var state = ui_add_tab(tabbed,title,id,closeable,additionalclasses);
55
- if (state) { ui_activate_tab($('ui-tabbar ui-tab[data-tab=' + id + ']')); }
56
- return state;
57
- }
58
-
59
- function ui_clone_tab(tabbar,original,title,id,closeable,additionalclasses) {
60
- additionalclasses = typeof additionalclasses !== 'undefined' ? additionalclasses : '';
61
- var instab = $("<ui-tab class='inactive" + (closeable ? ' closeable' : '') + (additionalclasses == '' ? '' : ' ' + additionalclasses) + "' data-tab='" + id + "' id='tab_" + id + "'>" + title + "</ui-tab>");
62
- var insarea = original.clone();
63
- insarea.attr("data-belongs-to-tab",id);
64
- insarea.attr("class","inactive");
65
- $(tabbar).find('ui-behind').before(instab);
66
- $(tabbar).parent().append(insarea);
67
- ui_add_close($('ui-tabbed ui-tab[data-tab=' + id + ']'));
68
- }
69
-
70
- (function($) { //{{{
71
- $.fn.dragcolumn = function() {
72
- var drag = $(this);
73
- var prev = drag.prev();
74
- var next = drag.next();
75
-
76
- this.on("mousedown", function(e) {
77
- drag.addClass('draggable');
78
- $(document).one("mouseup", function(e) {
79
- drag.removeClass('draggable');
80
- e.preventDefault();
81
- });
82
- e.preventDefault();
83
- });
84
-
85
- $(document).on("mousemove", function(e) {
86
- if (!drag.hasClass('draggable'))
87
- return;
88
-
89
- // Assume 50/50 split between prev and next then adjust to
90
- // the next X for prev
91
- var total = prev.outerWidth() + next.outerWidth();
92
- var pos = e.pageX - prev.offset().left;
93
- if (pos > total) {
94
- pos = total;
95
- }
96
-
97
- var leftPercentage = pos / total;
98
- var rightPercentage = 1 - leftPercentage;
99
-
100
- prev.css('flex', leftPercentage.toString());
101
- next.css('flex', rightPercentage.toString());
102
-
103
- e.preventDefault();
104
- });
105
- }
106
- $.fn.dragresize = function() {
107
- var drag = $(this);
108
- var prev = drag.prev();
109
- var initpos = 0;
110
- var initheight = $("ui-content",prev).height();
111
-
112
- this.on("mousedown", function(e) {
113
- drag.addClass('draggable');
114
- initpos = e.pageY;
115
- $(document).one("mouseup", function(e) {
116
- drag.removeClass('draggable');
117
- e.preventDefault();
118
- });
119
- e.preventDefault();
120
- });
121
-
122
- $(document).on("mousemove", function(e) {
123
- if (!drag.hasClass('draggable'))
124
- return;
125
-
126
- var pos = initheight - (initpos - e.pageY);
127
- if (pos < 0)
128
- return;
129
-
130
- $("ui-content",prev).css('height', pos.toString());
131
-
132
- e.preventDefault();
133
- });
134
- }
135
- })(jQuery); //}}}
136
-
137
- function ui_activate_tab(moi) { // {{{
138
- var active = $(moi).attr('data-tab');
139
- var tabbed = $(moi).parent().parent();
140
- var tabs = [];
141
- $("ui-tabbar > ui-tab",tabbed).each(function(){
142
- if (!$(this).attr('class').match(/switch/)) {
143
- tabs.push($(this).attr('data-tab'));
144
- }
145
- });
146
- $(".inactive",tabbed).removeClass("inactive");
147
- $.each(tabs,function(a,b){
148
- if (b != active) {
149
- $("ui-tabbar ui-tab[data-tab=" + b + "]",tabbed).addClass("inactive");
150
- $("ui-content *[data-belongs-to-tab=" + b + "]",tabbed).addClass("inactive");
151
- }
152
- });
153
- } // }}}
154
- function ui_toggle_vis_tab(moi) {// {{{
155
- if ($(moi)[0].nodeName == 'UI-TABBED') {
156
- var tabbed = $(moi);
157
- }
158
- if ($(moi)[0].nodeName == 'UI-TAB') {
159
- var tabbed = $(moi).parent().parent();
160
- }
161
- if (tabbed) {
162
- tabbed.toggleClass('off');
163
- }
164
- }// }}}
165
-
166
- $(document).ready(function() {
167
- if (!($.browser.name == "Firefox" && $.browser.version >= 20) && !($.browser.name == "Chrome" && $.browser.version >= 30)) {
168
- $('body').children().remove();
169
- $('body').append('Sorry, only Firefox >= 20.0 and Chrom(e|ium) >= 17 for now.');
170
- }
171
- $('ui-rest ui-content ui-resizehandle').dragcolumn();
172
- $('*[is=x-ui] > ui-resizehandle').dragresize();
173
- $(document).on('click','ui-tabbar ui-tab.switch',function(){ui_toggle_vis_tab(this);});
174
- $(document).on('click','ui-tabbar ui-tab:not(.switch)',function(){ui_activate_tab(this);});
175
- ui_add_close($('ui-tabbar ui-tab.closeable'));
176
- $(document).on('click','ui-tabbar ui-tab.closeable ui-close',function(){ui_close_tab(this);});
177
- });
@@ -1,27 +0,0 @@
1
- // Underscore.js 1.1.7
2
- // (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.
3
- // Underscore is freely distributable under the MIT license.
4
- // Portions of Underscore are inspired or borrowed from Prototype,
5
- // Oliver Steele's Functional, and John Resig's Micro-Templating.
6
- // For all details and documentation:
7
- // http://documentcloud.github.com/underscore
8
- (function(){var p=this,C=p._,m={},i=Array.prototype,n=Object.prototype,f=i.slice,D=i.unshift,E=n.toString,l=n.hasOwnProperty,s=i.forEach,t=i.map,u=i.reduce,v=i.reduceRight,w=i.filter,x=i.every,y=i.some,o=i.indexOf,z=i.lastIndexOf;n=Array.isArray;var F=Object.keys,q=Function.prototype.bind,b=function(a){return new j(a)};typeof module!=="undefined"&&module.exports?(module.exports=b,b._=b):p._=b;b.VERSION="1.1.7";var h=b.each=b.forEach=function(a,c,b){if(a!=null)if(s&&a.forEach===s)a.forEach(c,b);else if(a.length===
9
- +a.length)for(var e=0,k=a.length;e<k;e++){if(e in a&&c.call(b,a[e],e,a)===m)break}else for(e in a)if(l.call(a,e)&&c.call(b,a[e],e,a)===m)break};b.map=function(a,c,b){var e=[];if(a==null)return e;if(t&&a.map===t)return a.map(c,b);h(a,function(a,g,G){e[e.length]=c.call(b,a,g,G)});return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var k=d!==void 0;a==null&&(a=[]);if(u&&a.reduce===u)return e&&(c=b.bind(c,e)),k?a.reduce(c,d):a.reduce(c);h(a,function(a,b,f){k?d=c.call(e,d,a,b,f):(d=a,k=!0)});if(!k)throw new TypeError("Reduce of empty array with no initial value");
10
- return d};b.reduceRight=b.foldr=function(a,c,d,e){a==null&&(a=[]);if(v&&a.reduceRight===v)return e&&(c=b.bind(c,e)),d!==void 0?a.reduceRight(c,d):a.reduceRight(c);a=(b.isArray(a)?a.slice():b.toArray(a)).reverse();return b.reduce(a,c,d,e)};b.find=b.detect=function(a,c,b){var e;A(a,function(a,g,f){if(c.call(b,a,g,f))return e=a,!0});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(w&&a.filter===w)return a.filter(c,b);h(a,function(a,g,f){c.call(b,a,g,f)&&(e[e.length]=a)});return e};
11
- b.reject=function(a,c,b){var e=[];if(a==null)return e;h(a,function(a,g,f){c.call(b,a,g,f)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=!0;if(a==null)return e;if(x&&a.every===x)return a.every(c,b);h(a,function(a,g,f){if(!(e=e&&c.call(b,a,g,f)))return m});return e};var A=b.some=b.any=function(a,c,d){c=c||b.identity;var e=!1;if(a==null)return e;if(y&&a.some===y)return a.some(c,d);h(a,function(a,b,f){if(e|=c.call(d,a,b,f))return m});return!!e};b.include=b.contains=function(a,c){var b=
12
- !1;if(a==null)return b;if(o&&a.indexOf===o)return a.indexOf(c)!=-1;A(a,function(a){if(b=a===c)return!0});return b};b.invoke=function(a,c){var d=f.call(arguments,2);return b.map(a,function(a){return(c.call?c||a:a[c]).apply(a,d)})};b.pluck=function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);var e={computed:-Infinity};h(a,function(a,b,f){b=c?c.call(d,a,b,f):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,
13
- c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);var e={computed:Infinity};h(a,function(a,b,f){b=c?c.call(d,a,b,f):a;b<e.computed&&(e={value:a,computed:b})});return e.value};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,f){return{value:a,criteria:c.call(d,a,b,f)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,b){var d={};h(a,function(a,f){var g=b(a,f);(d[g]||(d[g]=[])).push(a)});return d};b.sortedIndex=function(a,c,d){d||
14
- (d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){if(!a)return[];if(a.toArray)return a.toArray();if(b.isArray(a))return f.call(a);if(b.isArguments(a))return f.call(a);return b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?f.call(a,0,b):a[0]};b.rest=b.tail=function(a,b,d){return f.call(a,b==null||d?1:b)};b.last=function(a){return a[a.length-1]};b.compact=function(a){return b.filter(a,
15
- function(a){return!!a})};b.flatten=function(a){return b.reduce(a,function(a,d){if(b.isArray(d))return a.concat(b.flatten(d));a[a.length]=d;return a},[])};b.without=function(a){return b.difference(a,f.call(arguments,1))};b.uniq=b.unique=function(a,c){return b.reduce(a,function(a,e,f){if(0==f||(c===!0?b.last(a)!=e:!b.include(a,e)))a[a.length]=e;return a},[])};b.union=function(){return b.uniq(b.flatten(arguments))};b.intersection=b.intersect=function(a){var c=f.call(arguments,1);return b.filter(b.uniq(a),
16
- function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a,c){return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=f.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(o&&a.indexOf===o)return a.indexOf(c);d=0;for(e=a.length;d<e;d++)if(a[d]===c)return d;return-1};b.lastIndexOf=function(a,
17
- b){if(a==null)return-1;if(z&&a.lastIndexOf===z)return a.lastIndexOf(b);for(var d=a.length;d--;)if(a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);d=arguments[2]||1;for(var e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d;return g};b.bind=function(a,b){if(a.bind===q&&q)return q.apply(a,f.call(arguments,1));var d=f.call(arguments,2);return function(){return a.apply(b,d.concat(f.call(arguments)))}};b.bindAll=function(a){var c=f.call(arguments,1);
18
- c.length==0&&(c=b.functions(a));h(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,c){var d={};c||(c=b.identity);return function(){var b=c.apply(this,arguments);return l.call(d,b)?d[b]:d[b]=a.apply(this,arguments)}};b.delay=function(a,b){var d=f.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(f.call(arguments,1)))};var B=function(a,b,d){var e;return function(){var f=this,g=arguments,h=function(){e=null;
19
- a.apply(f,g)};d&&clearTimeout(e);if(d||!e)e=setTimeout(h,b)}};b.throttle=function(a,b){return B(a,b,!1)};b.debounce=function(a,b){return B(a,b,!0)};b.once=function(a){var b=!1,d;return function(){if(b)return d;b=!0;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(f.call(arguments));return b.apply(this,d)}};b.compose=function(){var a=f.call(arguments);return function(){for(var b=f.call(arguments),d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};b.after=
20
- function(a,b){return function(){if(--a<1)return b.apply(this,arguments)}};b.keys=F||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[],d;for(d in a)l.call(a,d)&&(b[b.length]=d);return b};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){h(f.call(arguments,1),function(b){for(var d in b)b[d]!==void 0&&(a[d]=b[d])});return a};b.defaults=function(a){h(f.call(arguments,
21
- 1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,c){if(a===c)return!0;var d=typeof a;if(d!=typeof c)return!1;if(a==c)return!0;if(!a&&c||a&&!c)return!1;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual)return a.isEqual(c);if(c.isEqual)return c.isEqual(a);if(b.isDate(a)&&b.isDate(c))return a.getTime()===c.getTime();if(b.isNaN(a)&&b.isNaN(c))return!1;
22
- if(b.isRegExp(a)&&b.isRegExp(c))return a.source===c.source&&a.global===c.global&&a.ignoreCase===c.ignoreCase&&a.multiline===c.multiline;if(d!=="object")return!1;if(a.length&&a.length!==c.length)return!1;d=b.keys(a);var e=b.keys(c);if(d.length!=e.length)return!1;for(var f in a)if(!(f in c)||!b.isEqual(a[f],c[f]))return!1;return!0};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(l.call(a,c))return!1;return!0};b.isElement=function(a){return!!(a&&a.nodeType==
23
- 1)};b.isArray=n||function(a){return E.call(a)==="[object Array]"};b.isObject=function(a){return a===Object(a)};b.isArguments=function(a){return!(!a||!l.call(a,"callee"))};b.isFunction=function(a){return!(!a||!a.constructor||!a.call||!a.apply)};b.isString=function(a){return!!(a===""||a&&a.charCodeAt&&a.substr)};b.isNumber=function(a){return!!(a===0||a&&a.toExponential&&a.toFixed)};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===!0||a===!1};b.isDate=function(a){return!(!a||!a.getTimezoneOffset||
24
- !a.setUTCFullYear)};b.isRegExp=function(a){return!(!a||!a.test||!a.exec||!(a.ignoreCase||a.ignoreCase===!1))};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.noConflict=function(){p._=C;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.mixin=function(a){h(b.functions(a),function(c){H(c,b[c]=a[c])})};var I=0;b.uniqueId=function(a){var b=I++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g};
25
- b.template=function(a,c){var d=b.templateSettings;d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.interpolate,function(a,b){return"',"+b.replace(/\\'/g,"'")+",'"}).replace(d.evaluate||null,function(a,b){return"');"+b.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+"__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');";d=new Function("obj",d);return c?d(c):d};
26
- var j=function(a){this._wrapped=a};b.prototype=j.prototype;var r=function(a,c){return c?b(a).chain():a},H=function(a,c){j.prototype[a]=function(){var a=f.call(arguments);D.call(a,this._wrapped);return r(c.apply(b,a),this._chain)}};b.mixin(b);h(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=i[a];j.prototype[a]=function(){b.apply(this._wrapped,arguments);return r(this._wrapped,this._chain)}});h(["concat","join","slice"],function(a){var b=i[a];j.prototype[a]=function(){return r(b.apply(this._wrapped,
27
- arguments),this._chain)}});j.prototype.chain=function(){this._chain=!0;return this};j.prototype.value=function(){return this._wrapped}})();
@@ -1,81 +0,0 @@
1
- $B64 = function(str) {
2
- return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,
3
- function toSolidBytes(match, p1) {
4
- return String.fromCharCode('0x' + p1);
5
- }));
6
- }
7
-
8
- $.fn.to_em_raw = function(settings){
9
- settings = jQuery.extend({
10
- scope: 'body'
11
- }, settings);
12
- var that = parseInt(this[0]||"0",10),
13
- scopeTest = jQuery('<div style="display: none; font-size: 1em; margin: 0; padding:0; height: auto; line-height: 1; border:0;">&nbsp;</div>').appendTo(settings.scope),
14
- scopeVal = scopeTest.height();
15
- scopeTest.remove();
16
- return (that / scopeVal).toFixed(8);
17
- };
18
- $.fn.to_em = function(settings){
19
- return $(this[0]).to_em_raw(settings) + 'em';
20
- };
21
-
22
- $.fn.get_val = function () {
23
- if ($(this).is('input') || $(this).is('select') || $(this).is('textarea')) {
24
- return $(this).val();
25
- } else {
26
- var ret = $(this).html().replace(/<div>/g,'').replace(/<\/div>/g,'\n').replace(/<br\/?>/g,'\n').replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&quot;/g,'"').replace(/&apos;/g,'\'').trim();
27
- if (ret == '') $(this).empty();
28
- return ret;
29
- }
30
- };
31
- $.fn.set_val = function (val) {
32
- if ($(this).is('input') || $(this).is('select') || $(this).is('textarea')) {
33
- $(this).val(val);
34
- } else {
35
- $(this).text(val);
36
- }
37
- };
38
- $.fn.serializePrettyXML = function () {
39
- return vkbeautify.xml(this.serializeXML(),' ');
40
- };
41
-
42
- $.fn.serializeXML = function () {
43
- var out = '';
44
- if (typeof XMLSerializer == 'function') {
45
- var xs = new XMLSerializer();
46
- this.each(function() {
47
- out += xs.serializeToString(this);
48
- });
49
- } else if (this[0] && this[0].xml != 'undefined') {
50
- this.each(function() {
51
- out += this.xml;
52
- });
53
- }
54
- return out;
55
- };
56
-
57
- String.prototype.repeat = function(num) {
58
- return new Array(num + 1).join(this);
59
- };
60
-
61
- String.prototype.unserialize = function() {
62
- var data = this.split("&");
63
- var ret = new Array();
64
- $.each(data, function(){
65
- var properties = this.split("=");
66
- ret.push([properties[0], properties[1]]);
67
- });
68
- return ret;
69
- };
70
-
71
- $XR = function(xmlstr) {
72
- if (typeof xmlstr == "string") {
73
- return $.parseXML(xmlstr);
74
- } else {
75
- return $(xmlstr.ownerDocument || xmlstr);
76
- }
77
- };
78
-
79
- $X = function(xmlstr) {
80
- return $($.parseXML(xmlstr).documentElement);
81
- };
@@ -1,358 +0,0 @@
1
- /**
2
- * vkBeautify - javascript plugin to pretty-print or minify text in XML, JSON, CSS and SQL formats.
3
- *
4
- * Version - 0.99.00.beta
5
- * Copyright (c) 2012 Vadim Kiryukhin
6
- * vkiryukhin @ gmail.com
7
- * http://www.eslinstructor.net/vkbeautify/
8
- *
9
- * Dual licensed under the MIT and GPL licenses:
10
- * http://www.opensource.org/licenses/mit-license.php
11
- * http://www.gnu.org/licenses/gpl.html
12
- *
13
- * Pretty print
14
- *
15
- * vkbeautify.xml(text [,indent_pattern]);
16
- * vkbeautify.json(text [,indent_pattern]);
17
- * vkbeautify.css(text [,indent_pattern]);
18
- * vkbeautify.sql(text [,indent_pattern]);
19
- *
20
- * @text - String; text to beatufy;
21
- * @indent_pattern - Integer | String;
22
- * Integer: number of white spaces;
23
- * String: character string to visualize indentation ( can also be a set of white spaces )
24
- * Minify
25
- *
26
- * vkbeautify.xmlmin(text [,preserve_comments]);
27
- * vkbeautify.jsonmin(text);
28
- * vkbeautify.cssmin(text [,preserve_comments]);
29
- * vkbeautify.sqlmin(text);
30
- *
31
- * @text - String; text to minify;
32
- * @preserve_comments - Bool; [optional];
33
- * Set this flag to true to prevent removing comments from @text ( minxml and mincss functions only. )
34
- *
35
- * Examples:
36
- * vkbeautify.xml(text); // pretty print XML
37
- * vkbeautify.json(text, 4 ); // pretty print JSON
38
- * vkbeautify.css(text, '. . . .'); // pretty print CSS
39
- * vkbeautify.sql(text, '----'); // pretty print SQL
40
- *
41
- * vkbeautify.xmlmin(text, true);// minify XML, preserve comments
42
- * vkbeautify.jsonmin(text);// minify JSON
43
- * vkbeautify.cssmin(text);// minify CSS, remove comments ( default )
44
- * vkbeautify.sqlmin(text);// minify SQL
45
- *
46
- */
47
-
48
- (function() {
49
-
50
- function createShiftArr(step) {
51
-
52
- var space = ' ';
53
-
54
- if ( isNaN(parseInt(step)) ) { // argument is string
55
- space = step;
56
- } else { // argument is integer
57
- switch(step) {
58
- case 1: space = ' '; break;
59
- case 2: space = ' '; break;
60
- case 3: space = ' '; break;
61
- case 4: space = ' '; break;
62
- case 5: space = ' '; break;
63
- case 6: space = ' '; break;
64
- case 7: space = ' '; break;
65
- case 8: space = ' '; break;
66
- case 9: space = ' '; break;
67
- case 10: space = ' '; break;
68
- case 11: space = ' '; break;
69
- case 12: space = ' '; break;
70
- }
71
- }
72
-
73
- var shift = ['\n']; // array of shifts
74
- for(ix=0;ix<100;ix++){
75
- shift.push(shift[ix]+space);
76
- }
77
- return shift;
78
- }
79
-
80
- function vkbeautify(){
81
- this.step = ' '; // 4 spaces
82
- this.shift = createShiftArr(this.step);
83
- };
84
-
85
- vkbeautify.prototype.xml = function(text,step) {
86
-
87
- var ar = text.replace(/>\s{0,}</g,"><")
88
- .replace(/</g,"~::~<")
89
- .replace(/\s*xmlns\:/g,"~::~xmlns:")
90
- // .replace(/\s*xmlns\=/g,"~::~xmlns=")
91
- .split('~::~'),
92
- len = ar.length,
93
- inComment = false,
94
- deep = 0,
95
- str = '',
96
- ix = 0,
97
- shift = step ? createShiftArr(step) : this.shift;
98
-
99
- for(ix=0;ix<len;ix++) {
100
- // start comment or <![CDATA[...]]> or <!DOCTYPE //
101
- if(ar[ix].search(/<!/) > -1) {
102
- str += shift[deep]+ar[ix];
103
- inComment = true;
104
- // end comment or <![CDATA[...]]> //
105
- if(ar[ix].search(/-->/) > -1 || ar[ix].search(/\]>/) > -1 || ar[ix].search(/!DOCTYPE/) > -1 ) {
106
- inComment = false;
107
- }
108
- } else
109
- // end comment or <![CDATA[...]]> //
110
- if(ar[ix].search(/-->/) > -1 || ar[ix].search(/\]>/) > -1) {
111
- str += ar[ix];
112
- inComment = false;
113
- } else
114
- // <elm></elm> //
115
- if( /^<\w/.exec(ar[ix-1]) && /^<\/\w/.exec(ar[ix]) &&
116
- /^<[\w:\-\.\,]+/.exec(ar[ix-1]) == /^<\/[\w:\-\.\,]+/.exec(ar[ix])[0].replace('/','')) {
117
- str += ar[ix];
118
- if(!inComment) deep--;
119
- } else
120
- // <elm> //
121
- if(ar[ix].search(/<\w/) > -1 && ar[ix].search(/<\//) == -1 && ar[ix].search(/\/>/) == -1 ) {
122
- str = !inComment ? str += shift[deep++]+ar[ix] : str += ar[ix];
123
- } else
124
- // <elm>...</elm> //
125
- if(ar[ix].search(/<\w/) > -1 && ar[ix].search(/<\//) > -1) {
126
- str = !inComment ? str += shift[deep]+ar[ix] : str += ar[ix];
127
- } else
128
- // </elm> //
129
- if(ar[ix].search(/<\//) > -1) {
130
- str = !inComment ? str += shift[--deep]+ar[ix] : str += ar[ix];
131
- } else
132
- // <elm/> //
133
- if(ar[ix].search(/\/>/) > -1 ) {
134
- str = !inComment ? str += shift[deep]+ar[ix] : str += ar[ix];
135
- } else
136
- // <? xml ... ?> //
137
- if(ar[ix].search(/<\?/) > -1) {
138
- str += shift[deep]+ar[ix];
139
- } else
140
- // xmlns //
141
- if( ar[ix].search(/xmlns\:/) > -1 || ar[ix].search(/xmlns\=/) > -1) {
142
- str += shift[deep]+ar[ix];
143
- }
144
-
145
- else {
146
- str += ar[ix];
147
- }
148
- }
149
-
150
- return (str[0] == '\n') ? str.slice(1) : str;
151
- }
152
-
153
- vkbeautify.prototype.json = function(text,step) {
154
-
155
- var step = step ? step : this.step;
156
-
157
- if (typeof JSON === 'undefined' ) return text;
158
-
159
- if ( typeof text === "string" ) return JSON.stringify(JSON.parse(text), null, step);
160
- if ( typeof text === "object" ) return JSON.stringify(text, null, step);
161
-
162
- return text; // text is not string nor object
163
- }
164
-
165
- vkbeautify.prototype.css = function(text, step) {
166
-
167
- var ar = text.replace(/\s{1,}/g,' ')
168
- .replace(/\{/g,"{~::~")
169
- .replace(/\}/g,"~::~}~::~")
170
- .replace(/\;/g,";~::~")
171
- .replace(/\/\*/g,"~::~/*")
172
- .replace(/\*\//g,"*/~::~")
173
- .replace(/~::~\s{0,}~::~/g,"~::~")
174
- .split('~::~'),
175
- len = ar.length,
176
- deep = 0,
177
- str = '',
178
- ix = 0,
179
- shift = step ? createShiftArr(step) : this.shift;
180
-
181
- for(ix=0;ix<len;ix++) {
182
-
183
- if( /\{/.exec(ar[ix])) {
184
- str += shift[deep++]+ar[ix];
185
- } else
186
- if( /\}/.exec(ar[ix])) {
187
- str += shift[--deep]+ar[ix];
188
- } else
189
- if( /\*\\/.exec(ar[ix])) {
190
- str += shift[deep]+ar[ix];
191
- }
192
- else {
193
- str += shift[deep]+ar[ix];
194
- }
195
- }
196
- return str.replace(/^\n{1,}/,'');
197
- }
198
-
199
- //----------------------------------------------------------------------------
200
-
201
- function isSubquery(str, parenthesisLevel) {
202
- return parenthesisLevel - (str.replace(/\(/g,'').length - str.replace(/\)/g,'').length )
203
- }
204
-
205
- function split_sql(str, tab) {
206
-
207
- return str.replace(/\s{1,}/g," ")
208
-
209
- .replace(/ AND /ig,"~::~"+tab+tab+"AND ")
210
- .replace(/ BETWEEN /ig,"~::~"+tab+"BETWEEN ")
211
- .replace(/ CASE /ig,"~::~"+tab+"CASE ")
212
- .replace(/ ELSE /ig,"~::~"+tab+"ELSE ")
213
- .replace(/ END /ig,"~::~"+tab+"END ")
214
- .replace(/ FROM /ig,"~::~FROM ")
215
- .replace(/ GROUP\s{1,}BY/ig,"~::~GROUP BY ")
216
- .replace(/ HAVING /ig,"~::~HAVING ")
217
- //.replace(/ SET /ig," SET~::~")
218
- .replace(/ IN /ig," IN ")
219
-
220
- .replace(/ JOIN /ig,"~::~JOIN ")
221
- .replace(/ CROSS~::~{1,}JOIN /ig,"~::~CROSS JOIN ")
222
- .replace(/ INNER~::~{1,}JOIN /ig,"~::~INNER JOIN ")
223
- .replace(/ LEFT~::~{1,}JOIN /ig,"~::~LEFT JOIN ")
224
- .replace(/ RIGHT~::~{1,}JOIN /ig,"~::~RIGHT JOIN ")
225
-
226
- .replace(/ ON /ig,"~::~"+tab+"ON ")
227
- .replace(/ OR /ig,"~::~"+tab+tab+"OR ")
228
- .replace(/ ORDER\s{1,}BY/ig,"~::~ORDER BY ")
229
- .replace(/ OVER /ig,"~::~"+tab+"OVER ")
230
-
231
- .replace(/\(\s{0,}SELECT /ig,"~::~(SELECT ")
232
- .replace(/\)\s{0,}SELECT /ig,")~::~SELECT ")
233
-
234
- .replace(/ THEN /ig," THEN~::~"+tab+"")
235
- .replace(/ UNION /ig,"~::~UNION~::~")
236
- .replace(/ USING /ig,"~::~USING ")
237
- .replace(/ WHEN /ig,"~::~"+tab+"WHEN ")
238
- .replace(/ WHERE /ig,"~::~WHERE ")
239
- .replace(/ WITH /ig,"~::~WITH ")
240
-
241
- //.replace(/\,\s{0,}\(/ig,",~::~( ")
242
- //.replace(/\,/ig,",~::~"+tab+tab+"")
243
-
244
- .replace(/ ALL /ig," ALL ")
245
- .replace(/ AS /ig," AS ")
246
- .replace(/ ASC /ig," ASC ")
247
- .replace(/ DESC /ig," DESC ")
248
- .replace(/ DISTINCT /ig," DISTINCT ")
249
- .replace(/ EXISTS /ig," EXISTS ")
250
- .replace(/ NOT /ig," NOT ")
251
- .replace(/ NULL /ig," NULL ")
252
- .replace(/ LIKE /ig," LIKE ")
253
- .replace(/\s{0,}SELECT /ig,"SELECT ")
254
- .replace(/\s{0,}UPDATE /ig,"UPDATE ")
255
- .replace(/ SET /ig," SET ")
256
-
257
- .replace(/~::~{1,}/g,"~::~")
258
- .split('~::~');
259
- }
260
-
261
- vkbeautify.prototype.sql = function(text,step) {
262
-
263
- var ar_by_quote = text.replace(/\s{1,}/g," ")
264
- .replace(/\'/ig,"~::~\'")
265
- .split('~::~'),
266
- len = ar_by_quote.length,
267
- ar = [],
268
- deep = 0,
269
- tab = this.step,//+this.step,
270
- inComment = true,
271
- inQuote = false,
272
- parenthesisLevel = 0,
273
- str = '',
274
- ix = 0,
275
- shift = step ? createShiftArr(step) : this.shift;;
276
-
277
- for(ix=0;ix<len;ix++) {
278
- if(ix%2) {
279
- ar = ar.concat(ar_by_quote[ix]);
280
- } else {
281
- ar = ar.concat(split_sql(ar_by_quote[ix], tab) );
282
- }
283
- }
284
-
285
- len = ar.length;
286
- for(ix=0;ix<len;ix++) {
287
-
288
- parenthesisLevel = isSubquery(ar[ix], parenthesisLevel);
289
-
290
- if( /\s{0,}\s{0,}SELECT\s{0,}/.exec(ar[ix])) {
291
- ar[ix] = ar[ix].replace(/\,/g,",\n"+tab+tab+"")
292
- }
293
-
294
- if( /\s{0,}\s{0,}SET\s{0,}/.exec(ar[ix])) {
295
- ar[ix] = ar[ix].replace(/\,/g,",\n"+tab+tab+"")
296
- }
297
-
298
- if( /\s{0,}\(\s{0,}SELECT\s{0,}/.exec(ar[ix])) {
299
- deep++;
300
- str += shift[deep]+ar[ix];
301
- } else
302
- if( /\'/.exec(ar[ix]) ) {
303
- if(parenthesisLevel<1 && deep) {
304
- deep--;
305
- }
306
- str += ar[ix];
307
- }
308
- else {
309
- str += shift[deep]+ar[ix];
310
- if(parenthesisLevel<1 && deep) {
311
- deep--;
312
- }
313
- }
314
- var junk = 0;
315
- }
316
-
317
- str = str.replace(/^\n{1,}/,'').replace(/\n{1,}/g,"\n");
318
- return str;
319
- }
320
-
321
-
322
- vkbeautify.prototype.xmlmin = function(text, preserveComments) {
323
-
324
- var str = preserveComments ? text
325
- : text.replace(/\<![ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*--[ \r\n\t]*)\>/g,"")
326
- .replace(/[ \r\n\t]{1,}xmlns/g, ' xmlns');
327
- return str.replace(/>\s{0,}</g,"><");
328
- }
329
-
330
- vkbeautify.prototype.jsonmin = function(text) {
331
-
332
- if (typeof JSON === 'undefined' ) return text;
333
-
334
- return JSON.stringify(JSON.parse(text), null, 0);
335
-
336
- }
337
-
338
- vkbeautify.prototype.cssmin = function(text, preserveComments) {
339
-
340
- var str = preserveComments ? text
341
- : text.replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g,"") ;
342
-
343
- return str.replace(/\s{1,}/g,' ')
344
- .replace(/\{\s{1,}/g,"{")
345
- .replace(/\}\s{1,}/g,"}")
346
- .replace(/\;\s{1,}/g,";")
347
- .replace(/\/\*\s{1,}/g,"/*")
348
- .replace(/\*\/\s{1,}/g,"*/");
349
- }
350
-
351
- vkbeautify.prototype.sqlmin = function(text) {
352
- return text.replace(/\s{1,}/g," ").replace(/\s{1,}\(/,"(").replace(/\s{1,}\)/,")");
353
- }
354
-
355
- window.vkbeautify = new vkbeautify();
356
-
357
- })();
358
-