diff --git a/database/mysqldal.go b/database/mysqldal.go index 68d9a0e..6d14cf2 100644 --- a/database/mysqldal.go +++ b/database/mysqldal.go @@ -3,6 +3,7 @@ package database import ( "context" "database/sql" + "encoding/json" "fmt" "strings" "time" @@ -388,15 +389,25 @@ func (d *mysqlDAL) StoreCurationMeta(dbs DBSession, cm *types.CurationMeta) erro empty := "" cm.RuffleSupport = &empty } - _, err := dbs.Tx().ExecContext(dbs.Ctx(), `INSERT INTO curation_meta (fk_submission_file_id, application_path, developer, extreme, game_notes, languages, + + var additionalApps []byte + var err error + if cm.AdditionalApps != nil { + additionalApps, err = json.Marshal(cm.AdditionalApps) + if err != nil { + return err + } + } + + _, err = dbs.Tx().ExecContext(dbs.Ctx(), `INSERT INTO curation_meta (fk_submission_file_id, application_path, developer, extreme, game_notes, languages, launch_command, original_description, play_mode, platform, publisher, release_date, series, source, status, tags, tag_categories, title, alternate_titles, library, version, curation_notes, mount_parameters, uuid, game_exists, - primary_platform, ruffle_support) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, + primary_platform, ruffle_support, additional_applications) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, cm.SubmissionFileID, cm.ApplicationPath, cm.Developer, cm.Extreme, cm.GameNotes, cm.Languages, cm.LaunchCommand, cm.OriginalDescription, cm.PlayMode, cm.Platform, cm.Publisher, cm.ReleaseDate, cm.Series, cm.Source, cm.Status, cm.Tags, cm.TagCategories, cm.Title, cm.AlternateTitles, cm.Library, cm.Version, cm.CurationNotes, cm.MountParameters, cm.UUID, cm.GameExists, - cm.PrimaryPlatform, cm.RuffleSupport) + cm.PrimaryPlatform, cm.RuffleSupport, additionalApps) return err } @@ -405,19 +416,27 @@ func (d *mysqlDAL) GetCurationMetaBySubmissionFileID(dbs DBSession, sfid int64) row := dbs.Tx().QueryRowContext(dbs.Ctx(), `SELECT submission_file.fk_submission_id, application_path, developer, extreme, game_notes, languages, launch_command, original_description, play_mode, platform, publisher, release_date, series, source, status, tags, tag_categories, title, alternate_titles, library, version, curation_notes, mount_parameters, uuid, game_exists, - primary_platform, ruffle_support + primary_platform, ruffle_support, additional_applications FROM curation_meta JOIN submission_file ON curation_meta.fk_submission_file_id = submission_file.id WHERE fk_submission_file_id=? AND submission_file.deleted_at IS NULL`, sfid) c := &types.CurationMeta{SubmissionFileID: sfid} + var additionalApps []byte err := row.Scan(&c.SubmissionID, &c.ApplicationPath, &c.Developer, &c.Extreme, &c.GameNotes, &c.Languages, &c.LaunchCommand, &c.OriginalDescription, &c.PlayMode, &c.Platform, &c.Publisher, &c.ReleaseDate, &c.Series, &c.Source, &c.Status, &c.Tags, &c.TagCategories, &c.Title, &c.AlternateTitles, &c.Library, &c.Version, &c.CurationNotes, &c.MountParameters, &c.UUID, &c.GameExists, - &c.PrimaryPlatform, &c.RuffleSupport) + &c.PrimaryPlatform, &c.RuffleSupport, &additionalApps) if err != nil { return nil, err } + if additionalApps != nil { + err = json.Unmarshal(additionalApps, &c.AdditionalApps) + if err != nil { + return nil, err + } + } + return c, nil } diff --git a/migrations/0025_add_additional_apps.down.sql b/migrations/0025_add_additional_apps.down.sql new file mode 100644 index 0000000..412634b --- /dev/null +++ b/migrations/0025_add_additional_apps.down.sql @@ -0,0 +1 @@ +ALTER TABLE curation_meta DROP COLUMN additional_applications; diff --git a/migrations/0025_add_additional_apps.up.sql b/migrations/0025_add_additional_apps.up.sql new file mode 100644 index 0000000..2a5b717 --- /dev/null +++ b/migrations/0025_add_additional_apps.up.sql @@ -0,0 +1 @@ +ALTER TABLE curation_meta ADD COLUMN additional_applications JSON; diff --git a/templates/submission.gohtml b/templates/submission.gohtml index 440fcbf..a2287ee 100644 --- a/templates/submission.gohtml +++ b/templates/submission.gohtml @@ -507,7 +507,14 @@ Additional Applications - --Not Implemented-- + {{if not .CurationMeta.AdditionalApps}}No Additional Applications{{else}} + {{range $i, $app := .CurationMeta.AdditionalApps}}{{if gt $i 0}} +
{{end}} + Heading: {{unpointify $app.Heading}}
+ Application Path: {{unpointify $app.ApplicationPath}}
+ Launch Command: {{unpointify $app.LaunchCommand}} + {{end}} + {{end}}