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

View File

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

View File

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

View File

@ -373,41 +373,45 @@ final class Line extends Model
*
* @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.
*/
public function save(array $data=[]): bool
public function save(array $data=[]): int
{
$data_model = $this->encode($this->toArray());
$newData = $this->encode($data);
$save = \array_merge($data_model, $newData);
if (!empty($save)) {
if (empty($save['id'])) {
if (empty($data) === false) {
if (empty($data['id']) === true) {
// Insert.
$save = static::encode($data);
$result = \db_process_sql_insert('tlayout_data', $save);
if ($result !== false) {
$item = static::fromDB(['id' => $result]);
$item->setData($item->toArray());
}
} else {
// Update.
$result = \db_process_sql_update('tlayout_data', $save, ['id' => $save['id']]);
$dataModelEncode = $this->encode($this->toArray());
$dataEncode = $this->encode($data);
$save = array_merge($dataModelEncode, $dataEncode);
$result = \db_process_sql_update(
'tlayout_data',
$save,
['id' => $save['id']]
);
// Invalidate the item's cache.
if ($result !== false && $result > 0) {
$item = static::fromDB(['id' => $save['id']]);
// Update the model.
if (empty($item) === false) {
$this->setData($item->toArray());
}
}
}
}
// Update the model.
if ($result) {
if (empty($save['id'])) {
$item = static::fromDB(['id' => $result]);
} else {
$item = static::fromDB(['id' => $save['id']]);
}
if (!empty($item)) {
$this->setData($item->toArray());
}
}
return (bool) $result;
return $result;
}
@ -442,22 +446,43 @@ final class Line extends Model
{
$inputs = [];
switch ($values['tabSelected']) {
// Position.
case 'label':
// Label.
// TODO tinyMCE.
$inputs[] = [
'label' => __('Label'),
'id' => 'div-label',
'arguments' => [
'name' => 'label',
'type' => 'text',
'value' => $values['label'],
'return' => true,
],
];
break;
if ($values['tabSelected'] === 'specific') {
// Width.
if ($values['borderWidth'] < 1) {
$values['borderWidth'] = 1;
}
$inputs[] = [
'label' => __('Width'),
'arguments' => [
'name' => 'borderWidth',
'type' => 'number',
'value' => $values['borderWidth'],
'return' => true,
],
];
// 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;

View File

@ -92,6 +92,15 @@ class View extends \HTML
'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);
@ -333,7 +342,9 @@ class View extends \HTML
break;
case LINE_ITEM:
// Nothing. no specific items.
$data['borderColor'] = \get_parameter('borderColor');
$data['borderWidth'] = \get_parameter('borderWidth');
$data['isOnTop'] = \get_parameter_switch('isOnTop');
break;
case AUTO_SLA_GRAPH:

View File

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

View File

@ -260,7 +260,8 @@ export default class Line extends Item<LineProps> {
this.moveMode = newMetadata.editMode;
super.setMeta({
...newMetadata,
editMode: false
editMode: false,
lineMode: true
});
}
@ -409,6 +410,15 @@ export default class Line extends Item<LineProps> {
: `-${this.circleRadius}px`;
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(endCircle);

View File

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

View File

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

View File

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