github.com/cs3org/reva/v2@v2.27.7/internal/http/services/appprovider/templates.go (about) 1 package appprovider 2 3 import ( 4 "strings" 5 6 appregistry "github.com/cs3org/go-cs3apis/cs3/app/registry/v1beta1" 7 ) 8 9 type TemplateList struct { 10 Templates map[string][]Template `json:"templates"` 11 } 12 13 type Template struct { 14 Extension string `json:"extension"` 15 MimeType string `json:"mime_type"` 16 TargetExtension string `json:"target_extension"` 17 } 18 19 var tl = TemplateList{ 20 Templates: map[string][]Template{ 21 "collabora": { 22 { 23 MimeType: "application/vnd.oasis.opendocument.spreadsheet-template", 24 TargetExtension: "ods", 25 }, 26 { 27 MimeType: "application/vnd.oasis.opendocument.text-template", 28 TargetExtension: "odt", 29 }, 30 { 31 MimeType: "application/vnd.oasis.opendocument.presentation-template", 32 TargetExtension: "odp", 33 }, 34 }, 35 "onlyoffice": { 36 { 37 MimeType: "application/vnd.ms-word.template.macroenabled.12", 38 TargetExtension: "docx", 39 }, 40 { 41 MimeType: "application/vnd.oasis.opendocument.text-template", 42 TargetExtension: "docx", 43 }, 44 { 45 MimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.template", 46 TargetExtension: "docx", 47 }, 48 { 49 MimeType: "application/vnd.oasis.opendocument.spreadsheet-template", 50 TargetExtension: "xlsx", 51 }, 52 { 53 MimeType: "application/vnd.ms-excel.template.macroenabled.12", 54 TargetExtension: "xlsx", 55 }, 56 { 57 MimeType: "application/vnd.openxmlformats-officedocument.spreadsheetml.template", 58 TargetExtension: "xlsx", 59 }, 60 { 61 MimeType: "application/vnd.oasis.opendocument.presentation-template", 62 TargetExtension: "pptx", 63 }, 64 { 65 MimeType: "application/vnd.ms-powerpoint.template.macroenabled.12", 66 TargetExtension: "pptx", 67 }, 68 { 69 MimeType: "application/vnd.openxmlformats-officedocument.presentationml.template", 70 TargetExtension: "pptx", 71 }, 72 }, 73 }, 74 } 75 76 func addTemplateInfo(mt *appregistry.MimeTypeInfo, apps []*ProviderInfo) { 77 for _, app := range apps { 78 if tls, ok := tl.Templates[strings.ToLower(app.ProductName)]; ok { 79 for _, tmpl := range tls { 80 if tmpl.Extension != "" && tmpl.Extension == mt.Ext { 81 app.TargetExt = tmpl.TargetExtension 82 continue 83 } 84 if tmpl.MimeType == mt.MimeType { 85 app.TargetExt = tmpl.TargetExtension 86 } 87 } 88 } 89 } 90 }