דלגו לתוכן

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

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

הגדרות דף, קוד וגרסאות

עודכן 30.08.2026

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

הפרמטר טיפוס חובה המשמעות
pageId String הדף
siteId String האתר

מחזיר את הערכים הנוכחיים של מה ש‑Set-Page-Settings יודע לכתוב: name, title, description, keywords, metaTags, loginOnly, allowedRoles, dynamicTable, ובנוסף isMasterPage, masterPageId, publishedAt ו‑createdAt. המפתחות jsFile ו‑cssFile מופיעים רק כשקובץ מקושר — דף בלי קובץ פשוט לא נושא את המפתח. dynamicFields אינו מוחזר לעולם (ראו מגבלה).

JSON
{ "name": "apps/mybusiness/Supplier", "title": "", "description": "", "keywords": "",
"metaTags": "", "dynamicTable": "", "isMasterPage": false,
"masterPageId": "6a8a95b63cd0a41edaebed4e", "loginOnly": false, "allowedRoles": "any",
"publishedAt": "2026-08-23T12:07:42.517Z", "createdAt": "2026-08-23T12:07:42.517Z" }

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

הפרמטר טיפוס חובה המשמעות
pageId String הדף
name String הנתיב וה‑URL של הדף. חייב להיות ייחודי באתר
title String כותרת הדף (לשונית הדפדפן, SEO)
description String תיאור
keywords String מילות מפתח
metaTags String תגי מטא כ‑HTML
loginOnly Boolean true = רק משתמשים מחוברים
allowedRoles String רשימת תפקידים מופרדת בפסיקים. שליחה שלו מדליקה גם loginOnly: true
jsFile String (URL) קובץ ה‑JS החיצוני של הדף. דורס קוד קיים
cssFile String (URL) קובץ ה‑CSS החיצוני של הדף. דורס קוד קיים
removeJSFile Boolean מנתק את קובץ ה‑JS
removeCSSFile Boolean מנתק את קובץ ה‑CSS
dynamicTable String דף דינמי — שם הטבלה
dynamicFields String דף דינמי — השדות שיתאימו לנתיב ב‑URL. לא נשמר — ראו מגבלה למטה
siteId String האתר

התשובה היא { "success": true }. קריאה שלא שינתה כלום מחזירה Error: no changes to save.

name — הנתיב שחייב להיות ייחודי

Section titled “name — הנתיב שחייב להיות ייחודי”

name הוא גם השם וגם הכתובת. שינוי שלו מזיז את הדף לכתובת אחרת, ולכן:

  • קישורים קיימים נשברים. פריט תפריט שמצביע לדף לפי page (מזהה) שורד; קישור שנכתב כ‑path טקסטואלי לא.
  • הפניית טבלת תצוגה נשברת. דף רשימה שפותח כרטיס מפנה אליו לפי הנתיב (editView.page ב‑Edit-Table-View) — עדכנו גם אותו.
  • זה תחליף המחיקה היחיד. אין Delete-Page. דף שיצא משימוש מקבל שם כמו apps/mybusiness/_old_Supplier ויורד מהתפריט.
  • הייחודיות נאכפת כאן — שם תפוס מחזיר Error: page name already exists. ב‑Create-Form-Page היא לא נאכפת.

דף שנוצר ב‑Create-Table-View-Page הוא העתק עמוק של דף המקור, ולכן הוא יורש גם את ה‑title שלו. מכיוון שדף המקור המקובל הוא apps/mybusiness/Cases, לשונית הדפדפן של דף הספקים החדש שלכם תכריז “Cases”.

Set-Page-Settings עם title הוא הצעד שמתקן את זה, והוא לא אופציונלי — ראו את רשימת ניקוי השאריות.

שני הפרמטרים loginOnly ו‑allowedRoles הם שער גס ברמת הדף: מי בכלל יכול לפתוח את הכתובת הזו.

JSON
{ "pageId": "<id>", "loginOnly": true, "allowedRoles": "Admin,Report Admin" }

לכל דף קובץ JS אחד וקובץ CSS אחד. הערך הוא URL של קובץ שהועלה קודם.

1. Upload-Public-File { file: { name: "supplier.js", mimeType: "text/javascript",
data: "<base64>", codeFile: true } }
→ { success, filePath: "<URL>", file: { _id, path, name, type, size } }
2. Set-Page-Settings { pageId, jsFile: "<filePath>" }
3. גרסה הבאה: Upload-Public-File עם file._id → ה-URL לא משתנה, אין צורך לגעת בדף שוב

שימו לב לעטיפה: הסכימה מקבלת אובייקט אחד בשם file (קריאה עם name/data ברמה העליונה נכשלת ב‑Input validation error … file: expected object), וה‑URL חוזר ב‑filePath (וגם ב‑file.path). codeFile: true הופך את הקובץ לניתן לעריכה בעורך הקוד של הפלטפורמה. שימוש חוזר ב‑_id שומר על URL יציב — וזו כל התכונה: אחרי הקישור הראשוני, כל שינוי קוד הוא העלאה מחדש בלבד — הדף טוען את הגרסה החדשה מאותו URL. פרטי הכלי: כלי קבצים.

jsFile / cssFile נשמרים כפי שנשלחו, בלי ולידציה — גם _id או שם קובץ יתקבלו ב‑success, והדף פשוט לא יטען כלום. תמיד URL מלא.

