| /******************************************************************************* |
| * 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 |
| * Kit Lo (IBM) - [281434] Syncup overuses the "possibly incorrect" flag |
| * Kit Lo (IBM) - [370349] Remove [link to this file/key] |
| *******************************************************************************/ |
| |
| YAHOO.projectStringsManager = { |
| trCounter : 0, |
| |
| getAjaxProjectStrings : function(){ |
| |
| if(!YAHOO.languageManager.getSelected() || |
| !YAHOO.projectManager.getSelected() || |
| !YAHOO.versionManager.getSelected() || |
| !YAHOO.filesManager.getSelected() |
| ){ |
| var domNode = document.getElementById('projecs-strings-area'); |
| domNode.innerHTML = ""; |
| translationClear(); |
| |
| return false; |
| } |
| |
| var callback = |
| { |
| sp : this, |
| start:function(eventType, args){ |
| }, |
| success: function(o) { |
| var titleNode = document.getElementById('string-title'); |
| var filename = YAHOO.filesManager.getSelected().filename; |
| if (filename.length > 150) { |
| filename = filename.substr(0, (150 - 5) / 2) + "(...)" + filename.substr(filename.length - (150 - 5) / 2); |
| } |
| var href = '<a href="?project=' + YAHOO.projectManager.getSelected().project; |
| href += '&version=' + YAHOO.versionManager.getSelected().version; |
| href += '&file=' + YAHOO.filesManager.getSelected().filename + '">'; |
| |
| // [370349] Remove [link to this file/key] |
| var someString = 'Strings In File <span id="title-link">'; |
| someString += href; |
| someString += filename; |
| someString += '</a>'; |
| titleNode.innerHTML = someString; |
| |
| var domNode = document.getElementById('projecs-strings-area'); |
| domNode.innerHTML = ""; |
| var values = new Object(); |
| values.cssID = "translatable-strings-labels-area"; |
| values.cssClass = ""; |
| values.string = "String"; |
| values.translation = "Last Translation"; |
| values.translator = "User"; |
| values.createdon = "Created On"; |
| this.tableDom = this.sp.createHTML(values) |
| domNode.appendChild(this.tableDom); |
| |
| // translationClear(); |
| |
| var ntDomNode = document.getElementById('not-translated'); |
| this.sp.tableDom = document.createElement("table") |
| this.sp.tableDom.id = "strings-in-file-table"; |
| this.sp.tableDom.className = "translatable"; |
| this.sp.tableDom.cellSpacing = 0; |
| this.sp.tableDom.width = "100%" |
| ntDomNode.innerHTML = ""; |
| ntDomNode.appendChild(this.sp.tableDom); |
| |
| if(o.responseText){ |
| YAHOO.projectStringsManager.createStringUI(o,this.sp); |
| } |
| }, |
| failure: function(o) { |
| YAHOO.log('failed!'); |
| } |
| } |
| |
| //start spinner |
| var domNode = document.getElementById('not-translated'); |
| YAHOO.spinable.attach(domNode); |
| YAHOO.util.Connect.asyncRequest('GET', "callback/getStringsforProject.php", callback, null); |
| }, |
| |
| createStringUI: function(o){ |
| var response = eval("("+o.responseText+")"); |
| if(response.length == 0){ |
| return 0; |
| } |
| |
| var callback2 = |
| { |
| sp : this, |
| start:function(eventType, args){ |
| }, |
| success: function(o) { |
| YAHOO.projectStringsManager.createStringUI(o); |
| } |
| } |
| |
| if(response[response.length-1].paged > 0){ |
| YAHOO.util.Connect.asyncRequest('GET', "callback/getStringsforProject.php?paged="+response[response.length-1].paged, callback2, null); |
| } |
| |
| var ntDomNode = document.getElementById('not-translated'); |
| for(var i = 0; i < response.length; i++){ |
| if(response[i].paged > 0){ |
| //do nothing |
| }else{ |
| var proj = new projectString(response[i]); |
| proj.createHTML(this.tableDom); |
| if(response[i]['current']){ |
| YAHOO.projectStringsManager.updateSelected(proj, ntDomNode.scrollHeight); |
| } |
| } |
| } |
| }, |
| |
| createHTML : function(values,appenToDOm){ |
| var tableDom; |
| var tr; |
| if(typeof appenToDOm == "undefined"){ |
| tableDom = document.createElement("table"); |
| tableDom.cellSpacing = 0; |
| tableDom.width = "100%"; |
| tr = tableDom.insertRow(0); |
| this.trCounter = 0; |
| }else{ |
| tableDom = appenToDOm; |
| tr = tableDom.insertRow(this.trCounter); |
| this.trCounter++; |
| } |
| |
| tr.id = values['cssID']; |
| tr.className = values['cssClass']; |
| |
| td = tr.insertCell(0); |
| td.innerHTML = values['string']; |
| td.width = "30%"; |
| |
| td = tr.insertCell(1); |
| td.innerHTML = values['translation']; |
| td.width = "50%"; |
| |
| td = tr.insertCell(2); |
| td.innerHTML = values['translator']; |
| td.width = "8%"; |
| |
| td = tr.insertCell(3); |
| td.innerHTML = values['createdon']; |
| td.width = "12%"; |
| |
| if(typeof appenToDOm == "undefined"){ |
| return tableDom; |
| }else{ |
| return tr; |
| } |
| }, |
| |
| 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('not-translated'); |
| if(domNode.scrollTop == 0) { |
| domNode.scrollTop = scrollto_position; |
| } |
| |
| var titleNode = document.getElementById('translation-title'); |
| var keyname = this.selected.data['stringName'] |
| if (keyname.length > 130) { |
| keyname = keyname.substr(0, (130 - 5) / 2) + "(...)" + keyname.substr(keyname.length - (130 - 5) / 2); |
| } |
| var href = '<a href="?project=' + YAHOO.projectManager.getSelected().project; |
| href += '&version=' + YAHOO.versionManager.getSelected().version; |
| href += '&file=' + YAHOO.filesManager.getSelected().filename; |
| href += '&string=' + this.selected.data['stringName'] + '">'; |
| |
| // [370349] Remove [link to this file/key] |
| var someString = 'Translation For Key <span id="title-link">'; |
| someString += href; |
| someString += keyname; |
| someString += '</a>'; |
| titleNode.innerHTML = someString; |
| showTranslateStringForm(this.selected.data['stringId'],this.selected.domElem.rowIndex); |
| }, |
| |
| updateStringTableCurrentTranslation: function(stringTableIndex,trans){ |
| this.tableDom.rows[stringTableIndex].cells[1].innerHTML = trans; |
| }, |
| |
| updateStringTableFuzzy: function(stringTableIndex, fuzzy){ |
| if(fuzzy == 1) { |
| this.tableDom.rows[stringTableIndex].cells[1].innerHTML = '<img src="images/fuzzy.png" />' + this.tableDom.rows[stringTableIndex].cells[1].innerHTML; |
| } |
| } |
| //$stringTableIndex |
| }; |
| |
| function projectString(dataIn){ |
| projectString.superclass.constructor.call(); |
| this.initSelectable(); |
| this.data = dataIn; |
| } |
| YAHOO.extend(projectString,selectable); |
| projectString.prototype.isSelected = function(){ |
| return (this == YAHOO.projectStringsManager.selected); |
| } |
| |
| projectString.prototype.clicked = function(e){ |
| YAHOO.projectStringsManager.updateSelected(this); |
| } |
| projectString.prototype.createHTML = function(tableDom){ |
| var values = new Object(); |
| values.cssID = ""; |
| values.cssClass = ""; |
| if(this.data['nontranslatable']){ |
| values.cssClass = "nontranslatable"; |
| } |
| var temp = this.data['text'] ? this.data['text'] : '' |
| values.string = "<div style='width: 100%; overflow: hidden;'>"+temp+"</div>"; |
| |
| temp = this.data['translationString'] ? this.data['translationString'] : '' |
| |
| // [281434] Syncup overuses the "possibly incorrect" flag |
| // if(this.data['fuzzy'] == 1 && this.data['nontranslatable'] != 1) { |
| // temp = "<img src='images/fuzzy.png' title='Possibly incorrect' />" + temp; |
| // } |
| |
| values.translation = "<div style='width: 100%; overflow: hidden;'>"+temp+"</div>"; |
| values.translator = this.data['translator'] ? this.data['translator'] : ''; |
| values.createdon = this.data['createdOn']; |
| values.stringname = this.data['stringname']; |
| values.fuzzy = this.data['fuzzy'] |
| |
| var lineDome = YAHOO.projectStringsManager.createHTML(values,tableDom); |
| this.domElem = lineDome; |
| this.addEvents(); |
| this.initSelectable(); |
| } |