help-anywhere 0.1.4 → 0.1.5

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.
@@ -18,13 +18,14 @@ do ( $ = jQuery ) ->
18
18
  if (id = elm.attr('id'))?
19
19
  return "##{id}"
20
20
 
21
- selector = elm.parents().toArray()
21
+ selector = elm.parents()[0..-2].toArray()
22
22
  .map (x) ->
23
23
  out = x.tagName
24
24
  if (id = $(x).attr('id'))?
25
25
  out += "##{id}"
26
26
  if (classes = $(x).attr('class'))? and classes isnt ''
27
27
  out += classes.split(/\s/g).map((x)-> '.' + x).join()
28
+ out += ":nth-child(#{$(x).index()+1})"
28
29
  return out
29
30
  .reverse()
30
31
  .join('>')
@@ -91,7 +92,25 @@ do ( $ = jQuery ) ->
91
92
 
92
93
  $("html").on 'mousemove', handleMouseMove
93
94
  $("html").on 'mousedown', handleMouseDown
95
+ ###
96
+ END HTML SELECTION SYSTEM
97
+ ###
98
+
99
+ ###
100
+ HANDLING RESIZING
101
+ ###
102
+
103
+ $(window).on('scroll resize', ->
94
104
 
105
+ )
106
+
107
+ ###
108
+ END HANDLING RESIZING
109
+ ###
110
+
111
+ ###
112
+ HTML TEMPLATES FOR ELEMENTS
113
+ ###
95
114
  BUBBLE_TEMPLATE = -> """
96
115
  <div class="ha-bubble-box">
97
116
  <div class="ha-bubble-pointer"></div>
@@ -119,6 +138,9 @@ do ( $ = jQuery ) ->
119
138
  <input type="button" class="ha-bubble-remove btn btn-danger" value="Remove">
120
139
  </div>
121
140
  """
141
+ ###
142
+ END HTML TEMPLATES
143
+ ###
122
144
 
123
145
  # Just constants to get named into array for d&d of resize handling
124
146
  X = 0
@@ -142,6 +164,8 @@ do ( $ = jQuery ) ->
142
164
  build: (editMode) ->
143
165
  @elm = $(BUBBLE_TEMPLATE.call(this))
144
166
 
167
+ @elm.data('_component', this)
168
+
145
169
  @editMode = editMode
146
170
 
147
171
  #Render the handlers for edition mode as needed
@@ -240,27 +264,27 @@ do ( $ = jQuery ) ->
240
264
  switch finalPosition
241
265
  when 'top'
242
266
  @elm.css
243
- top: (boundingBox.y - bubbleSize[1]) + "px"
244
- left: boundingBox.x + Math.round((boundingBox.w-bubbleSize[0])/2) + "px"
267
+ top: Math.max(0, (boundingBox.y - bubbleSize[1])) + "px"
268
+ left: Math.max(0, boundingBox.x + Math.round((boundingBox.w-bubbleSize[0])/2)) + "px"
245
269
  'margin-top': '-14px'
246
270
  'margin-left': '0px'
247
271
  when 'bottom'
248
272
  @elm.css
249
- top: boundingBox.y2 + "px"
250
- left: boundingBox.x + Math.round((boundingBox.w-bubbleSize[0])/2) + "px"
273
+ top: Math.max(0, boundingBox.y2) + "px"
274
+ left: Math.max(0, boundingBox.x + Math.round((boundingBox.w-bubbleSize[0])/2)) + "px"
251
275
  'margin-top': '14px'
252
276
  'margin-left': '0px'
253
277
  when 'right'
254
278
  @elm.css
255
- top: boundingBox.y + Math.round((boundingBox.h-bubbleSize[1])/2) + "px"
256
- left: boundingBox.x2 + "px"
279
+ top: Math.max(0, boundingBox.y + Math.round((boundingBox.h-bubbleSize[1])/2)) + "px"
280
+ left: Math.max(0, boundingBox.x2) + "px"
257
281
  'margin-left': '14px'
258
282
  'margin-top': '0px'
259
283
  else
260
284
  @position = 'left'
261
285
  @elm.css
262
- top: boundingBox.y + Math.round((boundingBox.h-bubbleSize[1])/2) + "px"
263
- left: (boundingBox.x - bubbleSize[0]) + "px"
286
+ top: Math.max(0, boundingBox.y + Math.round((boundingBox.h-bubbleSize[1])/2)) + "px"
287
+ left: Math.max(0, (boundingBox.x - bubbleSize[0])) + "px"
264
288
  'margin-left': '-14px'
