fanforce-app-factory 0.40.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/fanforce-app-factory.gemspec +3 -3
- data/lib/fanforce/app_factory.rake +1 -17
- data/lib/fanforce/app_factory.rb +1 -5
- data/lib/fanforce/app_factory/_init_sinatra.rb +11 -4
- data/lib/fanforce/app_factory/assets/css/add_edit_initiative.scss +1 -0
- data/lib/fanforce/app_factory/assets/css/add_source.scss +1 -0
- data/lib/fanforce/app_factory/assets/css/convert_pending_initiative.scss +1 -0
- data/lib/fanforce/app_factory/assets/css/engage.scss +1 -0
- data/lib/fanforce/app_factory/assets/css/new_message.scss +1 -0
- data/lib/fanforce/app_factory/assets/css/source_details.scss +1 -0
- data/lib/fanforce/app_factory/assets/js/add_edit_initiative.js +1 -0
- data/lib/fanforce/app_factory/assets/js/add_source.js +1 -0
- data/lib/fanforce/app_factory/assets/js/add_source_popup.js +0 -0
- data/lib/fanforce/app_factory/assets/js/convert_pending_initiative.js +1 -0
- data/lib/fanforce/app_factory/assets/js/fanforce-engager.js +0 -0
- data/lib/fanforce/app_factory/assets/js/fanforce-finder.js +0 -0
- data/lib/fanforce/app_factory/assets/js/new_message.js +1 -0
- data/lib/fanforce/app_factory/assets/js/source_details.js +0 -0
- data/lib/fanforce/app_factory/assets/lib/common/_bootstrap-overrides.scss +16 -0
- data/lib/fanforce/app_factory/assets/lib/common/_mixins.scss +1 -1
- data/lib/fanforce/app_factory/assets/lib/common/_module-add-initiative-footer.scss +17 -0
- data/lib/fanforce/app_factory/assets/lib/common/_module-error.scss +11 -0
- data/lib/fanforce/app_factory/assets/lib/common/_module-initiative-searcher.scss +63 -0
- data/lib/fanforce/app_factory/assets/lib/common/_module-page-loading.scss +1 -0
- data/lib/fanforce/app_factory/assets/lib/common/_module-saving-initiative.scss +6 -0
- data/lib/fanforce/app_factory/assets/lib/common/_module-start-here.scss +6 -0
- data/lib/fanforce/app_factory/assets/lib/common/_module-video-thumbnail.scss +15 -0
- data/lib/fanforce/app_factory/assets/lib/common/_tags.scss +0 -82
- data/lib/fanforce/app_factory/assets/lib/common/_variables.scss +1 -1
- data/lib/fanforce/app_factory/assets/lib/common/broadcaster-divider-arrow.png +0 -0
- data/lib/fanforce/app_factory/assets/lib/common/layouts/_add_edit_initiative.scss +27 -0
- data/lib/fanforce/app_factory/assets/lib/common/layouts/_add_source.scss +18 -0
- data/lib/fanforce/app_factory/assets/lib/common/layouts/_convert_pending_initiative.scss +27 -0
- data/lib/fanforce/app_factory/assets/lib/common/layouts/_engage.scss +80 -0
- data/lib/fanforce/app_factory/assets/lib/common/layouts/_new_message.scss +24 -0
- data/lib/fanforce/app_factory/assets/lib/common/layouts/_source_details.scss +17 -0
- data/lib/fanforce/app_factory/assets/lib/common/layouts/add_edit_initiative.js +6 -0
- data/lib/fanforce/app_factory/assets/lib/common/layouts/add_source.js +6 -0
- data/lib/fanforce/app_factory/assets/lib/common/layouts/convert_pending_initiative.js +6 -0
- data/lib/fanforce/app_factory/assets/lib/common/layouts/engage.js +0 -0
- data/lib/fanforce/app_factory/assets/lib/common/layouts/new_message.js +5 -0
- data/lib/fanforce/app_factory/assets/lib/common/layouts/source_details.js +5 -0
- data/lib/fanforce/app_factory/assets/lib/common/module-error/arrow-left.png +0 -0
- data/lib/fanforce/app_factory/assets/lib/common/module-error/icon-error.png +0 -0
- data/lib/fanforce/app_factory/assets/lib/common/module-initiative-searcher/icon-search.png +0 -0
- data/lib/fanforce/app_factory/assets/lib/common/module-initiative-searcher/spinner.gif +0 -0
- data/lib/fanforce/app_factory/assets/lib/common/module-initiative-searcher/sprite-arrows.png +0 -0
- data/lib/fanforce/app_factory/assets/lib/common/module-saving-initiative/spinner.gif +0 -0
- data/lib/fanforce/app_factory/assets/lib/common/module-start-here/arrow.png +0 -0
- data/lib/fanforce/app_factory/assets/lib/common/module-video-thumbnail/icon-play.png +0 -0
- data/lib/fanforce/app_factory/assets/lib/vendors/bootstrap-datepicker/datepicker.css +7 -0
- data/lib/fanforce/app_factory/assets/lib/vendors/bootstrap-datepicker/datepicker.js +454 -0
- data/lib/fanforce/app_factory/assets/lib/vendors/bootstrap-timepicker/timepicker.css +82 -0
- data/lib/fanforce/app_factory/assets/lib/vendors/bootstrap-timepicker/timepicker.js +803 -0
- data/lib/fanforce/app_factory/assets/lib/vendors/chosen/_chosen_override.scss +6 -0
- data/lib/fanforce/app_factory/assets/lib/vendors/chosen/chosen-sprite@2x.png +0 -0
- data/lib/fanforce/app_factory/assets/lib/vendors/chosen/chosen.scss +2 -0
- data/lib/fanforce/app_factory/assets/lib/vendors/knockout/knockout.custom-handlers.coffee +4 -4
- data/lib/fanforce/app_factory/assets/lib/vendors/select2/_select2_override.scss +1 -1
- data/lib/fanforce/app_factory/assets/lib/vendors/select2/select2_modified.js +3 -0
- data/lib/fanforce/app_factory/config/core_config.rb +52 -8
- data/lib/fanforce/app_factory/config/helpers/fanforce.rb +17 -0
- data/lib/fanforce/app_factory/config/helpers/ractive.rb +27 -0
- data/lib/fanforce/app_factory/layouts/add_edit_initiative.haml +19 -0
- data/lib/fanforce/app_factory/layouts/add_source.haml +19 -0
- data/lib/fanforce/app_factory/layouts/convert_pending_initiative.haml +19 -0
- data/lib/fanforce/app_factory/layouts/engage.haml +38 -0
- data/lib/fanforce/app_factory/layouts/new_message.haml +19 -0
- data/lib/fanforce/app_factory/layouts/source_details.haml +19 -0
- data/lib/fanforce/app_factory/routes_behavior.rb +44 -0
- data/lib/fanforce/app_factory/routes_broadcaster.rb +9 -0
- data/lib/fanforce/app_factory/routes_connector.rb +21 -0
- data/lib/fanforce/app_factory/{routes.rb → routes_core.rb} +6 -6
- data/lib/fanforce/app_factory/routes_identifier.rb +3 -0
- data/lib/fanforce/app_factory/routes_js_widget.rb +10 -0
- data/lib/fanforce/app_factory/sprockets/compiler.rb +5 -0
- data/lib/fanforce/app_factory/version.rb +1 -1
- data/lib/fanforce/app_factory/views/add_initiative.haml +1 -0
- data/lib/fanforce/app_factory/views/add_source.haml +1 -0
- data/lib/fanforce/app_factory/views/close_popup.haml +8 -0
- data/lib/fanforce/app_factory/views/convert_pending_initiative.haml +1 -0
- data/lib/fanforce/app_factory/views/edit_initiative.haml +1 -0
- data/lib/fanforce/app_factory/views/engage.haml +1 -0
- data/lib/fanforce/app_factory/views/new_message.haml +1 -0
- data/lib/fanforce/app_factory/views/source_details.haml +1 -0
- data/lib/fanforce/app_factory/views/widget_templates.haml +1 -0
- metadata +82 -12
@@ -36,8 +36,8 @@ Gem::Specification.new do |gem|
|
|
36
36
|
gem.add_runtime_dependency 'bugsnag', '~> 1.5.2'
|
37
37
|
gem.add_runtime_dependency 'rack-jsonr', '~> 0.2.6'
|
38
38
|
|
39
|
-
gem.add_runtime_dependency 'fanforce', '~> 0.
|
40
|
-
gem.add_runtime_dependency 'fanforce-api', '~> 0.
|
39
|
+
gem.add_runtime_dependency 'fanforce', '~> 0.20'
|
40
|
+
gem.add_runtime_dependency 'fanforce-api', '~> 0.30'
|
41
|
+
gem.add_runtime_dependency 'fanforce-worker', '~> 0.31'
|
41
42
|
gem.add_runtime_dependency 'fanforce-exceptions', '~> 0.5'
|
42
|
-
gem.add_runtime_dependency 'fanforce-worker', '~> 0.20'
|
43
43
|
end
|
@@ -6,23 +6,7 @@ require_relative 'app_factory/sprockets/hacks'
|
|
6
6
|
require_relative 'app_factory/sprockets/compiler'
|
7
7
|
require_relative 'app_factory/version'
|
8
8
|
|
9
|
-
|
10
|
-
File.open(file, 'rb') do |file|
|
11
|
-
contents = file.read
|
12
|
-
lines = contents.gsub('export ', '').split(/\n\r?/).reject{|line| line.blank?}
|
13
|
-
lines.each do |line|
|
14
|
-
keyValue = line.split("=", 2)
|
15
|
-
next unless keyValue.count == 2
|
16
|
-
ENV[keyValue.first] = keyValue.last.gsub("'",'').gsub('"','')
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
if (!ENV['RACK_ENV'] or ENV['RACK_ENV'] == 'development')
|
22
|
-
load_env_from_file("#{FanforceApp.config.root_dir}/.powenv") if File.exists?("#{FanforceApp.config.root_dir}/.powenv")
|
23
|
-
load_env_from_file("#{FanforceApp.config.root_dir}/.appenv") if File.exists?("#{FanforceApp.config.root_dir}/.appenv")
|
24
|
-
end
|
25
|
-
|
9
|
+
FanforceApp.config.load_env
|
26
10
|
FanforceApp.config.load_redis
|
27
11
|
|
28
12
|
namespace :assets do
|
data/lib/fanforce/app_factory.rb
CHANGED
@@ -14,14 +14,10 @@ if ENV['RACK_ENV'] == 'development'
|
|
14
14
|
require_relative 'app_factory/sprockets/compiler'
|
15
15
|
end
|
16
16
|
|
17
|
-
caller[0].split(':')[0] =~ /^(.+(config\.ru|Rakefile))$/ ?
|
17
|
+
ROOT_DIR ||= (caller[0].split(':')[0] =~ /^(.+(config\.ru|Rakefile))$/) ? File.dirname($1) : $BaseDir
|
18
18
|
|
19
19
|
module FanforceApp
|
20
20
|
|
21
|
-
def self.enqueue(queue_name, payload)
|
22
|
-
Fanforce::Worker.enqueue "#{config._id}-#{queue_name}", payload
|
23
|
-
end
|
24
|
-
|
25
21
|
def self.config(&block)
|
26
22
|
config = @@config ||= FanforceApp::CoreConfig.new(ROOT_DIR)
|
27
23
|
if block.present?
|
@@ -5,6 +5,7 @@ require 'bugsnag'
|
|
5
5
|
class FanforceApp::Sinatra < Sinatra::Base
|
6
6
|
require_relative 'config/_error_handling'
|
7
7
|
require_relative 'config/helpers/assets'
|
8
|
+
require_relative 'config/helpers/ractive'
|
8
9
|
require_relative 'config/helpers/json'
|
9
10
|
require_relative 'config/helpers/fanforce'
|
10
11
|
|
@@ -12,6 +13,7 @@ class FanforceApp::Sinatra < Sinatra::Base
|
|
12
13
|
use Bugsnag::Rack
|
13
14
|
|
14
15
|
helpers Sinatra::AssetHelpers
|
16
|
+
helpers Sinatra::RactiveHelpers
|
15
17
|
helpers Sinatra::JSONHelpers
|
16
18
|
helpers Sinatra::FanforceHelpers
|
17
19
|
helpers Sinatra::ContentFor
|
@@ -26,11 +28,16 @@ class FanforceApp::Sinatra < Sinatra::Base
|
|
26
28
|
def page(page, options={})
|
27
29
|
current_dir = File.expand_path('../', __FILE__)
|
28
30
|
if !File.exists?("#{settings.views}/#{page}.haml")
|
29
|
-
|
30
|
-
|
31
|
+
if File.exists?("#{settings.views}/#{options[:com_dir]}/#{page}.haml")
|
32
|
+
page_path = :"#{options[:com_dir]}/#{page}"
|
33
|
+
else
|
34
|
+
rel_path = Pathname.new(current_dir).relative_path_from(Pathname.new(settings.views))
|
35
|
+
page_path = :"#{rel_path}/views/#{page}" if File.exists?("#{rel_path}/views/#{page}.haml")
|
36
|
+
end
|
31
37
|
end
|
38
|
+
page_path ||= page
|
32
39
|
|
33
|
-
if options[:layout] and FanforceApp.config.
|
40
|
+
if options[:layout] and FanforceApp.config.has_layout_for(page)
|
34
41
|
if File.exists?("#{settings.views}/../layouts/#{options[:layout]}.haml")
|
35
42
|
options[:layout] = :"../layouts/#{options[:layout]}"
|
36
43
|
else
|
@@ -40,7 +47,7 @@ class FanforceApp::Sinatra < Sinatra::Base
|
|
40
47
|
else
|
41
48
|
options[:layout] = false
|
42
49
|
end
|
43
|
-
haml
|
50
|
+
haml page_path, options
|
44
51
|
end
|
45
52
|
|
46
53
|
configure do
|
@@ -0,0 +1 @@
|
|
1
|
+
@import 'common/layouts/add_edit_initiative';
|
@@ -0,0 +1 @@
|
|
1
|
+
@import 'common/layouts/add_source';
|
@@ -0,0 +1 @@
|
|
1
|
+
@import 'common/layouts/convert_pending_initiative';
|
@@ -0,0 +1 @@
|
|
1
|
+
@import 'common/layouts/engage';
|
@@ -0,0 +1 @@
|
|
1
|
+
@import 'common/layouts/new_message';
|
@@ -0,0 +1 @@
|
|
1
|
+
@import 'common/layouts/source_details';
|
@@ -0,0 +1 @@
|
|
1
|
+
//= require common/layouts/add_edit_initiative
|
@@ -0,0 +1 @@
|
|
1
|
+
//= require common/layouts/add_source
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
//= require common/layouts/convert_pending_initiative
|
File without changes
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
//= require common/layouts/new_message
|
File without changes
|
@@ -0,0 +1,16 @@
|
|
1
|
+
body { padding:0; font-size:12px;
|
2
|
+
.btn-primary { background:#48739c; @include ff-gradient(#6a93bb, #48739c); border:1px solid #324e69; @include box-shadow(inset 1px 1px 0 #98badc); color:#ffffff; text-shadow:-1px -1px 1px #2d4963;
|
3
|
+
&:hover, &:active, &:focus, &.disabled, &[disabled] { background:#3f6890; @include ff-gradient(#5c85ad, #3f6890); text-decoration:none; }
|
4
|
+
}
|
5
|
+
|
6
|
+
textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .uneditable-input {
|
7
|
+
border: 1px solid #CCCCCC;
|
8
|
+
@include box-shadow(0 1px 1px rgba(0, 0, 0, 0.075) inset);
|
9
|
+
}
|
10
|
+
|
11
|
+
select, textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .uneditable-input {
|
12
|
+
@include border-radius(4px);
|
13
|
+
}
|
14
|
+
|
15
|
+
}
|
16
|
+
.btn { padding: 2px 10px; color: #666666; border-radius: 3px; font-size: 11.05px; background-color: #F5F5F5; @include ff-gradient(#FFFFFF, #E6E6E6); border-color: #CCCCCC #CCCCCC #B3B3B3; @include box-shadow(0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 1px 2px rgba(0, 0, 0, 0.05)); text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); }
|
@@ -0,0 +1,17 @@
|
|
1
|
+
.module-add-initiative-footer { position:absolute; bottom:0; left:0; padding:0 3px; @include box-sizing(border-box); text-align:left; width:100%; margin:0px; overflow:hidden;
|
2
|
+
&.disabled .footer { pointer-events: none;
|
3
|
+
label { @include opacity(.5); }
|
4
|
+
.input-wrapper { @include opacity(.5); cursor: not-allowed; }
|
5
|
+
button { @include opacity(.5); background: #c9d5e1; border-color: #a6b4c1; text-shadow: none; }
|
6
|
+
}
|
7
|
+
.footer { @include box-shadow(#ffffff 0 1px 0 inset); padding: 5px 0; border-top: 1px solid #e1e1e1;
|
8
|
+
label { font-weight:100; color:#666666; text-shadow:1px 1px 0 #ffffff; margin-left:20px; }
|
9
|
+
.input-wrapper { cursor: text; position:relative; display: inline-block; color: #555555; background: rgba(255, 255, 255, 0.75); @include border-radius(4px); border: 1px solid #CCCCCC; @include box-shadow(0 1px 1px rgba(0, 0, 0, 0.075) inset);
|
10
|
+
.prefix { pointer-events: none; font-size: 12px; font-weight: normal; line-height: 1.5; height:28px; vertical-align: middle; padding: 5px 0 0 8px; display:inline-block; }
|
11
|
+
input { font-size: 12px; font-weight: normal; background: transparent; padding-left: 0px; border:none; height:28px; @include box-shadow(none); min-width:250px; width:auto; display:inline-block; vertical-align: middle; }
|
12
|
+
}
|
13
|
+
button { margin-top: 0; margin-left: 2px; padding-top: 5px; padding-bottom: 5px;
|
14
|
+
i { margin-right: 5px; }
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
$module_path: "/assets/common/module-error";
|
2
|
+
/////////////////////////////////////////////////////////////////////////////////////////
|
3
|
+
|
4
|
+
.module-error { position:relative; color:#ffffff; font-size:12; @include min-height(30px); @include border-radius(1px); line-height:30px; background:#e70000;
|
5
|
+
.msg { background:url(#{$module_path}/icon-error.png) 7px 7px no-repeat; padding:0px 13px 0 30px; }
|
6
|
+
}
|
7
|
+
|
8
|
+
.module-error-bubble { position:absolute; top:0; right:-240px;
|
9
|
+
.arrow-left { position:absolute; left:-9px; top:11px; width:11px; height:20px; background:url(#{$module_path}/arrow-left.png) left top no-repeat; }
|
10
|
+
.error { width:200px; @include border-radius(2px); background:#fd4141; border:#ff0000 1px solid; @include box-shadow(#bcbcbc 1px 1px 2px, #fe7474 1px 1px 0 inset); color:#ffffff; padding:12px; padding-bottom:10px; }
|
11
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
$module_path: '/assets/common/module-initiative-searcher';
|
2
|
+
/////////////////////////////////////////////////////////////////////////////////////////
|
3
|
+
|
4
|
+
.module-initiative-searcher { position:relative; width:100%; padding:20px 20px 15px; overflow:hidden;
|
5
|
+
&.supreme { @include ff-box(); }
|
6
|
+
.header { padding:0 0 5px; max-width:900px;
|
7
|
+
h2 { color:#505a62; text-shadow:#ffffff 1px 1px 0; margin-top:0; padding-bottom:5px; }
|
8
|
+
.form-row { position:relative; margin:0; padding:0; z-index:5;
|
9
|
+
.gigantic-input { width:auto;
|
10
|
+
input { width:100%; font-size:15px; height:30px; padding-left:5px; }
|
11
|
+
label.inputhint { font-size:15px; color:#666666; line-height: 27px; padding-top:2px; padding-left:8px; cursor: text; font-weight:normal; }
|
12
|
+
.icon { position:absolute; width:14px; height:18px; top:6px; right:0px; padding-left:6px; border-left: 1px solid #CCCCCC; background:url(#{$module_path}/icon-search.png) 6px center no-repeat; }
|
13
|
+
}
|
14
|
+
}
|
15
|
+
}
|
16
|
+
.searching { padding: 20px 0; font-weight: normal; color: #afb7c8;
|
17
|
+
.spinner { width:20px; height:20px; background:url(#{$module_path}/spinner.gif) 0 0 no-repeat; float:left; margin-right:10px; }
|
18
|
+
}
|
19
|
+
.results-empty { padding:0 0 25px; max-width:900px; position:relative; clear:both;
|
20
|
+
.module-error { padding-top:3px; top:-8px; position: absolute; width:100%; }
|
21
|
+
.module-featuretip { position:absolute; width:400px; top:-10px; left:25px; .arrow { left:100px; } }
|
22
|
+
button.primary { padding:5px 20px; }
|
23
|
+
}
|
24
|
+
.results-found { padding:0 0 25px; max-width:900px;
|
25
|
+
.module-error { clear:both; }
|
26
|
+
.search-results { overflow:hidden; position:relative; background:#e3eef8; @include border-radius(5px); margin-top:-34px; padding-top:40px; padding-bottom:7px; margin-bottom:20px;
|
27
|
+
.prev-page, .next-page { position:absolute; top:44px; cursor:pointer; display:block; width:25px; height:67px; margin-top:10px; background:url(#{$module_path}/sprite-arrows.png) 0 0 no-repeat; }
|
28
|
+
.prev-page { left:0;
|
29
|
+
&:hover { background-position:0 -71px; }
|
30
|
+
&.disabled { background-position:0 -142px; cursor:default; }
|
31
|
+
}
|
32
|
+
.next-page { right:0; background-position: -25px 0;
|
33
|
+
&:hover { background-position:-25px -71px; }
|
34
|
+
&.disabled { background-position:-25px -142px; cursor:default; }
|
35
|
+
}
|
36
|
+
ul.video-list { @include reset-ul(); overflow:hidden; margin:0 20px;
|
37
|
+
li { float:left; width:20%; min-width: 150px; color:#666666; position:relative; height:110px;
|
38
|
+
.result { cursor:pointer; position:absolute; position:absolute; height:87px; width:148px; top:0; left:50%; margin-left:-74px; @include opacity(0.3);
|
39
|
+
&.selected, &:hover {
|
40
|
+
@include opacity(1);
|
41
|
+
}
|
42
|
+
.module-video-thumbnail { border:5px solid #b4c9da; }
|
43
|
+
.title { width:138px; overflow:hidden; white-space:nowrap; text-overflow: ellipsis; font-size:$font-size-small; text-align:center; }
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
.selected-result { float:left; width:100%; }
|
49
|
+
.meta { position:relative; height:274px; margin-left: 500px;
|
50
|
+
> .title,.desc,.added { margin-bottom:5px; }
|
51
|
+
> .title { font-weight:bold; font-size:$font-size-large + 2; }
|
52
|
+
.desc, .added { color:#505a62; font-size:$font-size-small; line-height:$line-height; margin-bottom:15px; }
|
53
|
+
.desc { max-height:170px; overflow:hidden; }
|
54
|
+
.buttons-row { position:absolute; bottom:0; left:0; display:inline-block;
|
55
|
+
button.primary { padding:5px 20px; float:left; }
|
56
|
+
.module-featuretip { position:absolute; bottom:-20px; right:-284px; .arrow { top:60%; } }
|
57
|
+
.module-error { float:left; white-space:nowrap; margin-left:5px; }
|
58
|
+
}
|
59
|
+
}
|
60
|
+
.video { float:left; margin-right:20px; min-height:274px; background:#000000; }
|
61
|
+
.page { float:left; margin-right:20px; min-height:274px; width:480px; background:#666666; @include box-shadow(1px 1px 3px #999999); margin:1px; }
|
62
|
+
}
|
63
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
.module-page-loading { color:#cccccc; font-size:15px; text-align: center; padding-top:45px; }
|
@@ -0,0 +1,6 @@
|
|
1
|
+
$module_path: "/assets/common/module-saving-initiative";
|
2
|
+
/////////////////////////////////////////////////////////////////////////////////////////
|
3
|
+
|
4
|
+
.module-saving-initiative { text-align: center; height:100px; position:absolute; left:0; margin-top:80px; width:100%; color:#b9cddc; text-shadow:#ffffff 1px 1px 0; display:none; text-align:center;
|
5
|
+
.spinner { width:64px; height:64px; background:url(#{$module_path}/spinner.gif) 0 0 no-repeat; margin:0 auto 20px; }
|
6
|
+
}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
$module_path: '/assets/common/module-start-here';
|
2
|
+
/////////////////////////////////////////////////////////////////////////////////////////
|
3
|
+
.module-start-here { padding: 10px 0 0 30px; position:relative;
|
4
|
+
.arrow { width: 114px; height: 61px; background:url(#{$module_path}/arrow.png) 6px center no-repeat;}
|
5
|
+
.text { color: #afb7c8; font-weight: bold; position:absolute; top: 60px; left: 155px; }
|
6
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
$module_path: '/assets/common/module-video-thumbnail';
|
2
|
+
/////////////////////////////////////////////////////////////////////////////////////////
|
3
|
+
|
4
|
+
.module-video-thumbnail { display:inline-block; position:relative;
|
5
|
+
.video-thumb { vertical-align:bottom; height:77px; width:138px; overflow:hidden; @include border-radius(2px); display:inline-block; position:relative;
|
6
|
+
img { top:0; min-height:77px; min-width:138px; display:block; position:absolute; left:0; }
|
7
|
+
}
|
8
|
+
.video-time { position:absolute; right:2px; bottom:2px; padding:0 4px; @include opacity(.75); line-height:14px; height:14px; font-weight:bold; font-size:11px; color:#ffffff; @include border-radius(3px); background:#000000; }
|
9
|
+
.play { width:55px; height:35px; position:absolute; left:50%; margin-left:-23px; top:50%; margin-top:-17px; display:none; background:url(#{$module_path}/icon-play.png) 0 0 no-repeat; z-index:5;
|
10
|
+
&:hover { background-position:0 -35px; }
|
11
|
+
}
|
12
|
+
&:hover {
|
13
|
+
.play { display:block; cursor:pointer; cursor:hand; }
|
14
|
+
}
|
15
|
+
}
|
@@ -1,83 +1 @@
|
|
1
|
-
@import 'variables';
|
2
|
-
//////////////////////////////////////////////////////////////////////////////////////////////////
|
3
|
-
// COMMON TAGS
|
4
|
-
//////////////////////////////////////////////////////////////////////////////////////////////////
|
5
|
-
html { }
|
6
|
-
body { font-family:$font-family; font-size:$font-size-normal; line-height:$line-height; }
|
7
|
-
|
8
|
-
h1, .h1 { font-size: 30px; font-weight:bold; margin:10px 0; line-height:1em; }
|
9
|
-
h2, .h2 { font-size:20px; font-weight:bold; margin:8px 0; line-height:1em; }
|
10
|
-
h3, .h3 { font-size:17px; font-weight:bold; margin:6px 0; line-height:1em; }
|
11
|
-
h4, .h4 { font-size:14px; font-weight:bold; margin:4px 0; line-height:1em; }
|
12
|
-
h5, .h5 { font-size:$font-size-large; font-weight:bold; margin:2px 0; line-height:1em; }
|
13
|
-
h6, .h6 { font-size:$font-size-normal; font-weight:bold; margin:2px 0; line-height:1em; }
|
14
|
-
h7, .h7 { font-size:$font-size-small; font-weight:bold; margin:2px 0; line-height:1em; }
|
15
|
-
|
16
|
-
p, .p { line-height:$line-height; margin-bottom:10px; }
|
17
|
-
a { text-decoration:none; color:$link-color;
|
18
|
-
&:hover { text-decoration:underline; }
|
19
|
-
}
|
20
|
-
strong, .strong { font-weight:bold; }
|
21
|
-
emphasis, .emphasis { font-style:italic; }
|
22
|
-
|
23
|
-
|
24
|
-
ul { list-style-type: square; list-style-position:outside; padding:0; margin-left:0; line-height:$line-height;
|
25
|
-
li { margin-top:5px; margin-left:1em; }
|
26
|
-
}
|
27
|
-
|
28
|
-
ol { list-style-type:decimal; list-style-position:outside; padding:0; margin-left:0; line-height:$line-height;
|
29
|
-
li { margin-top:5px; margin-left:1.5em; }
|
30
|
-
}
|
31
|
-
|
32
|
-
pre { font-family:"Courier New", Courier, monospace, sans-serif; color: #555; line-height: 1.6em; }
|
33
|
-
|
34
|
-
//////////////////////////////////////////////////////////////////////////////////////////////////
|
35
|
-
// HELPER CLASSES
|
36
|
-
//////////////////////////////////////////////////////////////////////////////////////////////////
|
37
|
-
|
38
|
-
.hide { display:none !important; }
|
39
|
-
|
40
|
-
input[type='text'], input[type="password"], textarea { @include border-radius(5px); @include box-shadow(inset #dddddd 1px 1px 0); border:1px solid #aaaaaa; padding-top:0; padding-bottom:0; padding-left:6px; font-family:$font-family; font-size:$font-size-normal; height:27px; line-height:27px; }
|
41
|
-
textarea { padding:4px 0 0 5px; line-height:1.3em; height:auto; }
|
42
|
-
.form-row { clear:both; margin-bottom:10px; position:relative; }
|
43
|
-
.form-buttons { }
|
44
|
-
|
45
|
-
label.fLabel { color:#999999; font-family:$font-family; line-height:23px; margin:3px 0 0 8px; }
|
46
|
-
|
47
|
-
|
48
|
-
//////////////////////////////////////////////////////////////////////////////////////////////////
|
49
|
-
// BASE BUTTON STYLES
|
50
|
-
//////////////////////////////////////////////////////////////////////////////////////////////////
|
51
|
-
button,input[type=button],input[type=submit],input[type=reset],.button{ position:relative; @include border-radius(3px); @include box-shadow(inset 1px 1px 0 #ffffff); @include user-select(none); background:#e7e7e7; @include ff-gradient(#fafafa, #e7e7e7); border:1px solid #b0b5bb; color:#1e659b; cursor:pointer; cursor:hand; display:inline-block; font-size:12px; padding:3px 8px 3px 8px; line-height:15px; text-align:center; text-decoration:none; text-shadow:1px 1px 0 #ffffff;
|
52
|
-
&:hover, &.hover{ background:#d7d7d7; @include ff-gradient(#eeeeee, #d7d7d7); text-decoration:none; }
|
53
|
-
&:active,&.active{ @include box-shadow(inset 1px 1px 1px #c9cacb); text-shadow:none; }
|
54
|
-
&:disabled,&.disabled{ opacity:0.5; cursor:default; text-shadow:none; pointer-events:none; }
|
55
|
-
img { vertical-align:middle; }
|
56
|
-
|
57
|
-
/* large */
|
58
|
-
&.super{ font-size:13px; font-weight:bold; padding:5px 10px 5px 10px; }
|
59
|
-
|
60
|
-
/* large */
|
61
|
-
&.large{ font-size:12px; font-weight:bold; }
|
62
|
-
|
63
|
-
/* small */
|
64
|
-
&.small{ font-size:11px; padding:1px 5px 1px 5px; }
|
65
|
-
|
66
|
-
/* toolbar */
|
67
|
-
&.toolbar { font-size:11px; padding:0 3px 0 3px; background:#e4e4e4; @include ff-gradient(#f7f7f7, #e4e4e4); border:1px solid #a0a0a0; color:#444444; text-shadow:1px 1px 0 #ffffff;
|
68
|
-
&:hover,&.hover { background:#dbdde0; @include ff-gradient(#f1f2f3, #dbdde0); text-decoration:none; }
|
69
|
-
}
|
70
|
-
|
71
|
-
/* primary */
|
72
|
-
&.primary { background:#48739c; @include ff-gradient(#6a93bb, #48739c); border:1px solid #324e69; @include box-shadow(inset 1px 1px 0 #98badc); color:#ffffff; text-shadow:-1px -1px 1px #2d4963;
|
73
|
-
&:hover,&.hover { background:#3f6890; @include ff-gradient(#5c85ad, #3f6890); text-decoration:none; }
|
74
|
-
&:disabled,&.disabled{ @include ff-gradient(#e7e7e7, #e7e7e7); border:1px solid #b0b5bb; @include box-shadow(none); text-shadow:none; color:#999999; }
|
75
|
-
}
|
76
|
-
|
77
|
-
/* secondary */
|
78
|
-
&.secondary { background:#d5e7f6; @include ff-gradient(#eaf3fb, #c3dcf1); border:1px solid #a3aab0; color:#4777a4; text-shadow:#ffffff 1px 1px 0;
|
79
|
-
&:hover,&.hover { background:#b9d3e9; @include ff-gradient(#e1ebf5, #b9d3e9); text-decoration:none; }
|
80
|
-
}
|
81
|
-
}
|
82
|
-
|
83
1
|
|
@@ -4,7 +4,7 @@
|
|
4
4
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
5
5
|
$link-color: #1861a8;
|
6
6
|
$action-color: #ffb400;
|
7
|
-
$true-fan-color:
|
7
|
+
$true-fan-color: #72c14b;
|
8
8
|
$error-color: #e70000;
|
9
9
|
|
10
10
|
$font-family: 'Helvetica', Arial, sans-serif;
|
@@ -0,0 +1,27 @@
|
|
1
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
2
|
+
// COMPASS AND BOOTSTRAP
|
3
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
4
|
+
@import 'compass/css3';
|
5
|
+
@import 'compass/utilities';
|
6
|
+
@import 'vendors/bootstrap/css/bootstrap.min.css';
|
7
|
+
@import 'vendors/font-awesome/css/font-awesome.min.css';
|
8
|
+
|
9
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
10
|
+
// COMMON
|
11
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
12
|
+
@import 'common/mixins';
|
13
|
+
@import 'common/variables';
|
14
|
+
@import 'common/bootstrap-overrides';
|
15
|
+
|
16
|
+
@import 'common/module-page-loading';
|
17
|
+
@import 'common/module-saving-initiative';
|
18
|
+
@import 'common/module-add-initiative-footer';
|
19
|
+
|
20
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
21
|
+
// BASE STYLES (AS FEW AS POSSIBLE)
|
22
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
23
|
+
|
24
|
+
body { overflow:hidden; background: #F4F8FC;
|
25
|
+
.hide { display:none !important; }
|
26
|
+
.dropdown-menu { @include border-radius(4px); border:1px solid #aec7dd; @include box-shadow(1px 1px 3px rgba(0, 0, 0, 0.2), #ffffff 1px 1px 0 inset); background:#f7fafd; }
|
27
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
2
|
+
// COMPASS AND BOOTSTRAP
|
3
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
4
|
+
@import 'compass/css3';
|
5
|
+
@import 'compass/utilities';
|
6
|
+
@import 'vendors/bootstrap/css/bootstrap.min.css';
|
7
|
+
@import 'vendors/font-awesome/css/font-awesome.min.css';
|
8
|
+
|
9
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
10
|
+
// COMMON
|
11
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
12
|
+
@import 'common/mixins';
|
13
|
+
@import 'common/variables';
|
14
|
+
@import 'common/bootstrap-overrides';
|
15
|
+
|
16
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
17
|
+
// BASE STYLES (AS FEW AS POSSIBLE)
|
18
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|