last demo import - cleaned
This commit is contained in:
81
controllers/workflow.go
Normal file
81
controllers/workflow.go
Normal file
@@ -0,0 +1,81 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"net/url"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
beego "github.com/beego/beego/v2/server/web"
|
||||
"github.com/sbabiv/xml2map"
|
||||
)
|
||||
|
||||
// WorkflowController allows to edit a tasks workflow
|
||||
type WorkflowController struct {
|
||||
beego.Controller
|
||||
}
|
||||
|
||||
// Get i
|
||||
func (c *WorkflowController) Get() {
|
||||
|
||||
c.Data["Website"] = "beego.me"
|
||||
c.Data["Email"] = "astaxie@gmail.com"
|
||||
c.TplName = "workflow.tpl"
|
||||
}
|
||||
|
||||
// Open i
|
||||
func (c *WorkflowController) Open() {
|
||||
|
||||
c.Data["Website"] = "beego.me"
|
||||
c.Data["Email"] = "astaxie@gmail.com"
|
||||
c.TplName = "workflow.tpl"
|
||||
}
|
||||
|
||||
// Save i
|
||||
func (c *WorkflowController) Save() {
|
||||
xml := c.GetString("xml")
|
||||
fmt.Println(xml)
|
||||
decodedValue, err := url.QueryUnescape(xml)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(decodedValue)
|
||||
os.WriteFile("graph.xml", []byte(decodedValue), 0660)
|
||||
decoder := xml2map.NewDecoder(strings.NewReader(decodedValue))
|
||||
result, err := decoder.Decode()
|
||||
if err != nil {
|
||||
|
||||
}
|
||||
|
||||
cells := result["mxGraphModel"].(map[string]interface{})["root"].(map[string]interface{})["mxCell"].([]map[string]interface{})
|
||||
|
||||
for _, element := range cells {
|
||||
id := element["@id"].(string)
|
||||
if _, ok := element["@style"]; ok {
|
||||
if _, ok2 := element["@rID"]; ok2 {
|
||||
fmt.Print(id + ": ")
|
||||
fmt.Println(element["@rID"], element["@rType"])
|
||||
}
|
||||
}
|
||||
if src, ok := element["@source"]; ok {
|
||||
src = element["@source"].(string)
|
||||
fmt.Println("Link: " + src.(string) + " " + element["@target"].(string))
|
||||
}
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
c.StopRun()
|
||||
}
|
||||
|
||||
// Export i
|
||||
func (c *WorkflowController) Export() {
|
||||
|
||||
c.Data["Website"] = "beego.me"
|
||||
c.Data["Email"] = "astaxie@gmail.com"
|
||||
c.TplName = "workflow.tpl"
|
||||
}
|
||||
Reference in New Issue
Block a user