jinda 0.6.2 → 0.6.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (220) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/assets/config/manifest.js +4 -0
  4. data/{lib/generators/jinda/templates/app → app}/assets/images/4dcity-old.ico +0 -0
  5. data/{lib/generators/jinda/templates/app → app}/assets/images/4dcity.ico +0 -0
  6. data/{lib/generators/jinda/templates/app → app}/assets/images/account.png +0 -0
  7. data/{lib/generators/jinda/templates/app → app}/assets/images/add.png +0 -0
  8. data/{lib/generators/jinda/templates/app → app}/assets/images/ajax-loader-circle.gif +0 -0
  9. data/{lib/generators/jinda/templates/app → app}/assets/images/ajax-loader.gif +0 -0
  10. data/{lib/generators/jinda/templates/app → app}/assets/images/anchor.png +0 -0
  11. data/{lib/generators/jinda/templates/app → app}/assets/images/application_double.png +0 -0
  12. data/{lib/generators/jinda/templates/app → app}/assets/images/application_form_edit.png +0 -0
  13. data/{lib/generators/jinda/templates/app → app}/assets/images/arrow_left.png +0 -0
  14. data/{lib/generators/jinda/templates/app → app}/assets/images/arrow_right.png +0 -0
  15. data/{lib/generators/jinda/templates/app → app}/assets/images/arrow_turn_left.png +0 -0
  16. data/{lib/generators/jinda/templates/app → app}/assets/images/arrow_turn_right.png +0 -0
  17. data/{lib/generators/jinda/templates/app → app}/assets/images/calendar.png +0 -0
  18. data/{lib/generators/jinda/templates/app → app}/assets/images/cancel.png +0 -0
  19. data/{lib/generators/jinda/templates/app → app}/assets/images/chart_bar.png +0 -0
  20. data/{lib/generators/jinda/templates/app → app}/assets/images/clock.png +0 -0
  21. data/{lib/generators/jinda/templates/app → app}/assets/images/cog.png +0 -0
  22. data/{lib/generators/jinda/templates/app → app}/assets/images/control_fastforward.png +0 -0
  23. data/{lib/generators/jinda/templates/app → app}/assets/images/control_play.png +0 -0
  24. data/{lib/generators/jinda/templates/app → app}/assets/images/cross.png +0 -0
  25. data/{lib/generators/jinda/templates/app → app}/assets/images/delete.png +0 -0
  26. data/{lib/generators/jinda/templates/app → app}/assets/images/external-link.png +0 -0
  27. data/{lib/generators/jinda/templates/app → app}/assets/images/facebook-continue-button.png +0 -0
  28. data/{lib/generators/jinda/templates/app → app}/assets/images/facebooksmall.png +0 -0
  29. data/{lib/generators/jinda/templates/app → app}/assets/images/favicon.ico +0 -0
  30. data/{lib/generators/jinda/templates/app → app}/assets/images/freemind(mm).png +0 -0
  31. data/{lib/generators/jinda/templates/app → app}/assets/images/google-continue-button.png +0 -0
  32. data/{lib/generators/jinda/templates/app → app}/assets/images/help.png +0 -0
  33. data/{lib/generators/jinda/templates/app → app}/assets/images/highway-menu.png +0 -0
  34. data/{lib/generators/jinda/templates/app → app}/assets/images/highway.png +0 -0
  35. data/{lib/generators/jinda/templates/app → app}/assets/images/house.png +0 -0
  36. data/{lib/generators/jinda/templates/app → app}/assets/images/icons-18-black.png +0 -0
  37. data/{lib/generators/jinda/templates/app → app}/assets/images/icons-18-white.png +0 -0
  38. data/{lib/generators/jinda/templates/app → app}/assets/images/icons-36-black.png +0 -0
  39. data/{lib/generators/jinda/templates/app → app}/assets/images/icons-36-white.png +0 -0
  40. data/{lib/generators/jinda/templates/app → app}/assets/images/logo.png +0 -0
  41. data/{lib/generators/jinda/templates/app → app}/assets/images/logo_jinda.png +0 -0
  42. data/{lib/generators/jinda/templates/app → app}/assets/images/logout.png +0 -0
  43. data/{lib/generators/jinda/templates/app → app}/assets/images/new.gif +0 -0
  44. data/{lib/generators/jinda/templates/app → app}/assets/images/new.png +0 -0
  45. data/{lib/generators/jinda/templates/app → app}/assets/images/page.png +0 -0
  46. data/{lib/generators/jinda/templates/app → app}/assets/images/page_attach.png +0 -0
  47. data/{lib/generators/jinda/templates/app → app}/assets/images/page_green.png +0 -0
  48. data/{lib/generators/jinda/templates/app → app}/assets/images/page_output.png +0 -0
  49. data/{lib/generators/jinda/templates/app → app}/assets/images/page_pdf.png +0 -0
  50. data/{lib/generators/jinda/templates/app → app}/assets/images/pencil.png +0 -0
  51. data/{lib/generators/jinda/templates/app → app}/assets/images/printer.png +0 -0
  52. data/{lib/generators/jinda/templates/app → app}/assets/images/refresh.png +0 -0
  53. data/{lib/generators/jinda/templates/app → app}/assets/images/report.png +0 -0
  54. data/{lib/generators/jinda/templates/app → app}/assets/images/rssmall.png +0 -0
  55. data/{lib/generators/jinda/templates/app → app}/assets/images/tick.png +0 -0
  56. data/{lib/generators/jinda/templates/app → app}/assets/images/twittersmall.png +0 -0
  57. data/{lib/generators/jinda/templates/app → app}/assets/images/user.png +0 -0
  58. data/{lib/generators/jinda/templates/app → app}/assets/images/user_admin_gear.png +0 -0
  59. data/{lib/generators/jinda/templates/app → app}/assets/images/view_code.png +0 -0
  60. data/{lib/generators/jinda/templates/app/assets/javascripts/application.js-jqm → app/assets/javascripts/application.js-org} +8 -11
  61. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/cable.js +0 -0
  62. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/disable_enter_key.js +0 -0
  63. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/iscroll-wrapper.js +0 -0
  64. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/iscroll.js +0 -0
  65. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/jinda.js +0 -0
  66. data/app/assets/javascripts/jinda_jqm.js +24 -0
  67. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/jquery.mobile-1.2.1.js +0 -0
  68. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/jquery.mobile.datebox.js +0 -0
  69. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/jquery.mobile.splitview.js +0 -0
  70. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/app.scss +0 -0
  71. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/articles.scss +0 -0
  72. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun.eot +0 -0
  73. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun.ttf +0 -0
  74. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun.woff +0 -0
  75. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun_bold.ttf +0 -0
  76. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun_bolditalic.ttf +0 -0
  77. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun_italic.ttf +0 -0
  78. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew-webfont.eot +0 -0
  79. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew-webfont.ttf +0 -0
  80. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew-webfont.woff +0 -0
  81. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew.css +0 -0
  82. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bold-webfont.eot +0 -0
  83. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bold-webfont.ttf +0 -0
  84. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bold-webfont.woff +0 -0
  85. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.eot +0 -0
  86. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.ttf +0 -0
  87. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.woff +0 -0
  88. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_italic-webfont.eot +0 -0
  89. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_italic-webfont.ttf +0 -0
  90. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_italic-webfont.woff +0 -0
  91. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/ajax-loader.gif +0 -0
  92. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/button_black.png +0 -0
  93. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/button_blue.png +0 -0
  94. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/button_red.png +0 -0
  95. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/icons-18-black.png +0 -0
  96. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/icons-18-white.png +0 -0
  97. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/icons-36-black.png +0 -0
  98. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/icons-36-white.png +0 -0
  99. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/indicator.gif +0 -0
  100. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jinda.css +0 -0
  101. data/app/assets/stylesheets/jinda_jqm.css.scss +32 -0
  102. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jquery.mobile-1.2.1.css +0 -0
  103. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jquery.mobile.datebox.css +0 -0
  104. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jquery.mobile.grids.collapsible.css +0 -0
  105. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jquery.mobile.splitview.css +0 -0
  106. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/kul-4.2.css +0 -0
  107. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/kul-4.2.min.css +0 -0
  108. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/modules.scss +0 -0
  109. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/sarabun.css +0 -0
  110. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/social.scss +0 -0
  111. data/{lib/generators/jinda/templates/app → app}/controllers/concerns/jinda_general_concern.rb +0 -0
  112. data/{lib/generators/jinda/templates/app → app}/controllers/concerns/jinda_run_concern.rb +0 -0
  113. data/{lib/generators/jinda/templates/app/controllers/jinda_org → app/controllers}/jinda_controller.rb +0 -0
  114. data/app/jinda/index.mm +369 -0
  115. data/app/jinda/template/index.mm +366 -0
  116. data/app/jinda/template/linkview.haml +21 -0
  117. data/app/jinda/template/view.html.erb +26 -0
  118. data/{lib/generators/jinda/templates/app → app}/views/jinda/_activity.md +0 -0
  119. data/{lib/generators/jinda/templates/app → app}/views/jinda/_menu.haml +0 -0
  120. data/{lib/generators/jinda/templates/app → app}/views/jinda/_menu_mm.haml +0 -0
  121. data/{lib/generators/jinda/templates/app → app}/views/jinda/_model.md +0 -0
  122. data/{lib/generators/jinda/templates/app → app}/views/jinda/_modul.md +0 -0
  123. data/{lib/generators/jinda/templates/app → app}/views/jinda/_pending_home.haml +0 -0
  124. data/{lib/generators/jinda/templates/app → app}/views/jinda/_pending_page.haml +0 -0
  125. data/{lib/generators/jinda/templates/app → app}/views/jinda/_service.md +0 -0
  126. data/{lib/generators/jinda/templates/app → app}/views/jinda/_static.haml +0 -0
  127. data/{lib/generators/jinda/templates/app → app}/views/jinda/doc-thai.md +0 -0
  128. data/{lib/generators/jinda/templates/app → app}/views/jinda/doc.md +0 -0
  129. data/{lib/generators/jinda/templates/app → app}/views/jinda/error_logs.haml +0 -0
  130. data/{lib/generators/jinda/templates/app → app}/views/jinda/feed.rss.builder +0 -0
  131. data/{lib/generators/jinda/templates/app → app}/views/jinda/help.haml +0 -0
  132. data/{lib/generators/jinda/templates/app → app}/views/jinda/index.html.haml +1 -1
  133. data/{lib/generators/jinda/templates/app → app}/views/jinda/logs.haml +0 -0
  134. data/{lib/generators/jinda/templates/app → app}/views/jinda/notice_logs.haml +0 -0
  135. data/{lib/generators/jinda/templates/app → app}/views/jinda/pending.haml +0 -0
  136. data/{lib/generators/jinda/templates/app → app}/views/jinda/run_form.haml +0 -0
  137. data/{lib/generators/jinda/templates/app → app}/views/jinda/run_output.haml +0 -0
  138. data/{lib/generators/jinda/templates/app → app}/views/jinda/search.haml +0 -0
  139. data/{lib/generators/jinda/templates/app → app}/views/jinda/status.haml +0 -0
  140. data/lib/generators/jinda/config_generator.rb +7 -0
  141. data/lib/generators/jinda/install_generator.rb +45 -42
  142. data/lib/generators/jinda/templates/Dockerfile +24 -0
  143. data/lib/generators/jinda/templates/app/assets/javascripts/application.js +1 -10
  144. data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +1 -20
  145. data/lib/generators/jinda/templates/config/mongoid.yml-docker +182 -0
  146. data/lib/generators/jinda/templates/config/mongoid.yml-localhost +182 -0
  147. data/lib/generators/jinda/templates/docker-compose.yml +16 -0
  148. data/lib/generators/jinda/templates/entrypoint.sh +12 -0
  149. data/lib/jinda.rb +2 -1
  150. data/lib/jinda/date_helpers.rb +109 -0
  151. data/lib/jinda/{gemhelpers.rb → gem_helpers.rb} +0 -1
  152. data/lib/jinda/gen_class.rb +13 -0
  153. data/lib/jinda/gen_controller.rb +10 -0
  154. data/lib/jinda/gen_freemind.rb +33 -0
  155. data/lib/jinda/gen_helpers.rb +141 -0
  156. data/lib/jinda/gen_models.rb +137 -0
  157. data/lib/jinda/gen_runseq.rb +71 -0
  158. data/lib/jinda/gen_services.rb +90 -0
  159. data/lib/jinda/gen_xmain.rb +38 -0
  160. data/lib/jinda/get_app.rb +34 -0
  161. data/lib/jinda/helpers.rb +17 -998
  162. data/lib/jinda/init_vars.rb +36 -0
  163. data/lib/jinda/rake_views.rb +59 -0
  164. data/lib/jinda/refresh.rb +67 -0
  165. data/lib/jinda/themes.rb +163 -0
  166. data/lib/jinda/version.rb +1 -1
  167. data/test/dummy/Rakefile +6 -0
  168. data/test/dummy/app/assets/config/manifest.js +3 -0
  169. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  170. data/test/dummy/app/channels/application_cable/channel.rb +4 -0
  171. data/test/dummy/app/channels/application_cable/connection.rb +4 -0
  172. data/test/dummy/app/controllers/application_controller.rb +2 -0
  173. data/test/dummy/app/helpers/application_helper.rb +2 -0
  174. data/test/dummy/app/javascript/packs/application.js +15 -0
  175. data/test/dummy/app/jobs/application_job.rb +7 -0
  176. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  177. data/test/dummy/app/models/application_record.rb +3 -0
  178. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  179. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  180. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  181. data/test/dummy/bin/rails +4 -0
  182. data/test/dummy/bin/rake +4 -0
  183. data/test/dummy/bin/setup +33 -0
  184. data/test/dummy/config.ru +5 -0
  185. data/test/dummy/config/application.rb +19 -0
  186. data/test/dummy/config/boot.rb +5 -0
  187. data/test/dummy/config/cable.yml +10 -0
  188. data/test/dummy/config/database.yml +25 -0
  189. data/test/dummy/config/environment.rb +5 -0
  190. data/test/dummy/config/environments/development.rb +62 -0
  191. data/test/dummy/config/environments/production.rb +112 -0
  192. data/test/dummy/config/environments/test.rb +49 -0
  193. data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
  194. data/test/dummy/config/initializers/assets.rb +12 -0
  195. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  196. data/test/dummy/config/initializers/content_security_policy.rb +28 -0
  197. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  198. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  199. data/test/dummy/config/initializers/inflections.rb +16 -0
  200. data/test/dummy/config/initializers/mime_types.rb +4 -0
  201. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  202. data/test/dummy/config/locales/en.yml +33 -0
  203. data/test/dummy/config/puma.rb +38 -0
  204. data/test/dummy/config/routes.rb +3 -0
  205. data/test/dummy/config/spring.rb +6 -0
  206. data/test/dummy/config/storage.yml +34 -0
  207. data/test/dummy/db/development.sqlite3 +0 -0
  208. data/test/dummy/log/development.log +8 -0
  209. data/test/dummy/public/404.html +67 -0
  210. data/test/dummy/public/422.html +67 -0
  211. data/test/dummy/public/500.html +66 -0
  212. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  213. data/test/dummy/public/apple-touch-icon.png +0 -0
  214. data/test/dummy/public/favicon.ico +0 -0
  215. data/test/dummy/tmp/development_secret.txt +1 -0
  216. data/test/integration/navigation_test.rb +7 -0
  217. data/test/jinda_test.rb +7 -0
  218. data/test/test_helper.rb +19 -0
  219. metadata +232 -161
  220. data/lib/generators/jinda/templates/app/controllers/jinda_org/devs_controller.rb +0 -2
