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.