fanforce-plugin-factory 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +21 -0
- data/Gemfile +2 -0
- data/README.md +218 -0
- data/Rakefile +16 -0
- data/fanforce-plugin-factory.gemspec +42 -0
- data/lib/fanforce/plugin_factory.rake +71 -0
- data/lib/fanforce/plugin_factory.rb +60 -0
- data/lib/fanforce/plugin_factory/_init_sinatra.rb +53 -0
- data/lib/fanforce/plugin_factory/assets/css/add_edit_initiative.scss +1 -0
- data/lib/fanforce/plugin_factory/assets/css/add_source.scss +1 -0
- data/lib/fanforce/plugin_factory/assets/css/engage.scss +1 -0
- data/lib/fanforce/plugin_factory/assets/css/new_message.scss +1 -0
- data/lib/fanforce/plugin_factory/assets/css/promotional.scss +1 -0
- data/lib/fanforce/plugin_factory/assets/css/source_details.scss +1 -0
- data/lib/fanforce/plugin_factory/assets/img/icon-16.png +0 -0
- data/lib/fanforce/plugin_factory/assets/img/icon-32.png +0 -0
- data/lib/fanforce/plugin_factory/assets/img/icon-42.png +0 -0
- data/lib/fanforce/plugin_factory/assets/js/add_edit_initiative.js +1 -0
- data/lib/fanforce/plugin_factory/assets/js/add_source.js +1 -0
- data/lib/fanforce/plugin_factory/assets/js/add_source_popup.js +0 -0
- data/lib/fanforce/plugin_factory/assets/js/engage.js +1 -0
- data/lib/fanforce/plugin_factory/assets/js/new_message.js +1 -0
- data/lib/fanforce/plugin_factory/assets/js/promotional.js +2 -0
- data/lib/fanforce/plugin_factory/assets/js/source_details.js +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/_mixins.scss +97 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/_module-error.scss +11 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/_module-search-to-add-initiative.scss +66 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/_module-video-thumbnail.scss +15 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/_tags.scss +83 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/_variables.scss +27 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/broadcaster-divider-arrow.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/icons/dropdown-arrow.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/icons/initiative.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_add_edit_initiative.scss +23 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_add_source.scss +17 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_engage.scss +39 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_new_message.scss +26 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_promotional.scss +26 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_source_details.scss +16 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/add_edit_initiative.js +6 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/add_source.js +6 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/engage.js +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/new_message.js +5 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/promotional.js +1 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/source_details.js +5 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/module-error/arrow-left.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/module-error/icon-error.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/module-search-to-add-initiative/icon-search.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/module-search-to-add-initiative/spinner.gif +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/module-search-to-add-initiative/sprite-arrows.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/module-video-thumbnail/icon-play.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/promotional/fanforce_bg.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-42.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-behavior.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-broadcaster.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-data-connector.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-data-processor.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-identifier.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap-datepicker/datepicker.css +7 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap-datepicker/datepicker.js +454 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap-timepicker/timepicker.css +82 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap-timepicker/timepicker.js +803 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/css/bootstrap.css +6103 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/css/bootstrap.min.css +868 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/img/glyphicons-halflings-white.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/img/glyphicons-halflings.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/js/bootstrap.js +2170 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/js/bootstrap.min.js +7 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/chosen/chosen-sprite.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/chosen/chosen.jquery.min.js +10 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/chosen/chosen.scss +399 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/css/font-awesome.css +540 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/css/font-awesome.min.css +33 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/font/FontAwesome.otf +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/font/fontawesome-webfont.eot +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/font/fontawesome-webfont.svg +284 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/font/fontawesome-webfont.ttf +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/font/fontawesome-webfont.woff +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/jquery/jquery.inputHint.js +154 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/jquery/jquery.tmpl.debug.js +484 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/knockout/knockout.custom-handlers.coffee +131 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/knockout/knockout.debug.js +3223 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/underscore/underscore.debug.js +999 -0
- data/lib/fanforce/plugin_factory/config/_error_handling.rb +26 -0
- data/lib/fanforce/plugin_factory/config/helpers/assets.rb +23 -0
- data/lib/fanforce/plugin_factory/config/helpers/fanforce.rb +21 -0
- data/lib/fanforce/plugin_factory/config/helpers/json.rb +10 -0
- data/lib/fanforce/plugin_factory/config/sinatra_config.rb +65 -0
- data/lib/fanforce/plugin_factory/initializers/ff_globals.rb +72 -0
- data/lib/fanforce/plugin_factory/layouts/add_edit_initiative.haml +14 -0
- data/lib/fanforce/plugin_factory/layouts/add_source.haml +14 -0
- data/lib/fanforce/plugin_factory/layouts/engage.haml +27 -0
- data/lib/fanforce/plugin_factory/layouts/new_message.haml +14 -0
- data/lib/fanforce/plugin_factory/layouts/promotional.haml +14 -0
- data/lib/fanforce/plugin_factory/layouts/source_details.haml +14 -0
- data/lib/fanforce/plugin_factory/public/favicon.ico +0 -0
- data/lib/fanforce/plugin_factory/routes.rb +35 -0
- data/lib/fanforce/plugin_factory/routes_behavior.rb +28 -0
- data/lib/fanforce/plugin_factory/routes_broadcaster.rb +9 -0
- data/lib/fanforce/plugin_factory/routes_data_connector.rb +21 -0
- data/lib/fanforce/plugin_factory/sprockets/compiler.rb +107 -0
- data/lib/fanforce/plugin_factory/sprockets/hacks.rb +43 -0
- data/lib/fanforce/plugin_factory/version.rb +5 -0
- data/lib/fanforce/plugin_factory/views/add_initiative.haml +1 -0
- data/lib/fanforce/plugin_factory/views/add_source.haml +1 -0
- data/lib/fanforce/plugin_factory/views/close_popup.haml +8 -0
- data/lib/fanforce/plugin_factory/views/edit_initiative.haml +1 -0
- data/lib/fanforce/plugin_factory/views/engage.haml +1 -0
- data/lib/fanforce/plugin_factory/views/index.haml +38 -0
- data/lib/fanforce/plugin_factory/views/new_message.haml +1 -0
- data/lib/fanforce/plugin_factory/views/source_details.haml +1 -0
- data/lib/fanforce/plugin_factory/views/widget_tmpls.haml +1 -0
- data/lib/fanforce/plugin_factory_workers.rb +1 -0
- metadata +436 -0
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'sinatra/content_for'
|
2
|
+
require 'rack/jsonr'
|
3
|
+
####################################################################################
|
4
|
+
|
5
|
+
class FanforcePlugin::Sinatra < Sinatra::Base
|
6
|
+
require_relative 'config/_error_handling'
|
7
|
+
require_relative 'config/helpers/assets'
|
8
|
+
require_relative 'config/helpers/json'
|
9
|
+
require_relative 'config/helpers/fanforce'
|
10
|
+
|
11
|
+
use Rack::JSONR, :method_override => :all
|
12
|
+
|
13
|
+
helpers Sinatra::AssetHelpers
|
14
|
+
helpers Sinatra::JSONHelpers
|
15
|
+
helpers Sinatra::FanforceHelpers
|
16
|
+
helpers Sinatra::ContentFor
|
17
|
+
|
18
|
+
def self.any(url,&block)
|
19
|
+
get(url,&block)
|
20
|
+
post(url,&block)
|
21
|
+
put(url,&block)
|
22
|
+
delete(url,&block)
|
23
|
+
end
|
24
|
+
|
25
|
+
def page(page, options={})
|
26
|
+
current_dir = File.expand_path('../', __FILE__)
|
27
|
+
if !File.exists?("#{settings.views}/#{page}.haml")
|
28
|
+
rel_path = Pathname.new(current_dir).relative_path_from(Pathname.new(settings.views))
|
29
|
+
page = :"#{rel_path}/views/#{page}"
|
30
|
+
end
|
31
|
+
|
32
|
+
if options[:layout] and (!FanforcePlugin.config.respond_to?(:"layout_for_#{page}") or FanforcePlugin.config.method(:"layout_for_#{page}").call)
|
33
|
+
if File.exists?("#{settings.views}/../layouts/#{options[:layout]}.haml")
|
34
|
+
options[:layout] = :"../layouts/#{options[:layout]}"
|
35
|
+
else
|
36
|
+
rel_path = Pathname.new(current_dir).relative_path_from(Pathname.new(settings.views))
|
37
|
+
options[:layout] = :"#{rel_path}/layouts/#{options[:layout]}"
|
38
|
+
end
|
39
|
+
else
|
40
|
+
options[:layout] = false
|
41
|
+
end
|
42
|
+
haml page, options
|
43
|
+
end
|
44
|
+
|
45
|
+
configure do
|
46
|
+
FanforcePlugin.load_config
|
47
|
+
set :haml, {:escape_attrs => false}
|
48
|
+
set :static, true
|
49
|
+
set :protection, :except => [:frame_options, :json_csrf]
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
@@ -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/engage';
|
@@ -0,0 +1 @@
|
|
1
|
+
@import 'common/layouts/new_message';
|
@@ -0,0 +1 @@
|
|
1
|
+
@import 'common/layouts/promotional';
|
@@ -0,0 +1 @@
|
|
1
|
+
@import 'common/layouts/source_details';
|
Binary file
|
Binary file
|
Binary file
|
@@ -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/new_message
|
@@ -0,0 +1 @@
|
|
1
|
+
//= require common/layouts/new_message
|
File without changes
|
@@ -0,0 +1,97 @@
|
|
1
|
+
@mixin scrollable-footer($footer-height, $root-selector: unquote("#root"), $root-footer-selector: unquote("#root-footer"), $footer-selector: unquote("#footer")) {
|
2
|
+
html, body { height: 100%; }
|
3
|
+
#{$root-selector} { clear: both; min-height: 100%; height: auto !important; height: 100%; }
|
4
|
+
#{$footer-selector} { clear: both; position: relative; height: $footer-height; }
|
5
|
+
}
|
6
|
+
|
7
|
+
@mixin ff-gradient($color-start: none, $color-end: none, $start: top, $image: false) {
|
8
|
+
// Firefox's gradient api is nice.
|
9
|
+
// Webkit's gradient api sucks -- hence these backflips:
|
10
|
+
@if $color-start == none {
|
11
|
+
background:none;
|
12
|
+
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
13
|
+
//-ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)";
|
14
|
+
} @else {
|
15
|
+
$background: unquote("");
|
16
|
+
@if $image {
|
17
|
+
$background: $image + unquote(", ");
|
18
|
+
}
|
19
|
+
$start: unquote($start);
|
20
|
+
$end: opposite-position($start);
|
21
|
+
|
22
|
+
background: mix($color-start,$color-end); // for non-cs3 browsers
|
23
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$color-start}', endColorstr='#{$color-end}'); //IE 5.5 - 7
|
24
|
+
//-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=00$color-start, endColorstr=00$color-end)"; // IE 8
|
25
|
+
background: #{$background}-webkit-gradient(linear, grad-point($start), grad-point($end), from($color-start), to($color-end)); // webkit
|
26
|
+
background: #{$background}-moz-linear-gradient($start, $color-start, $color-end); //mozilla
|
27
|
+
//background: #{$background}linear-gradient($start, $color-start, $color-end);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
@mixin ff-box($type: normal) {
|
32
|
+
$gradient-top: #eef6fe;
|
33
|
+
$gradient-bottom: #e7f1fd;
|
34
|
+
$border: #c9d4dc;
|
35
|
+
$shadow: #bbcbd6;
|
36
|
+
|
37
|
+
@if $type == darker {
|
38
|
+
$gradient-top: desaturate(darken(#eef6fe,0%),5%);
|
39
|
+
$gradient-bottom: desaturate(darken(#e7f1fd,3%),10%);
|
40
|
+
$border: desaturate(darken(#c9d4dc,5%),10%);
|
41
|
+
$shadow: desaturate(darken(#bbcbd6,15%),10%);
|
42
|
+
} @else if $type == lighter {
|
43
|
+
$gradient-top: desaturate(lighten(#eef6fe,1%),0%);
|
44
|
+
$gradient-bottom: desaturate(lighten(#e7f1fd,2%),0%);
|
45
|
+
$border: desaturate(lighten(#c9d4dc,5%),0%);
|
46
|
+
$shadow: desaturate(lighten(#bbcbd6,5%),0%);
|
47
|
+
} @else if $type == white {
|
48
|
+
$gradient-top: #ffffff;
|
49
|
+
$gradient-bottom: #ffffff;
|
50
|
+
//$border: desaturate(lighten(#c9d4dc,5%),0%);
|
51
|
+
//$shadow: desaturate(lighten(#bbcbd6,5%),0%);
|
52
|
+
} @else if $type == silver {
|
53
|
+
$gradient-top: #f1f1f6;
|
54
|
+
$gradient-bottom: #f1f1f6;
|
55
|
+
$border: #e2e2e8;
|
56
|
+
$shadow: desaturate(lighten(#bbcbd6,5%),0%);
|
57
|
+
}
|
58
|
+
|
59
|
+
@include ff-gradient($gradient-top,$gradient-bottom); border-left:1px solid $border; border-top:1px solid $border; @include border-radius(3px); @include box-shadow(1px 1px 1px $shadow, inset 1px 1px 0 #ffffff); filter: progid:DXImageTransform.Microsoft.Shadow(color='#{$shadow}', Direction=135, Strength=3); zoom:1;
|
60
|
+
}
|
61
|
+
@mixin unset-ff-box() {
|
62
|
+
@include ff-gradient(none); border-left:none; border-top:none; @include border-radius(0); @include box-shadow(none); filter: none; zoom:1;
|
63
|
+
}
|
64
|
+
|
65
|
+
@mixin ff-record($type: normal) {
|
66
|
+
$gradient-top: #ffffff;
|
67
|
+
$gradient-bottom: #ffffff;
|
68
|
+
$border: #d0d2d6;
|
69
|
+
$shadow: #bbcbd6;
|
70
|
+
@include ff-gradient($gradient-top,$gradient-bottom); border-left:1px solid $border; border-top:1px solid $border; @include border-radius(1px); @include box-shadow(1px 1px 1px $shadow, inset 1px 1px 0 #ffffff); filter: progid:DXImageTransform.Microsoft.Shadow(color='#{$shadow}', Direction=135, Strength=3); zoom:1;
|
71
|
+
}
|
72
|
+
|
73
|
+
|
74
|
+
@mixin progress-bar($width, $height, $bar-color1, $bar-color2:flat, $bg-image:flat) {
|
75
|
+
.progress-bar { border: 1px solid #D9DFE7; border-radius: 3px; display: block; height: $height; width: $width;
|
76
|
+
.bar-label { text-align: center; line-height: $height; font-size: 11px; float: left; position: absolute; width: $width; }
|
77
|
+
.bar-progress { float: left; height: $height; border-radius: 3px;
|
78
|
+
@if $bar-color2 == flat { background-color: $bar-color1; }
|
79
|
+
@else if $bg-image == flat { @include ff-gradient($bar-color1, $bar-color2); }
|
80
|
+
@else { background: url($bg-image) left 1px repeat-x; }
|
81
|
+
}
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
@mixin user-select($option:auto) {
|
86
|
+
-moz-user-select:$option; -khtml-user-select:$option; -webkit-user-select:$option; -o-user-select:$option; user-select:$option;
|
87
|
+
}
|
88
|
+
|
89
|
+
@mixin reset-ol {
|
90
|
+
list-style-type: none; list-style-position:outside; text-indent:0; padding-left:0; margin-left:0; line-height:inherit;
|
91
|
+
li { margin:0; }
|
92
|
+
}
|
93
|
+
|
94
|
+
@mixin reset-ul {
|
95
|
+
list-style-type: none; list-style-position:outside; text-indent:0; padding-left:0; margin-left:0; line-height:inherit;
|
96
|
+
li { margin:0; }
|
97
|
+
}
|
@@ -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,66 @@
|
|
1
|
+
$module_path: '/assets/common/module-search-to-add-initiative';
|
2
|
+
/////////////////////////////////////////////////////////////////////////////////////////
|
3
|
+
|
4
|
+
.module-search-to-add-initiative { position:relative; float:left; width:100%; padding-bottom:15px; padding-top:20px;
|
5
|
+
&.supreme { @include ff-box(); }
|
6
|
+
&.spinner {
|
7
|
+
.header, .results-empty, .results-found { visibility:hidden; }
|
8
|
+
.spinner { display:block; }
|
9
|
+
}
|
10
|
+
.spinner { @extend h2; height:100px; position:absolute; left:0; margin-top:100px; width:100%; color:#b9cddc; text-shadow:#ffffff 1px 1px 0; display:none; text-align:center;
|
11
|
+
.img { width:64px; height:64px; background:url(#{$module_path}/spinner.gif) 0 0 no-repeat; margin:0 auto 20px; }
|
12
|
+
}
|
13
|
+
.header { padding:0 0 15px; max-width:900px;
|
14
|
+
h2 { color:#505a62; text-shadow:#ffffff 1px 1px 0; margin-top:0; padding-bottom:5px; }
|
15
|
+
.form-row { position:relative; margin:0; padding:0; margin-right:6px; z-index:5;
|
16
|
+
.gigantic-input { width:auto;
|
17
|
+
input { width:100%; font-size:15px; }
|
18
|
+
label.inputhint { font-size:15px; color:#666666; line-height: 27px; padding-top:2px; padding-left:8px; }
|
19
|
+
.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; }
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
.results-empty { padding:0 0 25px; max-width:900px; position:relative; clear:both;
|
24
|
+
.module-error { margin-right:43px; padding-top:3px; top:-18px; }
|
25
|
+
.module-featuretip { position:absolute; width:400px; top:-10px; left:25px; .arrow { left:100px; } }
|
26
|
+
button.primary { padding:5px 20px; }
|
27
|
+
}
|
28
|
+
.results-found { padding:0 0 25px; max-width:900px;
|
29
|
+
.search-results { overflow:hidden; position:relative; background:#e3eef8; @include border-radius(5px); margin-top:-44px; padding-top:40px; padding-bottom:7px; margin-bottom:20px;
|
30
|
+
.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; }
|
31
|
+
.prev-page { left:0;
|
32
|
+
&:hover { background-position:0 -71px; }
|
33
|
+
&.disabled { background-position:0 -142px; cursor:default; }
|
34
|
+
}
|
35
|
+
.next-page { right:0; background-position: -25px 0;
|
36
|
+
&:hover { background-position:-25px -71px; }
|
37
|
+
&.disabled { background-position:-25px -142px; cursor:default; }
|
38
|
+
}
|
39
|
+
ul.video-list { @include reset-ul(); overflow:hidden; margin:0 20px;
|
40
|
+
li { float:left; width:20%; min-width: 150px; color:#666666; position:relative; height:110px;
|
41
|
+
.result { cursor:pointer; position:absolute; position:absolute; height:87px; width:148px; top:0; left:50%; margin-left:-74px; @include opacity(0.3);
|
42
|
+
&.selected, &:hover {
|
43
|
+
@include opacity(1);
|
44
|
+
}
|
45
|
+
.module-video-thumbnail { border:5px solid #b4c9da; }
|
46
|
+
.title { width:138px; overflow:hidden; white-space:nowrap; text-overflow: ellipsis; font-size:$font-size-small; text-align:center; }
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
51
|
+
.selected-video { float:left; width:100%; }
|
52
|
+
.meta { position:relative; height:274px; margin-left: 500px;
|
53
|
+
> .title,.desc,.added { margin-bottom:5px; }
|
54
|
+
> .title { font-weight:bold; font-size:$font-size-large + 2; }
|
55
|
+
.desc, .added { color:#505a62; font-size:$font-size-small; line-height:$line-height; margin-bottom:15px; }
|
56
|
+
.desc { max-height:170px; overflow:hidden; }
|
57
|
+
.buttons-row { position:absolute; bottom:0; left:0; display:inline-block;
|
58
|
+
button.primary { padding:5px 20px; float:left; }
|
59
|
+
.module-featuretip { position:absolute; bottom:-20px; right:-284px; .arrow { top:60%; } }
|
60
|
+
.module-error { float:left; white-space:nowrap; margin-left:5px; }
|
61
|
+
}
|
62
|
+
}
|
63
|
+
.video { float:left; margin-right:20px; min-height:274px; background:#000000; }
|
64
|
+
.page { float:left; margin-right:20px; min-height:274px; width:480px; background:#666666; @include box-shadow(1px 1px 3px #999999); margin:1px; }
|
65
|
+
}
|
66
|
+
}
|
@@ -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
|
+
}
|
@@ -0,0 +1,83 @@
|
|
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
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
2
|
+
// SET CORE VARIABLES
|
3
|
+
// Define all core variables here
|
4
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
5
|
+
$link-color: #1861a8;
|
6
|
+
$action-color: #ffb400;
|
7
|
+
$true-fan-color: #72c14b;
|
8
|
+
$error-color: #e70000;
|
9
|
+
|
10
|
+
$font-family: 'Helvetica', Arial, sans-serif;
|
11
|
+
$font-size-small: 11px;
|
12
|
+
$font-size-normal: 12px;
|
13
|
+
$font-size-large: 13px;
|
14
|
+
|
15
|
+
$line-height: 1.5em;
|
16
|
+
|
17
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
18
|
+
// SET LAYOUT CONTENT WIDTHS
|
19
|
+
// This has to be defined as a function to get around the scoping limitations of sass
|
20
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
21
|
+
@function content-width($layout: 'none') {
|
22
|
+
@if $layout == 'website' { @return 960px; }
|
23
|
+
@else if $layout == 'application' { @return 1000px; }
|
24
|
+
@else if $layout == 'auth' { @return 1000px; }
|
25
|
+
@else if $layout == 'styleguide' { @return 1120px; }
|
26
|
+
@else { @return 960px; }
|
27
|
+
}
|
Binary file
|
@@ -0,0 +1,23 @@
|
|
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
|
+
|
15
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
16
|
+
// BASE STYLES (AS FEW AS POSSIBLE)
|
17
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
18
|
+
|
19
|
+
body { overflow:hidden;
|
20
|
+
.hide { display:none !important; }
|
21
|
+
.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; }
|
22
|
+
.page-loading { color:#cccccc; font-size:15px; text-align: center; padding-top:45px; }
|
23
|
+
}
|
@@ -0,0 +1,17 @@
|
|
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
|
+
|
15
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
16
|
+
// BASE STYLES (AS FEW AS POSSIBLE)
|
17
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|