fanforce-plugin-factory 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +21 -0
  3. data/Gemfile +2 -0
  4. data/README.md +218 -0
  5. data/Rakefile +16 -0
  6. data/fanforce-plugin-factory.gemspec +42 -0
  7. data/lib/fanforce/plugin_factory.rake +71 -0
  8. data/lib/fanforce/plugin_factory.rb +60 -0
  9. data/lib/fanforce/plugin_factory/_init_sinatra.rb +53 -0
  10. data/lib/fanforce/plugin_factory/assets/css/add_edit_initiative.scss +1 -0
  11. data/lib/fanforce/plugin_factory/assets/css/add_source.scss +1 -0
  12. data/lib/fanforce/plugin_factory/assets/css/engage.scss +1 -0
  13. data/lib/fanforce/plugin_factory/assets/css/new_message.scss +1 -0
  14. data/lib/fanforce/plugin_factory/assets/css/promotional.scss +1 -0
  15. data/lib/fanforce/plugin_factory/assets/css/source_details.scss +1 -0
  16. data/lib/fanforce/plugin_factory/assets/img/icon-16.png +0 -0
  17. data/lib/fanforce/plugin_factory/assets/img/icon-32.png +0 -0
  18. data/lib/fanforce/plugin_factory/assets/img/icon-42.png +0 -0
  19. data/lib/fanforce/plugin_factory/assets/js/add_edit_initiative.js +1 -0
  20. data/lib/fanforce/plugin_factory/assets/js/add_source.js +1 -0
  21. data/lib/fanforce/plugin_factory/assets/js/add_source_popup.js +0 -0
  22. data/lib/fanforce/plugin_factory/assets/js/engage.js +1 -0
  23. data/lib/fanforce/plugin_factory/assets/js/new_message.js +1 -0
  24. data/lib/fanforce/plugin_factory/assets/js/promotional.js +2 -0
  25. data/lib/fanforce/plugin_factory/assets/js/source_details.js +0 -0
  26. data/lib/fanforce/plugin_factory/assets/lib/common/_mixins.scss +97 -0
  27. data/lib/fanforce/plugin_factory/assets/lib/common/_module-error.scss +11 -0
  28. data/lib/fanforce/plugin_factory/assets/lib/common/_module-search-to-add-initiative.scss +66 -0
  29. data/lib/fanforce/plugin_factory/assets/lib/common/_module-video-thumbnail.scss +15 -0
  30. data/lib/fanforce/plugin_factory/assets/lib/common/_tags.scss +83 -0
  31. data/lib/fanforce/plugin_factory/assets/lib/common/_variables.scss +27 -0
  32. data/lib/fanforce/plugin_factory/assets/lib/common/broadcaster-divider-arrow.png +0 -0
  33. data/lib/fanforce/plugin_factory/assets/lib/common/icons/dropdown-arrow.png +0 -0
  34. data/lib/fanforce/plugin_factory/assets/lib/common/icons/initiative.png +0 -0
  35. data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_add_edit_initiative.scss +23 -0
  36. data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_add_source.scss +17 -0
  37. data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_engage.scss +39 -0
  38. data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_new_message.scss +26 -0
  39. data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_promotional.scss +26 -0
  40. data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_source_details.scss +16 -0
  41. data/lib/fanforce/plugin_factory/assets/lib/common/layouts/add_edit_initiative.js +6 -0
  42. data/lib/fanforce/plugin_factory/assets/lib/common/layouts/add_source.js +6 -0
  43. data/lib/fanforce/plugin_factory/assets/lib/common/layouts/engage.js +0 -0
  44. data/lib/fanforce/plugin_factory/assets/lib/common/layouts/new_message.js +5 -0
  45. data/lib/fanforce/plugin_factory/assets/lib/common/layouts/promotional.js +1 -0
  46. data/lib/fanforce/plugin_factory/assets/lib/common/layouts/source_details.js +5 -0
  47. data/lib/fanforce/plugin_factory/assets/lib/common/module-error/arrow-left.png +0 -0
  48. data/lib/fanforce/plugin_factory/assets/lib/common/module-error/icon-error.png +0 -0
  49. data/lib/fanforce/plugin_factory/assets/lib/common/module-search-to-add-initiative/icon-search.png +0 -0
  50. data/lib/fanforce/plugin_factory/assets/lib/common/module-search-to-add-initiative/spinner.gif +0 -0
  51. data/lib/fanforce/plugin_factory/assets/lib/common/module-search-to-add-initiative/sprite-arrows.png +0 -0
  52. data/lib/fanforce/plugin_factory/assets/lib/common/module-video-thumbnail/icon-play.png +0 -0
  53. data/lib/fanforce/plugin_factory/assets/lib/promotional/fanforce_bg.png +0 -0
  54. data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-42.png +0 -0
  55. data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-behavior.png +0 -0
  56. data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-broadcaster.png +0 -0
  57. data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-data-connector.png +0 -0
  58. data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-data-processor.png +0 -0
  59. data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-identifier.png +0 -0
  60. data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap-datepicker/datepicker.css +7 -0
  61. data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap-datepicker/datepicker.js +454 -0
  62. data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap-timepicker/timepicker.css +82 -0
  63. data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap-timepicker/timepicker.js +803 -0
  64. data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/css/bootstrap.css +6103 -0
  65. data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/css/bootstrap.min.css +868 -0
  66. data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/img/glyphicons-halflings-white.png +0 -0
  67. data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/img/glyphicons-halflings.png +0 -0
  68. data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/js/bootstrap.js +2170 -0
  69. data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/js/bootstrap.min.js +7 -0
  70. data/lib/fanforce/plugin_factory/assets/lib/vendors/chosen/chosen-sprite.png +0 -0
  71. data/lib/fanforce/plugin_factory/assets/lib/vendors/chosen/chosen.jquery.min.js +10 -0
  72. data/lib/fanforce/plugin_factory/assets/lib/vendors/chosen/chosen.scss +399 -0
  73. data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/css/font-awesome.css +540 -0
  74. data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/css/font-awesome.min.css +33 -0
  75. data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/font/FontAwesome.otf +0 -0
  76. data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/font/fontawesome-webfont.eot +0 -0
  77. data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/font/fontawesome-webfont.svg +284 -0
  78. data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/font/fontawesome-webfont.ttf +0 -0
  79. data/lib/fanforce/plugin_factory/assets/lib/vendors/font-awesome/font/fontawesome-webfont.woff +0 -0
  80. data/lib/fanforce/plugin_factory/assets/lib/vendors/jquery/jquery.inputHint.js +154 -0
  81. data/lib/fanforce/plugin_factory/assets/lib/vendors/jquery/jquery.tmpl.debug.js +484 -0
  82. data/lib/fanforce/plugin_factory/assets/lib/vendors/knockout/knockout.custom-handlers.coffee +131 -0
  83. data/lib/fanforce/plugin_factory/assets/lib/vendors/knockout/knockout.debug.js +3223 -0
  84. data/lib/fanforce/plugin_factory/assets/lib/vendors/underscore/underscore.debug.js +999 -0
  85. data/lib/fanforce/plugin_factory/config/_error_handling.rb +26 -0
  86. data/lib/fanforce/plugin_factory/config/helpers/assets.rb +23 -0
  87. data/lib/fanforce/plugin_factory/config/helpers/fanforce.rb +21 -0
  88. data/lib/fanforce/plugin_factory/config/helpers/json.rb +10 -0
  89. data/lib/fanforce/plugin_factory/config/sinatra_config.rb +65 -0
  90. data/lib/fanforce/plugin_factory/initializers/ff_globals.rb +72 -0
  91. data/lib/fanforce/plugin_factory/layouts/add_edit_initiative.haml +14 -0
  92. data/lib/fanforce/plugin_factory/layouts/add_source.haml +14 -0
  93. data/lib/fanforce/plugin_factory/layouts/engage.haml +27 -0
  94. data/lib/fanforce/plugin_factory/layouts/new_message.haml +14 -0
  95. data/lib/fanforce/plugin_factory/layouts/promotional.haml +14 -0
  96. data/lib/fanforce/plugin_factory/layouts/source_details.haml +14 -0
  97. data/lib/fanforce/plugin_factory/public/favicon.ico +0 -0
  98. data/lib/fanforce/plugin_factory/routes.rb +35 -0
  99. data/lib/fanforce/plugin_factory/routes_behavior.rb +28 -0
  100. data/lib/fanforce/plugin_factory/routes_broadcaster.rb +9 -0
  101. data/lib/fanforce/plugin_factory/routes_data_connector.rb +21 -0
  102. data/lib/fanforce/plugin_factory/sprockets/compiler.rb +107 -0
  103. data/lib/fanforce/plugin_factory/sprockets/hacks.rb +43 -0
  104. data/lib/fanforce/plugin_factory/version.rb +5 -0
  105. data/lib/fanforce/plugin_factory/views/add_initiative.haml +1 -0
  106. data/lib/fanforce/plugin_factory/views/add_source.haml +1 -0
  107. data/lib/fanforce/plugin_factory/views/close_popup.haml +8 -0
  108. data/lib/fanforce/plugin_factory/views/edit_initiative.haml +1 -0
  109. data/lib/fanforce/plugin_factory/views/engage.haml +1 -0
  110. data/lib/fanforce/plugin_factory/views/index.haml +38 -0
  111. data/lib/fanforce/plugin_factory/views/new_message.haml +1 -0
  112. data/lib/fanforce/plugin_factory/views/source_details.haml +1 -0
  113. data/lib/fanforce/plugin_factory/views/widget_tmpls.haml +1 -0
  114. data/lib/fanforce/plugin_factory_workers.rb +1 -0
  115. 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';
@@ -0,0 +1 @@
1
+ //= require common/layouts/add_edit_initiative
@@ -0,0 +1 @@
1
+ //= require common/layouts/add_source
@@ -0,0 +1 @@
1
+ //= require common/layouts/new_message
@@ -0,0 +1 @@
1
+ //= require common/layouts/new_message
@@ -0,0 +1,2 @@
1
+ //= require common/layouts/promotional
2
+
@@ -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
+ }
@@ -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
+ //////////////////////////////////////////////////////////////////////////////////////////////////