... |
... |
@@ -1,11 +1,16 @@ |
1 |
1 |
{{groovy}} |
2 |
|
-def includeTags = tags?.split(',')*.trim()*.toLowerCase().findAll { it } |
3 |
|
-def maxCount = max?.toInteger() ?: 999 |
|
2 |
+/** |
|
3 |
+ * incidentGallery script macro |
|
4 |
+ * @param tags - comma-separated tags to filter (case-insensitive) |
|
5 |
+ * @param max - max incidents to display (optional) |
|
6 |
+ */ |
|
7 |
+def includeTags = parameters.tags?.split(',')*.trim()*.toLowerCase() ?: [] |
|
8 |
+def maxCount = parameters.max?.toInteger() ?: 999 |
4 |
4 |
|
5 |
5 |
def hql = """ |
6 |
|
- select doc.fullName |
7 |
|
- from XWikiDocument doc, BaseObject obj |
8 |
|
- where obj.name = doc.fullName |
|
11 |
+ select doc.fullName |
|
12 |
+ from XWikiDocument doc, BaseObject obj |
|
13 |
+ where obj.name = doc.fullName |
9 |
9 |
and obj.className = 'Main Categories.Anti White Incidents.Code.MoviesClass' |
10 |
10 |
order by doc.date desc |
11 |
11 |
""" |
... |
... |
@@ -20,6 +20,7 @@ |
20 |
20 |
def obj = doc.getObject("Main Categories.Anti White Incidents.Code.MoviesClass") |
21 |
21 |
if (!obj) return |
22 |
22 |
|
|
28 |
+ // extract fields |
23 |
23 |
def title = obj.getProperty("shortText1")?.value?.toString()?.trim() |
24 |
24 |
def summary = obj.getProperty("shortText2")?.value?.toString()?.trim() ?: obj.getProperty("longText1")?.value?.toString()?.trim() |
25 |
25 |
def externalURL = obj.getProperty("longText2")?.value?.toString()?.trim() |
... |
... |
@@ -27,6 +27,7 @@ |
27 |
27 |
|
28 |
28 |
if (!title || !summary) return |
29 |
29 |
|
|
36 |
+ // tag filtering |
30 |
30 |
if (includeTags && tagList) { |
31 |
31 |
def tagNames = tagList.collect { it.toString().toLowerCase() } |
32 |
32 |
if (!tagNames.any { includeTags.contains(it) }) return |
... |
... |
@@ -60,7 +60,7 @@ |
60 |
60 |
|
61 |
61 |
if (results.isEmpty()) { |
62 |
62 |
if (includeTags) { |
63 |
|
- println "⚠️ No incidents found for tags: ${tags}" |
|
70 |
+ println "⚠️ No incidents found for tags: ${parameters.tags}" |
64 |
64 |
} else { |
65 |
65 |
println "⚠️ No incidents to display." |
66 |
66 |
} |