hoverboard 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.travis.yml +7 -0
- data/Gemfile +17 -0
- data/Gemfile.lock +66 -0
- data/MIT.LICENSE +20 -0
- data/README.md +63 -0
- data/Rakefile +82 -0
- data/VERSION +1 -0
- data/assets/hoverboard.css +166 -0
- data/assets/hoverboard.js +123 -0
- data/dev/dev.rb +38 -0
- data/dev/images/accept.png +0 -0
- data/dev/images/bg-uat.gif +0 -0
- data/dev/images/btnreject.png +0 -0
- data/dev/images/hoverboard-close.png +0 -0
- data/dev/images/hoverboard-open.png +0 -0
- data/dev/images/hoverboard.png +0 -0
- data/dev/images/pt.png +0 -0
- data/dev/images/reject.png +0 -0
- data/dev/images/spinner.gif +0 -0
- data/dev/images/uat-bg.png +0 -0
- data/dev/images/uat-logo.gif +0 -0
- data/dev/javascripts/hoverboard.js.mustache +123 -0
- data/dev/stylesheets/hoverboard.css.mustache +166 -0
- data/dev/views/index.haml +10 -0
- data/hoverboard.gemspec +107 -0
- data/lib/hoverboard.rb +34 -0
- data/lib/hoverboard/assets.rb +63 -0
- data/lib/hoverboard/assets/context.rb +28 -0
- data/lib/hoverboard/assets/image.rb +22 -0
- data/lib/hoverboard/configuration.rb +6 -0
- data/lib/hoverboard/helpers.rb +11 -0
- data/lib/hoverboard/rack_app.rb +94 -0
- data/lib/hoverboard/rails.rb +7 -0
- data/lib/hoverboard/railtie.rb +10 -0
- data/lib/hoverboard/tasks.rb +13 -0
- data/lib/hoverboard/templates/index.haml +17 -0
- metadata +281 -0
data/.document
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
builder (3.1.4)
|
5
|
+
crack (0.3.1)
|
6
|
+
daemons (1.1.9)
|
7
|
+
eventmachine (1.0.0)
|
8
|
+
git (1.2.5)
|
9
|
+
haml (3.1.7)
|
10
|
+
happymapper (0.4.0)
|
11
|
+
libxml-ruby (~> 2.0)
|
12
|
+
jeweler (1.8.4)
|
13
|
+
bundler (~> 1.0)
|
14
|
+
git (>= 1.2.5)
|
15
|
+
rake
|
16
|
+
rdoc
|
17
|
+
json (1.7.5)
|
18
|
+
libxml-ruby (2.4.0)
|
19
|
+
mime-types (1.19)
|
20
|
+
mustache (0.99.4)
|
21
|
+
nokogiri (1.5.6)
|
22
|
+
nokogiri-happymapper (0.5.6)
|
23
|
+
nokogiri (~> 1.5)
|
24
|
+
pivotal-tracker (0.5.10)
|
25
|
+
builder
|
26
|
+
builder
|
27
|
+
crack
|
28
|
+
happymapper (>= 0.3.2)
|
29
|
+
nokogiri (>= 1.4.3)
|
30
|
+
nokogiri (>= 1.5.5)
|
31
|
+
nokogiri-happymapper (>= 0.5.4)
|
32
|
+
rest-client (~> 1.6.0)
|
33
|
+
rest-client (~> 1.6.0)
|
34
|
+
rack (1.4.1)
|
35
|
+
rack-protection (1.3.2)
|
36
|
+
rack
|
37
|
+
rake (10.0.3)
|
38
|
+
rdoc (3.12)
|
39
|
+
json (~> 1.4)
|
40
|
+
rest-client (1.6.7)
|
41
|
+
mime-types (>= 1.16)
|
42
|
+
shotgun (0.9)
|
43
|
+
rack (>= 1.0)
|
44
|
+
sinatra (1.3.3)
|
45
|
+
rack (~> 1.3, >= 1.3.6)
|
46
|
+
rack-protection (~> 1.2)
|
47
|
+
tilt (~> 1.3, >= 1.3.3)
|
48
|
+
thin (1.5.0)
|
49
|
+
daemons (>= 1.0.9)
|
50
|
+
eventmachine (>= 0.12.6)
|
51
|
+
rack (>= 1.0.0)
|
52
|
+
tilt (1.3.3)
|
53
|
+
|
54
|
+
PLATFORMS
|
55
|
+
ruby
|
56
|
+
|
57
|
+
DEPENDENCIES
|
58
|
+
haml
|
59
|
+
jeweler
|
60
|
+
json
|
61
|
+
mustache
|
62
|
+
pivotal-tracker (>= 0.1.3)
|
63
|
+
rake
|
64
|
+
shotgun
|
65
|
+
sinatra
|
66
|
+
thin
|
data/MIT.LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2012 Graham Siener
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
# Hoverboard
|
2
|
+
|
3
|
+
[![Build Status](https://travis-ci.org/gsiener/hoverboard.png?branch=master)](https://travis-ci.org/gsiener/hoverboard)
|
4
|
+
[![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/gsiener/hoverboard)
|
5
|
+
|
6
|
+
Like Marty's hoverboard from Back to the Future 2, this adds a slide out panel to your rails app that directs clients to test stories that have been marked as 'delivered' in Pivotal Tracker.
|
7
|
+
|
8
|
+
![hoverboard demo](http://img.skitch.com/20100806-gug4f5uapk6ixh64sk16qenf9s.jpg)
|
9
|
+
|
10
|
+
## Installing
|
11
|
+
|
12
|
+
Add hoverboard to your Gemfile:
|
13
|
+
|
14
|
+
gem 'hoverboard'
|
15
|
+
|
16
|
+
Create an initializer to add the Hoverboard::RackApp to your middleware stack and configure your pivotal tracker api token and project id:
|
17
|
+
|
18
|
+
require 'hoverboard'
|
19
|
+
|
20
|
+
Hoverboard.configure do |config|
|
21
|
+
config.pivotal_tracker_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
22
|
+
config.pivotal_tracker_project = 123456
|
23
|
+
end
|
24
|
+
|
25
|
+
Use the following helper somewhere in your application layout (we recommend at the end of the body):
|
26
|
+
|
27
|
+
= hoverboard
|
28
|
+
|
29
|
+
The helper will insert a smidgeon of javascript that will add a tiny tab on the LHS of each page.
|
30
|
+
|
31
|
+
**Please note** that hoverboard requires `jQuery` to be included in your layout or templates already.
|
32
|
+
|
33
|
+
Reload a page from your app and give it a whirl.
|
34
|
+
|
35
|
+
## Note on Patches/Pull Requests
|
36
|
+
|
37
|
+
* Fork the project.
|
38
|
+
* Make your feature addition or bug fix.
|
39
|
+
* Add tests for it. This is important so I don't break it in a future version unintentionally.
|
40
|
+
* Commit, do not mess with rakefile, version, or history.
|
41
|
+
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
42
|
+
* Send me a pull request. Bonus points for topic branches.
|
43
|
+
|
44
|
+
### rake dev
|
45
|
+
|
46
|
+
If you'd like to contribute to `hoverboard` you can get started by running
|
47
|
+
|
48
|
+
rake dev
|
49
|
+
|
50
|
+
This sets up the correct configuration and environment (follow the instructions), then starts a sinatra app under shotgun. You can use this sinatra app to verify your work on `hoverboard`.
|
51
|
+
|
52
|
+
All assets are regenerated from their constituents on each request. The constituents are located in the `dev` directory.
|
53
|
+
|
54
|
+
## Contributors
|
55
|
+
|
56
|
+
* Ben Askins
|
57
|
+
* Lachie Cox
|
58
|
+
* Ben Webster
|
59
|
+
* Daniel Neighman
|
60
|
+
|
61
|
+
## Copyright
|
62
|
+
|
63
|
+
Copyright © 2010 Plus2. See LICENSE for details.
|
data/Rakefile
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "hoverboard"
|
8
|
+
gem.summary = %Q{Direct your clients to test delivered features}
|
9
|
+
gem.description = %Q{Adds a toolbar to your rails app that directs your clients to test stories that have been marked as 'delivered' in Pivotal Tracker }
|
10
|
+
gem.email = "siener@gmail.com"
|
11
|
+
gem.homepage = "http://github.com/gsiener/hoverboard"
|
12
|
+
gem.authors = ["Ben Askins", "Lachie Cox", "Ben Webster", "Graham Siener"]
|
13
|
+
# gem is a Gem::Specificatiohttp://www.rubygems.org/read/chapter/20 n... see http://www.rubygems.org/read/chapter/20 for additional settings
|
14
|
+
gem.add_dependency("pivotal-tracker", ">= 0.1.3")
|
15
|
+
gem.add_dependency("haml", ">= 2.2.0")
|
16
|
+
gem.add_dependency("rack", ">= 1.0.0")
|
17
|
+
end
|
18
|
+
Jeweler::GemcutterTasks.new
|
19
|
+
rescue LoadError
|
20
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
rake_app = Rake::Application.new
|
25
|
+
rake_app.collect_tasks
|
26
|
+
if rake_app.top_level_tasks.include?('dev')
|
27
|
+
require 'pathname'
|
28
|
+
|
29
|
+
sh "bundle check || bundle install"
|
30
|
+
|
31
|
+
task :dev => %w{dev:run}
|
32
|
+
|
33
|
+
namespace :dev do
|
34
|
+
task :run => :setup do
|
35
|
+
sh 'bundle exec shotgun --server thin dev/dev.rb'
|
36
|
+
end
|
37
|
+
|
38
|
+
task :setup do
|
39
|
+
gem_root = Pathname('..').expand_path(__FILE__)
|
40
|
+
pivotal_config = gem_root+'pivotal_config.dont_commit.rb'
|
41
|
+
unless pivotal_config.exist?
|
42
|
+
puts "What's your pivotal tracker token? (find your down the bottom of https://www.pivotaltracker.com/profile)."
|
43
|
+
token = $stdin.gets.chomp
|
44
|
+
|
45
|
+
puts "What pivotal tracker project do you want to test against? (e.g. The digits at the end of http://www.pivotaltracker.com/projects/12345)."
|
46
|
+
project_id = $stdin.gets.chomp
|
47
|
+
|
48
|
+
puts "Creating config using your details."
|
49
|
+
|
50
|
+
pivotal_config.open('w') {|f|
|
51
|
+
f << %{Hoverboard.configure do |config|
|
52
|
+
config.pivotal_tracker_token = "#{token}"
|
53
|
+
config.pivotal_tracker_project = #{project_id}
|
54
|
+
end
|
55
|
+
}.gsub(/^\s{3,16}/,'')
|
56
|
+
}
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
else
|
62
|
+
desc "set up and run app in a convenient dev-only way. rake dev *must* be called as the only top level task (i.e. as 'rake dev')"
|
63
|
+
task :dev do
|
64
|
+
abort "Please run rake dev as 'rake dev'"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
task :bundled_env do
|
69
|
+
require 'rubygems'
|
70
|
+
require 'bundler'
|
71
|
+
Bundler.setup
|
72
|
+
|
73
|
+
$LOAD_PATH << File.expand_path('../lib',__FILE__)
|
74
|
+
require 'hoverboard'
|
75
|
+
end
|
76
|
+
|
77
|
+
namespace :assets do
|
78
|
+
desc "Rebuild assets for distribution"
|
79
|
+
task :rebuild => :bundled_env do
|
80
|
+
Hoverboard::Assets.rebuild!
|
81
|
+
end
|
82
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
@@ -0,0 +1,166 @@
|
|
1
|
+
#uat-bar {
|
2
|
+
width: auto;
|
3
|
+
font-size: .9em;
|
4
|
+
text-align: center;
|
5
|
+
position: absolute;
|
6
|
+
top: 30%;
|
7
|
+
left: 0;
|
8
|
+
padding: 0;
|
9
|
+
z-index: 2147483647;
|
10
|
+
font-family: Helvetica, Arial, sans-serif;
|
11
|
+
}
|
12
|
+
|
13
|
+
#uat-bar a:link, #uat-bar a:visited {
|
14
|
+
color: #efefef;
|
15
|
+
text-decoration: none;
|
16
|
+
}
|
17
|
+
|
18
|
+
#uat-bar a:active, #uat-bar a:hover, #uat-bar a:focus {
|
19
|
+
color: #fff;
|
20
|
+
text-decoration: underline;
|
21
|
+
}
|
22
|
+
|
23
|
+
#uat-bar a.wua-go {
|
24
|
+
position: absolute;
|
25
|
+
top: 0;
|
26
|
+
left: 0;
|
27
|
+
font-weight: bold;
|
28
|
+
padding: .5em;
|
29
|
+
display: block;
|
30
|
+
width: 40px;
|
31
|
+
height: 125px;
|
32
|
+
font-size: 0.001em;
|
33
|
+
text-indent: -2000em;
|
34
|
+
background: #212121 url(data:image/gif;base64,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) no-repeat -4px -10px;
|
35
|
+
-moz-border-radius-bottomright: 10px;
|
36
|
+
-webkit-border-bottom-right-radius: 10px;
|
37
|
+
-moz-border-radius-topright: 10px;
|
38
|
+
-webkit-border-top-right-radius: 10px
|
39
|
+
}
|
40
|
+
|
41
|
+
#uat-bar a.wua-go:hover {
|
42
|
+
background-position: -2px -10px;
|
43
|
+
}
|
44
|
+
|
45
|
+
#uat-bar .wua-pop-over {
|
46
|
+
min-height: 450px;
|
47
|
+
width: 0;
|
48
|
+
clear: right;
|
49
|
+
background: #212121;
|
50
|
+
color: #efefef;
|
51
|
+
text-align: left;
|
52
|
+
padding: 0 0 .75em 0;
|
53
|
+
-moz-border-radius-bottomright: 10px;
|
54
|
+
-webkit-border-bottom-right-radius: 10px;
|
55
|
+
}
|
56
|
+
|
57
|
+
#uat-bar .wua-pop-over ol {
|
58
|
+
height: 450px;
|
59
|
+
overflow: auto;
|
60
|
+
list-style: none;
|
61
|
+
margin: 0 0 0;
|
62
|
+
padding: 5px 10px
|
63
|
+
}
|
64
|
+
|
65
|
+
#uat-bar .wua-pop-over li {
|
66
|
+
padding: .9em .75em .75em 95px;
|
67
|
+
margin-bottom: 5px;
|
68
|
+
position: relative;
|
69
|
+
}
|
70
|
+
|
71
|
+
#uat-bar .wua-pop-over li.wua-header {font-size: 18px;font-weight:normal;border-bottom: 1px solid #2c2c2c;margin-bottom: 1em;padding-left: 0;}
|
72
|
+
|
73
|
+
#uat-bar .wua-pop-over li.wua-rejected {
|
74
|
+
background: #a82a30;
|
75
|
+
}
|
76
|
+
|
77
|
+
#uat-bar .wua-pop-over li.wua-accepted {
|
78
|
+
background: #9ec74e;
|
79
|
+
}
|
80
|
+
|
81
|
+
#uat-bar .wua-pop-over li:hover {
|
82
|
+
background-color: #323232;
|
83
|
+
cursor: pointer
|
84
|
+
}
|
85
|
+
|
86
|
+
#uat-bar .wua-pop-over li.wua-header:hover {background:transparent;}
|
87
|
+
|
88
|
+
#uat-bar .wua-hide {
|
89
|
+
display: none;
|
90
|
+
}
|
91
|
+
|
92
|
+
#uat-bar input {
|
93
|
+
clear: none;
|
94
|
+
}
|
95
|
+
|
96
|
+
#uat-bar .wua-pop-over li a.wua-accept {
|
97
|
+
position: absolute;
|
98
|
+
top: 0;
|
99
|
+
left: 0;
|
100
|
+
display:block;
|
101
|
+
width: 25px;
|
102
|
+
height: 28px;
|
103
|
+
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAA1CAYAAAHUouBxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABwBJREFUeNpi/P//PwMMMIGI+Sf8/zMyMkI4IGDiJJHAAFImKCgoBlcGBK+AAgwsUA4bEP8Dy4SWC5gBqT8AAcSIbDRIswrjvON+YCFGII8ZSAuDNPwFGcXgnSSjdeTG3M+MmX1K7v/+/ucACCAGmHYjR1Hn0CJZXxAbbBvMFBDYM/+LBNjWT1/efUHYxsAGtl1ISIgBGTAxoIHcWaIXYH4Tv/Rw6zcgrQ7yFqrjoQAggLAKwgGys8AWFc9WXo7sLKb0LsV2bR3tCD4eIZ6+nZYfwYJMzIxKMBV8vMK8YMEVLe/7YYLvPrwEq2SEBqMgkGIF4h/v37//xAjhM+D3Jjzo0BSxMMW1CvXJqLPyuKfwqQqIM7sDBX8xAWP/v4gsS4aaGfs+jxQ+WbD2T2/+3jX24Dr58v7v428e/+XFGSAAAcSALqhjLSCZ1ikfideZQH8w+mWJ7rSw01/mFi0djxHuwLhkyZsl+kBeRkMaPWhao25JAEPjB9jEiBrBpciKQEBIQJwfhJN7hNcgrP7L8h1bSP358+vPp+fs55Ct5gSyfYp7nEoYWL+B2Az/gODXV5anU2uOhQCt/s6AN20QnYjQIww9BeNUCPRZ2o3jPz78+4cI1w8v/16ubsk+GuPU6wzkXgBL/P75XwOI+cpLqmcrG7L/LC2unCWvzZa+59T8dKD0WVC4gBWCUsGpLd+WB1hXSV8/9kOzOLspbsfsT/XfPv4TRI8ZASBbCoiRfQZKr4+B+DOIAxBARPsaJUEUz1Ful1XjksCXuBn5hdkTM3tULwM1MGFVJKvDqCUmLAsLSHYMRdLKXNLx1WpH2VjZWW+c+XAIKPQT2RcMmX2KhZr6si08XAJcIP6Xbx++/fr18/eLp2829aTcjWMC2s2mqi3RAFMAAiA2KM09v/vnO8w6fhYWVhZsvrVyV4kHGsLLBLMSG3j2/NELUNkGUvQflACxKRIQEOQHeQCk6NvLx1/uYFP08Bz7IlARwvzjx4/fVw/9PKSnaab4+fOH75/f/Xv16e2/V+9e/ngm/Mtl5ZZN2y4xIkUJyHfcSG4EReoHYPr/TVzax1ZakZVBWIjJGExEZzNcIKlL2BPoVzmQIubUfuElVw792AiT/PeX4YuRG2fm+xd/XwEL7FKQIp63T/8e1XPglJyZ/2YqSFH2dJFjf34xsAIVpAK5b0CKGP/8+s/GwsaYnTNDNPHfv/+fLNXjVebMmZkBlHsJdzgbJ+OPqZmv/YGhwVcbeNGqs2laiYIumwksCTNBqg8GUCq4BlTo17JB/8HlA9/XAzUwwqIIZN0/IUmWAGD5cBroYMZHV3+nJHYKK3LyMFqD5GDRAjJNEVqPI4MfQPwAFNFERQtAgJGezQnFDKgpgqt4kNFk1AspEd/Bwc7F/ubVx71zit7GANPiT3LSAquBM68/Nycvp6iQtKCIGL+TWzJvMihbk5RmpBR4RCKqhGbKyIu7CvCJ8P779/ffp4+fPu1d9PEiLjeAwwzmTVBMOMZx2qubcreIiAjrCPKL8cEUgkqdK6cf7/r75/9pdh7Gr6C4v3n66/YzW37fBXr7P3KBzGjqw25i6ce3XkpcUYwVWK4RCuzvP778uHX94f5F1e9igYa9RQ4zPhUjrnxhQQkBYgwCByYrOwuvEJN6cBl/MLSpBzeM/f8/YPOFEXcphxHYzKwsosIS4mwcTB6gNiPRORsX+A2s34GV2CVQAYls2J9/H8Vvf//x9Qcxhvz//+///Yc3H1879n3Xu4vqx2CVHyxpfFw1+casHPZoxi/SZ/y5RX5JsrNxsDIzszLjMpCXj5dHUlz80fopx04AI+ArStIApXYgnwOIRaBVLagg5cRRW4Ca1G+A+B4QvwYa9gdru4wSwMRARcA4aF1GdBuMLi5L6BASSOsX1gQFGbwIMvfjZjNw5kxlYWPwgiYRzABmZPz/89u/6QeWfdnmFMtbo6PkmHH89J6FCyreTUTuLHEBa4aGd8/+PN848eMOUFcAm2HAKk/SIoB7ooN2psqWw1OPLKp51woUvgvEoFLjD7xHCOzFMbNyMDJmTxNZYKWRoHH0xoJDb578yVzV9uGpby6/lJwm62p3g1Ld3Zd73tVXdpc8u/37AKhtgmwxSkkLrDb/Ts16k33EeaqdTQh3TlboxFv2Vtu/G8mHcX/68fLvin01l+aXvy1P7BDy/fOb4ffi2nePcRbbbByMoIrixsW9328C8e7j7pleVoHc2bJChmxLtrTvBLqyDtTFADWogWEHCldm3HUAI1gSlIpB3b2r53Z+ewjE27bp1yreu/jrMlDsKRBz4UoFyN0MycAi/hBgla3CxMLwB1dS+PubgfXprd+nds75tAPaaviFbhgD1Mns0GodX4n7D2rAT1ibAAYAHCnJTzS4+XkAAAAASUVORK5CYII=) no-repeat 1px 5px;
|
104
|
+
font-size: 0.001em;
|
105
|
+
text-indent: -20000em;
|
106
|
+
}
|
107
|
+
|
108
|
+
#uat-bar .wua-pop-over li a.wua-accept:hover {
|
109
|
+
background-position: 1px -24px;
|
110
|
+
}
|
111
|
+
|
112
|
+
#uat-bar .wua-pop-over li a.wua-reject {
|
113
|
+
position: absolute;
|
114
|
+
top: 0;
|
115
|
+
left: 29px;
|
116
|
+
display:block;
|
117
|
+
width: 25px;
|
118
|
+
height: 30px;
|
119
|
+
background: url(data:image/png;base64,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) no-repeat 0 8px;
|
120
|
+
font-size: 0.001em;
|
121
|
+
text-indent: -20000em;
|
122
|
+
}
|
123
|
+
|
124
|
+
#uat-bar .wua-pop-over li a.wua-reject:hover {
|
125
|
+
background-position: 0 -24px;
|
126
|
+
}
|
127
|
+
|
128
|
+
#uat-bar .wua-pop-over li a.wua-pivotal {
|
129
|
+
position: absolute;
|
130
|
+
top: 0;
|
131
|
+
left: 60px;
|
132
|
+
display:block;
|
133
|
+
width: 25px;
|
134
|
+
height: 30px;
|
135
|
+
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAxCAYAAAFPM6JnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABWpJREFUeNpi/P//PwMMMH//88dNJTj7Tsq5QyfAIpcvXfoLohmRlTExIAGwHlcnpzvBYWGoegACCK6H5YSQ+n8GRkYGlhQJFrs3b98ww6XgRmGqAQggiFlFtf93c8r9v9sxCaJBXU2NdQ+3/P+LAur/d7JKggQZURyH1ZEogCgzAQIIu5mTZ0yv3soo8n8ro+j/3Pz8fLDoIVO3/zf51f/fEND4f8wt9D9Y54cr1/+fBpoHwp8fPYEIMjExMWw/fOjeut0774F0ggSJdzwJgjjd+ePKjcMgTLo7AQIIHKPMzMwMre3tDi/fvX358u7938/fvHkeFRNjxc7ODrYXrFBPT4/126nz//fyKf0/CzT2EhCfAeJd7NL/v129+Z+FGRL/TOa2tvZnC6sZuJhZGbiB2nkYGIE0IwMPNw/DxfImBlcPDze4nxKSkotuTp7zfyuDyP+dLFL/tzCI/X+0cv1/OweHUrxhSXSo0Uch9cORITU72+Wwtdf/44Lq4AgGRSI4koFZ6rhP9H9Pb293eMgQE44AAURUODIxMjIyGRsZMZy+cnnN60ePv7998vTb3mNHlzk4ODCA5MA+lZaWZnjy5Mn/zVyyDJx//zP8Axr8h4uNwfXNrb9CgoIsnz9/ZmDqnzJlxRZOWQYRTm4GMS4eBglgAhBkZmfYLanN3DNlylKwSa+ePPl9QdGcRRwoCUopIPCZ4T/Di88fGbTvnvwhIy/HyfTr9x9wEgY7/z8DA8wbjEDGj79/wVymldu2rPzDzcnwFejEz0AZkClfgOw/0mIM85Ys3gjWwMvDw3Dz0aP/F7VsGRjfvGX4/4+RgVFOkkHj5DYGBXEJSAr+/OULk6WhIeOeRN/FYud3/RS/uPPXRj+bZSAFIEMwik6Kks8wV0Tf9MQASk+7WKXBpT4MXACydzBL/H/84OF3cASjpCfkHIwrPV0U1GC4AMS0S08AAcaIhP+LiIj8T09PZ3j1+rWEiZWlLQc3tw4TKysvByvrx8f371/69uHjsc2bNr08d/48w+/fv2H6Gf4jJUpGHqDTDA0NWbr7+iq/fvv25f2hE/8vpBb8P2jg9H+vitn/A0bO/6/kVv7/cOLc/3ffvn5ctHhxgZGRETM8LEABBDIPVKz5+Pg4/v7/78v1yub/Gxj4/4Mq1iPAgghUv58EFUhAfBSId3PI/l/HwPf/Xt+M/x++f/tsZGxsASt/wGWQk4uL2vwli/d+qO2WeTx7MYOAkBAD5z8GBnZgZLACkxTIH0Auw28g/yeQ/g6Mk4/v3zKoNpQz/I4Lfurr4mpz7+7dB+AocvHy0mJ591H63dGTDGxs7Aws/0GGMDCwAQ0C0SxgNggzQvjAlggbKwfDq50HGHj//hezsrMzhifU/du3X37DxvRE1MOJ4devHwy/gYp/ASV+AN3zC+gaUDD/BOP/ED7Qsp+/fzCI+nsyPPr86c32TZsuwAMfRGhra9uu27lj8//VW/lvF9UxcHBwMLBzcgJdCVIASX1/gJZ8//YVlOoYdOZMYHhvpvvBx8k54MXz5weRSxhgToGUjQnJyYVnrl97+/rGrf9XW/r+n/CP/X/UIfD/yYD4/zd6pv1/c/f+/2MXL7y3d7AvB7XjoPrgsQlPcAyIYpSBl5ubiY2dQ4lHgF+RhY2N98+vn19ZGJnuAV1xH5h0/iD7CjmdEV0zU72uHTVskBs2QsozBlB59vDF88cXU4uAjS5RsCGgZt39gITL4Fbbv38fQfT9gMTLoGbeYUE1oDrh/zcbuv5fuXf3iaKSkgLMMJzlmcK6eXLs2uo2wGKAD0QrrJsrR3Z5dj8o6dHPqzePAK38BKLvByU/GrrlGQDr9ThSDN5z3wAAAABJRU5ErkJggg==) no-repeat 0 10px;
|
136
|
+
font-size: 0.001em;
|
137
|
+
text-indent: -20000em;
|
138
|
+
}
|
139
|
+
|
140
|
+
#uat-bar .wua-pop-over li a.wua-pivotal:hover {
|
141
|
+
background-position: 0 -22px;
|
142
|
+
}
|
143
|
+
|
144
|
+
|
145
|
+
#uat-bar label {margin-top: 5px;padding-top:5px;display:block;font-weight:bold;border-top: 1px dashed #2c2c2c;}
|
146
|
+
#uat-bar textarea {width: 250px;height: 40px;margin-bottom: 5px;}
|
147
|
+
#uat-bar button.wua-reject {
|
148
|
+
display:block;
|
149
|
+
width: 60px;
|
150
|
+
height: 25px;
|
151
|
+
background: url(data:image/png;base64,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) no-repeat 0 0;
|
152
|
+
font-size: 0.001em;
|
153
|
+
text-indent: -20000em;
|
154
|
+
border:none;
|
155
|
+
cursor: pointer;
|
156
|
+
}
|
157
|
+
|
158
|
+
|
159
|
+
#uat-bar .wua-go-spinner {
|
160
|
+
display: block;
|
161
|
+
position: absolute;
|
162
|
+
|
163
|
+
left: 13px;
|
164
|
+
top: 54px;
|
165
|
+
|
166
|
+
}
|
@@ -0,0 +1,123 @@
|
|
1
|
+
(function($) {
|
2
|
+
$(function() {
|
3
|
+
var bar, popOver, tab, stories, spinner;
|
4
|
+
|
5
|
+
$("body").prepend("<div id='uat-bar'><a class='wua-go' href='#'>Show me what to test</a><div class='wua-pop-over'></div></div>");
|
6
|
+
|
7
|
+
spinner = $('<img src="data:image/gif;base64,R0lGODlhEAAQAPQAACEhIf///yYmJs3NzYuLi/j4+Nzc3ENDQ2tra+rq6peXl6WlpTc3N3l5eVFRUb+/v7OzswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAAFUCAgjmRpnqUwFGwhKoRgqq2YFMaRGjWA8AbZiIBbjQQ8AmmFUJEQhQGJhaKOrCksgEla+KIkYvC6SJKQOISoNSYdeIk1ayA8ExTyeR3F749CACH5BAkKAAAALAAAAAAQABAAAAVoICCKR9KMaCoaxeCoqEAkRX3AwMHWxQIIjJSAZWgUEgzBwCBAEQpMwIDwY1FHgwJCtOW2UDWYIDyqNVVkUbYr6CK+o2eUMKgWrqKhj0FrEM8jQQALPFA3MAc8CQSAMA5ZBjgqDQmHIyEAIfkECQoAAAAsAAAAABAAEAAABWAgII4j85Ao2hRIKgrEUBQJLaSHMe8zgQo6Q8sxS7RIhILhBkgumCTZsXkACBC+0cwF2GoLLoFXREDcDlkAojBICRaFLDCOQtQKjmsQSubtDFU/NXcDBHwkaw1cKQ8MiyEAIfkECQoAAAAsAAAAABAAEAAABVIgII5kaZ6AIJQCMRTFQKiDQx4GrBfGa4uCnAEhQuRgPwCBtwK+kCNFgjh6QlFYgGO7baJ2CxIioSDpwqNggWCGDVVGphly3BkOpXDrKfNm/4AhACH5BAkKAAAALAAAAAAQABAAAAVgICCOZGmeqEAMRTEQwskYbV0Yx7kYSIzQhtgoBxCKBDQCIOcoLBimRiFhSABYU5gIgW01pLUBYkRItAYAqrlhYiwKjiWAcDMWY8QjsCf4DewiBzQ2N1AmKlgvgCiMjSQhACH5BAkKAAAALAAAAAAQABAAAAVfICCOZGmeqEgUxUAIpkA0AMKyxkEiSZEIsJqhYAg+boUFSTAkiBiNHks3sg1ILAfBiS10gyqCg0UaFBCkwy3RYKiIYMAC+RAxiQgYsJdAjw5DN2gILzEEZgVcKYuMJiEAOwAAAAAAAAAAAA==">');
|
8
|
+
|
9
|
+
bar = $('#uat-bar');
|
10
|
+
popOver = $(".wua-pop-over" ,bar);
|
11
|
+
tab = $("a.wua-go" ,bar);
|
12
|
+
|
13
|
+
tab.toggle(
|
14
|
+
function() {
|
15
|
+
if (popOver.find("ol").length > 0) {
|
16
|
+
slideOut();
|
17
|
+
} else {
|
18
|
+
var goSpinner = spinner.clone()
|
19
|
+
.addClass('wua-go-spinner')
|
20
|
+
.insertAfter(tab)
|
21
|
+
.fadeIn();
|
22
|
+
|
23
|
+
$.ajax({
|
24
|
+
url: '/hoverboard',
|
25
|
+
success: function(response) {
|
26
|
+
goSpinner.fadeOut(function() {goSpinner.remove()});
|
27
|
+
popOver.append(response);
|
28
|
+
stories = popOver.find("ol");
|
29
|
+
slideOut();
|
30
|
+
}
|
31
|
+
});
|
32
|
+
}
|
33
|
+
},
|
34
|
+
function() {
|
35
|
+
slideIn();
|
36
|
+
}
|
37
|
+
);
|
38
|
+
|
39
|
+
function slideOut() {
|
40
|
+
popOver.animate({width: '400px'}, 500, function() {
|
41
|
+
stories.fadeIn(100);
|
42
|
+
});
|
43
|
+
tab.animate({left: '400px'}, 510);
|
44
|
+
}
|
45
|
+
|
46
|
+
function slideIn() {
|
47
|
+
stories.fadeOut(100, function() {
|
48
|
+
tab.animate({left: '0px'}, 490);
|
49
|
+
popOver.animate({width: '0px'}, 510);
|
50
|
+
});
|
51
|
+
}
|
52
|
+
|
53
|
+
|
54
|
+
$("a.wua-accept", bar).live("click", function() {
|
55
|
+
var acceptLink, storyName, storyId, storySpinner, listItem;
|
56
|
+
|
57
|
+
acceptLink = $(this);
|
58
|
+
|
59
|
+
storyId = acceptLink.siblings(".wua-story-id").html();
|
60
|
+
storyName = acceptLink.siblings("span.wua-story");
|
61
|
+
listItem = acceptLink.parent();
|
62
|
+
|
63
|
+
storySpinner = spinner.clone().insertBefore(storyName).fadeIn();
|
64
|
+
|
65
|
+
$.ajax({
|
66
|
+
method: "POST",
|
67
|
+
url: '/hoverboard/' + storyId + '/accept',
|
68
|
+
success: function(response) {
|
69
|
+
listItem.removeClass("wua-rejected").addClass("wua-accepted");
|
70
|
+
storySpinner.fadeOut(function() {storySpinner.remove()});
|
71
|
+
}
|
72
|
+
});
|
73
|
+
|
74
|
+
return false;
|
75
|
+
});
|
76
|
+
|
77
|
+
$("a.wua-reject", bar).live("click",
|
78
|
+
function() {
|
79
|
+
var rejectLink, reasonForm;
|
80
|
+
|
81
|
+
rejectLink = $(this);
|
82
|
+
|
83
|
+
reasonForm = rejectLink.siblings("form");
|
84
|
+
|
85
|
+
if (reasonForm.is(':visible')) {
|
86
|
+
reasonForm.slideUp();
|
87
|
+
} else {
|
88
|
+
reasonForm.slideDown();
|
89
|
+
}
|
90
|
+
|
91
|
+
return false;
|
92
|
+
}
|
93
|
+
);
|
94
|
+
|
95
|
+
$("button.wua-reject", bar).live("click", function() {
|
96
|
+
var button, reasonForm, storyName, storyId, spinner, listItem;
|
97
|
+
|
98
|
+
button = $(this);
|
99
|
+
|
100
|
+
reasonForm = button.parent();
|
101
|
+
storyId = reasonForm.siblings(".wua-story-id").html();
|
102
|
+
storyName = reasonForm.siblings("span.wua-story");
|
103
|
+
spinner = reasonForm.siblings(".wua-spinner");
|
104
|
+
listItem = reasonForm.parent();
|
105
|
+
|
106
|
+
spinner.fadeIn();
|
107
|
+
|
108
|
+
$.ajax({
|
109
|
+
method: "POST",
|
110
|
+
url: '/hoverboard/' + storyId + '/reject',
|
111
|
+
data: {reason: $(".wua-reason").val()},
|
112
|
+
success: function(response) {
|
113
|
+
listItem.removeClass("wua-accepted").addClass("wua-rejected");
|
114
|
+
reasonForm.slideUp();
|
115
|
+
spinner.fadeOut();
|
116
|
+
}
|
117
|
+
});
|
118
|
+
|
119
|
+
return false;
|
120
|
+
});
|
121
|
+
|
122
|
+
});
|
123
|
+
})(jQuery);
|