Merge branch 'access_object' into dev_environment
This commit is contained in:
commit
deb3fabd45
12 changed files with 72 additions and 43 deletions
BIN
src/assets/marketplaceImages/Libra_Cart_temp.jpg
Normal file
BIN
src/assets/marketplaceImages/Libra_Cart_temp.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
|
|
@ -22,6 +22,7 @@ interface Props {
|
|||
loadMore?: () => void;
|
||||
//startingTranslate: number;
|
||||
valDisplay?: "high" | "low" | "average";
|
||||
insert?: boolean
|
||||
}
|
||||
|
||||
const useStyles = makeStyles((_theme) => {
|
||||
|
|
@ -39,7 +40,7 @@ const useStyles = makeStyles((_theme) => {
|
|||
});
|
||||
|
||||
export default function BinsList(props: Props) {
|
||||
const { bins, duplicateBin, title, gridView, loadMore, valDisplay } = props;
|
||||
const { bins, duplicateBin, title, gridView, loadMore, valDisplay, insert } = props;
|
||||
const classes = useStyles();
|
||||
// const history = useHistory();
|
||||
const navigate = useNavigate()
|
||||
|
|
@ -114,7 +115,12 @@ export default function BinsList(props: Props) {
|
|||
{bins.map((b, i) =>
|
||||
(
|
||||
<Grid
|
||||
size={{
|
||||
size={insert ? {
|
||||
xs: 6,
|
||||
sm: 6,
|
||||
md: 4,
|
||||
lg: 3,
|
||||
} : {
|
||||
xs: 6,
|
||||
sm: 4,
|
||||
md: 3,
|
||||
|
|
|
|||
|
|
@ -316,6 +316,7 @@ export default function BinyardDisplay(props: Props) {
|
|||
<Grid size={12}>
|
||||
<BinsList
|
||||
gridView
|
||||
insert
|
||||
valDisplay="average"
|
||||
bins={grainBins}
|
||||
duplicateBin={duplicateBin}
|
||||
|
|
@ -332,6 +333,7 @@ export default function BinyardDisplay(props: Props) {
|
|||
<Grid size={12}>
|
||||
<BinsList
|
||||
gridView
|
||||
insert
|
||||
valDisplay="average"
|
||||
bins={fertBins}
|
||||
duplicateBin={duplicateBin}
|
||||
|
|
@ -348,6 +350,7 @@ export default function BinyardDisplay(props: Props) {
|
|||
<Grid size={12}>
|
||||
<BinsList
|
||||
gridView
|
||||
insert
|
||||
valDisplay="average"
|
||||
bins={emptyBins}
|
||||
duplicateBin={duplicateBin}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import {
|
|||
MenuItem,
|
||||
OutlinedInput,
|
||||
Select,
|
||||
TextField,
|
||||
Theme
|
||||
} from "@mui/material";
|
||||
import moment, { Moment } from "moment";
|
||||
|
|
@ -16,6 +17,7 @@ import ReactDOM from "react-dom";
|
|||
import { DateRangePreset, SetDefaultPreset } from "./DateRange";
|
||||
import ResponsiveDialog from "common/ResponsiveDialog";
|
||||
import { withStyles, WithStyles } from "@mui/styles";
|
||||
import { cloneDeep } from "lodash";
|
||||
|
||||
const styles = (_theme: Theme) => createStyles({});
|
||||
|
||||
|
|
@ -249,18 +251,30 @@ class DateSelect extends React.Component<Props, State> {
|
|||
onClose={this.closeDateRangeDialog}
|
||||
aria-labelledby="date-range-dialog">
|
||||
<DialogContent>
|
||||
{/* <StaticDateRangePicker
|
||||
disableFuture
|
||||
value={dateRange}
|
||||
onChange={date => this.updateDateRange(date)}
|
||||
renderInput={(startProps, endProps) => (
|
||||
<React.Fragment>
|
||||
<TextField {...startProps} />
|
||||
<DateRangeDelimiter> to </DateRangeDelimiter>
|
||||
<TextField {...endProps} />
|
||||
</React.Fragment>
|
||||
)}
|
||||
/> */}
|
||||
<TextField
|
||||
fullWidth
|
||||
margin="normal"
|
||||
type="date"
|
||||
label="Start Time"
|
||||
value={dateRange[0]?.format("YYYY-MM-DD")}
|
||||
onChange={e => {
|
||||
let range = cloneDeep(dateRange)
|
||||
range[0] = moment(e.target.value)
|
||||
this.updateDateRange(range)
|
||||
}}
|
||||
/>
|
||||
<TextField
|
||||
fullWidth
|
||||
margin="normal"
|
||||
type="date"
|
||||
label="End Time"
|
||||
value={dateRange[1]?.format("YYYY-MM-DD")}
|
||||
onChange={e => {
|
||||
let range = cloneDeep(dateRange)
|
||||
range[1] = moment(e.target.value)
|
||||
this.updateDateRange(range)
|
||||
}}
|
||||
/>
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<Button onClick={this.closeDateRangeDialog} color="primary">
|
||||
|
|
|
|||
|
|
@ -42,11 +42,11 @@ const featureVersions: Map<string, FeatureVersionByPlatform> = new Map([
|
|||
v2Cell: "N/A",
|
||||
v2WifiS3: "N/A",
|
||||
v2CellS3: "N/A",
|
||||
v2CellBlack: "2.1.6",
|
||||
v2CellBlack: "2.1.7",
|
||||
v2CellGreen: "N/A",
|
||||
v2WifiBlue: "2.1.6",
|
||||
v2CellBlue: "2.1.6",
|
||||
v2EthBlue: "2.1.6"
|
||||
v2WifiBlue: "2.1.7",
|
||||
v2CellBlue: "2.1.7",
|
||||
v2EthBlue: "2.1.7"
|
||||
}
|
||||
]
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ export default function Heaters() {
|
|||
.listObjectHeatersPageData(pageSize, tablePage * pageSize, undefined, undefined, searchText, as)
|
||||
.then(resp => {
|
||||
setTotal(resp.data.total)
|
||||
setHeaters(resp.data.heaterData);
|
||||
setHeaters(resp.data.heaterData ?? []);
|
||||
});
|
||||
}, [objectHeaterAPI, as, pageSize, tablePage, searchText]);
|
||||
|
||||
|
|
|
|||
|
|
@ -108,7 +108,8 @@ export default function Users() {
|
|||
"remove-devices",
|
||||
"copy-token",
|
||||
"recluse",
|
||||
"pause-data"
|
||||
"pause-data",
|
||||
"access-object"
|
||||
].sort();
|
||||
const features = [
|
||||
"admin",
|
||||
|
|
|
|||
|
|
@ -90,8 +90,7 @@ export default function InteractionProvider(props: PropsWithChildren<Props>) {
|
|||
) => {
|
||||
const view = otherTeam ? otherTeam : as
|
||||
let url = pondURL(
|
||||
"/interactions/forComponents/" +
|
||||
"?componentIds=" +
|
||||
"/interactions/forComponents?componentIds=" +
|
||||
fullComponentLocations.toString() +
|
||||
(view ? "&as=" + view : "")
|
||||
)
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ export default function TeamProvider(props: PropsWithChildren<Props>) {
|
|||
prefixSearch?: string,
|
||||
) => {
|
||||
//let asText = team ? "&as=" + team.key() : "";
|
||||
const view = otherTeam ? otherTeam : as
|
||||
const view = otherTeam ? otherTeam : (as.length > 0 ? as : undefined)
|
||||
let url = pondURL(
|
||||
"/teams" +
|
||||
"?limit=" +
|
||||
|
|
|
|||
|
|
@ -138,6 +138,7 @@ export default function TaskViewer(props: ViewProps) {
|
|||
openDialog();
|
||||
};
|
||||
|
||||
|
||||
const loadMultitask = useCallback(() => {
|
||||
if (!loadKeys) return;
|
||||
if (loadKeys.length > 0) {
|
||||
|
|
@ -146,11 +147,13 @@ export default function TaskViewer(props: ViewProps) {
|
|||
taskAPI
|
||||
.getMultiTasks(loadKeys, as)
|
||||
.then(resp => {
|
||||
resp.data.tasks.forEach(task => {
|
||||
if (task.settings) {
|
||||
temp.set(task.key, Task.any(task));
|
||||
}
|
||||
});
|
||||
if(resp.data.tasks){
|
||||
resp.data.tasks.forEach(task => {
|
||||
if (task.settings) {
|
||||
temp.set(task.key, Task.any(task));
|
||||
}
|
||||
});
|
||||
}
|
||||
setTasks(temp);
|
||||
setLoaded(true);
|
||||
})
|
||||
|
|
@ -167,11 +170,13 @@ export default function TaskViewer(props: ViewProps) {
|
|||
taskAPI
|
||||
.listTasks(50, 0, "asc", "start", undefined, undefined, as, prevMonth, nextMonth)
|
||||
.then(resp => {
|
||||
resp.data.tasks.forEach(task => {
|
||||
if (task.settings) {
|
||||
temp.set(task.key, Task.any(task));
|
||||
}
|
||||
});
|
||||
if(resp.data.tasks){
|
||||
resp.data.tasks.forEach(task => {
|
||||
if (task.settings) {
|
||||
temp.set(task.key, Task.any(task));
|
||||
}
|
||||
});
|
||||
}
|
||||
setTasks(temp);
|
||||
setLoaded(true);
|
||||
})
|
||||
|
|
|
|||
|
|
@ -266,7 +266,7 @@ export default function UserMenu() {
|
|||
</MenuItem>
|
||||
)}
|
||||
<Divider />
|
||||
{hasAdmin && (
|
||||
{(hasAdmin || user.allowedTo("access-object")) && (
|
||||
<Tooltip title="Access Object">
|
||||
<MenuItem onClick={() => openAccessObject()} aria-label="Access Object" dense>
|
||||
<ListItemIcon>
|
||||
|
|
@ -276,7 +276,7 @@ export default function UserMenu() {
|
|||
</MenuItem>
|
||||
</Tooltip>
|
||||
)}
|
||||
<Divider />
|
||||
{(hasAdmin || user.allowedTo("access-object")) && <Divider /> }
|
||||
<MenuItem onClick={handleLogout} aria-label="Sign Out" dense>
|
||||
<ListItemIcon>
|
||||
<ExitToApp className={classes.red} />
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import FeatureCard from "./FeatureCard";
|
|||
//import { ImgIcon } from "common/ImgIcon";
|
||||
//images to import for the image in the card for the feature make sure to have a 2:1 aspect ratio to keep the cards symmetrical
|
||||
import FeatureImageTest from "assets/marketplaceImages/VisualFarmMPImage.png";
|
||||
import LibraCartImage from "assets/marketplaceImages/Libra_Cart_temp.jpg";
|
||||
|
||||
// export interface FAQ {
|
||||
// question: string;
|
||||
|
|
@ -62,14 +63,14 @@ const agFeatureList: ProductDetails[] = [
|
|||
// bulletPoints: ["bullet one", "bullet two"],
|
||||
// questions: [],
|
||||
},
|
||||
// {
|
||||
// featureName: "libra-cart",
|
||||
// featureLogo: <LibraCartIcon />,
|
||||
// featureCost: 0,
|
||||
// cardImage: FeatureImageTest,
|
||||
// featureTitle: "Libra Cart",
|
||||
// longDescription: "Integrate with Libra Cart to bring your data into our platform"
|
||||
// }
|
||||
{
|
||||
featureName: "libra-cart",
|
||||
featureLogo: <LibraCartIcon />,
|
||||
featureCost: 0,
|
||||
cardImage: LibraCartImage,
|
||||
featureTitle: "Libra Cart",
|
||||
longDescription: "Integrate with Libra Cart to bring your data into our platform"
|
||||
}
|
||||
];
|
||||
|
||||
// const constructionFeatureList: ProductDetails[] = []
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue