JSFiddle - React, Tailwind, and code Playground
HTML
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="scripts/datajs-1.0.3.min.js"></script>
<script type="text/javascript" src="scripts/knockout-2.1.0.js"></script>
<script type="text/javascript" src="scripts/knockout.mapping-latest.js"></script>
<script type="text/javascript" src="scripts/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="scripts/String.Format.js"></script>
<script type="text/javascript" src="pipe.js"></script>
<script type="text/javascript" src="support.js"></script>
<script type="text/javascript">
function dop2model(ardg, ads, values) {
var result = [];
var Desc = function (isn) {
for (var i = 0; i < ads.length; i++)
if (ads[i].ISN_AR_DESCRIPT == isn) return ads[i];
return null;
};
for (var i = 0; i < ardg.length; i++) {
var ad = Desc(ardg[i].ISN_AR_DESCRIPT);
var r = { AD: ad, VALUE: ko.observable(values[ad.API_NAME]) };
result.push(r);
};
return result;
}
function model2dop (values) {
var result = {};
for (var i = 0; i < values.length; i++) {
var r = values[i];
if (r.AD.AR_TYPE == 'text' || r.AD.AR_TYPE == 'decimal')
result[r.AD.API_NAME] = r.VALUE();
}
return result;
}
//Главное чего не хватет – это сделать таск из функции.
function loadData() {
md = new Task();
md.name = 'md';
md.startTime = new Date;
//время начало
md.doc = pipe.load( // подставляеться в фун-цию в pipe.js
{
"DOC_RC({0})": urlParamInt("rc_id"),
expand: "REF_VISA_List,REF_FILE_List,AR_RC_VALUE_List"// расширить
...
JavaScript
function extend(Child, Parent) {
var F = function () { };
F.prototype = Parent.prototype;
Child.prototype = new F();
Child.prototype.constructor = Child;
Child.superclass = Parent.prototype;
};
function error(e) {
};
var TaskState = { Created: 0, Started: 1, Completed: 3, Failed: -1 };
function Process() {
var
}
function Task() { // задавать работу
var self = this;
this.state = TaskState.Created;// 0
//this.data2result - преобразовать данные в результат
var paused = []; // ожидающие нашего результата задачи
var wanted = []; //кого мы ждем
//self.wl = wanted; self.psd = paused;
self.asyncResult = function (data) {
log(self + ".asyncResult() " + (new Date() - self.startAt) / 1000 + "s"); //async Result-асинхронный результат время вставляем сюда new Date()
self.result = (self.data2result !== undefined) ?
self.data2result(data) : data;
self.state = TaskState.Completed;
self.resume();
};
var setNamed = function (t) {// установить имена
for (v in self)
if (self[v] == t)
self[v] = t.result;
}
this.resume = function (t) {//??
var s = self + ".resume";
if (t != undefined) s += "(" + t + ")";
//s += " wanted " + wanted.length;
if (t != undefined) {
setNamed(t);
wanted.splice(wanted.indexOf(t), 1);
};
//s += ":" + wanted.length;
//log(s);
if ((wanted.length == 0) && (self.state == TaskState.Created))
self.start();
else if ((self.state == TaskState.Completed) && (paused.length != 0)) {
//log("-" + self + ".fire(" + paused + ")");
for (var i = 0; i < paused.length; i++)
paused[i].resume(self);
}
};
this.start = function () {//старт
log(self + ".start");
self.state = TaskState.Started;
self.method(self);
};
this.wait = function ()...