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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d3a0ce5c6254187f8b893aa56bdda5d66df2ca19
4
- data.tar.gz: 82a66de9184904290c3eb4f73043dcb06339395f
3
+ metadata.gz: e72afba4f1d8fe6ce18b38c9a1cecda8d75d7f60
4
+ data.tar.gz: 254e5948dff18746e4e672c5256cdad4d4f2575c
5
5
  SHA512:
6
- metadata.gz: 46ac5a933a363cfe6b3d74683ebfd2c13bb3197db38e7780142571aef5a76b6fad353174942a813d8739b96c0c75ed93b4c4b27c4577063c8a6b73a4ecffa762
7
- data.tar.gz: f20950c0728243d91d0f362101ea7c06e56d2e49974c34aca4ab646d5b504b133c1ea4ffa86663414f15d35d3ba13df88b174dcd180e16e39771ca7d27464b33
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
- //= require_tree .
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