| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- (function($){
- FLBuilder.registerModuleHelper('countdown', {
- rules: {
- day: {
- required: true
- },
- month: {
- required: true
- },
- year: {
- required: true
- }
- },
- submit: function(){
- var self = this;
- var form = $( '.fl-builder-settings' ),
- day = parseInt( form.find( 'input[name=day]' ).val() ),
- month = parseInt( form.find( 'input[name=month]' ).val() ),
- year = parseInt( form.find( 'input[name=year]' ).val() ),
- hour = parseInt( form.find( 'select[name="time[][hours]"]' ).val() ),
- minute = parseInt( form.find( 'select[name="time[][minutes]"]' ).val() ),
- period = form.find( 'select[name="time[][day_period]"]' ).val(),
- date = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':00 ' + period.toUpperCase();
- if ( ! this._validateDate( day, 'day' ) ) {
- FLBuilder.alert( FLBuilderStrings.enterValidDay );
- return false;
- } else if ( ! this._validateDate( month, 'month' ) ) {
- FLBuilder.alert( FLBuilderStrings.enterValidMonth );
- return false;
- } else if ( ! this._validateDate( year, 'year' ) ) {
- FLBuilder.alert( FLBuilderStrings.enterValidYear );
- return false;
- } else if ( Date.parse( date ) <= Date.now() ) {
- FLBuilder.alert( FLBuilderStrings.countdownDateisInThePast );
- return false;
- }
- return true;
- },
- _isPositiveInteger: function( n ) {
- return n >>> 0 === parseFloat( n );
- },
- _validateDate: function( date, part ){
- var self = this,
- form = $( '.fl-builder-settings' ),
- day = parseInt( form.find( 'input[name=day]' ).val() ),
- month = parseInt( form.find( 'input[name=month]' ).val() ),
- year = parseInt( form.find( 'input[name=year]' ).val() ),
- fullDays = new Date( year, month, 0 ).getDate();
- if ( isNaN( date ) || ! this._isPositiveInteger( date ) ) {
- return false;
- } else {
- switch ( part ) {
- case 'day':
- return date <= fullDays;
- break;
- case 'month':
- return date <= 12;
- break;
- case 'year':
- return date >= new Date().getFullYear();
- break;
- }
- }
- },
- });
- })(jQuery);
|