first commit
This commit is contained in:
95
public/js/modules/countdown.js
Normal file
95
public/js/modules/countdown.js
Normal file
@@ -0,0 +1,95 @@
|
||||
CNVS.Countdown = function() {
|
||||
var __core = SEMICOLON.Core;
|
||||
|
||||
return {
|
||||
init: function(selector) {
|
||||
if( __core.getSelector(selector, false, false).length < 1 ){
|
||||
return true;
|
||||
}
|
||||
|
||||
__core.loadJS({ file: 'plugins.countdown.js', id: 'canvas-countdown-js', jsFolder: true });
|
||||
__core.loadJS({ file: 'components/moment.js', id: 'canvas-moment-js', jsFolder: true });
|
||||
|
||||
__core.isFuncTrue( function() {
|
||||
return typeof jQuery !== 'undefined' && typeof moment !== "undefined" && jQuery().countdown;
|
||||
}).then( function(cond) {
|
||||
if( !cond ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
__core.initFunction({ class: 'has-plugin-countdown', event: 'pluginCountdownReady' });
|
||||
|
||||
selector = __core.getSelector( selector );
|
||||
if( selector.length < 1 ){
|
||||
return true;
|
||||
}
|
||||
|
||||
selector.each( function(){
|
||||
var element = jQuery(this),
|
||||
elFormat = element.attr( 'data-format' ) || 'dHMS',
|
||||
elSince = element.attr( 'data-since' ),
|
||||
elYear = element.attr( 'data-year' ),
|
||||
elMonth = element.attr( 'data-month' ),
|
||||
elDay = element.attr( 'data-day' ),
|
||||
elHour = element.attr( 'data-hour' ),
|
||||
elMin = element.attr( 'data-minute' ),
|
||||
elSec = element.attr( 'data-second' ),
|
||||
elRedirect = element.attr( 'data-redirect' ),
|
||||
dateFormat, setDate;
|
||||
|
||||
if( elYear ){
|
||||
dateFormat = elYear;
|
||||
}
|
||||
|
||||
if( elMonth && elMonth < 13 ){
|
||||
dateFormat = dateFormat +"-"+ ( elMonth < 10 ? '0'+elMonth : elMonth);
|
||||
} else {
|
||||
if( elYear ) {
|
||||
dateFormat = dateFormat +"-01";
|
||||
}
|
||||
}
|
||||
|
||||
if( elDay && elDay < 32 ){
|
||||
dateFormat = dateFormat +"-"+ ( elDay < 10 ? '0'+elDay : elDay);
|
||||
} else {
|
||||
if( elYear ) {
|
||||
dateFormat = dateFormat +"-01";
|
||||
}
|
||||
}
|
||||
|
||||
setDate = dateFormat != '' ? new Date( moment( dateFormat ) ) : new Date();
|
||||
|
||||
if( elHour && elHour < 25 ){
|
||||
setDate.setHours( setDate.getHours() + Number( elHour ) );
|
||||
}
|
||||
|
||||
if( elMin && elMin < 60 ){
|
||||
setDate.setMinutes( setDate.getMinutes() + Number( elMin ) );
|
||||
}
|
||||
|
||||
if( elSec && elSec < 60 ){
|
||||
setDate.setSeconds( setDate.getSeconds() + Number( elSec ) );
|
||||
}
|
||||
|
||||
if( !elRedirect ) {
|
||||
elRedirect = false;
|
||||
}
|
||||
|
||||
if( elSince == 'true' ) {
|
||||
element.countdown({
|
||||
since: setDate,
|
||||
format: elFormat,
|
||||
expiryUrl: elRedirect,
|
||||
});
|
||||
} else {
|
||||
element.countdown({
|
||||
until: setDate,
|
||||
format: elFormat,
|
||||
expiryUrl: elRedirect,
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
}();
|
||||
Reference in New Issue
Block a user