הגדרות דף, קוד וגרסאות
המעטפת של הדף: הכתובת, הכותרת, מי רשאי לפתוח, איזה קוד רץ, ואיך חוזרים אחורה.
Get-Page-Settings
Section titled “Get-Page-Settings”| הפרמטר | טיפוס | חובה | המשמעות |
|---|---|---|---|
pageId |
String | ✔ | הדף |
siteId |
String | האתר |
מחזיר את הערכים הנוכחיים של מה ש‑Set-Page-Settings יודע לכתוב: name, title, description, keywords, metaTags, loginOnly, allowedRoles, dynamicTable, ובנוסף isMasterPage, masterPageId, publishedAt ו‑createdAt. המפתחות jsFile ו‑cssFile מופיעים רק כשקובץ מקושר. dynamicFields אינו מוחזר לעולם (ראו מגבלה).
{ "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" }זו הקריאה שמייצרת את הבסיס למיזוג: הגדרות שלא תשלחו בכתיבה נשארות כפי שהן.
Set-Page-Settings
Section titled “Set-Page-Settings”| הפרמטר | טיפוס | חובה | המשמעות |
|---|---|---|---|
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היא לא נאכפת.
title — ומלכודת ה‑“Cases”
Section titled “title — ומלכודת ה‑“Cases””דף שנוצר ב‑Create-Table-View-Page הוא העתק עמוק של דף המקור ויורש את ה‑title שלו. דף המקור המקובל הוא apps/mybusiness/Cases, ולכן לשונית הדפדפן של דף הספקים החדש תכריז “Cases”. Set-Page-Settings עם title מתקן זאת, והוא לא אופציונלי — ראו ניקוי שאריות.
הרשאות פתיחת הדף
Section titled “הרשאות פתיחת הדף”loginOnly ו‑allowedRoles הם שער גס ברמת הדף: מי יכול לפתוח את הכתובת.
{ "pageId": "<id>", "loginOnly": true, "allowedRoles": "Admin,Report Admin" }קבצי קוד חיצוניים
Section titled “קבצי קוד חיצוניים”לכל דף קובץ 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 יציב: כל שינוי קוד הוא העלאה מחדש בלבד. כלי קבצים.
jsFile / cssFile נשמרים כפי שנשלחו, בלי ולידציה: גם _id או שם קובץ יתקבלו ב‑success, והדף לא יטען כלום. תמיד URL מלא.
removeJSFile / removeCSSFile מנתקים את הקובץ, והדף חוזר לרשת שהוא יורש מהמאסטר.
דפים דינמיים — dynamicTable + dynamicFields
Section titled “דפים דינמיים — dynamicTable + dynamicFields”דף אחד משרת תוכן שונה לפי הנתיב ב‑URL: dynamicTable היא טבלת המקור, ו‑dynamicFields הם שמות השדות שיותאמו לחלקי הנתיב.
מה לא ניתן להגדרה
Section titled “מה לא ניתן להגדרה”masterPageId. אין פרמטר כזה בסכימה החיה ואין כלי אחר שמשנה מאסטר של דף קיים. ראו דפי מאסטר.
Edit-Page-CSS-JS
Section titled “Edit-Page-CSS-JS”מחליף את בלוק ה‑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:
$(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 לחיצה בטבלת רשומות מקושרות — פותחת את עריכת השורה.
$('.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;} מסתיר את כפתור “הוספת שורה” הירוק שדולף לדפים מסוימים.
גרסאות דף
Section titled “גרסאות דף”Get-Page-Versions
Section titled “Get-Page-Versions”| הפרמטר | טיפוס | חובה | המשמעות |
|---|---|---|---|
pageId |
String | * | הדף לפי מזהה |
pageName |
String | * | או לפי נתיב |
siteId |
String | האתר |
* אחד מהשניים. מחזיר versions: [{ _id, date }].
Get-Page-Version
Section titled “Get-Page-Version”| הפרמטר | טיפוס | חובה | המשמעות |
|---|---|---|---|
pageId |
String | ✔ | הדף |
versionId |
String | ✔ | הגרסה |
siteId |
String | האתר |
מחזיר את התוכן של הגרסה, ורק את החלק שהכתיבה שיצרה אותה שינתה (ראו מגבלה): content לגרסה שנוצרה מעריכת HTML, jsCode או cssCode לגרסה מ‑Edit-Page-CSS-JS. זה גם הכלי שבו קוראים גרסה בלי לשחזר אותה.
Set-Page-Version
Section titled “Set-Page-Version”| הפרמטר | טיפוס | חובה | המשמעות |
|---|---|---|---|
pageId |
String | ✔ | הדף |
versionId |
String | ✔ | הגרסה לשחזור |
overrideHTML |
Boolean | לשחזר את ה‑HTML | |
overrideCSS |
Boolean | לשחזר את ה‑CSS | |
overrideJS |
Boolean | לשחזר את ה‑JS | |
siteId |
String | האתר |
מתכון שחזור
Section titled “מתכון שחזור”התרחיש: עריכה שברה את ה‑HTML של הדף (למשל Edit-Table-View שמתלונן page.savedContent[key].includes), אבל ה‑JS וה‑CSS תקינים.
1. Get-Page-Content(pageId) → גיבוי של המצב הנוכחי, כולל ה-JS/CSS2. Get-Page-Versions(pageId) → בוחרים גרסה — הרשימה מהחדשה לישנה; האחרונה ברשימה היא צילום היצירה3. Get-Page-Version(pageId, versionId) → מוודאים שהגרסה באמת מכילה content4. Set-Page-Version(pageId, versionId, overrideHTML: true) → מחזיר את ה-HTML בלבד, לא נוגע ב-JS/CSS5. מריצים מחדש את העריכה שנכשלהמתי נוצרת גרסה
Section titled “מתי נוצרת גרסה”בכל כתיבה דרך ה‑MCP: Edit-Page, Add-Container-to-Page, Duplicate-Element, כלי האלמנטים, Set-Page-Settings, Edit-Page-CSS-JS וגם Set-Page-Version עצמו מוסיפים גרסה אחת כל אחד, עם date של רגע הכתיבה. דף שנבנה ב‑30 קריאות מגיע עם 30 גרסאות.
מה גרסה באמת מכילה
Section titled “מה גרסה באמת מכילה”- עריכת דפים ואלמנטים — מה שקורה בתוך הדף
- אתרים ודפים — קריאה — למצוא את הדף ולקרוא את מבנהו
- טבלאות תצוגה ודפי רשימה — למה
titleו‑jsCodeדורשים ניקוי אחרי יצירה מתבנית - תפקידים, הרשאות טבלה וחבילות — ההגנה שמתחת לשער הדף
- כלי קבצים —
Upload-Public-Fileו‑codeFile - אינדקס הכלים המלא