From b39a80e4251e4e7c6abb948372ee87739baac878 Mon Sep 17 00:00:00 2001 From: haimkastner Date: Tue, 23 Aug 2022 20:43:55 +0000 Subject: [PATCH 01/21] Bomb version to 1.0.22 [ci skip] Files changed:\nM config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index e3b5710..7f3cd7e 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 2ccdbc0..9947b52 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.21", + "version": "1.0.22", "license": "GNU3", "main": "index.js", "private": false, From 08f06ae89f2bf3f5533e16e95a82879a0e522ea8 Mon Sep 17 00:00:00 2001 From: haimkastner Date: Wed, 24 Aug 2022 19:32:40 +0000 Subject: [PATCH 02/21] Bomb version to 1.0.23 [ci skip] Files changed:\nM config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index 7f3cd7e..587a075 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 9947b52..bc84410 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.22", + "version": "1.0.23", "license": "GNU3", "main": "index.js", "private": false, From e58a7f8423d3e335cb4471d8a7fc48646bd0eede Mon Sep 17 00:00:00 2001 From: haimkastner Date: Sat, 27 Aug 2022 22:18:35 +0000 Subject: [PATCH 03/21] Bomb version to 1.0.24 [ci skip] Files changed:\nM config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index 587a075..b0544f8 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index bc84410..c06731e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.23", + "version": "1.0.24", "license": "GNU3", "main": "index.js", "private": false, From 7a7f6d12a5ab9b21b6b09132318595d989dce73f Mon Sep 17 00:00:00 2001 From: haimkastner Date: Sun, 28 Aug 2022 08:40:02 +0000 Subject: [PATCH 04/21] Bomb version to 1.0.25 [ci skip] Files changed:\nM config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index b0544f8..dd693fd 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index c06731e..85999b2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.24", + "version": "1.0.25", "license": "GNU3", "main": "index.js", "private": false, From 813982bbb76a7e57987e12a7ae13dce71d3df7e0 Mon Sep 17 00:00:00 2001 From: haimkastner Date: Fri, 9 Sep 2022 07:09:24 +0000 Subject: [PATCH 05/21] Bomb version to 1.0.26 [ci skip] Files changed:\nM config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index dd693fd..ba2f960 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 85999b2..ee08d0a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.25", + "version": "1.0.26", "license": "GNU3", "main": "index.js", "private": false, From f1920e65eb2e68f1f5175fe14c42560f5f3b1571 Mon Sep 17 00:00:00 2001 From: haimkastner Date: Sat, 10 Sep 2022 20:22:54 +0000 Subject: [PATCH 06/21] Bomb version to 1.0.27 [ci skip] Files changed:\nM config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index ba2f960..89756da 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index ee08d0a..2c04c8c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.26", + "version": "1.0.27", "license": "GNU3", "main": "index.js", "private": false, From d77669d02942accde05b40b2ea848f409b878143 Mon Sep 17 00:00:00 2001 From: haimkastner Date: Fri, 13 Jan 2023 12:58:55 +0000 Subject: [PATCH 07/21] Bomb version to 1.0.28 [ci skip] Files changed: M config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index 89756da..52865c3 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 6d70e84..76b37ee 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.27", + "version": "1.0.28", "license": "GNU3", "main": "index.js", "private": false, From a364091a32139924b43ee2f6b85704798a95bd93 Mon Sep 17 00:00:00 2001 From: haimkastner Date: Sun, 15 Jan 2023 19:15:44 +0000 Subject: [PATCH 08/21] Bomb version to 1.0.29 [ci skip] Files changed: M config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index 52865c3..d4ce417 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 76b37ee..9872e28 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.28", + "version": "1.0.29", "license": "GNU3", "main": "index.js", "private": false, From d80c3f6306c668ab6f5f99312ac6e7aa9d28568b Mon Sep 17 00:00:00 2001 From: haimkastner Date: Sun, 15 Jan 2023 19:40:07 +0000 Subject: [PATCH 09/21] Bomb version to 1.0.30 [ci skip] Files changed: M config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index d4ce417..2364ddb 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 60f8aa6..047ed5e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.29", + "version": "1.0.30", "license": "GNU3", "main": "index.js", "private": false, From 2412cf8ab60f6c01bc58f9d7bb90f78d6ba38598 Mon Sep 17 00:00:00 2001 From: haimkastner Date: Sat, 21 Jan 2023 19:34:18 +0000 Subject: [PATCH 10/21] Bomb version to 1.0.31 [ci skip]" Files changed: M config.xml M package.json --- config.xml | 6 ++---- package.json | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/config.xml b/config.xml index 21902f0..59407cb 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard @@ -16,9 +16,7 @@ - - - + diff --git a/package.json b/package.json index 3a4cee1..a96df18 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.30", + "version": "1.0.31", "license": "GNU3", "main": "index.js", "private": false, From 223ff6e441b08adc103cfc73ba8314ee62b2a98e Mon Sep 17 00:00:00 2001 From: haimkastner Date: Sun, 26 Feb 2023 09:29:42 +0000 Subject: [PATCH 11/21] Bomb version to 1.0.32 [ci skip]" Files changed: M config.xml M package.json --- config.xml | 3 +-- package.json | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/config.xml b/config.xml index 34ae5d3..68a6cce 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard @@ -28,7 +28,6 @@ - diff --git a/package.json b/package.json index a96df18..851b919 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.31", + "version": "1.0.32", "license": "GNU3", "main": "index.js", "private": false, From f71bce963d2640cf53bb024ec122772b95b78267 Mon Sep 17 00:00:00 2001 From: Haim Kastner Date: Tue, 9 May 2023 00:14:10 +0300 Subject: [PATCH 12/21] Minion's restriction and readonly mode --- README.md | 4 - .../actions/ActionOverviewControls.tsx | 7 +- src/components/actions/EditAction.tsx | 2 +- src/components/actions/EditActionSet.tsx | 12 +- src/components/actions/MinionActionsView.tsx | 7 +- .../minions/MinionBottomControls.tsx | 9 +- src/components/minions/MinionEditableName.tsx | 7 +- src/components/minions/MinionFullInfo.tsx | 26 ++- src/components/minions/MinionOverview.tsx | 2 +- src/components/minions/MinionPowerToggle.tsx | 8 +- .../MinionAdvancedSettings.tsx | 10 +- .../advancedSettings/MinionAutoTurnOff.tsx | 19 +- .../minions/advancedSettings/MinionSync.tsx | 13 +- .../minions/restrictions/AddRestriction.tsx | 80 +++++++++ .../restrictions/MinionRestrictions.tsx | 165 ++++++++++++++++++ .../minions/restrictions/RestrictionMode.tsx | 32 ++++ src/components/timings/MinionTimingsView.tsx | 10 +- .../timings/TimingOverviewControls.tsx | 7 +- src/localization/translations/en/global.json | 8 + src/localization/translations/he/global.json | 8 + src/logic/common/minionsUtils.ts | 8 +- src/services/minions.service.ts | 6 +- 22 files changed, 388 insertions(+), 62 deletions(-) create mode 100644 src/components/minions/restrictions/AddRestriction.tsx create mode 100644 src/components/minions/restrictions/MinionRestrictions.tsx create mode 100644 src/components/minions/restrictions/RestrictionMode.tsx diff --git a/README.md b/README.md index 2dc547d..7d74b5c 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,3 @@ In order to debug app in realtime, connect the device to the PC, and open debug- ## License This application is an open-source code, under the GNU license. - -In addition to the GNU terms of the license, any non-personal use requires full credit in a prominent position in the interface including a link to this page and [https://casanet.biz/](https://casanet.biz/) - -בנוסף לתנאי הרישיון של GNU, כל שימוש לא אישי מצריך קרדיט מלא במיקום בולט בממשק כולל קישור לעמוד זה ול [https://casanet.biz/](https://casanet.biz/) \ No newline at end of file diff --git a/src/components/actions/ActionOverviewControls.tsx b/src/components/actions/ActionOverviewControls.tsx index 1dbcd03..df126d1 100644 --- a/src/components/actions/ActionOverviewControls.tsx +++ b/src/components/actions/ActionOverviewControls.tsx @@ -15,6 +15,7 @@ import { Action, ApiFacade } from "../../infrastructure/generated/api/swagger/ap import { actionsService } from "../../services/actions.service"; interface ActionOverviewControlsProps { + disabled?: boolean; action: Action; fontRatio: number; setEditMode: (editMode: boolean) => void; @@ -75,13 +76,13 @@ export function ActionOverviewControls(props: ActionOverviewControlsProps) { > {/* The switch have fixed size, so just take the container with same dimensions */}
- {!settingActive && changeActionActive()} />} + {!settingActive && changeActionActive()} />} {settingActive &&
}
- } - + } ; } \ No newline at end of file diff --git a/src/components/actions/EditAction.tsx b/src/components/actions/EditAction.tsx index 6d21299..5bdaeb9 100644 --- a/src/components/actions/EditAction.tsx +++ b/src/components/actions/EditAction.tsx @@ -288,7 +288,7 @@ export function EditAction(props: EditActionProps) { {actionsSet?.map((actionSet, index) => (
- { setActionsSet(actionsSet.filter((a, i) => i !== index)); }} diff --git a/src/components/actions/EditActionSet.tsx b/src/components/actions/EditActionSet.tsx index e6d85b0..603e668 100644 --- a/src/components/actions/EditActionSet.tsx +++ b/src/components/actions/EditActionSet.tsx @@ -14,7 +14,7 @@ import RemoveCircleIcon from '@material-ui/icons/RemoveCircle'; interface EditActionSetProps { actionSet: ActionSet; minionOwner: Minion; - disable: boolean; + disabled: boolean; onRemove: () => void; onUpdate: () => void; } @@ -22,7 +22,7 @@ interface EditActionSetProps { export function EditActionSet(props: EditActionSetProps) { const { t } = useTranslation(); - const { actionSet, disable } = props; + const { actionSet, disabled } = props; const [minions] = useData(minionsService); @@ -51,7 +51,7 @@ export function EditActionSet(props: EditActionSetProps) {
{ return option.name; }} @@ -74,7 +74,7 @@ export function EditActionSet(props: EditActionSetProps) { )} @@ -90,11 +90,11 @@ export function EditActionSet(props: EditActionSetProps) { {setStatus && selectedMinion &&
- +
{selectedMinion.minionType !== MinionTypes.Toggle && selectedMinion.minionType !== MinionTypes.Switch && - + }
} diff --git a/src/components/actions/MinionActionsView.tsx b/src/components/actions/MinionActionsView.tsx index 319c06c..61b4c34 100644 --- a/src/components/actions/MinionActionsView.tsx +++ b/src/components/actions/MinionActionsView.tsx @@ -9,12 +9,12 @@ import { getModeColor, marginLeft } from "../../logic/common/themeUtils"; import Collapse from '@mui/material/Collapse'; import { Duration } from "unitsnet-js"; import { DEFAULT_FONT_RATION } from "../../infrastructure/consts"; -import { Minion } from "../../infrastructure/generated/api/swagger/api"; import { ActionOverviewControls } from "./ActionOverviewControls"; import { EditAction } from "./EditAction"; import { useData } from "../../hooks/useData"; import { actionsService } from "../../services/actions.service"; import { Loader } from "../Loader"; +import { Minion } from "../../services/minions.service"; interface MinionTimingsViewProps { minion: Minion; @@ -89,6 +89,7 @@ export default function MinionActionsView(props: MinionTimingsViewProps) { alignItems="center" >
; })} -
+ {!props.minion.readonly &&
setShowAddAction(false)} fontRatio={DEFAULT_FONT_RATION} /> @@ -118,6 +119,6 @@ export default function MinionActionsView(props: MinionTimingsViewProps) { {t('dashboard.actions.create.action')} } -
+
}
} \ No newline at end of file diff --git a/src/components/minions/MinionBottomControls.tsx b/src/components/minions/MinionBottomControls.tsx index cb8b9d7..2d3070b 100644 --- a/src/components/minions/MinionBottomControls.tsx +++ b/src/components/minions/MinionBottomControls.tsx @@ -3,7 +3,7 @@ import { useTranslation } from "react-i18next"; import CloseIcon from '@material-ui/icons/Close'; import '../../theme/styles/components/minions/minionEditableName.scss'; import { Fragment, useState } from "react"; -import { minionsService } from "../../services/minions.service"; +import { Minion, minionsService } from "../../services/minions.service"; import { handleServerRestError } from "../../services/notifications.service"; import SaveIcon from '@material-ui/icons/Save'; import MoreHorizIcon from '@material-ui/icons/MoreHoriz'; @@ -11,7 +11,7 @@ import { getModeColor } from "../../logic/common/themeUtils"; import RepeatIcon from '@mui/icons-material/Repeat'; import RefreshIcon from '@mui/icons-material/Refresh'; import { ThemeTooltip } from "../global/ThemeTooltip"; -import { ApiFacade, Minion } from "../../infrastructure/generated/api/swagger/api"; +import { ApiFacade } from "../../infrastructure/generated/api/swagger/api"; interface MinionBottomControlsProps { minion: Minion; @@ -118,8 +118,7 @@ export function MinionBottomControls(props: MinionBottomControlsProps) { } - -
+ {!minion?.readonly &&
-
+
} } \ No newline at end of file diff --git a/src/components/minions/MinionEditableName.tsx b/src/components/minions/MinionEditableName.tsx index e412f36..a0c7f13 100644 --- a/src/components/minions/MinionEditableName.tsx +++ b/src/components/minions/MinionEditableName.tsx @@ -3,12 +3,12 @@ import { useTranslation } from "react-i18next"; import CloseIcon from '@material-ui/icons/Close'; import '../../theme/styles/components/minions/minionEditableName.scss'; import { Fragment, useState } from "react"; -import { minionsService } from "../../services/minions.service"; +import { Minion, minionsService } from "../../services/minions.service"; import { handleServerRestError } from "../../services/notifications.service"; import EditIcon from '@mui/icons-material/Edit'; import SaveIcon from '@material-ui/icons/Save'; import { ThemeTooltip } from "../global/ThemeTooltip"; -import { ApiFacade, Minion } from "../../infrastructure/generated/api/swagger/api"; +import { ApiFacade } from "../../infrastructure/generated/api/swagger/api"; interface MinionMinionEditableNameProps { minion: Minion; @@ -66,8 +66,9 @@ export function MinionEditableName(props: MinionMinionEditableNameProps) { /> }
- {!editNameMode && {t('dashboard.minions.edit.name')}} > + {!editNameMode && !minion.readonly && {t('dashboard.minions.edit.name')}} > { setEditNameMode(true); setEditName(minion.name); }} color="inherit"> diff --git a/src/components/minions/MinionFullInfo.tsx b/src/components/minions/MinionFullInfo.tsx index b727027..0805a73 100644 --- a/src/components/minions/MinionFullInfo.tsx +++ b/src/components/minions/MinionFullInfo.tsx @@ -11,7 +11,7 @@ import '../../theme/styles/components/minions/minionFullInfo.scss'; import Box from '@mui/material/Box'; import LinearProgress from '@mui/material/LinearProgress'; import { Suspense, useState } from "react"; -import { minionsService } from "../../services/minions.service"; +import { Minion, minionsService } from "../../services/minions.service"; import { handleServerRestError } from "../../services/notifications.service"; import { MinionEditableName } from "./MinionEditableName"; import { MinionEditStatus } from "./editMinionStatus/MinionEditStatus"; @@ -32,11 +32,13 @@ import React from "react"; import { Loader } from "../Loader"; import { MinionIndicators } from "./MinionIndicators"; import { MinionTimeoutOverview } from "./MinionTimeoutOverview"; -import { ApiFacade, Minion, MinionStatus } from "../../infrastructure/generated/api/swagger/api"; +import { ApiFacade, MinionStatus } from "../../infrastructure/generated/api/swagger/api"; import { MinionBatteryOverview } from "./MinionBatteryOverview"; +import { sessionManager } from "../../infrastructure/session-manager"; const MinionTimeline = React.lazy(() => import('./timeline/MinionTimeline')); const MinionActionsView = React.lazy(() => import('../actions/MinionActionsView')); +const MinionRestrictions = React.lazy(() => import('./restrictions/MinionRestrictions')); const DEFAULT_FONT_SIZE = SIDE_CONTAINER_DEFAULT_FONT_SIZE; @@ -153,7 +155,7 @@ export function MinionFullInfo(props: MinionFullInfoProps) { minionStatus={minion.minionStatus} minionType={minion.minionType} setMinionStatus={setMinionStatus} - disabled={saving} + disabled={saving || minion.readonly} fontRatio={desktopMode ? DEFAULT_FONT_SIZE : DEFAULT_FONT_SIZE * 0.7} smallFontRatio={desktopMode ? DEFAULT_FONT_SIZE * 0.5 : DEFAULT_FONT_SIZE * 0.5 * 0.7} />
@@ -234,6 +236,20 @@ export function MinionFullInfo(props: MinionFullInfoProps) {
+ {sessionManager.isAdmin && + } + > + {t('global.minion.restrictions')} + + +
+ }> + + +
+
+
} } @@ -247,7 +263,7 @@ export function MinionFullInfo(props: MinionFullInfoProps) {
-
+ {!minion?.readonly &&
} -
+
} ; diff --git a/src/components/minions/MinionOverview.tsx b/src/components/minions/MinionOverview.tsx index 6fd89c0..7db7e7b 100644 --- a/src/components/minions/MinionOverview.tsx +++ b/src/components/minions/MinionOverview.tsx @@ -8,9 +8,9 @@ import { mapMinionTypeToDisplay } from "../../logic/common/minionsUtils"; import { MinionIndicators } from "./MinionIndicators"; import { useTranslation } from "react-i18next"; import { MinionTimeoutOverview } from "./MinionTimeoutOverview"; -import { Minion } from "../../infrastructure/generated/api/swagger/api"; import { MinionBatteryOverview } from "./MinionBatteryOverview"; import { marginLeft, marginRight, right } from "../../logic/common/themeUtils"; +import { Minion } from "../../services/minions.service"; interface MinionOverviewProps { minion: Minion; diff --git a/src/components/minions/MinionPowerToggle.tsx b/src/components/minions/MinionPowerToggle.tsx index 73e99c3..c16cf6e 100644 --- a/src/components/minions/MinionPowerToggle.tsx +++ b/src/components/minions/MinionPowerToggle.tsx @@ -5,12 +5,12 @@ import MoreHorizIcon from '@material-ui/icons/MoreHoriz'; // import ErrorOutlineRoundedIcon from '@material-ui/icons/ErrorOutlineRounded'; import { useTranslation } from "react-i18next"; import { handleServerRestError } from "../../services/notifications.service"; -import { minionsService } from "../../services/minions.service"; +import { Minion, minionsService } from "../../services/minions.service"; import clonedeep from 'lodash.clonedeep'; import { getModeColor } from "../../logic/common/themeUtils"; import { defaultMinionStatus, isOnMode } from "../../logic/common/minionsUtils"; import { ThemeTooltip } from "../global/ThemeTooltip"; -import { ApiFacade, Minion, SwitchOptions } from "../../infrastructure/generated/api/swagger/api"; +import { ApiFacade, SwitchOptions } from "../../infrastructure/generated/api/swagger/api"; interface MinionPowerToggleProps { minion: Minion; @@ -53,10 +53,10 @@ export function MinionPowerToggle(props: MinionPowerToggleProps) { e.stopPropagation(); }} > - {t(`dashboard.minions.press.to.${isOn ? 'off' : 'on'}`)}} disableFocusListener > + {t(`dashboard.minions.press.to.${isOn ? 'off' : 'on'}`)}} disableFocusListener > - {isFetchCommandsAvailable && } - {isFetchCommandsAvailable && } - {isRecordingSupported && } - {isRecordingSupported && } + {!minion.readonly && isFetchCommandsAvailable && } + {!minion.readonly && isFetchCommandsAvailable && } + {!minion.readonly && isRecordingSupported && } + {!minion.readonly && isRecordingSupported && } ; } diff --git a/src/components/minions/advancedSettings/MinionAutoTurnOff.tsx b/src/components/minions/advancedSettings/MinionAutoTurnOff.tsx index 078519b..888094a 100644 --- a/src/components/minions/advancedSettings/MinionAutoTurnOff.tsx +++ b/src/components/minions/advancedSettings/MinionAutoTurnOff.tsx @@ -4,7 +4,7 @@ import InfoIcon from '@mui/icons-material/Info'; import { useEffect, useState } from "react"; import clonedeep from 'lodash.clonedeep'; import { Duration } from 'unitsnet-js'; -import { minionsService } from "../../../services/minions.service"; +import { Minion, minionsService } from "../../../services/minions.service"; import { handleServerRestError } from "../../../services/notifications.service"; import { HMS, HMStoMs, msToHMS } from "../../../logic/common/minionsUtils"; import SaveIcon from '@material-ui/icons/Save'; @@ -12,7 +12,7 @@ import CloseIcon from '@material-ui/icons/Close'; import { ThemeSwitch } from "../../global/ThemeSwitch"; import { ThemeTooltip } from "../../global/ThemeTooltip"; import { marginLeft } from "../../../logic/common/themeUtils"; -import { ApiFacade, Minion } from "../../../infrastructure/generated/api/swagger/api"; +import { ApiFacade } from "../../../infrastructure/generated/api/swagger/api"; interface MinionAutoTurnOffProps { fontRatio: number; @@ -53,6 +53,9 @@ export function MinionAutoTurnOff(props: MinionAutoTurnOffProps) { // Detect if the turnOffIn changed by the user, if so, show it as 'edit mode' const editMode = HMStoMs(turnOffIn) !== (minion.minionAutoTurnOffMS || 0); + const disableModify = saving || minion?.readonly; + const disableModifyProps = disableModify || isOff; + return
{editMode && {t('global.save')}} > @@ -186,7 +189,7 @@ export function MinionAutoTurnOff(props: MinionAutoTurnOffProps) { } {editMode && {t('global.cancel')}} > { setTurnOffIn(msToHMS(minion.minionAutoTurnOffMS)); }} color="inherit"> @@ -202,7 +205,7 @@ export function MinionAutoTurnOff(props: MinionAutoTurnOffProps) {
{!saving && { setAutoTurnOff(Duration.FromMinutes(!isOff ? 0 : 1)) }} />} diff --git a/src/components/minions/advancedSettings/MinionSync.tsx b/src/components/minions/advancedSettings/MinionSync.tsx index 0021dc9..af95df4 100644 --- a/src/components/minions/advancedSettings/MinionSync.tsx +++ b/src/components/minions/advancedSettings/MinionSync.tsx @@ -3,7 +3,7 @@ import { useTranslation } from "react-i18next" import InfoIcon from '@mui/icons-material/Info'; import { CSSProperties, useEffect, useState } from "react"; import { Duration } from 'unitsnet-js'; -import { minionsService } from "../../../services/minions.service"; +import { Minion, minionsService } from "../../../services/minions.service"; import { handleServerRestError } from "../../../services/notifications.service"; import SaveIcon from '@material-ui/icons/Save'; import CloseIcon from '@material-ui/icons/Close'; @@ -15,7 +15,7 @@ import LockIcon from '@mui/icons-material/Lock'; import RotateRightIcon from '@mui/icons-material/RotateRight'; import LockOutlinedIcon from '@mui/icons-material/LockOutlined'; import { ThemeTooltip } from "../../global/ThemeTooltip"; -import { ApiFacade, CalibrationMode, Minion } from "../../../infrastructure/generated/api/swagger/api"; +import { ApiFacade, CalibrationMode } from "../../../infrastructure/generated/api/swagger/api"; import PhonelinkLockIcon from '@material-ui/icons/PhonelinkLock'; interface MinionSyncProps { @@ -65,6 +65,9 @@ export function MinionSync(props: MinionSyncProps) { // Calibration option size const calibrationModeStyle: CSSProperties = { fontSize: fontRatio * 0.4 }; + const disableModify = saving || minion?.readonly; + const disableModifyProps = disableModify || isOff; + return
{!saving && { setMinionCalibration(Duration.FromMinutes(!isOff ? 0 : 10)) }} />} diff --git a/src/components/minions/restrictions/AddRestriction.tsx b/src/components/minions/restrictions/AddRestriction.tsx new file mode 100644 index 0000000..483a16e --- /dev/null +++ b/src/components/minions/restrictions/AddRestriction.tsx @@ -0,0 +1,80 @@ +import { DEFAULT_FONT_RATION } from "../../../infrastructure/consts"; +import { useState } from "react"; +import { useTranslation } from "react-i18next"; +import { RestrictionType, RestrictionItem, AuthScopes } from "../../../infrastructure/generated/api/swagger/api"; +import { FormControl, Grid, MenuItem, Select } from "@mui/material"; +import { Minion } from "../../../services/minions.service"; +import { usersService } from "../../../services/users.service"; +import { useData } from "../../../hooks/useData"; +import LoadingButton from "@mui/lab/LoadingButton"; +import { Button } from "@material-ui/core"; +import { mapRestrictionsTypeToDisplay } from "../../../logic/common/minionsUtils"; + +export interface AddRestrictionProps { + minion: Minion; + saving: boolean; + onFinished: (restriction?: RestrictionItem) => void; +} + +export function AddRestriction(props: AddRestrictionProps) { + const { t } = useTranslation(); + const [restriction, setRestriction] = useState(); + const [userEmail, setUserEmail] = useState(''); + + const [users, loading] = useData(usersService); + + const emails = props?.minion?.restrictions?.map(r => r.userEmail) || [] + const relevantUsers = users?.filter(u => u.scope !== AuthScopes.AdminAuth && !emails.includes(u.email)) || []; + + return
+ + + + + + + + + { + props.onFinished({ userEmail, restrictionType: restriction as RestrictionType }); + setUserEmail(''); + }}> + {t(`dashboard.restrictions.add.restriction`)} + + +
+} \ No newline at end of file diff --git a/src/components/minions/restrictions/MinionRestrictions.tsx b/src/components/minions/restrictions/MinionRestrictions.tsx new file mode 100644 index 0000000..0298dd9 --- /dev/null +++ b/src/components/minions/restrictions/MinionRestrictions.tsx @@ -0,0 +1,165 @@ +import { Button, CircularProgress, Grid, IconButton, Theme, Typography, useMediaQuery, useTheme } from "@material-ui/core"; +import Divider from "@mui/material/Divider"; +import { useState } from "react"; +import AddIcon from '@mui/icons-material/Add'; +import { useTranslation } from "react-i18next"; +import Collapse from '@mui/material/Collapse'; +import { Duration } from "unitsnet-js"; +import { DashboardRoutes, DEFAULT_FONT_RATION } from "../../../infrastructure/consts"; +import { Minion, minionsService } from "../../../services/minions.service"; +import { getModeColor, marginLeft } from "../../../logic/common/themeUtils"; +import { ThemeTooltip } from "../../global/ThemeTooltip"; +import LaunchIcon from '@mui/icons-material/Launch'; +import { useHistory } from "react-router-dom"; +import { RestrictionMode } from "./RestrictionMode"; +import { ApiFacade, RestrictionItem, RestrictionType } from "../../../infrastructure/generated/api/swagger/api"; +import { handleServerRestError } from "../../../services/notifications.service"; +import DeleteIcon from '@mui/icons-material/Delete'; +import { AddRestriction } from "./AddRestriction"; + +interface MinionRestrictionsProps { + minion: Minion; +} + +const PROPERTIES_OPEN_ANIMATION_DURATION = Duration.FromSeconds(0.8); + +export default function MinionRestrictions(props: MinionRestrictionsProps) { + const { t } = useTranslation(); + const theme = useTheme(); + const desktopMode = useMediaQuery((theme: Theme) => theme.breakpoints.up('sm')); + const [showAddRestrictionView, setShowAddRestrictionView] = useState(false); + const [savingRestrictions, setSavingRestrictions] = useState(); + const [addingRestrictions, setAddingRestrictions] = useState(false); + const history = useHistory(); + + const minion = props?.minion; + const restrictions = minion?.restrictions || []; + + async function setRestrictions(restrictionsToSet: RestrictionItem[]) { + try { + await ApiFacade.MinionsApi.setMinionRestriction(minion?.minionId || '', restrictionsToSet); + minion!.restrictions = restrictionsToSet; + minionsService.updateMinion(minion); + } catch (error) { + handleServerRestError(error); + } + } + + async function addRestriction(restriction: RestrictionItem) { + setAddingRestrictions(true); + const restrictionsCopy: RestrictionItem[] = [...restrictions]; + restrictionsCopy.push(restriction); + await setRestrictions(restrictionsCopy); + setAddingRestrictions(false); + setShowAddRestrictionView(false) + } + + async function removeRestriction(userEmail: string) { + setSavingRestrictions(userEmail); + const restrictionsCopy: RestrictionItem[] = [...restrictions]; + const replaceIndex = restrictionsCopy.findIndex((r => r.userEmail === userEmail)); + restrictionsCopy.splice(replaceIndex, 1); + await setRestrictions(restrictionsCopy); + setSavingRestrictions(''); + } + + async function updateRestriction(userEmail: string, restrictionType: RestrictionType) { + setSavingRestrictions(userEmail); + const restrictionsCopy: RestrictionItem[] = [...restrictions]; + const replaceIndex = restrictionsCopy.findIndex((r => r.userEmail === userEmail)); + restrictionsCopy[replaceIndex] = { + userEmail, + restrictionType, + } + await setRestrictions(restrictionsCopy); + setSavingRestrictions(''); + } + + + return
+ {!restrictions?.length && + {t('dashboard.restrictions.no.restrictions')} + } + {restrictions.map((restriction) => { + return
+
+ +
+
+

{restriction.userEmail}

+
+ {t('dashboard.restrictions.see.user.info')}} > + history.push(`${DashboardRoutes.profile.path}/${restriction.userEmail}`)} + color="inherit"> + + + +
+
+ { updateRestriction(restriction.userEmail, restrictionType); })} restrictionType={restriction.restrictionType} /> +
+
+ + {savingRestrictions === restriction.userEmail ? + : + {t(`dashboard.restrictions.remove.restriction`, { user: restriction.userEmail })}} > + { removeRestriction(restriction.userEmail) }} + color="inherit"> + + + } + +
+ +
; + })} +
+ + { !restriction ? setShowAddRestrictionView(false) : addRestriction(restriction) }} /> + + {!showAddRestrictionView && + + } +
+
+} \ No newline at end of file diff --git a/src/components/minions/restrictions/RestrictionMode.tsx b/src/components/minions/restrictions/RestrictionMode.tsx new file mode 100644 index 0000000..7215f89 --- /dev/null +++ b/src/components/minions/restrictions/RestrictionMode.tsx @@ -0,0 +1,32 @@ +import { useState } from "react"; +import { useTranslation } from "react-i18next"; +import { RestrictionType } from "../../../infrastructure/generated/api/swagger/api"; +import { FormControl, MenuItem, Select } from "@mui/material"; +import { mapRestrictionsTypeToDisplay } from "../../../logic/common/minionsUtils"; + +export interface RestrictionModeProps { + disabled: boolean; + restrictionType: RestrictionType; + onRestrictionChange: (restriction: RestrictionType) => void +} + +export function RestrictionMode(props: RestrictionModeProps) { + const { t } = useTranslation(); + const [restriction, setRestriction] = useState(props.restrictionType); + + return + + +} \ No newline at end of file diff --git a/src/components/timings/MinionTimingsView.tsx b/src/components/timings/MinionTimingsView.tsx index 3a22a9d..3e4035f 100644 --- a/src/components/timings/MinionTimingsView.tsx +++ b/src/components/timings/MinionTimingsView.tsx @@ -15,7 +15,8 @@ import { getModeColor, marginLeft } from "../../logic/common/themeUtils"; import Collapse from '@mui/material/Collapse'; import { Duration } from "unitsnet-js"; import { DEFAULT_FONT_RATION } from "../../infrastructure/consts"; -import { Minion, MinionStatus, Timing } from "../../infrastructure/generated/api/swagger/api"; +import { MinionStatus, Timing } from "../../infrastructure/generated/api/swagger/api"; +import { Minion } from "../../services/minions.service"; interface MinionTimingsViewProps { minion: Minion; @@ -90,7 +91,7 @@ export function MinionTimingsView(props: MinionTimingsViewProps) { fontRatio={DEFAULT_FONT_RATION * 0.8} smallFontRatio={DEFAULT_FONT_RATION * 0.5} showSwitches={true} - disabled={!timing.isActive} + disabled={!timing.isActive || props.minion?.readonly} isOn={timing.isActive && isOnMode(props.minion.minionType, timing.triggerDirectAction?.minionStatus)} />
@@ -103,6 +104,7 @@ export function MinionTimingsView(props: MinionTimingsViewProps) { alignItems="center" >
; })} -
+ {!props.minion?.readonly &&
setShowAddTiming(false)} fontRatio={DEFAULT_FONT_RATION} /> @@ -132,6 +134,6 @@ export function MinionTimingsView(props: MinionTimingsViewProps) { {t('dashboard.timings.create.timing')} } -
+
}
} \ No newline at end of file diff --git a/src/components/timings/TimingOverviewControls.tsx b/src/components/timings/TimingOverviewControls.tsx index 49056e0..1aaf0c5 100644 --- a/src/components/timings/TimingOverviewControls.tsx +++ b/src/components/timings/TimingOverviewControls.tsx @@ -15,6 +15,7 @@ import { marginLeft } from "../../logic/common/themeUtils"; import { ApiFacade, Timing } from "../../infrastructure/generated/api/swagger/api"; interface TimingOverviewControlsProps { + disabled?: boolean; timing: Timing; fontRatio: number; setEditMode: (editMode: boolean) => void; @@ -75,13 +76,13 @@ export function TimingOverviewControls(props: TimingOverviewControlsProps) { > {/* The switch have fixed size, so just take the container with same dimensions */}
- {!settingActive && changeTimingActive()} />} + {!settingActive && changeTimingActive()} />} {settingActive &&
}
-
} -
+ } ; } \ No newline at end of file diff --git a/src/localization/translations/en/global.json b/src/localization/translations/en/global.json index 2a61953..41fe59c 100644 --- a/src/localization/translations/en/global.json +++ b/src/localization/translations/en/global.json @@ -32,6 +32,7 @@ "global.timings": "Timings", "global.actions": "Actions", "global.advanced.settings": "Advanced Settings", + "global.minion.restrictions": "Minion Restrictions", "global.before": "before", "global.after": "after", "global.sunrise": "sunrise", @@ -272,6 +273,13 @@ "dashboard.actions.delete.action.alert.title": "Deleting action", "dashboard.actions.delete.action.alert.text": "Are you sure you want to permanently delete the action \"{{name}}\"", "dashboard.actions.select.minion.to.set": "A minion to set his status", + "dashboard.restrictions.no.restrictions": "No restrictions", + "dashboard.restrictions.see.user.info": "See full user info", + "dashboard.restrictions.remove.restriction": "Remove {{user}} restriction", + "dashboard.restrictions.add.restriction": "Add restriction", + "dashboard.restrictions.type.block": "Block", + "dashboard.restrictions.type.read": "Read", + "dashboard.restrictions.type.write": "Write", "dashboard.network.device.name": "Name", "dashboard.network.device.mac": "MAC address", "dashboard.network.device.ip": "IP address", diff --git a/src/localization/translations/he/global.json b/src/localization/translations/he/global.json index 89709e9..9c0d3f8 100644 --- a/src/localization/translations/he/global.json +++ b/src/localization/translations/he/global.json @@ -32,6 +32,7 @@ "global.timings": "תזמונים", "global.actions": "פעולות", "global.advanced.settings": "הגדרות מתקדמות", + "global.minion.restrictions": "מגבלות למכשיר", "global.before": "לפני", "global.after": "אחרי", "global.sunrise": "זריחה", @@ -272,6 +273,13 @@ "dashboard.actions.delete.action.alert.title": "מחיקת פעולה", "dashboard.actions.delete.action.alert.text": "בטוח למחוק לצמיתות את הפעולה \"{{name}}\" ?", "dashboard.actions.select.minion.to.set": "בחר מכשיר להגדרה", + "dashboard.restrictions.no.restrictions": "אין מגבלות", + "dashboard.restrictions.see.user.info": "צפה במידע המלא על המשתמש", + "dashboard.restrictions.remove.restriction": "הסרת מגבלות {{user}}", + "dashboard.restrictions.add.restriction": "הוסף מגבלות", + "dashboard.restrictions.type.block": "חסימה", + "dashboard.restrictions.type.read": "קריאה", + "dashboard.restrictions.type.write": "כתיבה", "dashboard.network.device.name": "שם", "dashboard.network.device.mac": "כתובת MAC", "dashboard.network.device.ip": "כתובת IP", diff --git a/src/logic/common/minionsUtils.ts b/src/logic/common/minionsUtils.ts index 441bfab..95613de 100644 --- a/src/logic/common/minionsUtils.ts +++ b/src/logic/common/minionsUtils.ts @@ -1,4 +1,4 @@ -import { ACModeOptions, CleanerMode, FanStrengthOptions, MinionChangeTrigger, MinionStatus, MinionTypes, RollerDirection, SwitchOptions } from "../../infrastructure/generated/api/swagger/api"; +import { ACModeOptions, CleanerMode, FanStrengthOptions, MinionChangeTrigger, MinionStatus, MinionTypes, RestrictionType, RollerDirection, SwitchOptions } from "../../infrastructure/generated/api/swagger/api"; /** Map minions type to the display name i18n key */ export const mapMinionTypeToDisplay: { [key in MinionTypes]: string } = { @@ -25,6 +25,12 @@ export const mapMinionChangeTriggerDisplay: { [key in MinionChangeTrigger]: stri [MinionChangeTrigger.Action]: 'dashboard.minions.change.trigger.by.action', } +export const mapRestrictionsTypeToDisplay: { [key in RestrictionType]: string } = { + [RestrictionType.Block]: 'dashboard.restrictions.type.block', + [RestrictionType.Read]: 'dashboard.restrictions.type.read', + [RestrictionType.Write]: 'dashboard.restrictions.type.write', +} + export interface HMS { hours: number; minutes: number; diff --git a/src/services/minions.service.ts b/src/services/minions.service.ts index b246bd3..2104758 100644 --- a/src/services/minions.service.ts +++ b/src/services/minions.service.ts @@ -3,9 +3,13 @@ import { envFacade } from "../infrastructure/env-facade"; import { sessionManager } from "../infrastructure/session-manager"; import { API_KEY_HEADER, PULL_MINION_ACTIVATION } from "../infrastructure/consts"; import { timelineService } from "./timeline.service"; -import { ApiFacade, FeedEvent, Minion, MinionFeed } from "../infrastructure/generated/api/swagger/api"; +import { ApiFacade, FeedEvent, Minion as ApiMinion, MinionFeed } from "../infrastructure/generated/api/swagger/api"; import { livelinessFlag } from "./liveliness.service"; +export interface Minion extends ApiMinion { + readonly?: boolean; +} + function sortMinionsFormula(a: Minion, b: Minion): number { return a.name?.toLowerCase() < b.name?.toLowerCase() ? -1 : 1; } From 23e7723199a09f1321e6d00bbe44d809d693a0d5 Mon Sep 17 00:00:00 2001 From: haimkastner Date: Mon, 8 May 2023 21:16:01 +0000 Subject: [PATCH 13/21] Bomb version to 1.0.33 [ci skip]" Files changed: M config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index 68a6cce..3b83911 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 851b919..0077080 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.32", + "version": "1.0.33", "license": "GNU3", "main": "index.js", "private": false, From f35b2f531679575ecd3535db7b889a52993b4ac2 Mon Sep 17 00:00:00 2001 From: haimkastner Date: Fri, 12 May 2023 12:13:29 +0000 Subject: [PATCH 14/21] Bomb version to 1.0.34 [ci skip]" Files changed: M config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index 3b83911..5074c0d 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 0077080..846782f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.33", + "version": "1.0.34", "license": "GNU3", "main": "index.js", "private": false, From 4999ee2192cda0c72e5e416cc54ce693c1abdded Mon Sep 17 00:00:00 2001 From: haimkastner Date: Wed, 17 May 2023 10:57:47 +0000 Subject: [PATCH 15/21] Bomb version to 1.0.35 [ci skip]" Files changed: M config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index 5074c0d..3601e96 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 9024410..52b98ec 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.34", + "version": "1.0.35", "license": "GNU3", "main": "index.js", "private": false, From b7addb2ccf429a0197ea836c20fe7b2550ead5d9 Mon Sep 17 00:00:00 2001 From: haimkastner Date: Thu, 18 May 2023 10:50:20 +0000 Subject: [PATCH 16/21] Bomb version to 1.0.36 [ci skip]" Files changed: M config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index 3601e96..f7f61b7 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 52b98ec..314e42e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.35", + "version": "1.0.36", "license": "GNU3", "main": "index.js", "private": false, From 3aa0e65baac024a5208c8be7645a7ed352a0773c Mon Sep 17 00:00:00 2001 From: haimkastner Date: Sat, 9 Sep 2023 20:23:13 +0000 Subject: [PATCH 17/21] Bomb version to 1.0.37 [ci skip]" Files changed: M config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index f7f61b7..a3190fe 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 3972e0b..3faf05b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.36", + "version": "1.0.37", "license": "GNU3", "main": "index.js", "private": false, From 90aefb72ce43e02c898c07b24ee9062f72825834 Mon Sep 17 00:00:00 2001 From: haimkastner Date: Wed, 13 Sep 2023 20:17:01 +0000 Subject: [PATCH 18/21] Bomb version to 1.0.38 [ci skip]" Files changed: M config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index a3190fe..e5baf6f 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 3faf05b..e441b38 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.37", + "version": "1.0.38", "license": "GNU3", "main": "index.js", "private": false, From 8b0e8e25549c26bfa0c68b5710053be46e109451 Mon Sep 17 00:00:00 2001 From: haimkastner Date: Tue, 11 Jun 2024 09:47:12 +0000 Subject: [PATCH 19/21] Bomb version to 1.0.39 [ci skip]" Files changed: M config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index e5baf6f..791100e 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 33abd47..1e67899 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.38", + "version": "1.0.39", "license": "GNU3", "main": "index.js", "private": false, From 3266a7a9ce698a71e3b2f308d9bed3be5b24d5b6 Mon Sep 17 00:00:00 2001 From: Haim Kastner Date: Tue, 11 Jun 2024 13:00:50 +0300 Subject: [PATCH 20/21] Update dep --- .github/workflows/build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7a833b8..e3cec8f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -74,7 +74,7 @@ jobs: mkdir android cp platforms/android/app/build/outputs/bundle/$BUILD_TYPE/app-$BUILD_TYPE.aab android/app-$BUILD_TYPE.aab cp platforms/android/app/build/outputs/apk/$BUILD_TYPE/app-$BUILD_TYPE.apk android/app-$BUILD_TYPE.apk - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: android path: android @@ -95,7 +95,7 @@ jobs: if [[ $BRANCH == 'main' ]]; then export REACT_APP_LIGHTWEIGHT_URL=$LIGHTWEIGHT_URL_PROD ; else export REACT_APP_LIGHTWEIGHT_URL=$LIGHTWEIGHT_URL_DEV; fi if [[ $BRANCH == 'main' ]]; then export REACT_APP_SHOW_VERSION_COMMIT='false' ; else export REACT_APP_SHOW_VERSION_COMMIT='true'; fi yarn run build - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: www path: www @@ -110,7 +110,7 @@ jobs: export BRANCH=${GITHUB_REF##*/} if [[ $BRANCH == 'main' ]]; then export REACT_APP_SHOW_VERSION_COMMIT='false' ; else export REACT_APP_SHOW_VERSION_COMMIT='true'; fi yarn run build - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: internal path: internal @@ -123,7 +123,7 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3 - - uses: actions/download-artifact@master + - uses: actions/download-artifact@v4 - name: Install node uses: actions/setup-node@v3 with: @@ -162,7 +162,7 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3 - - uses: actions/download-artifact@master + - uses: actions/download-artifact@v4 with: name: android path: android From eb1e6341e1ced7237b0db9fbb95d4fc27bc10b94 Mon Sep 17 00:00:00 2001 From: haimkastner Date: Tue, 11 Jun 2024 10:02:19 +0000 Subject: [PATCH 21/21] Bomb version to 1.0.40 [ci skip]" Files changed: M config.xml M package.json --- config.xml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index 791100e..68746f1 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + casanet Cadasnet IoT Control Dashboard diff --git a/package.json b/package.json index 1e67899..0eaa623 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "casa.casanet.dashboard", "displayName": "casanet", - "version": "1.0.39", + "version": "1.0.40", "license": "GNU3", "main": "index.js", "private": false,