1"use strict"; 2setTimeout(function () { 3 if (document.getElementsByClassName("leadRateContainer").length > 0) { 4 var Vue = window.Vue; 5 var LeadsRate = new Vue({ 6 el: "lead-rate", 7 data: function data() { 8 return { 9 dataLoaded: false, 10 leadsData: [], 11 CurrentLeadIndex: 0, 12 CurrentLead: null, 13 priceRate: 10, 14 serviceRate: 10, 15 timeRate: 10, 16 reliabilityRate: 10, 17 fairCommission: "", 18 showOpinion: false, 19 showLeadForm: true, 20 showEndOfLeads: false, 21 $priceRateslide: null, 22 $serviceRateSlide: null, 23 $timeRateSlide: null, 24 $reliabilityRate: null, 25 $fairCommissionSelect: null, 26 27 } 28 }, 29 created: function () { 30 this.init(); 31 }, 32 methods: { 33 34 init: function () { 35 var self = this; 36 self.get().then(function (r) { 37 // self.leadsData.push(r); 38 var tempArr = {}; 39 var result = []; 40 for (var key in r) tempArr[key] = r[key].RequestedItems; 41 for (var key in r) tempArr[key] = r[key].RequestedItems; 42 for (var i in tempArr) { 43 for (var j = 0; j < tempArr[i].length; j++) { 44 result.push(tempArr[i][j]); 45 } 46 } 47 self.leadsData = result; 48 if (self.leadsData.length > 0) { 49 self.getCurrentLead().then(function (response) { 50 self.CurrentLead = response; 51 if (self.isLeadRateHiddenOnSessionStorage() === true && self.getLastLeadCountFromSessionStorage() < self.leadsData.length) { 52 self.clearSessionStorage(); 53 self.dataLoaded = true; 54 } else if (self.isLeadRateHiddenOnSessionStorage() === false) { 55 self.dataLoaded = true; 56 } 57 58 }); 59 } 60 61 62 }); 63 64 }, 65 get: function () { 66 var self = this; 67 return new Promise(function (resolve, reject) { 68 self.$http.get('/Handlers/LeadHandler.ashx?action=GetMemberLeadListToRate').then(function (response) { 69 var r = JSON.parse(response.body.Data); 70 resolve(r); 71 }), function (error) { 72 // http failed, let the calling function know that action did not work out 73 reject(error); 74 } 75 }); 76 }, 77 getCurrentLead: function () { 78 var self = this; 79 var tmp_current = this.leadsData[this.leadsData.length - 1]; 80 return new Promise(function (resolve, reject) { 81 self.$http.get('/Handlers/MemberHandler.ashx?action=GetMemberInfo&userid=' + tmp_current.Reciever.Guid).then(function (response) { 82 var r = JSON.parse(response.body.Data) 83 tmp_current.Reciever.Member = r; 84 85 self.CurrentLeadIndex = self.leadsData.map(function (e) { return e.Id }).indexOf(tmp_current.Id); 86 resolve(tmp_current); 87 }), function (error) { 88 reject(error); 89 } 90 }); 91 92 93 }, 94 moveNextLead: function () { 95 var self = this;
96 this.leadsData.splice(this.CurrentLeadIndex, 1); 97 if (this.leadsData.length > 0) { 98 $('#LeadFormContainer').animate({ 99 right: 1000 100 }, 200, function () { 101 $('#LeadFormContainer').css('disply', 'none'); 102 self.getCurrentLead().then(function (response) { 103 if (!response) { 104 return; 105 } else { 106 self.CurrentLead = response; 107 self.resetRateData(); 108 $('#LeadFormContainer').css('right', -1000) 109 $('#LeadFormContainer').animate({ 110 right: 20 111 }, 500, function () { 112 $(this).css('disply', ''); 113 }) 114 } 115 116 }); 117 }) 118 } else { 119 this.showLeadForm = false; 120 this.showEndOfLeads = true; 121 setTimeout(function () { 122 $('.leadRateInnerContainer').animate({ 123 height: 0 124 }, 500, function () { 125 self.dataLoaded = false; 126 127 }) 128 }, 2000) 129 130 } 131 132 }, 133 ignoreCurrentLeadRate: function () { 134 var self = this; 135 self.$http.get('/Handlers/LeadHandler.ashx?action=LeadRateIgnored&LeadId=' + self.CurrentLead.Id).then(function (response) { 136 var r = JSON.parse(response.body.JsonResult); 137 138 if (r) { 139 self.moveNextLead(); 140 } 141 }), function (error) { 142 // http failed, let the calling function know that action did not work out 143 reject(error); 144 }; 145 }, 146 147 saveLeadRate: function (leadId) { 148 var self = this; 149 var data = { 150 LeadId: leadId, 151 PriceRate: this.priceRate, 152 ServiceRate: this.serviceRate, 153 TimeRate: this.timeRate, 154 ReliabilityRate: this.reliabilityRate, 155 FairCommission: this.fairCommission 156 }; 157 158 this.saveRate(data).then(function (result) { 159 if (result) { 160 self.getOpinion(self.CurrentLead.Reciever.Guid).then(function (opinion_result) { 161 if (opinion_result) { 162 var opinion_json_result = opinion_result; 163 self.showOpinion = false; 164 self.moveNextLead(); 165 } else { 166 self.showOpinion = true; 167 self.showLeadForm = false; 168 } 169 }); 170 } 171 }); 172 173 }, 174 saveRate: function (data) { 175 var self = this; 176 return new Promise(function (resolve, reject) { 177 self.$http.post('/Handlers/LeadHandler.ashx?action=RateClosedLead', data, 178 { 179 emulateJSON: true, 180 headers: { 181 dataType: 'json', 182 contentType: 'application/json; charset=utf-8' 183 } 184 }).then(function (response) { 185 if (response.body.Data) { 186 var r = JSON.parse(response.body.Data); 187 resolve(r); 188 } else { 189 reject("error"); 190 } 191 192 }), function (error) { 193 reject(error); 194 }; 195 }); 196 }, 197 getOpinion: function (opinionTarget) { 198 var self = this; 199 return new Promise(function (resolve, reject) { 200 self.$http.post('/Handlers/OpinionHandler.ashx?action=GetMemberOpinionAboutOtherMember', { OpinionTarget: opinionTarget }, 201 { 202 emulateJSON: true, 203 headers: { 204 dataType: 'json', 205 contentType: 'application/json; charset=utf-8' 206 } 207 }).then(function (response) { 208 var r = JSON.parse(response.body.Data) 209 resolve(r); 210 }), function (error) { 211 reject(error); 212 } 213 }); 214 }, 215 addOpinion: function () { 216 var self = this; 217 if ($('#opinionContent').val().trim().length > 0) { 218 var data = { 219 opinionId: 0, 220 opinionType: "Lead", 221 customOpinionType: "", 222 memberId: self.CurrentLead.Reciever.Guid, 223 Content: $('#opinionContent').val() 224 } 225 226 this.saveOpinion(data).then(function (result) { 227 if (result) { 228 self.showLeadForm = true; 229 self.showOpinion = false; 230 self.moveNextLead();
231 232 } 233 }) 234 235 } else { 236 alert('×× × ×ת×× ××§×¡× ××××ת ××עת'); 237 } 238 }, 239 saveOpinion: function (data) { 240 var self = this; 241 return new Promise(function (resolve, reject) { 242 self.$http.post('/Handlers/OpinionHandler.ashx?action=AddOpinion', data, 243 { 244 emulateJSON: true, 245 headers: { 246 dataType: 'json', 247 contentType: 'application/json; charset=utf-8' 248 } 249 }).then(function (response) { 250 var r = JSON.parse(response.body.JsonResult); 251 if (r) { 252 resolve(r); 253 } 254 else { 255 reject("error"); 256 } 257 }), function (error) { 258 reject(error); 259 } 260 }); 261 }, 262 resetRateData: function () { 263 this.priceRate = 10; 264 this.serviceRate = 10; 265 this.timeRate = 10; 266 this.reliabilityRate = 10; 267 this.fairCommission = ""; 268 269 var priceRate = this.$priceRateslide.data("ionRangeSlider"); 270 var serviceRateSlide = this.$serviceRateSlide.data("ionRangeSlider"); 271 var timeRateSlide = this.$timeRateSlide.data("ionRangeSlider"); 272 var reliabilityRate = this.$reliabilityRate.data("ionRangeSlider"); 273 this.$fairCommissionSelect.val(""); 274 priceRate.update({ from: 10 }); 275 serviceRateSlide.update({ from: 10 }); 276 timeRateSlide.update({ from: 10 }); 277 reliabilityRate.update({ from: 10 }); 278 }, 279 hideLeadRateWindow: function () { 280 this.dataLoaded = false; 281 sessionStorage.setItem("hideLeadrate", JSON.stringify({ "hidden": true, "lead_count": this.leadsData.length })); 282 }, 283 isLeadRateHiddenOnSessionStorage: function () { 284 var val = sessionStorage.getItem("hideLeadrate"); 285 if (JSON.parse(val) !== null && JSON.parse(val).hidden == true) { 286 return true; 287 } else { return false; } 288 }, 289 getLastLeadCountFromSessionStorage: function () { 290 var val = sessionStorage.getItem("hideLeadrate"); 291 if (JSON.parse(val).lead_count) { 292 return JSON.parse(val).lead_count; 293 } else { return -1; } 294 }, 295 clearSessionStorage: function () { 296 sessionStorage.removeItem("hideLeadrate"); 297 } 298 }, 299 components: { 300 301 }, 302 updated: function () { 303 var self = this; 304 305 self.$priceRateslide = $("#priceRate"); 306 self.$priceRateslide.ionRangeSlider({ onStart: function (data) { self.priceRate = data.from } }); 307 self.$priceRateslide.on('change', function () { var $this = $(this); self.priceRate = $this.prop("value"); }) 308 309 self.$serviceRateSlide = $("#serviceRate"); 310 self.$serviceRateSlide.ionRangeSlider({ onStart: function (data) { self.serviceRate = data.from } }); 311 self.$serviceRateSlide.on('change', function () { var $this = $(this); self.serviceRate = $this.prop("value"); }) 312 313 self.$timeRateSlide = $('#timeRate'); 314 self.$timeRateSlide.ionRangeSlider({ onStart: function (data) { self.timeRate = data.from } }); 315 self.$timeRateSlide.on('change', function () { var $this = $(this); self.timeRate = $this.prop("value"); }) 316 317 self.$reliabilityRate = $("#reliabilityRate") 318 self.$reliabilityRate.ionRangeSlider({ onStart: function (data) { self.reliabilityRate = data.from } }); 319 self.$reliabilityRate.on('change', function () { var $this = $(this); self.reliabilityRate = $this.prop("value"); }) 320 321 self.$fairCommissionSelect = $("#FairCommission") 322 self.$fairCommissionSelect.on('change', function (data) { var $this = $(this); self.fairCommission = $this.prop("value"); }) 323 }, 324 template: '<div class="leadRateInnerContainer" v-if="dataLoaded"> <div class="pull-left closeIcone" v-on:click="hideLeadRateWindow()"><i class="fas fa-times"></i></div> <h3 class="">×× ××××× ×××¤× ×× ×©×©×××ª× × - {{ CurrentLead.Reciever.Member.name }} ××צע×!</h3> <p class="font_18">×¢×ש×× ×××× ×××¨× ××ספר ×¢× ××ª× ×¡×ת×× (×××ר×× ××× × ×× ×× ×××)</p> <div id="LeadFormContainer" v-if="showLeadForm"> <div class="col-xs-12"> <div class="noPadding pull-right"><h5 class="noMargin">×©× ×ש×ר×ת:</h5></div><div class="col-xs-9 col-md-9 serviceName"> {{ CurrentLead.Name }}</div> </div> <div class="clear spacer_25"></div> <form class="form-inline" > <input type="hidden" id="leadId" name="leadId" :value="CurrentLead.Id"> <div class="col-xs-12"> <div class="col-xs-2 col-md-1 noPadding"> <p class="line-height-40 noMargin noPadding padding_top_10"><strong>×××ר</strong></p> </div> <div class="col-xs-10 col-md-11 noPadding"> <input type="text" data-min="0" data-max="10" data-grid-num="10" data-hide-min-max="false" data-from="10" id="priceRate" name="priceRate" /> </div> </div> <div class="clearfix"></div> <div class="col-xs-12"> <div class="col-xs-2 col-md-1 noPadding"> <p class="line-height-40 noM
324argin noPadding padding_top_10"><strong>ש×ר×ת</strong></p> </div> <div class="col-xs-10 col-md-11 noPadding"> <input type="text" data-min="0" data-max="10" data-grid-num="10" data-hide-min-max="false" :data-from="10" id="serviceRate" name="serviceRate" /> </div> </div> <div class="clearfix"></div> <div class="col-xs-12"> <div class="col-xs-2 col-md-1 noPadding"> <p class="line-height-40 noMargin noPadding padding_top_10"><strong>×××× ×ת</strong></p> </div> <div class="col-xs-10 col-md-11 noPadding"> <input type="text" data-min="0" data-max="10" data-grid-num="10" data-hide-min-max="false" :data-from="10" id="timeRate" name="timeRate" /> </div> </div> <div class="clearfix"></div> <div class="col-xs-12"> <div class="col-xs-2 col-md-1 noPadding"> <p class="line-height-40 noMargin noPadding padding_top_10"><strong>×××× ×ת</strong></p> </div> <div class="col-xs-10 col-md-11 noPadding"> <input type="text" data-min="0" data-max="10" data-grid-num="10" data-hide-min-max="false" :data-from="10" id="reliabilityRate" name="reliabilityRate" /> </div> </div> <div class="clear spacer_25"></div> <div class="form-group col-xs-12 col-md-8"> <select class="form-control" id="FairCommission" name="FairCommission"> <option value="">××× ×××ת ×קר××××× ×©×§×××ת ×××ª× ×××× ×ª?</option> <option value="Yes">××</option> <option value="No">××</option> </select> </div> <div class="col-xs-12 col-md-4"> <button type="button" class="btn btn-primary leadRate" v-on:click="saveLeadRate(CurrentLead.Id)"><i class="fas fa-star"></i> ×ר×/×</button> <button type="button" class="btn btn-default pull-left leadRate" v-on:click="ignoreCurrentLeadRate()">×× ×ר××¢</button> </div> <div class="clearfix"></div> </form></div><form v-if="showOpinion"> <div class="form-group col-xs-12"> <label for="content" class="control-label">×¡×¤×¨× ×¢× ×××××ת ×ש×ר×ת שק××××ª× ×{{CurrentLead.Reciever.Member.name}}</label> <textarea id="opinionContent" name="content" class="form-control" rows="8"></textarea> </div> <div class="clearfix"></div> <div class="col-xs-12"> <button type="button" class="btn btn-primary leadRate" v-on:click="addOpinion()"><i class="fas fa-plus"></i> ××ספת ×××ת ×עת</button> <button type="button" class="btn btn-default pull-left leadRate" v-on:click="ignoreCurrentLeadRate()">×× ×ר××¢</button> </div> </form> <div class="endOfLeads" v-if="showEndOfLeads">××¢×××, × ×¨×× ×©××ר×ת ×ת ×× ×××¤× ××ת ש××!</div> </div>' 325 326 }); 327 } 328}, 100);
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.