1 /* vim:set ts=2 sw=2 sts=2 et cindent tw=79 ft=javascript: */
3 * Copyright (C) 2007 Sergey Yanovich <ynvich@gmail.com>
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as
7 * published by the Free Software Foundation; either version 2 of the
8 * License, or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
15 * You should have received a copy of the GNU General Public
16 * License along with this program; if not, write to the
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 * Boston, MA 02111-1307, USA.
21 const nsCI = Components.interfaces;
25 Components.classes['@mozilla.org/consoleservice;1']
26 .getService(Components.interfaces.nsIConsoleService)
27 .logStringMessage(str);
33 for (var prop in obj) {
35 dump(prop + ": " + obj[prop] + "\n");
37 dump(prop + ": error: " + e.message + "\n");
44 return document.defaultView.QueryInterface(nsCI.nsIInterfaceRequestor)
45 .getInterface(nsCI.nsIWebNavigation).sessionHistory;
50 document.defaultView.QueryInterface(nsCI.nsIInterfaceRequestor)
51 .getInterface(nsCI.nsIWebNavigation)
52 .loadURI(uri,nsCI.nsIWebNavigation.LOAD_FLAGS_NONE,null,null,null);
58 var gTransaction = null;
61 function transferPageLoad()
63 gFact = Components.classes["@aasii.org/base/fact;1"].
64 createInstance(nsCI.aaIFact);
65 gEvent = Components.classes["@aasii.org/base/event;1"].
66 createInstance(nsCI.aaIEvent);
69 var broadcaster = Components.classes["@mozilla.org/observer-service;1"].
70 getService(nsCI.nsIObserverService);
71 broadcaster.addObserver(gView, "fact-from-flow-change", true);
72 broadcaster.addObserver(gView, "fact-to-flow-change", true);
73 document.getElementById("transfer.date").addEventListener("change",
76 gFact.broadcasting = true;
81 var date = document.getElementById("transfer.date").dateValue;
83 gEvent.time = date.getTime() * 1000;
86 function openFlow(side)
88 session().beginQuery();
90 addEventListener("pageshow", chosenFrom, true);
92 addEventListener("pageshow", chosenTo, true);
93 loadURI("chrome://abstract/content/flow.xul");
98 gFact.amount = document.getElementById("transfer.amount").value;
101 function transferCommit()
105 var transaction = Components.classes["@aasii.org/base/transaction;1"].
106 createInstance(nsCI.aaITransaction);
107 gEvent.appendElement(gFact, false);
108 session().save(gEvent, null);
109 transaction.fact = gFact;
110 session().save(transaction, null);
111 gTransaction = transaction;
112 document.getElementById("canCommit").setAttribute("disabled","true");
113 document.getElementById("canReset").removeAttribute("disabled");
114 document.getElementById("canReset").removeAttribute("collapsed");
118 function transferReset()
120 var time = gEvent.time;
122 gFact = Components.classes["@aasii.org/base/fact;1"].
123 createInstance(nsCI.aaIFact);
124 gEvent = Components.classes["@aasii.org/base/event;1"].
125 createInstance(nsCI.aaIEvent);
127 document.getElementById("canCommit").removeAttribute("disabled");
128 document.getElementById("canReset").setAttribute("disabled","true");
129 document.getElementById("canReset").setAttribute("collapsed","true");
133 function chosenFrom()
135 removeEventListener("pageshow", chosenFrom, true);
136 var buffer = session().queryBuffer;
138 gFact.takeFrom = buffer.QueryInterface(nsCI.aaIFlow);
143 removeEventListener("pageshow", chosenTo, true);
144 var buffer = session().queryBuffer;
146 gFact.giveTo = buffer.QueryInterface(nsCI.aaIFlow);
157 function updateFromFlow()
159 if (gFact && gFact.takeFrom)
160 document.getElementById("transfer.fromFlow").value = gFact.takeFrom.tag;
162 document.getElementById("transfer.fromFlow").value = document.
163 getElementById("bundle_abstract").getString("link.choose");
166 function updateToFlow()
168 if (gFact && gFact.giveTo)
169 document.getElementById("transfer.toFlow").value = gFact.giveTo.tag;
171 document.getElementById("transfer.toFlow").value = document.
172 getElementById("bundle_abstract").getString("link.choose");
175 function updateAmount()
178 document.getElementById("transfer.amount").value = gFact.amount;
180 document.getElementById("transfer.amount").value = "0";
183 function updateValue()
186 document.getElementById("transfer.value").value = gTransaction.value.toFixed(2);
187 document.getElementById("transfer.earnings").value = gTransaction.hasEarnings ?
188 gTransaction.earnings.toFixed(2) : "";
190 document.getElementById("transfer.value").value = "";
191 document.getElementById("transfer.earnings").value = "";
201 QueryInterface : function aaViewQI(iid)
203 if (iid.equals(nsCI.nsIObserver) ||
204 iid.equals(nsCI.nsISupportsWeakReference) ||
205 iid.equals(nsCI.nsISupports))
208 throw Components.results.NS_ERROR_NO_INTERFACE;
211 observe: function aaViewObserve(aSubject, aTopic, aData)
213 if (aSubject == gFact) {
214 if (aTopic == "fact-from-flow-change")
216 else if (aTopic == "fact-to-flow-change")