ramaze.ch.oddb.org 1.0.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 (286) hide show
  1. data/History.txt +6 -0
  2. data/LICENSE +339 -0
  3. data/Manifest.txt +285 -0
  4. data/README.txt +45 -0
  5. data/Rakefile +28 -0
  6. data/bin/admin +69 -0
  7. data/bin/exportd +63 -0
  8. data/bin/migrate +461 -0
  9. data/bin/oddbd +62 -0
  10. data/data/fulltext/data/dicts/french/fulltext.aff +1057 -0
  11. data/data/fulltext/data/dicts/french/fulltext.dict +91189 -0
  12. data/data/fulltext/data/dicts/french/fulltext.stop +135 -0
  13. data/data/fulltext/data/dicts/german/fulltext.aff +1233 -0
  14. data/data/fulltext/data/dicts/german/fulltext.dict +287574 -0
  15. data/data/fulltext/data/dicts/german/fulltext.stop +133 -0
  16. data/data/fulltext/data/german_compound/README +15 -0
  17. data/data/fulltext/data/german_compound/compound.pl +63 -0
  18. data/data/fulltext/data/german_compound/german.stop +20 -0
  19. data/data/fulltext/data/ispell-german-compound.tar.gz +0 -0
  20. data/data/fulltext/redist/dict_french/Makefile +12 -0
  21. data/data/fulltext/redist/dict_french/README.french +1 -0
  22. data/data/fulltext/redist/dict_french/dict_french.sql.in +7 -0
  23. data/data/fulltext/redist/dict_french/dict_snowball.c +56 -0
  24. data/data/fulltext/redist/dict_french/french_stem.c +1222 -0
  25. data/data/fulltext/redist/dict_french/french_stem.h +16 -0
  26. data/data/fulltext/redist/dict_french/subinclude.h +2 -0
  27. data/data/fulltext/redist/dict_german/Makefile +12 -0
  28. data/data/fulltext/redist/dict_german/README.german +1 -0
  29. data/data/fulltext/redist/dict_german/dict_german.sql.in +7 -0
  30. data/data/fulltext/redist/dict_german/dict_snowball.c +56 -0
  31. data/data/fulltext/redist/dict_german/german_stem.c +527 -0
  32. data/data/fulltext/redist/dict_german/german_stem.h +16 -0
  33. data/data/fulltext/redist/dict_german/subinclude.h +1 -0
  34. data/data/fulltext/redist/french_stem.c +1222 -0
  35. data/data/fulltext/redist/french_stem.h +16 -0
  36. data/data/fulltext/redist/german_stem.c +527 -0
  37. data/data/fulltext/redist/german_stem.h +16 -0
  38. data/lib/fixes/ruby19.rb +21 -0
  39. data/lib/fixes/selenium.rb +20 -0
  40. data/lib/fixes/singular.rb +8 -0
  41. data/lib/fixes/yaml.rb +13 -0
  42. data/lib/oddb.rb +11 -0
  43. data/lib/oddb/business/company.rb +18 -0
  44. data/lib/oddb/business/invoice.rb +75 -0
  45. data/lib/oddb/business/price.rb +60 -0
  46. data/lib/oddb/config.rb +73 -0
  47. data/lib/oddb/drugs.rb +16 -0
  48. data/lib/oddb/drugs/active_agent.rb +37 -0
  49. data/lib/oddb/drugs/atc.rb +53 -0
  50. data/lib/oddb/drugs/composition.rb +41 -0
  51. data/lib/oddb/drugs/ddd.rb +24 -0
  52. data/lib/oddb/drugs/dose.rb +107 -0
  53. data/lib/oddb/drugs/galenic_form.rb +21 -0
  54. data/lib/oddb/drugs/galenic_group.rb +17 -0
  55. data/lib/oddb/drugs/package.rb +87 -0
  56. data/lib/oddb/drugs/part.rb +56 -0
  57. data/lib/oddb/drugs/product.rb +25 -0
  58. data/lib/oddb/drugs/sequence.rb +61 -0
  59. data/lib/oddb/drugs/substance.rb +31 -0
  60. data/lib/oddb/drugs/substance_group.rb +13 -0
  61. data/lib/oddb/drugs/unit.rb +12 -0
  62. data/lib/oddb/export.rb +4 -0
  63. data/lib/oddb/export/csv.rb +89 -0
  64. data/lib/oddb/export/l10n_sessions.rb +30 -0
  65. data/lib/oddb/export/rss.rb +44 -0
  66. data/lib/oddb/export/server.rb +58 -0
  67. data/lib/oddb/export/xls.rb +119 -0
  68. data/lib/oddb/export/yaml.rb +123 -0
  69. data/lib/oddb/html/state/drugs/admin/package.rb +189 -0
  70. data/lib/oddb/html/state/drugs/admin/product.rb +56 -0
  71. data/lib/oddb/html/state/drugs/admin/sequence.rb +259 -0
  72. data/lib/oddb/html/state/drugs/ajax/explain_ddd_price.rb +19 -0
  73. data/lib/oddb/html/state/drugs/ajax/explain_price.rb +19 -0
  74. data/lib/oddb/html/state/drugs/ajax/global.rb +18 -0
  75. data/lib/oddb/html/state/drugs/ajax/package_infos.rb +19 -0
  76. data/lib/oddb/html/state/drugs/ajax/remote_infos.rb +19 -0
  77. data/lib/oddb/html/state/drugs/atc_browser.rb +39 -0
  78. data/lib/oddb/html/state/drugs/atc_guidelines.rb +21 -0
  79. data/lib/oddb/html/state/drugs/compare.rb +52 -0
  80. data/lib/oddb/html/state/drugs/download_export.rb +18 -0
  81. data/lib/oddb/html/state/drugs/fachinfo.rb +21 -0
  82. data/lib/oddb/html/state/drugs/feedback.rb +94 -0
  83. data/lib/oddb/html/state/drugs/global.rb +266 -0
  84. data/lib/oddb/html/state/drugs/init.rb +18 -0
  85. data/lib/oddb/html/state/drugs/login.rb +17 -0
  86. data/lib/oddb/html/state/drugs/package.rb +32 -0
  87. data/lib/oddb/html/state/drugs/patinfo.rb +21 -0
  88. data/lib/oddb/html/state/drugs/products.rb +51 -0
  89. data/lib/oddb/html/state/drugs/result.rb +125 -0
  90. data/lib/oddb/html/state/global.rb +165 -0
  91. data/lib/oddb/html/state/global_predefine.rb +17 -0
  92. data/lib/oddb/html/state/limit.rb +17 -0
  93. data/lib/oddb/html/state/login.rb +56 -0
  94. data/lib/oddb/html/state/paypal/checkout.rb +130 -0
  95. data/lib/oddb/html/state/paypal/collect.rb +46 -0
  96. data/lib/oddb/html/state/paypal/redirect.rb +18 -0
  97. data/lib/oddb/html/state/register_export.rb +38 -0
  98. data/lib/oddb/html/state/register_poweruser.rb +17 -0
  99. data/lib/oddb/html/state/viral/admin.rb +76 -0
  100. data/lib/oddb/html/state/viral/poweruser.rb +16 -0
  101. data/lib/oddb/html/util/annotated_list.rb +39 -0
  102. data/lib/oddb/html/util/know_it_all.rb +28 -0
  103. data/lib/oddb/html/util/known_user.rb +55 -0
  104. data/lib/oddb/html/util/lookandfeel.rb +554 -0
  105. data/lib/oddb/html/util/need_all_input.rb +29 -0
  106. data/lib/oddb/html/util/session.rb +88 -0
  107. data/lib/oddb/html/util/sort.rb +72 -0
  108. data/lib/oddb/html/util/unsaved_helper.rb +20 -0
  109. data/lib/oddb/html/util/validator.rb +54 -0
  110. data/lib/oddb/html/view/ajax/json.rb +22 -0
  111. data/lib/oddb/html/view/alpha_header.rb +28 -0
  112. data/lib/oddb/html/view/document.rb +126 -0
  113. data/lib/oddb/html/view/drugs/admin/package.rb +237 -0
  114. data/lib/oddb/html/view/drugs/admin/product.rb +104 -0
  115. data/lib/oddb/html/view/drugs/admin/sequence.rb +312 -0
  116. data/lib/oddb/html/view/drugs/ajax/explain_ddd_price.rb +87 -0
  117. data/lib/oddb/html/view/drugs/ajax/explain_price.rb +61 -0
  118. data/lib/oddb/html/view/drugs/ajax/package_infos.rb +105 -0
  119. data/lib/oddb/html/view/drugs/ajax/remote_infos.rb +44 -0
  120. data/lib/oddb/html/view/drugs/atc_browser.rb +68 -0
  121. data/lib/oddb/html/view/drugs/atc_guidelines.rb +94 -0
  122. data/lib/oddb/html/view/drugs/compare.rb +95 -0
  123. data/lib/oddb/html/view/drugs/download_export.rb +28 -0
  124. data/lib/oddb/html/view/drugs/fachinfo.rb +46 -0
  125. data/lib/oddb/html/view/drugs/feedback.rb +231 -0
  126. data/lib/oddb/html/view/drugs/init.rb +51 -0
  127. data/lib/oddb/html/view/drugs/legend.rb +24 -0
  128. data/lib/oddb/html/view/drugs/package.rb +398 -0
  129. data/lib/oddb/html/view/drugs/patinfo.rb +46 -0
  130. data/lib/oddb/html/view/drugs/products.rb +97 -0
  131. data/lib/oddb/html/view/drugs/result.rb +296 -0
  132. data/lib/oddb/html/view/drugs/search.rb +33 -0
  133. data/lib/oddb/html/view/drugs/template.rb +15 -0
  134. data/lib/oddb/html/view/foot.rb +52 -0
  135. data/lib/oddb/html/view/google.rb +23 -0
  136. data/lib/oddb/html/view/google_ads.rb +40 -0
  137. data/lib/oddb/html/view/head.rb +78 -0
  138. data/lib/oddb/html/view/limit.rb +109 -0
  139. data/lib/oddb/html/view/list.rb +59 -0
  140. data/lib/oddb/html/view/login.rb +38 -0
  141. data/lib/oddb/html/view/navigation.rb +67 -0
  142. data/lib/oddb/html/view/offset_header.rb +35 -0
  143. data/lib/oddb/html/view/paypal/collect.rb +84 -0
  144. data/lib/oddb/html/view/paypal/redirect.rb +51 -0
  145. data/lib/oddb/html/view/paypal/register_form.rb +106 -0
  146. data/lib/oddb/html/view/register_export.rb +29 -0
  147. data/lib/oddb/html/view/register_poweruser.rb +29 -0
  148. data/lib/oddb/html/view/rss/feedback.rb +64 -0
  149. data/lib/oddb/html/view/rss_preview.rb +54 -0
  150. data/lib/oddb/html/view/search.rb +104 -0
  151. data/lib/oddb/html/view/snapback.rb +24 -0
  152. data/lib/oddb/html/view/template.rb +56 -0
  153. data/lib/oddb/import/excel.rb +45 -0
  154. data/lib/oddb/import/import.rb +39 -0
  155. data/lib/oddb/import/rtf.rb +410 -0
  156. data/lib/oddb/import/whocc.rb +173 -0
  157. data/lib/oddb/import/xml.rb +15 -0
  158. data/lib/oddb/model.rb +179 -0
  159. data/lib/oddb/persistence/odba.rb +33 -0
  160. data/lib/oddb/persistence/odba/business/company.rb +13 -0
  161. data/lib/oddb/persistence/odba/business/invoice.rb +15 -0
  162. data/lib/oddb/persistence/odba/drugs/atc.rb +15 -0
  163. data/lib/oddb/persistence/odba/drugs/galenic_form.rb +18 -0
  164. data/lib/oddb/persistence/odba/drugs/galenic_group.rb +13 -0
  165. data/lib/oddb/persistence/odba/drugs/package.rb +25 -0
  166. data/lib/oddb/persistence/odba/drugs/product.rb +13 -0
  167. data/lib/oddb/persistence/odba/drugs/sequence.rb +21 -0
  168. data/lib/oddb/persistence/odba/drugs/substance.rb +21 -0
  169. data/lib/oddb/persistence/odba/drugs/substance_group.rb +13 -0
  170. data/lib/oddb/persistence/odba/drugs/unit.rb +13 -0
  171. data/lib/oddb/persistence/odba/export.rb +26 -0
  172. data/lib/oddb/persistence/odba/model.rb +68 -0
  173. data/lib/oddb/persistence/odba/regulatory/authority.rb +13 -0
  174. data/lib/oddb/persistence/odba/regulatory/registration.rb +13 -0
  175. data/lib/oddb/persistence/odba/text/document.rb +11 -0
  176. data/lib/oddb/persistence/odba/util/code.rb +11 -0
  177. data/lib/oddb/persistence/odba/util/m10l_document.rb +13 -0
  178. data/lib/oddb/persistence/og.rb +16 -0
  179. data/lib/oddb/persistence/og/drugs/composition.rb +14 -0
  180. data/lib/oddb/persistence/og/drugs/product.rb +14 -0
  181. data/lib/oddb/persistence/og/drugs/sequence.rb +15 -0
  182. data/lib/oddb/persistence/og/model.rb +25 -0
  183. data/lib/oddb/persistence/og/util/multilingual.rb +13 -0
  184. data/lib/oddb/redist/rtf_tools/reader.rb +139 -0
  185. data/lib/oddb/regulatory/authority.rb +14 -0
  186. data/lib/oddb/regulatory/registration.rb +15 -0
  187. data/lib/oddb/remote/business/company.rb +23 -0
  188. data/lib/oddb/remote/drugs/active_agent.rb +27 -0
  189. data/lib/oddb/remote/drugs/atc.rb +32 -0
  190. data/lib/oddb/remote/drugs/dose.rb +8 -0
  191. data/lib/oddb/remote/drugs/galenic_form.rb +25 -0
  192. data/lib/oddb/remote/drugs/package.rb +126 -0
  193. data/lib/oddb/remote/drugs/part.rb +30 -0
  194. data/lib/oddb/remote/drugs/product.rb +19 -0
  195. data/lib/oddb/remote/drugs/sequence.rb +46 -0
  196. data/lib/oddb/remote/drugs/substance.rb +20 -0
  197. data/lib/oddb/remote/drugs/unit.rb +19 -0
  198. data/lib/oddb/remote/object.rb +36 -0
  199. data/lib/oddb/remote/text/document.rb +20 -0
  200. data/lib/oddb/remote/util/m10l_document.rb +22 -0
  201. data/lib/oddb/text/chapter.rb +27 -0
  202. data/lib/oddb/text/document.rb +43 -0
  203. data/lib/oddb/text/format.rb +37 -0
  204. data/lib/oddb/text/paragraph.rb +58 -0
  205. data/lib/oddb/text/picture.rb +93 -0
  206. data/lib/oddb/text/table.rb +68 -0
  207. data/lib/oddb/util.rb +8 -0
  208. data/lib/oddb/util/annotated_list.rb +37 -0
  209. data/lib/oddb/util/code.rb +69 -0
  210. data/lib/oddb/util/comparison.rb +36 -0
  211. data/lib/oddb/util/exporter.rb +8 -0
  212. data/lib/oddb/util/feedback.rb +23 -0
  213. data/lib/oddb/util/ipn.rb +48 -0
  214. data/lib/oddb/util/m10l_document.rb +38 -0
  215. data/lib/oddb/util/mail.rb +73 -0
  216. data/lib/oddb/util/money.rb +60 -0
  217. data/lib/oddb/util/multilingual.rb +70 -0
  218. data/lib/oddb/util/quanty.rb +4 -0
  219. data/lib/oddb/util/quanty/fact.rb +229 -0
  220. data/lib/oddb/util/quanty/main.rb +160 -0
  221. data/lib/oddb/util/quanty/parse.rb +853 -0
  222. data/lib/oddb/util/quanty/units.dump +0 -0
  223. data/lib/oddb/util/server.rb +117 -0
  224. data/lib/oddb/util/updater.rb +41 -0
  225. data/lib/oddb/util/ydim.rb +110 -0
  226. data/lib/oddb/util/yus.rb +46 -0
  227. data/test/business/test_company.rb +29 -0
  228. data/test/business/test_price.rb +46 -0
  229. data/test/drugs/test_active_agent.rb +53 -0
  230. data/test/drugs/test_atc.rb +54 -0
  231. data/test/drugs/test_composition.rb +88 -0
  232. data/test/drugs/test_ddd.rb +22 -0
  233. data/test/drugs/test_dose.rb +190 -0
  234. data/test/drugs/test_galenic_form.rb +41 -0
  235. data/test/drugs/test_package.rb +173 -0
  236. data/test/drugs/test_part.rb +32 -0
  237. data/test/drugs/test_product.rb +31 -0
  238. data/test/drugs/test_sequence.rb +140 -0
  239. data/test/drugs/test_substance.rb +51 -0
  240. data/test/drugs/test_substance_group.rb +27 -0
  241. data/test/export/test_rss.rb +94 -0
  242. data/test/export/test_server.rb +117 -0
  243. data/test/export/test_xls.rb +152 -0
  244. data/test/export/test_yaml.rb +120 -0
  245. data/test/import/data/html/whocc/A.html +56 -0
  246. data/test/import/data/html/whocc/A03.html +48 -0
  247. data/test/import/data/html/whocc/A03AB.html +48 -0
  248. data/test/import/data/html/whocc/A06AA.html +47 -0
  249. data/test/import/data/html/whocc/C03.html +47 -0
  250. data/test/import/data/html/whocc/login.html +77 -0
  251. data/test/import/data/xml/ATC_2006.xml +47 -0
  252. data/test/import/data/xml/ATC_2006_ddd.xml +35 -0
  253. data/test/import/test_excel.rb +34 -0
  254. data/test/import/test_rtf.rb +40 -0
  255. data/test/import/test_whocc.rb +315 -0
  256. data/test/remote/drugs/test_active_agent.rb +36 -0
  257. data/test/selenium/selenium-server.jar +0 -0
  258. data/test/selenium/test_atc_browser.rb +122 -0
  259. data/test/selenium/test_atc_guidelines.rb +96 -0
  260. data/test/selenium/test_collect.rb +138 -0
  261. data/test/selenium/test_compare.rb +206 -0
  262. data/test/selenium/test_fachinfo.rb +130 -0
  263. data/test/selenium/test_feedback.rb +196 -0
  264. data/test/selenium/test_init.rb +52 -0
  265. data/test/selenium/test_limit.rb +305 -0
  266. data/test/selenium/test_login.rb +67 -0
  267. data/test/selenium/test_package.rb +512 -0
  268. data/test/selenium/test_patinfo.rb +131 -0
  269. data/test/selenium/test_product.rb +80 -0
  270. data/test/selenium/test_products.rb +142 -0
  271. data/test/selenium/test_search.rb +715 -0
  272. data/test/selenium/test_sequence.rb +543 -0
  273. data/test/selenium/unit.rb +185 -0
  274. data/test/stub/http_server.rb +169 -0
  275. data/test/stub/model.rb +173 -0
  276. data/test/suite.rb +15 -0
  277. data/test/test_model.rb +83 -0
  278. data/test/util/test_code.rb +74 -0
  279. data/test/util/test_ipn.rb +117 -0
  280. data/test/util/test_mail.rb +86 -0
  281. data/test/util/test_multilingual.rb +97 -0
  282. data/test/util/test_server.rb +48 -0
  283. data/test/util/test_updater.rb +353 -0
  284. data/test/util/test_ydim.rb +115 -0
  285. data/test/util/test_yus.rb +79 -0
  286. metadata +418 -0
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::Google -- de.oddb.org -- 21.02.2007 -- hwyss@ywesee.com
3
+
4
+ module ODDB
5
+ module Html
6
+ module View
7
+ module Google
8
+ def google(model)
9
+ @google_id ||= 0
10
+ @google_id += 1
11
+ link = HtmlGrid::Link.new(:google, model, @session, self)
12
+ link.css_id = "google_%i" % @google_id
13
+ name = model.name.send(@session.language)
14
+ link.href = "http://www.google.de/search?q=%s" % name
15
+ link.dojo_title = @lookandfeel.lookup(:google, name)
16
+ link.css_class = 'square google'
17
+ link.label = false
18
+ link
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::GoogleAds -- de.oddb.org -- 28.02.2008 -- hwyss@ywesee.com
3
+
4
+ require 'htmlgrid/component'
5
+
6
+ module ODDB
7
+ module Html
8
+ module View
9
+ class GoogleAds < HtmlGrid::Component
10
+ def initialize(opts = {:channel => '2298340258', :width => 250, :height => 250})
11
+ @channel = opts[:channel]
12
+ @width = opts[:width]
13
+ @height = opts[:height]
14
+ @format = "#{@width}x#{@height}_as"
15
+ super
16
+ end
17
+ def to_html(context)
18
+ <<-EOS
19
+ <script type="text/javascript"><!--
20
+ google_ad_client = "pub-6948570700973491";
21
+ google_ad_width = "#{@width}";
22
+ google_ad_height = "#{@height}";
23
+ google_ad_format = "#{@format}";
24
+ google_ad_channel ="#{@channel}";
25
+ google_ad_type = "text_image";
26
+ google_color_border = "DBE1D6";
27
+ google_color_bg = "E6FFD6";
28
+ google_color_link = "003366";
29
+ google_color_url = "FF3300";
30
+ google_color_text = "003399";
31
+ //--></script>
32
+ <script type="text/javascript"
33
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
34
+ </script>
35
+ EOS
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::Head -- de.oddb.org -- 02.11.2006 -- hwyss@ywesee.com
3
+
4
+ require 'htmlgrid/divcomposite'
5
+ require 'htmlgrid/image'
6
+ require 'htmlgrid/link'
7
+ require 'htmlgrid/span'
8
+ require 'oddb/html/view/google_ads'
9
+
10
+ module ODDB
11
+ module Html
12
+ module View
13
+ class Head < HtmlGrid::DivComposite
14
+ COMPONENTS = {
15
+ [0,0] => :user,
16
+ [0,1] => :google_ads,
17
+ [0,2] => :logo,
18
+ }
19
+ CSS_ID_MAP = ["user", "google-ads"]
20
+ def google_ads(model)
21
+ if(@lookandfeel.enabled?(:google_ads) && !@session.logged_in?)
22
+ GoogleAds.new :width => 468, :height => 60, :channel => '6336403681'
23
+ end
24
+ end
25
+ def logo(model)
26
+ return if @lookandfeel.disabled? :logo
27
+ target = :home
28
+ logo = HtmlGrid::Image.new(:logo, model, @session, self)
29
+ if(@session.direct_event == target)
30
+ logo
31
+ else
32
+ link = HtmlGrid::Link.new(target, model, @session, self)
33
+ link.value = logo
34
+ link.href = @lookandfeel._event_url(target)
35
+ link
36
+ end
37
+ end
38
+ def user(model)
39
+ user = @session.user
40
+ if(user.is_a? Util::KnownUser)
41
+ @lookandfeel.lookup(:welcome_user, user.name)
42
+ end
43
+ end
44
+ end
45
+ class WelcomeHead < Head
46
+ COMPONENTS = {
47
+ [0,0] => :user,
48
+ [0,1] => :welcome,
49
+ [0,2] => :logo,
50
+ }
51
+ CSS_ID_MAP = ["user", "welcome"]
52
+ def welcome(model)
53
+ return unless @lookandfeel.enabled?(:welcome)
54
+ link = HtmlGrid::Link.new(:welcome_drugs, model, @session, self)
55
+ link.value.gsub!("\n", "<br>")
56
+ link.href = @lookandfeel.lookup(:screencast_url)
57
+ span = HtmlGrid::Span.new(model, @session, self)
58
+ span.css_id = "data_declaration"
59
+ span.value = @lookandfeel.lookup(:welcome_data_declaration)
60
+ span.dojo_title = [
61
+ @lookandfeel.lookup(:drugs_fixprices), "\n",
62
+ url_link("http://www.dimdi.de/static/de/amg/fbag/index.htm"),
63
+ "\n\n", @lookandfeel.lookup(:drugs_copay_free), "\n",
64
+ url_link("https://www.gkv-spitzenverband.de/Befreiungsliste_Arzneimittel_Versicherte.gkvnet"),
65
+ "\n\n", @lookandfeel.lookup(:drugs_atc_codes), "\n",
66
+ url_link("http://www.whocc.no/atcddd/"),
67
+ ]
68
+ [ link, span ]
69
+ end
70
+ def url_link(url)
71
+ link = HtmlGrid::Link.new(:none, model, @session, self)
72
+ link.href = link.value = url
73
+ link
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,109 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::Limit -- de.oddb.org -- 20.12.2007 -- hwyss@ywesee.com
3
+
4
+ require 'htmlgrid/divcomposite'
5
+ require 'htmlgrid/errormessage'
6
+ require 'oddb/html/view/template'
7
+ require 'oddb/html/view/login'
8
+
9
+ module ODDB
10
+ module Html
11
+ module View
12
+ class LimitForm < HtmlGrid::Form
13
+ include HtmlGrid::ErrorMessage
14
+ COMPONENTS = {
15
+ [0,0] => :query_limit_poweruser_365,
16
+ [2,0] => :query_limit_poweruser_a,
17
+ [0,1] => :query_limit_poweruser_30,
18
+ [2,1] => :query_limit_poweruser_b,
19
+ [0,2] => :query_limit_poweruser_1,
20
+ [2,2] => :query_limit_poweruser_c,
21
+ [2,3] => :submit,
22
+ }
23
+ LABELS = true
24
+ LEGACY_INTERFACE = false
25
+ EVENT = :proceed_poweruser
26
+ def init
27
+ super
28
+ error_message
29
+ end
30
+ def query_limit_poweruser_a(model)
31
+ query_limit_poweruser_txt(:query_limit_poweruser_a, 365)
32
+ end
33
+ def query_limit_poweruser_b(model)
34
+ @lookandfeel.lookup(:query_limit_poweruser_b, ODDB.config.query_limit,
35
+ ODDB::Util::Money.new(ODDB.config.prices["org.oddb.de.view.30"]))
36
+ end
37
+ def query_limit_poweruser_c(model)
38
+ query_limit_poweruser_txt(:query_limit_poweruser_c, 1)
39
+ end
40
+ def query_limit_poweruser_txt(key, duration)
41
+ price = ODDB::Util::Money.new ODDB.config.prices["org.oddb.de.view.#{duration}"]
42
+ @lookandfeel.lookup(key, price)
43
+ end
44
+ def query_limit_poweruser_1(model)
45
+ query_limit_poweruser_radio(1)
46
+ end
47
+ def query_limit_poweruser_30(model)
48
+ query_limit_poweruser_radio(30)
49
+ end
50
+ def query_limit_poweruser_365(model)
51
+ query_limit_poweruser_radio(365)
52
+ end
53
+ def query_limit_poweruser_radio(value)
54
+ radio = HtmlGrid::InputRadio.new('days', @model, @session, self)
55
+ radio.value = value
56
+ radio
57
+ end
58
+ end
59
+ class LimitComposite < HtmlGrid::DivComposite
60
+ COMPONENTS = {
61
+ [0,0] => InlineSearch,
62
+ [0,1] => :query_limit,
63
+ [0,2] => 'query_limit_welcome',
64
+ [0,2] => 'query_limit_new_user',
65
+ [1,2] => :query_limit_more_info,
66
+ [0,3] => :query_limit_explain,
67
+ [0,4] => 'query_limit_poweruser',
68
+ [0,5] => LimitForm,
69
+ [0,6] => 'query_limit_login',
70
+ [0,7] => LoginForm,
71
+ [0,8] => 'query_limit_thanks',
72
+ [0,9] => 'query_limit_thanks0',
73
+ [1,9] => :query_limit_email,
74
+ [2,9] => 'query_limit_thanks1',
75
+ }
76
+ CSS_ID_MAP = ['result-search', 'title']
77
+ CSS_MAP = { 1 => 'heading', 2 => 'divider', 3 => 'explain',
78
+ 4 => 'explain', 6 => 'divider', 8 => 'divider', 9 => 'explain' }
79
+ def query_limit(model)
80
+ @lookandfeel.lookup(:query_limit, ODDB.config.query_limit)
81
+ end
82
+ def query_limit_download(model)
83
+ link = HtmlGrid::Link.new(:query_limit_download,
84
+ model, @session, self)
85
+ link.value = link.href = @lookandfeel._event_url(:download_export)
86
+ link
87
+ end
88
+ def query_limit_email(model)
89
+ link = HtmlGrid::Link.new(:ywesee_contact_email,
90
+ model, @session, self)
91
+ link.href = @lookandfeel.lookup(:ywesee_contact_href)
92
+ link
93
+ end
94
+ def query_limit_explain(model)
95
+ @lookandfeel.lookup(:query_limit_explain, @session.remote_ip,
96
+ ODDB.config.query_limit)
97
+ end
98
+ def query_limit_more_info(model)
99
+ link = HtmlGrid::Link.new(:query_limit_more_info, model, @session, self)
100
+ link.href = "http://wiki.oddb.org/wiki.php/Main/DeODDB"
101
+ link
102
+ end
103
+ end
104
+ class Limit < Template
105
+ CONTENT = LimitComposite
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::List -- de.oddb.org -- 12.12.2006 -- hwyss@ywesee.com
3
+
4
+ require 'htmlgrid/list'
5
+
6
+ module ODDB
7
+ module Html
8
+ module View
9
+ class List < HtmlGrid::List
10
+ BACKGROUND_ROW = 'bg'
11
+ BACKGROUND_SUFFIX = ''
12
+ LEGACY_INTERFACE = false
13
+ SORT_DEFAULT = nil
14
+ def query_args
15
+ []
16
+ end
17
+ def query_key
18
+ :query
19
+ end
20
+ def sort_link(thkey, matrix, component)
21
+ sortlink = HtmlGrid::Link.new(thkey, @model, @session, self)
22
+ args = [ query_key, model.query ]
23
+ args.concat query_args
24
+ args.push('sortvalue', component.to_s)
25
+ sortlink.href = @lookandfeel._event_url(@session.event, args)
26
+ sortlink.css_class = css_head_map[matrix]
27
+ sortlink.css_id = thkey
28
+ titlekey = thkey.sub(/^th/, "tt")
29
+ if(title = @lookandfeel.lookup(titlekey))
30
+ ## Inefficient - if there are performance problems, remove the
31
+ # next two lines and set dojo_title only where necessary
32
+ link = HtmlGrid::Link.new(titlekey, @model, @session, self)
33
+ sortlink.dojo_title = link
34
+ # TODO: make the hrefs dynamic (latest update)
35
+ case titlekey
36
+ when "tt_active_agents"
37
+ link.value = @lookandfeel.lookup(:tt_active_agents_link)
38
+ link.href = "ftp://ftp.dimdi.de/pub/amg/darform_011006.txt"
39
+ sortlink.dojo_title = [ title, link ]
40
+ when "tt_atc"
41
+ link.href = "http://www.whocc.no/atcddd/atcsystem.html"
42
+ when "tt_company"
43
+ link.href = "https://www.gkv-spitzenverband.de/Befreiungsliste_Arzneimittel_Versicherte.gkvnet"
44
+ when "tt_price_festbetrag"
45
+ link.href = "http://www.dimdi.de/static/de/amg/fbag/index.htm"
46
+ when "tt_price_public", "tt_price_difference"
47
+ link.href = "ftp://ftp.dimdi.de/pub/amg/satzbeschr_010108.pdf"
48
+ when "tt_price_exfactory"
49
+ link.href = "http://wiki.oddb.org/uploads/Main/Aenderung_der_AMPVo_per_1.1.2004_-_632.pdf"
50
+ else
51
+ sortlink.dojo_title = title
52
+ end
53
+ end
54
+ sortlink
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::Login -- de.oddb.org -- 26.10.2007 -- hwyss@ywesee.com
3
+
4
+ require 'htmlgrid/pass'
5
+ require 'oddb/html/view/drugs/template'
6
+ require 'oddb/html/view/snapback'
7
+
8
+ module ODDB
9
+ module Html
10
+ module View
11
+ class LoginForm < HtmlGrid::Form
12
+ COMPONENTS = {
13
+ [0,0] => :email,
14
+ [0,1] => :pass,
15
+ [1,2] => :submit,
16
+ }
17
+ EVENT = :login_
18
+ FORM_NAME = 'login'
19
+ LABELS = true
20
+ SYMBOL_MAP = {
21
+ :pass => HtmlGrid::Pass,
22
+ }
23
+ end
24
+ class LoginComposite < HtmlGrid::DivComposite
25
+ include Snapback
26
+ COMPONENTS = {
27
+ [0,0] => :snapback,
28
+ [0,1] => "login",
29
+ [0,2] => LoginForm,
30
+ }
31
+ CSS_ID_MAP = [ 'snapback', 'title' ]
32
+ end
33
+ class Login < Template
34
+ CONTENT = LoginComposite
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::Navigation -- de.oddb.org -- 06.11.2006 -- hwyss@ywesee.com
3
+
4
+ require 'htmlgrid/div'
5
+
6
+ module ODDB
7
+ module Html
8
+ module View
9
+ class Links < HtmlGrid::Component
10
+ def init
11
+ super
12
+ @value = links(link_keys)
13
+ end
14
+ def links(keys)
15
+ current = @session.direct_event
16
+ keys.collect { |event|
17
+ link = HtmlGrid::Link.new(event, @model, @session, self)
18
+ if(self.respond_to?(event))
19
+ self.send(event, link)
20
+ elsif(current != event)
21
+ link.href = @lookandfeel._event_url(event)
22
+ end
23
+ link
24
+ }
25
+ end
26
+ end
27
+ class CountryLinks < Links
28
+ def link_keys
29
+ country, = @session.server_name.split('.')
30
+ ptrn = /_#{country}$/
31
+ [:oddb_ch, :oddb_de, :oddb_chde].reject { |key|
32
+ ptrn.match(key.to_s) }
33
+ end
34
+ def oddb_ch(link)
35
+ link.href = "http://ch.oddb.org/de/"
36
+ end
37
+ def oddb_chde(link)
38
+ link.href = "http://chde.oddb.org/"
39
+ end
40
+ def oddb_de(link)
41
+ link.href = "http://de.oddb.org/"
42
+ end
43
+ end
44
+ class HelpLinks < Links
45
+ def contact(link)
46
+ link.href = @lookandfeel.lookup(:contact_url)
47
+ end
48
+ def link_keys
49
+ user_navigation.concat [:contact, :home]
50
+ end
51
+ def user_navigation
52
+ nav = @session.user.navigation
53
+ if(nav.empty?)
54
+ [:login]
55
+ else
56
+ nav
57
+ end
58
+ end
59
+ end
60
+ class Navigation < Links
61
+ def link_keys
62
+ @lookandfeel.navigation
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+ # Html::View::OffsetHeader -- de.oddb.org -- 07.12.2006 -- hwyss@ywesee.com
3
+
4
+ module ODDB
5
+ module Html
6
+ module View
7
+ module OffsetHeader
8
+ def compose_header(offset=[0,0])
9
+ offset = super
10
+ model = @session.state.model
11
+ items = model.size
12
+ step = @session.pagelength
13
+ if(items > step)
14
+ current_offset = @session.user_input(:offset).to_i
15
+ 0.step(items - 1, step) { |idx|
16
+ link = HtmlGrid::Link.new(:page, @model, @session, self)
17
+ link.value = sprintf("%i - %i", idx.next,
18
+ [idx + step, items].min)
19
+ unless(idx == current_offset)
20
+ link.href = @lookandfeel._event_url(@session.event,
21
+ [query_key, model.query, 'offset', idx])
22
+ end
23
+ @grid.add(link, *offset)
24
+ }
25
+ @grid.set_colspan(offset.at(0), offset.at(1), full_colspan)
26
+ @grid.add_attribute('id', 'offsetheader', *offset)
27
+ resolve_offset(offset, self::class::OFFSET_STEP)
28
+ else
29
+ offset
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end