/
serie_episodes.go
150 lines (136 loc) · 8.95 KB
/
serie_episodes.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package models
import (
template2 "html/template"
"github.com/GoAdminGroup/go-admin/context"
"github.com/GoAdminGroup/go-admin/modules/db"
"github.com/GoAdminGroup/go-admin/plugins/admin/modules/table"
"github.com/GoAdminGroup/go-admin/template"
"github.com/GoAdminGroup/go-admin/template/icon"
"github.com/GoAdminGroup/go-admin/template/types"
"github.com/GoAdminGroup/go-admin/template/types/action"
"github.com/GoAdminGroup/go-admin/template/types/form"
"github.com/Kellerman81/go_media_downloader/pkg/main/config"
)
func GetSerieEpisodesTable(ctx *context.Context) table.Table {
serieEpisodes := table.NewDefaultTable(table.DefaultConfigWithDriverAndConnection("sqlite", "media"))
detail := serieEpisodes.GetDetail().HideFilterArea()
detail.AddField("Id", "id", db.Integer).
FieldFilterable()
//info.AddField("Created_at", "created_at", db.Datetime)
//info.AddField("Updated_at", "updated_at", db.Datetime)
detail.AddField("Lastscan", "lastscan", db.Datetime)
detail.AddField("Blacklisted", "blacklisted", db.Numeric)
detail.AddField("Quality_reached", "quality_reached", db.Numeric)
detail.AddField("Quality_profile", "quality_profile", db.Text)
detail.AddField("Missing", "missing", db.Numeric)
detail.AddField("Dont_upgrade", "dont_upgrade", db.Numeric)
detail.AddField("Dont_search", "dont_search", db.Numeric)
detail.AddField("Ignore_runtime", "ignore_runtime", db.Numeric)
detail.AddField("Dbserie_episode_id", "dbserie_episode_id", db.Integer)
detail.AddField("Serie_id", "serie_id", db.Integer)
detail.AddField("Dbserie_id", "dbserie_id", db.Integer)
detail.SetTable("serie_episodes").SetTitle("SerieEpisodes").SetDescription("SerieEpisodes")
info := serieEpisodes.GetInfo().HideFilterArea()
info.AddField("Id", "id", db.Integer).
FieldSortable()
info.AddField("Title", "Seriename", db.Text).FieldJoin(types.Join{
BaseTable: "serie_episodes",
Field: "dbserie_id",
JoinField: "id",
Table: "dbseries",
}).FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike}).FieldSortable()
info.AddField("List", "Listname", db.Text).FieldJoin(types.Join{
BaseTable: "serie_episodes",
Field: "serie_id",
JoinField: "id",
Table: "series",
}).FieldFilterable(types.FilterType{FormType: form.SelectSingle}).FieldFilterOptionsFromTable("series", "listname", "listname", func(sql *db.SQL) *db.SQL { return sql.GroupBy("listname") }).FieldFilterOptionExt(map[string]any{"allowClear": true}).FieldSortable() //.FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike}).FieldSortable()
info.AddField("Identifier", "Identifier", db.Text).FieldJoin(types.Join{
BaseTable: "serie_episodes",
Field: "dbserie_episode_id",
JoinField: "id",
Table: "dbserie_episodes",
}).FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike}).FieldSortable()
//info.AddField("Created_at", "created_at", db.Datetime)
//info.AddField("Updated_at", "updated_at", db.Datetime)
//info.AddField("Lastscan", "lastscan", db.Datetime)
//info.AddField("Blacklisted", "blacklisted", db.Numeric)
info.AddField("Quality_reached", "quality_reached", db.Numeric).FieldBool("1", "0").FieldFilterable(types.FilterType{FormType: form.SelectSingle}).FieldFilterOptions(types.FieldOptions{
{Value: "0", Text: "No"},
{Value: "1", Text: "Yes"},
}).FieldFilterOptionExt(map[string]any{"allowClear": true}).FieldSortable()
info.AddField("Quality_profile", "quality_profile", db.Text).FieldFilterable(types.FilterType{FormType: form.SelectSingle}).FieldFilterOptionsFromTable("serie_episodes", "quality_profile", "quality_profile", func(sql *db.SQL) *db.SQL { return sql.GroupBy("quality_profile") }).FieldFilterOptionExt(map[string]any{"allowClear": true}).FieldSortable()
info.AddField("Missing", "missing", db.Numeric).FieldBool("1", "0").FieldFilterable(types.FilterType{FormType: form.SelectSingle}).FieldFilterOptions(types.FieldOptions{
{Value: "0", Text: "No"},
{Value: "1", Text: "Yes"},
}).FieldFilterOptionExt(map[string]any{"allowClear": true}).FieldSortable()
info.AddField("Ignore_runtime", "ignore_runtime", db.Numeric).FieldBool("1", "0").FieldFilterable(types.FilterType{FormType: form.SelectSingle}).FieldFilterOptions(types.FieldOptions{
{Value: "0", Text: "No"},
{Value: "1", Text: "Yes"},
}).FieldFilterOptionExt(map[string]any{"allowClear": true}).FieldSortable()
//info.AddField("Dont_upgrade", "dont_upgrade", db.Numeric)
//info.AddField("Dont_search", "dont_search", db.Numeric)
//info.AddField("Dbserie_episode_id", "dbserie_episode_id", db.Integer)
//info.AddField("Serie_id", "serie_id", db.Integer)
// info.AddColumnButtons("Details", types.GetColumnButton("Files", icon.File,
// action.PopUpWithIframe("/admin/info/serie_episode_files", "see more", action.IframeData{Src: "/admin/info/serie_episode_files", AddParameterFn: func(ctx *context.Context) string {
// return "&serie_episode_id=" + ctx.FormValue("id")
// }}, "900px", "560px")), types.GetColumnButton("Histories", icon.Info,
// action.PopUpWithIframe("/admin/info/serie_episode_histories", "see more", action.IframeData{Src: "/admin/info/serie_episode_histories", AddParameterFn: func(ctx *context.Context) string {
// return "&serie_episode_id=" + ctx.FormValue("id")
// }}, "900px", "560px")), types.GetColumnButton("Force Scan", icon.Search,
// action.PopUpWithIframe("/search", "see more", action.IframeData{Src: "/api/series/episodes/search/id/{{.Id}}?apikey=" + cfg_general.WebApiKey}, "200px", "20px")))
info.AddColumnButtons("Details", types.GetActionIconButton(icon.File,
action.PopUpWithIframe("/admin/info/serie_episode_files", "see more", action.IframeData{Src: "/admin/info/serie_episode_files", AddParameterFn: func(ctx *context.Context) string {
return "&serie_episode_id=" + ctx.FormValue("id")
}}, "900px", "560px")), types.GetActionIconButton(icon.History,
action.PopUpWithIframe("/admin/info/serie_episode_histories", "see more", action.IframeData{Src: "/admin/info/serie_episode_histories", AddParameterFn: func(ctx *context.Context) string {
return "&serie_episode_id=" + ctx.FormValue("id")
}}, "900px", "560px")), types.GetActionIconButton(icon.Search, //action.JumpInNewTab("/api/series/episodes/search/id/{{.Id}}?apikey="+cfg_general.WebApiKey, "Search")))
MyPopUpWithIframe("/search", "see more", action.IframeData{Src: "/api/series/episodes/search/id/{{.Id}}?apikey=" + config.SettingsGeneral.WebAPIKey}, "900px", "560px")))
info.AddField("Dbserie_id", "dbserie_id", db.Integer).FieldDisplay(func(value types.FieldModel) any {
return template.Default().
Link().
SetURL("/admin/info/dbseries/detail?__goadmin_detail_pk=" + value.Value).
SetContent(template2.HTML(value.Value)).
OpenInNewTab().
SetTabTitle(template.HTML("Serie Detail(" + value.Value + ")")).
GetContent()
})
info.SetTable("serie_episodes").SetTitle("SerieEpisodes").SetDescription("SerieEpisodes")
formList := serieEpisodes.GetForm()
formList.AddField("Id", "id", db.Integer, form.Default).FieldDisplayButCanNotEditWhenCreate().FieldDisableWhenUpdate()
//formList.AddField("Created_at", "created_at", db.Datetime, form.Datetime)
//formList.AddField("Updated_at", "updated_at", db.Datetime, form.Datetime)
formList.AddField("Lastscan", "lastscan", db.Datetime, form.Datetime)
formList.AddField("Blacklisted", "blacklisted", db.Numeric, form.Switch).FieldOptions(types.FieldOptions{
{Text: "Yes", Value: "1"},
{Text: "No", Value: "0"},
})
formList.AddField("Quality_reached", "quality_reached", db.Numeric, form.Switch).FieldOptions(types.FieldOptions{
{Text: "Yes", Value: "1"},
{Text: "No", Value: "0"},
})
formList.AddField("Quality_profile", "quality_profile", db.Text, form.SelectSingle).FieldOptionsFromTable("serie_episodes", "quality_profile", "quality_profile", func(sql *db.SQL) *db.SQL { return sql.GroupBy("quality_profile").Select("quality_profile") })
formList.AddField("Missing", "missing", db.Numeric, form.Switch).FieldOptions(types.FieldOptions{
{Text: "Yes", Value: "1"},
{Text: "No", Value: "0"},
})
formList.AddField("Dont_upgrade", "dont_upgrade", db.Numeric, form.Switch).FieldOptions(types.FieldOptions{
{Text: "Yes", Value: "1"},
{Text: "No", Value: "0"},
})
formList.AddField("Dont_search", "dont_search", db.Numeric, form.Switch).FieldOptions(types.FieldOptions{
{Text: "Yes", Value: "1"},
{Text: "No", Value: "0"},
})
formList.AddField("Ignore_runtime", "ignore_runtime", db.Numeric, form.Switch).FieldOptions(types.FieldOptions{
{Text: "Yes", Value: "1"},
{Text: "No", Value: "0"},
})
formList.AddField("Dbserie_episode_id", "dbserie_episode_id", db.Integer, form.SelectSingle) //.FieldOptionsFromTable("dbserie_episodes", "identifier", "id", func(sql *db.SQL) *db.SQL { return sql.Where("dbserie_id", "=", value.dbserie_id) })
formList.AddField("Serie_id", "serie_id", db.Integer, form.Number)
formList.AddField("Dbserie_id", "dbserie_id", db.Integer, form.SelectSingle).FieldOptionsFromTable("dbseries", "seriename", "id")
formList.SetTable("serie_episodes").SetTitle("SerieEpisodes").SetDescription("SerieEpisodes")
return serieEpisodes
}