Browse Source

Build #2713

pull/2717/head
jlukic 9 years ago
parent
commit
56392443ff
7 changed files with 89 additions and 63 deletions
  1. 50
      dist/components/api.js
  2. 2
      dist/components/api.min.js
  3. 15
      dist/components/popup.js
  4. 2
      dist/components/popup.min.js
  5. 65
      dist/semantic.js
  6. 10
      dist/semantic.min.js
  7. 8
      src/definitions/behaviors/api.js

50
dist/components/api.js

@ -293,7 +293,7 @@ $.api = $.fn.api = function(parameters) {
}
},
validResponse: function(response) {
if( settings.dataType !== 'json' || !$.isFunction(settings.successTest) ) {
if( (settings.dataType !== 'json' && settings.dataType !== 'jsonp') || !$.isFunction(settings.successTest) ) {
module.verbose('Response is not JSON, skipping validation', settings.successTest, response);
return true;
}
@ -451,13 +451,13 @@ $.api = $.fn.api = function(parameters) {
},
xhr: {
always: function() {
// calculate if loading time was below minimum threshold
// nothing special
},
done: function(response, textStatus, xhr) {
var
context = this,
elapsedTime = (new Date().getTime() - requestStartTime),
timeLeft = (settings.loadingDuration - elapsedTime),
context = this,
elapsedTime = (new Date().getTime() - requestStartTime),
timeLeft = (settings.loadingDuration - elapsedTime),
translatedResponse = ( $.isFunction(settings.onResponse) )
? settings.onResponse.call(context, $.extend(true, {}, response))
: false
@ -475,7 +475,7 @@ $.api = $.fn.api = function(parameters) {
}
setTimeout(function() {
if( module.is.validResponse(response) ) {
module.request.resolveWith(context, [response]);
module.request.resolveWith(context, [response, xhr]);
}
else {
module.request.rejectWith(context, [xhr, 'invalid']);
@ -506,10 +506,6 @@ $.api = $.fn.api = function(parameters) {
}
},
request: {
complete: function(response) {
module.remove.loading();
settings.onComplete.call(context, response, $module);
},
done: function(response) {
module.debug('Successful API Response', response);
if(settings.cache === 'local' && url) {
@ -518,17 +514,18 @@ $.api = $.fn.api = function(parameters) {
}
settings.onSuccess.call(context, response, $module);
},
complete: function(xhr) {
var
response = module.get.responseFromXHR(xhr)
;
module.remove.loading();
settings.onComplete.call(context, response, $module, xhr);
},
fail: function(xhr, status, httpMessage) {
var
// pull response from xhr if available
response = $.isPlainObject(xhr)
? module.decode.json(xhr.responseText)
: false,
errorMessage = ($.isPlainObject(response) && response.error !== undefined)
? response.error // use json error message
: (settings.error[status] !== undefined) // use server error message
? settings.error[status]
: httpMessage
response = module.get.responseFromXHR(xhr),
errorMessage = module.get.errorFromRequest(response, status, httpMessage)
;
if(status == 'aborted') {
module.debug('XHR Aborted (Most likely caused by page navigation or CORS Policy)', status, httpMessage);
@ -538,7 +535,6 @@ $.api = $.fn.api = function(parameters) {
module.debug('JSON did not pass success test. A server-side error has most likely occurred', response);
}
else if(status == 'error') {
if(xhr !== undefined) {
module.debug('XHR produced a server error', status, httpMessage);
// make sure we have an error to display to console
@ -656,6 +652,22 @@ $.api = $.fn.api = function(parameters) {
},
get: {
responseFromXHR: function(xhr) {
return $.isPlainObject(xhr)
? (settings.dataType == 'json' || settings.dataType == 'jsonp')
? module.decode.json(xhr.responseText)
: xhr.responseText
: false
;
},
errorFromRequest: function(response, status, httpMessage) {
return ($.isPlainObject(response) && response.error !== undefined)
? response.error // use json error message
: (settings.error[status] !== undefined) // use server error message
? settings.error[status]
: httpMessage
;
},
request: function() {
return module.request || false;
},

2
dist/components/api.min.js
File diff suppressed because it is too large
View File

15
dist/components/popup.js

@ -22,7 +22,7 @@ $.fn.popup = function(parameters) {
moduleSelector = $allModules.selector || '',
hasTouch = ('ontouchstart' in document.documentElement),
hasTouch = (true),
time = new Date().getTime(),
performance = [],
@ -156,7 +156,9 @@ $.fn.popup = function(parameters) {
: settings.delay
;
clearTimeout(module.hideTimer);
module.showTimer = setTimeout(module.show, delay);
if(!openedWithTouch) {
module.showTimer = setTimeout(module.show, delay);
}
},
end: function() {
var
@ -169,7 +171,7 @@ $.fn.popup = function(parameters) {
},
touchstart: function(event) {
openedWithTouch = true;
module.event.start();
module.show();
},
resize: function() {
if( module.is.visible() ) {
@ -279,7 +281,6 @@ $.fn.popup = function(parameters) {
show: function(callback) {
callback = callback || function(){};
module.debug('Showing pop-up', settings.transition);
if(module.is.hidden() && !( module.is.active() && module.is.dropdown()) ) {
if( !module.exists() ) {
module.create();
@ -398,8 +399,8 @@ $.fn.popup = function(parameters) {
hide: function(callback) {
callback = $.isFunction(callback) ? callback : function(){};
module.debug('Hiding pop-up');
if(settings.onShow.call($popup, element) === false) {
module.debug('onShow callback returned false, cancelling popup animation');
if(settings.onHide.call($popup, element) === false) {
module.debug('onHide callback returned false, cancelling popup animation');
return;
}
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
@ -884,7 +885,7 @@ $.fn.popup = function(parameters) {
.on('touchstart' + eventNamespace, module.event.touchstart)
;
}
else if( module.get.startEvent() ) {
if( module.get.startEvent() ) {
$module
.on(module.get.startEvent() + eventNamespace, module.event.start)
.on(module.get.endEvent() + eventNamespace, module.event.end)

2
dist/components/popup.min.js
File diff suppressed because it is too large
View File

65
dist/semantic.js

@ -9201,7 +9201,7 @@ $.fn.popup = function(parameters) {
moduleSelector = $allModules.selector || '',
hasTouch = ('ontouchstart' in document.documentElement),
hasTouch = (true),
time = new Date().getTime(),
performance = [],
@ -9335,7 +9335,9 @@ $.fn.popup = function(parameters) {
: settings.delay
;
clearTimeout(module.hideTimer);
module.showTimer = setTimeout(module.show, delay);
if(!openedWithTouch) {
module.showTimer = setTimeout(module.show, delay);
}
},
end: function() {
var
@ -9348,7 +9350,7 @@ $.fn.popup = function(parameters) {
},
touchstart: function(event) {
openedWithTouch = true;
module.event.start();
module.show();
},
resize: function() {
if( module.is.visible() ) {
@ -9458,7 +9460,6 @@ $.fn.popup = function(parameters) {
show: function(callback) {
callback = callback || function(){};
module.debug('Showing pop-up', settings.transition);
if(module.is.hidden() && !( module.is.active() && module.is.dropdown()) ) {
if( !module.exists() ) {
module.create();
@ -9577,8 +9578,8 @@ $.fn.popup = function(parameters) {
hide: function(callback) {
callback = $.isFunction(callback) ? callback : function(){};
module.debug('Hiding pop-up');
if(settings.onShow.call($popup, element) === false) {
module.debug('onShow callback returned false, cancelling popup animation');
if(settings.onHide.call($popup, element) === false) {
module.debug('onHide callback returned false, cancelling popup animation');
return;
}
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
@ -10063,7 +10064,7 @@ $.fn.popup = function(parameters) {
.on('touchstart' + eventNamespace, module.event.touchstart)
;
}
else if( module.get.startEvent() ) {
if( module.get.startEvent() ) {
$module
.on(module.get.startEvent() + eventNamespace, module.event.start)
.on(module.get.endEvent() + eventNamespace, module.event.end)
@ -18162,7 +18163,7 @@ $.api = $.fn.api = function(parameters) {
}
},
validResponse: function(response) {
if( settings.dataType !== 'json' || !$.isFunction(settings.successTest) ) {
if( (settings.dataType !== 'json' && settings.dataType !== 'jsonp') || !$.isFunction(settings.successTest) ) {
module.verbose('Response is not JSON, skipping validation', settings.successTest, response);
return true;
}
@ -18320,13 +18321,13 @@ $.api = $.fn.api = function(parameters) {
},
xhr: {
always: function() {
// calculate if loading time was below minimum threshold
// nothing special
},
done: function(response, textStatus, xhr) {
var
context = this,
elapsedTime = (new Date().getTime() - requestStartTime),
timeLeft = (settings.loadingDuration - elapsedTime),
context = this,
elapsedTime = (new Date().getTime() - requestStartTime),
timeLeft = (settings.loadingDuration - elapsedTime),
translatedResponse = ( $.isFunction(settings.onResponse) )
? settings.onResponse.call(context, $.extend(true, {}, response))
: false
@ -18344,7 +18345,7 @@ $.api = $.fn.api = function(parameters) {
}
setTimeout(function() {
if( module.is.validResponse(response) ) {
module.request.resolveWith(context, [response]);
module.request.resolveWith(context, [response, xhr]);
}
else {
module.request.rejectWith(context, [xhr, 'invalid']);
@ -18375,10 +18376,6 @@ $.api = $.fn.api = function(parameters) {
}
},
request: {
complete: function(response) {
module.remove.loading();
settings.onComplete.call(context, response, $module);
},
done: function(response) {
module.debug('Successful API Response', response);
if(settings.cache === 'local' && url) {
@ -18387,17 +18384,18 @@ $.api = $.fn.api = function(parameters) {
}
settings.onSuccess.call(context, response, $module);
},
complete: function(xhr) {
var
response = module.get.responseFromXHR(xhr)
;
module.remove.loading();
settings.onComplete.call(context, response, $module, xhr);
},
fail: function(xhr, status, httpMessage) {
var
// pull response from xhr if available
response = $.isPlainObject(xhr)
? module.decode.json(xhr.responseText)
: false,
errorMessage = ($.isPlainObject(response) && response.error !== undefined)
? response.error // use json error message
: (settings.error[status] !== undefined) // use server error message
? settings.error[status]
: httpMessage
response = module.get.responseFromXHR(xhr),
errorMessage = module.get.errorFromRequest(response, status, httpMessage)
;
if(status == 'aborted') {
module.debug('XHR Aborted (Most likely caused by page navigation or CORS Policy)', status, httpMessage);
@ -18407,7 +18405,6 @@ $.api = $.fn.api = function(parameters) {
module.debug('JSON did not pass success test. A server-side error has most likely occurred', response);
}
else if(status == 'error') {
if(xhr !== undefined) {
module.debug('XHR produced a server error', status, httpMessage);
// make sure we have an error to display to console
@ -18525,6 +18522,22 @@ $.api = $.fn.api = function(parameters) {
},
get: {
responseFromXHR: function(xhr) {
return $.isPlainObject(xhr)
? (settings.dataType == 'json' || settings.dataType == 'jsonp')
? module.decode.json(xhr.responseText)
: xhr.responseText
: false
;
},
errorFromRequest: function(response, status, httpMessage) {
return ($.isPlainObject(response) && response.error !== undefined)
? response.error // use json error message
: (settings.error[status] !== undefined) // use server error message
? settings.error[status]
: httpMessage
;
},
request: function() {
return module.request || false;
},

10
dist/semantic.min.js
File diff suppressed because it is too large
View File

8
src/definitions/behaviors/api.js

@ -455,9 +455,9 @@ $.api = $.fn.api = function(parameters) {
},
done: function(response, textStatus, xhr) {
var
context = this,
elapsedTime = (new Date().getTime() - requestStartTime),
timeLeft = (settings.loadingDuration - elapsedTime),
context = this,
elapsedTime = (new Date().getTime() - requestStartTime),
timeLeft = (settings.loadingDuration - elapsedTime),
translatedResponse = ( $.isFunction(settings.onResponse) )
? settings.onResponse.call(context, $.extend(true, {}, response))
: false
@ -475,7 +475,7 @@ $.api = $.fn.api = function(parameters) {
}
setTimeout(function() {
if( module.is.validResponse(response) ) {
module.request.resolveWith(context, [response]);
module.request.resolveWith(context, [response, xhr]);
}
else {
module.request.rejectWith(context, [xhr, 'invalid']);

Loading…
Cancel
Save