@@ -0,0 +1,16 @@
1
+ version: '3'
2
+ services:
3
+ web:
4
+ build: .
5
+ command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
6
+ volumes:
7
+ - .:/myapp
8
+ ports:
9
+ - "3000:3000"
10
+ depends_on:
11
+ - mongodb
12
+
13
+ mongodb:
14
+ image: mongo
15
+ ports:
16
+ - "27017:27017"
@@ -0,0 +1,12 @@
1
+ #!/bin/bash
2
+ set -e
3
+ # change mongoid.yml for docker
4
+ cp /myapp/config/mongoid.yml-docker /myapp/config/mongoid.yml
5
+ # Remove a potentially pre-existing server.pid for Rails.
6
+ rm -f /myapp/tmp/pids/server.pid
7
+ # Compile the assets
8
+ # bundle exec rake assets:precompile
9
+ # Add admin user
10
+ rake jinda:seed
11
+ # Then exec the container's main process (what's set as CMD in the Dockerfile).
12
+ exec "$@"
@@ -2,5 +2,6 @@ require 'jinda/version'
2
2
  require 'jinda/railtie'
3
3
 
4
4
  module Jinda
5
- # Your code goes here...
5
+ class Engine < ::Rails::Engine
6
+ end
6
7
  end
@@ -0,0 +1,109 @@
1
+ module ActionView
2
+ module Helpers
3
+ module DateHelper
4
+ def date_field_tag(method, options = {})
5
+ default= options[:default] || Date.today
6
+ data_options= ({"mode"=>"calbox"}).merge(options)
7
+ %Q(<input name='#{method}' id='#{method}' value='#{default.strftime("%F")}' type='date' data-role='datebox' data-options='#{data_options.to_json}'>).html_safe
8
+ end
9
+ end
10
+ class FormBuilder
11
+ def date_select_thai(method)
12
+ self.date_select method, :use_month_names=>THAI_MONTHS, :order=>[:day, :month, :year]
13
+ end
14
+ def date_field(method, options = {})
15
+ default= options[:default] || self.object.send(method) || Date.today
16
+ data_options= ({"mode"=>"calbox"}).merge(options)
17
+ out= %Q(<input name='#{self.object_name}[#{method}]' id='#{self.object_name}_#{method}' value='#{default.strftime("%F")}' type='date' data-role='datebox' data-options='#{data_options.to_json}'>)
18
+ out.html_safe
19
+ end
20
+ def time_field(method, options = {})
21
+ default= self.object.send(method) || Time.now
22
+ data_options= ({"mode"=>"timebox"}).merge(options)
23
+ out=%Q(<input name='#{self.object_name}[#{method}]' id='#{self.object_name}_#{method}' value='#{default}' type='date' data-role='datebox' data-options='#{data_options.to_json}'>)
24
+ out.html_safe
25
+ end
26
+ def date_select_thai(method, default= Time.now, disabled=false)
27
+ date_select method, :default => default, :use_month_names=>THAI_MONTHS, :order=>[:day, :month, :year], :disabled=>disabled
28
+ end
29
+ def datetime_select_thai(method, default= Time.now, disabled=false)
30
+ datetime_select method, :default => default, :use_month_names=>THAI_MONTHS, :order=>[:day, :month, :year], :disabled=>disabled
31
+ end
32
+
33
+ def point(o={})
34
+ o[:zoom]= 11 unless o[:zoom]
35
+ o[:width]= '100%' unless o[:width]
36
+ o[:height]= '300px' unless o[:height]
37
+ o[:lat] = 13.91819 unless o[:lat]
38
+ o[:lng] = 100.48889 unless o[:lng]
39
+
40
+ out = <<-EOT
41
+ <script type='text/javascript'>
42
+ //<![CDATA[
43
+ var latLng;
44
+ var map_#{self.object_name};
45
+ var marker_#{self.object_name};
46
+
47
+ function init_map() {
48
+ var lat = #{o[:lat]};
49
+ var lng = #{o[:lng]};
50
+ //var lat = position.coords.latitude"; // HTML5 pass position in function initialize(position)
51
+ // google.loader.ClientLocation.latitude;
52
+ //var lng = position.coords.longitude;
53
+ // google.loader.ClientLocation.longitude;
54
+ latLng = new google.maps.LatLng(lat, lng);
55
+ map_#{self.object_name} = new google.maps.Map(document.getElementById("map_#{self.object_name}"), {
56
+ zoom: #{o[:zoom]},
57
+ center: latLng,
58
+ mapTypeId: google.maps.MapTypeId.ROADMAP
59
+ });
60
+ marker_#{self.object_name} = new google.maps.Marker({
61
+ position: latLng,
62
+ map: map_#{self.object_name},
63
+ draggable: true,
64
+ });
65
+ google.maps.event.addListener(marker_#{self.object_name}, 'dragend', function(event) {
66
+ $('##{self.object_name}_lat').val(event.latLng.lat());
67
+ $('##{self.object_name}_lng').val(event.latLng.lng());
68
+ });
69
+ google.maps.event.addListener(map_#{self.object_name}, 'click', function(event) {
70
+ $('##{self.object_name}_lat').val(event.latLng.lat());
71
+ $('##{self.object_name}_lng').val(event.latLng.lng());
72
+ move();
73
+ });
74
+ $('##{self.object_name}_lat').val(lat);
75
+ $('##{self.object_name}_lng').val(lng);
76
+ };
77
+
78
+ function move() {
79
+ latLng = new google.maps.LatLng($('##{self.object_name}_lat').val(), $('##{self.object_name}_lng').val());
80
+ map_#{self.object_name}.panTo(latLng);
81
+ marker_#{self.object_name}.setPosition(latLng);
82
+ }
83
+
84
+ //google.maps.event.addDomListener(window, 'load', init_map);
85
+
86
+ //]]>
87
+ </script>
88
+ <div class="field" data-role="fieldcontain">
89
+ Latitude: #{self.text_field :lat, :style=>"width:300px;" }
90
+ Longitude: #{self.text_field :lng, :style=>"width:300px;" }
91
+ </div>
92
+ <p/>
93
+ <div id='map_#{self.object_name}' style='max-width: none !important; width:#{o[:width]}; height:#{o[:height]};' class='map'></div>
94
+ <script>
95
+ $('##{self.object_name}_lat').change(function() {move()});
96
+ $('##{self.object_name}_lng').change(function() {move()});
97
+ //var w= $("input[id*=lat]").parent().width();
98
+ //$("input[id*=lat]").css('width','300px');
99
+ //$("input[id*=lng]").css('width','300px');
100
+ $( document ).one( "pagechange", function(){
101
+ init_map();
102
+ });
103
+ </script>
104
+ EOT
105
+ out.html_safe
106
+ end
107
+ end
108
+ end
109
+ end
@@ -3,7 +3,6 @@ module Jinda
3
3
  module GemHelpers
