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

Loading…
Cancel
Save