/
movie_histories.go
155 lines (141 loc) · 7.62 KB
/
movie_histories.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
151
152
153
154
155
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/types"
"github.com/GoAdminGroup/go-admin/template/types/form"
)
func GetMovieHistoriesTable(ctx *context.Context) table.Table {
movieHistories := table.NewDefaultTable(table.DefaultConfigWithDriverAndConnection("sqlite", "media"))
detail := movieHistories.GetDetail().HideFilterArea()
detail.AddField("Id", "id", db.Integer).
FieldFilterable()
//detail.AddField("Created_at", "created_at", db.Datetime)
//detail.AddField("Updated_at", "updated_at", db.Datetime)
detail.AddField("Title", "title", db.Text)
detail.AddField("Url", "url", db.Text)
detail.AddField("Indexer", "indexer", db.Text)
detail.AddField("Type", "type", db.Text)
detail.AddField("Target", "target", db.Text)
detail.AddField("Downloaded_at", "downloaded_at", db.Datetime) //.FieldDate("YYYY-MM-dd HH:mm")
detail.AddField("Blacklisted", "blacklisted", db.Numeric)
detail.AddField("Quality_profile", "quality_profile", db.Text)
detail.AddField("Resolution", "name", db.Text).FieldJoin(types.Join{
BaseTable: "movie_histories",
TableAlias: "reso",
Field: "resolution_id",
Table: "qualities",
JoinField: "id",
})
detail.AddField("Quality", "name", db.Text).FieldJoin(types.Join{
BaseTable: "movie_histories",
TableAlias: "qual",
Field: "quality_id",
JoinField: "id",
Table: "qualities",
})
detail.AddField("Codec", "name", db.Text).FieldJoin(types.Join{
BaseTable: "movie_histories",
TableAlias: "codec",
Field: "codec_id",
JoinField: "id",
Table: "qualities",
})
detail.AddField("Audio", "name", db.Text).FieldJoin(types.Join{
BaseTable: "movie_histories",
Field: "audio_id",
JoinField: "id",
Table: "qualities",
})
detail.AddField("Listname", "listname", db.Text).FieldJoin(types.Join{
BaseTable: "movie_histories",
Field: "movie_id",
JoinField: "id",
Table: "movies",
})
detail.AddField("Movie Title", "title", db.Text).FieldJoin(types.Join{
BaseTable: "movie_histories",
Field: "dbmovie_id",
Table: "dbmovies",
JoinField: "id",
})
detail.AddField("Dbmovie_id", "dbmovie_id", db.Integer).FieldDisplay(func(value types.FieldModel) any {
return template.Default().
Link().
SetURL("/admin/info/dbmovies/detail?__goadmin_detail_pk=" + value.Value).
SetContent(template2.HTML(value.Value)).
OpenInNewTab().
SetTabTitle(template.HTML("Movie Detail(" + value.Value + ")")).
GetContent()
})
detail.SetTable("movie_histories").SetTitle("MovieHistories").SetDescription("MovieHistories")
info := movieHistories.GetInfo().HideFilterArea()
info.HideNewButton()
info.AddField("Id", "id", db.Integer).
FieldSortable()
//info.AddField("Created_at", "created_at", db.Datetime)
//info.AddField("Updated_at", "updated_at", db.Datetime)
info.AddField("Title", "title", db.Text).FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike}).FieldSortable()
// info.AddField("Url", "url", db.Text)
info.AddField("Indexer", "indexer", db.Text).FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike}).FieldSortable()
// info.AddField("Type", "type", db.Text)
// info.AddField("Target", "target", db.Text)
info.AddField("Downloaded_at", "downloaded_at", db.Datetime).FieldSortable().FieldFilterable(types.FilterType{FormType: form.DatetimeRange})
// info.AddField("Blacklisted", "blacklisted", db.Numeric)
info.AddField("Quality_profile", "quality_profile", db.Text).FieldFilterable(types.FilterType{FormType: form.SelectSingle}).FieldFilterOptionsFromTable("movies", "quality_profile", "quality_profile", func(sql *db.SQL) *db.SQL { return sql.GroupBy("quality_profile") }).FieldFilterOptionExt(map[string]any{"allowClear": true}).FieldSortable()
// info.AddField("Resolution_id", "resolution_id", db.Integer)
// info.AddField("Quality_id", "quality_id", db.Integer)
// info.AddField("Codec_id", "codec_id", db.Integer)
// info.AddField("Audio_id", "audio_id", db.Integer)
info.AddField("List", "listname", db.Text).FieldJoin(types.Join{
BaseTable: "movie_histories",
Field: "movie_id",
JoinField: "id",
Table: "movies",
}).FieldFilterable(types.FilterType{FormType: form.SelectSingle}).FieldFilterOptionsFromTable("movies", "listname", "listname", func(sql *db.SQL) *db.SQL { return sql.GroupBy("listname") }).FieldFilterOptionExt(map[string]any{"allowClear": true}).FieldSortable()
info.AddField("Movie Title", "title", db.Text).FieldJoin(types.Join{
BaseTable: "movie_histories",
Field: "dbmovie_id",
Table: "dbmovies",
JoinField: "id",
}).FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike}).FieldSortable()
info.AddField("Dbmovie_id", "dbmovie_id", db.Integer).FieldDisplay(func(value types.FieldModel) any {
return template.Default().
Link().
SetURL("/admin/info/dbmovies/detail?__goadmin_detail_pk=" + value.Value).
SetContent(template2.HTML(value.Value)).
OpenInNewTab().
SetTabTitle(template.HTML("Movie Detail(" + value.Value + ")")).
GetContent()
})
info.SetTable("movie_histories").SetTitle("MovieHistories").SetDescription("MovieHistories")
formList := movieHistories.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("Title", "title", db.Text, form.Text)
formList.AddField("Url", "url", db.Text, form.Text)
formList.AddField("Indexer", "indexer", db.Text, form.Text)
formList.AddField("Type", "type", db.Text, form.Text)
formList.AddField("Target", "target", db.Text, form.Text)
formList.AddField("Downloaded_at", "downloaded_at", 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_profile", "quality_profile", db.Text, form.SelectSingle).FieldOptionsFromTable("movies", "quality_profile", "quality_profile", func(sql *db.SQL) *db.SQL { return sql.GroupBy("quality_profile").Select("quality_profile") })
formList.AddField("Resolution", "resolution_id", db.Integer, form.SelectSingle).FieldOptionsFromTable("qualities", "name", "id", func(sql *db.SQL) *db.SQL { return sql.Where("type", "=", "1") })
formList.AddField("Quality", "quality_id", db.Integer, form.SelectSingle).FieldOptionsFromTable("qualities", "name", "id", func(sql *db.SQL) *db.SQL { return sql.Where("type", "=", "2") })
formList.AddField("Codec", "codec_id", db.Integer, form.SelectSingle).FieldOptionsFromTable("qualities", "name", "id", func(sql *db.SQL) *db.SQL { return sql.Where("type", "=", "3") })
formList.AddField("Audio", "audio_id", db.Integer, form.SelectSingle).FieldOptionsFromTable("qualities", "name", "id", func(sql *db.SQL) *db.SQL { return sql.Where("type", "=", "4") })
//formList.AddField("Movie", "movie_id", db.Integer, form.SelectSingle).FieldOptionsFromTable("movies", "title", "movies.id", func(sql *db.SQL) *db.SQL {
// return sql.LeftJoin("dbmovies", "dbmovies.id", "=", "movies.dbmovie_id")
// })
formList.AddField("Movie_id", "movie_id", db.Integer, form.Number)
formList.AddField("Dbmovie_id", "dbmovie_id", db.Integer, form.SelectSingle).FieldOptionsFromTable("dbmovies", "title", "id")
formList.SetTable("movie_histories").SetTitle("MovieHistories").SetDescription("MovieHistories")
return movieHistories
}