ThumbnailStripField = Class.create(); // We do this instead of div.thumbnailstrip for efficiency. It means that ThumbnailStripField can only be used in the // CMS toolbar ThumbnailStripField.applyTo('#Image'); ThumbnailStripField.applyTo('#Flash'); ThumbnailStripField.prototype = { /** * @var updateMethod string Specifies the Ajax-call for getting files * (currently either "getimages" or "getflash"). This can be specified * in the PHP-constructor of ThumbnailStripField and is passed to the client * as a fake css-class. */ updateMethod: 'getimages', initialize: function() { try { this.updateMethod = this.className.match(/updatemethod=([^ ]+)/)[1]; } catch(err) {} if(this.className.match(/parent=([^ ]+)/)) { // HACK: This is hard-coded to only work with TreeDropdownFields var parentField = $(RegExp.$1).parentNode; if(parentField) { parentField.observeMethod('Change', this.ajaxGetFiles.bind(this)); } var searchField = $$('#' + this.updateMethod + 'Search input')[0]; var timeout = undefined; if(searchField) { Event.observe(searchField, 'keypress', function(event) { if(timeout != undefined) clearTimeout(timeout); timeout = setTimeout(function() { var searchText = searchField.value; $('Flash').ajaxGetFiles(null, searchText); $('Image').ajaxGetFiles(null, searchText); }, 500); }); } } }, ajaxGetFiles: function(folderID, searchText, callback) { if(!callback) callback = this.reapplyBehaviour.bind(this); var securityID = ($('SecurityID') ? '&SecurityID=' + $('SecurityID').value : ''); this.innerHTML = '