jinda 0.6.3 → 0.6.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 (221) 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/config/routes.rb +44 -0
  141. data/lib/generators/jinda/config_generator.rb +7 -0
  142. data/lib/generators/jinda/install_generator.rb +45 -42
  143. data/lib/generators/jinda/templates/Dockerfile +24 -0
  144. data/lib/generators/jinda/templates/app/assets/javascripts/application.js +1 -10
  145. data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +1 -20
  146. data/lib/generators/jinda/templates/config/mongoid.yml-docker +182 -0
  147. data/lib/generators/jinda/templates/config/mongoid.yml-localhost +182 -0
  148. data/lib/generators/jinda/templates/docker-compose.yml +16 -0
  149. data/lib/generators/jinda/templates/entrypoint.sh +12 -0
  150. data/lib/jinda.rb +2 -1
  151. data/lib/jinda/date_helpers.rb +109 -0
  152. data/lib/jinda/{gemhelpers.rb → gem_helpers.rb} +0 -1
  153. data/lib/jinda/gen_class.rb +13 -0
  154. data/lib/jinda/gen_controller.rb +10 -0
  155. data/lib/jinda/gen_freemind.rb +33 -0
  156. data/lib/jinda/gen_helpers.rb +141 -0
  157. data/lib/jinda/gen_models.rb +137 -0
  158. data/lib/jinda/gen_runseq.rb +71 -0
  159. data/lib/jinda/gen_services.rb +90 -0
  160. data/lib/jinda/gen_xmain.rb +38 -0
  161. data/lib/jinda/get_app.rb +34 -0
  162. data/lib/jinda/helpers.rb +17 -999
  163. data/lib/jinda/init_vars.rb +36 -0
  164. data/lib/jinda/rake_views.rb +59 -0
  165. data/lib/jinda/refresh.rb +67 -0
  166. data/lib/jinda/themes.rb +163 -0
  167. data/lib/jinda/version.rb +1 -1
  168. data/test/dummy/Rakefile +6 -0
  169. data/test/dummy/app/assets/config/manifest.js +3 -0
  170. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  171. data/test/dummy/app/channels/application_cable/channel.rb +4 -0
  172. data/test/dummy/app/channels/application_cable/connection.rb +4 -0
  173. data/test/dummy/app/controllers/application_controller.rb +2 -0
  174. data/test/dummy/app/helpers/application_helper.rb +2 -0
  175. data/test/dummy/app/javascript/packs/application.js +15 -0
  176. data/test/dummy/app/jobs/application_job.rb +7 -0
  177. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  178. data/test/dummy/app/models/application_record.rb +3 -0
  179. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  180. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  181. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  182. data/test/dummy/bin/rails +4 -0
  183. data/test/dummy/bin/rake +4 -0
  184. data/test/dummy/bin/setup +33 -0
  185. data/test/dummy/config.ru +5 -0
  186. data/test/dummy/config/application.rb +19 -0
  187. data/test/dummy/config/boot.rb +5 -0
  188. data/test/dummy/config/cable.yml +10 -0
  189. data/test/dummy/config/database.yml +25 -0
  190. data/test/dummy/config/environment.rb +5 -0
  191. data/test/dummy/config/environments/development.rb +62 -0
  192. data/test/dummy/config/environments/production.rb +112 -0
  193. data/test/dummy/config/environments/test.rb +49 -0
  194. data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
  195. data/test/dummy/config/initializers/assets.rb +12 -0
  196. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  197. data/test/dummy/config/initializers/content_security_policy.rb +28 -0
  198. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  199. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  200. data/test/dummy/config/initializers/inflections.rb +16 -0
  201. data/test/dummy/config/initializers/mime_types.rb +4 -0
  202. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  203. data/test/dummy/config/locales/en.yml +33 -0
  204. data/test/dummy/config/puma.rb +38 -0
  205. data/test/dummy/config/routes.rb +3 -0
  206. data/test/dummy/config/spring.rb +6 -0
  207. data/test/dummy/config/storage.yml +34 -0
  208. data/test/dummy/db/development.sqlite3 +0 -0
  209. data/test/dummy/log/development.log +8 -0
  210. data/test/dummy/public/404.html +67 -0
  211. data/test/dummy/public/422.html +67 -0
  212. data/test/dummy/public/500.html +66 -0
  213. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  214. data/test/dummy/public/apple-touch-icon.png +0 -0
  215. data/test/dummy/public/favicon.ico +0 -0
  216. data/test/dummy/tmp/development_secret.txt +1 -0
  217. data/test/integration/navigation_test.rb +7 -0
  218. data/test/jinda_test.rb +7 -0
  219. data/test/test_helper.rb +19 -0
  220. metadata +227 -141
  221. 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
+ ########################################################################