Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 21c7da7

Browse files
Merge pull request #1175 from lowcoder-org/concurrency-user-display
Concurrency user display
2 parents 750e6ca + 975bcf8 commit 21c7da7

File tree

20 files changed

+347
-44
lines changed

20 files changed

+347
-44
lines changed

‎.gitignore‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ application-dev-localhost.yaml
1717
.vscode/launch.json
1818
server/api-service/lowcoder-server/src/main/resources/application-local-dev.yaml
1919
translations/locales/node_modules/
20+
.vscode/settings.json

‎.vscode/settings.json‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
"titleBar.activeBackground": "#3B431A",
55
"titleBar.activeForeground": "#F9FAF2"
66
},
7-
"java.debug.settings.onBuildFailureProceed": true
7+
"java.debug.settings.onBuildFailureProceed": true,
8+
"java.configuration.updateBuildConfiguration": "automatic"
89
}

‎client/packages/lowcoder/src/api/applicationApi.ts‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
PublishApplicationPayload,
1010
RecycleApplicationPayload,
1111
RestoreApplicationPayload,
12+
SetAppEditingStatePayload,
1213
UpdateAppPermissionPayload,
1314
} from "redux/reduxActions/applicationActions";
1415
import { ApiResponse, GenericApiResponse } from "./apiResponses";
@@ -96,7 +97,7 @@ class ApplicationApi extends Api {
9697
static publicToAllURL = (applicationId: string) => `/applications/${applicationId}/public-to-all`;
9798
static publicToMarketplaceURL = (applicationId: string) => `/applications/${applicationId}/public-to-marketplace`;
9899
static getMarketplaceAppURL = (applicationId: string) => `/applications/${applicationId}/view_marketplace`;
99-
100+
staticsetAppEditingStateURL=(applicationId: string)=>`/applications/editState/${applicationId}`;
100101

101102
static fetchHomeData(request: HomeDataPayload): AxiosPromise<HomeDataResponse> {
102103
return Api.get(ApplicationApi.fetchHomeDataURL, request);
@@ -232,6 +233,13 @@ class ApplicationApi extends Api {
232233
static getMarketplaceApp(appId: string) {
233234
return Api.get(ApplicationApi.getMarketplaceAppURL(appId));
234235
}
236+
237+
static setAppEditingState(request: SetAppEditingStatePayload): AxiosPromise<ApplicationResp> {
238+
const { applicationId, editingFinished } = request;
239+
return Api.put(ApplicationApi.setAppEditingStateURL(applicationId), {
240+
editingFinished,
241+
});
242+
}
235243
}
236244

237245
export default ApplicationApi;

‎client/packages/lowcoder/src/constants/applicationConstants.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ export interface ApplicationMeta {
9191
folder: false;
9292
isLocalMarketplace?: boolean;
9393
applicationStatus: "NORMAL" | "RECYCLED" | "DELETED";
94+
editingUserId: string | null;
95+
lastEditedAt: number;
9496
}
9597

9698
export interface FolderMeta {

‎client/packages/lowcoder/src/constants/reduxActionConstants.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ export const ReduxActionTypes = {
144144
FETCH_ALL_MODULES_SUCCESS: "FETCH_ALL_MODULES_SUCCESS",
145145
FETCH_ALL_MARKETPLACE_APPS: "FETCH_ALL_MARKETPLACE_APPS",
146146
FETCH_ALL_MARKETPLACE_APPS_SUCCESS: "FETCH_ALL_MARKETPLACE_APPS_SUCCESS",
147+
SET_APP_EDITING_STATE: "SET_APP_EDITING_STATE",
147148

148149
/* user profile */
149150
SET_USER_PROFILE_SETTING_MODAL_VISIBLE: "SET_USER_PROFILE_SETTING_MODAL_VISIBLE",

‎client/packages/lowcoder/src/i18n/locales/de.ts‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2986,7 +2986,13 @@ export const de = {
29862986
"editorMode_both": "Beide",
29872987
"editorMode_layout_tooltip": "Passen Sie im rechten Fenster das Erscheinungsbild und Layout der Komponente an. Passen Sie Aussehen, Stil und Animationen an.",
29882988
"editorMode_logic_tooltip": "Richten Sie im rechten Fenster ein, wie Ihre Komponente funktioniert und interagiert. Verwalten Sie den Inhalt und das interaktive Verhalten.",
2989-
},
2989+
"AppEditingBlocked": "App-Bearbeitung blockiert für:",
2990+
"AppEditingBlockedHint": "Änderungen werden nicht gespeichert, während ein anderer Benutzer diese App bearbeitet.",
2991+
"AppEditingBlockedMessage": "Bitte warten Sie, bevor Sie den Bearbeitungsstatus der App überprüfen.",
2992+
"AppEditingBlockedCheckStatus": "App-Status prüfen",
2993+
"AppEditingBlockedSomeone": "Jemand",
2994+
"AppEditingBlockedMessageSnipped": "bearbeitet diese App",
2995+
},
29902996
"userAuth": {
29912997
...en.userAuth,
29922998

‎client/packages/lowcoder/src/i18n/locales/en.ts‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2922,7 +2922,13 @@ export const en = {
29222922
"editorMode_logic": "Logic",
29232923
"editorMode_both": "Both",
29242924
"editorMode_layout_tooltip": "Customise the component's appearance and layout, in the right window. Adjust how it looks, styles, and animates.",
2925-
"editorMode_logic_tooltip": "Set up how your component works and interacts, in the right window. Manage its content and interactive behaviours."
2925+
"editorMode_logic_tooltip": "Set up how your component works and interacts, in the right window. Manage its content and interactive behaviours.",
2926+
"AppEditingBlocked": "App Editing Blocked for:",
2927+
"AppEditingBlockedHint": "Changes will not be saved while another user is editing this app.",
2928+
"AppEditingBlockedMessage": "Please wait before check the editing status of the App.",
2929+
"AppEditingBlockedCheckStatus": "Check App Status",
2930+
"AppEditingBlockedSomeone": "Someone",
2931+
"AppEditingBlockedMessageSnipped": "is editing this app",
29262932
},
29272933
"userAuth": {
29282934
"registerByEmail": "Sign Up",

‎client/packages/lowcoder/src/i18n/locales/es.ts‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2986,6 +2986,12 @@ export const es = {
29862986
"editorMode_both": "Ambos",
29872987
"editorMode_layout_tooltip": "Personalice la apariencia y el diseño del componente en la ventana derecha. Ajusta su aspecto, estilo y animación.",
29882988
"editorMode_logic_tooltip": "Configure el funcionamiento y la interacción de su componente, en la ventana adecuada. Gestione su contenido y sus comportamientos interactivos.",
2989+
"AppEditingBlocked": "Edición de la App bloqueada para:",
2990+
"AppEditingBlockedHint": "Los cambios no se guardarán mientras otro usuario esté editando esta aplicación.",
2991+
"AppEditingBlockedMessage": "Por favor, espere antes de verificar el estado de edición de la aplicación.",
2992+
"AppEditingBlockedCheckStatus": "Verificar estado de la aplicación",
2993+
"AppEditingBlockedSomeone": "Alguien",
2994+
"AppEditingBlockedMessageSnipped": "está editando esta aplicación",
29892995
},
29902996
"userAuth": {
29912997
...en.userAuth,

‎client/packages/lowcoder/src/i18n/locales/it.ts‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2986,6 +2986,12 @@ export const it = {
29862986
"editorMode_both": "Entrambi",
29872987
"editorMode_layout_tooltip": "Personalizzare l'aspetto e il layout del componente, nella finestra di destra. Regolate l'aspetto, gli stili e le animazioni.",
29882988
"editorMode_logic_tooltip": "Impostate il funzionamento e l'interazione del vostro componente, nella finestra giusta. Gestite il suo contenuto e i suoi comportamenti interattivi.",
2989+
"AppEditingBlocked": "Modifica dell'app bloccata per:",
2990+
"AppEditingBlockedHint": "Le modifiche non verranno salvate mentre un altro utente sta modificando questa app.",
2991+
"AppEditingBlockedMessage": "Attendere prima di controllare lo stato di modifica dell'app.",
2992+
"AppEditingBlockedCheckStatus": "Controlla lo stato dell'app",
2993+
"AppEditingBlockedSomeone": "Qualcuno",
2994+
"AppEditingBlockedMessageSnipped": "sta modificando questa app",
29892995
},
29902996
"userAuth": {
29912997
...en.userAuth,

‎client/packages/lowcoder/src/i18n/locales/pt.ts‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2986,6 +2986,12 @@ export const pt = {
29862986
"editorMode_both": "Ambos",
29872987
"editorMode_layout_tooltip": "Personalize a aparência e o layout do componente, na janela direita. Ajuste sua aparência, estilo e animação.",
29882988
"editorMode_logic_tooltip": "Configure como seu componente funciona e interage, na janela direita. Gerencie seu conteúdo e comportamentos interativos.",
2989+
"AppEditingBlocked": "Edição do aplicativo bloqueada para:",
2990+
"AppEditingBlockedHint": "As alterações não serão salvas enquanto outro usuário estiver editando este aplicativo.",
2991+
"AppEditingBlockedMessage": "Por favor, aguarde antes de verificar o status de edição do aplicativo.",
2992+
"AppEditingBlockedCheckStatus": "Verificar status do aplicativo",
2993+
"AppEditingBlockedSomeone": "Alguém",
2994+
"AppEditingBlockedMessageSnipped": "está editando este aplicativo",
29892995
},
29902996
"userAuth": {
29912997
...en.userAuth,

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /