abstracted 0.2.2 → 0.2.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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/abstract_resources.js +5 -1
- data/app/assets/javascripts/abstracted/app.fab_delete.coffee +161 -0
- data/app/assets/javascripts/abstracted/app.materialize.coffee +32 -0
- data/app/assets/javascripts/abstracted/app.resource_form.coffee +59 -0
- data/app/assets/javascripts/abstracted/app.resources_list.coffee +239 -0
- data/app/assets/javascripts/abstracted/app.shared.coffee +125 -0
- data/app/assets/javascripts/abstracted/app.sweetalert.coffee +32 -0
- data/app/assets/javascripts/abstracted/keypress.coffee +23 -0
- data/app/assets/javascripts/init.js.coffee +22 -10
- data/app/assets/javascripts/triggers.coffee +34 -0
- data/lib/abstracted/version.rb +1 -1
- metadata +10 -4
- data/app/assets/javascripts/crud.js.coffee +0 -194
- data/app/assets/javascripts/initializers.js.coffee +0 -457
@@ -0,0 +1,125 @@
|
|
1
|
+
# this var holds whatever HTML has been parked
|
2
|
+
# to make room for a loader
|
3
|
+
#
|
4
|
+
class App.Shared
|
5
|
+
# constructor: (@el) ->
|
6
|
+
# # initialize some stuff
|
7
|
+
# # it will be re-instated with releaseLoader
|
8
|
+
loaded_html = ""
|
9
|
+
loaded_element = ""
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
getDownload: (xhr,data) ->
|
14
|
+
# Check if a filename is existing on the response headers.
|
15
|
+
filename = ""
|
16
|
+
disposition = xhr.getResponseHeader("Content-Disposition")
|
17
|
+
if disposition && disposition.indexOf("attachment") != -1
|
18
|
+
filenameRegex = /filename[^;=\n]*=(([""]).*?\2|[^;\n]*)/
|
19
|
+
matches = filenameRegex.exec(disposition)
|
20
|
+
if matches != null && matches[1]
|
21
|
+
filename = matches[1].replace(/[""]/g, "")
|
22
|
+
#
|
23
|
+
type = xhr.getResponseHeader("Content-Type")
|
24
|
+
console.log 'getDownload ' + type
|
25
|
+
blob = new Blob([data], {type: type})
|
26
|
+
#
|
27
|
+
if typeof window.navigator.msSaveBlob != "undefined"
|
28
|
+
# // IE workaround for "HTML7007: One or more blob URLs were revoked by closing the blob for which they were created. These URLs will no longer resolve as the data backing the URL has been freed.
|
29
|
+
window.navigator.msSaveBlob(blob, filename)
|
30
|
+
else
|
31
|
+
URL = window.URL || window.webkitURL
|
32
|
+
downloadUrl = URL.createObjectURL(blob)
|
33
|
+
downloadUrl.oneTimeOnly = true
|
34
|
+
#
|
35
|
+
if filename
|
36
|
+
# // Use HTML5 a[download] attribute to specify filename.
|
37
|
+
a = document.createElement("a")
|
38
|
+
# // Safari doesn"t support this yet.
|
39
|
+
if typeof a.download == "undefined"
|
40
|
+
window.location = downloadUrl
|
41
|
+
else
|
42
|
+
a.href = downloadUrl
|
43
|
+
a.download = filename
|
44
|
+
document.body.appendChild(a)
|
45
|
+
a.click()
|
46
|
+
else
|
47
|
+
window.location = downloadUrl
|
48
|
+
|
49
|
+
# cloneObject will make a copy of an object - not a copy of the reference
|
50
|
+
# to some object!
|
51
|
+
#
|
52
|
+
# var obj1= {bla:'blabla',foo:'foofoo',etc:'etc'};
|
53
|
+
# var obj2= new cloneObject(obj1);
|
54
|
+
#
|
55
|
+
# 03-07-2015 (whd) not sure whether this method is OK!!!!
|
56
|
+
# cp'ed from: http://scriptcult.com/subcategory_1/article_414-copy-or-clone-javascript-array-object
|
57
|
+
#
|
58
|
+
cloneObject: (source) ->
|
59
|
+
for i in source
|
60
|
+
if typeof source[i] == 'source'
|
61
|
+
this[i] = new cloneObject source[i]
|
62
|
+
else
|
63
|
+
this[i] = source[i]
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
#
|
68
|
+
# set a loader - see http://materializecss.com/preloader.html
|
69
|
+
# for examples
|
70
|
+
#
|
71
|
+
setLoader: (elem,html) =>
|
72
|
+
html ||= '<div class="progress"><div class="indeterminate"></div></div>'
|
73
|
+
loaded_element = $(elem)
|
74
|
+
loaded_html = elem.html()
|
75
|
+
elem.html(html)
|
76
|
+
return loaded_html
|
77
|
+
|
78
|
+
#
|
79
|
+
# release the loader
|
80
|
+
#
|
81
|
+
releaseLoader: (elem=null) =>
|
82
|
+
elem ||= loaded_element
|
83
|
+
$(elem).html(loaded_html)
|
84
|
+
|
85
|
+
tellResponse: (msg,anchor='.message_container',fade=15000,selector='.alert') ->
|
86
|
+
$(anchor).prepend(msg)
|
87
|
+
if fade>0
|
88
|
+
fadeItOut $(anchor).find(selector), 15000
|
89
|
+
|
90
|
+
reportError: (msg) ->
|
91
|
+
Materialize.toast( msg, 4500, 'red lighten-3')
|
92
|
+
|
93
|
+
|
94
|
+
#
|
95
|
+
# fadeItOut will fade an element out with a preset or
|
96
|
+
# supplied delay
|
97
|
+
#
|
98
|
+
fadeItOut: (e,delay=3500) ->
|
99
|
+
$(e).delay( delay ).fadeOut( 1000 )
|
100
|
+
|
101
|
+
#
|
102
|
+
# dataArgumentOn constructs the data: argument on AJAX calls
|
103
|
+
# from what ever data- attributes an element holds
|
104
|
+
#
|
105
|
+
# excemptions: data-id, data-remote, data-ajax, data-method, data-type and data-url
|
106
|
+
#
|
107
|
+
dataArgumentOn: (elem) ->
|
108
|
+
$(elem).data()
|
109
|
+
# try
|
110
|
+
#
|
111
|
+
# swal( 'pageOnLoad', 'pageOnLoad blev kaldt!', 'success')
|
112
|
+
#
|
113
|
+
# catch error
|
114
|
+
# console.log 'ok - giving up'
|
115
|
+
# console.log 'page loaded!'
|
116
|
+
|
117
|
+
#
|
118
|
+
# check to see iff this browser supperts the File APIs
|
119
|
+
#
|
120
|
+
fileApiSupportCheck: () ->
|
121
|
+
if (window.File && window.FileReader && window.FileList && window.Blob)
|
122
|
+
# All the File APIs are supported.
|
123
|
+
console.log 'file APIs supported '
|
124
|
+
else
|
125
|
+
document.getElementById('message_container').innerHTML = '<div class="alert fade in alert-warning"><a href="#!" class="warning close-notice btn-floating btn-small waves-effect waves-light" aria-hidden="true" type="button" data-dismiss="alert"><i class="material-icons">close</i></a>This browser does not support this application fully! Use latest Chrome - or advance cautiously!</div>';
|
@@ -0,0 +1,32 @@
|
|
1
|
+
class App.SweetAlert
|
2
|
+
constructor: (@el) ->
|
3
|
+
# initialize some stuff
|
4
|
+
|
5
|
+
|
6
|
+
#
|
7
|
+
# initializeSweetAlert
|
8
|
+
# initializes the sweetalert prompt
|
9
|
+
#
|
10
|
+
initializeSweetAlert: () ->
|
11
|
+
try
|
12
|
+
# console.log 'sweet alert initializing...'
|
13
|
+
# sweetHTML = '<div class="sweet-overlay" tabIndex="-1"></div><div class="sweet-alert" tabIndex="-1"><div class="icon error"><span class="x-mark"><span class="line left"></span><span class="line right"></span></span></div><div class="icon warning"> <span class="body"></span> <span class="dot"></span> </div> <div class="icon info"></div> <div class="icon success"> <span class="line tip"></span> <span class="line long"></span> <div class="placeholder"></div> <div class="fix"></div> </div> <div class="icon custom"></div> <h2>Title</h2><p>Text</p><button class="cancel" tabIndex="2">Cancel</button><button class="confirm" tabIndex="1">OK</button></div>'
|
14
|
+
# sweetWrap = document.createElement('div')
|
15
|
+
# sweetWrap.innerHTML = sweetHTML
|
16
|
+
# $(document.body).append(sweetWrap)
|
17
|
+
# console.log 'sweetalert initialized!'
|
18
|
+
catch error
|
19
|
+
console.log 'sweetalert says: ' + error
|
20
|
+
|
21
|
+
|
22
|
+
prepare: ->
|
23
|
+
|
24
|
+
try
|
25
|
+
if ($('.sweet-alert').length<1)
|
26
|
+
@initializeSweetAlert()
|
27
|
+
if ($('.sweet-alert').length>0)
|
28
|
+
console.log 'sweet-alert initialized correctly!' #swal( 'pageOnLoad', 'pageOnLoad blev kaldt!', 'success')
|
29
|
+
|
30
|
+
catch error
|
31
|
+
alert 'App.Materialize did not prepare!'
|
32
|
+
console.log error
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#
|
2
|
+
# start looking on App.trigger 'ctrlf'
|
3
|
+
# looking for search-key - CTRL-F
|
4
|
+
#
|
5
|
+
$(App).on 'ctrlf', ->
|
6
|
+
|
7
|
+
#
|
8
|
+
# watch out for search key - CTRL-F
|
9
|
+
$(document).keypress (e) ->
|
10
|
+
if (e.which==6)
|
11
|
+
checkWebkitandIE=1
|
12
|
+
else
|
13
|
+
checkWebkitandIE=0
|
14
|
+
|
15
|
+
if (e.which==102 && e.ctrlKey)
|
16
|
+
checkMoz=1
|
17
|
+
else
|
18
|
+
checkMoz=0
|
19
|
+
|
20
|
+
if (checkWebkitandIE || checkMoz)
|
21
|
+
if $('input.search-list')
|
22
|
+
$('input.search-list').focus()
|
23
|
+
# console.log e
|
@@ -9,18 +9,30 @@ App.trigger = (event) ->
|
|
9
9
|
$(App).trigger(event)
|
10
10
|
|
11
11
|
#
|
12
|
-
#
|
12
|
+
# signal App
|
13
13
|
App.init = ->
|
14
14
|
#
|
15
|
-
# $( document ).trigger( "page:change" )
|
16
|
-
#
|
17
|
-
# $(document).on 'page:change', ->
|
18
|
-
# console.log 'page changed on event'
|
19
15
|
App.trigger('app:init')
|
20
|
-
|
21
|
-
|
16
|
+
#
|
17
|
+
# Try to keep users from double-clicking submit's
|
18
|
+
#
|
19
|
+
# document.addEventListener('DOMContentLoaded', disableMultipleSubmits, false);
|
20
|
+
|
21
|
+
#
|
22
|
+
# Prepare close-notice's for acting on clicks to remove div
|
23
|
+
#
|
24
|
+
$(document.body).unbind('click.close_notice')
|
25
|
+
$(document.body).on 'click.close_notice', 'a.close-notice', App.closeNotice
|
26
|
+
|
27
|
+
|
22
28
|
#
|
23
|
-
#
|
29
|
+
# signal a pageload
|
30
|
+
App.pageload = ->
|
31
|
+
App.trigger('app:pageload')
|
32
|
+
|
33
|
+
|
24
34
|
#
|
25
|
-
|
26
|
-
|
35
|
+
# closeNotice
|
36
|
+
# will close the notice DIV
|
37
|
+
App.closeNotice = (e) ->
|
38
|
+
fadeItOut $(e).closest('.alert') #.remove()
|
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
#
|
3
|
+
# standard triggers - and actions
|
4
|
+
#
|
5
|
+
$(App).on 'app:modal:open', ->
|
6
|
+
#
|
7
|
+
# mount React Components laying dormant in a modal
|
8
|
+
window.ReactRailsUJS.mountComponents()
|
9
|
+
App.trigger('app:pageload')
|
10
|
+
|
11
|
+
$(App).on 'app:pageload', ->
|
12
|
+
page = new App.Materialize()
|
13
|
+
page.prepare()
|
14
|
+
sweet = new App.SweetAlert()
|
15
|
+
sweet.prepare()
|
16
|
+
if $('table.resources_table')
|
17
|
+
rl = new App.ResourcesList($('form'))
|
18
|
+
rl.prepare()
|
19
|
+
rs = new App.ResourceForm()
|
20
|
+
rs.prepare()
|
21
|
+
fab = new App.fabDelete()
|
22
|
+
fab.prepare()
|
23
|
+
|
24
|
+
#
|
25
|
+
# PageOnChange really just calls a pageload - as of now 19-06-15
|
26
|
+
# fixed elements like SELECT's, Materialized's elements, et al.
|
27
|
+
#
|
28
|
+
# @pageOnChange = () ->
|
29
|
+
# console.log 'page changed '
|
30
|
+
# pageOnLoad()
|
31
|
+
#
|
32
|
+
# call the App.pageload
|
33
|
+
$(document).on 'page:change', ->
|
34
|
+
App.pageload()
|
data/lib/abstracted/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abstracted
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Walther H Diechmann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -270,10 +270,16 @@ files:
|
|
270
270
|
- app/assets/images/abstracted/.keep
|
271
271
|
- app/assets/javascripts/abstract_resources.js
|
272
272
|
- app/assets/javascripts/abstracted/.keep
|
273
|
-
- app/assets/javascripts/
|
273
|
+
- app/assets/javascripts/abstracted/app.fab_delete.coffee
|
274
|
+
- app/assets/javascripts/abstracted/app.materialize.coffee
|
275
|
+
- app/assets/javascripts/abstracted/app.resource_form.coffee
|
276
|
+
- app/assets/javascripts/abstracted/app.resources_list.coffee
|
277
|
+
- app/assets/javascripts/abstracted/app.shared.coffee
|
278
|
+
- app/assets/javascripts/abstracted/app.sweetalert.coffee
|
279
|
+
- app/assets/javascripts/abstracted/keypress.coffee
|
274
280
|
- app/assets/javascripts/init.js.coffee
|
275
|
-
- app/assets/javascripts/initializers.js.coffee
|
276
281
|
- app/assets/javascripts/pagescrolling.js.coffee
|
282
|
+
- app/assets/javascripts/triggers.coffee
|
277
283
|
- app/assets/stylesheets/abstract_resources.css
|
278
284
|
- app/assets/stylesheets/abstracted/.keep
|
279
285
|
- app/assets/stylesheets/scaffold.css
|
@@ -1,194 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# searchPost handles ordering search on index actions
|
3
|
-
#
|
4
|
-
@orderSearch = (url,query) ->
|
5
|
-
loader = '<div class="preloader-wrapper small active"> <div class="spinner-layer spinner-blue-only"> <div class="circle-clipper left"> <div class="circle"></div> </div><div class="gap-patch"> <div class="circle"></div> </div><div class="circle-clipper right"> <div class="circle"></div> </div> </div> </div>'
|
6
|
-
loaded_element = $('.fixed-action-btn')
|
7
|
-
setLoader( loaded_element,loader )
|
8
|
-
window.location.href= url + '?q=' + encodeURIComponent(query)
|
9
|
-
|
10
|
-
#
|
11
|
-
# deletePost handles deleting records
|
12
|
-
#
|
13
|
-
# dependencies:
|
14
|
-
# sweetalert
|
15
|
-
#
|
16
|
-
# data-url="", data-id="" - eg.
|
17
|
-
@deletePost = ($elem) ->
|
18
|
-
try
|
19
|
-
url = $elem.data('url') + "/" + $elem.data('id') + ".js"
|
20
|
-
$remove = $($elem.data('remove'))
|
21
|
-
request = $.ajax
|
22
|
-
url: url,
|
23
|
-
type: "delete",
|
24
|
-
dataType: 'html'
|
25
|
-
.done (data) ->
|
26
|
-
if $remove
|
27
|
-
$remove.hide()
|
28
|
-
closeSweetAlert($elem)
|
29
|
-
#swal("Deleted!", "Your file was successfully deleted!", "success")
|
30
|
-
.error (data) ->
|
31
|
-
$elem.show()
|
32
|
-
swal("Oops", "We couldn't connect to the server!", "error")
|
33
|
-
#
|
34
|
-
# statusCode:
|
35
|
-
#
|
36
|
-
# 200: (response,textStatus,jqXHR) ->
|
37
|
-
# closeSweetAlert()
|
38
|
-
# tellResponse response.responseText
|
39
|
-
#
|
40
|
-
#
|
41
|
-
# 301: () ->
|
42
|
-
# $elem.show()
|
43
|
-
# closeSweetAlert()
|
44
|
-
# swal "Ikke slettet!", "Posten blev ikke slettet - årsagen ikke kendt", "warning"
|
45
|
-
#
|
46
|
-
# 401: (response) ->
|
47
|
-
# tellResponse response.responseText
|
48
|
-
# closeSweetAlert()
|
49
|
-
#
|
50
|
-
# 409: (response) ->
|
51
|
-
# tellResponse response.responseText
|
52
|
-
# closeSweetAlert()
|
53
|
-
#
|
54
|
-
# 412: () ->
|
55
|
-
# closeSweetAlert()
|
56
|
-
# swal "Øv!", "Et eller andet gik galt!", "error"
|
57
|
-
|
58
|
-
catch error
|
59
|
-
swal "Hmmm", "Most unexpected! \n#{error}", "error"
|
60
|
-
|
61
|
-
#
|
62
|
-
# printPost handles printing posts either way
|
63
|
-
#
|
64
|
-
# dependencies
|
65
|
-
#
|
66
|
-
#
|
67
|
-
#
|
68
|
-
#
|
69
|
-
# <a
|
70
|
-
# class="print_post_link"
|
71
|
-
# data-ajax="get"
|
72
|
-
# data-remote="false"
|
73
|
-
# data-method="get"
|
74
|
-
# data-download="true" -- if is is a file which we should send!
|
75
|
-
# data-url="/stock_items/1/print.js"
|
76
|
-
# data-oxremote="true"
|
77
|
-
# data-name="2"
|
78
|
-
# data-id="1"
|
79
|
-
# data-paper="label"
|
80
|
-
# data-message-ok="Udskrivning af Labels bestilt!"
|
81
|
-
# data-message-error="øv"
|
82
|
-
# href="http://localhost:3000/stock_items/1/print">
|
83
|
-
# <i class="material-icons small" title="Udskriv labels">label</i>
|
84
|
-
# </a>
|
85
|
-
#
|
86
|
-
# data-url="", data-id="", data-print-action="", data-message-ok="", data-message-error=""
|
87
|
-
@printPost = (elem) ->
|
88
|
-
elem = $(elem)
|
89
|
-
url = elem.data('url') || elem.attr('href')
|
90
|
-
if elem.data('browser')=='new'
|
91
|
-
releaseLoader()
|
92
|
-
window.open url + '?' + $.param dataArgumentOn(elem)
|
93
|
-
return
|
94
|
-
|
95
|
-
oxremote = elem.data('oxremote')
|
96
|
-
if oxremote=='false'
|
97
|
-
switch elem.data('method')
|
98
|
-
when 'post', 'POST'
|
99
|
-
# elem.closest('form').submit()
|
100
|
-
$('form').submit()
|
101
|
-
when 'put', 'PUT'
|
102
|
-
console.log 'how do I put? add code in abstracted/app/assets/javascripts/initializers.js.coffee'
|
103
|
-
when 'get', 'GET'
|
104
|
-
window.location.href = elem.data('url')
|
105
|
-
else
|
106
|
-
try
|
107
|
-
jqxhr = $.ajax
|
108
|
-
url: elem.data('url') || elem.attr('href')
|
109
|
-
type: elem.data('method') || 'get'
|
110
|
-
data: dataArgumentOn(elem)
|
111
|
-
dataType: elem.data('type') || 'html'
|
112
|
-
.done (data) ->
|
113
|
-
releaseLoader()
|
114
|
-
if elem.data('download')
|
115
|
-
getDownload(jqxhr,data)
|
116
|
-
else
|
117
|
-
$(document.body).append(data)
|
118
|
-
|
119
|
-
.fail (response,status) ->
|
120
|
-
releaseLoader()
|
121
|
-
if jqxhr.state=='rejected'
|
122
|
-
reportError('Der er ingen forbindelse til serveren - prøv lidt senere!')
|
123
|
-
else
|
124
|
-
$(document.body).append(response.responseText)
|
125
|
-
|
126
|
-
catch e
|
127
|
-
console.log e
|
128
|
-
|
129
|
-
return false
|
130
|
-
|
131
|
-
@getDownload = (xhr,data) ->
|
132
|
-
# Check if a filename is existing on the response headers.
|
133
|
-
filename = ""
|
134
|
-
disposition = xhr.getResponseHeader("Content-Disposition")
|
135
|
-
if disposition && disposition.indexOf("attachment") != -1
|
136
|
-
filenameRegex = /filename[^;=\n]*=(([""]).*?\2|[^;\n]*)/
|
137
|
-
matches = filenameRegex.exec(disposition)
|
138
|
-
if matches != null && matches[1]
|
139
|
-
filename = matches[1].replace(/[""]/g, "")
|
140
|
-
#
|
141
|
-
type = xhr.getResponseHeader("Content-Type")
|
142
|
-
console.log 'getDownload ' + type
|
143
|
-
blob = new Blob([data], {type: type})
|
144
|
-
#
|
145
|
-
if typeof window.navigator.msSaveBlob != "undefined"
|
146
|
-
# // IE workaround for "HTML7007: One or more blob URLs were revoked by closing the blob for which they were created. These URLs will no longer resolve as the data backing the URL has been freed.
|
147
|
-
window.navigator.msSaveBlob(blob, filename)
|
148
|
-
else
|
149
|
-
URL = window.URL || window.webkitURL
|
150
|
-
downloadUrl = URL.createObjectURL(blob)
|
151
|
-
downloadUrl.oneTimeOnly = true
|
152
|
-
#
|
153
|
-
if filename
|
154
|
-
# // Use HTML5 a[download] attribute to specify filename.
|
155
|
-
a = document.createElement("a")
|
156
|
-
# // Safari doesn"t support this yet.
|
157
|
-
if typeof a.download == "undefined"
|
158
|
-
window.location = downloadUrl
|
159
|
-
else
|
160
|
-
a.href = downloadUrl
|
161
|
-
a.download = filename
|
162
|
-
document.body.appendChild(a)
|
163
|
-
a.click()
|
164
|
-
else
|
165
|
-
window.location = downloadUrl
|
166
|
-
|
167
|
-
#
|
168
|
-
# setTimeout () ->
|
169
|
-
# URL.revokeObjectURL(downloadUrl)
|
170
|
-
# , 100
|
171
|
-
#
|
172
|
-
#
|
173
|
-
#
|
174
|
-
# blob=new Blob([data])
|
175
|
-
# link=document.createElement('a')
|
176
|
-
# link.href=window.URL.createObjectURL(blob)
|
177
|
-
# # link.target='_blank';
|
178
|
-
# link.download="oxen_"+new Date()+".pdf"
|
179
|
-
# link.click()
|
180
|
-
|
181
|
-
# @printPost = ($elem) ->
|
182
|
-
# try
|
183
|
-
# url = $elem.data('url') + "/" + $elem.data('id') + '/' + $elem.data('print-action') + ".js"
|
184
|
-
# request = $.ajax
|
185
|
-
# url: url,
|
186
|
-
# type: "post",
|
187
|
-
# data: $elem.data('data'),
|
188
|
-
# dataType: 'html'
|
189
|
-
# .done (data) ->
|
190
|
-
# releaseLoader($elem.closest('.loader_container'))
|
191
|
-
# $(document.body).append(data)
|
192
|
-
# .error (data) ->
|
193
|
-
# releaseLoader($elem.closest('.loader_container'))
|
194
|
-
# $(document.body).append(data)
|