260710_0
This commit is contained in:
@@ -18,18 +18,20 @@ def _role(value: str | None) -> str:
|
||||
|
||||
|
||||
def _stage_from_status(status: str | None) -> tuple[int, int]:
|
||||
value = status or "NEW"
|
||||
if value in {"WF1_ANALYZING", "WF1_FAILED"}:
|
||||
return 1, round(1 / 7 * 100)
|
||||
order = [
|
||||
("FILE_UPLOADED", 1),
|
||||
("WF1", 2),
|
||||
("WF2", 3),
|
||||
("WF3", 4),
|
||||
("WF4", 5),
|
||||
("WF5", 6),
|
||||
("WF6", 7),
|
||||
("WF1_COMPLETE", 2),
|
||||
("WF2_COMPLETE", 3),
|
||||
("WF3_COMPLETE", 4),
|
||||
("WF4_COMPLETE", 5),
|
||||
("WF5_COMPLETE", 6),
|
||||
("WF6_COMPLETE", 7),
|
||||
("DONE", 7),
|
||||
("CONFIRMED", 7),
|
||||
]
|
||||
value = status or "NEW"
|
||||
stage = 0
|
||||
for token, idx in order:
|
||||
if token in value:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { DashboardUser, ProjectItem, Member } from "./B01_Dashboard_Api_Fetch";
|
||||
|
||||
export function canEditProject(user: DashboardUser, project: ProjectItem): boolean {
|
||||
export function canEditProject(user: DashboardUser, _project: ProjectItem): boolean {
|
||||
if (user.role === "SYSTEM_ADMIN") return true;
|
||||
if (user.role === "ADMIN") return user.company_id !== null;
|
||||
return false; // USER는 수정 불가
|
||||
@@ -16,12 +16,12 @@ export function canAddUser(user: DashboardUser): boolean {
|
||||
return user.role === "SYSTEM_ADMIN" || user.role === "ADMIN";
|
||||
}
|
||||
|
||||
export function canChangeRole(user: DashboardUser, targetUser: Member | DashboardUser): boolean {
|
||||
export function canChangeRole(user: DashboardUser, _targetUser: Member | DashboardUser): boolean {
|
||||
// 역할 변경은 오직 SYSTEM_ADMIN만 가능
|
||||
return user.role === "SYSTEM_ADMIN";
|
||||
}
|
||||
|
||||
export function canDeleteUser(user: DashboardUser, targetUser: Member | DashboardUser): boolean {
|
||||
export function canDeleteUser(user: DashboardUser, _targetUser: Member | DashboardUser): boolean {
|
||||
if (user.role === "SYSTEM_ADMIN") return true;
|
||||
// ADMIN은 본인 회사의 멤버만 삭제 가능
|
||||
return user.role === "ADMIN" && user.company_id !== null;
|
||||
@@ -29,7 +29,7 @@ export function canDeleteUser(user: DashboardUser, targetUser: Member | Dashboar
|
||||
|
||||
export function canManageAutomation(
|
||||
user: DashboardUser,
|
||||
projectOrAutomation: ProjectItem | { company_id?: number | null },
|
||||
_projectOrAutomation: ProjectItem | { company_id?: number | null },
|
||||
): boolean {
|
||||
return user.role === "SYSTEM_ADMIN" || (user.role === "ADMIN" && user.company_id !== null);
|
||||
}
|
||||
|
||||
@@ -26,7 +26,6 @@ import {
|
||||
type ProjectItem,
|
||||
type Member,
|
||||
type AutomationItem,
|
||||
type CompanyInfo,
|
||||
} from "./B01_Dashboard_Api_Fetch";
|
||||
|
||||
function L(key: keyof typeof ui_locales): string {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ROUTES } from "@config/config_frontend";
|
||||
import { CURRENT_PROJECT_ID_KEY, ROUTES, type RoutePath } from "@config/config_frontend";
|
||||
import { isBlank } from "@util/common_util_validate";
|
||||
import { navigateTo } from "../A00_Common/router";
|
||||
import { ui_locales, currentLanguageIndex } from "@ui/ui_template_locale";
|
||||
@@ -359,7 +359,7 @@ function projectTable(projects: ProjectItem[], currentUser: DashboardUser): HTML
|
||||
text(project.name),
|
||||
text(project.region),
|
||||
text(`${project.progress_percent}%`),
|
||||
workflow(project.workflow_stage),
|
||||
workflow(project),
|
||||
text(formatDate(project.updated_at)),
|
||||
actCell,
|
||||
];
|
||||
@@ -367,7 +367,8 @@ function projectTable(projects: ProjectItem[], currentUser: DashboardUser): HTML
|
||||
);
|
||||
}
|
||||
|
||||
function workflow(activeStage: number): HTMLElement {
|
||||
function workflow(project: ProjectItem): HTMLElement {
|
||||
const activeStage = project.workflow_stage;
|
||||
const routes: RoutePath[] = [
|
||||
ROUTES.B03_FILE_INPUT,
|
||||
ROUTES.B04_WF1_SURFACE,
|
||||
@@ -388,7 +389,10 @@ function workflow(activeStage: number): HTMLElement {
|
||||
button.disabled = !enabled;
|
||||
if (enabled) {
|
||||
button.classList.add("is-enabled");
|
||||
button.addEventListener("click", () => navigateTo(route));
|
||||
button.addEventListener("click", () => {
|
||||
localStorage.setItem(CURRENT_PROJECT_ID_KEY, project.id);
|
||||
navigateTo(route);
|
||||
});
|
||||
}
|
||||
box.append(button);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user