4
4
  require 'jinda/helpers'
5
5
  include Jinda::Helpers
6
- require 'pry'
7
6
  # Find gem root
8
7
  spec = Gem::Specification.find_by_name("jinda")
9
8
  $gem_root = spec.gem_dir
@@ -0,0 +1,13 @@
1
+
2
+ # Add method to ruby class String
3
+ # ###############################
4
+ class String
5
+ def comment?
6
+ self[0]=='#'
7
+ # self[0]==35 # check if first char is #
8
+ end
9
+ def to_code
10
+ s= self.dup
11
+ s.downcase.strip.gsub(' ','_').gsub(/[^#_\/a-zA-Z0-9]/,'')
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+
2
+
3
+ def process_controllers
4
+ process_services
5
+ modules= Jinda::Module.all
6
+ modules.each do |m|
7
+ next if controller_exists?(m.code)
8
+ system("rails generate controller #{m.code}")
9
+ end
10
+ end
@@ -0,0 +1,33 @@
1
+
2
+ def freemind2action(s)
3
+ case s.downcase
4
+ #when 'bookmark' # Excellent
5
+ # 'call'
6
+ when 'bookmark' # Excellent
7
+ 'do'
8
+ when 'attach' # Look here
9
+ 'form'
10
+ when 'edit' # Refine
11
+ 'pdf'
12
+ when 'wizard' # Magic
13
+ 'ws'
14
+ when 'help' # Question
15
+ 'if'
16
+ when 'forward' # Forward
17
+ # 'redirect'
18
+ 'direct_to'
19
+ when 'kaddressbook' #Phone
20
+ 'invoke' # invoke new service along the way
21
+ when 'idea' # output
22
+ 'output'
23
+ when 'list' # List
24
+ 'list'
25
+ when 'folder' # Folder
26
+ 'folder'
27
+ when 'mail'
28
+ 'mail'
29
+ # when 'xmag' # Tobe discussed
30
+ when 'To be discusssed'
31
+ 'search'
32
+ end
33
+ end
@@ -0,0 +1,141 @@
1
+
2
+
3
+ ########################################################################
4
+ # Methods to be overrided by gemhelp #
5
+ # for Rspec Test
6
+ ########################################################################
7
+ def gen_view_file_exist?(dir)
8
+ File.exists?(dir)
9
+ end
10
+
11
+ def gen_view_mkdir(dir,t)
12
+ Dir.mkdir(dir)
13
+ t << "create directory #{dir}"
14
+ end
15
+
16
+ def gen_view_createfile(s,f,t)
17
+ FileUtils.cp s,f
18
+ # FileUtils.cp "app/jinda/template/linkview.haml",f
19
+ t << "create file #{f}"
20
+ end
21
+ ########################################################################
22
+
23
+ def controller_exists?(modul)
24
+ File.exists? "#{Rails.root}/app/controllers/#{modul}_controller.rb"
25
+ end
26
+ def dup_hash(a)
27
+ h = Hash.new(0)
28
+ a.each do |aa|
29
+ h[aa] += 1
30
+ end
31
+ return h
32
+ end
33
+ def login?
34
+ ## To use remember me cookies then remove
35
+ #session[:user_id] != nil
36
+ current_ma_user != nil
37
+ #cookies[:auth_token] != nil
38
+ end
39
+ def own_xmain?
40
+ if $xmain
41
+ return current_ma_user.id==$xvars['user_id']
42
+ else
43
+ # if eval on first step would return true so user can start service
44
+ return true
45
+ end
46
+ end
47
+ # return nil or value of opt: if provided
48
+ def get_option_xml(opt, xml)
49
+ if xml
50
+ url=''
51
+ xml.each_element('node') do |n|
52
+ text= n.attributes['TEXT']
53
+ # check if opt match from beginning of text
54
+ url= text if text =~/^#{opt}/
55
+ end
56
+ return nil if url.blank?
57
+ c, h= url.split(':', 2)
58
+ opt= h ? h.strip : true
59
+ else
60
+ return nil
61
+ end
62
+ end
63
+ def m_icon(node)
64
+ mcons=[]
65
+ node.each_element("icon") do |mn|
66
+ mcons << mn.attributes["BUILTIN"]
67
+ end
68
+ ticon = mcons[0].to_s
69
+ return ticon
70
+ end
71
+
72
+ # Option to unlisted in the menu_mm if icon 'button_cancel'
73
+ def listed(node)
74
+ icons=[]
75
+ node.each_element("icon") do |nn|
76
+ icons << nn.attributes["BUILTIN"]
77
+ end
78
+
79
+ return !icons.include?("button_cancel")
80
+ end
81
+ def ma_secured?(node)
82
+ icons=[]
83
+ node.each_element("icon") do |nn|
84
+ icons << nn.attributes["BUILTIN"]
85
+ end
86
+ return icons.include?("password")
87
+ end
88
+ def ma_menu?
89
+ icons=[]
90
+ node.each_element("icon") do |mn|
91
+ icons << mn.attributes["BUILTIN"]
92
+ end
93
+ return icons.include?("menu")
94
+ end
95
+
96
+ def freemind2action(s)
97
+ case s.downcase
98
+ #when 'bookmark' # Excellent
99
+ # 'call'
100
+ when 'bookmark' # Excellent
101
+ 'do'
102
+ when 'attach' # Look here
103
+ 'form'
104
+ when 'edit' # Refine
105
+ 'pdf'
106
+ when 'wizard' # Magic
107
+ 'ws'
108
+ when 'help' # Question
109
+ 'if'
110
+ when 'forward' # Forward
111
+ # 'redirect'
112
+ 'direct_to'
113
+ when 'kaddressbook' #Phone
114
+ 'invoke' # invoke new service along the way
115
+ when 'idea' # output
116
+ 'output'
117
+ when 'list' # List
118
+ 'list'
119
+ when 'folder' # Folder
120
+ 'folder'
121
+ when 'mail'
122
+ 'mail'
123
+ # when 'xmag' # Tobe discussed
124
+ when 'To be discusssed'
125
+ 'search'
126
+ end
127
+ end
128
+ def affirm(s)
129
+ return s =~ /[y|yes|t|true]/i ? true : false
130
+ end
131
+ def negate(s)
132
+ return s =~ /[n|no|f|false]/i ? true : false
133
+ end
134
+
135
+ # module FormBuilder
136
+ # def date_field(method, options = {})
137
+ # default= self.object.send(method) || Date.today
138
+ # data_options= ({"mode"=>"calbox"}).merge(options)
139
+ # %Q(<input name='#{self.object_name}[#{method}]' id='#{self.object_name}_#{method}' value='#{default.strftime("%F")}' type='date' data-role='datebox' data-options='#{data_options.to_json}'>).html_safe
140
+ # end
141
+ # end
@@ -0,0 +1,137 @@
1
+
2
+
3
+ def process_models
4
+
5
+ # app= get_app
6
+ # t= ["process models"]
7
+ # xml map sample from index.mm
8
+ # node @CREATED=1273819432637 @ID=ID_1098419600 @MODIFIED=1334737006485 @TEXT=Jinda
9
+ # node @CREATED=1273819462973 @ID=ID_282419531 @MODIFIED=1493705904561 @POSITION=right @TEXT=services
10
+ # node @CREATED=1273819465949 @FOLDED=true @ID=ID_855471610 @MODIFIED=1493768913078 @POSITION=right @TEXT=roles
11
+ # node @CREATED=1273819456867 @ID=ID_1677010054 @MODIFIED=1493418874718 @POSITION=left @TEXT=models
12
+ # node @CREATED=1292122118499 @FOLDED=true @ID=ID_1957754752 @MODIFIED=1493705885123 @TEXT=person
13
+ # node @CREATED=1292122236285 @FOLDED=true @ID=ID_959987887 @MODIFIED=1493768919147 @TEXT=address
14
+ # node @CREATED=1493418879485 @ID=ID_1995497233 @MODIFIED=1493718770637 @TEXT=article
15
+ # node @CREATED=1493418915637 @ID=ID_429078131 @MODIFIED=1493418930081 @TEXT=comment
16
+
17
+ models= @app.elements["//node[@TEXT='models']"] || REXML::Document.new
18
+ models.each_element('node') do |model|
19
+ # t << "= "+model.attributes["TEXT"]
20
+ model_name= model.attributes["TEXT"]
21
+ next if model_name.comment?
22
+ model_code= name2code(model_name)
23
+ model_file= "#{Rails.root}/app/models/#{model_code}.rb"
24
+
25
+ if File.exists?(model_file)
26
+ doc= File.read(model_file)
27
+ else
28
+ system("rails generate model #{model_code}")
29
+ doc= File.read(model_file)
30
+ end
31
+
32
+ doc = add_utf8(doc)
33
+ attr_hash= make_fields(model)
34
+ doc = add_jinda(doc, attr_hash)
35
+ # t << "modified: #{model_file}"
36
+ File.open(model_file, "w") do |f|
37
+ f.puts doc
38
+ end
39
+
40
+ end
41
+
42
+ # puts t.join("\n")
43
+ end
44
+
45
+ def add_jinda(doc, attr_hash)
46
+ if doc =~ /#{@btext}/
47
+ s1,s2,s3= doc.partition(/ #{@btext}.*#{@etext}\n/m)
48
+ s2= ""
49
+ else
50
+ s1,s2,s3= doc.partition("include Mongoid::Document\n")
51
+ end
52
+ doc= s1+s2+ <<-EOT
53
+ #{@btext}
54
+ include Mongoid::Timestamps
55
+ EOT
56
+
57
+ attr_hash.each do |a|
58
+ # doc+= "\n*****"+a.to_s+"\n"
59
+ if a[:edit]
60
+ doc += " #{a[:text]}\n"
61
+ else
62
+ # Fixed: Capitalize only first char
63
+ # doc += " field :#{a[:code]}, :type => #{a[:type].capitalize}\n"
64
+ a[:type][0] = a[:type][0].capitalize
65
+ doc += " field :#{a[:code]}, :type => #{a[:type]}\n"
66
+ end
67
+ end
68
+ doc += " #{@etext}\n"
69
+ doc + s3
70
+ end
71
+
72
+ def add_utf8(doc)
73
+ unless doc =~ /encoding\s*:\s*utf-8/
74
+ doc.insert 0, "# encoding: utf-8\n"
75
+ else
76
+ doc
77
+ end
78
+ end
79
+
80
+ # inspect all nodes that has attached file (2 cases) and replace relative path with absolute path
81
+ def make_folders_absolute(f,tt)
82
+ tt.elements.each("//node") do |nn|
83
+ if nn.attributes['LINK']
84
+ nn.attributes['LINK']= File.expand_path(File.dirname(f))+"/#{nn.attributes['LINK']}"
85
+ end
86
+ end
87
+ end
88
+
89
+ def name2code(s)
90
+ # rather not ignore # symbol cause it could be comment
91
+ code, name = s.split(':')
92
+ code.downcase.strip.gsub(' ','_').gsub(/[^#_\/a-zA-Z0-9]/,'')
93
+ end
94
+
95
+ def model_exists?(model)
96
+ File.exists? "#{Rails.root}/app/models/#{model}.rb"
97
+ end
98
+
99
+ def make_fields(n)
100
+ # s= field string used by generate model cli (old style jinda)
101
+ s= ""
102
+ # h= hash :code, :type, :edit, :text
103
+ h= []
104
+ n.each_element('node') do |nn|
105
+ text = nn.attributes['TEXT']
106
+ icon = nn.elements['icon']
107
+ edit= (icon && icon.attribute('BUILTIN').value=="edit")
108
+ next if text.comment? && !edit
109
+
110
+ # sometimes freemind puts all fields inside a blank node
111
+ unless text.empty?
112
+ k,v= text.split(/:\s*/,2)
113
+ v ||= 'string'
114
+ v= 'float' if v=~/double/i
115
+ s << " #{name2code(k.strip)}:#{v.strip} "
116
+ h << {:code=>name2code(k.strip), :type=>v.strip, :edit=>edit, :text=>text}
117
+ else
118
+ nn.each_element('node') do |nnn|
119
+ icon = nnn.elements['icon']
120
+ edit1= (icon && icon.attribute('BUILTIN').value=="edit")
121
+ text1 = nnn.attributes['TEXT']
122
+ next if text1 =~ /\#.*/
123
+ k,v= text1.split(/:\s*/,2)
124
+ v ||= 'string'
125
+ v= 'float' if v=~/double/i
126
+ s << " #{name2code(k.strip)}:#{v.strip} "
127
+ h << {:code=>name2code(k.strip), :type=>v.strip, :edit=>edit1, :text=>text1}
128
+ end
129
+ end
130
+ end
131
+ # f
132
+ h
133
+ end
134
+
135
+ ########################################################################
136
+ # END code from jinda.rake #
137
+ ########################################################################