Skip to content
This repository was archived by the owner on Apr 22, 2018. It is now read-only.

Commit c5b5bf7

Browse files
committed
Removed .basicModal selector dependencies
1 parent 7cedff9 commit c5b5bf7

File tree

2 files changed

+47
-35
lines changed

2 files changed

+47
-35
lines changed

dist/basicModal.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/coffee/basicModal.coffee

Lines changed: 46 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
this.basicModal =
22

3-
lastFocus: null
3+
_lastFocus: null
4+
5+
_dom: (elem) ->
6+
7+
if not elem? then return $('.basicModal')
8+
else return $('.basicModal').find("#{ elem }")
49

510
_valid: (data) ->
611

@@ -41,8 +46,10 @@ this.basicModal =
4146

4247
if data.buttons?.cancel?
4348
if data.class.indexOf('login') is -1
49+
# Default close-button
4450
html += "<a id='basicModal__cancel' class='basicModal__button'>#{ data.buttons.cancel.title }</a>"
4551
else
52+
# Custom close-button for the login-theme
4653
html += "<div id='basicModal__cancel' class='basicModal__button' aria-label='close'><a class='ion-close'></a></div>"
4754

4855
if data.buttons?.action?
@@ -59,48 +66,49 @@ this.basicModal =
5966

6067
values = null
6168

62-
if $('.basicModal input, .basicModal .basicModal__dropdown').length isnt 0
69+
if basicModal._dom('input').length isnt 0 or
70+
basicModal._dom('.basicModal__dropdown').length isnt 0
6371

64-
values = {}
72+
values = {}
6573

66-
$('.basicModal input').each ->
67-
name = $(this).attr('data-name')
68-
value = $(this).val()
69-
values[name] = value
74+
basicModal._dom('input').each ->
75+
name = $(this).attr('data-name')
76+
value = $(this).val()
77+
values[name] = value
7078

71-
$('.basicModal .basicModal__dropdown').each ->
72-
name = $(this).attr('data-name')
73-
value = $(this).attr('data-value')
74-
values[name] = value
79+
basicModal._dom('.basicModal__dropdown').each ->
80+
name = $(this).attr('data-name')
81+
value = $(this).attr('data-value')
82+
values[name] = value
7583

7684
return values
7785

7886
_bind: (data) ->
7987

8088
# Bind cancel button
8189
if data.buttons?.cancel?.fn?
82-
$('.basicModal #basicModal__cancel').click ->
90+
basicModal._dom('#basicModal__cancel').click ->
8391
return false if $(this).hasClass 'basicModal__button--active'
8492
$(this).addClass 'basicModal__button--active'
8593
data.buttons.cancel.fn()
8694

8795
# Bind action button
8896
if data.buttons?.action?.fn?
89-
$('.basicModal #basicModal__action').click ->
97+
basicModal._dom('#basicModal__action').click ->
9098
return false if $(this).hasClass 'basicModal__button--active'
9199
$(this).addClass 'basicModal__button--active'
92100
data.buttons.action.fn basicModal._getValues()
93101

94102
# Bind input
95-
$('.basicModal input').keydown -> $(this).removeClass 'error'
103+
basicModal._dom('input').keydown -> $(this).removeClass 'error'
96104

97105
###
98106
# Bind dropdown
99107
###
100108

101109
dropdownTimeout = null
102110

103-
$('.basicModal .basicModal__dropdown .front').click ->
111+
basicModal._dom('.basicModal__dropdown .front').click ->
104112

105113
dropdown = $(this).parent()
106114

@@ -109,7 +117,7 @@ this.basicModal =
109117
dropdown.find('.back').show()
110118
dropdown.addClass 'flip'
111119

112-
$('.basicModal .basicModal__dropdown .back ul li[class!="separator"]').click ->
120+
basicModal._dom('.basicModal__dropdown .back ul li[class!="separator"]').click ->
113121

114122
dropdown = $(this).parent().parent().parent()
115123

@@ -130,10 +138,11 @@ this.basicModal =
130138
return false if not basicModal._valid data
131139

132140
# Save focused element
133-
basicModal.lastFocus = document.activeElement
141+
basicModal._lastFocus = document.activeElement
134142

135143
# Remove open modal
136-
if $('.basicModalContainer').length isnt 0
144+
145+
if basicModal._dom().parent().length isnt 0
137146
basicModal.close true
138147
setTimeout ->
139148
basicModal.show data
@@ -157,46 +166,46 @@ this.basicModal =
157166
basicModal.reset()
158167

159168
# Focus input
160-
$(".basicModal input[data-name='#{ input }'], .basicModal .basicModal__dropdown[data-name='#{ input }']")
169+
basicModal._dom("input[data-name='#{ input }'], .basicModal__dropdown[data-name='#{ input }']")
161170
.addClass 'error'
162171
.focus().select()
163172

164173
# Shake
165-
$('.basicModal').removeClass 'basicModal--fadeIn basicModal--shake'
174+
basicModal._dom().removeClass 'basicModal--fadeIn basicModal--shake'
166175
setTimeout ->
167-
$('.basicModal').addClass 'basicModal--shake'
176+
basicModal._dom().addClass 'basicModal--shake'
168177
, 1
169178

170179
visible: ->
171180

172-
if $('.basicModalContainer').length is 0 then return false
181+
if basicModal._dom().parent().length is 0 then return false
173182
return true
174183

175184
action: ->
176185

177-
if $('.basicModal #basicModal__action').length isnt 0
186+
if basicModal._dom('#basicModal__action').length isnt 0
178187

179-
$('.basicModal #basicModal__action').click()
188+
basicModal._dom('#basicModal__action').click()
180189
return true
181190

182191
return false
183192

184193
cancel: ->
185194

186-
if $('.basicModal #basicModal__cancel').length isnt 0
195+
if basicModal._dom('#basicModal__cancel').length isnt 0
187196

188-
$('.basicModal #basicModal__cancel').click()
197+
basicModal._dom('#basicModal__cancel').click()
189198
return true
190199

191200
return false
192201

193202
reset: ->
194203

195204
# Reactive buttons
196-
$('.basicModal .basicModal__button').removeClass 'basicModal__button--active'
205+
basicModal._dom('.basicModal__button').removeClass 'basicModal__button--active'
197206

198207
# Remove old error
199-
$('.basicModal input, .basicModal .basicModal__dropdown').removeClass 'error'
208+
basicModal._dom('.input, .basicModal__dropdown').removeClass 'error'
200209

201210
return true
202211

@@ -206,21 +215,24 @@ this.basicModal =
206215
Close modal if force is not set or true,
207216
or mouse is not over modal.
208217
###
218+
219+
container = basicModal._dom().parent()
220+
209221
if not force? or
210222
force is true
211223

212224
# Don't close when not closable
213-
return false if $('.basicModalContainer[data-closable=true]').length is 0 and force isnt true
225+
return false if container.attr('data-closable') isnt 'true' and force isnt true
214226

215-
$('.basicModalContainer').removeClass('basicModalContainer--fadeIn').addClass('basicModalContainer--fadeOut')
227+
container.removeClass('basicModalContainer--fadeIn').addClass('basicModalContainer--fadeOut')
216228
setTimeout ->
217-
$('.basicModalContainer').remove()
229+
container.remove()
218230
, 300
219231

220232
# Restore last active element
221-
if basicModal.lastFocus?
222-
basicModal.lastFocus.focus()
223-
basicModal.lastFocus = null
233+
if basicModal._lastFocus?
234+
basicModal._lastFocus.focus()
235+
basicModal._lastFocus = null
224236

225237
return true
226238

0 commit comments

Comments
 (0)