العناصر النائبة

يمكن للعديد من حقول إدخال النص استخدام «القوالب النصية» (template literals) الخاصة بـ ES2015 لاستبدال أجزاء من النص ديناميكيًا بقيم معينة. ويمكن استخدام العناصر النائبة المُعرَّفة مسبقًا داخل تلك القوالب النصية.

على سبيل المثال: Hello ${params.world}

لاستخدام عنصر نائب داخل عنوان URL (مثل رابط href في أداة النص)، استخدم $$ لتحويل القيمة إلى صيغة URL (مثل $${property.customer_name}).

لا يلزم استخدام $$ لتحويل القيمة إلى صيغة URL في الحقول النصية التي تحتوي عادةً على عنوان URL (مثل HREF في عمود عنصر واجهة المستخدم «الجدول»). حيث يتم التحويل تلقائيًا في هذه الحالة.

عالمي

تتوفر العناصر النائبة العامة التالية:

  • ${sessionId}

  • ${params.<urlParam>}
    يقرأ هذا العنصر النائب عنوان URL الموجود في شريط عنوان المتصفح ويبحث عن معلمات URL، على سبيل المثال #/dashboards/details?closeOnBackgroundClick=true

  • ${now}
    يطبع التاريخ والوقت الحاليين وفقًا للتنسيق المخصص للإعدادات المحلية
    المحددة في المتصفح وفقًا لـ http://momentjs.com/docs/#/displaying/
    ، على سبيل المثال ${now.format('DD.MM.YYYY HH:mm')}

  • ${today}
    يطبع اليوم الحالي وفقًا للتنسيق المخصص للإعدادات المحلية
    المحددة في المتصفح وفقًا لـ http://momentjs.com/docs/#/displaying/
    ، على سبيل المثال: ${today.format('DD.MM.YYYY')}

  • ${filterMatrix.<column>} /${filterMatrix.<propertyId>}
    يُظهر قائمة مفصولة بفواصل للقيم المحددة من مصفوفة التصفية.
    على سبيل المثال: ${filterMatrix.department}
    -> Development,Management
    ${filterMatrix[76]}-> Genf,Zürich

    مع وجود مسافة بعد الفاصلة:
    ${filterMatrix.department.replaceAll(',', ', ')}-> Development, Management

  • ${params.widget12345filter}
    يطبع قيمة التصفية الحالية للجدول الذي يحمل الرقم التعريفي 12345.

  • ${language}، ${locale}،${languages}
    اللغة أو الإعدادات الإقليمية المستخدمة حاليًا أو اللغات المتاحة.

الكائن / الصف الحالي

في حالة توفر كائن SKOOR (على سبيل المثال في صف الجدول)، يمكن استخدام العناصر النائبة التالية:

  • ${object.id}

  • ${object.deviceId}

  • ${object.name}

  • ${object.type}

  • ${object.subType}

  • ${object.state} / ${object.state.lightbulb(<size>)} /${object.state.format()}
    الحجم بالبكسل

  • ${object.properties[<propertyId>]} /${object.properties.<propertyKey>}
    يمكن طباعة مؤشر تعداد خاصية بدلاً من القيمة باستخدام enumIndex (على سبيل المثال، ${object.properties.foo.enumIndex})

  • ${object.parameters.<parameterKey>}

  • ${object.values.<valueKey>}
    يمكن العثور على مفاتيح القيم هنا

كما يمكن الوصول إلى أعمدة مصدر بيانات خارجي:

  • ${columns[index]}
    يبدأ الفهرس من 0

  • ${columns.<columnName>} / ${columns ['<columnName>']} 

معلمة الفاصل الزمني

يمكن تنسيق معلمات الفاصل الزمني باستخدام تنسيقات momentJS (http://momentjs.com/docs/#/displaying/).

  • ${interval(params.<name>).begin.format(<format>)}

  • ${interval(params.<name>).end.format(<format>)}

أمثلة:

  • #/dashboards/123?interval=2018-11

    • ${interval(params.interval) → 01.11.2018 - 30.11.2018 (يعتمد الناتج على الإعدادات المحلية الحالية)

    • ${interval(params.interval).begin} -> 01.11.2018 (يعتمد الناتج على الإعدادات المحلية الحالية)

    • ${interval(params.interval).end} -> 30.11.2018 (يعتمد الناتج على الإعدادات المحلية الحالية)

    • ${interval(params.interval).begin.format('DD.MM.YYYY')} -> 01.11.2018

    • ${interval(params.interval).end.format('DD.MM.YYYY')} -> 30.11.2018

    • ${interval(params.interval).begin.format('YYYY')} -> 2018

  • #/dashboards/123?interval=2018-W5

    • ${interval(params.interval).begin.format('DD.MM.YYYY')} -> 29.01.2018

    • ${interval(params.interval).end.format('DD.MM.YYYY')} -> 04.02.2018

المزيد عن الفترات الزمنية

  • ${interval(params.interval).begin.weekday(0).format('')} -> الحصول على أول يوم من أيام الأسبوع في بداية الفترة

  • ${interval(params.interval).begin.subtract(12, 'm').format('')} -> طرح 12 شهرًا من بداية الفترة الزمنية

القيم الافتراضية

إذا لم يتم تعريف قيمة العنصر النائب (على سبيل المثال، في حالة فقدان معلمة URL مطلوبة)، يمكن تعيين قيمة افتراضية باستخدام عامل "أو" المنطقي ||.

أمثلة:

  • ${param.name || 'no name given'} -> لم يتم تحديد اسم

  • ${interval(params.interval || '2019-01')} -> 01.11.2018 - 30.11.2018 (يعتمد الناتج على الإعدادات المحلية الحالية)

  • ${params.interval || 'BETWEEN(2021,2025)'} → 2021 - 2025 (إذا كان النطاق مسموحًا به في أداة اختيار التاريخ)

  • $(time(params.time || moment())} -> 22.01.2020 13:31

التعبيرات

في أدوات الرسم البياني والجدول، يمكن حساب القيم باستخدام التعبيرات.

أمثلة:

  • Table widget: Subtract 25 from a SKOOR object value as ${utils.formatNumber(object.values.Temperature - 25)}

  • Chart widget: Divide two values using their column names as ${utils.formatNumber(columns["Incidents"] / columns["Transactions"], 3)}
    -> تقريب النتيجة إلى 3 أرقام بعد العلامة العشرية

تصميم خلايا الجدول بناءً على المحتوى

يمكن استخدام العناصر النائبة لتعيين سمة الفئة بناءً على قيمة الخلية.

يؤدي هذا إلى تعيين اسم فئة CSS إلى «سلبي» أو «إيجابي» حسب قيمة الخلية. ويمكن بعد ذلك استخدام هذا في نموذج لوحة المعلومات لتنسيق القيمة وفقًا لذلك: