Класс wAjaxWorkflow служит для создания схемы Workflow-процесса.
Основные параметры класса
Параметр | Значение по умолчанию | Описание |
с | null | Объект класса wPrototype. Отображает святи между контейнерами (connection object) |
f | null | Объект класса wPrototype. Отображает контейнеры с даннями (transition object) |
container | workflow | Id для блока div, в котором находится схема бизнес-процесса. |
caption | Заголовок страницы. | |
resizable | false | Возможность контейнеров менять размеры. |
draggable | false | Возможность контейнеров к перетаскиванию. |
jajaxworkflow | Подключение main/js/jquery.workflow.js. | |
jquery | true | Подключение main/js/jquery.js |
jqueryui | true | Подключение main/js/jqueryui.js |
jcontextmenu | Подключение main/js/contextmenu.js | |
adding | false | Возможность добавления записей |
editing | false | Возможность редактирования записей. |
copying | true | Возможность копирования записей. |
editing | false | Возможность редактирования записей. |
deleting | false | Возможность удаления записей. |
cardurl | URL для карточки объекта. | |
casecardurl | Callback-функция, которая срабатывает при клике на дочернем элементе. | |
opercardurl | Название Callback-функции, которая вызывается при открытии диалогового окна. | |
connector | Bezier | Название Callback-функции, которая вызывается при закрытии диалогового окна. |
caseid | 0 | Родительское поле в редактируемой таблице. |
headerclass | ui-widget-header | Код (id) объекта, начиная с которого надо рисовать элементы списка. |
contentclass | wfcontent | Дополнительные ячейки таблицы над списком. |
Пример отображения Workflow-процесса:
$wfid = 4; //"живой" процесс $objtype = (isset($_REQUEST['objtype'])) ? $_REQUEST['objtype'] : 0; $objid = (isset($_REQUEST['objid'])) ? $_REQUEST['objid'] : 0; $caseid = 7; //шаблон процесса $parent = (isset($_POST["parent"])) ? $_POST["parent"] : 0; include_once('main/classes/workflow.class.php'); class wwf extends wAjaxWorkFlow { public $workflowid = 0; public $caseid = 0; public function getXml($trans = 0) { $f = new wworkflow_models_wflow(); $f->id = $this->workflowid; $f->caseid = $this->caseid; return $f->getXml($trans); } public function moveforward($trans = 0) { $_SESSION['wwf_wflow_trans'] = array(); $w = new wworkflow_models_wfoper(); $w->caseid = $this->caseid; return array('mess' => $w->fire($this->caseid, $trans), 'trans' => implode(',', $_SESSION['wwf_wflow_trans'])); } public function movebackward($trans = 0) { $_SESSION['wwf_wflow_trans'] = array(); $w = new wworkflow_models_wfoper(); $w->caseid = $this->caseid; return array('mess' => $w->goback($this->caseid, $trans), 'trans' => implode(',', $_SESSION['wwf_wflow_trans'])); } public function getlastchanges() { if(!isset($_SESSION['wwf_wflow_trans'])) return 0; if(!sizeof($_SESSION['wwf_wflow_trans'])) return 0; return implode(',', $_SESSION['wwf_wflow_trans']); } } $w = new wwf('wwf_wftrans', 'wwf_conns'); $name = $parser->utils->getFieldFromSql('SELECT title FROM wwf_wflow WHERE id='.$wfid, ''); $w->caption = $name; $w->workflowid = $wfid; $w->caseid = $caseid; $w->f = new wworkflow_models_wftrans(); $w->f->setFieldVal('wfid', $wfid); $w->f->setFieldAttr('wfid', 'refval', $name); $w->f->setFieldAttr('wfid', 'ro', true); $name = $parser->utils->getFieldFromSql('SELECT title FROM wwf_wftrans WHERE id='.$parent, ''); $w->c = new wworkflow_models_conns(); $w->c->wfid = $wfid; $w->c->setFieldVal('fromtrans', $parent); $w->c->setFieldAttr('fromtrans', 'refval', $name); $w->c->setFieldVal('totrans', $parent); $w->c->setFieldAttr('totrans', 'refval', $name); $w->addHidden('wfid', $wfid); $w->addHidden('objtype', $objtype); $w->addHidden('objid', $objid); $w->addHidden('caseid', $caseid); $w->cardurl = $parser->makeUrl('wwf_wftrans_card'); $w->casecardurl = $parser->makeUrl('wwf_wfcase_card'); $w->show();