Apache2-Translation
view release on metacpan or search on metacpan
lib/Apache2/Translation/Admin/my.js view on Meta::CPAN
xclose( counter );
} else {
if( $('a'+counter).innerHTML == opener[1] ) {
return false;
}
xopen( counter );
}
return false;
}
function xchanged( counter ) {
$('save'+counter).style.visibility='';
//Element.show( 'save'+counter );
var f=$('form'+counter);
update_header(counter, f.newkey.value, f.newuri.value);
return false;
}
function xreorder( counter ) {
var f=$('form'+counter);
var tds=f.getElementsByTagName("td");
var block=0;
var oldblock;
var order;
for (var i=0; i<tds.length; i++) {
if( tds[i].className.match(/^tdc\d+$/) ) {
if( oldblock==null ) {
oldblock=tds[i].getAttribute("ADM_BLOCK");
order=-1;
}
var hi=tds[i].getElementsByTagName("input")[0];
var ta=tds[i].getElementsByTagName("textarea");
var tc;
if( ta && ta.length>1 ) tc=ta[1];
ta=ta[0];
var blk=tds[i].getAttribute("ADM_BLOCK");
var ord=tds[i].getAttribute("ADM_ORDER");
var id =tds[i].getAttribute("ADM_ID");
if( blk!=oldblock ) {
oldblock=blk;
block++;
order=0;
} else {
order++;
}
//debug("oldblock="+oldblock+" block="+block+" oldord="+ord+" ord="+
// order+" id="+id+"\n");
ta.name="action_"+oldblock+"_"+block+"_"+ord+"_"+order+"_"+id;
if( tc ) tc.name="note_"+block+"_"+order;
hi.name="ysize_"+block+"_"+order;
hi.value=Element.getHeight(tds[i])-(Prototype.Browser.IE ? 4 : 0);
}
}
}
function update_header( counter, key, uri ) {
if( uri==":PRE:" || uri==":LOOKUPFILE:" ) {
Element.update( 'header'+counter, key.escapeHTML() );
} else {
Element.update( 'header'+counter,
key.escapeHTML()+" <img class=\"pfeil\" src=\"pfeil.gif\"> "+ uri.escapeHTML() );
}
}
function xupdate( counter, o, focus ) {
if(o) o.blur();
focus=focus2index(focus);
xreorder( counter );
var params=$('form'+counter).getElements().inject
({}, function(hash, element) {
element = $(element);
if (element.disabled) return hash;
var method = element.tagName.toLowerCase();
var parameter = Form.Element.Serializers[method](element);
if (parameter && parameter.length) {
var key = element.name;
if (key.length == 0) return hash;
hash[key]=parameter;
}
return hash;
});
params["a"]="update";
params["counter"]=counter;
var d=get_data(counter);
params["key"]=d.key;
params["uri"]=d.uri;
Element.update( 'a'+counter, opener[1] );
Element.show( 'progress' );
new Ajax.Updater( { success: 'div'+counter },
'index.html',
{ method: 'post',
asynchronous: 1,
parameters: params,
onComplete: function(req) {
if( 200<=req.status && req.status<300 ) {
add_resizer( counter );
$('save'+counter).style.visibility='hidden';
$('reload'+counter).style.visibility='';
var f=$('form'+counter);
set_data( counter, f.newkey.value, f.newuri.value );
update_header(counter, f.newkey.value, f.newuri.value);
add_inner_shortcuts( counter );
} else {
var err;
var errcode;
try {
err=req.getResponseHeader("X-Error");
errcode=req.getResponseHeader("X-ErrorCode");
} catch(e) {}
if( err != null && err.length > 0 ) {
if( errcode=='1' ) {
xbdelete(counter);
} else {
alert("Sorry, an error has occured.\n"+
"The server says: "+err);
}
} else {
alert("Sorry, an error has occured.\n"+
"The server says: "+req.statusText+" ("+
lib/Apache2/Translation/Admin/my.js view on Meta::CPAN
var v=hidden.getAttribute("ADM_ID");
if( v && v.length ) { // need to delete from database
var newnode=document.createElement('input');
newnode.name=("delete_"+hidden.getAttribute("ADM_BLOCK")+"_"+
hidden.getAttribute("ADM_ORDER")+"_"+v);
newnode.value=1;
newnode.type="hidden";
form.appendChild(newnode);
}
parent.removeChild(tr);
update_bg( parent );
$('save'+get_form_counter(parent)).style.visibility='';
//Element.show( 'save'+get_form_counter(parent) );
newfocus.focus();
return false;
}
function check_key( key ) {
var forms=document.getElementsByTagName('form');
for( i=0; i<forms.length; i++ ) {
var k=forms[i].newkey;
if( k!=null && k.value==key ) return 1;
}
var divs=document.getElementsByTagName('div');
for( i=0; i<divs.length; i++ ) {
var k=divs[i].getAttribute("ADM_KEY");
if( k==key ) return 1;
}
return 0;
}
function xnewkey( o, uri ) {
if(o) o.blur();
if( next_counter!=null ) {
var key='newkey';
for( var i=1; check_key(key); i++ ) key='newkey'+i;
if( uri==null ) uri="subroutine";
o=find_parent(o, {tagName: 'H2'});
var newnode=document.createElement('div');
var newfocus=newnode;
newnode.id='div'+next_counter;
newnode.style.display='';
newnode.setAttribute("ADM_KEY", key);
newnode.setAttribute("ADM_URI", uri);
newnode.innerHTML=
( '<div class="fetch">'+
'<form new_element="1" id="form'+next_counter+'"'+
' onsubmit="return false;"'+
' ADM_COUNTER="'+next_counter+'"'+
' ADM_NBLOCKS="1">'+
' <table class="tdc">'+
' <tr>'+
' <td class="tdcol1">New Key:</td>'+
' <td class="tdcol2">'+
' <input type="text" name="newkey" id="key'+next_counter+'" value="'+key.escapeHTML()+'">'+
' </td>'+
' </tr>'+
(uri==":PRE:" || uri==":LOOKUPFILE:"
? (' <input type="hidden" name="newuri" id="uri'+next_counter+'" value="'+uri.escapeHTML()+'">')
: (' <tr>'+
' <td class="tdcol1">New Uri:</td>'+
' <td class="tdcol2">'+
' <input type="text" name="newuri" id="uri'+next_counter+'" value="'+uri.escapeHTML()+'">'+
' </td>'+
' </tr>'))+
' <tr><th colspan="2"><br>Action</th></tr>'+
' <tr class="tdc">'+
' <td ADM_BLOCK="0" ADM_ORDER="" ADM_ID=""'+
' colspan="2" class="tdc1">'+
' <input type="hidden" name="ysize">'+
' <table class="inner_tdc">'+
' <tr>'+
' <td class="fetch_ta">'+
' <textarea class="fetch_ta" rows="1" wrap="off"'+
' title="action field"></textarea>'+
' </td>'+
(can_notes
? (' <td class="comment_ta">'+
' <textarea class="comment_ta" rows="1" wrap="word"'+
' title="comment field"></textarea>'+
' </td>')
: '')+
' </tr>'+
' </table>'+
' </td>'+
' <td class="control">'+
' <a href="#" onclick="return xinsert(this, -1);"'+
' title="new action above"><img src="1uparrow.gif"></a>'+
' <br>'+
' <a href="#" onclick="return xinsert(this, 1);"'+
' title="new action below"><img src="1downarrow.gif"></a>'+
' </td>'+
' <td class="control">'+
' <a href="#" onclick="return xbinsert(this, -1);"'+
' title="new block above"><img src="2uparrow.gif"></a>'+
' <br>'+
' <a href="#" onclick="return xbinsert(this, 1);"'+
' title="new block below"><img src="2downarrow.gif"></a>'+
' </td>'+
' <td class="control">'+
' <a href="#" onclick="return xdelete(this, 1);"'+
' title="delete action"><img src="delete.gif"></a>'+
' </td>'+
' </tr>'+
' </table>'+
'</form>'+
'</div>' );
add_resizer( newnode );
if( o.nextSibling ) {
o.parentNode.insertBefore( newnode, o.nextSibling );
} else {
o.parentNode.appendChild( newnode );
}
newnode=document.createElement('h3');
newnode.innerHTML=
( '<a id="a'+next_counter+'" class="opener" href="#"'+
' title="open/close this block list"'+
' onclick="return xtoggle( '+next_counter+', this )">'+opener[2]+
'</a>'+
'<a href="#" class="opener" id="reload'+next_counter+'"'+
( run in 1.359 second using v1.01-cache-2.11-cpan-39bf76dae61 )