Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.

## [Unreleased]

## [2.6.0] - 2025-12-05

- [#293](https://github.com/os2display/display-admin-client/pull/293)
- Npm upgrade.
- Upgraded to DOMPurify 3.3.
- [#292](https://github.com/os2display/display-admin-client/pull/292)
- Add BRND Booking feed type

## [2.5.2] - 2025-09-25

- [#290](https://github.com/os2display/display-admin-client/pull/290)
Expand Down
2 changes: 1 addition & 1 deletion docker-compose.override.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ services:
playwright:
# https://playwright.dev/docs/docker
# This Playwright version should match the one in `package.json`.
image: mcr.microsoft.com/playwright:v1.44.1
image: mcr.microsoft.com/playwright:v1.57.0
networks:
- app
depends_on:
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"@vitejs/plugin-react-swc": "^3.7.0",
"bootstrap": "^5.0.2",
"dayjs": "^1.10.7",
"dompurify": "^2.3.3",
"dompurify": "^3.3.0",
"focus-trap-react": "^10.2.1",
"i18next": "^21.6.14",
"lodash.get": "^4.4.2",
Expand Down Expand Up @@ -45,7 +45,7 @@
"rrule": "^2.7.2",
"typescript": "^4.4.2",
"ulid": "^2.3.0",
"vite": "^5.2.11"
"vite": "^5.4.12"
},
"scripts": {
"lint:js": "eslint --ext .js --ext .jsx ./src",
Expand Down
9 changes: 9 additions & 0 deletions src/components/feed-sources/feed-source-form.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import EventDatabaseApiFeedType from "./templates/event-database-feed-type";
import ColiboFeedType from "./templates/colibo-feed-type";
import StickyFooter from "../util/sticky-footer";
import EventDatabaseApiV2FeedType from "./templates/event-database-v2-feed-type";
import BrndFeedType from "./templates/brnd-feed-type";

/**
* The feed-source form component.
Expand Down Expand Up @@ -126,6 +127,14 @@ function FeedSourceForm({
feedSourceId={feedSource["@id"]}
/>
)}
{feedSource?.feedType === "App\\Feed\\BrndFeedType" && (
<BrndFeedType
handleInput={handleSecretInput}
formStateObject={feedSource.secrets}
mode={mode}
feedSourceId={feedSource["@id"]}
/>
)}
{feedSource?.feedType ===
"App\\Feed\\EventDatabaseApiFeedType" && (
<EventDatabaseApiFeedType
Expand Down
10 changes: 10 additions & 0 deletions src/components/feed-sources/feed-source-manager.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,16 @@ function FeedSourceManager({
recipients: [],
},
},
{
value: "App\\Feed\\BrndFeedType",
title: t("brnd-feed-type.title"),
key: "8",
secretsDefault: {
api_base_uri: "",
company_id: "",
api_auth_key: "",
},
},
{
value: "App\\Feed\\EventDatabaseApiFeedType",
title: t("dynamic-fields.event-database-api-feed-type.title"),
Expand Down
61 changes: 61 additions & 0 deletions src/components/feed-sources/templates/brnd-feed-type.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import React from "react";
import PropTypes from "prop-types";
import { useTranslation } from "react-i18next";
import FormInput from "../../util/forms/form-input";

const BrndFeedType = ({ handleInput, formStateObject, mode }) => {
const { t } = useTranslation("common", {
keyPrefix: "brnd-feed-type",
});

return (
<>
<FormInput
name="api_base_uri"
type="text"
label={t("api-base-uri")}
className="mb-2"
onChange={handleInput}
placeholder={
mode === "PUT" ? t("redacted-value-input-placeholder") : ""
}
value={formStateObject?.api_base_uri}
/>

<FormInput
name="company_id"
type="text"
className="mb-2"
label={t("company-id")}
onChange={handleInput}
placeholder={
mode === "PUT" ? t("redacted-value-input-placeholder") : ""
}
value={formStateObject?.company_id}
/>

<FormInput
name="api_auth_key"
type="text"
label={t("api-auth-key")}
onChange={handleInput}
placeholder={
mode === "PUT" ? t("redacted-value-input-placeholder") : ""
}
value={formStateObject?.api_auth_key}
/>
</>
);
};

BrndFeedType.propTypes = {
handleInput: PropTypes.func,
formStateObject: PropTypes.shape({
api_base_uri: PropTypes.string,
company_id: PropTypes.string,
api_auth_key: PropTypes.string,
}),
mode: PropTypes.string,
};

export default BrndFeedType;
11 changes: 11 additions & 0 deletions src/translations/da/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,9 @@
"colibo-feed-type": {
"title": "Colibo"
},
"brnd-feed-type": {
"title": "BRND"
},
"dynamic-fields": {
"event-database-api-feed-type": {
"title": "Eventdatabase API",
Expand Down Expand Up @@ -1157,6 +1160,14 @@
"save-before-recipients-can-be-set": "Bemærk! Datakilden skal gemmes før der kan tilkobles tilladte modtagergrupper. Gem og åbn datakilden igen.",
"allowed-recipients-help": "Det er kun disse modtagergrupper, der vil være tilgængelige, når man opretter et slide, der bruger datakilden."
},
"brnd-feed-type": {
"title": "BRND feed",
"api-base-uri": "API Base URI",
"company-id": "Company ID",
"api-auth-key": "API Auth Key",
"values-info": "Værdierne Company ID og API Auth Key udleveres af BRND. Ret henvendelse til BRND support.",
"redacted-value-input-placeholder": "Skjult værdi"
},
"event-database-api-v2-feed-type": {
"title": "Event databasen v.2",
"host": "Host",
Expand Down
1 change: 1 addition & 0 deletions vite.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export default defineConfig({
emptyOutDir: true,
},
server: {
allowedHosts: true,
strictPort: true,
port: 3000,
host: "localhost",
Expand Down
Loading