Jestem nowy w serwisie WWW openerp
, będę wdzięczny za pomoc. Chcę utworzyć widżet licznika czasu zliczania, na przykład w postaci textbox
, z przyciskiem uruchamiania i zatrzymania (uwzględnić w moim nowym polu niestandardowym lub osobnym).klient sieci openerp, jak dostosować pole (rozszerzenie podstawowego widgetu)
Zrobiłem małą funkcję javascript
, aby zliczyć czas.
Czy mogę utworzyć nowy widget przez rozszerzenie podstawowego FieldChar
? Utwórz nowy typ pola?
Gdzie umieścić mój kod licznika i jak wyświetlić go na polu char
(lub nowym typie pola)?
znalazłem jakiś dokument o tym, jak rozciągają się z czymś jak openerp.web.form.FieldChar
:
openerp.web_mymodule = function(openerp) {
openerp.web.form.Field.include({
init: function(view, node) {
console.log('mine');
this._super(view, node);
}
});
}
muszę pewne wskazówki, aby umieścić to wszystko razem nawet z openerp's
doc o tym, jak działa interfejs.
góry dzięki
Tu jestem: Moduł: web_uptimer
web_uptimer.js:
openerp.web_uptimer = function (openerp)
{
openerp.web.form.widgets.add('uptimer', 'openerp.web_uptimer.CountUp');
openerp.web_uptimer.CountUp = openerp.web.form.FieldChar.extend(
{
template : "uptimer.template",
init: function (view, code) {
this._super(view, code);
console.log('counting...');
alert('counting...');
}
});
}
web_uptimer.xml:
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="uptimer.template">
<html>
</html>
</t>
</templates>
mój szybki licznik test timera w górę:
<html>
<head>
<title></title>
<script type="text/javascript">
var counter = 0;
var minutes = 0;
var hours = 0;
var timer;
var todisplay;
var h2disp;
var m2disp;
var s2disp;
function countUP()
{
counter = counter + 1;//increment the counter by 1
if(counter == 60)
{
counter = 0;
minutes = minutes + 1;
if(minutes == 60)
{
minutes = 0;
hours = hours + 1
}
}
if(counter < 10)
{
s2disp = "0" + counter;
}
else
{
s2disp = counter;
}
if(minutes < 10)
{
m2disp = "0" + minutes;
}
else
{
m2disp = minutes;
}
if(hours < 10)
{
h2disp = "0" + hours;
}
else
{
h2disp = hours;
}
todisplay = h2disp + ":" + m2disp + ":" + s2disp;
document.getElementById("timer_container").innerHTML = todisplay;
}
</script>
</head>
<body onload='timer=setInterval("countUP()", 1000);'>
<div id="timer_container">00:00:00</div>
<div>
<button onclick='clearInterval(timer);'>Stop Timer</button>
<button onclick='timer=setInterval("countUP()", 1000);'>Continue Timer</button>
</div>
</body>
</html>
jesteś na dobrej drodze. Zapoznaj się z dokumentacją tutaj: http: //doc.openerp.com/trunk/developers/web/module/na końcu mają przykład widżetu timera! : D Przetestowałem to, ale wydaje się dość wyjaśniające. – TimoSolo
Dzięki za odpowiedź Tymoteusza. Próbuję pobrać _przykladowy_przykladowy. Po pewnych problemach (menuitem tag tag puse error) Udaje mi się wyświetlić licznik (to jest początek !!!), ale przyciski nie wywołują funkcji ... Czy działa on w wersji 6.1? (Zastanawiam się, jak doktor, który mnie powiązałeś, znajduje się w bagażniku). Próbuję uprościć kod (przycisk i alert), ale nie działa. wydaje się, że "zdarzenia" nie działają lub nie są odsłuchiwane ... Masz pomysł? Z góry dziękuję, wciąż się ruszam, więc to dobrze –