diff --git a/src/custom/lookandfeelbase.rb b/src/custom/lookandfeelbase.rb
index 56b42d8a4..071a8351a 100644
--- a/src/custom/lookandfeelbase.rb
+++ b/src/custom/lookandfeelbase.rb
@@ -175,6 +175,7 @@ def google_analytics_token
:anthroposophy => 'Anthroposophisches Arzneimittel',
:article_24 => 'Art. 24 ATSG',
:article_24_url => 'http://www.admin.ch/ch/d/sr/830_1/a24.html',
+ :apple_itunes_app => '687642725',
:assign_deprived_sequence => 'Zuweisen',
:assigned_substances => 'Folgende Wirkstoffe sind der Sequenz bereits zugeordnet:',
:assign_fachinfo_equal => 'identisch',
@@ -1871,6 +1872,7 @@ def google_analytics_token
:analysis_search_explain => 'Cherchez dans la liste des analyses prises en charge par les
assureurs-maladie dans le cadre de l\'assurance-maladie obligatoire.',
:and => ' et ',
:anonymous => 'Position anonyme',
+ :apple_itunes_app => '712891884',
:anthroposophy => 'Médicament anthroposophique',
:assigned_substances => 'Les principes actifs suivants sont déjà assignés à la séquence:',
:assign_patinfo => 'Validez les informations liées au patient',
diff --git a/src/view/publictemplate.rb b/src/view/publictemplate.rb
index b98612be2..a59f2e572 100644
--- a/src/view/publictemplate.rb
+++ b/src/view/publictemplate.rb
@@ -1,7 +1,7 @@
#!/usr/bin/env ruby
# encoding: utf-8
# View::PublicTemplate -- oddb -- 15.01.2013 -- yasaka@ywesee.com
-# View::PublicTemplate -- oddb -- 24.10.2002 -- hwyss@ywesee.com
+# View::PublicTemplate -- oddb -- 24.10.2002 -- hwyss@ywesee.com
require 'htmlgrid/template'
require 'view/navigationfoot'
require 'sbsm/time'
@@ -56,6 +56,15 @@ class PublicTemplate < HtmlGrid::Template
]
def init
@additional_javascripts = []
+ app_id_tag = {
+ "name" => "apple-itunes-app",
+ "content" => 'app-id=' + @lookandfeel.lookup(:apple_itunes_app),
+ }
+ if META_TAGS.size == 1
+ META_TAGS.unshift app_id_tag
+ else
+ META_TAGS[0] = app_id_tag
+ end
super
end
def content(model, session)
@@ -126,7 +135,7 @@ def javascripts(context)
scripts
end
def title(context)
- context.title {
+ context.title {
[
@lookandfeel.lookup(:html_title),
@lookandfeel.lookup(@session.state.zone),
diff --git a/test/test_view/publictemplate.rb b/test/test_view/publictemplate.rb
index a5c8e08e1..e035f3b59 100755
--- a/test/test_view/publictemplate.rb
+++ b/test/test_view/publictemplate.rb
@@ -10,6 +10,7 @@
require 'flexmock/minitest'
require 'view/publictemplate'
require 'htmlgrid/form'
+require 'sbsm/cgi'
module ODDB
class Session
@@ -35,28 +36,28 @@ module View
class TestPublicTemplate 'lookup',
+ @lnf = flexmock('lookandfeel',
:enabled? => nil,
:attributes => {},
:resource => 'resource',
:resource_global => 'resource_global',
- :zones => [@zones],
:disabled? => nil,
:zone_navigation => [ 'zone_navigation' ],
:direct_event => 'direct_event',
:_event_url => '_event_url',
:navigation => ['navigation'],
)
+ @lnf.should_receive(:lookup).and_return('lookup').by_default
+ @lnf.should_receive(:zones).and_return([@zones]).by_default
user = flexmock('user', :valid? => nil)
sponsor = flexmock('sponsor', :valid? => nil)
- @session = flexmock('session',
- :lookandfeel => @lnf,
+ @session = flexmock('session',
:flavor => 'gcc',
:user => user,
:sponsor => sponsor,
:get_cookie_input => nil,
)
+ @session.should_receive(:lookandfeel).and_return(@lnf).by_default
@model = flexmock('model')
@template = ODDB::View::StubPublicTemplate.new(@model, @session)
@@ -66,7 +67,7 @@ def test_css_link
assert_equal('link', @template.css_link(context))
end
def test_css_link__lookandfeel_enabled
- flexmock(@lnf,
+ flexmock(@lnf,
:enabled? => true,
:resource_external => 'resource_external'
)
@@ -74,7 +75,7 @@ def test_css_link__lookandfeel_enabled
assert_equal('link', @template.css_link(context))
end
def test_dynamic_html_headers
- flexmock(@lnf,
+ flexmock(@lnf,
:enabled? => true,
:resource_global => 'resource_global'
)
@@ -130,6 +131,25 @@ def test_topfoot__oekk_structure
end
assert_kind_of(ODDB::View::TopFoot, @template.topfoot(@model, @session))
end
+ def test_meta_apple_app_id
+ @lnf.should_receive(:lookup).and_return{|arg| arg.to_s}
+ @lnf.should_receive(:zones).and_return([])
+ @session.should_receive(:event).and_return(nil)
+ @session.should_receive(:lookandfeel).and_return(@lnf)
+ context = flexmock('context', :title => 'title')
+ context = flexmock('context') do |c|
+ c.should_receive(:script).and_return('script')
+ c.should_receive(:style).and_return('style')
+ end
+ state = flexmock('state')
+ state.should_receive(:zone).and_return('zone')
+ state.should_receive(:direct_event).and_return(nil)
+ @session.should_receive(:state).and_return(state)
+ @cgi = CGI.initialize_without_offline_prompt('html4')
+ @template.init
+ html = @template.to_html(@cgi)
+ assert(/META name="apple-itunes-app" content="app-id.*/.match(html))
+ end
end
end # View