bastion 3.2.2 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,11 +6,11 @@
6
6
  //
7
7
  // <div ng-app="app">
8
8
  // <div ng-controller="mainCtrl">
9
- // <form ng-attr-action="/uploads"
10
- // ng-upload="completed(content)">
9
+ // <form ng-attr-action="/uploads"
10
+ // ng-upload="completed(content)">
11
11
  // ng-upload-loading="loading()"
12
12
  // <input type="file" name="avatar"></input>
13
- // <input type="submit" value="Upload"
13
+ // <input type="submit" value="Upload"
14
14
  // ng-disabled="$isUploading"></input>
15
15
  // </form>
16
16
  // </div>
@@ -92,7 +92,8 @@ angular.module('ngUpload', [])
92
92
  // // add the Rails CSRF hidden input to form
93
93
  // enableRailsCsrf: bool
94
94
  // }
95
- var fn = attrs.ngUpload ? $parse(attrs.ngUpload) : angular.noop;
95
+ var fn = attrs.ngUpload ? $parse(attrs.ngUpload) : null;
96
+ var errorCatcher = attrs.errorCatcher ? $parse(attrs.errorCatcher) : null;
96
97
  var loading = attrs.ngUploadLoading ? $parse(attrs.ngUploadLoading) : null;
97
98
 
98
99
  if ( attrs.hasOwnProperty( "uploadOptionsConvertHidden" ) ) {
@@ -136,12 +137,21 @@ angular.module('ngUpload', [])
136
137
 
137
138
  setLoadingState(false);
138
139
  // Start upload
139
- element.bind('submit', function uploadStart() {
140
+ element.bind('submit', function uploadStart($event) {
140
141
  var formController = scope[attrs.name];
141
142
  // if form is invalid don't submit (e.g. keypress 13)
142
- if(formController && formController.$invalid) return false;
143
+ if(formController && formController.$invalid) {
144
+ $event.preventDefault();
145
+ return false;
146
+ }
143
147
  // perform check before submit file
144
- if (options.beforeSubmit && options.beforeSubmit(scope, {}) == false) return false;
148
+ if (options.beforeSubmit && options.beforeSubmit(scope, {}) === false) {
149
+ if(!scope.$$phase){
150
+ scope.$apply();
151
+ }
152
+ $event.preventDefault();
153
+ return false;
154
+ }
145
155
 
146
156
  // bind load after submit to prevent initial load triggering uploadEnd
147
157
  iframe.bind('load', uploadEnd);
@@ -181,24 +191,53 @@ angular.module('ngUpload', [])
181
191
  setLoadingState(false);
182
192
  }
183
193
  // Get iframe body contents
184
- var bodyContent = (iframe[0].contentDocument ||
185
- iframe[0].contentWindow.document).body;
186
- var content;
187
194
  try {
188
- content = angular.fromJson(bodyContent.innerText || bodyContent.textContent);
189
- } catch (e) {
190
- // Fall back to html if json parse failed
191
- content = bodyContent.innerHTML;
192
- $log.warn('Response is not valid JSON');
193
- }
194
- // if outside a digest cycle, execute the upload response function in the active scope
195
- // else execute the upload response function in the current digest
196
- if (!scope.$$phase) {
197
- scope.$apply(function () {
198
- fn(scope, { content: content});
199
- });
200
- } else {
201
- fn(scope, { content: content});
195
+ var bodyContent = (iframe[0].contentDocument ||
196
+ iframe[0].contentWindow.document).body;
197
+
198
+ var content;
199
+ try {
200
+ content = angular.fromJson(bodyContent.innerText || bodyContent.textContent);
201
+ if (!scope.$$phase) {
202
+ scope.$apply(function () {
203
+ fn(scope, { content: content});
204
+ });
205
+ } else {
206
+ fn(scope, { content: content});
207
+ }
208
+ } catch (e) {
209
+ // Fall back to html if json parse failed
210
+ content = bodyContent.innerHTML;
211
+ var error = 'ng-upload: Response is not valid JSON';
212
+ $log.warn(error);
213
+
214
+ if ( errorCatcher ){
215
+ if (!scope.$$phase) {
216
+ scope.$apply(function () {
217
+ errorCatcher(scope, { error: error});
218
+ });
219
+ } else {
220
+ errorCatcher(scope, { error: error});
221
+ }
222
+ }
223
+
224
+ }
225
+ // if outside a digest cycle, execute the upload response function in the active scope
226
+ // else execute the upload response function in the current digest
227
+
228
+ } catch (error) {
229
+ $log.warn('ng-upload: Server error');
230
+
231
+ if ( errorCatcher ){
232
+ if (!scope.$$phase) {
233
+ scope.$apply(function () {
234
+ errorCatcher(scope, { error: error});
235
+ });
236
+ } else {
237
+ errorCatcher(scope, { error: error});
238
+ }
239
+ }
240
+
202
241
  }
203
242
  }
204
243
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bastion
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.2
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric D Helms
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-05-27 00:00:00.000000000 Z
12
+ date: 2016-07-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: angular-rails-templates
@@ -140,6 +140,7 @@ files:
140
140
  - app/assets/javascripts/bastion/i18n/zanata.xml
141
141
  - app/assets/javascripts/bastion/layouts/details-nutupane.html
142
142
  - app/assets/javascripts/bastion/layouts/nutupane.html
143
+ - app/assets/javascripts/bastion/layouts/panel.html
143
144
  - app/assets/javascripts/bastion/layouts/select-all-results.html
144
145
  - app/assets/javascripts/bastion/menu/menu-expander.service.js
145
146
  - app/assets/javascripts/bastion/menu/menu.module.js