修訂 | 68 (tree) |
---|---|
時間 | 2008-04-01 22:41:14 |
作者 | junkikuchi |
updated.
@@ -1,47 +0,0 @@ | ||
1 | -# | |
2 | -# Copyright (C) 2008 Jun Kikuchi <kikuchi@bonnou.com> | |
3 | -# | |
4 | - | |
5 | -Tenarai::ClassLoader.load_class('Widget') | |
6 | - | |
7 | -class Widget | |
8 | - class GoogleMaps < ::Widget | |
9 | - extend Tenarai::ClassLoader | |
10 | - | |
11 | - preference_css 'box' | |
12 | - | |
13 | - preference 'preference' do |pref| | |
14 | - pref.group 'googlemaps' do |gmap| | |
15 | - gmap.edit 'key' do |key| | |
16 | - key.value = 'ABQIAAAAfZwvb09MEQqvWKTm8jvLtRTwM0brOpm-All5BF6PoaKBxRWWERRia6i9gSHSmIyQL2x1OB3bLqIzNQ' | |
17 | - end | |
18 | - end | |
19 | - end | |
20 | - | |
21 | - def render_html_head(xml, builder) | |
22 | - xml.tag( | |
23 | - 'script', | |
24 | - 'type'=> 'text/javascript', | |
25 | - 'src' => 'http://maps.google.com/maps?file=api&v=2&key=%s' % preference.preference.googlemaps.key.value | |
26 | - ).text('') | |
27 | - end | |
28 | - | |
29 | - def render_html(xml, builder) | |
30 | - xml.tag('div', 'id' => html_id).text('') | |
31 | - xml.tag('script', 'type' => 'text/javascript') do |js| | |
32 | - js.code <<-END | |
33 | -$(document).ready(function() { | |
34 | - if(GBrowserIsCompatible()) { | |
35 | - var map = new GMap2(document.getElementById('#{html_id}')); | |
36 | - map.setCenter(new GLatLng(37.4419, -122.1419), 13); | |
37 | - } | |
38 | -}); | |
39 | - | |
40 | -$(document).unload(function() { | |
41 | - GUnload(); | |
42 | -}); | |
43 | - END | |
44 | - end | |
45 | - end | |
46 | - end | |
47 | -end |
@@ -0,0 +1,52 @@ | ||
1 | +# | |
2 | +# Copyright (C) 2008 Jun Kikuchi <kikuchi@bonnou.com> | |
3 | +# | |
4 | + | |
5 | +Tenarai::ClassLoader.load_class('Widget') | |
6 | + | |
7 | +class Widget | |
8 | + class GMap < ::Widget | |
9 | + extend Tenarai::ClassLoader | |
10 | + | |
11 | + preference_css 'box' | |
12 | + | |
13 | + preference 'preference' do |pref| | |
14 | + pref.group 'googlemaps' do |gmap| | |
15 | + gmap.edit 'key' do |key| | |
16 | + key.value = 'ABQIAAAAfZwvb09MEQqvWKTm8jvLtRTwM0brOpm-All5BF6PoaKBxRWWERRia6i9gSHSmIyQL2x1OB3bLqIzNQ' | |
17 | + end | |
18 | + end | |
19 | + end | |
20 | + | |
21 | + def render_html_head(xml, builder) | |
22 | + xml.tag( | |
23 | + 'script', | |
24 | + 'type'=> 'text/javascript', | |
25 | + 'src' => 'http://maps.google.com/maps?file=api&v=2&key=%s' % preference.preference.googlemaps.key.value | |
26 | + ).text('') | |
27 | + end | |
28 | + | |
29 | + def render_html(xml, builder) | |
30 | + xml.tag('div', 'id' => html_id).text('') | |
31 | + xml.tag('script', 'type' => 'text/javascript') do |js| | |
32 | + js.code <<-END | |
33 | +$(document).ready(function() { | |
34 | + if(GBrowserIsCompatible()) { | |
35 | + var map = new GMap2(document.getElementById('#{html_id}')); | |
36 | + map.addControl(new GLargeMapControl()); | |
37 | + map.addControl(new GScaleControl()); | |
38 | + map.addControl(new GMapTypeControl()); | |
39 | + map.addControl(new GOverviewMapControl()); | |
40 | + map.setCenter(new GLatLng(37.4419, -122.1419), 13); | |
41 | + map.enableScrollWheelZoom(); | |
42 | + } | |
43 | +}); | |
44 | + | |
45 | +$(document).unload(function() { | |
46 | + GUnload(); | |
47 | +}); | |
48 | + END | |
49 | + end | |
50 | + end | |
51 | + end | |
52 | +end |
@@ -10,7 +10,7 @@ | ||
10 | 10 | preference 'yui' do |yui| |
11 | 11 | yui.group 'reset_fonts_grids' do |rfg| |
12 | 12 | rfg.edit 'url' do |url| |
13 | - url.value = 'http://yui.yahooapis.com/2.4.1/build/reset-fonts-grids/reset-fonts-grids.css' | |
13 | + url.value = 'http://yui.yahooapis.com/2.5.1/build/reset-fonts-grids/reset-fonts-grids.css' | |
14 | 14 | end |
15 | 15 | end |
16 | 16 | end |
@@ -10,7 +10,8 @@ | ||
10 | 10 | |
11 | 11 | resource 'Widget::View' |
12 | 12 | |
13 | - preference_css 'box' | |
13 | + preference_css 'html', 'html' | |
14 | + preference_css 'body', 'body' | |
14 | 15 | |
15 | 16 | def init(markup='html') |
16 | 17 | case markup |
@@ -40,6 +41,13 @@ | ||
40 | 41 | end |
41 | 42 | end |
42 | 43 | |
44 | + def render_css(css, builder) | |
45 | + render_preference_css(css) | |
46 | + builder.each(self) do |w| | |
47 | + w.render_css(css, builder) | |
48 | + end | |
49 | + end | |
50 | + | |
43 | 51 | def render_html(xml, builder) |
44 | 52 | xml.xml('1.0', 'utf-8') |
45 | 53 | xml.doctype( |
@@ -174,12 +174,12 @@ | ||
174 | 174 | end |
175 | 175 | end |
176 | 176 | |
177 | - def render_preference_css(css, css_id) | |
177 | + def render_preference_css(css, _css_id='') | |
178 | 178 | self.class.meta[:preference_css].each do |prefcss| |
179 | 179 | preference[prefcss[:name]].each do |val| |
180 | 180 | val.each do |v| |
181 | 181 | prefcss[:selector].each do |selector| |
182 | - css.selector(css_id + ' ' + selector) do |style| | |
182 | + css.selector(_css_id + ' ' + selector) do |style| | |
183 | 183 | style[v.name.gsub('_', '-')] = v.value unless v.value.to_s.empty? |
184 | 184 | end |
185 | 185 | end |
@@ -0,0 +1,18 @@ | ||
1 | +# | |
2 | +# Copyright (C) 2008 Jun Kikuchi <kikuchi@bonnou.com> | |
3 | +# | |
4 | + | |
5 | +class TrackLog < Tenarai::DB::Row | |
6 | + extend Tenarai::ClassLoader | |
7 | + | |
8 | + class << self | |
9 | + def create_row(class_name, table, row) | |
10 | + Tenarai::ClassLoader[class_name].new(table, row) | |
11 | + end | |
12 | + end | |
13 | + | |
14 | + column Tenarai::DB::Date.new('log_date') | |
15 | + column Tenarai::DB::Float.new('lat', :precision => 10, :scale => 6) | |
16 | + column Tenarai::DB::Float.new('lng', :precision => 10, :scale => 6) | |
17 | + column Tenarai::DB::Reference.new('content') | |
18 | +end |
@@ -14,6 +14,8 @@ | ||
14 | 14 | end |
15 | 15 | |
16 | 16 | column Tenarai::DB::String.new('title', :length => 255) |
17 | + column Tenarai::DB::String.new('mime_type', :length => 255) | |
17 | 18 | column Tenarai::DB::String.new('body') |
18 | 19 | column Tenarai::DB::Reference.new('view') |
20 | + column Tenarai::DB::Reference.new('tracklog', :multiple => true) | |
19 | 21 | end |