267 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			267 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| /* ******************************************
 | |
|  *	FileProgress Object
 | |
|  *	Control object for displaying file info
 | |
|  * ****************************************** */
 | |
| 
 | |
| function FileThumb(element_id) {
 | |
|   this.element = $('#' + element_id);
 | |
|   this.init();
 | |
| }
 | |
| 
 | |
| FileThumb.prototype.init = function(){
 | |
|   this.element.find('div.FCKThumb').each(function(){
 | |
|     FileThumb.observe(this);
 | |
|   });
 | |
| }
 | |
| 
 | |
| FileThumb.observe = function(element){
 | |
|   var element = $(element);
 | |
|   
 | |
|   element.unbind('mouseover');
 | |
|   element.unbind('mouseout');
 | |
|   element.unbind('click');
 | |
|     
 | |
|   element.bind('mouseover', function(){ $(this).addClass('FCKSelectedBox') } );
 | |
|   element.bind('mouseout', function(){ $(this).removeClass('FCKSelectedBox') } );
 | |
|   element.find('div.FCKAsset').bind('click', function(){ setUrl( $(this).find('img.image').attr('alt') ); return false; } );
 | |
| }
 | |
| 
 | |
| function ToolBar(element_id){
 | |
|   this.container = document.getElementById(element_id);
 | |
|   this.buttons = new Array();
 | |
|       
 | |
|   this.table = null;
 | |
| }
 | |
| 
 | |
| ToolBar.prototype.clear = function(){
 | |
|   this.buttons = new Array();
 | |
| }
 | |
| 
 | |
| ToolBar.prototype.init = function(){
 | |
|   this.table = document.createElement('table');
 | |
|   this.table.appendChild(document.createElement("TBODY"));
 | |
|   this.table.border = 0;
 | |
|   this.table.setAttribute('cellspacing', 0);
 | |
|   this.table.setAttribute('cellpadding', 0);
 | |
|   this.table.className = "TB_Toolbar";
 | |
|   
 | |
|   var row = this.table.tBodies[0].insertRow(0);
 | |
|   var cell = row.insertCell(row.cells.length);
 | |
|   
 | |
|   div = document.createElement('div');
 | |
|   div.className = 'TB_Start';
 | |
|   div.innerHTML = " "
 | |
|   cell.appendChild(div);
 | |
|   
 | |
|   this.init_buttons(row);
 | |
|   
 | |
|   this.container.appendChild(this.table);
 | |
| }
 | |
| 
 | |
| ToolBar.prototype.init_buttons = function(row){
 | |
|       
 | |
|   for(var i = 0; i < this.buttons.length; i++)
 | |
|   {
 | |
|     var cell = row.insertCell(row.cells.length);  
 | |
|     this.buttons[i].init();
 | |
|     cell.appendChild(this.buttons[i].element);
 | |
|   }
 | |
| }
 | |
| 
 | |
| function Button(title, text, image){
 | |
|   this.title = title;
 | |
|   this.text = text;
 | |
|   this.image = image;
 | |
|   
 | |
|   this.callback = function(){};
 | |
|   this.element = null;
 | |
| }
 | |
| 
 | |
| Button.prototype.init = function(){
 | |
|   this.element = document.createElement('div');
 | |
|   this.element.title = this.title;
 | |
|   this.element.className = "TB_Button";
 | |
|   
 | |
|   table = document.createElement('table');
 | |
|   table.appendChild(document.createElement("TBODY"));
 | |
|   table.border = 0;
 | |
|   table.setAttribute('cellspacing', 0);
 | |
|   table.setAttribute('cellpadding', 0);
 | |
|   
 | |
|   var row = table.tBodies[0].insertRow(0);
 | |
|   var cell = row.insertCell(row.cells.length);
 | |
|   
 | |
|   image = document.createElement('img');
 | |
|   image.src = '/javascripts/ckeditor/images/' + this.image;
 | |
|   image.className = 'TB_Button_Image';
 | |
|   
 | |
|   cell.appendChild(image);
 | |
|   
 | |
|   var cell = row.insertCell(row.cells.length);
 | |
|   cell.className = 'TB_Button_Text';
 | |
|   cell.innerHTML = this.text;
 | |
|   row.appendChild(cell);
 | |
|   
 | |
|   var cell = row.insertCell(row.cells.length);
 | |
|   image = document.createElement('img');
 | |
|   image.src = '/javascripts/ckeditor/images/spacer.gif';
 | |
|   image.className = 'TB_Button_Padding';
 | |
|   cell.appendChild(image);
 | |
|   
 | |
|   this.element.appendChild(table);
 | |
|   
 | |
|   this.element.onclick = this.callback;
 | |
|   this.element.onmouseover = function addButtonHover() { this.className = "TB_Button_Off_Over"; }
 | |
|   this.element.onmouseout = function removeButtonHover() { this.className = "TB_Button"; }
 | |
| }
 | |
