sozsoft-platform/configs/seeds/host/data/App.DeveloperKit.CustomComponents/d669129d-52fe-56e1-972d-d20fe1b3360e.json
2026-10-04 18:04:16 +03:00

29 lines
3.7 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"ListFormCode": "App.DeveloperKit.CustomComponents",
"KeyFieldName": "Id",
"GeneratedAt": "2026-10-04T13:55:55Z",
"Order": 0,
"Rows": [
{
"Id": "d669129d-52fe-56e1-972d-d20fe1b3360e",
"Name": "My360FeedbackWidget",
"RoutePath": null,
"Description": "Intranet panosu: kullanıcıya atanan 360 derece değerlendirme talepleri",
"IsActive": true,
"Dependencies": [],
"Code": "// Kullaniciya degerlendirici olarak atanan 360 talepleri. Satirlar ekranin sorgusundan gelir\n// (ReviewerId = oturum acan kullanici).\nconst FEEDBACK = 'App.Hr.My360Feedback'\n\nconst Stat = ({ label, value, children }) => (\n <div className=\"flex items-center gap-3 rounded-lg border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-900/40\">\n {children}\n <div className=\"min-w-0\">\n <div className=\"text-lg font-semibold text-gray-900 dark:text-white\">{value}</div>\n <div className=\"truncate text-xs text-gray-500 dark:text-gray-400\">{label}</div>\n </div>\n </div>\n)\n\nconst My360FeedbackWidget = () => {\n const [rows, setRows] = useState([])\n const [loading, setLoading] = useState(true)\n\n useEffect(() => {\n let active = true\n apiService\n .fetchData({\n method: 'GET',\n url: '/api/app/list-form-select/select',\n params: { listFormCode: FEEDBACK, take: 500 },\n })\n .then((response) => active && setRows(response.data?.data ?? []))\n .catch(() => {})\n .finally(() => active && setLoading(false))\n return () => {\n active = false\n }\n }, [])\n\n const pending = rows.filter((r) => r.Status === 'Pending').length\n const submitted = rows.filter((r) => r.Status === 'Submitted').length\n\n return (\n <div className=\"overflow-hidden rounded-xl border border-gray-200/50 bg-white shadow-lg dark:border-gray-700/50 dark:bg-gray-800\">\n <div className=\"flex items-center gap-2 border-b border-gray-200 p-4 dark:border-gray-700\">\n <PlatformIcon name=\"FaComments\" className=\"h-5 w-5 text-indigo-500\" />\n <h2 className=\"text-base font-semibold text-gray-900 dark:text-white\">\n {translate('::App.DashboardWidget.My360Feedback')}\n </h2>\n </div>\n <div className=\"space-y-3 p-3\">\n {loading ? (\n <div className=\"p-4 text-center text-sm text-gray-500\">...</div>\n ) : rows.length === 0 ? (\n <div className=\"p-4 text-center text-sm text-gray-500 dark:text-gray-400\">\n {translate('::App.DashboardWidget.Performance.NoFeedback')}\n </div>\n ) : (\n <div className=\"grid grid-cols-2 gap-2\">\n <Stat label={translate('::App.Hr.Performance.Widget.Pending')} value={pending}>\n <PlatformIcon name=\"FaHourglassHalf\" className=\"h-5 w-5 text-amber-500\" />\n </Stat>\n <Stat label={translate('::App.Hr.Performance.Widget.Submitted')} value={submitted}>\n <PlatformIcon name=\"FaPaperPlane\" className=\"h-5 w-5 text-green-500\" />\n </Stat>\n </div>\n )}\n <a href={'/admin/list/' + FEEDBACK} className=\"text-sm font-medium text-indigo-600 hover:underline dark:text-indigo-400\">\n {translate('::App.Hr.My360Feedback')} →\n </a>\n </div>\n </div>\n )\n}\n\nexport default My360FeedbackWidget",
"Props": null,
"DataSources": [],
"SeoTitle": null,
"SeoDescription": null,
"SeoKeywords": null,
"SeoOgImage": null,
"SeoCanonicalUrl": null,
"SeoNoIndex": true,
"SeoIncludeInSitemap": false,
"SeoChangeFrequency": null,
"SeoPriority": null,
"SeoStructuredData": null
}
]
}