Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
4343688
Fix package link setting can only list limited repositories
lunny Sep 1, 2025
18a1050
Remove unused file
lunny Sep 1, 2025
f623d68
Merge branch 'main' into lunny/fix_package_link_search_repo
lunny Sep 5, 2025
4c6ef5f
Merge branch 'main' into lunny/fix_package_link_search_repo
lunny Sep 7, 2025
7a7e4ad
Merge branch 'main' into lunny/fix_package_link_search_repo
lunny Sep 8, 2025
538536d
fix
lunny Sep 9, 2025
0b34ff8
Merge branch 'main' into lunny/fix_package_link_search_repo
lunny Sep 9, 2025
3f82970
Merge branch 'lunny/fix_package_link_search_repo' of github.com:lunny…
lunny Sep 9, 2025
d4645fd
improvements
lunny Sep 9, 2025
4146753
Add html escape for repository full name
lunny Sep 9, 2025
c0a2fd3
improvements
lunny Sep 10, 2025
b834153
fix
wxiaoguang Sep 10, 2025
7c62d08
improvements
lunny Sep 10, 2025
f7156c6
Merge branch 'main' into lunny/fix_package_link_search_repo
lunny Sep 10, 2025
fdc0bcd
Merge branch 'lunny/fix_package_link_search_repo' of github.com:lunny…
lunny Sep 10, 2025
1f91aa7
Merge branch 'main' into lunny/fix_package_link_search_repo
lunny Sep 10, 2025
77f022d
Merge branch 'main' into lunny/fix_package_link_search_repo
GiteaBot Sep 10, 2025
0f9ce74
Merge branch 'main' into lunny/fix_package_link_search_repo
GiteaBot Sep 10, 2025
d81cb1e
improvement the package link description
lunny Sep 10, 2025
99603c6
Merge branch 'lunny/fix_package_link_search_repo' of github.com:lunny…
lunny Sep 10, 2025
b004ef5
Merge branch 'main' into lunny/fix_package_link_search_repo
GiteaBot Sep 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 45 additions & 38 deletions routers/web/user/package.go
Original file line number Diff line number Diff line change
Expand Up @@ -447,58 +447,65 @@ func PackageSettings(ctx *context.Context) {

// PackageSettingsPost updates the package settings
func PackageSettingsPost(ctx *context.Context) {
pd := ctx.Package.Descriptor

form := web.GetForm(ctx).(*forms.PackageSettingForm)
switch form.Action {
case "link":
if form.RepoName == "" { // remove the link
if err := packages_model.SetRepositoryLink(ctx, pd.Package.ID, 0); err != nil {
ctx.JSONError(ctx.Tr("packages.settings.unlink.error"))
return
}

ctx.Flash.Success(ctx.Tr("packages.settings.unlink.success"))
ctx.JSONRedirect("")
return
}

repo, err := repo_model.GetRepositoryByName(ctx, pd.Owner.ID, form.RepoName)
if err != nil {
if repo_model.IsErrRepoNotExist(err) {
ctx.JSONError(ctx.Tr("packages.settings.link.repo_not_found", form.RepoName))
} else {
ctx.ServerError("GetRepositoryByOwnerAndName", err)
}
return
}
packageSettingsPostActionLink(ctx, form)
case "delete":
packageSettingsPostActionDelete(ctx)
default:
ctx.NotFound(nil)
}
}

if err := packages_model.SetRepositoryLink(ctx, pd.Package.ID, repo.ID); err != nil {
ctx.JSONError(ctx.Tr("packages.settings.link.error"))
func packageSettingsPostActionLink(ctx *context.Context, form *forms.PackageSettingForm) {
pd := ctx.Package.Descriptor
if form.RepoName == "" { // remove the link
if err := packages_model.SetRepositoryLink(ctx, pd.Package.ID, 0); err != nil {
ctx.JSONError(ctx.Tr("packages.settings.unlink.error"))
return
}

ctx.Flash.Success(ctx.Tr("packages.settings.link.success"))
ctx.Flash.Success(ctx.Tr("packages.settings.unlink.success"))
ctx.JSONRedirect("")
return
case "delete":
err := packages_service.RemovePackageVersion(ctx, ctx.Doer, ctx.Package.Descriptor.Version)
if err != nil {
log.Error("Error deleting package: %v", err)
ctx.Flash.Error(ctx.Tr("packages.settings.delete.error"))
} else {
ctx.Flash.Success(ctx.Tr("packages.settings.delete.success"))
}
}

redirectURL := ctx.Package.Owner.HomeLink() + "/-/packages"
// redirect to the package if there are still versions available
if has, _ := packages_model.ExistVersion(ctx, &packages_model.PackageSearchOptions{PackageID: ctx.Package.Descriptor.Package.ID, IsInternal: optional.Some(false)}); has {
redirectURL = ctx.Package.Descriptor.PackageWebLink()
repo, err := repo_model.GetRepositoryByName(ctx, pd.Owner.ID, form.RepoName)
if err != nil {
if repo_model.IsErrRepoNotExist(err) {
ctx.JSONError(ctx.Tr("packages.settings.link.repo_not_found", form.RepoName))
} else {
ctx.ServerError("GetRepositoryByOwnerAndName", err)
}
return
}

ctx.Redirect(redirectURL)
if err := packages_model.SetRepositoryLink(ctx, pd.Package.ID, repo.ID); err != nil {
ctx.JSONError(ctx.Tr("packages.settings.link.error"))
return
}

ctx.Flash.Success(ctx.Tr("packages.settings.link.success"))
ctx.JSONRedirect("")
}

func packageSettingsPostActionDelete(ctx *context.Context) {
err := packages_service.RemovePackageVersion(ctx, ctx.Doer, ctx.Package.Descriptor.Version)
if err != nil {
log.Error("Error deleting package: %v", err)
ctx.Flash.Error(ctx.Tr("packages.settings.delete.error"))
} else {
ctx.Flash.Success(ctx.Tr("packages.settings.delete.success"))
}

redirectURL := ctx.Package.Owner.HomeLink() + "/-/packages"
// redirect to the package if there are still versions available
if has, _ := packages_model.ExistVersion(ctx, &packages_model.PackageSearchOptions{PackageID: ctx.Package.Descriptor.Package.ID, IsInternal: optional.Some(false)}); has {
redirectURL = ctx.Package.Descriptor.PackageWebLink()
}

ctx.Redirect(redirectURL)
}

// DownloadPackageFile serves the content of a package file
Expand Down
7 changes: 3 additions & 4 deletions web_src/js/features/common-page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {fomanticQuery} from '../modules/fomantic/base.ts';
import {queryElems} from '../utils/dom.ts';
import {registerGlobalInitFunc, registerGlobalSelectorFunc} from '../modules/observer.ts';
import {initAvatarUploaderWithCropper} from './comp/Cropper.ts';
import {initCompSearchRepoBox} from './comp/SearchRepoBox.ts';

const {appUrl} = window.config;

Expand Down Expand Up @@ -77,12 +78,10 @@ export function initGlobalDropdown() {
});
}

export function initGlobalTabularMenu() {
export function initGlobalComponent() {
fomanticQuery('.ui.menu.tabular:not(.custom) .item').tab();
}

export function initGlobalAvatarUploader() {
registerGlobalInitFunc('initAvatarUploader', initAvatarUploaderWithCropper);
registerGlobalInitFunc('initSearchRepoBox', initCompSearchRepoBox);
}

// for performance considerations, it only uses performant syntax
Expand Down
8 changes: 3 additions & 5 deletions web_src/js/features/comp/SearchRepoBox.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@ import {htmlEscape} from '../../utils/html.ts';

const {appSubUrl} = window.config;

export function initCompSearchRepoBox(elSearchRepoBox: HTMLElement) {
const uid = elSearchRepoBox.getAttribute('data-uid');

const $searchRepoBox = fomanticQuery(elSearchRepoBox);
$searchRepoBox.search({
export function initCompSearchRepoBox(el: HTMLElement) {
const uid = el.getAttribute('data-uid');
fomanticQuery(el).search({
minCharacters: 2,
apiSettings: {
url: `${appSubUrl}/repo/search?q={query}&uid=${uid}`,
Expand Down
3 changes: 0 additions & 3 deletions web_src/js/features/org-team.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import {queryElems, toggleElem} from '../utils/dom.ts';
import {initCompSearchRepoBox} from './comp/SearchRepoBox.ts';
import {registerGlobalInitFunc} from '../modules/observer.ts';

function initOrgTeamSettings() {
// on the page "page-content organization new team"
Expand All @@ -16,5 +14,4 @@ function initOrgTeamSettings() {
export function initOrgTeam() {
if (!document.querySelector('.page-content.organization')) return;
initOrgTeamSettings();
registerGlobalInitFunc('initSearchRepoBox', initCompSearchRepoBox);
}
6 changes: 0 additions & 6 deletions web_src/js/features/package-setting.ts

This file was deleted.

8 changes: 2 additions & 6 deletions web_src/js/index-domready.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,22 +61,20 @@ import {initColorPickers} from './features/colorpicker.ts';
import {initAdminSelfCheck} from './features/admin/selfcheck.ts';
import {initOAuth2SettingsDisableCheckbox} from './features/oauth2-settings.ts';
import {initGlobalFetchAction} from './features/common-fetch-action.ts';
import {initFootLanguageMenu, initGlobalAvatarUploader, initGlobalDropdown, initGlobalInput, initGlobalTabularMenu, initHeadNavbarContentToggle} from './features/common-page.ts';
import {initFootLanguageMenu, initGlobalComponent, initGlobalDropdown, initGlobalInput, initHeadNavbarContentToggle} from './features/common-page.ts';
import {initGlobalButtonClickOnEnter, initGlobalButtons, initGlobalDeleteButton} from './features/common-button.ts';
import {initGlobalComboMarkdownEditor, initGlobalEnterQuickSubmit, initGlobalFormDirtyLeaveConfirm} from './features/common-form.ts';
import {callInitFunctions} from './modules/init.ts';
import {initRepoViewFileTree} from './features/repo-view-file-tree.ts';
import {initPackageSettings} from './features/package-setting.ts';

const initStartTime = performance.now();
const initPerformanceTracer = callInitFunctions([
initHtmx,
initSubmitEventPolyfill,
initGiteaFomantic,

initGlobalAvatarUploader,
initGlobalComponent,
initGlobalDropdown,
initGlobalTabularMenu,
initGlobalFetchAction,
initGlobalTooltips,
initGlobalButtonClickOnEnter,
Expand Down Expand Up @@ -164,8 +162,6 @@ const initPerformanceTracer = callInitFunctions([

initOAuth2SettingsDisableCheckbox,

initPackageSettings,

initRepoFileView,
]);

Expand Down