fix element line

This commit is contained in:
Daniel Barbero Martin 2020-01-08 17:28:03 +01:00
parent c4f0305f9b
commit d97cdfbc7a
10 changed files with 103 additions and 50 deletions

View File

@ -162,7 +162,7 @@ function createVisualConsole(
var item = e.item || {}; var item = e.item || {};
var meta = item.meta || {}; var meta = item.meta || {};
if (meta.editMode && !meta.isUpdating) { if ((meta.editMode || meta.lineMode) && !meta.isUpdating) {
createOrUpdateVisualConsoleItem( createOrUpdateVisualConsoleItem(
visualConsole, visualConsole,
asyncTaskManager, asyncTaskManager,
@ -1344,7 +1344,7 @@ function cleanupDOM() {
$("#modalVCItemForm").empty(); $("#modalVCItemForm").empty();
} }
/* Defined in operations/visual_console/view.php */ /* Defined in operations/visual_console/view.php */
/* global handleFormResponse,$,load_modal */ /* global $, load_modal */
function createOrUpdateVisualConsoleItem( function createOrUpdateVisualConsoleItem(
visualConsole, visualConsole,
asyncTaskManager, asyncTaskManager,
@ -1373,7 +1373,7 @@ function createOrUpdateVisualConsoleItem(
form: ["itemForm-label", "itemForm-general", "itemForm-specific"], form: ["itemForm-label", "itemForm-general", "itemForm-specific"],
url: baseUrl + "ajax.php", url: baseUrl + "ajax.php",
ajax_callback: function(response) { ajax_callback: function(response) {
var data = JSON.parse(response); //handleFormResponse(response); var data = JSON.parse(response);
if (data == false) { if (data == false) {
// Error. // Error.

View File

@ -17,7 +17,7 @@ $method = get_parameter('method');
if ($method) { if ($method) {
$viewer = new Viewer(); $viewer = new Viewer();
try { try {
if (method_exists($viewer, $method)) { if (method_exists($viewer, $method) === true) {
echo $viewer->{$method}(); echo $viewer->{$method}();
} }
} catch (Exception $e) { } catch (Exception $e) {

View File

@ -209,7 +209,7 @@ final class Group extends Item
$agentsOk = \agents_get_agents( $agentsOk = \agents_get_agents(
[ [
'id_grupo' => $groupId, 'id_grupo' => $groupId,
'status' => AGENT_STATUS_OK, 'status' => AGENT_STATUS_NORMAL,
], ],
['COUNT(*) AS total'], ['COUNT(*) AS total'],
'AR', 'AR',

View File

@ -373,41 +373,45 @@ final class Line extends Model
* *
* @param array $data Unknown input data structure. * @param array $data Unknown input data structure.
* *
* @return boolean The modeled element data structure stored into the DB. * @return integer The modeled element data structure stored into the DB.
* *
* @overrides Model::save. * @overrides Model::save.
*/ */
public function save(array $data=[]): bool public function save(array $data=[]): int
{ {
$data_model = $this->encode($this->toArray()); if (empty($data) === false) {
$newData = $this->encode($data); if (empty($data['id']) === true) {
$save = \array_merge($data_model, $newData);
if (!empty($save)) {
if (empty($save['id'])) {
// Insert. // Insert.
$save = static::encode($data);
$result = \db_process_sql_insert('tlayout_data', $save); $result = \db_process_sql_insert('tlayout_data', $save);
if ($result !== false) {
$item = static::fromDB(['id' => $result]);
$item->setData($item->toArray());
}
} else { } else {
// Update. // Update.
$result = \db_process_sql_update('tlayout_data', $save, ['id' => $save['id']]); $dataModelEncode = $this->encode($this->toArray());
} $dataEncode = $this->encode($data);
}
// Update the model. $save = array_merge($dataModelEncode, $dataEncode);
if ($result) {
if (empty($save['id'])) { $result = \db_process_sql_update(
$item = static::fromDB(['id' => $result]); 'tlayout_data',
} else { $save,
['id' => $save['id']]
);
// Invalidate the item's cache.
if ($result !== false && $result > 0) {
$item = static::fromDB(['id' => $save['id']]); $item = static::fromDB(['id' => $save['id']]);
} // Update the model.
if (empty($item) === false) {
if (!empty($item)) {
$this->setData($item->toArray()); $this->setData($item->toArray());
} }
} }
}
}
return (bool) $result; return $result;
} }
@ -442,22 +446,43 @@ final class Line extends Model
{ {
$inputs = []; $inputs = [];
switch ($values['tabSelected']) { if ($values['tabSelected'] === 'specific') {
// Position. // Width.
case 'label': if ($values['borderWidth'] < 1) {
// Label. $values['borderWidth'] = 1;
// TODO tinyMCE. }
$inputs[] = [ $inputs[] = [
'label' => __('Label'), 'label' => __('Width'),
'id' => 'div-label',
'arguments' => [ 'arguments' => [
'name' => 'label', 'name' => 'borderWidth',
'type' => 'text', 'type' => 'number',
'value' => $values['label'], 'value' => $values['borderWidth'],
'return' => true, 'return' => true,
], ],
]; ];
break;
// Color.
$inputs[] = [
'label' => __('Color'),
'arguments' => [
'name' => 'borderColor',
'type' => 'color',
'value' => $values['borderColor'],
'return' => true,
],
];
// Show on top.
$inputs[] = [
'label' => __('Show on top'),
'arguments' => [
'name' => 'isOnTop',
'id' => 'isOnTop',
'type' => 'switch',
'value' => $values['isOnTop'],
],
];
} }
return $inputs; return $inputs;

View File

@ -92,6 +92,15 @@ class View extends \HTML
'img' => 'pencil.png', 'img' => 'pencil.png',
], ],
]; ];
} else if ($type === LINE_ITEM) {
$tabs = [
[
'name' => __('Specific settings'),
'id' => 'tab-specific',
'href' => $url.'&tabSelected=specific',
'img' => 'event_responses_col.png',
],
];
} }
$result = html_print_tabs($tabs); $result = html_print_tabs($tabs);
@ -333,7 +342,9 @@ class View extends \HTML
break; break;
case LINE_ITEM: case LINE_ITEM:
// Nothing. no specific items. $data['borderColor'] = \get_parameter('borderColor');
$data['borderWidth'] = \get_parameter('borderWidth');
$data['isOnTop'] = \get_parameter_switch('isOnTop');
break; break;
case AUTO_SLA_GRAPH: case AUTO_SLA_GRAPH:

View File

@ -422,6 +422,9 @@ export default class VisualConsole {
itemInstance.onLineMovementFinished( itemInstance.onLineMovementFinished(
context.handleLineElementMovementFinished context.handleLineElementMovementFinished
); );
// TODO:Continue
//itemInstance.onClick(context.handleElementClick);
itemInstance.onDblClick(context.handleElementDblClick);
} else { } else {
itemInstance.onClick(context.handleElementClick); itemInstance.onClick(context.handleElementClick);
itemInstance.onDblClick(context.handleElementDblClick); itemInstance.onDblClick(context.handleElementDblClick);

View File

@ -260,7 +260,8 @@ export default class Line extends Item<LineProps> {
this.moveMode = newMetadata.editMode; this.moveMode = newMetadata.editMode;
super.setMeta({ super.setMeta({
...newMetadata, ...newMetadata,
editMode: false editMode: false,
lineMode: true
}); });
} }
@ -409,6 +410,15 @@ export default class Line extends Item<LineProps> {
: `-${this.circleRadius}px`; : `-${this.circleRadius}px`;
if (!this.isMoving) { if (!this.isMoving) {
// Remove circles.
const circles = element.getElementsByClassName(
"visual-console-item-line-circle"
);
while (circles.length > 0) {
const circle = circles.item(0);
if (circle) circle.remove();
}
element.appendChild(startCircle); element.appendChild(startCircle);
element.appendChild(endCircle); element.appendChild(endCircle);

View File

@ -278,7 +278,8 @@ export function itemMetaDecoder(data: UnknownObject): ItemMeta | never {
isUpdating: false, isUpdating: false,
isBeingMoved: false, isBeingMoved: false,
isBeingResized: false, isBeingResized: false,
isSelected: false isSelected: false,
lineMode: false
}; };
} }

View File

@ -135,7 +135,8 @@ describe("itemMetaDecoder function", () => {
editMode: false, editMode: false,
isBeingMoved: false, isBeingMoved: false,
isBeingResized: false, isBeingResized: false,
isSelected: false isSelected: false,
lineMode: false
}); });
}); });
@ -155,7 +156,8 @@ describe("itemMetaDecoder function", () => {
editMode: true, editMode: true,
isBeingMoved: false, isBeingMoved: false,
isBeingResized: false, isBeingResized: false,
isSelected: false isSelected: false,
lineMode: false
}); });
}); });

View File

@ -59,4 +59,5 @@ export interface ItemMeta {
isBeingMoved: boolean; isBeingMoved: boolean;
isBeingResized: boolean; isBeingResized: boolean;
editMode: boolean; editMode: boolean;
lineMode: boolean;
} }