דלגו לתוכן

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

מערכת חדשה — 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 יציב: כל שינוי קוד הוא העלאה מחדש בלבד. כלי קבצים.

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;} מסתיר את כפתור “הוספת שורה” הירוק שדולף לדפים מסוימים.

הפרמטר טיפוס חובה המשמעות
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 גרסאות.