iam 0.1.10 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +1 -1
- data/Rakefile +2 -2
- data/lib/iam/version.rb +1 -1
- data/lib/rack/asset_helpers.rb +6 -14
- data/lib/rack/assets.rb +1 -1
- data/vendor/assets/javascripts/iam.js +1 -100
- data/vendor/assets/javascripts/jquery.cookie.js +1 -63
- metadata +1 -3
- data/vendor/assets/javascripts/iam.ujs +0 -2
- data/vendor/assets/javascripts/jquery.cookie.ujs +0 -10
data/README.md
CHANGED
data/Rakefile
CHANGED
@@ -37,8 +37,8 @@ def uglify_js
|
|
37
37
|
require 'uglifier'
|
38
38
|
|
39
39
|
Dir[File.join('vendor', 'assets', 'javascripts', '*.js')].each do |file|
|
40
|
-
|
41
|
-
File.open(
|
40
|
+
javascript = File.read(file)
|
41
|
+
File.open(file, 'w') { |f| f << Uglifier.compile(javascript) }
|
42
42
|
p "File #{file} uglified"
|
43
43
|
end
|
44
44
|
end
|
data/lib/iam/version.rb
CHANGED
data/lib/rack/asset_helpers.rb
CHANGED
@@ -1,26 +1,18 @@
|
|
1
1
|
module Rack
|
2
2
|
module AssetHelpers
|
3
|
-
|
4
|
-
|
3
|
+
TEMPLATE = ActionView::Base.new
|
4
|
+
|
5
|
+
def head_code
|
6
|
+
css_code << js_code
|
5
7
|
end
|
6
8
|
|
7
9
|
private
|
8
10
|
def css_code
|
9
|
-
|
11
|
+
TEMPLATE.stylesheet_link_tag 'iam'
|
10
12
|
end
|
11
13
|
|
12
14
|
def js_code
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
def typed_asset(type, *files)
|
17
|
-
files.map { |f| asset type, f }.reduce :+
|
18
|
-
end
|
19
|
-
|
20
|
-
def asset(type, file)
|
21
|
-
@assets ||= {}
|
22
|
-
output = ::File.read ::File.join(::File.dirname(__FILE__), '..', '..', 'vendor', 'assets', type, file)
|
23
|
-
@assets[file] ||= output
|
15
|
+
TEMPLATE.javascript_include_tag 'iam', 'jquery.cookie'
|
24
16
|
end
|
25
17
|
end
|
26
18
|
end
|
data/lib/rack/assets.rb
CHANGED
@@ -1,101 +1,2 @@
|
|
1
1
|
// Generated by CoffeeScript 1.3.3
|
2
|
-
(function() {
|
3
|
-
|
4
|
-
$(function() {
|
5
|
-
var $menu, controlKeys, controlKeysMatch, iamNotice, initialize, input, inputMode, inputSelected, isTilde, logInByInput, logInByLink, menuLink, processInput, templateLink;
|
6
|
-
$menu = $('#iam-menu');
|
7
|
-
templateLink = '/iam/log_in_as/:id';
|
8
|
-
menuLink = '/iam/menu';
|
9
|
-
inputMode = false;
|
10
|
-
input = '';
|
11
|
-
controlKeys = ['alt', 'ctrl', 'shift'];
|
12
|
-
initialize = function() {
|
13
|
-
$('.iam-settings-header').on('click', function() {
|
14
|
-
return $('.iam-settings').toggle();
|
15
|
-
});
|
16
|
-
$('#iam-menu').on('click', 'td', function() {
|
17
|
-
var $tr, link;
|
18
|
-
$tr = $(this).parents('tr');
|
19
|
-
link = $tr.attr('href');
|
20
|
-
if (link) {
|
21
|
-
return logInByLink(link);
|
22
|
-
}
|
23
|
-
});
|
24
|
-
return $.each(controlKeys, function() {
|
25
|
-
var $checkbox, cookieName;
|
26
|
-
$checkbox = $(".iam-" + this + "-settings input");
|
27
|
-
cookieName = "iam-" + this + "-checked";
|
28
|
-
$checkbox[0].checked = $.cookie(cookieName) === 'true';
|
29
|
-
return $checkbox.on('click', function() {
|
30
|
-
return $.cookie(cookieName, this.checked);
|
31
|
-
});
|
32
|
-
});
|
33
|
-
};
|
34
|
-
iamNotice = function(notice) {
|
35
|
-
var $notice;
|
36
|
-
$notice = $("<div class='iam-notice'>" + notice + "</div>");
|
37
|
-
$('body').append($notice);
|
38
|
-
return $notice.fadeIn(200).delay(1000).fadeOut(600);
|
39
|
-
};
|
40
|
-
logInByLink = function(link) {
|
41
|
-
return $.post(link, function(data) {
|
42
|
-
$menu.hide();
|
43
|
-
window.location.reload();
|
44
|
-
return iamNotice(data.notice);
|
45
|
-
});
|
46
|
-
};
|
47
|
-
isTilde = function(code) {
|
48
|
-
return String.fromCharCode(code) === 'À';
|
49
|
-
};
|
50
|
-
controlKeysMatch = function(e) {
|
51
|
-
var key, keyOn, _i, _len;
|
52
|
-
for (_i = 0, _len = controlKeys.length; _i < _len; _i++) {
|
53
|
-
key = controlKeys[_i];
|
54
|
-
keyOn = $.cookie("iam-" + key + "-checked") === 'true';
|
55
|
-
if (keyOn !== e["" + key + "Key"]) {
|
56
|
-
return false;
|
57
|
-
}
|
58
|
-
}
|
59
|
-
return true;
|
60
|
-
};
|
61
|
-
inputSelected = function() {
|
62
|
-
return $(document.getSelection().focusNode).find('input, textarea').length > 0;
|
63
|
-
};
|
64
|
-
processInput = function(input) {
|
65
|
-
var link;
|
66
|
-
if (input.match(/^\d+$/)) {
|
67
|
-
link = templateLink.replace(/:id/, input);
|
68
|
-
return logInByLink(link);
|
69
|
-
} else {
|
70
|
-
if (input) {
|
71
|
-
return iamNotice("" + input + " is invalid id.");
|
72
|
-
}
|
73
|
-
}
|
74
|
-
};
|
75
|
-
logInByInput = function() {
|
76
|
-
if (inputMode) {
|
77
|
-
processInput(input);
|
78
|
-
$('#iam-menu').remove();
|
79
|
-
} else {
|
80
|
-
$.get(menuLink, function(menu) {
|
81
|
-
$('body').append(menu);
|
82
|
-
return initialize();
|
83
|
-
});
|
84
|
-
}
|
85
|
-
return input = '';
|
86
|
-
};
|
87
|
-
return $(document).on('keydown', function(e) {
|
88
|
-
var _ref;
|
89
|
-
if (!inputSelected() && isTilde(e.keyCode) && controlKeysMatch(e)) {
|
90
|
-
logInByInput();
|
91
|
-
inputMode = !inputMode;
|
92
|
-
return $menu.toggle();
|
93
|
-
} else {
|
94
|
-
if ((48 <= (_ref = e.keyCode) && _ref <= 57)) {
|
95
|
-
return input += String.fromCharCode(e.keyCode);
|
96
|
-
}
|
97
|
-
}
|
98
|
-
});
|
99
|
-
});
|
100
|
-
|
101
|
-
}).call(this);
|
2
|
+
(function(){$(function(){var e,t,n,r,i,s,o,u,a,f,l,c,h,p;return e=$("#iam-menu"),p="/iam/log_in_as/:id",c="/iam/menu",o=!1,s="",t=["alt","ctrl","shift"],i=function(){return $(".iam-settings-header").on("click",function(){return $(".iam-settings").toggle()}),$("#iam-menu").on("click","td",function(){var e,t;e=$(this).parents("tr"),t=e.attr("href");if(t)return l(t)}),$.each(t,function(){var e,t;return e=$(".iam-"+this+"-settings input"),t="iam-"+this+"-checked",e[0].checked=$.cookie(t)==="true",e.on("click",function(){return $.cookie(t,this.checked)})})},r=function(e){var t;return t=$("<div class='iam-notice'>"+e+"</div>"),$("body").append(t),t.fadeIn(200).delay(1e3).fadeOut(600)},l=function(t){return $.post(t,function(t){return e.hide(),window.location.reload(),r(t.notice)})},a=function(e){return String.fromCharCode(e)==="À"},n=function(e){var n,r,i,s;for(i=0,s=t.length;i<s;i++){n=t[i],r=$.cookie("iam-"+n+"-checked")==="true";if(r!==e[""+n+"Key"])return!1}return!0},u=function(){return $(document.getSelection().focusNode).find("input, textarea").length>0},h=function(e){var t;if(e.match(/^\d+$/))return t=p.replace(/:id/,e),l(t);if(e)return r(""+e+" is invalid id.")},f=function(){return o?(h(s),$("#iam-menu").remove()):$.get(c,function(e){return $("body").append(e),i()}),s=""},$(document).on("keydown",function(t){var r;if(!u()&&a(t.keyCode)&&n(t))return f(),o=!o,e.toggle();if(48<=(r=t.keyCode)&&r<=57)return s+=String.fromCharCode(t.keyCode)})})}).call(this);
|
@@ -7,66 +7,4 @@
|
|
7
7
|
* http://www.opensource.org/licenses/mit-license.php
|
8
8
|
* http://www.opensource.org/licenses/GPL-2.0
|
9
9
|
*/
|
10
|
-
(function (
|
11
|
-
|
12
|
-
var pluses = /\+/g;
|
13
|
-
|
14
|
-
function raw(s) {
|
15
|
-
return s;
|
16
|
-
}
|
17
|
-
|
18
|
-
function decoded(s) {
|
19
|
-
return decodeURIComponent(s.replace(pluses, ' '));
|
20
|
-
}
|
21
|
-
|
22
|
-
var config = $.cookie = function (key, value, options) {
|
23
|
-
|
24
|
-
// write
|
25
|
-
if (value !== undefined) {
|
26
|
-
options = $.extend({}, config.defaults, options);
|
27
|
-
|
28
|
-
if (value === null) {
|
29
|
-
options.expires = -1;
|
30
|
-
}
|
31
|
-
|
32
|
-
if (typeof options.expires === 'number') {
|
33
|
-
var days = options.expires, t = options.expires = new Date();
|
34
|
-
t.setDate(t.getDate() + days);
|
35
|
-
}
|
36
|
-
|
37
|
-
value = config.json ? JSON.stringify(value) : String(value);
|
38
|
-
|
39
|
-
return (document.cookie = [
|
40
|
-
encodeURIComponent(key), '=', config.raw ? value : encodeURIComponent(value),
|
41
|
-
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
|
42
|
-
options.path ? '; path=' + options.path : '',
|
43
|
-
options.domain ? '; domain=' + options.domain : '',
|
44
|
-
options.secure ? '; secure' : ''
|
45
|
-
].join(''));
|
46
|
-
}
|
47
|
-
|
48
|
-
// read
|
49
|
-
var decode = config.raw ? raw : decoded;
|
50
|
-
var cookies = document.cookie.split('; ');
|
51
|
-
for (var i = 0, l = cookies.length; i < l; i++) {
|
52
|
-
var parts = cookies[i].split('=');
|
53
|
-
if (decode(parts.shift()) === key) {
|
54
|
-
var cookie = decode(parts.join('='));
|
55
|
-
return config.json ? JSON.parse(cookie) : cookie;
|
56
|
-
}
|
57
|
-
}
|
58
|
-
|
59
|
-
return null;
|
60
|
-
};
|
61
|
-
|
62
|
-
config.defaults = {};
|
63
|
-
|
64
|
-
$.removeCookie = function (key, options) {
|
65
|
-
if ($.cookie(key) !== null) {
|
66
|
-
$.cookie(key, null, options);
|
67
|
-
return true;
|
68
|
-
}
|
69
|
-
return false;
|
70
|
-
};
|
71
|
-
|
72
|
-
})(jQuery, document);
|
10
|
+
(function(e,t,n){function i(e){return e}function s(e){return decodeURIComponent(e.replace(r," "))}var r=/\+/g,o=e.cookie=function(r,u,a){if(u!==n){a=e.extend({},o.defaults,a),u===null&&(a.expires=-1);if(typeof a.expires=="number"){var f=a.expires,l=a.expires=new Date;l.setDate(l.getDate()+f)}return u=o.json?JSON.stringify(u):String(u),t.cookie=[encodeURIComponent(r),"=",o.raw?u:encodeURIComponent(u),a.expires?"; expires="+a.expires.toUTCString():"",a.path?"; path="+a.path:"",a.domain?"; domain="+a.domain:"",a.secure?"; secure":""].join("")}var c=o.raw?i:s,h=t.cookie.split("; ");for(var p=0,d=h.length;p<d;p++){var v=h[p].split("=");if(c(v.shift())===r){var m=c(v.join("="));return o.json?JSON.parse(m):m}}return null};o.defaults={},e.removeCookie=function(t,n){return e.cookie(t)!==null?(e.cookie(t,null,n),!0):!1}})(jQuery,document);
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -267,9 +267,7 @@ files:
|
|
267
267
|
- spec/support/database_cleaner.rb
|
268
268
|
- vendor/assets/javascripts/iam.coffee
|
269
269
|
- vendor/assets/javascripts/iam.js
|
270
|
-
- vendor/assets/javascripts/iam.ujs
|
271
270
|
- vendor/assets/javascripts/jquery.cookie.js
|
272
|
-
- vendor/assets/javascripts/jquery.cookie.ujs
|
273
271
|
- vendor/assets/stylesheets/.sass-cache/99c7326b15538dc9b4651af91a5f076fe779d5ec/iam.css.sassc
|
274
272
|
- vendor/assets/stylesheets/iam.css
|
275
273
|
- vendor/assets/stylesheets/iam.css.sass
|
@@ -1,2 +0,0 @@
|
|
1
|
-
// Generated by CoffeeScript 1.3.3
|
2
|
-
(function(){$(function(){var e,t,n,r,i,s,o,u,a,f,l,c,h,p;return e=$("#iam-menu"),p="/iam/log_in_as/:id",c="/iam/menu",o=!1,s="",t=["alt","ctrl","shift"],i=function(){return $(".iam-settings-header").on("click",function(){return $(".iam-settings").toggle()}),$("#iam-menu").on("click","td",function(){var e,t;e=$(this).parents("tr"),t=e.attr("href");if(t)return l(t)}),$.each(t,function(){var e,t;return e=$(".iam-"+this+"-settings input"),t="iam-"+this+"-checked",e[0].checked=$.cookie(t)==="true",e.on("click",function(){return $.cookie(t,this.checked)})})},r=function(e){var t;return t=$("<div class='iam-notice'>"+e+"</div>"),$("body").append(t),t.fadeIn(200).delay(1e3).fadeOut(600)},l=function(t){return $.post(t,function(t){return e.hide(),window.location.reload(),r(t.notice)})},a=function(e){return String.fromCharCode(e)==="À"},n=function(e){var n,r,i,s;for(i=0,s=t.length;i<s;i++){n=t[i],r=$.cookie("iam-"+n+"-checked")==="true";if(r!==e[""+n+"Key"])return!1}return!0},u=function(){return $(document.getSelection().focusNode).find("input, textarea").length>0},h=function(e){var t;if(e.match(/^\d+$/))return t=p.replace(/:id/,e),l(t);if(e)return r(""+e+" is invalid id.")},f=function(){return o?(h(s),$("#iam-menu").remove()):$.get(c,function(e){return $("body").append(e),i()}),s=""},$(document).on("keydown",function(t){var r;if(!u()&&a(t.keyCode)&&n(t))return f(),o=!o,e.toggle();if(48<=(r=t.keyCode)&&r<=57)return s+=String.fromCharCode(t.keyCode)})})}).call(this);
|
@@ -1,10 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* jQuery Cookie Plugin v1.3
|
3
|
-
* https://github.com/carhartl/jquery-cookie
|
4
|
-
*
|
5
|
-
* Copyright 2011, Klaus Hartl
|
6
|
-
* Dual licensed under the MIT or GPL Version 2 licenses.
|
7
|
-
* http://www.opensource.org/licenses/mit-license.php
|
8
|
-
* http://www.opensource.org/licenses/GPL-2.0
|
9
|
-
*/
|
10
|
-
(function(e,t,n){function i(e){return e}function s(e){return decodeURIComponent(e.replace(r," "))}var r=/\+/g,o=e.cookie=function(r,u,a){if(u!==n){a=e.extend({},o.defaults,a),u===null&&(a.expires=-1);if(typeof a.expires=="number"){var f=a.expires,l=a.expires=new Date;l.setDate(l.getDate()+f)}return u=o.json?JSON.stringify(u):String(u),t.cookie=[encodeURIComponent(r),"=",o.raw?u:encodeURIComponent(u),a.expires?"; expires="+a.expires.toUTCString():"",a.path?"; path="+a.path:"",a.domain?"; domain="+a.domain:"",a.secure?"; secure":""].join("")}var c=o.raw?i:s,h=t.cookie.split("; ");for(var p=0,d=h.length;p<d;p++){var v=h[p].split("=");if(c(v.shift())===r){var m=c(v.join("="));return o.json?JSON.parse(m):m}}return null};o.defaults={},e.removeCookie=function(t,n){return e.cookie(t)!==null?(e.cookie(t,null,n),!0):!1}})(jQuery,document);
|