content for warehouse. HTML edit works ;
translations
This commit is contained in:
@ -269,8 +269,8 @@ export default function LocationForm() {
|
||||
className="w-full min-h-[200px] p-3 border rounded-lg shadow-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-white dark:bg-gray-800 dark:border-gray-700 dark:text-gray-200 font-mono resize-y"
|
||||
placeholder="HTML Content"
|
||||
id="contentHTML_Raw"
|
||||
name="backupLocation"
|
||||
// onChange={handleChange}
|
||||
name="contentHTML_Raw"
|
||||
onChange={(e) => setContent(e.target.value)}
|
||||
value={content}
|
||||
autoComplete="off"
|
||||
spellCheck="false"
|
||||
|
@ -38,6 +38,7 @@ const sidemenu = [
|
||||
id: "warehouse",
|
||||
text: "Склад",
|
||||
url: "/cart/locations/warehouse",
|
||||
svgData: "M7 21V11.6C7 11.0399 7 10.7599 7.10899 10.546C7.20487 10.3578 7.35785 10.2048 7.54601 10.109C7.75992 9.99996 8.03995 9.99996 8.6 9.99996H15.4C15.9601 9.99996 16.2401 9.99996 16.454 10.109C16.6422 10.2048 16.7951 10.3578 16.891 10.546C17 10.7599 17 11.0399 17 11.6V21M10 14H14M10 18H14M3 10.4881V19.4C3 19.96 3 20.24 3.10899 20.454C3.20487 20.6421 3.35785 20.7951 3.54601 20.891C3.75992 21 4.03995 21 4.6 21H19.4C19.9601 21 20.2401 21 20.454 20.891C20.6422 20.7951 20.7951 20.6421 20.891 20.454C21 20.24 21 19.96 21 19.4V10.4881C21 9.41436 21 8.87747 20.8368 8.40316C20.6925 7.98371 20.457 7.60148 20.1472 7.28399C19.797 6.92498 19.3174 6.68357 18.3583 6.20075L14.1583 4.08645C13.3671 3.68819 12.9716 3.48905 12.5564 3.41069C12.1887 3.34129 11.8113 3.34129 11.4436 3.41069C11.0284 3.48905 10.6329 3.68818 9.84171 4.08645L5.64171 6.20075C4.6826 6.68357 4.20304 6.92498 3.85275 7.28399C3.54298 7.60148 3.30746 7.98371 3.16317 8.40316C3 8.87747 3 9.41437 3 10.4881Z"
|
||||
},
|
||||
{
|
||||
id: "cart-report",
|
||||
|
@ -31,14 +31,19 @@
|
||||
"cart-reports": "Отчети",
|
||||
"statistics": "Статистика",
|
||||
"coverMeLogs": "Замествания",
|
||||
"translations": "Преводи"
|
||||
"translations": "Преводи",
|
||||
"warehouse": "Склад Сердика"
|
||||
},
|
||||
"content": {
|
||||
"location": {
|
||||
"warehouse": {
|
||||
"description": "- снимки как да се поставят количките\n- снимка с код за катинар\nвсеки може да всима/връща\n- преди да влизаме трябва да почистим краката.\n- зареждаме/почистваме извън\n- влизане/озлизане няма код\n- влизане/излизане има код",
|
||||
"title": "СKЛАД",
|
||||
"menu": "СKЛАД"
|
||||
"title": "Склад Сердика",
|
||||
"description_1": "**1. Катинар.** Шифъра на катинара е: 1914.\n",
|
||||
"description_2": "**2. Място за съхранение.** (Подлеза на метростанция Сердика в близост до църквата \"Света Петка Самарджийска\")\n\nЛинк: [LockStars Lockers](https://www.google.com/maps/place/LockStars+Lockers+-+luggage+storage+in+Sofia/@42.697779,23.3218397,20.15z/data=!4m6!3m5!1s0x40aa85dd76aed8a9:0xa0b10cc277013ee9!8m2!3d42.6978913!4d23.3223441!16s%2Fg%2F11vlhc26h5?authuser=0&entry=tts&g_ep)\n\n\n",
|
||||
"description_3": "**3. Позицията на щандовете**, начин на съхранение, както и мястото, може да видите в прикачените снимки.\n\n ***Вратата на гардероба е винаги отворена. Няма нужда да натискаме бутона за отваряне**\n\n",
|
||||
"description_4": "**4. Зареждането и почистване на щандовете трябва да става извън мястото за съхранение. ** Също когато прибираме щандовете е необходимо да са почистени и в добър външен вид с калъф на тях(гумите/колелата да са почистени от кал за да не оставяме следи по пода)\n\n**Важно:** посоката на плакатите и на двата щанда трябва да е към стената! Целта е да не се виждат, тъй като **в помещението са забранени рекламни и други материали извън дейността на фирмата.**",
|
||||
"description_5": "**5. Литература.** Ще има метална кутия за съхранение на литература в непосредствена близост над щандовете на единия от сейфовете.\n\nМоля бъдете особено внимателни когато сваляте и качвате кутията за да не се нараните.",
|
||||
"description_6": "**6. Престой.** Хубаво ще е да не се задържаме прекалено дълго в помещението, повече от необходимо да вземем количките и нужнаta литература."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,5 +32,12 @@
|
||||
"statistics": "Статистика",
|
||||
"coverMeLogs": "Замествания",
|
||||
"translations": "Преводи"
|
||||
},
|
||||
"content": {
|
||||
"location": {
|
||||
"warehouse": {
|
||||
"description": "СКЛАД СЕРДИКА\n1. Катинар. Шифъра на катинара е: 1914. \n2. Място за съхранение (Подлеза на метростанция Сердика в близост до църквата \"Света Петка Самарджийска\") \nЛинк: https: //maps.app.goo.gl/FfzZww2EfxeP2y9S7\n3. Позицията на щандовете, начин на съхранение, както и мястото, може да видите в прикачените снимки. \n* Вратата на гардероба е винаги отворена. Няма нужда да натискаме бутона за отваряне\n4. Зареждането и почистване на щандовете трябва да става извън мястото за съхранение. Също когато прибираме щандовете е необходимо да са почистени и в добър външен вид с калъф на тях(гумите/колелата да са почистени от кал за да не оставяме следи по пода)\nВажно: посоката на плакатите и на двата щанда трябва да е към стената! Целта е да не се виждат, тъй като в помещението са забранени рекламни и други материали извън дейността на фирмата.\n5. Литература. Ще има метална кутия за съхранение на литература в непосредствена близост над щандовете на единия от сейфовете.\nМоля бъдете особено внимателни когато сваляте и качвате кутията за да не се нараните. \n6. Престой. Хубаво ще е да не се задържаме прекалено дълго в помещението, повече от необходимо да вземем количките и нужнаta литература. "
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
1520
package-lock.json
generated
1520
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -96,10 +96,13 @@
|
||||
"react-dom": "^18.2.0",
|
||||
"react-hot-toast": "^2.4.1",
|
||||
"react-icons": "^5.0.1",
|
||||
"react-markdown": "^9.0.1",
|
||||
"react-quill": "^2.0.0",
|
||||
"react-responsive-carousel": "^3.2.23",
|
||||
"react-swipeable": "^7.0.1",
|
||||
"react-toastify": "^10.0.4",
|
||||
"rehype-raw": "^7.0.0",
|
||||
"remark-gfm": "^4.0.0",
|
||||
"sharp": "^0.33.2",
|
||||
"tailwindcss": "^3.4.1",
|
||||
"tw-elements": "^1.1.0",
|
||||
|
@ -6,6 +6,9 @@ import { GetServerSideProps } from 'next';
|
||||
import { Location, UserRole } from "@prisma/client";
|
||||
import axiosServer from '../../../src/axiosServer';
|
||||
import { useTranslations, createTranslator } from 'next-intl';
|
||||
import ReactMarkdown from 'react-markdown';
|
||||
import rehypeRaw from 'rehype-raw';
|
||||
import remarkGfm from 'remark-gfm';
|
||||
// import { getTranslations } from 'next-intl/server';
|
||||
|
||||
const ViewLocationPage: React.FC<ViewLocationPageProps> = ({ location }) => {
|
||||
@ -54,7 +57,7 @@ const ViewLocationPage: React.FC<ViewLocationPageProps> = ({ location }) => {
|
||||
className={`tab flex-1 text-lg py-2 px-4 ${activeTab === 'mainLocation' ? 'border-b-4 border-blue-500 text-blue-600 font-semibold' : 'text-gray-600 hover:text-blue-500'}`}
|
||||
onClick={() => handleTabChange('mainLocation')}
|
||||
>
|
||||
{location.name}
|
||||
{location.title || location.name}
|
||||
</button>
|
||||
{/* Backup Location Tab */}
|
||||
{location.backupLocationId !== null && (
|
||||
@ -87,8 +90,27 @@ const ViewLocationPage: React.FC<ViewLocationPageProps> = ({ location }) => {
|
||||
{/* Tab Content */}
|
||||
{(location.content || location.backupLocationContent) && (
|
||||
<div className="tab-content mt-4">
|
||||
|
||||
{activeTab === 'mainLocation' && (
|
||||
<div className="p-4 bg-white shadow rounded-lg" dangerouslySetInnerHTML={{ __html: location.content }} />
|
||||
|
||||
// <div className="p-4 bg-white shadow rounded-lg" dangerouslySetInnerHTML={{ __html: location.content }} />
|
||||
|
||||
<div className="p-4 bg-white shadow rounded-lg">
|
||||
<ReactMarkdown
|
||||
rehypePlugins={[rehypeRaw]}
|
||||
remarkPlugins={[remarkGfm]}
|
||||
components={{
|
||||
img: ({ node, ...props }) => (
|
||||
<img {...props} className="max-w-full h-auto my-4" alt="" />
|
||||
),
|
||||
a: ({ node, ...props }) => (
|
||||
<a {...props} target="_blank" rel="noopener noreferrer" className="text-blue-600 hover:underline" />
|
||||
)
|
||||
}}
|
||||
>
|
||||
{location.content}
|
||||
</ReactMarkdown>
|
||||
</div>
|
||||
)}
|
||||
{activeTab === 'backupLocation' && location.backupLocationContent && (
|
||||
<div className="p-4 bg-white shadow rounded-lg" dangerouslySetInnerHTML={{ __html: location.backupLocationContent }} />
|
||||
@ -110,7 +132,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
|
||||
const messages = (await import(`../../../content/i18n/${locale}.json`)).default;
|
||||
|
||||
const t = createTranslator({ locale, messages });
|
||||
// Function to replace placeholders in HTML content
|
||||
// Function to replace placeholders in HTML content. Placeholders are in the format {key}
|
||||
const replacePlaceholders = (content: string) => {
|
||||
if (!content) return '';
|
||||
const placeholderPattern = /{([^}]+)}/g;
|
||||
@ -125,7 +147,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
|
||||
return `[${locale}:${key}]`;
|
||||
} catch (error) {
|
||||
// Return formatted placeholder on error
|
||||
return `[${locale}:${key}]`;
|
||||
return `[${locale}:'content.'${key}]`;
|
||||
}
|
||||
});
|
||||
};
|
||||
@ -133,6 +155,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
|
||||
const prismaClient = common.getPrismaClient();
|
||||
const location = await getLocation(prismaClient, context);
|
||||
location.content = replacePlaceholders(location.content);
|
||||
location.title = t("content.location." + location.name + ".title");
|
||||
|
||||
if (location.backupLocationId !== null) {
|
||||
// const { data: backupLocation } = await axios.get(
|
||||
|
119
public/content/warehouse/index.html
Normal file
119
public/content/warehouse/index.html
Normal file
@ -0,0 +1,119 @@
|
||||
<p><strong>1. Катинар.</strong> Шифъра на катинара е: 1914.</p>
|
||||
<p><br /></p>
|
||||
<p>
|
||||
<img
|
||||
src="/content/warehouse/1.jpg"
|
||||
class="w-full rounded-lg cursor-pointer hover:opacity-90 transition-opacity"
|
||||
/>
|
||||
</p>
|
||||
<p>
|
||||
<strong>2. Място за съхранение</strong> (Подлеза на метростанция Сердика
|
||||
в близост до църквата "Света Петка Самарджийска")
|
||||
</p>
|
||||
<p>
|
||||
Линк: <a
|
||||
href="https://maps.app.goo.gl/FfzZww2EfxeP2y9S7"
|
||||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
style="color: rgb(17, 85, 204)"
|
||||
>https://maps.app.goo.gl/FfzZww2EfxeP2y9S7</a
|
||||
>
|
||||
</p>
|
||||
<p>
|
||||
<img
|
||||
src="/content/warehouse/2.jpg"
|
||||
class="w-full rounded-lg cursor-pointer hover:opacity-90 transition-opacity"
|
||||
/>
|
||||
</p>
|
||||
<p>
|
||||
<img
|
||||
src="/content/warehouse/3.jpg"
|
||||
class="w-full rounded-lg cursor-pointer hover:opacity-90 transition-opacity"
|
||||
/>
|
||||
</p>
|
||||
<p>
|
||||
<img
|
||||
src="/content/warehouse/4.jpg"
|
||||
class="w-full rounded-lg cursor-pointer hover:opacity-90 transition-opacity"
|
||||
/>
|
||||
</p>
|
||||
<p><br /></p>
|
||||
<p><br /></p>
|
||||
<p>
|
||||
<strong>3. Позицията на щандовете</strong>, начин на съхранение, както и
|
||||
мястото, може да видите в прикачените снимки.
|
||||
</p>
|
||||
<p>
|
||||
<strong>
|
||||
* Вратата на гардероба е винаги отворена. Няма нужда да натискаме бутона за
|
||||
отваряне
|
||||
</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<img
|
||||
src="/content/warehouse/5.jpg"
|
||||
class="w-full rounded-lg cursor-pointer hover:opacity-90 transition-opacity"
|
||||
/>
|
||||
</p>
|
||||
<p>
|
||||
<img
|
||||
src="/content/warehouse/6.jpg"
|
||||
class="w-full rounded-lg cursor-pointer hover:opacity-90 transition-opacity"
|
||||
/>
|
||||
</p>
|
||||
|
||||
<p><br /></p>
|
||||
<p><br /></p>
|
||||
<p><br /></p>
|
||||
<p><br /></p>
|
||||
<p>
|
||||
<strong>4</strong>. <strong
|
||||
>Зареждането и почистване на щандовете трябва да става извън мястото за
|
||||
съхранение</strong
|
||||
>. Също когато прибираме щандовете е необходимо да са почистени и в добър
|
||||
външен вид с калъф на тях(гумите/колелата да са почистени от кал за да не
|
||||
оставяме следи по пода)
|
||||
</p>
|
||||
<p>
|
||||
<strong>Важно: </strong>посоката на плакатите и на двата щанда трябва да
|
||||
е към стената! Целта е да не се виждат, тъй като <strong
|
||||
>в помещението са забранени рекламни и други материали извън дейността на
|
||||
фирмата.</strong
|
||||
>
|
||||
</p>
|
||||
<p><br /></p>
|
||||
<p>
|
||||
<strong>5. Литература. </strong>Ще има метална кутия за съхранение на
|
||||
литература в непосредствена близост над щандовете на единия от сейфовете.
|
||||
</p>
|
||||
<p>
|
||||
Моля бъдете особено внимателни когато сваляте и качвате кутията за да не се
|
||||
нараните.
|
||||
</p>
|
||||
<p><br /></p>
|
||||
<p>
|
||||
<strong>6. Престой.</strong> Хубаво ще е да не се задържаме прекалено
|
||||
дълго в помещението, повече от необходимо да вземем количките и нужнаta
|
||||
литература.
|
||||
</p>
|
||||
|
||||
**1. Катинар.** Шифъра на катинара е: 1914.\n **2.
|
||||
Място за съхранение** (Подлеза на метростанция Сердика в близост до църквата
|
||||
"Света Петка Самарджийска")\nЛинк:
|
||||
[https://maps.app.goo.gl/FfzZww2EfxeP2y9S7](https://maps.app.goo.gl/FfzZww2EfxeP2y9S7)\n\n\n\n
|
||||
**3. Позицията на щандовете**, начин на съхранение, както и мястото, може да
|
||||
видите в прикачените снимки.\n**\* Вратата на гардероба е винаги отворена. Няма
|
||||
нужда да натискаме бутона за
|
||||
отваряне**\n\n **4.**
|
||||
**Зареждането и почистване на щандовете трябва да става извън мястото за
|
||||
съхранение**. Също когато прибираме щандовете е необходимо да са почистени и в
|
||||
добър външен вид с калъф на тях(гумите/колелата да са почистени от кал за да не
|
||||
оставяме следи по пода)\n**Важно:** посоката на плакатите и на двата щанда
|
||||
трябва да е към стената! Целта е да не се виждат, тъй като **в помещението са
|
||||
забранени рекламни и други материали извън дейността на фирмата.** **5.
|
||||
Литература.** Ще има метална кутия за съхранение на литература в непосредствена
|
||||
близост над щандовете на единия от сейфовете. Моля бъдете особено внимателни
|
||||
когато сваляте и качвате кутията за да не се нараните. **6. Престой.** Хубаво ще
|
||||
е да не се задържаме прекалено дълго в помещението, повече от необходимо да
|
||||
вземем количките и нужнаta литература.
|
Reference in New Issue
Block a user