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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e72afba4f1d8fe6ce18b38c9a1cecda8d75d7f60
|
4
|
+
data.tar.gz: 254e5948dff18746e4e672c5256cdad4d4f2575c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c026943de5beeef8a459aa9b09293bf00e60f44628fef152401e753419bfdd3b434998d35dc01993e8925e9dded745dd57b979292ddfff01a09a4c952a5aa532
|
7
|
+
data.tar.gz: 8675aa8285ddc8b5af4b61296d3d5229c3b00d6e584742e298eb821c55349cd2a8f660cc1a0fbe05138ccd5f7fd464dfb1e5f06273518f5f72cb956f7608773a
|
@@ -4,7 +4,11 @@
|
|
4
4
|
//= require selectize/dist/js/standalone/selectize.js
|
5
5
|
// require typeahead
|
6
6
|
//= require sweetalert
|
7
|
-
|
7
|
+
// require_tree .
|
8
|
+
//= require init
|
9
|
+
//= require triggers
|
10
|
+
//= require pagescrolling
|
11
|
+
//= require_tree ./abstracted
|
8
12
|
|
9
13
|
|
10
14
|
// <!DOCTYPE html>
|
@@ -0,0 +1,161 @@
|
|
1
|
+
class App.fabDelete
|
2
|
+
constructor: (@el) ->
|
3
|
+
# initialize some stuff
|
4
|
+
@shared = new App.Shared()
|
5
|
+
|
6
|
+
|
7
|
+
|
8
|
+
closeSweetAlert: ($elem=null) =>
|
9
|
+
try
|
10
|
+
unless $elem == undefined
|
11
|
+
$elem.show()
|
12
|
+
swal.close()
|
13
|
+
catch error
|
14
|
+
$('.sweet-overlay').hide()
|
15
|
+
$('.sweet-alert').hide()
|
16
|
+
|
17
|
+
|
18
|
+
#
|
19
|
+
# deletePost handles deleting records
|
20
|
+
#
|
21
|
+
# dependencies:
|
22
|
+
# sweetalert
|
23
|
+
#
|
24
|
+
# data-url="", data-id="" - eg.
|
25
|
+
deletePost: ($elem) =>
|
26
|
+
try
|
27
|
+
url = $elem.data('url') + "/" + $elem.data('id') + ".js"
|
28
|
+
$remove = $($elem.data('remove'))
|
29
|
+
request = $.ajax
|
30
|
+
url: url,
|
31
|
+
type: "delete",
|
32
|
+
dataType: 'html'
|
33
|
+
.done (data) ->
|
34
|
+
if $remove
|
35
|
+
$remove.hide()
|
36
|
+
@closeSweetAlert($elem)
|
37
|
+
#swal("Deleted!", "Your file was successfully deleted!", "success")
|
38
|
+
.error (data) ->
|
39
|
+
$elem.show()
|
40
|
+
swal("Oops", "We couldn't connect to the server!", "error")
|
41
|
+
#
|
42
|
+
# statusCode:
|
43
|
+
#
|
44
|
+
# 200: (response,textStatus,jqXHR) ->
|
45
|
+
# closeSweetAlert()
|
46
|
+
# tellResponse response.responseText
|
47
|
+
#
|
48
|
+
#
|
49
|
+
# 301: () ->
|
50
|
+
# $elem.show()
|
51
|
+
# closeSweetAlert()
|
52
|
+
# swal "Ikke slettet!", "Posten blev ikke slettet - årsagen ikke kendt", "warning"
|
53
|
+
#
|
54
|
+
# 401: (response) ->
|
55
|
+
# tellResponse response.responseText
|
56
|
+
# closeSweetAlert()
|
57
|
+
#
|
58
|
+
# 409: (response) ->
|
59
|
+
# tellResponse response.responseText
|
60
|
+
# closeSweetAlert()
|
61
|
+
#
|
62
|
+
# 412: () ->
|
63
|
+
# closeSweetAlert()
|
64
|
+
# swal "Øv!", "Et eller andet gik galt!", "error"
|
65
|
+
|
66
|
+
catch error
|
67
|
+
swal "Hmmm", "Most unexpected! \n#{error}", "error"
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
#
|
72
|
+
# handleFABLinks
|
73
|
+
# handles click on the fab_button
|
74
|
+
#
|
75
|
+
handleFABLinks: (e) =>
|
76
|
+
e.preventDefault()
|
77
|
+
e.stopPropagation()
|
78
|
+
elem = $(e.currentTarget)
|
79
|
+
if elem.data('browser')=='new'
|
80
|
+
window.open elem.data('url')
|
81
|
+
return
|
82
|
+
|
83
|
+
loader = '<div class="preloader-wrapper medium 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>'
|
84
|
+
@shared.setLoader( $(elem).closest('.fixed-action-btn'),loader)
|
85
|
+
oxremote = elem.data('oxremote')
|
86
|
+
if (oxremote=='false' or oxremote==false)
|
87
|
+
switch elem.data('method')
|
88
|
+
when 'post', 'POST'
|
89
|
+
# elem.closest('form').submit()
|
90
|
+
$('form').submit()
|
91
|
+
when 'put', 'PUT'
|
92
|
+
console.log 'how do I put? add code in abstracted/app/assets/javascripts/initializers.js.coffee'
|
93
|
+
when 'get', 'GET'
|
94
|
+
window.location.href = elem.data('url')
|
95
|
+
else
|
96
|
+
jqxhr = $.ajax
|
97
|
+
url: elem.data('url') || elem.attr('href')
|
98
|
+
type: elem.data('method') || 'get'
|
99
|
+
data: @shared.dataArgumentOn(elem)
|
100
|
+
dataType: elem.data('type') || 'html'
|
101
|
+
.done (data) =>
|
102
|
+
@shared.releaseLoader()
|
103
|
+
if elem.data('modal')
|
104
|
+
$(elem.data('modal')).html(data).openModal()
|
105
|
+
else
|
106
|
+
$(document.body).append(data)
|
107
|
+
.error (data) =>
|
108
|
+
@shared.releaseLoader()
|
109
|
+
$(document.body).append(data)
|
110
|
+
return false
|
111
|
+
|
112
|
+
|
113
|
+
#
|
114
|
+
# handleDeleteLinks
|
115
|
+
# initializes the tags classed with '.delete_link' to verify deleting an issue
|
116
|
+
#
|
117
|
+
handleDeleteLinks: (e) =>
|
118
|
+
e.preventDefault()
|
119
|
+
e.stopPropagation()
|
120
|
+
$elem = $(e.currentTarget)
|
121
|
+
$elem.hide()
|
122
|
+
|
123
|
+
$('.sweet-overlay').show()
|
124
|
+
swal
|
125
|
+
title: "Are you sure?",
|
126
|
+
text: "Are you sure that you want to delete this photo?",
|
127
|
+
type: "warning",
|
128
|
+
animation: "slide-from-bottom",
|
129
|
+
showLoaderOnConfirm: true,
|
130
|
+
showCancelButton: true,
|
131
|
+
closeOnConfirm: false,
|
132
|
+
confirmButtonText: "Yes, delete it!",
|
133
|
+
confirmButtonColor: "#ec6c62",
|
134
|
+
(confirmed) ->
|
135
|
+
if !confirmed
|
136
|
+
@closeSweetAlert($elem)
|
137
|
+
else
|
138
|
+
@deletePost($elem)
|
139
|
+
return false
|
140
|
+
|
141
|
+
|
142
|
+
prepare: =>
|
143
|
+
|
144
|
+
try
|
145
|
+
|
146
|
+
$(document.body).unbind('click.delete')
|
147
|
+
$(document.body).unbind('click.fab')
|
148
|
+
|
149
|
+
#
|
150
|
+
# Prepare delete_link's for acting on clicks to delete posts
|
151
|
+
#
|
152
|
+
$(document.body).on 'click.delete', 'a.delete_link, a.delete_item', @handleDeleteLinks
|
153
|
+
|
154
|
+
#
|
155
|
+
# Add event on the FAB (fixed action button)
|
156
|
+
#
|
157
|
+
$(document.body).on 'click.fab', 'a.fab-button', @handleFABLinks
|
158
|
+
|
159
|
+
catch error
|
160
|
+
alert 'App.fabDelete did not prepare!'
|
161
|
+
console.log error
|
@@ -0,0 +1,32 @@
|
|
1
|
+
class App.Materialize
|
2
|
+
constructor: (@el) ->
|
3
|
+
# initialize some stuff
|
4
|
+
|
5
|
+
prepare: ->
|
6
|
+
|
7
|
+
try
|
8
|
+
#
|
9
|
+
# Initialize the 'hamburger'
|
10
|
+
#
|
11
|
+
$(".button-collapse").sideNav();
|
12
|
+
|
13
|
+
#
|
14
|
+
# Initialize collapsible (uncomment the line below if you use the dropdown variation)
|
15
|
+
#
|
16
|
+
$('.collapsible').collapsible
|
17
|
+
accordion : true # A setting that changes the collapsible behavior to expandable instead of the default accordion style
|
18
|
+
|
19
|
+
#
|
20
|
+
# make drop-downs react nicely
|
21
|
+
#
|
22
|
+
$(".dropdown-button").dropdown()
|
23
|
+
|
24
|
+
#
|
25
|
+
# prepare for tabbed display of tabbed UL's
|
26
|
+
#
|
27
|
+
$('ul.tabs').tabs()
|
28
|
+
$('.materialboxed').materialbox()
|
29
|
+
|
30
|
+
catch error
|
31
|
+
alert 'App.Materialize did not prepare!'
|
32
|
+
console.log error
|
@@ -0,0 +1,59 @@
|
|
1
|
+
class App.ResourceForm
|
2
|
+
constructor: (@el) ->
|
3
|
+
# initialize some stuff
|
4
|
+
inputForm = null
|
5
|
+
|
6
|
+
|
7
|
+
#
|
8
|
+
# make sure fields with values do not have their labels obscuring your view
|
9
|
+
#
|
10
|
+
setLabels: (selector) ->
|
11
|
+
$(selector).each () ->
|
12
|
+
try
|
13
|
+
fld = '#'+$(this).attr('for')
|
14
|
+
$(this).addClass('active') unless $(fld)[0].value.nil?
|
15
|
+
catch
|
16
|
+
#console.log this
|
17
|
+
|
18
|
+
#
|
19
|
+
# initializeForm
|
20
|
+
# on pages with a FORM element - like show, new and edit
|
21
|
+
# prepare the FORM element
|
22
|
+
#
|
23
|
+
initializeForm: (f) ->
|
24
|
+
@inputForm = f
|
25
|
+
#
|
26
|
+
# Initialize SELECT's
|
27
|
+
#
|
28
|
+
$('select').each () ->
|
29
|
+
# remove span.caret's from previous 'runs' - however that happens
|
30
|
+
$(this).parent().parent().find('span.caret').remove()
|
31
|
+
$(this).material_select()
|
32
|
+
|
33
|
+
#
|
34
|
+
# make labels on fields with content move out of the way
|
35
|
+
#
|
36
|
+
@setLabels('.input-field label')
|
37
|
+
|
38
|
+
#
|
39
|
+
# Initialize INPUT TYPE='DATE'
|
40
|
+
#
|
41
|
+
# %input.datepicker{ type:"date" }
|
42
|
+
#
|
43
|
+
$('.datepicker').pickadate
|
44
|
+
selectMonths: true, # Creates a dropdown to control month
|
45
|
+
selectYears: 15 # Creates a dropdown of 15 years to control year
|
46
|
+
|
47
|
+
|
48
|
+
prepare: ->
|
49
|
+
|
50
|
+
try
|
51
|
+
#
|
52
|
+
# If this page has FORM element(s)
|
53
|
+
#
|
54
|
+
$('form').first().map (k,f) =>
|
55
|
+
@initializeForm(f)
|
56
|
+
|
57
|
+
catch error
|
58
|
+
alert 'App.ResourceForm did not prepare!'
|
59
|
+
console.log error
|
@@ -0,0 +1,239 @@
|
|
1
|
+
class App.ResourcesList
|
2
|
+
|
3
|
+
constructor: (@el) ->
|
4
|
+
# initialize some stuff
|
5
|
+
@inputForm = @el
|
6
|
+
#
|
7
|
+
# printPost handles printing posts either way
|
8
|
+
#
|
9
|
+
# dependencies
|
10
|
+
#
|
11
|
+
#
|
12
|
+
#
|
13
|
+
#
|
14
|
+
# <a
|
15
|
+
# class="print_post_link"
|
16
|
+
# data-ajax="get"
|
17
|
+
# data-remote="false"
|
18
|
+
# data-method="get"
|
19
|
+
# data-download="true" -- if is is a file which we should send!
|
20
|
+
# data-url="/stock_items/1/print.js"
|
21
|
+
# data-oxremote="true"
|
22
|
+
# data-name="2"
|
23
|
+
# data-id="1"
|
24
|
+
# data-paper="label"
|
25
|
+
# data-message-ok="Udskrivning af Labels bestilt!"
|
26
|
+
# data-message-error="øv"
|
27
|
+
# href="http://localhost:3000/stock_items/1/print">
|
28
|
+
# <i class="material-icons small" title="Udskriv labels">label</i>
|
29
|
+
# </a>
|
30
|
+
#
|
31
|
+
# data-url="", data-id="", data-print-action="", data-message-ok="", data-message-error=""
|
32
|
+
printPost: (elem) ->
|
33
|
+
elem = $(elem)
|
34
|
+
url = elem.data('url') || elem.attr('href')
|
35
|
+
if elem.data('browser')=='new'
|
36
|
+
App.Shared.releaseLoader()
|
37
|
+
window.open url + '?' + $.param dataArgumentOn(elem)
|
38
|
+
return
|
39
|
+
|
40
|
+
oxremote = elem.data('oxremote')
|
41
|
+
if oxremote=='false'
|
42
|
+
switch elem.data('method')
|
43
|
+
when 'post', 'POST'
|
44
|
+
# elem.closest('form').submit()
|
45
|
+
$('form').submit()
|
46
|
+
when 'put', 'PUT'
|
47
|
+
console.log 'how do I put? add code in abstracted/app/assets/javascripts/initializers.js.coffee'
|
48
|
+
when 'get', 'GET'
|
49
|
+
window.location.href = elem.data('url')
|
50
|
+
else
|
51
|
+
try
|
52
|
+
jqxhr = $.ajax
|
53
|
+
url: elem.data('url') || elem.attr('href')
|
54
|
+
type: elem.data('method') || 'get'
|
55
|
+
data: dataArgumentOn(elem)
|
56
|
+
dataType: elem.data('type') || 'html'
|
57
|
+
.done (data) ->
|
58
|
+
App.Shared.releaseLoader()
|
59
|
+
if elem.data('download')
|
60
|
+
App.Shared.getDownload(jqxhr,data)
|
61
|
+
else
|
62
|
+
$(document.body).append(data)
|
63
|
+
|
64
|
+
.fail (response,status) ->
|
65
|
+
App.Shared.releaseLoader()
|
66
|
+
if jqxhr.state=='rejected'
|
67
|
+
App.Shared.reportError('Der er ingen forbindelse til serveren - prøv lidt senere!')
|
68
|
+
else
|
69
|
+
$(document.body).append(response.responseText)
|
70
|
+
|
71
|
+
catch e
|
72
|
+
console.log e
|
73
|
+
|
74
|
+
return false
|
75
|
+
|
76
|
+
#
|
77
|
+
# setTimeout () ->
|
78
|
+
# URL.revokeObjectURL(downloadUrl)
|
79
|
+
# , 100
|
80
|
+
#
|
81
|
+
#
|
82
|
+
#
|
83
|
+
# blob=new Blob([data])
|
84
|
+
# link=document.createElement('a')
|
85
|
+
# link.href=window.URL.createObjectURL(blob)
|
86
|
+
# # link.target='_blank';
|
87
|
+
# link.download="oxen_"+new Date()+".pdf"
|
88
|
+
# link.click()
|
89
|
+
|
90
|
+
# @printPost = ($elem) ->
|
91
|
+
# try
|
92
|
+
# url = $elem.data('url') + "/" + $elem.data('id') + '/' + $elem.data('print-action') + ".js"
|
93
|
+
# request = $.ajax
|
94
|
+
# url: url,
|
95
|
+
# type: "post",
|
96
|
+
# data: $elem.data('data'),
|
97
|
+
# dataType: 'html'
|
98
|
+
# .done (data) ->
|
99
|
+
# releaseLoader($elem.closest('.loader_container'))
|
100
|
+
# $(document.body).append(data)
|
101
|
+
# .error (data) ->
|
102
|
+
# releaseLoader($elem.closest('.loader_container'))
|
103
|
+
# $(document.body).append(data)
|
104
|
+
|
105
|
+
#
|
106
|
+
# searchPost handles ordering search on index actions
|
107
|
+
#
|
108
|
+
orderSearch: (url,query) ->
|
109
|
+
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>'
|
110
|
+
loaded_element = $('.fixed-action-btn')
|
111
|
+
App.Shared.setLoader( loaded_element,loader )
|
112
|
+
window.location.href= url + '?q=' + encodeURIComponent(query)
|
113
|
+
|
114
|
+
|
115
|
+
#
|
116
|
+
# handleAttachLinks
|
117
|
+
# allows for attaching/detaching resources from their parents - like: /admin/users/2/printers/3/attach.js
|
118
|
+
#
|
119
|
+
handleAttachLinks: (e) ->
|
120
|
+
e.preventDefault()
|
121
|
+
e.stopPropagation()
|
122
|
+
|
123
|
+
$elem = $(e.currentTarget)
|
124
|
+
request = $.ajax
|
125
|
+
url: $elem.attr('href'),
|
126
|
+
type: "get",
|
127
|
+
dataType: 'html'
|
128
|
+
.done (data) ->
|
129
|
+
$( $elem[0].parentElement).html(data)
|
130
|
+
|
131
|
+
.error (data) ->
|
132
|
+
swal("Oops", "We couldn't connect to the server!", "error")
|
133
|
+
return false
|
134
|
+
|
135
|
+
#
|
136
|
+
# handleActivateLinks
|
137
|
+
# allows for activating/deactivating resources - like: /admin/users/2/activate
|
138
|
+
#
|
139
|
+
handleActivateLinks: (e) ->
|
140
|
+
e.preventDefault()
|
141
|
+
e.stopPropagation()
|
142
|
+
|
143
|
+
$elem = $(e.currentTarget)
|
144
|
+
request = $.ajax
|
145
|
+
url: $elem.attr('href'),
|
146
|
+
type: "get",
|
147
|
+
dataType: 'html'
|
148
|
+
.done (data) ->
|
149
|
+
$( $elem[0].parentElement).html(data)
|
150
|
+
|
151
|
+
.error (data) ->
|
152
|
+
swal("Oops", "We couldn't connect to the server!", "error")
|
153
|
+
return false
|
154
|
+
|
155
|
+
|
156
|
+
#
|
157
|
+
# handlePreferredLinks
|
158
|
+
# allows for activating/deactivating resources - like: /admin/users/2/activate
|
159
|
+
#
|
160
|
+
handlePreferredLinks: (e) ->
|
161
|
+
e.preventDefault()
|
162
|
+
e.stopPropagation()
|
163
|
+
|
164
|
+
$elem = $(e.currentTarget)
|
165
|
+
request = $.ajax
|
166
|
+
url: $elem.attr('href'),
|
167
|
+
type: "get",
|
168
|
+
dataType: 'html'
|
169
|
+
.done (data) ->
|
170
|
+
# here we have to write all the existing preferred ones
|
171
|
+
$.when $('i.preferred').each (k,e) ->
|
172
|
+
$e = $(e)
|
173
|
+
$( $e[0].parentElement).html( data.replace /{{id}}/, $e.data('id'))
|
174
|
+
# $( $elem[0].parentElement).html(data)
|
175
|
+
.then $( $elem[0].parentElement).html('<i class="preferred material-icons green-text" data-id="' + $elem.data('id') + '">bookmark</i>')
|
176
|
+
|
177
|
+
.error (data) ->
|
178
|
+
swal("Oops", "We couldn't connect to the server!", "error")
|
179
|
+
return false
|
180
|
+
|
181
|
+
#
|
182
|
+
# handlePrintLinks
|
183
|
+
# initializes the tags classed with '.print_post_link' to print a post
|
184
|
+
#
|
185
|
+
handlePrintLinks: (e) ->
|
186
|
+
e.preventDefault()
|
187
|
+
e.stopPropagation()
|
188
|
+
|
189
|
+
$elem = $(e.currentTarget)
|
190
|
+
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>'
|
191
|
+
loaded_element = $elem.closest('.loader_container')
|
192
|
+
App.Shared.setLoader( loaded_element,loader )
|
193
|
+
@printPost($elem)
|
194
|
+
return false
|
195
|
+
|
196
|
+
#
|
197
|
+
# starting a search - and making some noise about it!
|
198
|
+
#
|
199
|
+
searchKey: (e) =>
|
200
|
+
if e.keyCode == 13
|
201
|
+
e.preventDefault()
|
202
|
+
e.stopPropagation()
|
203
|
+
$elem = $('input.search-list')
|
204
|
+
@orderSearch(@inputForm.action, $elem.val())
|
205
|
+
|
206
|
+
#
|
207
|
+
# starting a search - and making some noise about it!
|
208
|
+
#
|
209
|
+
searchClick: (e) =>
|
210
|
+
e.preventDefault()
|
211
|
+
e.stopPropagation()
|
212
|
+
$elem = $('input.search-list')
|
213
|
+
@orderSearch(@inputForm.action, $elem.val())
|
214
|
+
|
215
|
+
|
216
|
+
prepare: ->
|
217
|
+
|
218
|
+
try
|
219
|
+
$(document.body).unbind('click.print')
|
220
|
+
$(document.body).unbind('click.attach')
|
221
|
+
$(document.body).unbind('click.activate')
|
222
|
+
$(document.body).unbind('click.prefer')
|
223
|
+
|
224
|
+
$(document.body).on 'click.print', 'a.print_post_link, a.print_item', @handlePrintLinks
|
225
|
+
$(document.body).on 'keydown.search', 'input.search-list', @searchKey
|
226
|
+
$(document.body).on 'click.search', 'form a.search-list[type="submit"]', @searchClick
|
227
|
+
|
228
|
+
#
|
229
|
+
# If this page has a resources_list
|
230
|
+
#
|
231
|
+
$('table.resources_table').map (k,t) ->
|
232
|
+
$(document.body).on 'click.attach', 'a.attached, a.detached', @handleAttachLinks
|
233
|
+
$(document.body).on 'click.activate', 'a.activated, a.deactivated', @handleActivateLinks
|
234
|
+
$(document.body).on 'click.prefer', 'a.preferred, a.deferred', @handlePreferredLinks
|
235
|
+
scrollTable(t)
|
236
|
+
|
237
|
+
catch error
|
238
|
+
alert 'App.ResourcesList did not prepare!'
|
239
|
+
console.log error
|