-
Notifications
You must be signed in to change notification settings - Fork 0
/
edit-item.go
75 lines (63 loc) · 1.95 KB
/
edit-item.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// Copyright (c) 2023 The Go-Enjin Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package menu
import (
"encoding/json"
"github.com/go-corelibs/context"
)
type EditItem struct {
Text string `json:"text"`
Href string `json:"href,omitempty"`
Lang string `json:"lang,omitempty"`
Title string `json:"title,omitempty"`
Target string `json:"target,omitempty"`
Icon string `json:"icon,omitempty"`
Image string `json:"image,omitempty"`
ImgAlt string `json:"img-alt,omitempty"`
Active bool `json:"active,omitempty"`
SubMenu EditMenu `json:"sub-menu,omitempty"`
Hidden string `json:"hidden,omitempty"`
Context context.Context `json:"context,omitempty"`
Expand string `json:"expand,omitempty"`
ExpandExtras string `json:"expand-extras,omitempty"`
Delete bool `json:"delete,omitempty"`
MoveUp bool `json:"move-up,omitempty"`
MoveDown bool `json:"move-down,omitempty"`
Append bool `json:"append,omitempty"`
}
func (i EditItem) String() (value string) {
if data, err := json.MarshalIndent(i, "", "\t"); err == nil {
value = string(data)
}
return
}
func (i EditItem) AsItem() (clone *Item) {
var subMenu Menu
if len(i.SubMenu) > 0 {
subMenu = i.SubMenu.AsMenu()
}
clone = &Item{
Text: i.Text,
Href: i.Href,
Lang: i.Lang,
Target: i.Target,
Icon: i.Icon,
Image: i.Image,
ImgAlt: i.ImgAlt,
Active: i.Active,
SubMenu: subMenu,
Context: i.Context.Copy(),
}
return
}