seamless 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.
- data/bin/seamless +36 -0
- data/lib/seamless.rb +70 -0
- data/lib/seamless/active_record_extension.rb +11 -0
- data/lib/seamless/dispatcher.rb +45 -0
- data/lib/seamless/message_broker.rb +12 -0
- data/lib/seamless/message_broker_controller.rb +11 -0
- data/lib/seamless/messagebroker/inmemory_message_broker.rb +45 -0
- data/lib/seamless/migration.rb +8 -0
- data/lib/seamless/model.rb +94 -0
- data/lib/seamless/service.rb +186 -0
- data/seamless/seamless_generator.rb +181 -0
- data/seamless/templates/README +24 -0
- data/seamless/templates/admin.html +166 -0
- data/seamless/templates/application.rb +7 -0
- data/seamless/templates/css/global.css +333 -0
- data/seamless/templates/css/seamless-admin.css +281 -0
- data/seamless/templates/css/seamless.css +632 -0
- data/seamless/templates/environment.rb +65 -0
- data/seamless/templates/generate +25 -0
- data/seamless/templates/images/arch.png +0 -0
- data/seamless/templates/images/arrow_undo.png +0 -0
- data/seamless/templates/images/cell_phone.png +0 -0
- data/seamless/templates/images/confirm.png +0 -0
- data/seamless/templates/images/deny.png +0 -0
- data/seamless/templates/images/dialog_close.gif +0 -0
- data/seamless/templates/images/dialog_close_hover.gif +0 -0
- data/seamless/templates/images/email.png +0 -0
- data/seamless/templates/images/exclamation.png +0 -0
- data/seamless/templates/images/indicator.gif +0 -0
- data/seamless/templates/images/indicator2.gif +0 -0
- data/seamless/templates/images/seamless.gif +0 -0
- data/seamless/templates/images/shadow.gif +0 -0
- data/seamless/templates/images/shadowAlpha.png +0 -0
- data/seamless/templates/images/small_star.png +0 -0
- data/seamless/templates/images/table_add.png +0 -0
- data/seamless/templates/images/table_delete.png +0 -0
- data/seamless/templates/images/table_edit.png +0 -0
- data/seamless/templates/images/table_go.png +0 -0
- data/seamless/templates/images/table_refresh.png +0 -0
- data/seamless/templates/images/tag.png +0 -0
- data/seamless/templates/images/warning.png +0 -0
- data/seamless/templates/images/wizard.gif +0 -0
- data/seamless/templates/images/work_phone.png +0 -0
- data/seamless/templates/index.html +171 -0
- data/seamless/templates/js/seamless-admin.js +255 -0
- data/seamless/templates/js/seamless.js +2755 -0
- data/seamless/templates/message_broker.rb +6 -0
- data/seamless/templates/message_broker_helper.rb +2 -0
- data/seamless/templates/robots.txt +2 -0
- data/seamless/templates/routes.rb +18 -0
- data/seamless/templates/seamless.xml +5 -0
- data/seamless/templates/server +4 -0
- data/seamless/templates/test_service.rb +13 -0
- data/service/USAGE +21 -0
- data/service/service_generator.rb +59 -0
- data/service/templates/service.rb +14 -0
- metadata +122 -0
@@ -0,0 +1,181 @@
|
|
1
|
+
require 'rbconfig'
|
2
|
+
|
3
|
+
################################################################################################
|
4
|
+
#
|
5
|
+
# Most of this comes straight from the Rails app generator - with the exception some files
|
6
|
+
# that aren't needed are removed and others related to seamless are added
|
7
|
+
#
|
8
|
+
################################################################################################
|
9
|
+
|
10
|
+
|
11
|
+
class SeamlessGenerator < Rails::Generator::Base
|
12
|
+
DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
|
13
|
+
Config::CONFIG['ruby_install_name'])
|
14
|
+
|
15
|
+
DATABASES = %w( mysql oracle postgresql sqlite2 sqlite3 frontbase )
|
16
|
+
|
17
|
+
default_options :db => "mysql", :shebang => DEFAULT_SHEBANG, :freeze => false
|
18
|
+
#mandatory_options :source => "#{File.dirname(__FILE__)}/templates"
|
19
|
+
|
20
|
+
def initialize(runtime_args, runtime_options = {})
|
21
|
+
super
|
22
|
+
usage if args.empty?
|
23
|
+
usage("Databases supported for preconfiguration are: #{DATABASES.join(", ")}") if (options[:db] && !DATABASES.include?(options[:db]))
|
24
|
+
@destination_root = args.shift
|
25
|
+
@railspath = runtime_options['railspath']
|
26
|
+
@app_name = File.basename(File.expand_path(@destination_root))
|
27
|
+
end
|
28
|
+
|
29
|
+
def manifest
|
30
|
+
# Use /usr/bin/env if no special shebang was specified
|
31
|
+
script_options = { :chmod => 0755, :shebang => options[:shebang] == DEFAULT_SHEBANG ? nil : options[:shebang] }
|
32
|
+
dispatcher_options = { :chmod => 0755, :shebang => options[:shebang] }
|
33
|
+
|
34
|
+
record do |m|
|
35
|
+
|
36
|
+
# Root directory and all subdirectories.
|
37
|
+
m.directory ''
|
38
|
+
BASEDIRS.each { |path| m.directory path }
|
39
|
+
|
40
|
+
# Root
|
41
|
+
m.file "#{@railspath}/fresh_rakefile", "Rakefile"
|
42
|
+
m.file "templates/README", "README"
|
43
|
+
|
44
|
+
# Application
|
45
|
+
m.template "templates/application.rb", "app/controllers/application.rb"
|
46
|
+
m.template "templates/test_service.rb", "app/services/test_service.rb"
|
47
|
+
m.template "#{@railspath}/helpers/application_helper.rb", "app/helpers/application_helper.rb"
|
48
|
+
m.template "#{@railspath}/helpers/test_helper.rb", "test/test_helper.rb"
|
49
|
+
m.template "templates/message_broker.rb", "app/controllers/message_broker_controller.rb"
|
50
|
+
m.template "templates/message_broker_helper.rb", "app/helpers/message_broker_helper.rb"
|
51
|
+
|
52
|
+
# database.yml and .htaccess
|
53
|
+
m.template "#{@railspath}/configs/databases/#{options[:db]}.yml", "config/database.yml", :assigns => {
|
54
|
+
:app_name => @appname,
|
55
|
+
:socket => options[:db] == "mysql" ? mysql_socket_location : nil
|
56
|
+
}
|
57
|
+
|
58
|
+
m.template "templates/routes.rb", "config/routes.rb"
|
59
|
+
m.template "#{@railspath}/configs/apache.conf", "public/.htaccess"
|
60
|
+
|
61
|
+
# Environments
|
62
|
+
m.file "#{@railspath}/environments/boot.rb", "config/boot.rb"
|
63
|
+
|
64
|
+
m.template "templates/environment.rb", "config/environment.rb", :assigns => { :freeze => options[:freeze] }
|
65
|
+
|
66
|
+
m.file "#{@railspath}/environments/production.rb", "config/environments/production.rb"
|
67
|
+
m.file "#{@railspath}/environments/development.rb", "config/environments/development.rb"
|
68
|
+
m.file "#{@railspath}/environments/test.rb", "config/environments/test.rb"
|
69
|
+
|
70
|
+
# Scripts
|
71
|
+
%w( about breakpointer console destroy performance/benchmarker performance/profiler process/reaper process/spawner runner plugin ).each do |file|
|
72
|
+
m.file "#{@railspath}/bin/#{file}", "script/#{file}", script_options
|
73
|
+
end
|
74
|
+
|
75
|
+
# Override special scripts
|
76
|
+
%w( server generate ).each do |file|
|
77
|
+
m.file "templates/#{file}", "script/#{file}", script_options
|
78
|
+
end
|
79
|
+
|
80
|
+
# Dispatches
|
81
|
+
m.file "#{@railspath}/dispatches/dispatch.rb", "public/dispatch.rb", dispatcher_options
|
82
|
+
m.file "#{@railspath}/dispatches/dispatch.rb", "public/dispatch.cgi", dispatcher_options
|
83
|
+
m.file "#{@railspath}/dispatches/dispatch.fcgi", "public/dispatch.fcgi", dispatcher_options
|
84
|
+
|
85
|
+
mydir = File.dirname(__FILE__)
|
86
|
+
|
87
|
+
%w(css images js).each do |dir|
|
88
|
+
Dir.new(mydir + "/templates/#{dir}").each do |file|
|
89
|
+
if file!="." and file!=".."
|
90
|
+
m.file "templates/#{dir}/#{file}", "public/#{dir}/#{file}"
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
# HTML files
|
96
|
+
%w(index.html admin.html seamless.xml).each do |file|
|
97
|
+
m.file "templates/#{file}", "public/#{file}"
|
98
|
+
end
|
99
|
+
|
100
|
+
m.template "#{@railspath}/html/favicon.ico", "public/favicon.ico"
|
101
|
+
m.template "#{@railspath}/html/robots.txt", "public/robots.txt"
|
102
|
+
|
103
|
+
# Docs
|
104
|
+
m.file "#{@railspath}/doc/README_FOR_APP", "doc/README_FOR_APP"
|
105
|
+
|
106
|
+
# Logs
|
107
|
+
%w(server production development test).each { |file|
|
108
|
+
m.file "#{@railspath}/configs/empty.log", "log/#{file}.log", :chmod => 0666
|
109
|
+
}
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
protected
|
114
|
+
def banner
|
115
|
+
"Usage: #{$0} /path/to/your/app [options]"
|
116
|
+
end
|
117
|
+
|
118
|
+
def add_options!(opt)
|
119
|
+
opt.separator ''
|
120
|
+
opt.separator 'Options:'
|
121
|
+
opt.on("-r", "--ruby=path", String,
|
122
|
+
"Path to the Ruby binary of your choice (otherwise scripts use env, dispatchers current path).",
|
123
|
+
"Default: #{DEFAULT_SHEBANG}") { |v| options[:shebang] = v }
|
124
|
+
|
125
|
+
opt.on("-d", "--database=name", String,
|
126
|
+
"Preconfigure for selected database (options: mysql/oracle/postgresql/sqlite2/sqlite3).",
|
127
|
+
"Default: mysql") { |v| options[:db] = v }
|
128
|
+
|
129
|
+
opt.on("-f", "--freeze",
|
130
|
+
"Freeze Rails in vendor/rails from the gems generating the skeleton",
|
131
|
+
"Default: false") { |v| options[:freeze] = v }
|
132
|
+
end
|
133
|
+
|
134
|
+
def mysql_socket_location
|
135
|
+
RUBY_PLATFORM =~ /mswin32/ ? MYSQL_SOCKET_LOCATIONS.find { |f| File.exists?(f) } : nil
|
136
|
+
end
|
137
|
+
|
138
|
+
|
139
|
+
# Installation skeleton. Intermediate directories are automatically
|
140
|
+
# created so don't sweat their absence here.
|
141
|
+
BASEDIRS = %w(
|
142
|
+
app/controllers
|
143
|
+
app/services
|
144
|
+
app/helpers
|
145
|
+
app/models
|
146
|
+
config/environments
|
147
|
+
components
|
148
|
+
db
|
149
|
+
doc
|
150
|
+
lib
|
151
|
+
lib/tasks
|
152
|
+
log
|
153
|
+
public/images
|
154
|
+
public/js
|
155
|
+
public/css
|
156
|
+
script/performance
|
157
|
+
script/process
|
158
|
+
test/fixtures
|
159
|
+
test/functional
|
160
|
+
test/integration
|
161
|
+
test/mocks/development
|
162
|
+
test/mocks/test
|
163
|
+
test/unit
|
164
|
+
vendor
|
165
|
+
vendor/plugins
|
166
|
+
tmp/sessions
|
167
|
+
tmp/sockets
|
168
|
+
tmp/cache
|
169
|
+
)
|
170
|
+
|
171
|
+
MYSQL_SOCKET_LOCATIONS = [
|
172
|
+
"/tmp/mysql.sock", # default
|
173
|
+
"/var/run/mysqld/mysqld.sock", # debian/gentoo
|
174
|
+
"/var/tmp/mysql.sock", # freebsd
|
175
|
+
"/var/lib/mysql/mysql.sock", # fedora
|
176
|
+
"/opt/local/lib/mysql/mysql.sock", # fedora
|
177
|
+
"/opt/local/var/run/mysqld/mysqld.sock", # mac + darwinports + mysql
|
178
|
+
"/opt/local/var/run/mysql4/mysqld.sock", # mac + darwinports + mysql4
|
179
|
+
"/opt/local/var/run/mysql5/mysqld.sock" # mac + darwinports + mysql5
|
180
|
+
]
|
181
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
====================
|
2
|
+
Seam(less) on Rails
|
3
|
+
====================
|
4
|
+
|
5
|
+
Seam(less) on Rails is a web2.0, ajax based web application framework, developed by Hakano. Please see http://www.hakano.org for the latest documentation and information.
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
Seam(less) Web Application Framework
|
11
|
+
|
12
|
+
Copyright (c) 2006-2007 Hakano, Inc. All Rights Reserved.
|
13
|
+
|
14
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
15
|
+
you may not use this file except in compliance with the License.
|
16
|
+
|
17
|
+
You may obtain a copy of the License at
|
18
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
19
|
+
|
20
|
+
Unless required by applicable law or agreed to in writing,
|
21
|
+
software distributed under the License is distributed on an "AS IS" BASIS,
|
22
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
23
|
+
See the License for the specific language governing permissions and
|
24
|
+
limitations under the License.
|
@@ -0,0 +1,166 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:seamless="http://www.hakano.org/seamless">
|
3
|
+
<head>
|
4
|
+
<title>Seam(less) Admin</title>
|
5
|
+
<meta http-equiv="Content-Type" content="UTF-8" />
|
6
|
+
|
7
|
+
<link rel="stylesheet" href="css/global.css" type="text/css" media="all" />
|
8
|
+
<link rel="stylesheet" href="css/seamless.css" type="text/css" media="all" />
|
9
|
+
<link rel="stylesheet" href="css/seamless-admin.css" type="text/css" media="all" />
|
10
|
+
<script src="js/seamless.js" type="text/javascript" />
|
11
|
+
<script src="js/seamless-admin.js" type="text/javascript" />
|
12
|
+
|
13
|
+
<body>
|
14
|
+
<div id="header"></div>
|
15
|
+
|
16
|
+
<div id="banner">
|
17
|
+
<img id="logo" src="images/seamless.gif" alt="seamless"/>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<div id="form">
|
21
|
+
<div id="titlebar">
|
22
|
+
<div id="title" class="primary_light_color">Seam(less) Admin</div>
|
23
|
+
<div id="search">
|
24
|
+
<div id="search_bar">
|
25
|
+
<div id="search_bar_title">Search:</div>
|
26
|
+
<div id="search_bar_field">
|
27
|
+
<seamless:dynamic-search style="display:inline"
|
28
|
+
progressId="search_indicator"
|
29
|
+
onBindMessageRequest="local:search.request"
|
30
|
+
onBindMessageResponse="remote:~.search.response"
|
31
|
+
fieldset="search"
|
32
|
+
searchKey="query">
|
33
|
+
</seamless:dynamic-search>
|
34
|
+
</div>
|
35
|
+
<img id="search_indicator"
|
36
|
+
style="display:none" src="images/indicator.gif"
|
37
|
+
onBindMessageHide="remote:~.search.response"/>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
<div id="table_selector"> Table:
|
41
|
+
<select id="table" onBindMessage="remote:seamless.admin.models.response"
|
42
|
+
onBindMessageProperty="models"
|
43
|
+
onBindMessageOptionTextProperty="name"
|
44
|
+
onBindMessageOptionValueProperty="model"
|
45
|
+
onChangeMessage="local:table.changed">
|
46
|
+
<option>loading...</option>
|
47
|
+
</select>
|
48
|
+
</div>
|
49
|
+
</div>
|
50
|
+
<div id="results">
|
51
|
+
<div id="search_results" style="display:none"
|
52
|
+
onBindMessageHide="remote:~.search.request,local:edit.record,local:display.record"
|
53
|
+
onBindMessageShow="remote:~.search.response" onBindMessageShowCond="this.data['success']"
|
54
|
+
onBindMessageShow1="local:show.results">
|
55
|
+
<span class="large_text" id="table_name"></span>
|
56
|
+
<span style="margin-left:40px;"> </span>
|
57
|
+
<span>Displaying </span>
|
58
|
+
<span onBindMessage="remote:~.search.response" onBindMessageProperty="count" id="search_count"></span>
|
59
|
+
<span> of </span>
|
60
|
+
<span onBindMessage="remote:~.search.response" onBindMessageProperty="total" id="search_total"></span>
|
61
|
+
<span> records</span>
|
62
|
+
</div>
|
63
|
+
<div id="table_operations">
|
64
|
+
<a title="return to results">
|
65
|
+
<img style="display:none" src="images/arrow_undo.png"
|
66
|
+
onBindMessageShow="local:edit.record" onBindMessageHide="local:show.results"
|
67
|
+
onClickMessage="local:show.results"/>
|
68
|
+
</a>
|
69
|
+
<span style="display:none" onBindMessageShow="local:search.table.selected"
|
70
|
+
onBindMessageHide="remote:~.search.request,local:search.table.nonselected,local:show.results,local:display.record">
|
71
|
+
<a title="display record" onClickMessage="local:display.record"><img src="images/table_go.png"/></a>
|
72
|
+
</span>
|
73
|
+
<span style="display:none" onBindMessageShow="local:search.table.selected"
|
74
|
+
onBindMessageHide="remote:~.search.request,local:search.table.nonselected,local:show.results,local:edit.record">
|
75
|
+
<a title="edit record" onClickMessage="local:edit.record"><img src="images/table_edit.png"/></a>
|
76
|
+
</span>
|
77
|
+
<span style="display:none" onBindMessageShow="local:search.table.selected"
|
78
|
+
onBindMessageHide="remote:~.search.request,local:search.table.nonselected,local:show.results">
|
79
|
+
<a title="delete record" onClickMessage="local:search.table.delete.confirm"><img src="images/table_delete.png"/></a>
|
80
|
+
</span>
|
81
|
+
<span style="display:none" onBindMessageShow="remote:sft.user.search.response"
|
82
|
+
onBindMessageShowCond="this.data['success']"
|
83
|
+
onBindMessageHide="remote:~.search.request,local:show.results">
|
84
|
+
<a title="add new record"><img src="images/table_add.png"/></a>
|
85
|
+
</span>
|
86
|
+
<span style="display:none" onBindMessageShow="remote:sft.user.search.response"
|
87
|
+
onBindMessageShowCond="this.data['success']"
|
88
|
+
onBindMessageHide="remote:~.search.request">
|
89
|
+
<a title="refresh results"><img src="images/table_refresh.png"/></a>
|
90
|
+
</span>
|
91
|
+
</div>
|
92
|
+
</div>
|
93
|
+
<div id="search_results_table_container">
|
94
|
+
</div>
|
95
|
+
</div>
|
96
|
+
|
97
|
+
<seamless:datamodel message="remote:seamless.admin.models.request">
|
98
|
+
</seamless:datamodel>
|
99
|
+
|
100
|
+
<seamless:script onBindMessage="remote:~.list.response" onBindMessageCond="this.data.success">
|
101
|
+
var rows = this.data['rows'];
|
102
|
+
var obj = {};
|
103
|
+
obj['count']=rows.length;
|
104
|
+
obj['total']=this.data['total'];
|
105
|
+
obj['success']=true;
|
106
|
+
var table = $('table');
|
107
|
+
var tableName = table[table.selectedIndex].value;
|
108
|
+
var request = 'remote:seamless.' + tableName + '.search.response';
|
109
|
+
hakano.util.MessageBroker.queue({type:request,data:obj});
|
110
|
+
</seamless:script>
|
111
|
+
|
112
|
+
<seamless:script onBindMessage="remote:~.delete.response" onBindMessageCond="this.data.success">
|
113
|
+
refreshData();
|
114
|
+
</seamless:script>
|
115
|
+
|
116
|
+
<seamless:script onBindMessage="local:show.results">
|
117
|
+
restoreTable();
|
118
|
+
</seamless:script>
|
119
|
+
|
120
|
+
<seamless:script onBindMessage="local:display.record">
|
121
|
+
displayRecord(false);
|
122
|
+
</seamless:script>
|
123
|
+
|
124
|
+
<seamless:script onBindMessage="local:edit.record">
|
125
|
+
displayRecord(true);
|
126
|
+
</seamless:script>
|
127
|
+
|
128
|
+
<seamless:script onBindMessage="local:search.request">
|
129
|
+
var table = $('table');
|
130
|
+
var tableName = table[table.selectedIndex].value;
|
131
|
+
var request = 'remote:seamless.' + tableName + '.search.request';
|
132
|
+
hakano.util.MessageBroker.queue({type:request,data:this.data});
|
133
|
+
</seamless:script>
|
134
|
+
|
135
|
+
<seamless:script onBindMessage="remote:seamless.admin.models.response">
|
136
|
+
loadModels(this.data);
|
137
|
+
</seamless:script>
|
138
|
+
|
139
|
+
<seamless:script onBindMessage="remote:~.delete.response" onBindMessageCond="this.data['success']">
|
140
|
+
updateFromDelete(this.data);
|
141
|
+
</seamless:script>
|
142
|
+
|
143
|
+
<seamless:script onBindMessage="remote:~.assembly.response">
|
144
|
+
loadColumns(this.data);
|
145
|
+
</seamless:script>
|
146
|
+
|
147
|
+
<seamless:script onBindMessage="local:table.changed">
|
148
|
+
var table = $('table');
|
149
|
+
var row = table[table.selectedIndex];
|
150
|
+
var tableName = row.value;
|
151
|
+
$('table_name').innerHTML = row.text;
|
152
|
+
loadTableAssembly(tableName);
|
153
|
+
</seamless:script>
|
154
|
+
|
155
|
+
<seamless:script onBindMessage="remote:~.search.response,remote:~.list.response" onBindMessageCond="this.data['success']">
|
156
|
+
loadTable(this.data);
|
157
|
+
</seamless:script>
|
158
|
+
|
159
|
+
<seamless:script onBindMessage="local:search.table.delete.confirm">
|
160
|
+
if (confirm('Are you sure you want to delete this record?'))
|
161
|
+
{
|
162
|
+
deleteRow(this.data);
|
163
|
+
}
|
164
|
+
</seamless:script>
|
165
|
+
</body>
|
166
|
+
</html>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
# Filters added to this controller apply to all controllers in the application.
|
2
|
+
# Likewise, all the methods added will be available for all controllers.
|
3
|
+
|
4
|
+
class ApplicationController < ActionController::Base
|
5
|
+
# Pick a unique cookie name to distinguish our session data from others'
|
6
|
+
session :session_key => '_session_id'
|
7
|
+
end
|
@@ -0,0 +1,333 @@
|
|
1
|
+
/**
|
2
|
+
* =============================================================================
|
3
|
+
* THIS FILE CONTAINS ALL NON-POSITIONAL STYLES (e.g., colors, font sizes, etc.)
|
4
|
+
* =============================================================================
|
5
|
+
*/
|
6
|
+
|
7
|
+
/**
|
8
|
+
* =============================================================================
|
9
|
+
* GLOBAL RESET OF BROWSER DEFAULT STYLES
|
10
|
+
* =============================================================================
|
11
|
+
* Copyright (c) 2006, Yahoo! Inc. All rights reserved.
|
12
|
+
* Code licensed under the BSD License:
|
13
|
+
* http://developer.yahoo.net/yui/license.txt
|
14
|
+
* version: 0.11.3
|
15
|
+
*
|
16
|
+
* This foundational CSS file offers cross-browser normalization of the default
|
17
|
+
* rendering of HTML elements. It also removes common default presentation such
|
18
|
+
* as bolding of strong elements, helping to ensure that all style is declared
|
19
|
+
* intentionally and that elements are always used for their semantic meaning
|
20
|
+
* instead of their customary visual presentation.
|
21
|
+
*/
|
22
|
+
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}
|
23
|
+
table{border-collapse:collapse;border-spacing:0;}
|
24
|
+
fieldset,img{border:0;}
|
25
|
+
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}
|
26
|
+
ol,ul {list-style:none;}
|
27
|
+
caption,th {text-align:left;}
|
28
|
+
h1,h2,h3,h4,h5,h6{font-size:100%;}
|
29
|
+
q:before,q:after{content:'';}
|
30
|
+
/**
|
31
|
+
* 84.5% for !IE, keywords for IE
|
32
|
+
* Percents could work for IE, but for backCompat purposes, we are using keywords.
|
33
|
+
* x-small is for IE < 6 and IE6 quirks mode.
|
34
|
+
*/
|
35
|
+
body {font:13px arial,helvetica,clean,sans-serif;font-size:small;}
|
36
|
+
table {font-size:inherit;}
|
37
|
+
/**
|
38
|
+
* 99% for safari; 100% is too large
|
39
|
+
*/
|
40
|
+
select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}
|
41
|
+
/**
|
42
|
+
* Bump up !IE to get to 13px equivalent
|
43
|
+
*/
|
44
|
+
pre, code {font:115% monospace;font-size:100%;}
|
45
|
+
/**
|
46
|
+
* Default line-height based on font-size rather than "computed-value"
|
47
|
+
* see: http://www.w3.org/TR/CSS21/visudet.html#line-height
|
48
|
+
*/
|
49
|
+
body * {line-height:1.22em;}
|
50
|
+
|
51
|
+
|
52
|
+
/**
|
53
|
+
* Use this table for computing consistent font sizes:
|
54
|
+
*
|
55
|
+
* point size: use this percent:
|
56
|
+
* 10 77%
|
57
|
+
* 11 85%
|
58
|
+
* 12 92%
|
59
|
+
* 13 100%
|
60
|
+
* 14 107%
|
61
|
+
* 15 114%
|
62
|
+
* 16 122%
|
63
|
+
* 17 129%
|
64
|
+
* 18 136%
|
65
|
+
* 19 144%
|
66
|
+
* 20 152%
|
67
|
+
* 21 159%
|
68
|
+
* 22 167%
|
69
|
+
* 23 174%
|
70
|
+
* 24 182%
|
71
|
+
* 25 189%
|
72
|
+
* 26 197%
|
73
|
+
*/
|
74
|
+
|
75
|
+
/**
|
76
|
+
* END YAHOO LICENSED CODE
|
77
|
+
*/
|
78
|
+
|
79
|
+
/**
|
80
|
+
* =================================================================
|
81
|
+
* INPUT DEFINITIONS
|
82
|
+
* =================================================================
|
83
|
+
*/
|
84
|
+
|
85
|
+
input[type=button]
|
86
|
+
{
|
87
|
+
border-width:1px;
|
88
|
+
padding: 2px 7.5px 2px 7.5px;
|
89
|
+
margin: 0;
|
90
|
+
}
|
91
|
+
|
92
|
+
input[type=text]
|
93
|
+
{
|
94
|
+
padding: 2.5px 4.5px 2.5px 4.5px;
|
95
|
+
margin-top: 1px;
|
96
|
+
font-size: 107%;
|
97
|
+
}
|
98
|
+
|
99
|
+
input[type=password]
|
100
|
+
{
|
101
|
+
padding: 2.5px 4.5px 2.5px 4.5px;
|
102
|
+
margin-top: 1px;
|
103
|
+
font-size: 107%;
|
104
|
+
}
|
105
|
+
|
106
|
+
input[type=file]
|
107
|
+
{
|
108
|
+
padding: 2.5px 4.5px 2.5px 4.5px;
|
109
|
+
margin-top: 1px;
|
110
|
+
font-size: 107%;
|
111
|
+
}
|
112
|
+
|
113
|
+
/**
|
114
|
+
* =================================================================
|
115
|
+
* FONT SIZE DEFINITIONS
|
116
|
+
* =================================================================
|
117
|
+
*/
|
118
|
+
.xlarge_text
|
119
|
+
{
|
120
|
+
font-size:205%;
|
121
|
+
}
|
122
|
+
|
123
|
+
.large_text
|
124
|
+
{
|
125
|
+
font-size:152%;
|
126
|
+
}
|
127
|
+
|
128
|
+
.medium_text
|
129
|
+
{
|
130
|
+
font-size:122%;
|
131
|
+
}
|
132
|
+
|
133
|
+
.regular_text
|
134
|
+
{
|
135
|
+
font-size:92%;
|
136
|
+
}
|
137
|
+
|
138
|
+
.small_text
|
139
|
+
{
|
140
|
+
font-size: 85%;
|
141
|
+
font-family: Arial, Helvetica, sans-serif;
|
142
|
+
}
|
143
|
+
|
144
|
+
.xsmall_text
|
145
|
+
{
|
146
|
+
font-size: 77%;
|
147
|
+
font-family: Arial, Helvetica, sans-serif;
|
148
|
+
}
|
149
|
+
|
150
|
+
strong
|
151
|
+
{
|
152
|
+
font-weight: bold;
|
153
|
+
font-size: 105%;
|
154
|
+
border:none;
|
155
|
+
border-bottom:1px dotted #eee;
|
156
|
+
}
|
157
|
+
|
158
|
+
/**
|
159
|
+
* =================================================================
|
160
|
+
* TEXT COLOR DEFINITIONS - BY FUNCTIONAL TYPE
|
161
|
+
* =================================================================
|
162
|
+
*/
|
163
|
+
|
164
|
+
.info_color
|
165
|
+
{
|
166
|
+
color:#999999;
|
167
|
+
}
|
168
|
+
|
169
|
+
.fieldlabel_color
|
170
|
+
{
|
171
|
+
color:#817A71;
|
172
|
+
}
|
173
|
+
|
174
|
+
.error_color
|
175
|
+
{
|
176
|
+
color:#FF0000;
|
177
|
+
}
|
178
|
+
|
179
|
+
.fieldvalue_color
|
180
|
+
{
|
181
|
+
color:#000099;
|
182
|
+
}
|
183
|
+
|
184
|
+
/**
|
185
|
+
* =================================================================
|
186
|
+
* TEXT COLOR DEFINITIONS - BY THEME
|
187
|
+
* =================================================================
|
188
|
+
*/
|
189
|
+
|
190
|
+
.primary_color
|
191
|
+
{
|
192
|
+
color:#000099;
|
193
|
+
}
|
194
|
+
|
195
|
+
.secondary_color
|
196
|
+
{
|
197
|
+
color:#99cc00;
|
198
|
+
}
|
199
|
+
|
200
|
+
.trinary_color
|
201
|
+
{
|
202
|
+
color:#FF9900;
|
203
|
+
}
|
204
|
+
|
205
|
+
.primary_light_color
|
206
|
+
{
|
207
|
+
color:#336699;
|
208
|
+
}
|
209
|
+
|
210
|
+
/**
|
211
|
+
* =================================================================
|
212
|
+
* STYLES BY HTML ELEMENT TYPE
|
213
|
+
* =================================================================
|
214
|
+
*/
|
215
|
+
|
216
|
+
a
|
217
|
+
{
|
218
|
+
color:#850001;
|
219
|
+
text-decoration:none;
|
220
|
+
}
|
221
|
+
|
222
|
+
a:hover
|
223
|
+
{
|
224
|
+
color: #000099;
|
225
|
+
}
|
226
|
+
|
227
|
+
body
|
228
|
+
{
|
229
|
+
font-family:Geneva, Arial, Helvetica, sans-serif;
|
230
|
+
padding: 0px;
|
231
|
+
margin: 0px;
|
232
|
+
}
|
233
|
+
|
234
|
+
|
235
|
+
/**
|
236
|
+
* =================================================================
|
237
|
+
* EFFECT STYLES
|
238
|
+
* =================================================================
|
239
|
+
*/
|
240
|
+
|
241
|
+
.shadow
|
242
|
+
{
|
243
|
+
position: relative;
|
244
|
+
background-color: #b2ba9e;
|
245
|
+
color: inherit;
|
246
|
+
padding:1px;
|
247
|
+
}
|
248
|
+
|
249
|
+
.shadow_box_selected
|
250
|
+
{
|
251
|
+
position: relative;
|
252
|
+
border:1px solid #b2ba9e;
|
253
|
+
color: inherit;
|
254
|
+
padding:0;
|
255
|
+
margin:0;
|
256
|
+
border-right:none;
|
257
|
+
}
|
258
|
+
|
259
|
+
|
260
|
+
.underline
|
261
|
+
{
|
262
|
+
border-bottom-width:1px;
|
263
|
+
border-bottom-style:dotted;
|
264
|
+
border-bottom-color:inherit;
|
265
|
+
}
|
266
|
+
|
267
|
+
|
268
|
+
/**
|
269
|
+
* common decorative box styles which can be used for displaying
|
270
|
+
* important information or prompt the user to do something
|
271
|
+
*/
|
272
|
+
|
273
|
+
.noteBox
|
274
|
+
{
|
275
|
+
margin:0px auto;
|
276
|
+
padding: 5px;
|
277
|
+
border-style: solid;
|
278
|
+
border-width: 1px;
|
279
|
+
border-color: #F0C000;
|
280
|
+
background-color: #FFFFCE;
|
281
|
+
}
|
282
|
+
|
283
|
+
.warningBox
|
284
|
+
{
|
285
|
+
margin:0px auto;
|
286
|
+
padding: 5px;
|
287
|
+
border-style: solid;
|
288
|
+
border-width: 1px;
|
289
|
+
border-color: #c00;
|
290
|
+
background-color: #fcc;
|
291
|
+
}
|
292
|
+
|
293
|
+
.infoBox
|
294
|
+
{
|
295
|
+
margin:0px auto;
|
296
|
+
padding: 5px;
|
297
|
+
border-style: solid;
|
298
|
+
border-width: 1px;
|
299
|
+
border-color: #3c78b5;
|
300
|
+
background-color: #D8E4F1;
|
301
|
+
}
|
302
|
+
|
303
|
+
.tipBox
|
304
|
+
{
|
305
|
+
margin:0px auto;
|
306
|
+
padding: 5px;
|
307
|
+
border-style: solid;
|
308
|
+
border-width: 1px;
|
309
|
+
border-color: #090;
|
310
|
+
background-color: #dfd;
|
311
|
+
}
|
312
|
+
|
313
|
+
.highlight
|
314
|
+
{
|
315
|
+
padding:2px;
|
316
|
+
background-color:#ffffcc;
|
317
|
+
}
|
318
|
+
|
319
|
+
/**
|
320
|
+
* spacer utilities which can be used for a little more finer control
|
321
|
+
* of positioning
|
322
|
+
*/
|
323
|
+
|
324
|
+
.verticalSpacer
|
325
|
+
{
|
326
|
+
height:10px;
|
327
|
+
}
|
328
|
+
|
329
|
+
.horizontalSpacer
|
330
|
+
{
|
331
|
+
width:10px;
|
332
|
+
}
|
333
|
+
|