דלגו לתוכן

או התחילו מנקודה בטוחה: אינדקס הכלים המלא · מפת הטבלאות המרכזיות

מערכת חדשה — 14 יום חינם

תפריטים

עודכן 23.08.2026

התפריט הוא הדבר האחרון שבונים ומה שהמשתמש רואה ראשון. שלושה כלים מנהלים אותו — אחד מוצא את התפריט, אחד קורא את הפריטים, ואחד כותב.

הפרמטר טיפוס חובה המשמעות
siteId String האתר. בהשמטה — האתר של החיבור

מחזיר לכל תפריט: _id, name, originId, marketApp.

התפריטים המוכרים במערכת סטנדרטית: CRM-Menu (התפריט הצדדי הראשי), Settings (תפריט ההגדרות), Dashboard Menu (רשימת הדשבורדים).

הפרמטר טיפוס חובה המשמעות
menuId String * מזהה התפריט
originMenuId String * מזהה תפריט המקור
siteId String האתר

* אחד מהשניים.

לכל פריט חוזרים: _id, title, type, page או path, icon, order, newWin, parent, visibility.

זו קריאת החובה שלפני כל כתיבה — ראו למה בסעיף הבא.

הפרמטר טיפוס חובה המשמעות
items Array<Object> הפריטים לכתיבה
menuId String * התפריט
originMenuId String * חלופה ל‑menuId — כתיבה לפי מזהה המקור עובדת
siteId String האתר

* אחד מהשניים. בלי שניהם: Error: menuId or originMenuId is required — הכלי אינו יוצר תפריט חדש.

אובייקט הפריט:

המפתח טיפוס המשמעות
_id String מזהה פריט קיים. בהשמטה — נוצר פריט חדש
type Enum page או link. ברירת מחדל link
page String ה‑_id של הדף — לפריט מסוג page
path String כתובת — לפריט מסוג link
title String הכותרת. בהשמטה הפריט מקבל את ה‑_id של הדף ככותרת (לא את שמו) — תמיד שלחו title
icon String אייקון FontAwesome — ראו האזהרה
order Number מיקום בתפריט
parent String ה‑_id של פריט האב — יוצר היררכיה
newWin Boolean פתיחה בחלון חדש
visibility Array<String> תפקידים שרשאים לראות, או loggedIn
removeThisItem Boolean מוחק את הפריט
JSON
// הוספת פריט חדש
{ "menuId": "<menuId>", "items": [
{ "type": "page", "page": "<pageId>", "title": "ספקים",
"icon": "fa fa-truck", "order": 7, "visibility": [] }
] }
// עדכון כותרת של פריט קיים — שימו לב שכל השדות חוזרים
{ "menuId": "<menuId>", "items": [
{ "_id": "<itemId>", "type": "page", "page": "<pageId>",
"title": "ספקים וקבלנים", "icon": "fa fa-truck", "order": 7, "visibility": [] }
] }
// מחיקה
{ "menuId": "<menuId>", "items": [ { "_id": "<itemId>", "removeThisItem": true } ] }

אין כלי מחיקה נפרד. מוחקים בדגל removeThisItem: true על הפריט, בתוך אותה קריאת Set-Menu-Items — וזו הפעולה היחידה בכל חבילת הבנייה שבאמת מוחקת משהו. אין Delete-Page, אין מחיקת אלמנט, אין מחיקת שדה — אבל פריט תפריט כן נמחק.

תת‑תפריט נבנה בשדה parent, שמקבל את ה‑_id של פריט האב:

JSON
{ "menuId": "<menuId>", "items": [
{ "_id": "<childId>", "type": "page", "page": "<pageId>",
"title": "ספקים", "parent": "<parentItemId>", "order": 2, "icon": "fa fa-truck" }
] }

visibility — נראוּת לפי תפקיד

Section titled “visibility — נראוּת לפי תפקיד”

מערך של שמות תפקידים, או המילה loggedIn:

הערך מי רואה
[] כמו רוב הפריטים הקיימים — ללא סינון מפורש
["loggedIn"] כל משתמש מחובר
["Admin", "Report Admin"] חברי התפקידים האלה בלבד

שמות התפקידים הם בדיוק כפי שהם ב‑Get-Roles, כולל רישיות ורווחים.

לרוב אין צורך לגעת בכלים האלה בכלל: ל‑Create-Table-View-Page יש פרמטר menuName, והוא מוסיף את פריט התפריט אוטומטית בעת יצירת דף הרשימה.

הכלים בעמוד הזה נחוצים כשצריך: לסדר מחדש, לבנות היררכיה, לשנות אייקון או כותרת, למחוק פריט, להוסיף דשבורד לתפריט הדשבורדים, או לשנות מינוח בכל התפריטים.

הוספת דשבורד לתפריט הדשבורדים

Section titled “הוספת דשבורד לתפריט הדשבורדים”
1. Get-Menus → מאתרים את "Dashboard Menu", לוקחים את ה-_id
2. Get-Menu-Items(menuId) → רואים את ה-order ואת צורת ה-visibility הקיימת
3. Set-Menu-Items → מוסיפים פריט type:"page" עם ה-pageId של הדשבורד
JSON
{ "menuId": "<dashMenuId>", "items": [
{ "type": "page", "page": "<newDashboardPageId>", "title": "דשבורד שותפים",
"icon": "fa fa-handshake-o", "order": 7, "visibility": [] }
] }

כשמשנים שפה במערכת — “מכירה” ל“פרויקט” — התפריטים הם אחת מארבע השכבות שצריך לעבור. כאן זה נעשה כך:

Get-Menus → לכל תפריט: Get-Menu-Items → Set-Menu-Items עם אובייקטי הפריט המלאים,
כשרק ה-title שונה

ושוב: אובייקט מלא, כולל _id, type, page/path, order ו‑icon. משלוח חלקי מאבד נתונים. התמונה המלאה: מינוח והתאמת שפה.

Get-Menu-Items(menuId) אחרי כל כתיבה — ובודקים שלושה דברים: הפריט קיים עם הכותרת הנכונה, מספר הפריטים הוא כמצופה (לא נמחק משהו בשוגג), ו‑type / page נשמרו.

ואז — רענון בדפדפן. התפריט נטען עם המסגרת, ולא יתעדכן במסך פתוח.