Changes for page KanbanMacro
Last modified by 刘锋 on 2025-03-13 18:33:18
Summary
-
Objects (3 modified, 0 added, 0 removed)
Details
- XWiki.JavaScriptExtension[0]
-
- Code
-
... ... @@ -51,13 +51,7 @@ 51 51 gutter: '15px', 52 52 widthBoard: '250px', 53 53 responsive: '700', 54 - colors: { 55 - 'green': '#8C4', 56 - 'blue':'#0AC', 57 - 'orange':'#F91', 58 - 'yellow':'#FC3', 59 - 'red':'#E43' 60 - }, 54 + colors: ["yellow", "green", "blue", "red", "orange"], 61 61 boards: [], 62 62 dragBoards: true, 63 63 addItemButton: false, ... ... @@ -297,9 +297,9 @@ 297 297 allClasses.map(function (value) { 298 298 headerBoard.classList.add(value); 299 299 }); 300 - //We want to keepbackwardcompatibilitywiththeold"color"propertyso we don't break existing boards.301 - color=defaults.colors[board.color] ? defaults.colors[board.color]:board.color;302 - headerBoard.style.background = color;294 + if (board.color !== '' && board.color !== undefined) { 295 + headerBoard.classList.add("kanban-header-" + board.color); 296 + } 303 303 titleBoard = document.createElement('div'); 304 304 titleBoard.classList.add('kanban-title-board'); 305 305 titleBoard.innerHTML = board.title;
- XWiki.StyleSheetExtension[0]
-
- Code
-
... ... @@ -111,6 +111,26 @@ 111 111 font-weight: bold; 112 112 } 113 113 114 +.kanban-header-yellow { 115 + background: #FC3; 116 +} 117 + 118 +.kanban-header-orange { 119 + background: #F91; 120 +} 121 + 122 +.kanban-header-blue { 123 + background: #0AC; 124 +} 125 + 126 +.kanban-header-red { 127 + background: #E43; 128 +} 129 + 130 +.kanban-header-green { 131 + background: #8C4; 132 +} 133 + 114 114 .kanban-addboard { 115 115 float: left; 116 116 margin: 30px;
- XWiki.WikiMacroClass[0]
-
- Macro code
-
... ... @@ -34,16 +34,16 @@ 34 34 var posting = jQuery.post( updateService, { page : page, nb : counter, content : newBoards } ); 35 35 posting.success(function(data) { 36 36 if (data.indexOf("SUCCESS")>=0 && data.indexOf("SUCCESS")<10) { 37 - #set($success = $escapetool.j avascript($services.localization.render("kanban.update.success")))37 + #set($success = $escapetool.json($services.localization.render("kanban.update.success"))) 38 38 new XWiki.widgets.Notification('$success', 'info', '20'); 39 39 currentBoards = newBoards; 40 40 } else { 41 - #set($error = $escapetool.j avascript($services.localization.render("kanban.update.error")))41 + #set($error = $escapetool.json($services.localization.render("kanban.update.error"))) 42 42 new XWiki.widgets.Notification('$error', 'error', '20'); 43 43 } 44 44 }); 45 45 posting.error(function(xhr,status,error) { 46 - #set($error = $escapetool.j avascript($services.localization.render("kanban.update.error")))46 + #set($error = $escapetool.json($services.localization.render("kanban.update.error"))) 47 47 new XWiki.widgets.Notification('$error', 'error', '20'); 48 48 }); 49 49 ... ... @@ -110,6 +110,25 @@ 110 110 }); 111 111 112 112 }, 113 + colorClick: function (el, boardId) { 114 + console.log("in color click"); 115 + var board = jQuery(el.parentNode).attr("data-id"); 116 + var boardJSON = kanban.getBoardJSON(board); 117 + var currentColor = boardJSON.color; 118 + console.log("Current color " + currentColor); 119 + var index = kanban.options.colors.findIndex(function (element) { 120 + return (element == currentColor) 121 + }) + 1; 122 + console.log("Next index " + index); 123 + if (index >= kanban.options.colors.length) 124 + index = 0; 125 + var nextColor = kanban.options.colors[index]; 126 + console.log("Next color " + nextColor); 127 + boardJSON.color = nextColor; 128 + jQuery(el).removeClass("kanban-header-" + currentColor); 129 + jQuery(el).addClass("kanban-header-" + nextColor); 130 + kanban.onChange(); 131 + }, 113 113 removeClick: function (el, boardId) { 114 114 if (confirm("Do you want to delete this board?")) { 115 115 console.log("Delete board"); ... ... @@ -154,37 +154,12 @@ 154 154 + boardId + '</value></property>' 155 155 jQuery.ajax({ url: restURL, type: 'PUT', data: data, contentType: "application/xml", 156 156 success: function(result) { 157 - #set($success = $escapetool.j avascript($services.localization.render("kanban.update.success")))176 + #set($success = $escapetool.json($services.localization.render("kanban.update.success"))) 158 158 new XWiki.widgets.Notification('$success', 'info', '20'); 159 159 }, 160 160 error: function(result) { 161 - // This is a workaround for XWIKI-20704. Remove this section of code when the parent 162 - // of this project will greater or equal than the fix version of the issue. 163 - // --- START --- 164 - let regex = /\/objects\/([^\/]+)\/0\/properties\/([^\/]+)/; 165 - let match = restURL.match(regex); 166 - let params = { 167 - outputSyntax: 'plain', 168 - docRef: currentdoc.documentReference.toString(), 169 - className: match[1], 170 - propertyName: match[2] 171 - }; 172 - jQuery.ajax({ 173 - url: new XWiki.Document(XWiki.Model.resolve('Macros.KanbanWorkaroundService', XWiki.EntityType.DOCUMENT, XWiki.currentDocument.getDocumentReference())).getURL('get', jQuery.param(params)), 174 - type: 'GET', 175 - success: function(result) { 176 - if (result.status === boardId) { 177 - new XWiki.widgets.Notification('$success', 'info', '20'); 178 - } else { 179 - #set($error = $escapetool.javascript($services.localization.render("kanban.update.error"))) 180 - new XWiki.widgets.Notification('$error', 'error', '20'); 181 - } 182 - }, 183 - error: function() { 184 - new XWiki.widgets.Notification('$error', 'error', '20'); 185 - } 186 - }); 187 - // --- END --- 180 + #set($error = $escapetool.json($services.localization.render("kanban.update.error"))) 181 + new XWiki.widgets.Notification('$error', 'error', '20'); 188 188 } 189 189 }); 190 190 }, ... ... @@ -216,7 +216,7 @@ 216 216 initKanban(data, updateService); 217 217 }); 218 218 getdata.error(function(xhr,status,error) { 219 - #set($error = $escapetool.j avascript($services.localization.render("kanban.load.error")))213 + #set($error = $escapetool.json($services.localization.render("kanban.load.error"))) 220 220 new XWiki.widgets.Notification('$error', 'error', '20'); 221 221 }); 222 222 #elseif($xcontext.macro.content)