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">'+
	'				&nbsp;<a href="#" onclick="return xinsert(this, -1);"'+
	'						 title="new action above"><img src="1uparrow.gif"></a>'+
	'				<br>'+
	'				&nbsp;<a href="#" onclick="return xinsert(this, 1);"'+
	'						 title="new action below"><img src="1downarrow.gif"></a>'+
	'			</td>'+
	'			<td class="control">'+
	'				&nbsp;<a href="#" onclick="return xbinsert(this, -1);"'+
	'						 title="new block above"><img src="2uparrow.gif"></a>'+
	'				<br>'+
	'				&nbsp;<a href="#" onclick="return xbinsert(this, 1);"'+
	'						 title="new block below"><img src="2downarrow.gif"></a>'+
	'			</td>'+
	'			<td class="control">'+
	'				&nbsp;<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 )