Added RBAC for Time Ticket Edit IO-428

This commit is contained in:
Patrick Fic
2020-12-23 11:51:49 -08:00
parent ad8d92e7ed
commit 282aba2cd1
8 changed files with 74 additions and 14 deletions

View File

@@ -4024,6 +4024,27 @@
<folder_node> <folder_node>
<name>timetickets</name> <name>timetickets</name>
<children> <children>
<concept_node>
<name>edit</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node> <concept_node>
<name>enter</name> <name>enter</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>

View File

@@ -405,6 +405,18 @@ export default function ShopInfoRbacComponent({ form }) {
> >
<InputNumber /> <InputNumber />
</Form.Item> </Form.Item>
<Form.Item
label={t("bodyshop.fields.rbac.timetickets.edit")}
rules={[
{
required: true,
message: t("general.validation.required"),
},
]}
name={["md_rbac", "timetickets:edit"]}
>
<InputNumber />
</Form.Item>
<Form.Item <Form.Item
label={t("bodyshop.fields.rbac.shop.vendors")} label={t("bodyshop.fields.rbac.shop.vendors")}
rules={[ rules={[

View File

@@ -1,13 +1,13 @@
import { Table } from "antd"; import { Table } from "antd";
import moment from "moment";
import React, { useState } from "react"; import React, { useState } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { alphaSort } from "../../utils/sorters";
import { DateFormatter } from "../../utils/DateFormatter";
import TimeTicketEnterButton from "../time-ticket-enter-button/time-ticket-enter-button.component";
import { DateTimeFormatter } from "../../utils/DateFormatter";
import moment from "moment";
import { onlyUnique } from "../../utils/arrayHelper"; import { onlyUnique } from "../../utils/arrayHelper";
import { DateFormatter, DateTimeFormatter } from "../../utils/DateFormatter";
import { alphaSort } from "../../utils/sorters";
import RbacWrapper from "../rbac-wrapper/rbac-wrapper.component";
import TimeTicketEnterButton from "../time-ticket-enter-button/time-ticket-enter-button.component";
export default function TimeTicketList({ export default function TimeTicketList({
disabled, disabled,
@@ -128,12 +128,14 @@ export default function TimeTicketList({
} }
}, },
}, },
!!techConsole
? { ({
title: t("general.labels.actions"), title: t("general.labels.actions"),
dataIndex: "actions", dataIndex: "actions",
key: "actions", key: "actions",
render: (text, record) => ( render: (text, record) => (
<div>
{!!techConsole && (
<TimeTicketEnterButton <TimeTicketEnterButton
actions={{ refetch }} actions={{ refetch }}
context={{ id: record.id, timeticket: record }} context={{ id: record.id, timeticket: record }}
@@ -141,9 +143,29 @@ export default function TimeTicketList({
> >
{t("general.actions.edit")} {t("general.actions.edit")}
</TimeTicketEnterButton> </TimeTicketEnterButton>
), )}
} {!techConsole && (
: null, <RbacWrapper
action="timetickets:edit"
noauth={() => {
return <div />;
}}
>
<TimeTicketEnterButton
actions={{ refetch }}
context={{
id: record.id,
timeticket: record,
}}
disabled={!!!record.jobid || disabled}
>
{t("general.actions.edit")}
</TimeTicketEnterButton>
</RbacWrapper>
)}
</div>
),
}: null),
]; ];
const handleTableChange = (pagination, filters, sorter) => { const handleTableChange = (pagination, filters, sorter) => {

View File

@@ -181,6 +181,7 @@ export function TimeTicketModalContainer({
jobid: jobid:
(timeTicketModal.context.timeticket.job && (timeTicketModal.context.timeticket.job &&
timeTicketModal.context.timeticket.job.id) || timeTicketModal.context.timeticket.job.id) ||
timeTicketModal.context.timeticket.jobid ||
null, null,
date: timeTicketModal.context.timeticket.date date: timeTicketModal.context.timeticket.date
? moment(timeTicketModal.context.date) ? moment(timeTicketModal.context.date)

View File

@@ -36,6 +36,7 @@ export const QUERY_TIME_TICKETS_IN_RANGE = gql`
rate rate
productivehrs productivehrs
memo memo
jobid
job { job {
id id
ro_number ro_number

View File

@@ -277,6 +277,7 @@
"vendors": "Shop -> Vendors" "vendors": "Shop -> Vendors"
}, },
"timetickets": { "timetickets": {
"edit": "Time Tickets -> Edit",
"enter": "Time Tickets -> Enter", "enter": "Time Tickets -> Enter",
"list": "Time Tickets -> List" "list": "Time Tickets -> List"
} }

View File

@@ -277,6 +277,7 @@
"vendors": "" "vendors": ""
}, },
"timetickets": { "timetickets": {
"edit": "",
"enter": "", "enter": "",
"list": "" "list": ""
} }

View File

@@ -277,6 +277,7 @@
"vendors": "" "vendors": ""
}, },
"timetickets": { "timetickets": {
"edit": "",
"enter": "", "enter": "",
"list": "" "list": ""
} }