cortex-reaver 0.3.0 → 0.3.1

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.
@@ -1,8 +1,8 @@
1
1
  module CortexReaver
2
2
  APP_NAME = 'Cortex Reaver'
3
- APP_VERSION = '0.3.0'
3
+ APP_VERSION = '0.3.1'
4
4
  APP_AUTHOR = 'Kyle Kingsbury'
5
5
  APP_EMAIL = 'aphyr@aphyr.com'
6
6
  APP_URL = 'http://aphyr.com'
7
- APP_COPYRIGHT = 'Copyright (c) 2009--2010 Kyle Kingsbury <aphyr@aphyr.com>. All rights reserved.'
7
+ APP_COPYRIGHT = 'Copyright (c) 2009--2011 Kyle Kingsbury <aphyr@aphyr.com>. All rights reserved.'
8
8
  end
@@ -39,7 +39,6 @@
39
39
  <p>
40
40
  <label for="admin_login">Login</label> <input type="text" name="login" id="admin_login" />
41
41
  <label for="admin_password">Password</label> <input type="password" name="password" id="admin_password" />
42
- <input type="hidden" id="target_uri" name="target_uri" value="<%= request.request_uri %>" />
43
42
  <input type="submit" name="action" value="Log in" />
44
43
  </p>
45
44
  </form>
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 0
9
- version: 0.3.0
8
+ - 1
9
+ version: 0.3.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Kyle Kingsbury
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-06-29 00:00:00 -07:00
17
+ date: 2011-01-19 00:00:00 -08:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -253,6 +253,7 @@ files:
253
253
  - lib/cortex_reaver/public/css/users.css
254
254
  - lib/cortex_reaver/public/images/next_34_prelight.png
255
255
  - lib/cortex_reaver/public/images/grid_34_prelight.png
256
+ - lib/cortex_reaver/public/images/background.png
256
257
  - lib/cortex_reaver/public/images/prev_34.png
257
258
  - lib/cortex_reaver/public/images/tag.gif
258
259
  - lib/cortex_reaver/public/images/prev_34_prelight.png
@@ -285,8 +286,8 @@ files:
285
286
  - lib/cortex_reaver/public/js/photo.js
286
287
  - lib/cortex_reaver/public/js/jquery.periodicalupdater.js
287
288
  - lib/cortex_reaver/public/js/jquery.color.js
289
+ - lib/cortex_reaver/public/js/jquery.hotkeys.js
288
290
  - lib/cortex_reaver/public/js/autotags.js
289
- - lib/cortex_reaver/public/js/jquery.hotkeys-0.7.9.js
290
291
  - lib/cortex_reaver/public/robots.txt
291
292
  - lib/cortex_reaver/model/tag.rb
292
293
  - lib/cortex_reaver/model/model.rb
