@@ -447,58 +447,65 @@ func PackageSettings(ctx *context.Context) {
447447
448448// PackageSettingsPost updates the package settings
449449func PackageSettingsPost (ctx * context.Context ) {
450- pd := ctx .Package .Descriptor
451-
452450 form := web .GetForm (ctx ).(* forms.PackageSettingForm )
453451 switch form .Action {
454452 case "link" :
455- if form .RepoName == "" { // remove the link
456- if err := packages_model .SetRepositoryLink (ctx , pd .Package .ID , 0 ); err != nil {
457- ctx .JSONError (ctx .Tr ("packages.settings.unlink.error" ))
458- return
459- }
460-
461- ctx .Flash .Success (ctx .Tr ("packages.settings.unlink.success" ))
462- ctx .JSONRedirect ("" )
463- return
464- }
465-
466- repo , err := repo_model .GetRepositoryByName (ctx , pd .Owner .ID , form .RepoName )
467- if err != nil {
468- if repo_model .IsErrRepoNotExist (err ) {
469- ctx .JSONError (ctx .Tr ("packages.settings.link.repo_not_found" , form .RepoName ))
470- } else {
471- ctx .ServerError ("GetRepositoryByOwnerAndName" , err )
472- }
473- return
474- }
453+ packageSettingsPostActionLink (ctx , form )
454+ case "delete" :
455+ packageSettingsPostActionDelete (ctx )
456+ default :
457+ ctx .NotFound (nil )
458+ }
459+ }
475460
476- if err := packages_model .SetRepositoryLink (ctx , pd .Package .ID , repo .ID ); err != nil {
477- ctx .JSONError (ctx .Tr ("packages.settings.link.error" ))
461+ func packageSettingsPostActionLink (ctx * context.Context , form * forms.PackageSettingForm ) {
462+ pd := ctx .Package .Descriptor
463+ if form .RepoName == "" { // remove the link
464+ if err := packages_model .SetRepositoryLink (ctx , pd .Package .ID , 0 ); err != nil {
465+ ctx .JSONError (ctx .Tr ("packages.settings.unlink.error" ))
478466 return
479467 }
480468
481- ctx .Flash .Success (ctx .Tr ("packages.settings.link .success" ))
469+ ctx .Flash .Success (ctx .Tr ("packages.settings.unlink .success" ))
482470 ctx .JSONRedirect ("" )
483471 return
484- case "delete" :
485- err := packages_service .RemovePackageVersion (ctx , ctx .Doer , ctx .Package .Descriptor .Version )
486- if err != nil {
487- log .Error ("Error deleting package: %v" , err )
488- ctx .Flash .Error (ctx .Tr ("packages.settings.delete.error" ))
489- } else {
490- ctx .Flash .Success (ctx .Tr ("packages.settings.delete.success" ))
491- }
472+ }
492473
493- redirectURL := ctx .Package .Owner .HomeLink () + "/-/packages"
494- // redirect to the package if there are still versions available
495- if has , _ := packages_model .ExistVersion (ctx , & packages_model.PackageSearchOptions {PackageID : ctx .Package .Descriptor .Package .ID , IsInternal : optional .Some (false )}); has {
496- redirectURL = ctx .Package .Descriptor .PackageWebLink ()
474+ repo , err := repo_model .GetRepositoryByName (ctx , pd .Owner .ID , form .RepoName )
475+ if err != nil {
476+ if repo_model .IsErrRepoNotExist (err ) {
477+ ctx .JSONError (ctx .Tr ("packages.settings.link.repo_not_found" , form .RepoName ))
478+ } else {
479+ ctx .ServerError ("GetRepositoryByOwnerAndName" , err )
497480 }
481+ return
482+ }
498483
499- ctx .Redirect (redirectURL )
484+ if err := packages_model .SetRepositoryLink (ctx , pd .Package .ID , repo .ID ); err != nil {
485+ ctx .JSONError (ctx .Tr ("packages.settings.link.error" ))
500486 return
501487 }
488+
489+ ctx .Flash .Success (ctx .Tr ("packages.settings.link.success" ))
490+ ctx .JSONRedirect ("" )
491+ }
492+
493+ func packageSettingsPostActionDelete (ctx * context.Context ) {
494+ err := packages_service .RemovePackageVersion (ctx , ctx .Doer , ctx .Package .Descriptor .Version )
495+ if err != nil {
496+ log .Error ("Error deleting package: %v" , err )
497+ ctx .Flash .Error (ctx .Tr ("packages.settings.delete.error" ))
498+ } else {
499+ ctx .Flash .Success (ctx .Tr ("packages.settings.delete.success" ))
500+ }
501+
502+ redirectURL := ctx .Package .Owner .HomeLink () + "/-/packages"
503+ // redirect to the package if there are still versions available
504+ if has , _ := packages_model .ExistVersion (ctx , & packages_model.PackageSearchOptions {PackageID : ctx .Package .Descriptor .Package .ID , IsInternal : optional .Some (false )}); has {
505+ redirectURL = ctx .Package .Descriptor .PackageWebLink ()
506+ }
507+
508+ ctx .Redirect (redirectURL )
502509}
503510
504511// DownloadPackageFile serves the content of a package file
0 commit comments