removeJSFile / removeCSSFile מנתקים את הקובץ, והדף חוזר לרשת שהוא יורש מהמאסטר.

דפים דינמיים — dynamicTable + dynamicFields

Section titled “דפים דינמיים — dynamicTable + dynamicFields”

מאפשרים לדף אחד לשרת תוכן שונה לפי הנתיב ב‑URL: dynamicTable הוא הטבלה שממנה נשלף התוכן, ו‑dynamicFields הם שמות השדות שיותאמו לחלקי הנתיב.

masterPageId. אין פרמטר כזה בסכימה החיה ואין כלי אחר שמשנה מאסטר של דף קיים. ראו דפי מאסטר.

מחליף את בלוק ה‑CSS ו/או ה‑JS המוטבע של הדף.

הפרמטר טיפוס חובה המשמעות
pageId String הדף
cssCode String קוד CSS. דורס את הקוד הקיים
jsCode String קוד JavaScript. דורס את הקוד הקיים
siteId String האתר

שני דפוסי ה‑JS הקנוניים

Section titled “שני דפוסי ה‑JS הקנוניים”

(א) שדה טקסט ארוך. add-new-field מציב כל שדה String כ‑<input type="text"> של שורה אחת — אין המרה אוטומטית לפי שם השדה (גם Notes נשאר input; ה‑Comment בכרטיסים המובנים הוא ווידג’ט textarea ייעודי שהגיע עם התבנית, לא המרה). מי שרוצה textarea מחליף בעצמו:

JavaScript
$(document).ready(function() {
['Resolution','RootCause','TechnicianNotes'].forEach(function(f) {
var $i = $('input[name="'+f+'"]');
if ($i.length && $i.attr('type') === 'text') {
$i.replaceWith($('<textarea>')
.attr({ name: f, id: $i.attr('id'), rows: 3 })
.addClass($i.attr('class'))
.val($i.val()));
}
});
});

(ב) עמודת Name לחיצה בטבלת רשומות מקושרות — פותחת את עריכת השורה.

JavaScript
$('.simbla-table').on('data-loaded', function() {
var i = $(this).find('thead th').index($(this).find('thead th[data-field="Name"]'));
if (i < 0) return;
$(this).find('tbody tr td:nth-child(' + (i + 1) + ')')
.css({ cursor: 'pointer', color: '#299ff2' })
.on('click', function() { $(this).closest('tr').find('.fa-pencil').click(); });
});

שני hooks נוספים שחוזרים: מיון אפשרויות ברשימה נפתחת — $('[name=StatusId]').on('before-select-options', (e,d) => d.query.ascending("Order")) — והרכבה אוטומטית של Name משדות אחרים באירוע change.

CSS שכדאי להכיר: .db-form-add{display:none !important;} מסתיר את כפתור “הוספת שורה” הירוק שדולף לדפים מסוימים.

שלושה כלים, ושילוב אחד שהוא מנגנון ה‑undo היחיד של הדפים.

הפרמטר טיפוס חובה המשמעות
pageId String * הדף לפי מזהה
pageName String * או לפי נתיב
siteId String האתר

* אחד מהשניים. מחזיר versions: [{ _id, date }].

הפרמטר טיפוס חובה המשמעות
pageId String הדף
versionId String הגרסה
siteId String האתר

מחזיר את התוכן של הגרסה — ורק את החלק שהכתיבה שיצרה אותה שינתה (ראו מגבלה): content לגרסה שנוצרה מעריכת HTML, jsCode או cssCode לגרסה מ‑Edit-Page-CSS-JS. זה גם הכלי שבו קוראים גרסה בלי לשחזר אותה, כדי להשוות או לחלץ ממנה קטע.

הפרמטר טיפוס חובה המשמעות
pageId String הדף
versionId String הגרסה לשחזור
overrideHTML Boolean לשחזר את ה‑HTML
overrideCSS Boolean לשחזר את ה‑CSS
overrideJS Boolean לשחזר את ה‑JS
siteId String האתר

התרחיש הנפוץ: עריכה שברה את ה‑HTML של הדף (למשל Edit-Table-View שמתלונן page.savedContent[key].includes), אבל ה‑JS וה‑CSS שכתבתם תקינים ואתם לא רוצים לאבד אותם.

1. Get-Page-Content(pageId) → גיבוי של המצב הנוכחי, כולל ה-JS/CSS
2. Get-Page-Versions(pageId) → בוחרים גרסה — הרשימה מהחדשה לישנה;
האחרונה ברשימה היא צילום היצירה
3. Get-Page-Version(pageId, versionId) → מוודאים שהגרסה באמת מכילה content
4. Set-Page-Version(pageId, versionId, overrideHTML: true)
→ מחזיר את ה-HTML בלבד, לא נוגע ב-JS/CSS
5. מריצים מחדש את העריכה שנכשלה

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

בכל כתיבה דרך ה‑MCP: Edit-Page, Add-Container-to-Page, Duplicate-Element, כלי האלמנטים, Set-Page-Settings, Edit-Page-CSS-JS וגם Set-Page-Version עצמו מוסיפים גרסה אחת כל אחד, עם date של רגע הכתיבה. דף שנבנה ב‑30 קריאות מגיע עם 30 גרסאות.