Files
HotelRaxa/wp-includes/js/swfupload/swfupload.js
Hotel Raxa Dev 5b1e2453c7 Hotel Raxa - Advanced Booking System Implementation
🏨 Hotel Booking Enhancements:
- Implemented Eagle Booking Advanced Pricing add-on
- Added Booking.com-style rate management system
- Created professional calendar interface for pricing
- Integrated deals and discounts functionality

💰 Advanced Pricing Features:
- Dynamic pricing models (per room, per person, per adult)
- Base rates, adult rates, and child rates management
- Length of stay discounts and early bird deals
- Mobile rates and secret deals implementation
- Seasonal promotions and flash sales

📅 Availability Management:
- Real-time availability tracking
- Stop sell and restriction controls
- Closed to arrival/departure functionality
- Minimum/maximum stay requirements
- Automatic sold-out management

💳 Payment Integration:
- Maintained Redsys payment gateway integration
- Seamless integration with existing Eagle Booking
- No modifications to core Eagle Booking plugin

🛠️ Technical Implementation:
- Custom database tables for advanced pricing
- WordPress hooks and filters integration
- AJAX-powered admin interface
- Data migration from existing Eagle Booking
- Professional calendar view for revenue management

📊 Admin Interface:
- Booking.com-style management dashboard
- Visual rate and availability calendar
- Bulk operations for date ranges
- Statistics and analytics dashboard
- Modal dialogs for quick editing

🔧 Code Quality:
- WordPress coding standards compliance
- Secure database operations with prepared statements
- Proper input validation and sanitization
- Error handling and logging
- Responsive admin interface

🤖 Generated with Claude Code (https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-11 07:43:22 +02:00

141 lines
4.3 KiB
JavaScript

/**
* SWFUpload fallback
*
* @since 4.9.0
*/
var SWFUpload;
( function () {
function noop() {}
if (SWFUpload == undefined) {
SWFUpload = function (settings) {
this.initSWFUpload(settings);
};
}
SWFUpload.prototype.initSWFUpload = function ( settings ) {
function fallback() {
var $ = window.jQuery;
var $placeholder = settings.button_placeholder_id ? $( '#' + settings.button_placeholder_id ) : $( settings.button_placeholder );
if ( ! $placeholder.length ) {
return;
}
var $form = $placeholder.closest( 'form' );
if ( ! $form.length ) {
$form = $( '<form enctype="multipart/form-data" method="post">' );
$form.attr( 'action', settings.upload_url );
$form.insertAfter( $placeholder ).append( $placeholder );
}
$placeholder.replaceWith(
$( '<div>' )
.append(
$( '<input type="file" multiple />' ).attr({
name: settings.file_post_name || 'async-upload',
accepts: settings.file_types || '*.*'
})
).append(
$( '<input type="submit" name="html-upload" class="button" value="Upload" />' )
)
);
}
try {
// Try the built-in fallback.
if ( typeof settings.swfupload_load_failed_handler === 'function' && settings.custom_settings ) {
window.swfu = {
customSettings: settings.custom_settings
};
settings.swfupload_load_failed_handler();
} else {
fallback();
}
} catch ( ex ) {
fallback();
}
};
SWFUpload.instances = {};
SWFUpload.movieCount = 0;
SWFUpload.version = "0";
SWFUpload.QUEUE_ERROR = {};
SWFUpload.UPLOAD_ERROR = {};
SWFUpload.FILE_STATUS = {};
SWFUpload.BUTTON_ACTION = {};
SWFUpload.CURSOR = {};
SWFUpload.WINDOW_MODE = {};
SWFUpload.completeURL = noop;
SWFUpload.prototype.initSettings = noop;
SWFUpload.prototype.loadFlash = noop;
SWFUpload.prototype.getFlashHTML = noop;
SWFUpload.prototype.getFlashVars = noop;
SWFUpload.prototype.getMovieElement = noop;
SWFUpload.prototype.buildParamString = noop;
SWFUpload.prototype.destroy = noop;
SWFUpload.prototype.displayDebugInfo = noop;
SWFUpload.prototype.addSetting = noop;
SWFUpload.prototype.getSetting = noop;
SWFUpload.prototype.callFlash = noop;
SWFUpload.prototype.selectFile = noop;
SWFUpload.prototype.selectFiles = noop;
SWFUpload.prototype.startUpload = noop;
SWFUpload.prototype.cancelUpload = noop;
SWFUpload.prototype.stopUpload = noop;
SWFUpload.prototype.getStats = noop;
SWFUpload.prototype.setStats = noop;
SWFUpload.prototype.getFile = noop;
SWFUpload.prototype.addFileParam = noop;
SWFUpload.prototype.removeFileParam = noop;
SWFUpload.prototype.setUploadURL = noop;
SWFUpload.prototype.setPostParams = noop;
SWFUpload.prototype.addPostParam = noop;
SWFUpload.prototype.removePostParam = noop;
SWFUpload.prototype.setFileTypes = noop;
SWFUpload.prototype.setFileSizeLimit = noop;
SWFUpload.prototype.setFileUploadLimit = noop;
SWFUpload.prototype.setFileQueueLimit = noop;
SWFUpload.prototype.setFilePostName = noop;
SWFUpload.prototype.setUseQueryString = noop;
SWFUpload.prototype.setRequeueOnError = noop;
SWFUpload.prototype.setHTTPSuccess = noop;
SWFUpload.prototype.setAssumeSuccessTimeout = noop;
SWFUpload.prototype.setDebugEnabled = noop;
SWFUpload.prototype.setButtonImageURL = noop;
SWFUpload.prototype.setButtonDimensions = noop;
SWFUpload.prototype.setButtonText = noop;
SWFUpload.prototype.setButtonTextPadding = noop;
SWFUpload.prototype.setButtonTextStyle = noop;
SWFUpload.prototype.setButtonDisabled = noop;
SWFUpload.prototype.setButtonAction = noop;
SWFUpload.prototype.setButtonCursor = noop;
SWFUpload.prototype.queueEvent = noop;
SWFUpload.prototype.executeNextEvent = noop;
SWFUpload.prototype.unescapeFilePostParams = noop;
SWFUpload.prototype.testExternalInterface = noop;
SWFUpload.prototype.flashReady = noop;
SWFUpload.prototype.cleanUp = noop;
SWFUpload.prototype.fileDialogStart = noop;
SWFUpload.prototype.fileQueued = noop;
SWFUpload.prototype.fileQueueError = noop;
SWFUpload.prototype.fileDialogComplete = noop;
SWFUpload.prototype.uploadStart = noop;
SWFUpload.prototype.returnUploadStart = noop;
SWFUpload.prototype.uploadProgress = noop;
SWFUpload.prototype.uploadError = noop;
SWFUpload.prototype.uploadSuccess = noop;
SWFUpload.prototype.uploadComplete = noop;
SWFUpload.prototype.debug = noop;
SWFUpload.prototype.debugMessage = noop;
SWFUpload.Console = {
writeLine: noop
};
}() );