265
289
  'margin-top': '0px'
266
290
 
@@ -1,8 +1,7 @@
1
1
  do($ = jQuery) ->
2
2
  HELP_TEMPLATE = (args) ->
3
3
  """
4
- <div id="help-anywhere-widget">
5
- <div class="ha-std-button" title="Help">?</div>
4
+ <div id="help-anywhere-widget" title="Help">?
6
5
  </div>
7
6
  """
8
7
 
@@ -123,8 +122,7 @@ do($ = jQuery) ->
123
122
  buildInterface: ->
124
123
  unless @help?
125
124
  @help = $(HELP_TEMPLATE())
126
- @help.find('.ha-std-button').on 'click', =>
127
- @openHelpInterface()
125
+ @help.on 'click', => @openHelpInterface()
128
126
  @help.css(display: 'block', opacity: '0')
129
127
  .animate(opacity: '1', 2000)
130
128
  .appendTo($('body'))
@@ -24,6 +24,8 @@
24
24
  font-size: 12px;
25
25
  text-align: center;
26
26
 
27
+ z-index: 10001;
28
+
27
29
  &:hover {
28
30
  border-color: yellow;
29
31
  color: yellow;
@@ -54,7 +56,7 @@
54
56
  }
55
57
 
56
58
  .ha-edit-bottom-layout {
57
- position: absolute;
59
+ position: fixed;
58
60
  bottom: 0;
59
61
  left: 0;
60
62
  background-color: #333;
@@ -4,7 +4,8 @@ class HelpAnywhere::BaseController < ApplicationController
4
4
  private
5
5
  def check_authentication
6
6
  unless HelpAnywhere.config.has_edition_role? self
7
- raise "You are not authorized to edit help"
7
+ render :text => "You are not authorized to edit help", :status => 403
8
+ return
8
9
  end
9
10
  end
10
11
  end
@@ -1,3 +1,3 @@
1
1
  module HelpAnywhere
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
@@ -1,5 +1,4 @@
1
1
  #coding: utf-8
2
- require 'colorize'
3
2
 
4
3
  namespace :help_anywhere do
5
4
  desc "Generate everything you need to run help-anywhere plugin."
@@ -10,7 +9,7 @@ namespace :help_anywhere do
10
9
  filepath = File.join Dir.pwd, relpath
11
10
 
12
11
  if File.exists?(filepath)
13
- puts "[X] ".white + "Skipping `#{relpath}`: File already exists".yellow
12
+ puts "[X] Skipping `#{relpath}`: File already exists"
14
13
  else
15
14
  File.write filepath,
16
15
  <<-RUBY
@@ -29,7 +28,7 @@ HelpAnywhere.configure do |config|
29
28
  # routes.match '/admin/?/*/?...', 'admin_help_for_resource_$1_action_$2'
30
29
  end
31
30
 
32
- # Set here the method which is called to allow or disallow edition mode
31
+ # Set here the method which is called to alloww or disallow edition mode
33
32
  # You can create this method in your ApplicationController class.
34
33
  # Default is a method which return always true: every one can edit help.
35
34
  #
@@ -37,9 +36,9 @@ HelpAnywhere.configure do |config|
37
36
  end
38
37
  RUBY
39
38
 
40
- puts "[»]".white + " create `#{relpath}`".green
39
+ puts "[»] create `#{relpath}`"
41
40
  end
42
41
 
43
- puts "[»]".white + "Done! please add `require help_anywhere` in both application.js and application.css, run migrations, enjoy!".green
42
+ puts "[»] Done! please add `require help_anywhere` in both application.js and application.css, run migrations, enjoy!"
44
43
  end
45
44
  end
@@ -6,3 +6,6 @@ Connecting to database specified by database.yml
6
6
  Connecting to database specified by database.yml
7
7
   (0.4ms) begin transaction
8
8
   (0.1ms) rollback transaction
9
+ Connecting to database specified by database.yml
10
+  (0.2ms) begin transaction
11
+  (0.1ms) rollback transaction
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: help-anywhere
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -147,7 +147,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
147
147
  version: '0'
148
148
  segments:
149
149
  - 0
150
- hash: 590993615340362406
150
+ hash: -3689506766325585717
151
151
  required_rubygems_version: !ruby/object:Gem::Requirement
152
152
  none: false
153
153
  requirements:
@@ -156,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
156
  version: '0'
157
157
  segments:
158
158
  - 0
159
- hash: 590993615340362406
159
+ hash: -3689506766325585717
160
160
  requirements: []
161
161
  rubyforge_project:
162
162
  rubygems_version: 1.8.23