Apache2-Translation

 view release on metacpan or  search on metacpan

lib/Apache2/Translation/Admin/my.js  view on Meta::CPAN

    focus=$(counter);
  }

  if( where==null ) {
    focus=focus.getElementsByTagName('input');

    for( var i=0; i<focus.length; i++ ) {
      if( focus[i].type=='text' ) {
	focus[i].focus();
	return;
      }
    }
    return;
  } else {
    var trs=focus.getElementsByTagName('tr');
    var n=0;
    for( var i=0; i<trs.length; i++ ) {
      if( trs[i].className=='tdc' && n==where ) {
	trs[i].getElementsByTagName('textarea')[0].focus();
	return;
      } else if( trs[i].className=='tdc' ) n++;
    }
    // not found so far. Set focus to the last textarea
    trs[trs.length-1].getElementsByTagName('textarea')[0].focus();
    return;
  }
}

function focus2index(o) {
  if( !o ) return null;
  o=find_parent(o, {tagName: 'TR', className: 'tdc'});
  if( !o ) return null;
  var trs=o.parentNode.getElementsByTagName('TR');
  var n=0;
  for( var i=0; i<trs.length; i++ ) {
    if( trs[i]==o ) return n;
    if( trs[i].className=='tdc' ) n++;
  }
  return null;
}

function xopen( counter ) {
  var data=get_data(counter);
  if( $('div'+counter).innerHTML.length>0 ) {
    Element.show( 'div'+counter );
    if( $('form'+counter).getAttribute('new_element') ) {
      $('reload'+counter).style.visibility='hidden';
      //Element.hide( 'reload'+counter );
    } else {
      $('reload'+counter).style.visibility='';
      //Element.show( 'reload'+counter );
    }
    Element.update( 'a'+counter, opener[2] );
    set_focus_to_first_input( counter );
  } else {
    Element.update( 'a'+counter, opener[1] );
    Element.show( 'progress' );
    new Ajax.Updater( { success: 'div'+counter },
	  	      'index.html',
		      { method: 'post',
			asynchronous: 1,
			parameters: {
			  a: 'fetch',
			  key: data.key,
			  uri: data.uri,
			  counter: counter
			},
		        onComplete: function(req) {
			  if( 200<=req.status && req.status<300 ) {
			    add_resizer( counter );
			    Element.show( 'div'+counter );
			    $('save'+counter).style.visibility='hidden';
			    //Element.hide( 'save'+counter );
			    $('reload'+counter).style.visibility='';
			    //Element.show( 'reload'+counter );
			    Element.update( 'a'+counter, opener[2] );
			    add_inner_shortcuts( counter );
			    set_focus_to_first_input( counter );
			  } else {
			    Element.update( 'a'+counter, opener[0] );
			    var err;
			    var errcode;
			    try {
			      err=req.getResponseHeader("X-Error");
			      errcode=req.getResponseHeader("X-ErrorCode");
			    } catch(e) {}
			    if( err != null && err.length > 0 ) {
			      alert("Sorry, an error has occured.\n"+
				    "The server says: "+err);
			      if( errcode=="1" ) xbdelete(counter);
			    } else {
			      alert("Sorry, an error has occured.\n"+
				    "The server says: "+req.statusText+" ("+
				    req.status+")");
			    }
			  }
			  Element.hide( 'progress' );
			}
		      } );
  }
}

function xreload( counter, o, focus ) {
  if(o) o.blur();
  focus=focus2index(focus);
  var data=get_data(counter);
  Element.update( 'a'+counter, opener[1] );
  Element.show( 'progress' );
  new Ajax.Updater( { success: 'div'+counter },
	  	      'index.html',
		    { method: 'post',
		      asynchronous: 1,
		      parameters: {
		        a: 'fetch',
			key: data.key,
			uri: data.uri,
			counter: counter
		      },
		      onComplete: function(req) {
		        if( 200<=req.status && req.status<300 ) {
			  add_resizer( counter );
		          //Element.show( 'div'+counter );
			  $('save'+counter).style.visibility='hidden';
		          //Element.hide( 'save'+counter );
			  $('reload'+counter).style.visibility='';
		          //Element.show( 'reload'+counter );
		          Element.update( 'a'+counter, opener[2] );
			  var f=$('form'+counter);
			  update_header(counter, f.newkey.value, f.newuri.value);
			  add_inner_shortcuts( counter );
			  set_focus_to_first_input( counter, focus );
		        } else {
		          Element.update( 'a'+counter, opener[2] );
			  var err;
			  var errcode;
			  try {
			    err=req.getResponseHeader("X-Error");
			    errcode=req.getResponseHeader("X-ErrorCode");
			  } catch(e) {}
			  if( err != null && err.length > 0 ) {
			    alert("Sorry, an error has occured.\n"+
				  "The server says: "+err);
			    if( errcode=="1" ) xbdelete(counter);
			  } else {
			    alert("Sorry, an error has occured.\n"+
				  "The server says: "+req.statusText+" ("+
				  req.status+")");
			  }
		        }
			Element.hide( 'progress' );
		      }
		    } );
  return false;
}

function xclose( counter ) {
  Element.hide( 'div'+counter );
  $('reload'+counter).style.visibility='hidden';
  //Element.hide( 'reload'+counter );
  Element.update( 'a'+counter, opener[0] );
  $('a'+counter).focus();
}

function xtoggle( counter, o ) {
  if(o) o.blur();
  if( Element.visible( 'div'+counter ) ) {
    xclose( counter );
  } else {
    if( $('a'+counter).innerHTML == opener[1] ) {
      return false;
    }
    xopen( counter );

lib/Apache2/Translation/Admin/my.js  view on Meta::CPAN

      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+" ("+
				  req.status+")");
			  }
			}
			var el=$('a'+counter);
			if( el ) {
			  Element.update( el, opener[2] );
			  set_focus_to_first_input( counter, focus );
			}
			Element.hide( 'progress' );
		      }
                    } );
  return false;
}

function get_form_counter( o ) {
  return find_parent( o, {tagName: 'FORM'} ).getAttribute("ADM_COUNTER");
}

function xinsert( o, where ) {
  if(o) o.blur();
  var tr=find_parent( o, {tagName: 'TR', className: 'tdc'} );
  var newnode=tr.cloneNode(true);

  var ta=newnode.getElementsByTagName("textarea");
  ta[0].value='';
  if( ta && ta.length>1 ) ta[1].value='';

  var hidden=newnode.getElementsByTagName("td")[0];
  hidden.setAttribute("ADM_ORDER", "");
  hidden.setAttribute("ADM_ID", "");

  add_resizer( newnode );



( run in 0.775 second using v1.01-cache-2.11-cpan-2398b32b56e )