abstracted 0.2.2 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|