הגדרות דף, קוד וגרסאות
מה שהעמוד הקודם עשה בתוך גוף הדף, הכלים כאן עושים סביבו: הכתובת, הכותרת, מי רשאי לפתוח, איזה קוד רץ, ואיך חוזרים אחורה כשמשהו נשבר.
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 יציב — וזו כל התכונה: אחרי הקישור הראשוני, כל שינוי קוד הוא העלאה מחדש בלבד (אומת: הדף טען את הגרסה החדשה מאותו 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 “גרסאות דף”שלושה כלים, ושילוב אחד שהוא מנגנון ה‑undo היחיד של הדפים.
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 — אומת (23.08.2026): 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 - אינדקס הכלים המלא