PageSourceSearch

https://www.also.pt/ec/js/pegasos-messages/1.3/pegasos-messages.js?v=buildNumber

js also.pt collected 2026-10-09 22:41:47 UTC 13,265 bytes, 437 lines download raw bytes

1
2function StatusMessages() {
3
4}
5
6$(document).ready(function() {
7	if (!StatusMessages.INIT) {
8		initTextMessageListener('p');	 
9	}
10});
11
12/**
13 * messages are located below this element
14 */
15StatusMessages.DEFAULT_MESSAGE_LOCATOR = '#messages';
16StatusMessages.INIT = false;
17StatusMessages.USES_BOOTSTRAP = false;
18StatusMessages.toast = null;
19
20/**
21 * utility to remove every content from configured parent element
22 */
23StatusMessages.clearMessages = function() {
24	$(StatusMessages.DEFAULT_MESSAGE_LOCATOR).html('<!-- messages cleared -->');
25};
26
27StatusMessages.hide = function() {
28	$(StatusMessages.DEFAULT_MESSAGE_LOCATOR).css('visibility','hidden');
29};
30
31StatusMessages.show = function() {
32	$(StatusMessages.DEFAULT_MESSAGE_LOCATOR).css('visibility','visible');
33};
34
35
36StatusMessages.sendMessage = function (listenerName,listenerType,messages) {
37	if (!StatusMessages.INIT) {
38		initTextMessageListener('p');
39	}
40	HS.message(listenerName,listenerType,messages);
41};
42/**
43 * Hermes compatible listener which takes a parent jquery compatible locator 
44 * and appends message surrounded by a html element.
45 */
46
47function TextMessageListener(type, surroundedBy) {
48	this.type = type;
49	this.parentElem = $(StatusMessages.DEFAULT_MESSAGE_LOCATOR);
50	this.surroundedBy = surroundedBy;
51
52	if (this.type == undefined) {
53		this.type = 'error';
54	}
55
56	if (this.surroundedBy == undefined) {
57		this.surroundedBy = 'div';
58	}
59
60}
61	
62function initTextMessageListener(objElementString) {
63	/* JG: Message-Typen müssen auf 
64		message
65		hint
66		error
67	       bleiben, damit die entsprechende CSS-Klasse passt.		
68	*/
69	HS.addListener('messages-info' , new TextMessageListener('message' , objElementString));
70	HS.addListener('messages-warn' , new TextMessageListener('hint' , objElementString));
71	HS.addListener('messages-error', new TextMessageListener('error', objElementString));
72	HS.addListener('messages-undefined', new TextMessageListener('undefined', objElementString));	
73	
74	StatusMessages.INIT = true;
75	if ($("body.usesBT").length > 0) {
76		StatusMessages.USES_BOOTSTRAP = true;
77	}
78}
79
80/* hermes interface implementation: append a list item to parent element */
81TextMessageListener.prototype.local = function(id, data) {
82	var elem = this.surroundedBy;
83	var iconClass = "";
84	
85	if (this.type == "message"){
86		iconClass="icon ic_info icon-information-outline";
87	}
88	else if (this.type == "hint"){
89		iconClass="icon ic_warning icon-information-outline";
90	}
91	else if (this.type == "error"){
92		iconClass="icon ic_error icon-information-outline";
93	}
94	else {
95		iconClass="icon ic_undefined icon-information-outline";
96	}
97	
98	var code = '<' + elem + ' class="' + this.type + '"><span class="' + iconClass + '"></span>' + data + '</' + elem + '>';
99	this.parentElem.append(code);
100};
101
102/* Generiert den HTML-Code für die Ausgabe von Messages 
103-> bettet den Message-String je nach Typ in seine Elternelemente ein, damit die Message passend zu ihrer Art richtig angezeigt wird
104*/
105function generateMessageObject(type, message) {
106	if (message == null) {
107		return "";	
108	}
109	if (type == "info") {
110		return 	generateMessageInfoObject(message);
111	}
112	else if (type == "warning") {
113		return 	generateMessageWarningObject(message);
114	}
115	else if (type == "warn") {
116		return 	generateMessageWarningObject(message);
117	}
118	else if (type == "error") {
119		return 	generateMessageErrorObject(message);
120	}
121	else {
122		return 	generateMessageUndefinedObject(message);
123	}
124}
125
126/* bettet den Message-String in seine Elternelemente ein, damit die Message passend zu ihrer Art richtig angezeigt wird*/
127function generateMessageInfoObject(messagesString) {
128	if (StatusMessages.USES_BOOTSTRAP) {
129		return '<div class="alert alert-success" role="alert">'+ messagesString + '</div>';
130	}
131	else {
132		return "<p class='message'><span class='icon ic_info icon-information-outline'></span>" + messagesString + "</p>";
133	}
134}
135function generateMessageWarningObject(messagesString) {
136	if (StatusMessages.USES_BOOTSTRAP) {
137		return '<div class="alert alert-warning" role="alert">'+ messagesString + '</div>';
138	}
139	else {
140		return "<p class='hint'><span class='icon ic_warning icon-information-outline'></span>" + messagesString + "</p>";
141	}
142}
143function generateMessageErrorObject(messagesString) {
144	if (StatusMessages.USES_BOOTSTRAP) {
145		return '<div class="alert alert-danger" role="alert">'+ messagesString + '</div>';
146	}
147	else {
148		return "<p class='error'><span class='icon ic_error icon-information-outline'></span>" + messagesString + "</p>";
149	}
150}
151function generateMessageUndefinedObject(messagesString) {
152	if (StatusMessages.USES_BOOTSTRAP) {
153		return '<div class="alert alert-info" role="alert">'+ messagesString + '</div>';
154	}
155	else {
156		return "<p class='undefined'><span class='icon ic_undefined icon-information-outline'></span>" + messagesString + "</p>";
157	}
158}
159
160//needed for new Forumlar-Design
161function generateMessageInfoObjectByDiv(messagesString,optionalBlock) {
162	if (optionalBlock == null) {
163		optionalBlock = "";
164	}
165	if (StatusMessages.USES_BOOTSTRAP) {
166		return '<div class="alert alert-success" role="alert">'+ messagesString + optionalBlock +'</div>';
167	}
168	else {
169		return "<div class='info'><span class='icon ic_info icon-information-outline'></span><p>" + messagesString + "</p>" + optionalBlock + "</div>";
170	}
171}
172function generateMessageWarningObjectByDiv(messagesString,optionalBlock) {
173	if (optionalBlock == null) {
174		optionalBlock = "";
175	}
176	if (StatusMessages.USES_BOOTSTRAP) {
177		return '<div class="alert alert-warning" role="alert">'+ messagesString + optionalBlock +'</div>';
178	}
179	else {
180		return "<div class='hint'><span class='icon ic_warning'></span>
180<p>" + messagesString + "</p>" + optionalBlock + "</div>";	
181	}
182}
183function generateMessageErrorObjectByDiv(messagesString,optionalBlock) {
184	if (optionalBlock == null) {
185		optionalBlock = "";
186	}
187	if (StatusMessages.USES_BOOTSTRAP) {
188		return '<div class="alert alert-danger" role="alert">'+ messagesString + optionalBlock +'</div>';
189	}
190	else {
191		return "<div class='error'><span class='icon ic_error icon-information-outline'></span><p>" + messagesString + "</p>" + optionalBlock + "</div>";
192	}
193}
194
195/* Ließt die Liste aller Messages aus und erstellt ein einzigen String, in dem die Messages durch ein BR getrennt sind
196	Bsp: "message1<br /> message2<br />"
197 */
198function getMessagesSeperatedByBR(msgList) {
199	if (msgList == null || msgList == undefined || msgList.length <= 0) {
200		return null;	
201	}
202	var messageObj = "";
203	for (var i=0; i < msgList.length; i++) {
204		messageObj = messageObj + msgList[i].msg + "<br />";
205	}	
206	
207	return messageObj;
208}
209
210/* Ließt die Listen für Error, Warning und Undefined ein und erstellt für jeden Nachrichtentyp seinen eigenen HTML-Code für die richtige anzeige 
211	Die Rückgabe ist ein einzige String der zB einer Lightbox übergeben werden kann
212	Bsp: "	<p class='error'><span class='icon ic_error icon-information-outline'></span>Error1<br />Error2<br /></p>
213		<p class='hint'><span class='icon ic_warning icon-information-outline'></span>Warning1<br />Warning2<br />Warning3<br /></p>
214		<p class='undefined'><span class='icon ic_undefined icon-information-outline'></span>Undefined1<br />Undefined2<br /></p>
215	"
216*/
217function getMessageHtmlStringForErrorWarningUndefined(errorMsgList,warnMsgList,undefinedMsgList) {
218	var messages = "";
219	if (errorMsgList != null && errorMsgList.length > 0 && errorMsgList != undefined) {
220		messages += generateMessageObject('error',getMessagesSeperatedByBR(errorMsgList));
221	}
222	
223	if (warnMsgList != null && warnMsgList.length > 0 && warnMsgList != undefined) {
224		messages += generateMessageObject('warning',getMessagesSeperatedByBR(warnMsgList));
225	}
226	
227	if (undefinedMsgList != null && undefinedMsgList.length > 0 && undefinedMsgList != undefined) {
228		messages += generateMessageObject('undefined',getMessagesSeperatedByBR(undefinedMsgList));
229	}	
230	
231	return messages;
232}
233
234/* Erstellt ein Array mit einem Eintrag aus einer einfachen Message */
235function generateSingleMessageAsList(message) {
236	if (message == null || message == undefined || message.length <= 0) {
237		return	new Array();
238	}
239	var msgList = new Array();
240	msgList[0] = {"msg": message};
241
242	return msgList;
243}	
244
245/*
246creating a List of Objects for pegasosMessages
247before:
248	list [
249		{
250			text : "my message",
251			key : "my.key",
252			args : "12345"
253		},
254		{
255			key : "my.key",
256			args : "12345"
257		}
258	]
259	
260after:
261	list [
262		{
263			msg : "my message"
264		},
265		{
266			msg : "my message 2 with arg 12345"
267		}
268	]
269*/
270function createMessageListObjectFromWebserviceResponse(messageList) {
271
272	var returnList = []	
273	if (messageList != undefined) {	
274		var MSGS = new Translation();
275	
276		for (var i=0; i < messageList.length; i++) {
277		
278			var message = messageList[i].text;
279			if (message == undefined) {
280				message = MSGS.get(messageList[i].key,messageList[i].args);
281			}			
282			returnList[i] = {"msg":message};
283		} 
284	}
285	
286	return returnList;
287}
288
289/*
290messages =  {
291	infos : [
292		{
293			text : "my message",
294			key : "my.key",
295			args : "12345"
296		},
297		{
298			key : "my.key",
299			args : "12345"
300		}
301	],
302	warnings : [],
303	errors : []
304}
305
306returns a string with all messages
307example: "	<p class='error'><span class='icon ic_error icon-information-outline'></span>Error1<br />Error2<br /></p>
308			<p class='hint'><span class='icon ic_warning icon-information-outline'></span>Warning1<br />Warning2<br />Warning3<br /></p>
309			<p class='info'><span class='icon ic_info icon-information-outline'></span>info1<br />info2<br /></p>
310	"
311
312*/
313function createMessageStringFromWebserviceResponse(messagesObject) {
314	var infoList = createMessageListObjectFromWebserviceResponse(messagesObject.infos);
315	var warningList = createMessageListObjectFromWebserviceResponse(messagesObject.warnings);
316	var errorList = createMessageListObjectFromWebserviceResponse(messagesObject.errors);
317
318	var messages = "";
319
320	messages += generateMessageObject('info',getMessagesSeperatedByBR(infoList));
321	messages += generateMessageObject('warning',getMessagesSeperatedByBR(warningList)); 
322	messages += generateMessageObject('error',getMessagesSeperatedByBR(errorList));
323
324	return messages;
325}
326
327/*
328messages =  {
329	infos : [
330		{
331			text : "my message",
332			key : "my.key",
333			args : "12345"
334		},
335		{
336			key : "my.key",
337			args : "12345"
338		}
339	],
340	warnings : [],
341	errors : []
342}
343*/
344function displayMessagesFromWebserviceResponse(messages, $messageContainer) {
345	
346	var messagesForGlobalMessageContainer = MessagesOnPosition.splitMessagePositions(messages);	
347	var messageString = createMessageStringFromWebserviceResponse(messagesForGlobalMessageContainer);
348
349	if ($messageContainer){
350		$messageContainer.append(messageString);
351	} else {
352		$("#messages").append(messageString);
353	}
354}
355
356// Display notification using toast plugin
357function displayToastMessagesFromWebserviceResponse(messages) {
358	if (!StatusMessages.toast || !messages) return;
359
360	var infoList = createMessageListObjectFromWebserviceResponse(messages.infos);
361	var warningList = createMessageListObjectFromWebserviceResponse(messages.warnings);
362	var errorList = createMessageListObjectFromWebserviceResponse(messages.errors);
363
364	infoList.forEach(function(m) { StatusMessages.toast.success(m.msg); });
365	warningList.forEach(function(m) { StatusMessages.toast.info(m.msg); });
366	errorList.forEach(function(m) { StatusMessages.toast.error(m.msg); });
367}
368
369/**
370 * creates the message-HTML-Markup as ERROR and displays it in shop
371 * 
372 * @param {type} key	message key
373 * @param {type} args	message args
374 * @returns {undefined}
375 */
376function displayErrorMessage(key,args) {
377	if (StatusMessages.toast) {
378		displayToastMessagesFromWebserviceResponse({ errors: [{key: key, args: args}] });
379		return;
380	}
381	displayMessage('error',key,args);
382}
383
384/**
385 * creates the message-HTML-Markup as WARNING and displays it in shop
386 * 
387 * @param {type} key	message key
388 * @param {type} args	message args
389 * @returns {undefined}
390 */
391function displayWarningMessage(key,args) {
392	if (StatusMessages.toast) {
393		displayToastMessagesFromWebserviceResponse({ warnings: [{key: key, args: args}] });
394		return;
395	}
396	displayMessage('warning',key,args);
397}
398
399/**
400 * creates the message-HTML-Markup as INFO and displays it in shop
401 * 
402 * @param {type} key	message key
403 * @param {type} args	message args
404 * @returns {undefined}
405 */
406
407function displayInfoMessage(key,args) {
408	if (StatusMessages.toast) {
409		displayToastMessagesFromWebserviceResponse({ infos: [{key: key, args: args}] });
410		return;
411	}
412	displayMessage('info',key,args);
413}
414
415/**
416 * creates the message-HTML-Markup and displays it in shop
417 * 
418 * @param {type} type	info/warning/error
419 * @param {type} key	messageKey
420 * @param {type} args
421 * @returns {undefined}
422 */
423function displayMessage(type,key,args) {
424
425	var MSGS = new Translation();
426	var message = MSGS.get(key,args);
427	
428	var messageHtmlString =	generateMessageObject(type, message);
429	$("#messages").append(messageHtmlString);
430}
431
432var PegasosMessage = {
433	
434	clearMessages: function(){
435		$("#messages").html("");
436	}
437};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.