1function PegasosMessagesOnPosition() { 2 3 var self = this; 4 5 self.removeClientFieldMessages = function() { 6 var $clientFieldMessages = $(".clientFieldMessages"); 7 8 for (var i = 0; i < $clientFieldMessages.length; i++) { 9 var $clientFieldMessage = $clientFieldMessages.eq(i); 10 if ($clientFieldMessage.data("position") === "AFFE") { 11 var $serialLabel = $clientFieldMessage.parent("label"); 12 $serialLabel.removeClass("error"); 13 } 14 } 15 $clientFieldMessages.removeClass('clientFieldMessages').text(""); 16 }; 17 18 self.splitMessagePositions = function(messages){ 19 20 var messagesForGlobalMessageContainer = {}; 21 22 $(".clientDataIndexMessages").remove(); 23 24 self.removeClientFieldMessages(); 25 26 if(!!messages){ 27 28 if( !!messages.errors && messages.errors.length != 0){ 29 messagesForGlobalMessageContainer.errors = self.printDataIndexAndFieldMessages(messages.errors, "error"); 30 } 31 if( !!messages.warnings && messages.warnings.length != 0){ 32 messagesForGlobalMessageContainer.warnings = self.printDataIndexAndFieldMessages(messages.warnings, "warning"); 33 } 34 if( !!messages.infos && messages.infos.length != 0){ 35 messagesForGlobalMessageContainer.infos = self.printDataIndexAndFieldMessages(messages.infos, "info"); 36 } 37 } 38 return messagesForGlobalMessageContainer; 39 } 40 41 self.printDataIndexAndFieldMessages = function(messages, type){ 42 43 var messagesForGlobalMessageContainer = []; 44 45 messages.forEach(function (message) { 46 47 var dataIndex = message.dataIndex; 48 var field = message.field; 49 50 if(self.isGlobalMessage(dataIndex)){ 51 messagesForGlobalMessageContainer.push(message); 52 53 } else if(self.isDataIndexMessage(dataIndex, field)){ 54 55 var messageAssigned = self.createDataIndexMessageAndAssign(message, type); 56 if(!messageAssigned){ 57 messagesForGlobalMessageContainer.push(message); 58 } 59 60 } else if(self.isFieldMessage(dataIndex, field)){ 61 62 var messageAssigned = self.createFieldMessageAndAssign(message, type); 63 if(!messageAssigned){ 64 65 var messageAssigned = self.createDataIndexMessageAndAssign(message, type); 66 if(!messageAssigned){ 67 messagesForGlobalMessageContainer.push(message); 68 } 69 } 70 } 71 }); 72 73 return messagesForGlobalMessageContainer; 74 }; 75 76 self.createFieldMessageAndAssign = function(message, type){ 77 78 var dataIndex = message.dataIndex; 79 var field = message.field; 80 81 var dataEntry = $('.clientDataIndex_' + dataIndex).find("[data-field=" + field + "]"); 82 83 if(dataEntry.length > 0){ 84 85 $.each(dataEntry, function(index, entry){ 86 87 var clientFieldMessagesBox = "<div class=\"message onPosition clientFieldMessages\">" + generateMessageObject(type, message.text) + "</div>"; 88 89 var position = $(dataEntry[index]).data("position"); 90 91 switch(position) { 92 case "before": 93 $(entry).before(clientFieldMessagesBox); 94 break; 95 case "inside": 96 $(entry).addClass('clientFieldMessages').text(message.text); 97 break; 98 case "none-highlight-background": 99 var classToAdd = ""; 100 if (type === "warning") { 101 classToAdd = "bg-warning"; 102 } 103 else if (type === "error") { 104 classToAdd = "bg-danger"; 105 } 106 107 $(entry).addClass('clientFieldMessages ' + classToAdd).attr("title", message.text); 108 break; 109 case "bootstrap-form": 110 var $parentLabel = $(entry).parents(".form-group").find("label"); 111 $parentLabel.after(clientFieldMessagesBox); 112 break; 113 case "AFFE": 114 var $parentLabel = $(entry).parents("label"); 115 if (type === "warning" || type === "error") { 116 $parentLabel.addClass('error'); 117 } 118 var affeMessagesBox = "<span class=\"message onPosition clientFieldMessages\" data-position=\"AFFE\">" + message.text + "</span>"; 119 $parentLabel.append(affeMessagesBox); 120 break; 121 default: 122 $(entry).after(clientFieldMessagesBox); 123 } 124 }); 125 126 return true; 127 } 128 return false; 129 }; 130 131 self.createDataIndexMessageAndAssign = function(message, type){ 132 133 var $clientDataMessages = $('#clientDataIndexMessages_' + message.dataIndex); 134 135 if($clientDataMessages.length == 0){ 136 var dataRow = $(".clientDataIndex_" + message.dataIndex); 137 if(dataRow.length === 1){ 138 139 var clientDataIndexMessagesBox = $('<div />', {id : 'clientDataIndexMessages_' + message.dataIndex}).addClass('clientDataIndexMessages'); 140 dataRow.prepend(clientDataIndexMessagesBox); 141 $clientDataMessages = clientDataIndexMessagesBox; 142 } else { 143 return false; 144 } 145 } 146 147 if($clientDataMessages.children().length === 0){ 148 var messageString = generateMessageObject(type, message.text + "<br />"); 149 $clientDataMessages.append(messageString); 150 } else { 151 var messageString = message.text + "<br />"; 152 $clientDataMessages.children().append(messageString); 153 } 154 155 return true; 156 }; 157 158 self.isGlobalMessage = function (dataIndex){ 159 return typeof(dataIndex) === "undefined" || dataIndex == null; 160 }; 161 162 self.isDataIndexMessage = function(dataIndex, field){ 163 return dataIndex != null && field == null; 164 }; 165 166 self.isFieldMessage = function(dataIndex, field){ 167 return dataIndex != null && field != null; 168 }; 169} 170 171var MessagesOnPosition = new PegasosMessagesOnPosition();
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.