Hi there
I'm working on something to enable me to show some stuff in kanban board format, just for displaying and nothing else. After a while I've managed to come up with this...
		
		
	
	
		
	
Usage: In Class Globals...
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
In ConnectPage...
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
The RefreshOnLoad_kanban method...
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
In your page also add the necessary javascript files...
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Kanban implemented events... (these you can trap to update the underlying database)
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Updating the kanban board / cards during runtime: (you can use these methods)
			
			I'm working on something to enable me to show some stuff in kanban board format, just for displaying and nothing else. After a while I've managed to come up with this...
Usage: In Class Globals...
			
				B4X:
			
		
		
		Dim kanban As SyncfusionKanban
	In ConnectPage...
			
				B4X:
			
		
		
		'define the kanban to add to the page, the colKey should match the available statuses in your data
    kanban.Initialize(page, "kanban")
    kanban.AllowTitle = True  ' show the card ids
    kanban.enableTotalCount = True   ' show total items per card
    kanban.AllowSelection = True   ' allow selection of items
    kanban.Color = "Type"  'set the color field to be the type field
    kanban.Title = "Assignee"   ' set the title to be the assignee field
    kanban.SwimlaneKey = ""   ' turn off not to show a swimlane
    kanban.Tag = "" ' turn off not to show the tags
    kanban.Priority = "" ' turn off not to set RankID as priority of sequencing the cards
    kanban.allowSearching = True
    kanban.EnableContextMenu = True
    kanban.AllowPrinting = True
    kanban.allowFiltering = True
    kanban.allowScrolling = False
    kanban.allowEditing = True
    kanban.allowDragAndDrop = True
    kanban.allowAdding = True
 
    page.Cell(2,1).SetFixedHeightFromBottom(20,False)
    page.Cell(2,1).AddComponent(kanban.ABMComp)
    RefreshOnLoad_kanban
	The RefreshOnLoad_kanban method...
			
				B4X:
			
		
		
		'Refresh the contents of an SyncfusionChart in runtime
Private Sub RefreshOnLoad_kanban
    'clear the contents of the kanban
    kanban.clear
    'add the columns
    kanban.AddColumn("Backlog","Backlog",True,True,True,True,True)  ' add a collapsed column
    kanban.AddColumn("InProgress,Validate","In Progress or Validate",True,False,True,True,True)   ' use two keys in this column
    kanban.AddColumn("Debug", "Debug", False,False,True,True,True) ' add a hidden column
    kanban.AddColumn("Done", "Done",True,False,True,True,True)
    kanban.AddColumn("DragnDrop", "No Drag n Drop",True,False,False,False,True)
    'add colors for the types
    'for each of the types add the respective color
    kanban.AddColor("#cb2027","Bug,Story")
    kanban.AddColor("#67ab47","Improvement")
    kanban.AddColor("#fbae19", "Epic")
    kanban.AddColor("#6a5da8", "Others")
    'add the workflows
    'add workflows to enable/disable card locations
    'kanban.AddWorkFlow("Open","InProgress")  ' anything in open can ONLY go to InProgress
    'kanban.AddWorkFlow("InProgress","Testing,Close")   ' anything in InProgress can go to Testing & Close
    kanban.AddResource("Andrew Fuller", "../images/brother.jpg")
    kanban.AddResource("Janet", "../images/mom.jpg")
    kanban.AddResource("Mashy", "../images/sponge.png")
    kanban.AddResource("Yuna", "../images/yuna.jpg")
    kanban.AddCard(1, "Backlog", "Analyze the new requirements gathered from the customer.", "Story", "Low", "Analyze,Customer", 3.5, "Andrew Fuller", 1)
    kanban.AddCard(2, "InProgress", "Improve application performance", "Improvement", "Normal", "Improvement", 6, "Andrew Fuller", 1)
    kanban.AddCard(3, "Backlog", "Arrange a web meeting with the customer to get new requirements.", "Others", "Critical", "Meeting", 5.5, "Yuna", 2)
    kanban.AddCard(4, "InProgress", "Fix the issues reported in the IE browser.", "Bug", "Release Breaker", "IE", 2.5, "Janet", 2)
    kanban.AddCard(5, "Debug", "Fix the issues reported by the customer.", "Bug", "Low", "Customer", 3.5, "Andrew Fuller", 1)
    kanban.AddCard(6, "Done", "Arrange a web meeting with the customer to get the login page requirements.", "Others", "Low", "Meeting", 2, "Janet", 1)
    kanban.AddCard(7, "Validate", "Validate new requirements", "Improvement", "Low", "Validation", 1.5, "Janet", 1)
    kanban.AddCard(8, "Done", "Login page validation", "Story", "Release Breaker", "Validation,Fix", 2.5, "Andrew Fuller", 2)
    kanban.AddCard(9, "Debug", "Fix the issues reported in Safari browser.", "Bug", "Release Breaker", "Fix,Safari", 1.5, "Janet", 2)
    kanban.AddCard(10, "Done", "Test the application in the IE browser.", "Story", "Low", "Testing,IE", 5.5, "Andrew Fuller", 3)
    kanban.AddCard(11, "DragnDrop", "One cannot drag or drop here", "Story", "Low", "Drag,Drop", 5.5, "Mashy", 3)
    kanban.AddCard(12, "InProgress", "Un assigned task", "Story", "Low", "Drag,Drop", 5.5, Null, 3)
    'add the filters
    'kanban.AddFilter("Closed","Status","Close")
    kanban.AddResourceFilters
    'kanban.AddStatusFilters
    'kanban.AddTypeFilters
    'refresh the kanban
    kanban.ABMComp.Refresh
End Sub
	In your page also add the necessary javascript files...
			
				B4X:
			
		
		
		page.AddExtraJavaScriptFile("custom/jquery.easing.1.3.min.js")
    page.AddExtraJavaScriptFile("custom/jsrender.min.js")
    page.AddExtraJavaScriptFile("custom/ej.web.all.min.js")
    page.AddExtraJavaScriptFile("custom/axesLabels.js")
    page.AddExtraCSSFile("custom/ejthemes/default-theme/ej.web.all.min.css")
	Kanban implemented events... (these you can trap to update the underlying database)
			
				B4X:
			
		
		
		'fired when the card is updated
Sub kanban_endEdit(value As Map)
    Log(value)
End Sub
'fired when the card has just been added
Sub kanban_endAdd(value As Map)
    Log(value)
    kanban.UpdateCard1(value)
End Sub
'fired when the card has been deleted
Sub kanban_endDelete(value As Map)
    Log(value)
End Sub
'fired when the card is clicked
Sub kanban_cardClick(value As Map)
    kanban.HideColumn("Done")
    kanban.ShowColumn("Testing")
    kanban.AddColumn1("Reporting","Reporting")
    kanban.AddCard1(20,"Open","Add card via code","Bug","Low","",1,"Mashy","1")
    kanban.UpdateCard(5,"Close","Updated card via code","Improvement","Low","",3,"Mashy",3)
    kanban.DeleteCard(10)
End Sub
'fired when the card is dropped in another column
Sub kanban_cardDrop(value As Map)
    Log(value)
End Sub
	Updating the kanban board / cards during runtime: (you can use these methods)
- UpdateCard
 - AddCard1
 - UpdateCard1
 - RemoveColumn
 - HideColumn
 - ShowColumn
 - DeleteCard
 - AddColumn1
 
Attachments
			
				Last edited: