make edit form more cross-browser compatible, fixing it in firefox (#38)

This commit is contained in:
Simon Michael 2011-01-21 02:54:42 +00:00
parent 17eff2e4ae
commit ad4ae66d28
2 changed files with 21 additions and 15 deletions

View File

@ -32,7 +32,7 @@ function filterformToggle() {
return false;
}
function addformToggle() {
function addformToggle(ev) {
var a = document.getElementById('addform');
var e = document.getElementById('editform');
var f = document.getElementById('filterform');
@ -67,7 +67,7 @@ function addformToggle() {
return false;
}
function editformToggle() {
function editformToggle(ev) {
var a = document.getElementById('addform');
var e = document.getElementById('editform');
var ej = document.getElementById('journalselect');
@ -91,7 +91,7 @@ function editformToggle() {
i.style.display = 'none';
t.style.display = 'none';
e.style.display = 'block';
editformJournalSelect();
editformJournalSelect(ev);
} else {
alink.style['font-weight'] = 'normal';
elink.style['font-weight'] = 'normal';
@ -104,14 +104,20 @@ function editformToggle() {
return false;
}
function editformJournalSelect() {
function editformJournalSelect(ev) {
// http://www.quirksmode.org/js/events_properties.html
if (!ev) var e = window.event;
if (ev.target) targ = ev.target;
else if (ev.srcElement) targ = ev.srcElement;
if (targ.nodeType == 3) targ = targ.parentNode;
var textareas = $('textarea', $('form#editform'));
for (i=0; i<textareas.length; i++) {
textareas[i].style.display = 'none';
textareas[i].disabled = true;
}
if (event.target.value) {
var journalid = event.target.value+'_textarea';
if (targ.value) {
var journalid = targ.value+'_textarea';
var textarea = document.getElementById(journalid);
}
else {
@ -122,7 +128,7 @@ function editformJournalSelect() {
return true;
}
function importformToggle() {
function importformToggle(ev) {
var a = document.getElementById('addform');
var e = document.getElementById('editform');
var f = document.getElementById('filterform');

View File

@ -365,10 +365,10 @@ navlinks td = [$hamlet|
\ | $
^accountsregisterlink^
\ | $
%a#addformlink!href!onclick="return addformToggle()" add transaction
%a#importformlink!href!onclick="return importformToggle()"!style=display:none; import transactions
%a#addformlink!href!onclick="return addformToggle(event)" add transaction
%a#importformlink!href!onclick="return importformToggle(event)"!style=display:none; import transactions
\ | $
%a#editformlink!href!onclick="return editformToggle()" edit journal
%a#editformlink!href!onclick="return editformToggle(event)" edit journal
|]
-- \ | $
where
@ -658,9 +658,9 @@ getJournalOnlyR = do
hamletToRepHtml $ pageLayout td [$hamlet|
%div#journal
%div.nav2
%a#addformlink!href!onclick="return addformToggle()" add one transaction
%a#addformlink!href!onclick="return addformToggle(event)" add one transaction
\ | $
%a#editformlink!href!onclick="return editformToggle()" edit the whole journal
%a#editformlink!href!onclick="return editformToggle(event)" edit the whole journal
^addform.td^
^editform'^
#transactions ^txns^
@ -813,7 +813,7 @@ editform TD{j=j} = [$hamlet|
%input!type=hidden!name=action!value=edit
%input!type=submit!name=submit!value="save journal"
\ or $
%a!href!onclick="return editformToggle()" cancel
%a!href!onclick="return editformToggle(event)" cancel
|] -- XXX textarea ids are unquoted journal file paths, which is not valid html
where
manyfiles = (length $ files j) > 1
@ -821,7 +821,7 @@ editform TD{j=j} = [$hamlet|
journalselect :: [(FilePath,String)] -> Hamlet AppRoute
journalselect journalfiles = [$hamlet|
%select!id=journalselect!name=journal!onchange="editformJournalSelect()"
%select!id=journalselect!name=journal!onchange="editformJournalSelect(event)"
$forall journalfiles f
%option!value=$fst.f$ $fst.f$
|]
@ -836,7 +836,7 @@ importform = [$hamlet|
%input!type=hidden!name=action!value=import
%input!type=submit!name=submit!value="import from file"
\ or $
%a!href!onclick="return importformToggle()" cancel
%a!href!onclick="return importformToggle(event)" cancel
|]
postJournalOnlyR :: Handler RepPlain