From 307e267aea9f6ed8309c39a97dcb0d7eb115b8cd Mon Sep 17 00:00:00 2001 From: Arthur Zamarin Date: Mon, 8 Jul 2024 21:57:14 +0300 Subject: app/preferences: remove general Signed-off-by: Arthur Zamarin --- assets/pgo3.png | Bin 88662 -> 0 bytes assets/pgo4.png | Bin 83701 -> 0 bytes pkg/app/handler/index/index.templ | 31 +++-------- pkg/app/handler/index/utils.go | 50 ------------------ pkg/app/handler/packages/show.go | 45 ---------------- pkg/app/handler/user/general.templ | 91 --------------------------------- pkg/app/handler/user/preferences.templ | 30 ----------- pkg/app/serve.go | 5 -- pkg/app/utils/userdata.go | 14 ++--- pkg/models/userpreferences.go | 16 ------ 10 files changed, 9 insertions(+), 273 deletions(-) delete mode 100644 assets/pgo3.png delete mode 100644 assets/pgo4.png delete mode 100644 pkg/app/handler/user/general.templ diff --git a/assets/pgo3.png b/assets/pgo3.png deleted file mode 100644 index f50db9f..0000000 Binary files a/assets/pgo3.png and /dev/null differ diff --git a/assets/pgo4.png b/assets/pgo4.png deleted file mode 100644 index 055d9ea..0000000 Binary files a/assets/pgo4.png and /dev/null differ diff --git a/pkg/app/handler/index/index.templ b/pkg/app/handler/index/index.templ index 98101cb..3da465b 100644 --- a/pkg/app/handler/index/index.templ +++ b/pkg/app/handler/index/index.templ @@ -43,15 +43,11 @@ templ header(packageCount int) { } -templ packagesList(addedPackages []packageInfo, landingPage string) { +templ packagesList(addedPackages []packageInfo) {

- if landingPage == "classic" { - Added Packages - } else { - Search History - } + Added Packages

@@ -67,9 +63,6 @@ templ packagesList(addedPackages []packageInfo, landingPage string) { { pkg.Description } } - if landingPage == "full" && len(addedPackages) == 0 { - Visited packages will be displayed here in future - }
@@ -77,18 +70,18 @@ templ packagesList(addedPackages []packageInfo, landingPage string) {
} -templ page(packageCount int, addedPackages []packageInfo, updatedVersions []*models.Version, userPreferences models.UserPreferences) { +templ page(packageCount int) {
@header(packageCount) - @packagesList(addedPackages, userPreferences.General.LandingPageLayout) + @packagesList(getAddedPackages(10))

Updated Packages

    - @utils.ChangedVersionsTable(updatedVersions) + @utils.ChangedVersionsTable(getUpdatedVersions(10))
@@ -99,17 +92,5 @@ templ page(packageCount int, addedPackages []packageInfo, updatedVersions []*mod // Show renders a template to show the landing page of the application func Show(w http.ResponseWriter, r *http.Request) { count, _ := database.DBCon.Model((*models.Package)(nil)).Count() - - var packagesList []packageInfo - if utils.GetUserPreferences(r).General.LandingPageLayout == "classic" { - packagesList = getAddedPackages(10) - } else { - packagesList = getSearchHistoryPackages(r) - } - - updatedVersions := getUpdatedVersions(10) - - layout.Layout("", layout.Home, page( - count, packagesList, updatedVersions, utils.GetUserPreferences(r), - )).Render(r.Context(), w) + layout.Layout("", layout.Home, page(count)).Render(r.Context(), w) } diff --git a/pkg/app/handler/index/utils.go b/pkg/app/handler/index/utils.go index f524058..3d92e40 100644 --- a/pkg/app/handler/index/utils.go +++ b/pkg/app/handler/index/utils.go @@ -3,13 +3,9 @@ package index import ( - b64 "encoding/base64" - "net/http" - "slices" "soko/pkg/database" "soko/pkg/models" "strconv" - "strings" "github.com/go-pg/pg/v10" ) @@ -39,52 +35,6 @@ func getAddedPackages(n int) (packages []packageInfo) { return } -func getSearchHistoryPackages(r *http.Request) (packages []packageInfo) { - cookie, err := r.Cookie("search_history") - if err != nil { - return nil - } - packagesList := getSearchHistoryFromCookie(cookie) - - descriptionQuery := database.DBCon.Model((*models.Version)(nil)). - Column("description"). - Where("atom = package.atom"). - Limit(1) - err = database.DBCon.Model((*models.Package)(nil)). - Column("name", "category"). - ColumnExpr("(?) AS description", descriptionQuery). - Where("atom in (?)", pg.In(packagesList)). - Select(&packages) - if err != nil { - return nil - } - - return getSortedSearchHistory(packagesList, packages) -} - -func getSortedSearchHistory(sortedPackagesList []string, packagesList []packageInfo) (result []packageInfo) { - for _, gpackage := range sortedPackagesList { - for _, gpackageObject := range packagesList { - if gpackageObject.Category+"/"+gpackageObject.Name == gpackage { - result = append(result, gpackageObject) - } - } - } - slices.Reverse(result) - return -} - -func getSearchHistoryFromCookie(cookie *http.Cookie) (packagesList []string) { - cookieValue, err := b64.StdEncoding.DecodeString(cookie.Value) - if err == nil { - packagesList = strings.Split(string(cookieValue), ",") - if len(packagesList) > 10 { - packagesList = packagesList[len(packagesList)-10:] - } - } - return -} - // getUpdatedVersions returns a list of a // given number of recently updated Versions func getUpdatedVersions(n int) []*models.Version { diff --git a/pkg/app/handler/packages/show.go b/pkg/app/handler/packages/show.go index feaa14f..6e92b91 100644 --- a/pkg/app/handler/packages/show.go +++ b/pkg/app/handler/packages/show.go @@ -3,12 +3,10 @@ package packages import ( - b64 "encoding/base64" "encoding/json" "fmt" "net/http" "soko/pkg/app/layout" - "soko/pkg/app/utils" "soko/pkg/database" "soko/pkg/models" "strings" @@ -31,11 +29,6 @@ func Show(w http.ResponseWriter, r *http.Request) { var currentSubTab string - userPreferences := utils.GetUserPreferences(r) - if userPreferences.General.LandingPageLayout == "full" { - updateSearchHistory(atom, w, r) - } - var gpackage models.Package query := database.DBCon.Model(&gpackage). Relation("Bugs"). @@ -116,46 +109,8 @@ func Show(w http.ResponseWriter, r *http.Request) { layout.Layout(gpackage.Atom, layout.Packages, show(&gpackage, currentSubTab)).Render(r.Context(), w) } -func updateSearchHistory(atom string, w http.ResponseWriter, r *http.Request) { - cookie, err := r.Cookie("search_history") - var packages string - if err == nil { - cookieValue, err := b64.StdEncoding.DecodeString(cookie.Value) - if err == nil { - packagesList := strings.Split(string(cookieValue), ",") - if strings.Contains(string(cookieValue), atom) { - newPackagesList := make([]string, 0, len(packagesList)-1) - for _, gpackage := range packagesList { - if gpackage != atom { - newPackagesList = append(newPackagesList, gpackage) - } - } - packagesList = newPackagesList - } - packagesList = append(packagesList, atom) - if len(packagesList) > 10 { - packagesList = packagesList[len(packagesList)-10:] - } - packages = strings.Join(packagesList, ",") - } else { - packages = atom - } - } else { - packages = atom - } - - updatedCookie := http.Cookie{ - Name: "search_history", - Path: "/", - Value: b64.StdEncoding.EncodeToString([]byte(packages)), - Expires: time.Now().Add(365 * 24 * time.Hour), - } - http.SetCookie(w, &updatedCookie) -} - // changelog renders a json version of the changelog func changelogJSON(w http.ResponseWriter, r *http.Request) { - atom := getAtom(r) gpackage := new(models.Package) err := database.DBCon.Model(gpackage). diff --git a/pkg/app/handler/user/general.templ b/pkg/app/handler/user/general.templ deleted file mode 100644 index ee6d688..0000000 --- a/pkg/app/handler/user/general.templ +++ /dev/null @@ -1,91 +0,0 @@ -package user - -import ( - "encoding/base64" - "encoding/json" - "net/http" - "soko/pkg/app/utils" - "soko/pkg/models" - "time" -) - -templ general(preferences models.GeneralPreferences) { -
-
-
-
-
- Recently Added Packages (default) -
-
-
-
- - -
-
-
-
-
-
- Recently Visited Packages -
-
-
-
- - -
-
-
-
- - Reset to Defaults -
-
-
- -} - -func General(w http.ResponseWriter, r *http.Request) { - userPreferences := utils.GetUserPreferences(r) - r.ParseForm() - // landing page layout - layout := r.Form.Get("landingpage-layout") - if layout == "classic" || layout == "full" { - userPreferences.General.LandingPageLayout = layout - } - // store cookie - encodedUserPreferences, err := json.Marshal(&userPreferences.General) - if err == nil { - sEnc := base64.StdEncoding.EncodeToString(encodedUserPreferences) - addCookie(w, "userpref_general", "/", sEnc, 365*24*time.Hour) - } - http.Redirect(w, r, "/user/preferences/general", http.StatusSeeOther) -} - -func ResetGeneral(w http.ResponseWriter, r *http.Request) { - userPreferences := utils.GetDefaultUserPreferences() - encodedUserPreferences, err := json.Marshal(&userPreferences.General) - if err == nil { - sEnc := base64.StdEncoding.EncodeToString(encodedUserPreferences) - addCookie(w, "userpref_general", "/", sEnc, 365*24*time.Hour) - } - http.Redirect(w, r, "/user/preferences/general", http.StatusSeeOther) -} diff --git a/pkg/app/handler/user/preferences.templ b/pkg/app/handler/user/preferences.templ index 01805e2..0eb7e4a 100644 --- a/pkg/app/handler/user/preferences.templ +++ b/pkg/app/handler/user/preferences.templ @@ -10,16 +10,6 @@ import ( ) var viewTabs = []layout.SubTab{ - { - Name: "General", - Link: "/user/preferences/general", - Icon: "fa fa-globe mr-1", - }, - { - Name: "Packages", - Link: "/user/preferences/packages", - Icon: "fa fa-cube mr-1", - }, { Name: "Maintainers", Link: "/user/preferences/maintainers", @@ -30,8 +20,6 @@ var viewTabs = []layout.SubTab{ templ show(currentSubTab string, preferences models.UserPreferences) {
switch currentSubTab { - case "General": - @general(preferences.General) case "Maintainers": @maintainers(preferences.Maintainers) } @@ -39,24 +27,6 @@ templ show(currentSubTab string, preferences models.UserPreferences) { } -templ sortableScript() { - - -} - func Preferences(currentSubTab string) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { layout.TabbedLayout("User", layout.About, "Preferences", "fa fa-fw fa-cog", "You can customize the page contents to your needs here", viewTabs, diff --git a/pkg/app/serve.go b/pkg/app/serve.go index a33668e..1b54af7 100644 --- a/pkg/app/serve.go +++ b/pkg/app/serve.go @@ -113,13 +113,8 @@ func Serve() { redirect("GET /user", "/user/preferences/general") redirect("GET /user/preferences", "/user/preferences/general") - setRoute("GET /user/preferences/general", user.Preferences("General")) - setRoute("GET /user/preferences/packages", user.Preferences("Packages")) setRoute("GET /user/preferences/maintainers", user.Preferences("Maintainers")) - setRoute("/user/preferences/general/layout", user.General) - setRoute("/user/preferences/general/reset", user.ResetGeneral) - setRoute("/user/preferences/maintainers/edit", user.Maintainers) setRoute("/user/preferences/maintainers/reset", user.ResetMaintainers) diff --git a/pkg/app/utils/userdata.go b/pkg/app/utils/userdata.go index 13874f8..13f9973 100644 --- a/pkg/app/utils/userdata.go +++ b/pkg/app/utils/userdata.go @@ -14,15 +14,7 @@ func GetDefaultUserPreferences() models.UserPreferences { func GetUserPreferences(r *http.Request) models.UserPreferences { userPreferences := models.GetDefaultUserPreferences() - var cookie, err = r.Cookie("userpref_general") - if err == nil { - cookieValue, err := b64.StdEncoding.DecodeString(cookie.Value) - if err == nil { - json.Unmarshal(cookieValue, &userPreferences.General) - } - } - - cookie, err = r.Cookie("userpref_maintainers") + cookie, err := r.Cookie("userpref_maintainers") if err == nil { cookieValue, err := b64.StdEncoding.DecodeString(cookie.Value) if err == nil { @@ -30,11 +22,11 @@ func GetUserPreferences(r *http.Request) models.UserPreferences { } } + // old cookie: search_history + // old cookie: userpref_general // old cookie: userpref_packages // old cookie: userpref_useflags // old cookie: userpref_arches - userPreferences.Sanitize() - return userPreferences } diff --git a/pkg/models/userpreferences.go b/pkg/models/userpreferences.go index 0db7107..ed133c7 100644 --- a/pkg/models/userpreferences.go +++ b/pkg/models/userpreferences.go @@ -3,14 +3,9 @@ package models type UserPreferences struct { - General GeneralPreferences Maintainers MaintainersPreferences } -type GeneralPreferences struct { - LandingPageLayout string -} - type MaintainersPreferences struct { IncludeProjectPackages bool ExcludedProjects []string @@ -21,21 +16,10 @@ var AllArches = [...]string{"alpha", "amd64", "arm", "arm64", "hppa", "ia64", "m func GetDefaultUserPreferences() UserPreferences { userPreferences := UserPreferences{} - userPreferences.General = GeneralPreferences{} userPreferences.Maintainers = MaintainersPreferences{} - userPreferences.General.LandingPageLayout = "classic" - userPreferences.Maintainers.IncludeProjectPackages = false userPreferences.Maintainers.ExcludedProjects = []string{} return userPreferences } - -func (u *UserPreferences) Sanitize() { - defaultUserPreferences := GetDefaultUserPreferences() - - if !(u.General.LandingPageLayout == "classic" || u.General.LandingPageLayout == "full") { - u.General.LandingPageLayout = defaultUserPreferences.General.LandingPageLayout - } -} -- cgit v1.2.3-65-gdbad