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  }