Skip to content

Commit 2c021a1

Browse files
committed
label change create label and add to sign
1 parent d7a0035 commit 2c021a1

File tree

5 files changed

+131
-10
lines changed

5 files changed

+131
-10
lines changed

app/src/main/java/com/orange/signsatwork/biz/webservice/controller/LabelRestController.java

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.orange.signsatwork.biz.persistence.model.SignViewData;
77
import com.orange.signsatwork.biz.persistence.service.MessageByLocaleService;
88
import com.orange.signsatwork.biz.persistence.service.Services;
9+
import com.orange.signsatwork.biz.persistence.service.impl.SignServiceImpl;
910
import com.orange.signsatwork.biz.security.AppSecurityAdmin;
1011
import com.orange.signsatwork.biz.view.model.AuthentModel;
1112
import com.orange.signsatwork.biz.webservice.model.*;
@@ -143,12 +144,30 @@ public LabelResponseApi createLabelAddToSign(@RequestBody LabelCreationViewApi l
143144
String values = user.name() + ';' + labelCreationViewApi.getName();
144145
MessageServer messageServer = new MessageServer(new Date(), messageType, values, ActionType.NO);
145146
services.messageServerService().addMessageServer(messageServer);
146-
services.sign().addSignToLabel(signId, label.id);
147+
labelCreationViewApi.getSignLabelViewApi().getSignLabelsIdsCheck().add(label.id);
148+
LabelForMessageServer labels = services.sign().SignToLabels(signId, labelCreationViewApi.getSignLabelViewApi().getSignLabelsIds(),
149+
labelCreationViewApi.getSignLabelViewApi().getSignLabelsIdsCheck(), labelCreationViewApi.getSignLabelViewApi().getSignLabelsIdsNoCheck());
150+
if (labels.getChangeType() == SignServiceImpl.ChangeType.ADD_AND_REMOVE) {
151+
messageType = "ModifyLabelsToSignMessage";
152+
} else if (labels.getChangeType() == SignServiceImpl.ChangeType.ADD_ONLY) {
153+
messageType = "AddLabelsToSignMessage";
154+
} else if (labels.getChangeType() == SignServiceImpl.ChangeType.REMOVE_ONLY) {
155+
messageType = "RemoveLabelsToSignMessage";
156+
}
157+
158+
if (messageType != null) {
159+
Sign sign = services.sign().withId(signId);
160+
values = user.name() + ';' + sign.name;
161+
messageServer = new MessageServer(new Date(), messageType, values, ActionType.NO);
162+
services.messageServerService().addMessageServer(messageServer);
163+
}
164+
/*services.sign().addSignToLabel(signId, label.id);
147165
Sign sign = services.sign().withId(signId);
148166
messageType = "AddLabelsToSignMessage";
149167
values = user.name() + ';' + sign.name;
150168
messageServer = new MessageServer(new Date(), messageType, values, ActionType.NO);
151-
services.messageServerService().addMessageServer(messageServer);
169+
services.messageServerService().addMessageServer(messageServer);*/
170+
labelResponseApi.labelMessage = labels.getMessage();
152171
response.setStatus(HttpServletResponse.SC_OK);
153172
return labelResponseApi;
154173
} else {
@@ -162,12 +181,30 @@ public LabelResponseApi createLabelAddToSign(@RequestBody LabelCreationViewApi l
162181
String values = user.name() + ';' + labelCreationViewApi.getName();
163182
MessageServer messageServer = new MessageServer(new Date(), messageType, values, ActionType.NO);
164183
services.messageServerService().addMessageServer(messageServer);
165-
services.sign().addSignToLabel(signId, label.id);
184+
labelCreationViewApi.getSignLabelViewApi().getSignLabelsIdsCheck().add(label.id);
185+
LabelForMessageServer labels = services.sign().SignToLabels(signId, labelCreationViewApi.getSignLabelViewApi().getSignLabelsIds(),
186+
labelCreationViewApi.getSignLabelViewApi().getSignLabelsIdsCheck(), labelCreationViewApi.getSignLabelViewApi().getSignLabelsIdsNoCheck());
187+
if (labels.getChangeType() == SignServiceImpl.ChangeType.ADD_AND_REMOVE) {
188+
messageType = "ModifyLabelsToSignMessage";
189+
} else if (labels.getChangeType() == SignServiceImpl.ChangeType.ADD_ONLY) {
190+
messageType = "AddLabelsToSignMessage";
191+
} else if (labels.getChangeType() == SignServiceImpl.ChangeType.REMOVE_ONLY) {
192+
messageType = "RemoveLabelsToSignMessage";
193+
}
194+
195+
if (messageType != null) {
196+
Sign sign = services.sign().withId(signId);
197+
values = user.name() + ';' + sign.name;
198+
messageServer = new MessageServer(new Date(), messageType, values, ActionType.NO);
199+
services.messageServerService().addMessageServer(messageServer);
200+
}
201+
/*services.sign().addSignToLabel(signId, label.id);
166202
Sign sign = services.sign().withId(signId);
167203
messageType = "AddLabelsToSignMessage";
168204
values = user.name() + ';' + sign.name;
169205
messageServer = new MessageServer(new Date(), messageType, values, ActionType.NO);
170-
services.messageServerService().addMessageServer(messageServer);
206+
services.messageServerService().addMessageServer(messageServer);*/
207+
labelResponseApi.labelMessage = labels.getMessage();
171208
response.setStatus(HttpServletResponse.SC_OK);
172209
return labelResponseApi;
173210
}

app/src/main/java/com/orange/signsatwork/biz/webservice/model/LabelCreationViewApi.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737

3838
public class LabelCreationViewApi {
3939
private String name;
40+
private SignLabelViewApi signLabelViewApi;
4041

4142
public Label toLabel(LabelType labelType) {
4243
return new Label(-1, this.name, labelType, null);

app/src/main/java/com/orange/signsatwork/biz/webservice/model/LabelResponseApi.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
@RequiredArgsConstructor
2929
public class LabelResponseApi {
3030
public long labelId;
31+
public String labelMessage;
3132
public String errorMessage;
3233
public String warningMessage;
3334
}

app/src/main/resources/public/js/create-label.js

Lines changed: 82 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,22 +122,100 @@ function onCreateLabel(force) {
122122
};
123123

124124

125-
function onCreateLabelAddToSign(signId, force) {
125+
function onCreateLabelAddToSign(signId, videoId, force, labelsIdBelowSign) {
126126

127127
console.log("force "+force);
128+
var signLabelsIds;
129+
130+
if (Array.isArray(labelsIdBelowSign)) {
131+
signLabelsIds = labelsIdBelowSign.map(Number); // s'assurer que ce sont des nombres
132+
} else {
133+
try {
134+
signLabelsIds = JSON.parse(labelsIdBelowSign);
135+
} catch (e) {
136+
signLabelsIds = [Number(labelsIdBelowSign)];
137+
}
138+
}
139+
console.log("signLabelsIds après parse :", signLabelsIds);
140+
141+
const signLabelsIdsCheck = [];
142+
const signLabelsIdsNoCheck = [];
143+
let i = 1;
144+
145+
$("#labels-container").children("li").children("label").each(function () {
146+
if (!this.classList.contains("disabled")) {
147+
const checkbox = document.getElementById("signLabelsIds" + i);
148+
if (checkbox) {
149+
const selectedLabelId = checkbox.value;
150+
if (checkbox.checked) {
151+
signLabelsIdsCheck.push(selectedLabelId);
152+
} else {
153+
signLabelsIdsNoCheck.push(selectedLabelId);
154+
}
155+
}
156+
}
157+
i++;
158+
});
159+
160+
console.log("✔ signLabelsIdsCheck :", signLabelsIdsCheck);
161+
console.log("✖ signLabelsIdsNoCheck :", signLabelsIdsNoCheck);
162+
163+
const signLabelViewApi = {
164+
signLabelsIds: signLabelsIds,
165+
signLabelsIdsCheck: signLabelsIdsCheck,
166+
signLabelsIdsNoCheck: signLabelsIdsNoCheck
167+
};
128168

129169
label = {
130-
name: labelName.value
170+
name: labelName.value,
171+
signLabelViewApi: signLabelViewApi
131172
};
132173
$.ajax({
133174
url: "/ws/sec/label/create_label_add_sign/" + signId + "?force=" + force,
134175
type: 'post',
135176
data: JSON.stringify(label),
136177
contentType: "application/json",
137178
success: function (response) {
138-
console.log(response);
179+
console.log("✅ Backend OK :", response.labelMessage);
139180
errorCreate.style.display = "none";
140-
location.reload();
181+
// 🔹 Fermer la modale
182+
$('#create-new-label_add_sign').modal('hide');
183+
$('#add_sign_to_label').modal('hide');
184+
185+
// 🔹 Mettre à jour la liste des labels
186+
document.getElementById("labels").innerHTML = response.labelMessage;
187+
188+
// 🔹 Mettre à jour l'attribut data pour la prochaine ouverture
189+
document
190+
.getElementById("validate_modal_add_label")
191+
.setAttribute("data-labelsidbelowsign", JSON.stringify(signLabelsIdsCheck));
192+
193+
// 🔹 Changer l’icône de statut
194+
const statusDiv = document.getElementById("sign-label-status");
195+
if (signLabelsIdsCheck.length > 0) {
196+
statusDiv.classList.remove("add_black");
197+
statusDiv.classList.add("chevron");
198+
} else {
199+
statusDiv.classList.remove("chevron");
200+
statusDiv.classList.add("add_black");
201+
}
202+
203+
document.getElementById("messageLabel").style.visibility = "visible";
204+
// Après chaque rechargement dynamique :
205+
206+
// 🔹 Rechargement dynamique de la modale (sans recharger toute la page)
207+
$.ajax({
208+
url: "/sign/" + signId + "/" + videoId + "/labels",
209+
success: function (response) {
210+
const newBody = $(response).find(".modal-body").html();
211+
$("#add_sign_to_label .modal-body").html(newBody);
212+
console.log("♻️ Modal rechargée avec succès");
213+
attachChangeListener(); // 🔥 important
214+
},
215+
error: function () {
216+
console.error("❌ Erreur lors du rechargement de la modale");
217+
}
218+
});
141219
},
142220
error: function (response) {
143221
console.log(response.responseJSON);

app/src/main/resources/templates/fragments/modal-new-label-add-sign.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,18 @@ <h2 class="pull-right" th:text="#{label.new}"></h2>
5151
<button class="btn btn-default pull-right" data-dismiss="" id="submit-create-modal"
5252
th:data-force="false"
5353
th:data-signId="${signId}"
54-
th:onclick="javascript:onCreateLabelAddToSign(this.getAttribute('data-signId'), this.getAttribute('data-force'))" type="submit">
54+
th:data-videoId="${videoId}"
55+
th:data-labelsidbelowsign="${videoView.signLabelsIds}"
56+
th:onclick="javascript:onCreateLabelAddToSign(this.getAttribute('data-signId'), this.getAttribute('data-videoId'), this.getAttribute('data-force'), this.getAttribute('data-labelsidbelowsign'))" type="submit">
5557
<div class="v-done2_blue center-block"></div>
5658
<span th:text="#{continue}"></span>
5759
</button>
5860
<button class="btn btn-default pull-right" data-dismiss="" id="submit-force-create-modal" style="display: none"
5961
th:data-force="true"
6062
th:data-signId="${signId}"
61-
th:onclick="javascript:onCreateLabelAddToSign(this.getAttribute('data-signId'), this.getAttribute('data-force'))" type="submit">
63+
th:data-videoId="${videoId}"
64+
th:data-labelsidbelowsign="${videoView.signLabelsIds}"
65+
th:onclick="javascript:onCreateLabelAddToSign(this.getAttribute('data-signId'), this.getAttribute('data-videoId'), this.getAttribute('data-force'), this.getAttribute('data-labelsidbelowsign'))" type="submit">
6266
<div class="v-done2_blue center-block"></div>
6367
<span th:text="#{continue}"></span>
6468
</button>

0 commit comments

Comments
 (0)