| 
 | |
| function FileProgress(file, targetID) {
 | |
| 	this.fileProgressID = "divFileProgress";
 | |
| 
 | |
| 	this.fileProgressWrapper = document.getElementById(this.fileProgressID);
 | |
| 	if (!this.fileProgressWrapper) {
 | |
| 		this.fileProgressWrapper = document.createElement("div");
 | |
| 		this.fileProgressWrapper.className = "progressWrapper";
 | |
| 		this.fileProgressWrapper.id = this.fileProgressID;
 | |
| 
 | |
| 		this.fileProgressElement = document.createElement("div");
 | |
| 		this.fileProgressElement.className = "progressContainer";
 | |
| 
 | |
| 		var progressCancel = document.createElement("a");
 | |
| 		progressCancel.className = "progressCancel";
 | |
| 		progressCancel.href = "#";
 | |
| 		progressCancel.style.visibility = "hidden";
 | |
| 		progressCancel.appendChild(document.createTextNode(" "));
 | |
| 
 | |
| 		var progressText = document.createElement("div");
 | |
| 		progressText.className = "progressName";
 | |
| 		progressText.appendChild(document.createTextNode(file.name));
 | |
| 
 | |
| 		var progressBar = document.createElement("div");
 | |
| 		progressBar.className = "progressBarInProgress";
 | |
| 
 | |
| 		var progressStatus = document.createElement("div");
 | |
| 		progressStatus.className = "progressBarStatus";
 | |
| 		progressStatus.innerHTML = " ";
 | |
| 
 | |
| 		this.fileProgressElement.appendChild(progressCancel);
 | |
| 		this.fileProgressElement.appendChild(progressText);
 | |
| 		this.fileProgressElement.appendChild(progressStatus);
 | |
| 		this.fileProgressElement.appendChild(progressBar);
 | |
| 
 | |
| 		this.fileProgressWrapper.appendChild(this.fileProgressElement);
 | |
| 
 | |
| 		document.getElementById(targetID).appendChild(this.fileProgressWrapper);
 | |
| 		//fadeIn(this.fileProgressWrapper, 0);
 | |
| 
 | |
| 	} else {
 | |
| 		this.fileProgressElement = this.fileProgressWrapper.firstChild;
 | |
| 		this.fileProgressElement.childNodes[1].firstChild.nodeValue = file.name;
 | |
| 	}
 | |
| 
 | |
| 	this.height = this.fileProgressWrapper.offsetHeight;
 | |
| 
 | |
| }
 | |
| FileProgress.prototype.setProgress = function (percentage) {
 | |
| 	this.fileProgressElement.className = "progressContainer green";
 | |
| 	this.fileProgressElement.childNodes[3].className = "progressBarInProgress";
 | |
| 	this.fileProgressElement.childNodes[3].style.width = percentage + "%";
 | |
| };
 | |
| FileProgress.prototype.setComplete = function () {
 | |
| 	this.fileProgressElement.className = "progressContainer blue";
 | |
| 	this.fileProgressElement.childNodes[3].className = "progressBarComplete";
 | |
| 	this.fileProgressElement.childNodes[3].style.width = "";
 | |
| 
 | |
| };
 | |
| FileProgress.prototype.setError = function () {
 | |
| 	this.fileProgressElement.className = "progressContainer red";
 | |
| 	this.fileProgressElement.childNodes[3].className = "progressBarError";
 | |
| 	this.fileProgressElement.childNodes[3].style.width = "";
 | |
| 
 | |
| };
 | |
