blob: 013576cc7d23a7d77f0d94a44f486f65e3d64768 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 Eclipse Foundation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Paul Colton (Aptana)- initial API and implementation
* Eclipse Foundation
*******************************************************************************/
YAHOO.filesManager = {
getAjax: function(selectedIn){
var callback =
{
start:function(eventType, args){
},
success: function(o) {
var domNode = document.getElementById('files-area');
var response;
if(o.responseText){
response = eval("("+o.responseText+")");
}
if(response){
// YAHOO.log(o.responseText);
domNode.innerHTML = "";
for(var i = 0; i < response.length; i++){
var proj = new afile(response[i]);
domNode.appendChild(proj.createHTML());
if(response[i]['current']){
YAHOO.filesManager.updateSelected(proj,domNode.scrollHeight);
}
}
}else{
domNode.innerHTML = "";
}
YAHOO.projectStringsManager.getAjaxProjectStrings();
},
failure: function(o) {
YAHOO.log('failed!');
}
}
//start spining;
var domNode = document.getElementById('files-area');
YAHOO.spinable.attach(domNode);
YAHOO.util.Connect.asyncRequest('GET', "callback/getFilesForProject.php", callback, null);
},
getSelected: function(){
return this.selected;
},
updateSelected: function(selec, scrollto_position){
if(this.selected){
this.selected.unselect();
}
this.selected = selec;
this.selected.selected();
var domNode = document.getElementById('files-area');
if(domNode.scrollTop == 0) {
domNode.scrollTop = scrollto_position;
}
}
};
function afile(dataIn){
this.filename = dataIn['name'];
this.pct = dataIn['pct'];
afile.superclass.constructor.call();
this.initSelectable();
}
YAHOO.extend(afile,selectable);
afile.prototype.isSelected = function(){
return (this == YAHOO.filesManager.selected);
}
afile.prototype.clicked = function(e){
YAHOO.util.Event.stopEvent(e);
var callback =
{
start:function(eventType, args){
},
success: function(o) {
YAHOO.projectStringsManager.getAjaxProjectStrings();
},
failure: function(o) {
YAHOO.log('failed!');
}
}
var target = YAHOO.util.Event.getTarget(e);
YAHOO.filesManager.updateSelected(this);
YAHOO.util.Connect.asyncRequest('POST', "callback/setCurrentFile.php", callback, "file="+this.filename);
if(document.getElementById('translation-form')) {
document.getElementById('translation-form').innerHTML = "";
}
}
afile.prototype.createHTML = function(){
this.domElem = document.createElement("li");
var filename_display = this.filename;
if(filename_display.length > 90) {
filename_display = filename_display.substr(0, 40) + "(...)" + filename_display.substr(filename_display.length - 40);
}
this.domElem.innerHTML = filename_display + "<span class='percentage_indicator'>&#160; &#160; (" + (this.pct > 0 ? new Number(this.pct).toFixed(1) : 0) + "%)</span>";
this.addEvents();
return this.domElem;
}