From 85de3866df5f2b5fa1b821adcf27ec7e59ad4a07 Mon Sep 17 00:00:00 2001 From: torleifw Date: Thu, 18 Jul 2013 11:33:27 +1200 Subject: [PATCH 1/6] FIX postgres can filter on non text fields Filtering non text fields in postgres would cause the SQL to fail. This casts the field to text before the LIKE filter. --- search/filters/PartialMatchFilter.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/search/filters/PartialMatchFilter.php b/search/filters/PartialMatchFilter.php index 418e1975c..90c764963 100644 --- a/search/filters/PartialMatchFilter.php +++ b/search/filters/PartialMatchFilter.php @@ -16,13 +16,14 @@ class PartialMatchFilter extends SearchFilter { $this->model = $query->applyRelation($this->relation); $where = array(); $comparison = (DB::getConn() instanceof PostgreSQLDatabase) ? 'ILIKE' : 'LIKE'; + $dbname = (DB::getConn() instanceof PostgreSQLDatabase) ? $this->getDbName().'::text' : $this->getDbName(); if(is_array($this->getValue())) { foreach($this->getValue() as $value) { - $where[]= sprintf("%s %s '%%%s%%'", $this->getDbName(), $comparison, Convert::raw2sql($value)); + $where[]= sprintf("%s %s '%%%s%%'", $dbname, $comparison, Convert::raw2sql($value)); } } else { - $where[] = sprintf("%s %s '%%%s%%'", $this->getDbName(), $comparison, Convert::raw2sql($this->getValue())); + $where[] = sprintf("%s %s '%%%s%%'", $dbname, $comparison, Convert::raw2sql($this->getValue())); } return $query->where(implode(' OR ', $where)); From e2238245b9b6a547208d7794e329dc9e29e390a0 Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 12 Nov 2013 10:50:27 +1300 Subject: [PATCH 2/6] Fixed RSS example --- docs/en/reference/restfulservice.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/en/reference/restfulservice.md b/docs/en/reference/restfulservice.md index 7bd175b1f..1898129d8 100644 --- a/docs/en/reference/restfulservice.md +++ b/docs/en/reference/restfulservice.md @@ -150,18 +150,19 @@ Put something like this code in mysite/code/Page.php inside class Page_Controlle :::php // Accepts an RSS feed URL and outputs a list of links from it public function RestfulLinks($url){ - $delicious = new RestfulService($url); - - $conn = $delicious->connect(); - $result = $delicious->getValues($conn, "item"); + $service = new RestfulService($url); + $request = $service->request(); + $body = $request->getBody(); + $items = $service->getValues($body,"channel","item"); + $output = ''; - foreach ($result as $key => $value) { + foreach($items as $item) { // Fix quote encoding - $description = str_replace('"', '"', $value->description); - $output .= '
  • '.$value->title.'
    '.$description.'
  • '; + $description = str_replace('"', '"', $item->description); + $output .= "
  • link}\">{$item->title}
    {$description}
  • "; } return $output; - } + } Put something like this code in `themes//templates/Layout/HomePage.ss`: @@ -174,4 +175,4 @@ Put something like this code in `themes//templates/Layout/HomePage.s ## API Documentation -`[api:RestfulService]` \ No newline at end of file +`[api:RestfulService]` From ed4d32581d1df93e538468a98da109f65a4d1f13 Mon Sep 17 00:00:00 2001 From: Simon Welsh Date: Tue, 4 Feb 2014 12:26:28 +1300 Subject: [PATCH 3/6] $manifest needs to be global for Deprecation. --- core/Core.php | 1 + 1 file changed, 1 insertion(+) diff --git a/core/Core.php b/core/Core.php index 5347439b3..1a67e40f5 100644 --- a/core/Core.php +++ b/core/Core.php @@ -91,6 +91,7 @@ Injector::inst($default_options); $flush = (isset($_GET['flush']) || isset($_REQUEST['url']) && ( $_REQUEST['url'] == 'dev/build' || $_REQUEST['url'] == BASE_URL . '/dev/build' )); +global $manifest; $manifest = new SS_ClassManifest(BASE_PATH, false, $flush); // Register SilverStripe's class map autoload From 82f65fded492cce7735fc99fbd03c6306117e53e Mon Sep 17 00:00:00 2001 From: Hamish Friedlander Date: Tue, 10 Dec 2013 10:35:03 +1300 Subject: [PATCH 4/6] FIX Dont pop up basic auth dialog when trying to flush and isDev=1, just redirect to Security/login like normal --- main.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.php b/main.php index af6253fa7..47a52a963 100644 --- a/main.php +++ b/main.php @@ -132,7 +132,7 @@ $chain // Then if a flush was requested, redirect to it if ($token->parameterProvided() && !$token->tokenProvided()) { // First, check if we're in dev mode, or the database doesn't have any security data - $canFlush = Director::isDev() || !Security::database_is_ready(); + $canFlush = Director::isDev(true) || !Security::database_is_ready(); // Otherwise, we start up the session if needed, then check for admin if (!$canFlush) { From 3f9bd383d49c12a08936b36d206ffced08039de6 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Wed, 12 Feb 2014 15:11:46 +1300 Subject: [PATCH 5/6] Removed SWFUpload, no longer used --- thirdparty/swfupload/.gitignore | 5 - thirdparty/swfupload/core changelog.txt | 304 ----- .../swfupload/plugins/SWFObject License.txt | 4 - .../swfupload/plugins/swfupload.cookies.js | 53 - .../swfupload/plugins/swfupload.queue.js | 98 -- .../swfupload/plugins/swfupload.speed.js | 346 ------ .../swfupload/plugins/swfupload.swfobject.js | 111 -- thirdparty/swfupload/swfupload license.txt | 12 - .../swfupload/obj/SWFUploadv2Config.xml | 21 - thirdparty/swfupload/swfupload/swfupload.js | 1046 ----------------- thirdparty/swfupload/swfupload/swfupload.swf | Bin 33328 -> 0 bytes 11 files changed, 2000 deletions(-) delete mode 100644 thirdparty/swfupload/.gitignore delete mode 100644 thirdparty/swfupload/core changelog.txt delete mode 100644 thirdparty/swfupload/plugins/SWFObject License.txt delete mode 100644 thirdparty/swfupload/plugins/swfupload.cookies.js delete mode 100644 thirdparty/swfupload/plugins/swfupload.queue.js delete mode 100644 thirdparty/swfupload/plugins/swfupload.speed.js delete mode 100644 thirdparty/swfupload/plugins/swfupload.swfobject.js delete mode 100644 thirdparty/swfupload/swfupload license.txt delete mode 100644 thirdparty/swfupload/swfupload/obj/SWFUploadv2Config.xml delete mode 100644 thirdparty/swfupload/swfupload/swfupload.js delete mode 100644 thirdparty/swfupload/swfupload/swfupload.swf diff --git a/thirdparty/swfupload/.gitignore b/thirdparty/swfupload/.gitignore deleted file mode 100644 index a40478bb2..000000000 --- a/thirdparty/swfupload/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -documentation/ -preview/ -swfupload/*.as -swfupload/*.as3proj -swfupload/*.bat \ No newline at end of file diff --git a/thirdparty/swfupload/core changelog.txt b/thirdparty/swfupload/core changelog.txt deleted file mode 100644 index 297b56142..000000000 --- a/thirdparty/swfupload/core changelog.txt +++ /dev/null @@ -1,304 +0,0 @@ - * SWFUpload Core, January 2009, www.swfupload.org, swfupload.googlecode.com - - * --------- Version 2.5.0----------- - * + Added Client Side thumbnail generation and uploading and related settings - * + Added Client Side thumbnail preview plugin - * = Fixed double encoding of settings issue - * = Improved movieElement grabbing - * - Removed settings clone as it is unreliable - * = Fixed speed plugin so it checks for a file before extending it - * + Progress event manually fired for 100% if not fired by Flash - - - * --------- Version 2.2.1----------- - * + Added requeueUpload and updated documentation - * + Added button_action type of JAVASCRIPT and a buttonAction event to trigger a JavaScript function when the Flash Button is clicked - * = Updated destroy method to make sure the testExternalInterface timer is cleared - * = Also fixed destroy so the element is removed in non-IE browsers - * = Also fixed destroy method to call cleanUp method rather than duplicating the code - * = Fixed scope issue in cleanUp method. - * = Fixed bug in Queue Plugin that prevented the queueComplete event from firing - * + The place holder element is now replaced with the same type of flow element (div for block, span for inline) - - - * --------- Version 2.2.0.1----------- - * - Removed requeueUpload due to bugs/poor testing - * = Fixed namespace conflict that broke stopUpload - - * --------- Version 2.2.0----------- - * + Added button_placeholder setting that accepts a DOM element. - * + Added ability to requeue any file (including some improvement to internal queue state tracking) - * + UploadErrors caused by a missing upload_url now causes the file to be requeued automatically - * + Added preserve_relative_urls setting - * + SWFUpload now converts relative URLs to absolute URLs to avoid issues with Flash Player interpreting it differently on some clients - * + Added assume_success_timeout setting which allows uploadSuccess to be called after a timeout if, for some reason Flash ignores the server's response - * An additional parameter has been added to the uploadSuccess event to indicate whether a response was received or success was assumed. - - * --------- Version 2.2.0 Beta 2 ~ 5----------- - * = Fixed a Queue Limit bug - * + Improved internal event handling code so uploadSuccess fires even when not content is returned from the server (*woot*, except for Macs) - * = Fixed issues in Destroy - * = Fixed issues with Queue Plugin - * + Added periodic checks of the ExternalInterface - * + Improved IE memory leak prevention code - * + Added Speed Plugin - * = Updated Queue Plugin for better multi-plugin compatibility - - * --------- Version 2.2.0 Beta 1----------- - * + Added Flash Player 10 Support - * = Added setting for defining a button image - * = Added setting for defining button text - * = Added setting for defining button width, height and padding - * = Added setting for defining what element the Flash Movie should replace - * = Added setting for defining flash wmode - * = Added setting for defining the mouse cursor - * + Added prevent_swf_caching setting as a work-around for issues in Avant Browser (and other IE based browser) - * + Added setting for accepting HTTP Status codes other than 200 as successful - * + Added parameter to cancelUpload that allows the uploadError event for cancelled uploads to be supressed - * + Added pro-active memory leak fix for IE and fixed problems with the destroy function (credits to steffen for patches and testing) - * + Replaced callFlash with CallFunction (using the internal function that Flash uses). Based on code from MooTools. - * = Fixed bug in the Queue plugin that breaks startUpload when passing a file id. - * + Updated Queue plugin to stop the queue if false is returned from the uploadStart handler. - * = Fixed small issues in SWFObject plugin - * = Fixed issue with ExternalInterface string escaping - * - Dropped Graceful Degradation Plugin - * - Dropped v1.0.2 Plugin - * - Dropped Flash Player 8 support - - * --------- Version 2.1.0 ----------- - * = Fixed GET values so they are escaped properly - * + Added destroy function - * = Added exception handling around browse() calls - * = Minor code cleanup - * + Split Core and Demos - - * --------- Version 2.1.0 Beta 2----------- - * = Fixed bug in XHTML fix where it wasn't split correctly by Flash - * = Fixed file params "undefined" in debug output - * + Added requeue_on_error settings so HTTP/IO/Security errors requeue the file instead of discarding it. - This will affect the queue plugin (if an error is occurring the file will be reuploaded and reuploaded). - * = Fixed HTTP/IO error behavior. We'll see how this goes Flash 9 is supposed to call HTTPError followed by an IO error but I suspect they come out of orde sometimes. - * = Fixed invalid characters in file param names. Worked around flash bug by escaping the names. Should be transparent to devs. - * = Fixed missing upload URL logic so it fires consistently - * = Fixed file params not being sent when useQueryString is true - * + Added SWFObject plugin and demo. - * + Added CookieBug demo to demonstrate what they bug really is all about. - * + Added VB.Net version of the Application Demo - - - * --------- Version 2.1.0 Beta 1----------- - * + Added allowScriptAccess="always" to the embed/object elements so the SWF can be served from different domains. - * = Fixed a type-o in the debug output that prevented the instance id (movieName) from displaying. - Thx Joel - * + Rewrote SWFUpload.js for better code reuse based on sample code from batiste.bieler (thanks!!!) - * + Added queueComplete event to the Queue Plugin - * + Added Simple Upload demo - * = JSLinted all the JavaScript code - * + Added use_query_string setting (and setUseQueryString function) that forces post_param and file_param values to be sent on the query_string instead of the post (for Flash 9 version) - * = Fixed file.type and date properties so a default value is provided (rather than null) when no value is provided by flash. - * = Fixed misc bugs in the demos - * = Fixed ExternalInterface calls being made available for Flash 9 versions <9.0.28 which aren't supported - * + Fixed use of & producing invalid XHTML in the and tags. - * - Removed the use of the embed tag (using the sample from the Flash Satay method) - * = Updated plugins to work with code rewrite changes. - * = Extracted FileProgress object in to its own file. - * + Added addPostParam and removePostParam functions - - * --------- Version 2.0.2 ----------- - * = Fixed a bug where post params could not be added to the current file (because it is removed from the queue when it becomes current) - * = Fixed a conversion error when converting kilobytes to bytes in the file size check - * = Fixed a problem in the documentation that said the file_size_limit was bytes when it is actually kilobytes - * + Added formatting to the documentation, a table of contents, and details for each setting . - * + Added units for file_size_limit setting. The setting understands B, KB, MB, GB. Default is KB. - * + Added a check for the ExternalInterface functions in flashReady so SWFUpload will not fire the loaded event if those are not available. - - * --------- Version 2.0.1 ----------- - * = Fixed a bug where zero-byte files would stop file the queuing process. - * = Finished updating Features Demo - * + Added GetFileByIndex(i) that gets a JavaScript File Object. The index never changes. Finished files continue to be available. - * The JavaScript GetFile function will accept a file_id or an index. - * + Added CheckFileSize constants to replace the magic numbers - * + Added some code in an attempt to fix "Script is running slowly" error messages - * = Better cleanup of FileReference objects - - * --------- Version 2.0 ----------- - * + Re-created SWFUpload in Actionscript v2 for Flash 8 compatibility. Flash 8 loses POST and Server Data features. The two versions are otherwise fully compatible. - * Flash 8 uses URL to pass post_params/file_params. - * = Changed uploadStart event so it's part of the setTimeout/eventQueue workaround. This allows Flash functions to be called from uploadStart. - * = Renamed uploadComplete to uploadSuccess and fileComplete to uploadComplete. All started uploads call uploadComplete (even if cancelled or stopped). - * = Changed startUpload validation failure behavior. Rather than cancelling the upload the file is now requeued. Devs can cancel - * or do whatever the need to in uploadError to handle the problem. - * = Fixed fileQueueLimit/fileUploadLimit logic so it works correctly. - * = Moved the upload request building to a later point so that the post params and file params can be updated in uploadStart. - * - Removed the last of the UI stuff (ui_container, degraded_container). - * + Started development on Plug-ins. Graceful Degradation, v1.0.2, Cookies, Queue Handling - * = Fixed missing file_status field in FileItem. - * + Added modificationDate to FileItem (file object) - * + Added setStats function that lets you change the file upload count, etc. This will give more power over the queue limits. Not well tested. - * = Renamed compeleted_uploads to successful_uploads in getStats object - * + Added in_progress to getStats object - - * --------- Revision 7.0 beta 3 ----------- - * + Added an "event queue". Events are added to an array and executeEvent is called on a setTimeout. This prevents out of order issues that occur - * in the Safari browser. - * + Added a check for the UPLOAD_COMPLETE_DATA event constant which only became available in Flash Player 9.0.28. This - * fixes the Flash Version detection (Flash Object Detection) which was accepting Flash Player 9 versions before 9.0.28. - * - Removed old code block that was missed when moving from a Flash Timer to the JavaScript timeout (caused certain cancel events to be called twice) - * = Change ShowUI to the swfUploadLoaded event which will hopefully make it more clear that this is an overrideable event - * = Changed flashReady to behave like the other events (uses setTimeout and the Event Queue). - - * --------- Revision 7.0 beta 2 ----------- - * = Changed ERROR_CODE_FILE_NOT_FOUND to ERROR_CODE_FILE_ID_NOT_FOUND - * + Grouped the error code constants in objects for queue errors and upload errors. - * + Added an UPLOAD_STOPPED error code. - * = Changed Event calling method (using Timer) in Flash. Timer is no longer called - * instead setTimeout is called in JavaScript. This includes a change to the - * JavaSCript design so the Event methods are not directly overridden but stored - * internally and called if defined (with a setTimeout). This is an effort - * be more compatible with the current Flash Player on Linux - * = Changed the parameter order for the fileQueueError and uploadError events so the fileObj is first, like other events. - * + Added an empty JavaScript object (customSettings) where users can store settings associated with the instance. - * + Worked around an escaping bug in the ExternalInterface library by escaping all backslashes in out-going strings. - * = Updated all the demos. - - * --------- Revision 7.0 beta 1 ----------- - * = Redesigned the Event Chain - * - Removed much of the queue concepts - * - Removed the fileValidation events. This can be done in the new uploadStart event - * - Removed beginUploadOnQueue feature. This can be done in the new dialogComplete event. - * - Removed use_server_data. This is now always on. - * + Added functions for retrieving queue stats (number of files uploaded, queued, errors, etc) - * + Added a file status property to the FileObject. This indicates, uploaded, error, waiting. - * + Added a single file browser (user cannot select multiple files) - * + Fixed bug (hopefully) caused if Flash call to JavaScript and in the callback JavaSCript calls to Flash - * This only place this does not apply is to uploadStart. If you call in to Flash from uploadStart use a setTimeout to do it. - - * --------- Revision 6.2 ----------- - * + Added API calls for changing all the changeable settings dynamically - * = Fixed a bug in FileComplete event handler (in the SWF) that caused an error in Debug Players - * and prevent the event from being called - * + Added a setting (use_server_data_event) to indicate whether FileComplete or ServerData should be called. - * The SWFUpload architecture requires that only one file upload success event can be called. - * = Updated all the Demos, especially the Features Demo and the Forms Demo - - - * --------- Revision 6 ----------- - * - Removed the call to setUploadSettings in flashReady. This was a left over call that is unnecessary. - * + Finished the parsing of post params during the init stage. This ommision was hidden by the call to setUploadSettings. - * - Removed the flash_target_id setting. The Flash file should only ever be added to the body tag. - * + Fixed (hopefully for good) another SWF race condition. IE executes the SWF very very early. The this.movieElement value should never be referenced. - * The movie Element should always be retrieved using this.getMovieElement(). - - * --------- Revision 6 ----------- - * + Ported to ActionScript 3. Revision 6 requires Flash Player 9. - * = Fixed bug caused when cancelling single files. Would break any function that searched for a file_id. - * - Removed the automatic cookie sending setting. Devs should just pass the value they want to send in the post_params - * - Removed the query params settings (global and file specific). All params should be sent in the post_params - * + Added post_params which adds post values to the file upload post. - * + Added validate_files setting flag which causes the fileValidation event to be called before each file is uploaded. - * + Added fileValidation event. Return false if validation fails and true if validation is successful. - * + Added server_data parameter to the fileComplete event which returns any text that the upload script returns. - * = Updated all demos to work with Revision 6 - * + Added in-code file extension validation. Before a file is queued the extension is checked against the valid extensions. - * Files the have invalid extensions cause the error event to be raised. - * + Added 'file_post_name' setting that allows the post variable name containing the file data to be named something other than 'Filedata' - * = Fixed a race condition in loadFlash where a cached flash movie would execute before this.movieElement could be assigned and loading would fail. - - * --------- Revision 5.2 ----------- - * = A little more code cleaning and variable renaming - * + Changed from an array queue to a FIFO queue. This eliminates the "current_index" and - * should reduce some memory usage. - * + Added out of order file uploading. Call StartUpload(/file_id/). - * + Added custom query_string parameters in addition to the cookies - * + Added the ability to modify the URL, cookies, params and send to flash - * + Added per file query_string params - * + Added files queued limit. Sometimes you may want the user to only queue one file at a time (or something) - * + Fixed limits so a zero(0) value means unlimited. - - * --------- Revision 5 ------------- - * = More code cleaning. Ported SWF to FlashDevelop. (Since my Flash Studio trial expired) - * The port to FlashDevelop is a big deal. It significantly changes the code structure - * and could introduce bugs. Also there have been reported issues with the FlashDevelop - * version from swfupload.mammon.se: Doesn't start when reloading in IE. Doesn't start - * in Firefox if the SWF file is visible because of a page scroll. - * + I fixed the Firefox issue by removing the wmode attribute from the embed object. - * + I cannot reproduce the IE issue on my local machine (although I can reproduce it at swfupload.mammon.se) - * + Event Handlers are now attached to the SWFUpload javascript object. The SWF file - * now calls the handlers in the context of the SWFUpload object which means the "this" - * object inside the handler refers to the proper SWFUpload instance. - * + Tested and Fixed upload target cookie attachment - * = Cleaned up / renamed everything for clarity and consistancy - * + File queuing is now subject to the upload limit. If the user attempts to queue more files - * than allowed an error is returned and the files are not queued. - * + Fixed misc bugs and text encodings. - * + Added more debug info for the SWF file. - * + SWF file now obeys the debug setting. - * + Added SetUploadTargetURL function that allows you to "dynamically" change the upload target - * + Added error code for zero byte file uploads which always return an IO error. The files are now rejected - * instead of being uploaded. - - * --------- Revision 4 ------------- - * = Cleaned up code. Added comments. Reorganized. Added more try..catches. Removed old unused methods. - * - Removed the 'create_ui' setting. The UI is now completely up to the developer. - * + Added upload_backend_cookies setting. Can set a string, or array of cookie names. These values will be - * passed as part of the upload_backend url - * - * = Changed QueueComplete event to only fire if at least one file has been successfully uploaded. - * + Added "Stop Upload" feature. - * = Revised the FLA file to clean things up, better handle errors, etc. - * = Fixed a bug where cancelling the first upload would cause the remaining uploads to fire before calling - * "startUpload". This change is in the FLA. - * - * + Fixed a bug in the upload.swf that prevented further file processing after an error is returned. - * + Added uploadLimit variable. Only complete uploads are counted. Once the limit is reached the flash - * movie will not upload any more files. (The ability to select or queue many files is not affected - * by the upload limit) - * + Added cancelQueue and cancelUpload methods. - * + Added ID property to the FileObj in the upload.swf - * + Added Upload and Queue settings - * + Added methods for generating the flash HTML and inserting it into the DOM. - * - Removed SWFObject - * + Updated the upload.swf and added the "flashReady" event. This will only call back - * for Flash 8 and above. With this we don't need a flash version detect script. - * The script initializes the Flash then waits for the Callback to init the UI. - * + Added seperate ui_target, degraded_target, create_ui settings. This allows fine control - * over what parts of the GUI the script displays and hides - * - * + Changed from a Static Class to an Instance (changed code/class structure) - * + Added "flash_version" setting. When set to zero the version check is skipped - * + Added Debug Console. The Instance class can't do document.write. - * = De-obfuscated SWFObject a bit - * - Removed standalone mode. - * + Added "ui_target" setting. When non-blank the link is added. - * + Added "flash_target" setting. When blank the flash is appended to the tag - * = This fixes ASP.Net not allowing the flash to be added to the Form - * + Added error checking to the callSWF method - * - - - * -------- -------- -------- -------- -------- -------- -------- -------- - * SWFUpload 0.7: Flash upload dialog - http://profandesign.se/swfupload/ - * SWFUpload is (c) 2006 Lars Huring, Olov Nilzén and Mammon Media and is released under the MIT License: - * http://www.opensource.org/licenses/mit-license.php - * -------- -------- -------- -------- -------- -------- -------- -------- - - * SWFUpload 0.7: Flash upload dialog - http://profandesign.se/swfupload/ - * - * VERSION HISTORY - * 0.5 - First release - * - * 0.6 - 2006-11-24 - * - Got rid of flash overlay - * - SWF size reduced to 840b - * - CSS-only styling of button - * - Add upload to links etc. - * - * 0.7 - 2006-11-27 - * - Added filesize param and check in SWF - * - * 0.7.1 - 2006-12-01 - * - Added link_mode param for standalone links - * if set to "standalone", createElement("a") won't run. - * - Added link_text param if css isn't needed. - * - Renamed cssClass to css_class for consistency - * - */ diff --git a/thirdparty/swfupload/plugins/SWFObject License.txt b/thirdparty/swfupload/plugins/SWFObject License.txt deleted file mode 100644 index c39361947..000000000 --- a/thirdparty/swfupload/plugins/SWFObject License.txt +++ /dev/null @@ -1,4 +0,0 @@ -/* SWFObject v2.0 rc4 - Copyright (c) 2007 Geoff Stearns, Michael Williams, and Bobby van der Sluis - This software is released under the MIT License -*/ diff --git a/thirdparty/swfupload/plugins/swfupload.cookies.js b/thirdparty/swfupload/plugins/swfupload.cookies.js deleted file mode 100644 index 242235839..000000000 --- a/thirdparty/swfupload/plugins/swfupload.cookies.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - Cookie Plug-in - - This plug in automatically gets all the cookies for this site and adds them to the post_params. - Cookies are loaded only on initialization. The refreshCookies function can be called to update the post_params. - The cookies will override any other post params with the same name. -*/ - -var SWFUpload; -if (typeof(SWFUpload) === "function") { - SWFUpload.prototype.initSettings = function (oldInitSettings) { - return function (userSettings) { - if (typeof(oldInitSettings) === "function") { - oldInitSettings.call(this, userSettings); - } - - this.refreshCookies(false); // The false parameter must be sent since SWFUpload has not initialzed at this point - }; - }(SWFUpload.prototype.initSettings); - - // refreshes the post_params and updates SWFUpload. The sendToFlash parameters is optional and defaults to True - SWFUpload.prototype.refreshCookies = function (sendToFlash) { - if (sendToFlash === undefined) { - sendToFlash = true; - } - sendToFlash = !!sendToFlash; - - // Get the post_params object - var postParams = this.settings.post_params; - - // Get the cookies - var i, cookieArray = document.cookie.split(';'), caLength = cookieArray.length, c, eqIndex, name, value; - for (i = 0; i < caLength; i++) { - c = cookieArray[i]; - - // Left Trim spaces - while (c.charAt(0) === " ") { - c = c.substring(1, c.length); - } - eqIndex = c.indexOf("="); - if (eqIndex > 0) { - name = c.substring(0, eqIndex); - value = c.substring(eqIndex + 1); - postParams[name] = value; - } - } - - if (sendToFlash) { - this.setPostParams(postParams); - } - }; - -} diff --git a/thirdparty/swfupload/plugins/swfupload.queue.js b/thirdparty/swfupload/plugins/swfupload.queue.js deleted file mode 100644 index a3788bd97..000000000 --- a/thirdparty/swfupload/plugins/swfupload.queue.js +++ /dev/null @@ -1,98 +0,0 @@ -/* - Queue Plug-in - - Features: - *Adds a cancelQueue() method for cancelling the entire queue. - *All queued files are uploaded when startUpload() is called. - *If false is returned from uploadComplete then the queue upload is stopped. - If false is not returned (strict comparison) then the queue upload is continued. - *Adds a QueueComplete event that is fired when all the queued files have finished uploading. - Set the event handler with the queue_complete_handler setting. - - */ - -var SWFUpload; -if (typeof(SWFUpload) === "function") { - SWFUpload.queue = {}; - - SWFUpload.prototype.initSettings = (function (oldInitSettings) { - return function (userSettings) { - if (typeof(oldInitSettings) === "function") { - oldInitSettings.call(this, userSettings); - } - - this.queueSettings = {}; - - this.queueSettings.queue_cancelled_flag = false; - this.queueSettings.queue_upload_count = 0; - - this.queueSettings.user_upload_complete_handler = this.settings.upload_complete_handler; - this.queueSettings.user_upload_start_handler = this.settings.upload_start_handler; - this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler; - this.settings.upload_start_handler = SWFUpload.queue.uploadStartHandler; - - this.settings.queue_complete_handler = userSettings.queue_complete_handler || null; - }; - })(SWFUpload.prototype.initSettings); - - SWFUpload.prototype.startUpload = function (fileID) { - this.queueSettings.queue_cancelled_flag = false; - this.callFlash("StartUpload", [fileID]); - }; - - SWFUpload.prototype.cancelQueue = function () { - this.queueSettings.queue_cancelled_flag = true; - this.stopUpload(); - - var stats = this.getStats(); - while (stats.files_queued > 0) { - this.cancelUpload(); - stats = this.getStats(); - } - }; - - SWFUpload.queue.uploadStartHandler = function (file) { - var returnValue; - if (typeof(this.queueSettings.user_upload_start_handler) === "function") { - returnValue = this.queueSettings.user_upload_start_handler.call(this, file); - } - - // To prevent upload a real "FALSE" value must be returned, otherwise default to a real "TRUE" value. - returnValue = (returnValue === false) ? false : true; - - this.queueSettings.queue_cancelled_flag = !returnValue; - - return returnValue; - }; - - SWFUpload.queue.uploadCompleteHandler = function (file) { - var user_upload_complete_handler = this.queueSettings.user_upload_complete_handler; - var continueUpload; - - if (file.filestatus === SWFUpload.FILE_STATUS.COMPLETE) { - this.queueSettings.queue_upload_count++; - } - - if (typeof(user_upload_complete_handler) === "function") { - continueUpload = (user_upload_complete_handler.call(this, file) === false) ? false : true; - } else if (file.filestatus === SWFUpload.FILE_STATUS.QUEUED) { - // If the file was stopped and re-queued don't restart the upload - continueUpload = false; - } else { - continueUpload = true; - } - - if (continueUpload) { - var stats = this.getStats(); - if (stats.files_queued > 0 && this.queueSettings.queue_cancelled_flag === false) { - this.startUpload(); - } else if (this.queueSettings.queue_cancelled_flag === false) { - this.queueEvent("queue_complete_handler", [this.queueSettings.queue_upload_count]); - this.queueSettings.queue_upload_count = 0; - } else { - this.queueSettings.queue_cancelled_flag = false; - this.queueSettings.queue_upload_count = 0; - } - } - }; -} \ No newline at end of file diff --git a/thirdparty/swfupload/plugins/swfupload.speed.js b/thirdparty/swfupload/plugins/swfupload.speed.js deleted file mode 100644 index fc30d1d70..000000000 --- a/thirdparty/swfupload/plugins/swfupload.speed.js +++ /dev/null @@ -1,346 +0,0 @@ -/* - Speed Plug-in - - Features: - *Adds several properties to the 'file' object indicated upload speed, time left, upload time, etc. - - currentSpeed -- String indicating the upload speed, bits per second - - averageSpeed -- Overall average upload speed, bits per second - - movingAverageSpeed -- Speed over averaged over the last several measurements, bits per second - - timeRemaining -- Estimated remaining upload time in seconds - - timeElapsed -- Number of seconds passed for this upload - - percentUploaded -- Percentage of the file uploaded (0 to 100) - - sizeUploaded -- Formatted size uploaded so far, bytes - - *Adds setting 'moving_average_history_size' for defining the window size used to calculate the moving average speed. - - *Adds several Formatting functions for formatting that values provided on the file object. - - SWFUpload.speed.formatBPS(bps) -- outputs string formatted in the best units (Gbps, Mbps, Kbps, bps) - - SWFUpload.speed.formatTime(seconds) -- outputs string formatted in the best units (x Hr y M z S) - - SWFUpload.speed.formatSize(bytes) -- outputs string formatted in the best units (w GB x MB y KB z B ) - - SWFUpload.speed.formatPercent(percent) -- outputs string formatted with a percent sign (x.xx %) - - SWFUpload.speed.formatUnits(baseNumber, divisionArray, unitLabelArray, fractionalBoolean) - - Formats a number using the division array to determine how to apply the labels in the Label Array - - factionalBoolean indicates whether the number should be returned as a single fractional number with a unit (speed) - or as several numbers labeled with units (time) - */ - -var SWFUpload; -if (typeof(SWFUpload) === "function") { - SWFUpload.speed = {}; - - SWFUpload.prototype.initSettings = (function (oldInitSettings) { - return function (userSettings) { - if (typeof(oldInitSettings) === "function") { - oldInitSettings.call(this, userSettings); - } - - this.ensureDefault = function (settingName, defaultValue) { - this.settings[settingName] = (userSettings[settingName] == undefined) ? defaultValue : userSettings[settingName]; - }; - - // List used to keep the speed stats for the files we are tracking - this.fileSpeedStats = {}; - this.speedSettings = {}; - - this.ensureDefault("moving_average_history_size", "10"); - - this.speedSettings.user_file_queued_handler = this.settings.file_queued_handler; - this.speedSettings.user_file_queue_error_handler = this.settings.file_queue_error_handler; - this.speedSettings.user_upload_start_handler = this.settings.upload_start_handler; - this.speedSettings.user_upload_error_handler = this.settings.upload_error_handler; - this.speedSettings.user_upload_progress_handler = this.settings.upload_progress_handler; - this.speedSettings.user_upload_success_handler = this.settings.upload_success_handler; - this.speedSettings.user_upload_complete_handler = this.settings.upload_complete_handler; - - this.settings.file_queued_handler = SWFUpload.speed.fileQueuedHandler; - this.settings.file_queue_error_handler = SWFUpload.speed.fileQueueErrorHandler; - this.settings.upload_start_handler = SWFUpload.speed.uploadStartHandler; - this.settings.upload_error_handler = SWFUpload.speed.uploadErrorHandler; - this.settings.upload_progress_handler = SWFUpload.speed.uploadProgressHandler; - this.settings.upload_success_handler = SWFUpload.speed.uploadSuccessHandler; - this.settings.upload_complete_handler = SWFUpload.speed.uploadCompleteHandler; - - delete this.ensureDefault; - }; - })(SWFUpload.prototype.initSettings); - - - SWFUpload.speed.fileQueuedHandler = function (file) { - if (typeof this.speedSettings.user_file_queued_handler === "function") { - file = SWFUpload.speed.extendFile(file); - - return this.speedSettings.user_file_queued_handler.call(this, file); - } - }; - - SWFUpload.speed.fileQueueErrorHandler = function (file, errorCode, message) { - if (typeof this.speedSettings.user_file_queue_error_handler === "function") { - file = SWFUpload.speed.extendFile(file); - - return this.speedSettings.user_file_queue_error_handler.call(this, file, errorCode, message); - } - }; - - SWFUpload.speed.uploadStartHandler = function (file) { - if (typeof this.speedSettings.user_upload_start_handler === "function") { - file = SWFUpload.speed.extendFile(file, this.fileSpeedStats); - return this.speedSettings.user_upload_start_handler.call(this, file); - } - }; - - SWFUpload.speed.uploadErrorHandler = function (file, errorCode, message) { - file = SWFUpload.speed.extendFile(file, this.fileSpeedStats); - SWFUpload.speed.removeTracking(file, this.fileSpeedStats); - - if (typeof this.speedSettings.user_upload_error_handler === "function") { - return this.speedSettings.user_upload_error_handler.call(this, file, errorCode, message); - } - }; - SWFUpload.speed.uploadProgressHandler = function (file, bytesComplete, bytesTotal) { - this.updateTracking(file, bytesComplete); - file = SWFUpload.speed.extendFile(file, this.fileSpeedStats); - - if (typeof this.speedSettings.user_upload_progress_handler === "function") { - return this.speedSettings.user_upload_progress_handler.call(this, file, bytesComplete, bytesTotal); - } - }; - - SWFUpload.speed.uploadSuccessHandler = function (file, serverData) { - if (typeof this.speedSettings.user_upload_success_handler === "function") { - file = SWFUpload.speed.extendFile(file, this.fileSpeedStats); - return this.speedSettings.user_upload_success_handler.call(this, file, serverData); - } - }; - SWFUpload.speed.uploadCompleteHandler = function (file) { - file = SWFUpload.speed.extendFile(file, this.fileSpeedStats); - SWFUpload.speed.removeTracking(file, this.fileSpeedStats); - - if (typeof this.speedSettings.user_upload_complete_handler === "function") { - return this.speedSettings.user_upload_complete_handler.call(this, file); - } - }; - - // Private: extends the file object with the speed plugin values - SWFUpload.speed.extendFile = function (file, trackingList) { - var tracking; - - if (!file) { - return file; - } - - if (trackingList) { - tracking = trackingList[file.id]; - } - - if (tracking) { - file.currentSpeed = tracking.currentSpeed; - file.averageSpeed = tracking.averageSpeed; - file.movingAverageSpeed = tracking.movingAverageSpeed; - file.timeRemaining = tracking.timeRemaining; - file.timeElapsed = tracking.timeElapsed; - file.percentUploaded = tracking.percentUploaded; - file.sizeUploaded = tracking.bytesUploaded; - - } else { - file.currentSpeed = 0; - file.averageSpeed = 0; - file.movingAverageSpeed = 0; - file.timeRemaining = 0; - file.timeElapsed = 0; - file.percentUploaded = 0; - file.sizeUploaded = 0; - } - - return file; - }; - - // Private: Updates the speed tracking object, or creates it if necessary - SWFUpload.prototype.updateTracking = function (file, bytesUploaded) { - var tracking = this.fileSpeedStats[file.id]; - if (!tracking) { - this.fileSpeedStats[file.id] = tracking = {}; - } - - // Sanity check inputs - bytesUploaded = bytesUploaded || tracking.bytesUploaded || 0; - if (bytesUploaded < 0) { - bytesUploaded = 0; - } - if (bytesUploaded > file.size) { - bytesUploaded = file.size; - } - - var tickTime = (new Date()).getTime(); - if (!tracking.startTime) { - tracking.startTime = (new Date()).getTime(); - tracking.lastTime = tracking.startTime; - tracking.currentSpeed = 0; - tracking.averageSpeed = 0; - tracking.movingAverageSpeed = 0; - tracking.movingAverageHistory = []; - tracking.timeRemaining = 0; - tracking.timeElapsed = 0; - tracking.percentUploaded = bytesUploaded / file.size; - tracking.bytesUploaded = bytesUploaded; - } else if (tracking.startTime > tickTime) { - this.debug("When backwards in time"); - } else { - // Get time and deltas - var now = (new Date()).getTime(); - var lastTime = tracking.lastTime; - var deltaTime = now - lastTime; - var deltaBytes = bytesUploaded - tracking.bytesUploaded; - - if (deltaBytes === 0 || deltaTime === 0) { - return tracking; - } - - // Update tracking object - tracking.lastTime = now; - tracking.bytesUploaded = bytesUploaded; - - // Calculate speeds - tracking.currentSpeed = (deltaBytes * 8 ) / (deltaTime / 1000); - tracking.averageSpeed = (tracking.bytesUploaded * 8) / ((now - tracking.startTime) / 1000); - - // Calculate moving average - tracking.movingAverageHistory.push(tracking.currentSpeed); - if (tracking.movingAverageHistory.length > this.settings.moving_average_history_size) { - tracking.movingAverageHistory.shift(); - } - - tracking.movingAverageSpeed = SWFUpload.speed.calculateMovingAverage(tracking.movingAverageHistory); - - // Update times - tracking.timeRemaining = (file.size - tracking.bytesUploaded) * 8 / tracking.movingAverageSpeed; - tracking.timeElapsed = (now - tracking.startTime) / 1000; - - // Update percent - tracking.percentUploaded = (tracking.bytesUploaded / file.size * 100); - } - - return tracking; - }; - SWFUpload.speed.removeTracking = function (file, trackingList) { - try { - trackingList[file.id] = null; - delete trackingList[file.id]; - } catch (ex) { - } - }; - - SWFUpload.speed.formatUnits = function (baseNumber, unitDivisors, unitLabels, singleFractional) { - var i, unit, unitDivisor, unitLabel; - - if (baseNumber === 0) { - return "0 " + unitLabels[unitLabels.length - 1]; - } - - if (singleFractional) { - unit = baseNumber; - unitLabel = unitLabels.length >= unitDivisors.length ? unitLabels[unitDivisors.length - 1] : ""; - for (i = 0; i < unitDivisors.length; i++) { - if (baseNumber >= unitDivisors[i]) { - unit = (baseNumber / unitDivisors[i]).toFixed(2); - unitLabel = unitLabels.length >= i ? " " + unitLabels[i] : ""; - break; - } - } - - return unit + unitLabel; - } else { - var formattedStrings = []; - var remainder = baseNumber; - - for (i = 0; i < unitDivisors.length; i++) { - unitDivisor = unitDivisors[i]; - unitLabel = unitLabels.length > i ? " " + unitLabels[i] : ""; - - unit = remainder / unitDivisor; - if (i < unitDivisors.length -1) { - unit = Math.floor(unit); - } else { - unit = unit.toFixed(2); - } - if (unit > 0) { - remainder = remainder % unitDivisor; - - formattedStrings.push(unit + unitLabel); - } - } - - return formattedStrings.join(" "); - } - }; - - SWFUpload.speed.formatBPS = function (baseNumber) { - var bpsUnits = [1073741824, 1048576, 1024, 1], bpsUnitLabels = ["Gbps", "Mbps", "Kbps", "bps"]; - return SWFUpload.speed.formatUnits(baseNumber, bpsUnits, bpsUnitLabels, true); - - }; - SWFUpload.speed.formatTime = function (baseNumber) { - var timeUnits = [86400, 3600, 60, 1], timeUnitLabels = ["d", "h", "m", "s"]; - return SWFUpload.speed.formatUnits(baseNumber, timeUnits, timeUnitLabels, false); - - }; - SWFUpload.speed.formatBytes = function (baseNumber) { - var sizeUnits = [1073741824, 1048576, 1024, 1], sizeUnitLabels = ["GB", "MB", "KB", "bytes"]; - return SWFUpload.speed.formatUnits(baseNumber, sizeUnits, sizeUnitLabels, true); - - }; - SWFUpload.speed.formatPercent = function (baseNumber) { - return baseNumber.toFixed(2) + " %"; - }; - - SWFUpload.speed.calculateMovingAverage = function (history) { - var vals = [], size, sum = 0.0, mean = 0.0, varianceTemp = 0.0, variance = 0.0, standardDev = 0.0; - var i; - var mSum = 0, mCount = 0; - - size = history.length; - - // Check for sufficient data - if (size >= 8) { - // Clone the array and Calculate sum of the values - for (i = 0; i < size; i++) { - vals[i] = history[i]; - sum += vals[i]; - } - - mean = sum / size; - - // Calculate variance for the set - for (i = 0; i < size; i++) { - varianceTemp += Math.pow((vals[i] - mean), 2); - } - - variance = varianceTemp / size; - standardDev = Math.sqrt(variance); - - //Standardize the Data - for (i = 0; i < size; i++) { - vals[i] = (vals[i] - mean) / standardDev; - } - - // Calculate the average excluding outliers - var deviationRange = 2.0; - for (i = 0; i < size; i++) { - - if (vals[i] <= deviationRange && vals[i] >= -deviationRange) { - mCount++; - mSum += history[i]; - } - } - - } else { - // Calculate the average (not enough data points to remove outliers) - mCount = size; - for (i = 0; i < size; i++) { - mSum += history[i]; - } - } - - return mSum / mCount; - }; - -} \ No newline at end of file diff --git a/thirdparty/swfupload/plugins/swfupload.swfobject.js b/thirdparty/swfupload/plugins/swfupload.swfobject.js deleted file mode 100644 index 7f5f459e3..000000000 --- a/thirdparty/swfupload/plugins/swfupload.swfobject.js +++ /dev/null @@ -1,111 +0,0 @@ -/* - SWFUpload.SWFObject Plugin - - Summary: - This plugin uses SWFObject to embed SWFUpload dynamically in the page. SWFObject provides accurate Flash Player detection and DOM Ready loading. - This plugin replaces the Graceful Degradation plugin. - - Features: - * swfupload_load_failed_hander event - * swfupload_pre_load_handler event - * minimum_flash_version setting (default: "9.0.28") - * SWFUpload.onload event for early loading - - Usage: - Provide handlers and settings as needed. When using the SWFUpload.SWFObject plugin you should initialize SWFUploading - in SWFUpload.onload rather than in window.onload. When initialized this way SWFUpload can load earlier preventing the UI flicker - that was seen using the Graceful Degradation plugin. - - - - Notes: - You must provide set minimum_flash_version setting to "8" if you are using SWFUpload for Flash Player 8. - The swfuploadLoadFailed event is only fired if the minimum version of Flash Player is not met. Other issues such as missing SWF files, browser bugs - or corrupt Flash Player installations will not trigger this event. - The swfuploadPreLoad event is fired as soon as the minimum version of Flash Player is found. It does not wait for SWFUpload to load and can - be used to prepare the SWFUploadUI and hide alternate content. - swfobject's onDomReady event is cross-browser safe but will default to the window.onload event when DOMReady is not supported by the browser. - Early DOM Loading is supported in major modern browsers but cannot be guaranteed for every browser ever made. -*/ - - -/* SWFObject v2.1 - Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis - This software is released under the MIT License -*/ -var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("