| FileProgress.prototype.setCancelled = function () {
 | |
| 	this.fileProgressElement.className = "progressContainer";
 | |
| 	this.fileProgressElement.childNodes[3].className = "progressBarError";
 | |
| 	this.fileProgressElement.childNodes[3].style.width = "";
 | |
| 
 | |
| };
 | |
| FileProgress.prototype.setStatus = function (status) {
 | |
| 	this.fileProgressElement.childNodes[2].innerHTML = status;
 | |
| };
 | |
| 
 | |
| FileProgress.prototype.toggleCancel = function (show, swfuploadInstance) {
 | |
| 	this.fileProgressElement.childNodes[0].style.visibility = show ? "visible" : "hidden";
 | |
| 	if (swfuploadInstance) {
 | |
| 		var fileID = this.fileProgressID;
 | |
| 		this.fileProgressElement.childNodes[0].onclick = function () {
 | |
| 			swfuploadInstance.cancelUpload(fileID);
 | |
| 			return false;
 | |
| 		};
 | |
| 	}
 | |
| };
 | |
| 
 | |
| FileProgress.prototype.createThumbnail = function(serverData) {
 | |
|   var object = jQuery.parseJSON(serverData);
 | |
|   var container = document.getElementById('container');
 | |
|   var asset = (typeof(object.asset) == 'undefined') ? object : object.asset;
 | |
|   
 | |
|   var image_src = null;
 | |
|   var image_alt = null;
 | |
|   var file_size = null;
 | |
|   var file_name = null;
 | |
|   var file_date = null;
 | |
|   
 | |
|   if (typeof asset == 'undefined')
 | |
|     return;
 | |
|   
 | |
|   image_alt = asset.url;
 | |
|   file_size = asset.size;
 | |
|   file_name = asset.filename;
 | |
|   file_date = asset.format_created_at;
 | |
|   
 | |
|   image_src = asset.url_thumb;
 | |
|   image_alt = asset.url_content;
 | |
|   
 | |
|   var thumb = document.createElement('DIV');
 | |
|   thumb.className = 'FCKThumb';
 | |
|   
 | |
|   var div = document.createElement('DIV');
 | |
|   div.className = 'FCKAsset';
 | |
|   
 | |
|   var table = document.createElement('TABLE');
 | |
|   table.appendChild(document.createElement("TBODY"));
 | |
|   table.border = 0;
 | |
|   table.setAttribute('cellspacing', 0);
 | |
|   table.setAttribute('cellpadding', 0);
 | |
|   table.setAttribute('width', 100);
 | |
|   table.setAttribute('height', 100);
 | |
|   
 | |
|   var row = table.tBodies[0].insertRow(0);
 | |
|   var cell = row.insertCell(row.cells.length);
 | |
|   cell.setAttribute('align', 'center');
 | |
|   cell.setAttribute('valign', 'middle');
 | |
|   
 | |
|   cell.innerHTML = "<img src='" + image_src + "' alt='" + image_alt + "' title='" + file_name + "' class='image' onerror=\"this.src='/javascripts/ckeditor/images/ckfnothumb.gif'\" />"
 | |
|   
 | |
|   var div_name = document.createElement('DIV');
 | |
|   div_name.className = "FCKFileName";
 | |
|   div_name.innerHTML = file_name;
 | |
|   
 | |
|   var div_date = document.createElement('DIV');
 | |
|   div_date.className = "FCKFileDate";
 | |
|   div_date.innerHTML = file_date;
 | |
|   
 | |
|   var div_size = document.createElement('DIV');
 | |
|   div_size.className = "FCKFileSize";
 | |
|   div_size.innerHTML = file_size;
 | |
|   
 | |
|   div.appendChild(table);
 | |
|   div.appendChild(div_name);
 | |
|   div.appendChild(div_date);
 | |
|   div.appendChild(div_size);
 | |
|   thumb.appendChild(div);
 | |
|   
 | |
|   container.appendChild(thumb);
 | |
|   FileThumb.observe(thumb);
 | |
| };
 |