@@ -1,244 +0,0 @@
1
- /*
2
- (c) Copyrights 2007 - 2008
3
-
4
- Original idea by by Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
5
-
6
- jQuery Plugin by Tzury Bar Yochay
7
- tzury.by@gmail.com
8
- http://evalinux.wordpress.com
9
- http://facebook.com/profile.php?id=513676303
10
-
11
- Project's sites:
12
- http://code.google.com/p/js-hotkeys/
13
- http://github.com/tzuryby/hotkeys/tree/master
14
-
15
- License: same as jQuery license.
16
-
17
- USAGE:
18
- // simple usage
19
- $(document).bind('keydown', 'Ctrl+c', function(){ alert('copy anyone?');});
20
-
21
- // special options such as disableInIput
22
- $(document).bind('keydown', {combi:'Ctrl+x', disableInInput: true} , function() {});
23
-
24
- Note:
25
- This plugin wraps the following jQuery methods: $.fn.find, $.fn.bind and $.fn.unbind
26
- */
27
-
28
- (function (jQuery){
29
- // keep reference to the original $.fn.bind, $.fn.unbind and $.fn.find
30
- jQuery.fn.__bind__ = jQuery.fn.bind;
31
- jQuery.fn.__unbind__ = jQuery.fn.unbind;
32
- jQuery.fn.__find__ = jQuery.fn.find;
33
-
34
- var hotkeys = {
35
- version: '0.7.9',
36
- override: /keypress|keydown|keyup/g,
37
- triggersMap: {},
38
-
39
- specialKeys: { 27: 'esc', 9: 'tab', 32:'space', 13: 'return', 8:'backspace', 145: 'scroll',
40
- 20: 'capslock', 144: 'numlock', 19:'pause', 45:'insert', 36:'home', 46:'del',
41
- 35:'end', 33: 'pageup', 34:'pagedown', 37:'left', 38:'up', 39:'right',40:'down',
42
- 109: '-',
43
- 112:'f1',113:'f2', 114:'f3', 115:'f4', 116:'f5', 117:'f6', 118:'f7', 119:'f8',
44
- 120:'f9', 121:'f10', 122:'f11', 123:'f12', 191: '/'},
45
-
46
- shiftNums: { "`":"~", "1":"!", "2":"@", "3":"#", "4":"$", "5":"%", "6":"^", "7":"&",
47
- "8":"*", "9":"(", "0":")", "-":"_", "=":"+", ";":":", "'":"\"", ",":"<",
48
- ".":">", "/":"?", "\\":"|" },
49
-
50
- newTrigger: function (type, combi, callback) {
51
- // i.e. {'keyup': {'ctrl': {cb: callback, disableInInput: false}}}
52
- var result = {};
53
- result[type] = {};
54
- result[type][combi] = {cb: callback, disableInInput: false};
55
- return result;
56
- }
57
- };
58
- // add firefox num pad char codes
59
- //if (jQuery.browser.mozilla){
60
- // add num pad char codes
61
- hotkeys.specialKeys = jQuery.extend(hotkeys.specialKeys, { 96: '0', 97:'1', 98: '2', 99:
62
- '3', 100: '4', 101: '5', 102: '6', 103: '7', 104: '8', 105: '9', 106: '*',
63
- 107: '+', 109: '-', 110: '.', 111 : '/'
64
- });
65
- //}
66
-
67
- // a wrapper around of $.fn.find
68
- // see more at: http://groups.google.com/group/jquery-en/browse_thread/thread/18f9825e8d22f18d
69
- jQuery.fn.find = function( selector ) {
70
- this.query = selector;
71
- return jQuery.fn.__find__.apply(this, arguments);
72
- };
73
-
74
- jQuery.fn.unbind = function (type, combi, fn){
75
- if (jQuery.isFunction(combi)){
76
- fn = combi;
77
- combi = null;
78
- }
79
- if (combi && typeof combi === 'string'){
80
- var selectorId = ((this.prevObject && this.prevObject.query) || (this[0].id && this[0].id) || this[0]).toString();
81
- var hkTypes = type.split(' ');
82
- for (var x=0; x<hkTypes.length; x++){
83
- delete hotkeys.triggersMap[selectorId][hkTypes[x]][combi];
84
- }
85
- }
86
- // call jQuery original unbind
87
- return this.__unbind__(type, fn);
88
- };
89
-
90
- jQuery.fn.bind = function(type, data, fn){
91
- // grab keyup,keydown,keypress
92
- var handle = type.match(hotkeys.override);
93
-
94
- if (jQuery.isFunction(data) || !handle){
95
- // call jQuery.bind only
96
- return this.__bind__(type, data, fn);
97
- }
98
- else{
99
- // split the job
100
- var result = null,
101
- // pass the rest to the original $.fn.bind
102
- pass2jq = jQuery.trim(type.replace(hotkeys.override, ''));
103
-
104
- // see if there are other types, pass them to the original $.fn.bind
105
- if (pass2jq){
106
- result = this.__bind__(pass2jq, data, fn);
107
- }
108
-
109
- if (typeof data === "string"){
110
- data = {'combi': data};
111
- }
112
- if(data.combi){
113
- for (var x=0; x < handle.length; x++){
114
- var eventType = handle[x];
115
- var combi = data.combi.toLowerCase(),
116
- trigger = hotkeys.newTrigger(eventType, combi, fn),
117
- selectorId = ((this.prevObject && this.prevObject.query) || (this[0].id && this[0].id) || this[0]).toString();
118
-
119
- //trigger[eventType][combi].propagate = data.propagate;
120
- trigger[eventType][combi].disableInInput = data.disableInInput;
121
-
122
- // first time selector is bounded
123
- if (!hotkeys.triggersMap[selectorId]) {
124
- hotkeys.triggersMap[selectorId] = trigger;
125
- }
126
- // first time selector is bounded with this type
127
- else if (!hotkeys.triggersMap[selectorId][eventType]) {
128
- hotkeys.triggersMap[selectorId][eventType] = trigger[eventType];
129
- }
130
- // make trigger point as array so more than one handler can be bound
131
- var mapPoint = hotkeys.triggersMap[selectorId][eventType][combi];
132
- if (!mapPoint){
133
- hotkeys.triggersMap[selectorId][eventType][combi] = [trigger[eventType][combi]];
134
- }
135
- else if (mapPoint.constructor !== Array){
136
- hotkeys.triggersMap[selectorId][eventType][combi] = [mapPoint];
137
- }
138
- else {
139
- hotkeys.triggersMap[selectorId][eventType][combi][mapPoint.length] = trigger[eventType][combi];
140
- }
141
-
142
- // add attribute and call $.event.add per matched element
143
- this.each(function(){
144
- // jQuery wrapper for the current element
145
- var jqElem = jQuery(this);
146
-
147
- // element already associated with another collection
148
- if (jqElem.attr('hkId') && jqElem.attr('hkId') !== selectorId){
149
- selectorId = jqElem.attr('hkId') + ";" + selectorId;
150
- }
151
- jqElem.attr('hkId', selectorId);
152
- });
153
- result = this.__bind__(handle.join(' '), data, hotkeys.handler)
154
- }
155
- }
156
- return result;
157
- }
158
- };
159
- // work-around for opera and safari where (sometimes) the target is the element which was last
160
- // clicked with the mouse and not the document event it would make sense to get the document
161
- hotkeys.findElement = function (elem){
162
- if (!jQuery(elem).attr('hkId')){
163
- if (jQuery.browser.opera || jQuery.browser.safari){
164
- while (!jQuery(elem).attr('hkId') && elem.parentNode){
165
- elem = elem.parentNode;
166
- }
167
- }
168
- }
169
- return elem;
170
- };
171
- // the event handler
172
- hotkeys.handler = function(event) {
173
- var target = hotkeys.findElement(event.currentTarget),
174
- jTarget = jQuery(target),
175
- ids = jTarget.attr('hkId');
176
-
177
- if(ids){
178
- ids = ids.split(';');
179
- var code = event.which,
180
- type = event.type,
181
- special = hotkeys.specialKeys[code],
182
- // prevent f5 overlapping with 't' (or f4 with 's', etc.)
183
- character = !special && String.fromCharCode(code).toLowerCase(),
184
- shift = event.shiftKey,
185
- ctrl = event.ctrlKey,
186
- // patch for jquery 1.2.5 && 1.2.6 see more at:
187
- // http://groups.google.com/group/jquery-en/browse_thread/thread/83e10b3bb1f1c32b
188
- alt = event.altKey || event.originalEvent.altKey,
189
- mapPoint = null;
190
-
191
- for (var x=0; x < ids.length; x++){
192
- if (hotkeys.triggersMap[ids[x]][type]){
193
- mapPoint = hotkeys.triggersMap[ids[x]][type];
194
- break;
195
- }
196
- }
197
-
198
- //find by: id.type.combi.options
199
- if (mapPoint){
200
- var trigger;
201
- // event type is associated with the hkId
202
- if(!shift && !ctrl && !alt) { // No Modifiers
203
- trigger = mapPoint[special] || (character && mapPoint[character]);
204
- }
205
- else{
206
- // check combinations (alt|ctrl|shift+anything)
207
- var modif = '';
208
- if(alt) modif +='alt+';
209
- if(ctrl) modif+= 'ctrl+';
210
- if(shift) modif += 'shift+';
211
- // modifiers + special keys or modifiers + character or modifiers + shift character or just shift character
212
- trigger = mapPoint[modif+special];
213
- if (!trigger){
214
- if (character){
215
- trigger = mapPoint[modif+character]
216
- || mapPoint[modif+hotkeys.shiftNums[character]]
217
- // '$' can be triggered as 'Shift+4' or 'Shift+$' or just '$'
218
- || (modif === 'shift+' && mapPoint[hotkeys.shiftNums[character]]);
219
- }
220
- }
221
- }
222
- if (trigger){
223
- var result = false;
224
- for (var x=0; x < trigger.length; x++){
225
- if(trigger[x].disableInInput){
226
- // double check event.currentTarget and event.target
227
- var elem = jQuery(event.target);
228
- if (jTarget.is("input") || jTarget.is("textarea") || jTarget.is("select")
229
- || elem.is("input") || elem.is("textarea") || elem.is("select")) {
230
- return true;
231
- }
232
- }
233
- // call the registered callback function
234
- result = result || trigger[x].cb.apply(this, [event]);
235
- }
236
- return result;
237
- }
238
- }
239
- }
240
- };
241
- // place it under window so it can be extended and overridden by others
242
- window.hotkeys = hotkeys;
243
- return jQuery;
244
- })(jQuery);