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

يمكن للعديد من حقول إدخال النص استخدام «القوالب النصية» (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 إلى «سلبي» أو «إيجابي» حسب قيمة الخلية. ويمكن بعد ذلك استخدام هذا في نموذج لوحة المعلومات لتنسيق القيمة وفقًا لذلك: