/** * File: ThumbnailStripField.js */ /** * Class: ThumbnailStripField */ 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('#FolderImages'); 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() { var self = this; 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 inputField = $(RegExp.$1), parentField = inputField.parentNode; if(parentField) jQuery(parentField).bind('change', function() { self.ajaxGetFiles(jQuery(inputField).val()); }); 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; var folderID = null; if (parentField && parentField.inputTag) folderID = parentField.inputTag.value $('Flash').ajaxGetFiles(folderID, searchText); $('FolderImages').ajaxGetFiles(folderID, searchText); }, 500); }); } } }, ajaxGetFiles: function(folderID, searchText, callback) { if(!callback) callback = this.reapplyBehaviour.bind(this); var securityID = ($('SecurityID') ? '&SecurityID=' + $('SecurityID').value : ''); this.innerHTML = '