Make the translations page much more compact

Backport translations dropdown fix from branch
This commit is contained in:
james 2008-11-03 02:11:52 +00:00
parent fde29e7a91
commit 065cb658bb
2 changed files with 44 additions and 13 deletions

View File

@ -129,7 +129,7 @@ echo "<th>".i18n("English")." / ".$translangname."</th></tr>\n";
while($r=mysql_fetch_object($q)) while($r=mysql_fetch_object($q))
{ {
echo "<tr>"; echo "<tr>";
echo "<td valign=\"top\">"; echo "<td valign=\"top\" rowspan=\"2\">";
echo "<input type=\"checkbox\" name=\"delete[]\" value=\"$r->strmd5\">\n"; echo "<input type=\"checkbox\" name=\"delete[]\" value=\"$r->strmd5\">\n";
echo "</td><td>"; echo "</td><td>";
echo htmlspecialchars($r->str); echo htmlspecialchars($r->str);
@ -138,10 +138,8 @@ while($r=mysql_fetch_object($q))
echo "</td>"; echo "</td>";
echo "</tr>"; echo "</tr>";
echo "<tr>"; echo "<tr>";
echo "<td></td>";
echo "<td valign=\"top\"><input id=\"val_{$r->strmd5}\" onchange=\"return doFocus('{$r->strmd5}');\" style=\"width: 95%\" type=\"text\" name=\"val[{$r->strmd5}]\" value=\"".htmlspecialchars($r->val)."\" /></td>"; echo "<td valign=\"top\"><input id=\"val_{$r->strmd5}\" onchange=\"return doFocus('{$r->strmd5}');\" style=\"width: 95%\" type=\"text\" name=\"val[{$r->strmd5}]\" value=\"".htmlspecialchars($r->val)."\" /></td>";
echo "</tr>"; echo "</tr>";
echo "<tr><td colspan=\"2\"><hr /></td></tr>";
} }
echo "</table>"; echo "</table>";
echo "<input type=\"submit\" value=\"".i18n("Save")."\">"; echo "<input type=\"submit\" value=\"".i18n("Save")."\">";

View File

@ -42,6 +42,17 @@ var jsTranslateLangs=new Array();
} }
?> ?>
function selectVisibility(vis) {
//we'll always have form0=translationdropdownform, form1=langselectform, form2...infinity=forms on the page
for(x=2;x<document.forms.length;x++) {
var frm=document.forms[x];
for(y=0;y<frm.elements.length;y++) {
var e=frm.elements[y];
if(e.type=="select-one")
e.style.visibility=vis;
}
}
}
function getTranslations(o) function getTranslations(o)
{ {
@ -110,15 +121,17 @@ function translateDropdown(o)
{ {
translationObject=document.getElementById(o); translationObject=document.getElementById(o);
var d=document.getElementById('translationdropdown'); var d=document.getElementById('translationdropdown');
if(translateOpen) if(translateOpen) {
d.style.visibility="hidden"; d.style.visibility="hidden";
selectVisibility("visible");
}
else else
{ {
getTranslations(o); getTranslations(o);
objItem=translationObject; objItem=translationObject;
var tagheight=objItem.offsetHeight; var tagheight=objItem.offsetHeight;
var tagwidth=objItem.offsetWidth; var tagwidth=objItem.offsetWidth+75;
//alert('tagheight='+tagheight+' tagwidth='+tagwidth); //alert('tagheight='+tagheight+' tagwidth='+tagwidth);
@ -134,14 +147,16 @@ function translateDropdown(o)
} while(objParent!="BODY"); } while(objParent!="BODY");
d.style.top=inty+tagheight+"px"; d.style.top=inty+tagheight+"px";
d.style.left=intx+"px"; d.style.left=(intx-75)+"px";
d.style.width=tagwidth+"px"; d.style.width=(tagwidth)+"px";
// d.style.height=dropdownheight+"px"; // d.style.height=dropdownheight+"px";
d.style.visibility="visible"; d.style.visibility="visible";
oButton=document.getElementById('buttonsavetranslations'); oButton=document.getElementById('buttonsavetranslations');
oButton.value="<?=i18n("Save Translations")?>"; oButton.value="<?=i18n("Save Translations")?>";
selectVisibility("hidden");
} }
translateOpen=!translateOpen; translateOpen=!translateOpen;
return false; return false;
@ -198,19 +213,37 @@ function handleSaveResponse()
<? <?
$num=count($config['languages'])-1; //subtract 1 for english $num=count($config['languages'])-1; //subtract 1 for english
$divheight=($num*30)+50; $divheight=($num*25)+50;
?> ?>
<div name="translationdropdown" id="translationdropdown" style="background-color: white; visibility: hidden; position: absolute; border: 1px solid grey; top:0px; left:0px; width:300px; height:<?=$divheight?>px; overflow: auto"> <style type="text/css">
.translationdropdown
{
position: absolute;
z-index: 100;
overflow: auto;
width: 300px;
background-color: #669966;
visibility: hidden;
border: 0px;
top: 0px;
left:0px;
width:300px;
height:<?=$divheight?>px;
text-align: center;
}
</style>
<div class="translationdropdown" name="translationdropdown" id="translationdropdown">
<form name="translationform" method="get"> <form name="translationform" method="get">
<table width="95%"> <table cellspacing=0 cellpadding=0 border=0 style="width: 99%; font-size: 0.8em;">
<? <?
foreach($config['languages'] AS $l=>$ln) foreach($config['languages'] AS $l=>$ln)
{ {
if($l=="en") continue; if($l=="en") continue;
echo "<tr><td>$ln</td><td><input type=\"text\" style=\"width: 100%\" id=\"translation[$l]\" name=\"translation[$l]\"></td></tr>"; echo "<tr><td style=\"width: 75px;\">$ln:</td><td><input type=\"text\" style=\"width: 100%;\" id=\"translation[$l]\" name=\"translation[$l]\"></td></tr>";
} }
echo "<tr><td colspan=\"2\" align=\"center\"><input type=\"button\" id=\"buttonsavetranslations\" onclick=\"return savetranslations()\" value=\"".i18n("Save Translations")."\"></td></tr>"; echo "</table>\n";
echo "<input type=\"button\" id=\"buttonsavetranslations\" onclick=\"return savetranslations()\" value=\"".i18n("Save Translations")."\">";
?> ?>
</table>
</form> </form>
</div> </div>