ruby-amt 0.1.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/AUTHORS +1 -0
- data/COPYING +15 -0
- data/ChangeLog +392 -0
- data/GPL +674 -0
- data/Rakefile +292 -0
- data/VERSION +1 -0
- data/doc/default.css +211 -0
- data/doc/default.template +78 -0
- data/doc/documentation.page +40 -0
- data/doc/img/bg.jpg +0 -0
- data/doc/img/image.jpg +0 -0
- data/doc/img/line.jpg +0 -0
- data/doc/img/shadow.jpg +0 -0
- data/doc/index.page +61 -0
- data/doc/installation.page +115 -0
- data/doc/news.page +25 -0
- data/doc/news/release_0_1_0.page +16 -0
- data/doc/virtual +2 -0
- data/lib/amt/pt_status.rb +59 -0
- data/lib/amt/service.rb +16 -0
- data/lib/amt/service/basic.rb +159 -0
- data/lib/amt/service/hardware_asset.rb +83 -0
- data/lib/amt/service/hardware_asset/amt_information_table.rb +49 -0
- data/lib/amt/service/hardware_asset/asset.rb +118 -0
- data/lib/amt/service/hardware_asset/baseboard.rb +31 -0
- data/lib/amt/service/hardware_asset/bios.rb +65 -0
- data/lib/amt/service/hardware_asset/computer_system.rb +30 -0
- data/lib/amt/service/hardware_asset/fru.rb +37 -0
- data/lib/amt/service/hardware_asset/media_device.rb +63 -0
- data/lib/amt/service/hardware_asset/memory_module.rb +91 -0
- data/lib/amt/service/hardware_asset/portable_battery.rb +80 -0
- data/lib/amt/service/hardware_asset/processor.rb +123 -0
- data/lib/amt/service/hardware_asset/vpro_verification_table.rb +120 -0
- data/lib/amt/service/network_administration.rb +181 -0
- data/lib/amt/service/network_administration/structures.rb +29 -0
- data/lib/amt/service/remote_control.rb +73 -0
- data/lib/amt/service/remote_control/structures.rb +120 -0
- data/lib/amt/service/security_administration.rb +430 -0
- data/lib/amt/service/security_administration/structures.rb +117 -0
- data/lib/amt/system.rb +134 -0
- data/lib/amt/utility.rb +33 -0
- data/lib/amt/utility/bit_struct.rb +164 -0
- data/lib/amt/utility/enum.rb +119 -0
- data/lib/amt/version.rb +8 -0
- data/setup.rb +1585 -0
- metadata +125 -0
data/Rakefile
ADDED
@@ -0,0 +1,292 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
# load all optional developer libraries
|
4
|
+
begin
|
5
|
+
require 'rubygems'
|
6
|
+
require 'rake/gempackagetask'
|
7
|
+
rescue LoadError
|
8
|
+
end
|
9
|
+
|
10
|
+
begin
|
11
|
+
require 'webgen/webgentask'
|
12
|
+
require 'webgen/page'
|
13
|
+
rescue LoadError
|
14
|
+
end
|
15
|
+
|
16
|
+
require 'rdoc/task'
|
17
|
+
require 'rdoc/rdoc'
|
18
|
+
|
19
|
+
class RDoc::RDoc
|
20
|
+
|
21
|
+
alias :old_parse_files :parse_files
|
22
|
+
|
23
|
+
def parse_files(options)
|
24
|
+
file_info = old_parse_files(options)
|
25
|
+
require 'amt/service'
|
26
|
+
require 'amt/utility'
|
27
|
+
|
28
|
+
# Add documentation to AMT::Utility::Enum classes
|
29
|
+
RDoc::TopLevel.all_classes_and_modules.select do |tl|
|
30
|
+
use_it = false
|
31
|
+
while !use_it && !tl.module? && (tl = tl.superclass) && tl.kind_of?(RDoc::NormalClass) && tl.full_name != 'Object'
|
32
|
+
use_it = (tl.full_name == 'AMT::Utility::Enum')
|
33
|
+
end
|
34
|
+
use_it
|
35
|
+
end.each do |tl|
|
36
|
+
klass = tl.full_name.split(/::/).inject(Object){ |mod, name| mod.const_get(name) }
|
37
|
+
docs = "<p>Available enumeration values:</p>\n<ul>\n"
|
38
|
+
klass.values.sort {|a,b| a.value <=> b.value }.each do |val|
|
39
|
+
docs += "<li>"
|
40
|
+
docs += val.value.to_s
|
41
|
+
docs += " (#{val.name.to_s})" if val.name && val.name.to_s != val.value.to_s && val.name.to_s != val.description.to_s
|
42
|
+
docs += ": #{val.description}" if val.description && val.description != val.value.to_s
|
43
|
+
docs += "</li>"
|
44
|
+
end
|
45
|
+
docs += "</ul>\n"
|
46
|
+
tl.comment += docs.gsub(/^/, '# ')
|
47
|
+
end
|
48
|
+
|
49
|
+
# Add documentation to AMT::Utility::BitStruct classes
|
50
|
+
RDoc::TopLevel.all_classes_and_modules.select do |tl|
|
51
|
+
use_it = false
|
52
|
+
while !use_it && !tl.module? && (tl = tl.superclass) && tl.kind_of?(RDoc::NormalClass) && tl.full_name != 'Object'
|
53
|
+
use_it = (tl.full_name == 'AMT::Utility::BitStruct')
|
54
|
+
end
|
55
|
+
use_it
|
56
|
+
end.each do |tl|
|
57
|
+
klass = tl.full_name.split(/::/).inject(Object){ |mod, name| mod.const_get(name) }
|
58
|
+
klass.fields[:boolean].each do |name, desc|
|
59
|
+
meth = RDoc::AnyMethod.new("", "#{name}?")
|
60
|
+
meth.comment = "Getter for boolean field <i>#{name}</i>\n\n#{desc}"
|
61
|
+
tl.add_method(meth)
|
62
|
+
meth = RDoc::AnyMethod.new('', "#{name}!")
|
63
|
+
meth.comment = "Setter for boolean field <i>#{name}</i>\n\n#{desc}"
|
64
|
+
tl.add_method(meth)
|
65
|
+
end
|
66
|
+
klass.fields[:unsigned].each do |name, desc|
|
67
|
+
attr = RDoc::Attr.new("", name.to_s, 'RW', desc)
|
68
|
+
tl.add_attribute(attr)
|
69
|
+
end
|
70
|
+
klass.fields[:enum].each do |name, values, desc|
|
71
|
+
docs = desc + "\n\nAvailable enumeration values:\n"
|
72
|
+
values.sort.each {|k,v| docs += "[<tt>#{k}</tt>] #{v}\n"}
|
73
|
+
attr = RDoc::Attr.new("", name.to_s, 'RW', docs)
|
74
|
+
tl.add_attribute(attr)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
file_info
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
|
84
|
+
begin
|
85
|
+
require 'rubyforge'
|
86
|
+
rescue LoadError
|
87
|
+
end
|
88
|
+
|
89
|
+
begin
|
90
|
+
require 'rcov/rcovtask'
|
91
|
+
rescue LoadError
|
92
|
+
end
|
93
|
+
|
94
|
+
require 'fileutils'
|
95
|
+
require 'rake/clean'
|
96
|
+
require 'rake/testtask'
|
97
|
+
require 'rake/packagetask'
|
98
|
+
|
99
|
+
$:.unshift('lib')
|
100
|
+
require 'amt/version'
|
101
|
+
|
102
|
+
# End user tasks ################################################################
|
103
|
+
|
104
|
+
task :default => :test
|
105
|
+
|
106
|
+
desc "Install using setup.rb"
|
107
|
+
task :install do
|
108
|
+
ruby "setup.rb config"
|
109
|
+
ruby "setup.rb setup"
|
110
|
+
ruby "setup.rb install"
|
111
|
+
end
|
112
|
+
|
113
|
+
task :clobber do
|
114
|
+
ruby "setup.rb clean"
|
115
|
+
end
|
116
|
+
|
117
|
+
desc "Build the whole user documentation"
|
118
|
+
task :doc => :rdoc
|
119
|
+
|
120
|
+
if defined? Webgen
|
121
|
+
desc "Generate the HTML documentation"
|
122
|
+
Webgen::WebgenTask.new('htmldoc') do |site|
|
123
|
+
site.clobber_outdir = true
|
124
|
+
site.config_block = lambda do |config|
|
125
|
+
config['sources'] = [['/', "Webgen::Source::FileSystem", 'doc']]
|
126
|
+
config['output'] = ['Webgen::Output::FileSystem', 'htmldoc']
|
127
|
+
end
|
128
|
+
end
|
129
|
+
task :doc => :htmldoc
|
130
|
+
end
|
131
|
+
|
132
|
+
rd = RDoc::Task.new do |rdoc|
|
133
|
+
rdoc.rdoc_dir = 'htmldoc/rdoc'
|
134
|
+
rdoc.title = 'ruby-amt'
|
135
|
+
rdoc.main = 'lib/amt/system.rb'
|
136
|
+
rdoc.options << '--line-numbers' << '--all'
|
137
|
+
rdoc.rdoc_files.include('lib')
|
138
|
+
end
|
139
|
+
|
140
|
+
tt = Rake::TestTask.new do |test|
|
141
|
+
test.libs << 'test'
|
142
|
+
end
|
143
|
+
|
144
|
+
# Release tasks and development tasks ############################################
|
145
|
+
|
146
|
+
namespace :dev do
|
147
|
+
|
148
|
+
SUMMARY = 'ruby-amt is a library for controlling Intel AMT devies via SOAP'
|
149
|
+
DESCRIPTION = <<EOF
|
150
|
+
Intel AMT (Active Management Technology) is available on every computer having
|
151
|
+
the Intel vPro moniker and allows one to get and set various information about
|
152
|
+
the computer as well as to control it remotely.
|
153
|
+
EOF
|
154
|
+
|
155
|
+
begin
|
156
|
+
REL_PAGE = Webgen::Page.from_data(File.read('doc/news/release_' + AMT::VERSION.split('.').join('_') + '.page'))
|
157
|
+
rescue
|
158
|
+
puts 'NO RELEASE NOTES/CHANGES FILE'
|
159
|
+
end
|
160
|
+
|
161
|
+
PKG_FILES = FileList.new([
|
162
|
+
'Rakefile',
|
163
|
+
'setup.rb',
|
164
|
+
'VERSION', 'AUTHORS', 'ChangeLog',
|
165
|
+
'COPYING', 'GPL',
|
166
|
+
'doc/**/*',
|
167
|
+
'lib/**/*.rb',
|
168
|
+
'test/test_*.rb'
|
169
|
+
]) do |fl|
|
170
|
+
fl.exclude('**/.gitignore')
|
171
|
+
end
|
172
|
+
|
173
|
+
CLOBBER << "VERSION"
|
174
|
+
file 'VERSION' do
|
175
|
+
puts "Generating VERSION file"
|
176
|
+
File.open('VERSION', 'w+') {|file| file.write(AMT::VERSION + "\n")}
|
177
|
+
end
|
178
|
+
|
179
|
+
CLOBBER << 'ChangeLog'
|
180
|
+
file 'ChangeLog' do
|
181
|
+
puts "Generating ChangeLog file"
|
182
|
+
`git log --name-only > ChangeLog`
|
183
|
+
end
|
184
|
+
|
185
|
+
Rake::PackageTask.new('ruby-amt', AMT::VERSION) do |pkg|
|
186
|
+
pkg.need_tar = true
|
187
|
+
pkg.need_zip = true
|
188
|
+
pkg.package_files = PKG_FILES
|
189
|
+
end
|
190
|
+
|
191
|
+
if defined? Gem
|
192
|
+
spec = Gem::Specification.new do |s|
|
193
|
+
|
194
|
+
#### Basic information
|
195
|
+
s.name = 'ruby-amt'
|
196
|
+
s.version = AMT::VERSION
|
197
|
+
s.summary = SUMMARY
|
198
|
+
s.description = DESCRIPTION
|
199
|
+
|
200
|
+
#### Dependencies, requirements and files
|
201
|
+
|
202
|
+
s.files = PKG_FILES.to_a
|
203
|
+
s.add_dependency('handsoap', '>= 1.1.1')
|
204
|
+
s.add_dependency('httpclient', '>= 2.1.5.2')
|
205
|
+
s.require_path = 'lib'
|
206
|
+
|
207
|
+
#### Documentation
|
208
|
+
|
209
|
+
s.has_rdoc = true
|
210
|
+
s.rdoc_options = ['--line-numbers', '--all', '-m', 'lib/amt/system.rb']
|
211
|
+
|
212
|
+
#### Author and project details
|
213
|
+
|
214
|
+
s.author = 'Thomas Leitner'
|
215
|
+
s.email = 't_leitner@gmx.at'
|
216
|
+
s.homepage = "http://ruby-amt.rubyforge.org"
|
217
|
+
s.rubyforge_project = 'ruby-amt'
|
218
|
+
end
|
219
|
+
|
220
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
221
|
+
pkg.need_zip = true
|
222
|
+
pkg.need_tar = true
|
223
|
+
end
|
224
|
+
|
225
|
+
end
|
226
|
+
|
227
|
+
desc 'Release ruby-amt version ' + AMT::VERSION
|
228
|
+
task :release => [:clobber, :package, :publish_files, :publish_doc, :post_news]
|
229
|
+
|
230
|
+
if defined? RubyForge
|
231
|
+
desc "Upload the release to Rubyforge"
|
232
|
+
task :publish_files => [:package] do
|
233
|
+
print 'Uploading files to Rubyforge...'
|
234
|
+
$stdout.flush
|
235
|
+
|
236
|
+
rf = RubyForge.new
|
237
|
+
rf.configure
|
238
|
+
rf.login
|
239
|
+
|
240
|
+
rf.userconfig["release_notes"] = REL_PAGE.blocks['content'].content
|
241
|
+
rf.userconfig["preformatted"] = false
|
242
|
+
|
243
|
+
files = %w[.gem .tgz .zip].collect {|ext| "pkg/ruby-amt-#{AMT::VERSION}" + ext}
|
244
|
+
|
245
|
+
rf.add_release('ruby-amt', 'ruby-amt', AMT::VERSION, *files)
|
246
|
+
puts 'done'
|
247
|
+
end
|
248
|
+
|
249
|
+
desc 'Post announcement to rubyforge.'
|
250
|
+
task :post_news do
|
251
|
+
print 'Posting announcement to Rubyforge ...'
|
252
|
+
$stdout.flush
|
253
|
+
rf = RubyForge.new
|
254
|
+
rf.configure
|
255
|
+
rf.login
|
256
|
+
|
257
|
+
content = REL_PAGE.blocks['content'].content
|
258
|
+
content += "\n\n\nAbout ruby-amt\n\n#{AMT::SUMMARY}\n\n#{AMT::DESCRIPTION}"
|
259
|
+
rf.post_news('ruby-amt', "ruby-amt #{AMT::VERSION} released", content)
|
260
|
+
puts "done"
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
264
|
+
desc "Upload the ruby-amt website to Rubyforge"
|
265
|
+
task :publish_doc => ['rdoc', 'htmldoc'] do
|
266
|
+
sh "rsync -avc --delete --exclude 'wiki' --exclude 'robots.txt' htmldoc/ gettalong@rubyforge.org:/var/www/gforge-projects/ruby-amt/"
|
267
|
+
end
|
268
|
+
|
269
|
+
desc "Run the tests one by one to check for missing deps"
|
270
|
+
task :test_isolated do
|
271
|
+
files = Dir['test/test_*']
|
272
|
+
puts "Checking #{files.length} tests"
|
273
|
+
failed = files.select do |file|
|
274
|
+
okay = system("ruby -Ilib:test #{file} -vs &> /dev/null")
|
275
|
+
print(okay ? '.' : 'E')
|
276
|
+
!okay
|
277
|
+
end
|
278
|
+
puts
|
279
|
+
failed.each {|file| puts "Problem with" + file.rjust(40) }
|
280
|
+
end
|
281
|
+
|
282
|
+
if defined? Rcov
|
283
|
+
Rcov::RcovTask.new do |rcov|
|
284
|
+
rcov.libs << 'test'
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
288
|
+
end
|
289
|
+
|
290
|
+
task :clobber => ['dev:clobber']
|
291
|
+
|
292
|
+
# Helper methods ###################################################################
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
data/doc/default.css
ADDED
@@ -0,0 +1,211 @@
|
|
1
|
+
* { margin:0; padding:0; }
|
2
|
+
body, div, span, p, a, img, ul, ol, li, table, th, tr, td, form, fieldset, legend, dl, dt, dd, blockquote, applet, object { border:0; }
|
3
|
+
body {
|
4
|
+
padding: 0;
|
5
|
+
background: #fff url("img/bg.jpg") repeat-x;
|
6
|
+
font: 0.8em/1.5 "arial",sans-serif;
|
7
|
+
color: #354146;
|
8
|
+
text-align: center;
|
9
|
+
}
|
10
|
+
|
11
|
+
/* links --------------------------------------------------------------- */
|
12
|
+
a {color:#1666a3;}
|
13
|
+
a:link {color:#1666a3;}
|
14
|
+
a:hover {color:#0b4775;}
|
15
|
+
|
16
|
+
/* header tags --------------------------------------------------------------------- */
|
17
|
+
h1, h2, h3, h4, h5, h6 { margin:15px 0 10px 0; }
|
18
|
+
h1 { font-size:200%; font-family: Georgia;}
|
19
|
+
h1#logo a{color: #ced1d2; text-decoration: none; display: block;padding: 18px 0 17px; font-weight: normal;}
|
20
|
+
h1#logo a:hover{color: #fff;}
|
21
|
+
h1#logo span.slogan {font-size: 60%; padding-left: 1.5em;}
|
22
|
+
h2 { font-size:130%; color: #354146;font-weight: bold; padding: 0; }
|
23
|
+
h3 { font-size:120%; }
|
24
|
+
h4 { font-size:120%; }
|
25
|
+
h5 { font-size:100%; }
|
26
|
+
|
27
|
+
/* layout ---------------------------------------------------------------------- */
|
28
|
+
#layout {
|
29
|
+
text-align:left;
|
30
|
+
}
|
31
|
+
#container {
|
32
|
+
clear: both;
|
33
|
+
}
|
34
|
+
#intro{
|
35
|
+
background: #e6e8e9; height: auto;
|
36
|
+
}
|
37
|
+
#intro-in{
|
38
|
+
width:891px;
|
39
|
+
margin: 0 auto;
|
40
|
+
padding: 20px 0;
|
41
|
+
}
|
42
|
+
|
43
|
+
#header {
|
44
|
+
width:891px;
|
45
|
+
margin:0 auto;
|
46
|
+
}
|
47
|
+
|
48
|
+
|
49
|
+
/* horizontal navigation --------------------------------------------------- */
|
50
|
+
#nav {
|
51
|
+
width:891px;
|
52
|
+
margin:0 auto;
|
53
|
+
}
|
54
|
+
#nav ul {
|
55
|
+
margin:0;
|
56
|
+
padding:0;
|
57
|
+
list-style:none;
|
58
|
+
height: 35px;
|
59
|
+
}
|
60
|
+
#nav ul li {
|
61
|
+
float:left;
|
62
|
+
display:block;
|
63
|
+
margin:0;
|
64
|
+
padding:0;}
|
65
|
+
#nav ul li a, #nav ul li span {
|
66
|
+
display: block;
|
67
|
+
float: left;
|
68
|
+
font-size: 90%;
|
69
|
+
color: #fff;
|
70
|
+
text-decoration: none;
|
71
|
+
padding: 12px 20px 8px;
|
72
|
+
text-align: center;
|
73
|
+
}
|
74
|
+
#nav ul li a:hover, #nav ul li span:hover {
|
75
|
+
color: #ced1d2;
|
76
|
+
text-decoration: underline;
|
77
|
+
}
|
78
|
+
#nav ul li#active a, #nav ul li.webgen-menu-item-selected span {
|
79
|
+
color: #101517;
|
80
|
+
border: 1px solid #fff;
|
81
|
+
border-bottom:1px solid #e6e8e9;
|
82
|
+
background:#e6e8e9; text-decoration:none;}
|
83
|
+
|
84
|
+
/* main content ---------------------------------------------------------------- */
|
85
|
+
|
86
|
+
.content {
|
87
|
+
padding: 0 0 0 0;
|
88
|
+
z-index: 10;
|
89
|
+
width:891px;
|
90
|
+
margin:0 auto;
|
91
|
+
}
|
92
|
+
.content .in{
|
93
|
+
padding: 20px 0 30px;
|
94
|
+
}
|
95
|
+
p.intro{
|
96
|
+
background: url("img/line.jpg");
|
97
|
+
line-height: 23px;
|
98
|
+
margin:0 0 0;
|
99
|
+
}
|
100
|
+
.shadow{
|
101
|
+
border-top: 1px solid #dddddd;
|
102
|
+
padding: 10px 0;
|
103
|
+
background: url("img/shadow.jpg") no-repeat;
|
104
|
+
}
|
105
|
+
|
106
|
+
img.thumb{padding: 3px; background: #fff; border: 1px solid #d1d1d1;}
|
107
|
+
|
108
|
+
.columns {list-style: none;margin:10px 0 0 0;padding:0; font-size: 90%;}
|
109
|
+
.columns li{float: left; width: 32%;}
|
110
|
+
.columns li.col2{border-left: 1px solid #d7d7d7;border-right: 1px solid #d7d7d7;}
|
111
|
+
.columns li h3{padding: 0 10px;color: #2e4650; margin: 0 0 5px;}
|
112
|
+
.columns li.col2 h3{padding-left: 20px;}
|
113
|
+
.columns li.col3 h3{padding-left: 20px;}
|
114
|
+
.columns li p{line-height: 22px;padding: 0 20px 0 10px; margin: 0; color: #3f4345;}
|
115
|
+
.columns li.col2 p{padding: 0 20px 0 20px;}
|
116
|
+
.columns li.col3 p{padding: 0 10px 0 20px;}
|
117
|
+
.columns li a.more{display: block;color: #1666a3;padding: 5px 0;}
|
118
|
+
.columns li a.more:hover{color: #0b4775; text-decoration: none;}
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
/* footer ----------------------------------------------------------------- */
|
123
|
+
#footer {
|
124
|
+
width:891px;
|
125
|
+
margin:0 auto;
|
126
|
+
clear:both;
|
127
|
+
font-size: 85%;
|
128
|
+
padding-bottom: 70px;
|
129
|
+
color: #898989;
|
130
|
+
}
|
131
|
+
#footer a{color: #898989;}
|
132
|
+
#footer a:hover{color: #666666; text-decoration: none;}
|
133
|
+
#footer .f-left, #footer .f-right { padding: 0 10px; }
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
|
138
|
+
/* paragraphs -------------------------------------------------------------------- */
|
139
|
+
p { margin:15px 0; }
|
140
|
+
|
141
|
+
/* tables --------------------------------------------------------------------- */
|
142
|
+
table { margin:15px 0; border-collapse:collapse; border-spacing:0; font-size:100%; }
|
143
|
+
th { text-align:center; font-weight:bold; }
|
144
|
+
th, td { padding:3px 5px; }
|
145
|
+
|
146
|
+
/* lists --------------------------------------------------------------------- */
|
147
|
+
ul, ol { display:block; margin:15px 0 15px 40px; }
|
148
|
+
ul ul, ul ul ul, ol ol, ol ol ol { margin:0; margin-left:20px; }
|
149
|
+
ol { list-style-type:decimal; }
|
150
|
+
ol ol { list-style-type:upper-alpha; }
|
151
|
+
ol ol ol {list-style-type:lower-alpha; }
|
152
|
+
li { display:list-item; }
|
153
|
+
ul li a { text-decoration:underline; }
|
154
|
+
|
155
|
+
/* definitions -------------------------------------------------------------------- */
|
156
|
+
dl { margin:15px 0; }
|
157
|
+
dt { font-weight:bold; }
|
158
|
+
dd { margin-left:30px; }
|
159
|
+
|
160
|
+
/* other HTML tags --------------------------------------------------------------------- */
|
161
|
+
fieldset { margin:15px 0; padding:10px; border:1px solid #CCC; }
|
162
|
+
legend { margin-left:10px; font-size:100%; font-weight:bold; color:#000; }
|
163
|
+
abbr, acronym, .help { border-bottom:1px dotted #CCC; cursor:help; }
|
164
|
+
blockquote { margin:15px 20px; font-style:italic; }
|
165
|
+
del, .del { text-decoration:line-through; }
|
166
|
+
strong, .strong { font-weight:bold; }
|
167
|
+
cite, em, q, var { font-style:italic; }
|
168
|
+
code, kbd, samp {font-family:monospace; font-size:110%; }
|
169
|
+
hr { display:block; height:1px; margin:10px 0; padding:0; border:0 solid #CCC; background:#CCC; color:#CCC;}
|
170
|
+
.f-left {float:left;}
|
171
|
+
.f-right {float:right;}
|
172
|
+
.a-left, tr.a-left td {text-align:left;}
|
173
|
+
.a-center, tr.a-center td {text-align:center;}
|
174
|
+
.a-right, tr.a-right td {text-align:right;}
|
175
|
+
.a-justify {text-align:justify;}
|
176
|
+
.va-top {vertical-align:top;}
|
177
|
+
.va-middle {vertical-align:middle;}
|
178
|
+
.va-bottom {vertical-align:bottom;}
|
179
|
+
.clear { clear:both; }
|
180
|
+
.box { min-height:1px; }
|
181
|
+
.box:after { display:block; visibility:hidden; clear:both; line-height:0; font-size:0; content:"."; }
|
182
|
+
.noscreen { display:none; }
|
183
|
+
.mleft10 { margin-left: 10px; }
|
184
|
+
.mright10 { margin-right: 10px; }
|
185
|
+
.mtop10 { margin-top: 10px; }
|
186
|
+
.mbottom10 { margin-bottom: 10px; }
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
input.small{
|
191
|
+
width: 50px;
|
192
|
+
}
|
193
|
+
input.normal{
|
194
|
+
width: 146px;
|
195
|
+
}
|
196
|
+
.bigger {font-size:115%;}
|
197
|
+
.smaller {font-size:85%;}
|
198
|
+
|
199
|
+
.high {color:#00F;}
|
200
|
+
.nonhigh {color:#777;}
|
201
|
+
|
202
|
+
.foto{ display: block; border: 3px solid #ddd;}
|
203
|
+
|
204
|
+
|
205
|
+
/* added definitions ------------------------------------------------------------ */
|
206
|
+
.news-item + .news-item {
|
207
|
+
border-top: 1px solid #dddddd;
|
208
|
+
}
|
209
|
+
.news-date {
|
210
|
+
margin-top: 5px;
|
211
|
+
}
|