Best JavaScript code snippet using playwright-internal
monitor.js
Source: monitor.js
1define([2 "jquery",3 "underscore",4 "backbone",5 "circleprogress",6 "text!views/monitor",7 "text!views/header",8 // "css!cs/stylesheets/css/layout.css",9 // "css!cs/stylesheets/css/common.css",10 // "css!cs/stylesheets/main.css",11 // "css!cs/stylesheets/css/animate.css",12 // "css!cs/stylesheets/css/all.css",13 // "css!cs/stylesheets/css/component.css",14 // "css!cs/stylesheets/css/interaction.css"15], function (16 $,17 _,18 Backbone,19 circleprogress,20 monitor,21 header22) {23 var NetworkModel = Backbone.Model.extend({24 url: '/network/networks',25 parse: function (result) {26 return result;27 }28 });29 var UpsModel = Backbone.Model.extend({30 url: '/ups/list',31 parse: function (result) {32 return result;33 }34 });35 var UpsDeviceModel = Backbone.Model.extend({36 url: '/ups/device',37 parse: function (result) {38 return result;39 }40 });41 var ManagerModel = Backbone.Model.extend({42 url: '/manager/managers',43 parse: function (result) {44 return result;45 }46 });47 return Backbone.View.extend({48 el: '.wrapper',49 selectedRow: undefined,50 upsList: undefined,51 initialize: function () {52 this.$el.html(monitor);53 this.$el.closest('body').find('header').html(header);54 this.upsModel = new UpsModel();55 this.listenTo(this.upsModel, "sync", this.getUpsList);56 this.upsModel.fetch();57 },58 events: {59 "click #btn": "imgTest",60 "click .fa-search": "imageShow",61 "click .fa-times": "closePopup"62 },63 imageShow: function (event) {64 var target = event.currentTarget;65 var targetPopup = $(target).closest('.popBox');66 var imgPopTitle = targetPopup.find('.popTit').find('.popText').text();67 var imageFile = $(target).attr('value');68 var imagePath = 'http://119.207.78.144:9091/upload/read/'+imageFile; 69 //var imagePath = 'http://127.0.0.1:9091/upload/read/'+imageFile; 70 this.$el.find(".photoPOP").css('display','block');71 this.$el.find(".photoPOP").find('.tit').find('span').text(imgPopTitle);72 this.$el.find(".photoPOP").find('.imgBox').find("img").attr('src',imagePath);73 },74 closePopup: function(){75 this.$el.find(".photoPOP").css('display','none');76 },77 getNetworkList: function (model) {78 var _this = this;79 var data = model.toJSON();80 var _networkList = Object.keys(data).map(function (i) {81 var _upsId = data[i]["ups_id"] || null;82 if (_upsId) {83 var _networkId = data[i]["id"];84 var _deviceId = data[i]["device_id"];85 var $target = $("#ups-panel-" + _upsId).find(".devList");86 var $mapTarget = $('.upsArea-' + _upsId);87 if (_deviceId === 1) {88 // ups ìì89 var leng = $target.find('.cctv-state').length;90 if (leng === 1) {91 $target.find('.cctv-state').attr("id", "cctv-" + _networkId);92 $target.find('.cctv-state').attr("device-type", _deviceId);93 } else {94 var hasId = $($target.find('.cctv-state')[0]).attr("id");95 $($target.find('.cctv-state')[0]).attr("id", "cctv-" + _networkId);96 $($target.find('.cctv-state')[0]).attr("device-type", _deviceId);97 if (!hasId) {98 $($target.find('.cctv-state')[1]).attr("id", "cctv-" + _networkId);99 $($target.find('.cctv-state')[1]).attr("device-type", _deviceId);100 }101 }102 }103 else if (_deviceId === 2) {104 var leng = $target.find('.scanner-state').length;105 if (leng === 1) {106 $target.find('.scanner-state').attr("id", "scanner-" + _networkId);107 } else {108 var hasId = $($target.find('.scanner-state')[0]).attr("id");109 $($target.find('.scanner-state')[0]).attr("id", "scanner-" + _networkId);110 if (!hasId) {111 $($target.find('.scanner-state')[1]).attr("id", "scanner-" + _networkId);112 }113 }114 }115 else if (_deviceId === 3) {116 var leng = $target.find('.ups-state').length;117 if (leng === 1) {118 $target.find('.ups-state').attr("id", "ups-" + _networkId);119 } else {120 var hasId = $($target.find('.ups-state')[0]).attr("id");121 $($target.find('.ups-state')[0]).attr("id", "ups-" + _networkId);122 if (!hasId) {123 $($target.find('.ups-state')[1]).attr("id", "ups-" + _networkId);124 }125 }126 }127 else if (_deviceId === 4) {128 var leng = $target.find('.server-state').length;129 if (leng === 1) {130 $target.find('.server-state').attr("id", "server-" + _networkId);131 } else {132 var hasId = $($target.find('.server-state')[0]).attr("id");133 $($target.find('.server-state')[0]).attr("id", "server-" + _networkId);134 if (!hasId) {135 $($target.find('.server-state')[1]).attr("id", "server-" + _networkId);136 }137 }138 }139 else if (_deviceId === 5) {140 var leng = $target.find('.wifi-state').length;141 if (leng === 1) {142 $target.find('.wifi-state').attr("id", "wifi-" + _networkId);143 } else {144 var hasId = $($target.find('.wifi-state')[0]).attr("id");145 $($target.find('.wifi-state')[0]).attr("id", "wifi-" + _networkId);146 if (!hasId) {147 $($target.find('.wifi-state')[1]).attr("id", "wifi-" + _networkId);148 }149 }150 }151 else if (_deviceId === 6) {152 var leng = $target.find('.repeater-state').length;153 if (leng === 1) {154 $target.find('.repeater-state').attr("id", "repeater-" + _networkId);155 } else {156 var hasId = $($target.find('.repeater-state')[0]).attr("id");157 $($target.find('.repeater-state')[0]).attr("id", "repeater-" + _networkId);158 if (!hasId) {159 $($target.find('.repeater-state')[1]).attr("id", "repeater-" + _networkId);160 }161 }162 }163 else if (_deviceId === 7) {164 $target.find('.gas-state').attr("id", "gas-status");165 }166 else if (_deviceId === 8) {167 $target.find('.phpoc-state').attr("id", "phpoc-" + _networkId);168 var leng = $target.find('.phpoc-state').length;169 if (leng === 1) {170 $target.find('.phpoc-state').attr("id", "phpoc-" + _networkId);171 } else {172 var hasId = $($target.find('.phpoc-state')[0]).attr("id");173 $($target.find('.phpoc-state')[0]).attr("id", "phpoc-" + _networkId);174 if (!hasId) {175 $($target.find('.phpoc-state')[1]).attr("id", "phpoc-" + _networkId);176 }177 }178 }179 }180 return data[i];181 });182 _this.upsDeviceRead(); // ì¬ê¸°ì setInterval183 this.interval = setInterval(_this.upsDeviceRead, 5000);184 window.logData = _this.logData;185 this.timeout = setTimeout(_this.logData, 6000);186 console.log(this);187 //setTimeout(_this.setLogData, 6000);188 },189 getUpsList: function (model) {190 var _this = this;191 var data = model.toJSON();192 _this.render(data);193 this.networkModel = new NetworkModel();194 this.listenTo(this.networkModel, "sync", this.getNetworkList);195 this.networkModel.fetch();196 },197 render: function (data) {198 var _this = this;199 _this.upsList = {};200 var _upsList = Object.keys(data).map(function (i) {201 // ups ìì ë ëë§202 _this.$el.find(".panel-list-" + i).attr("id", "ups-panel-" + data[i].id);203 _this.$el.find(".panel-list-" + i).find(".Plocation-name").text(data[i].location);204 // map ìì ë ëë§205 var j = parseInt(i) + 1;206 // upspoint id í ë¹207 _this.$el.find('.mapArea').find(".ups_" + j).attr("id", "upsPoint-" + data[i].id);208 // popup id í ë¹209 _this.$el.find('.mapArea').find('.pop_' + j).attr('id', 'popup-panel-' + data[i].id);210 _this.$el.find('.mapArea').find('.pop_' + j).find('.popTit').find('.popText').text(j+". "+data[i].location);211 _this.$el.find('.mapArea').find('.pop_' + j).find('.fa-search').attr('value', data[i].image_path);212 //network upsPoint id í ë¹213 _this.$el.find('#netBox').find('.ups_' + j).attr('id', 'upsPosition-' + data[i].id);;214 var _devArea = _this.$el.find('.devArea-' + j);215 for (let index = 0; index < _devArea.length; index++) {216 _this.$el.find('.devArea-' + j).addClass("upsArea-" + data[i].id);217 }218 data[i].deviceList = [];219 _this.upsList[data[i].id] = data[i];220 return data[i];221 });222 window.upsList = _this.upsList;223 this.managerModel = new ManagerModel();224 this.listenTo(this.managerModel, "sync", this.getManagerList);225 this.managerModel.fetch();226 },227 getManagerList: function (model) {228 var _this = this;229 var data = model.toJSON();230 var _managerList = Object.keys(data).map(function (i) {231 var _upsId = data[i]['ups_id'];232 var _level = data[i]['level'];233 var _name = data[i]['name'];234 var _tel = data[i]['tel'];235 //$target.append(data[i]);236 var $target = $('#popup-panel-' + _upsId);237 var _text = '';238 if (_level === 0) {239 _text = 'ë´ë¹ì(ì ) : ' + _name + ' ' + _tel;240 $target.find('.main').text(_text);241 }242 else if (_level === 1) {243 _text = 'ë´ë¹ì(ë¶) : ' + _name + ' ' + _tel;244 $target.find('.sub').text(_text);245 }246 return data[i];247 });248 },249 upsDeviceRead: function () {250 var _this = this;251 var model = new UpsDeviceModel();252 model.fetch({253 success: function (model, response) {254 var data = model.toJSON()255 var gasList = {};256 var upsDeviceList = Object.keys(data).map(function (i) {257 var _id = data[i]['id'];258 var hasProp = window.upsList.hasOwnProperty(_id);259 if (hasProp) {260 window.upsList[_id]["error_type"] = data[i]['error_type'];261 window.upsList[_id]["use_time"] = data[i]["use_time"];262 window.upsList[_id]["battery_remain"] = data[i]["battery_remain"];263 //window.upsList[_id]["deviceList"].push(data[i]);264 var upsId = data[i]['ups_id'];265 var deviceId = data[i]['device_id'];266 var networkId = data[i]['network_id'];267 var result = data[i]['result'];268 var $target = $('#ups-panel-' + upsId).find('.devList');269 if (deviceId === 1) {270 if (result === 'open') {271 $target.find('#cctv-' + networkId).removeClass('demer');272 $target.find('#cctv-' + networkId).addClass('dnomal');273 $(".mapArea").find('#cctv_icon-' + networkId).removeClass('demer');274 $(".mapArea").find('#cctv_icon-' + networkId).addClass('dnomal');275 276 $(".mapArea").find('#cctv_icon-' + networkId).removeClass('iconVisible');277 278 $("#netBox").find('#cctv_net-' + networkId).removeClass('demer');279 $("#netBox").find('#cctv_net-' + networkId).addClass('dnomal');280 281 }282 else if (result === 'closed') {283 $target.find('#cctv-' + networkId).removeClass('dnomal');284 $target.find('#cctv-' + networkId).addClass('demer');285 286 287 $(".mapArea").find('#cctv_icon-' + networkId).removeClass('dnomal');288 $(".mapArea").find('#cctv_icon-' + networkId).addClass('demer');289 290 var devShowClz = $(".mapArea").find('#cctv_icon-' + networkId).hasClass('devShow');291 if(devShowClz){292 $(".mapArea").find('#cctv_icon-' + networkId).removeClass('devShow');293 }294 $("#netBox").find('#cctv_net-' + networkId).removeClass('dnomal');295 $("#netBox").find('#cctv_net-' + networkId).addClass('demer');296 }297 }298 else if (deviceId === 2) {299 if (result === 'open') {300 $target.find('#scanner-' + networkId).removeClass('demer');301 $target.find('#scanner-' + networkId).addClass('dnomal');302 $target.find('#scanner-' + networkId).html('<img src="./images/scanner_nomal.png">ì¤ìºë');303 $(".mapArea").find('#scanner_icon-' + networkId).removeClass('demer');304 $(".mapArea").find('#scanner_icon-' + networkId).addClass('dnomal');305 $(".mapArea").find('#scanner_icon-' + networkId).html('<img src="./images/scanner_nomal.png">');306 307 $("#netBox").find('#scanner_net-' + networkId).removeClass('demer');308 $("#netBox").find('#scanner_net-' + networkId).addClass('dnomal');309 $("#netBox").find('#scanner_net-' + networkId).html('<img src="./images/scanner_nomal.png">');310 311 312 313 }314 else if (result === 'closed') {315 $target.find('#scanner-' + networkId).removeClass('dnomal');316 $target.find('#scanner-' + networkId).addClass('demer');317 $target.find('#scanner-' + networkId).html('<img src="./images/scanner_emer.png">ì¤ìºë');318 319 $(".mapArea").find('#scanner_icon-' + networkId).removeClass('dnomal');320 $(".mapArea").find('#scanner_icon-' + networkId).addClass('demer');321 $(".mapArea").find('#scanner_icon-' + networkId).html('<img src="./images/scanner_emer.png">');322 323 var devShowClz = $(".mapArea").find('#scanner_net-' + networkId).hasClass('devShow');324 if(devShowClz){325 $(".mapArea").find('#scanner_net-' + networkId).removeClass('devShow');326 }327 $("#netBox").find('#scanner_net-' + networkId).removeClass('dnomal');328 $("#netBox").find('#scanner_net-' + networkId).addClass('demer');329 $("#netBox").find('#scanner_net-' + networkId).html('<img src="./images/scanner_emer.png">');330 }331 }332 else if (deviceId === 3) {333 if (result === 'open') {334 $target.find('#ups-' + networkId).removeClass('demer');335 $target.find('#ups-' + networkId).addClass('dnomal');336 $(".mapArea").find('#ups_icon-' + networkId).removeClass('demer');337 $(".mapArea").find('#ups_icon-' + networkId).addClass('dnomal');338 $("#netBox").find('#ups_net-' + networkId).removeClass('demer');339 $("#netBox").find('#ups_net-' + networkId).addClass('dnomal');340 }341 else if (result === 'closed') {342 $target.find('#ups-' + networkId).removeClass('dnomal');343 $target.find('#ups-' + networkId).addClass('demer');344 $(".mapArea").find('#ups_icon-' + networkId).removeClass('dnomal');345 $(".mapArea").find('#ups_icon-' + networkId).addClass('demer');346 347 var devShowClz = $(".mapArea").find('#ups_icon-' + networkId).hasClass('devShow');348 if(devShowClz){349 $(".mapArea").find('#ups_icon-' + networkId).removeClass('devShow');350 }351 $("#netBox").find('#ups_net-' + networkId).removeClass('dnomal');352 $("#netBox").find('#ups_net-' + networkId).addClass('demer');353 354 }355 }356 else if (deviceId === 4) {357 if (result === 'open') {358 $target.find('#server-' + networkId).removeClass('demer');359 $target.find('#server-' + networkId).addClass('dnomal');360 $(".mapArea").find('#server_icon-' + networkId).removeClass('demer');361 $(".mapArea").find('#server_icon-' + networkId).addClass('dnomal');362 $("#netBox").find('#server_net-' + networkId).removeClass('demer');363 $("#netBox").find('#server_net-' + networkId).addClass('dnomal');364 }365 else if (result === 'closed') {366 $target.find('#server-' + networkId).removeClass('dnomal');367 $target.find('#server-' + networkId).addClass('demer');368 $(".mapArea").find('#server_icon-' + networkId).removeClass('dnomal');369 $(".mapArea").find('#server_icon-' + networkId).addClass('demer');370 var devShowClz = $(".mapArea").find('#server_icon-' + networkId).hasClass('devShow');371 if(devShowClz){372 $(".mapArea").find('#server_icon-' + networkId).removeClass('devShow');373 }374 $("#netBox").find('#server_net-' + networkId).removeClass('dnomal');375 $("#netBox").find('#server_net-' + networkId).addClass('demer');376 }377 }378 else if (deviceId === 5) {379 if (result === 'open') {380 $target.find('#wifi-' + networkId).removeClass('demer');381 $target.find('#wifi-' + networkId).addClass('dnomal');382 $(".mapArea").find('#wifi_icon-' + networkId).removeClass('demer');383 $(".mapArea").find('#wifi_icon-' + networkId).addClass('dnomal');384 $("#netBox").find('#wifi_net-' + networkId).removeClass('demer');385 $("#netBox").find('#wifi_net-' + networkId).addClass('dnomal');386 }387 else if (result === 'closed') {388 $target.find('#wifi-' + networkId).removeClass('dnomal');389 $target.find('#wifi-' + networkId).addClass('demer');390 $(".mapArea").find('#wifi_icon-' + networkId).removeClass('dnomal');391 $(".mapArea").find('#wifi_icon-' + networkId).addClass('demer');392 var devShowClz = $(".mapArea").find('#wifi_icon-' + networkId).hasClass('devShow');393 if(devShowClz){394 $(".mapArea").find('#wifi_icon-' + networkId).removeClass('devShow');395 }396 $("#netBox").find('#wifi_net-' + networkId).removeClass('dnomal');397 $("#netBox").find('#wifi_net-' + networkId).addClass('demer');398 }399 }400 else if (deviceId === 6) {401 if (result === 'open') {402 $target.find('#repeater-' + networkId).removeClass('demer');403 $target.find('#repeater-' + networkId).addClass('dnomal');404 $(".mapArea").find('#repeater_icon-' + networkId).removeClass('demer');405 $(".mapArea").find('#repeater_icon-' + networkId).addClass('dnomal');406 $("#netBox").find('#repeater_net-' + networkId).removeClass('demer');407 $("#netBox").find('#repeater_net-' + networkId).addClass('dnomal');408 }409 else if (result === 'closed') {410 $target.find('#repeater-' + networkId).removeClass('dnomal');411 $target.find('#repeater-' + networkId).addClass('demer');412 $(".mapArea").find('#repeater_icon-' + networkId).removeClass('dnomal');413 $(".mapArea").find('#repeater_icon-' + networkId).addClass('demer');414 var devShowClz = $(".mapArea").find('#repeater_icon-' + networkId).hasClass('devShow');415 if(devShowClz){416 $(".mapArea").find('#repeater_icon-' + networkId).removeClass('devShow');417 }418 $("#netBox").find('#repeater_net-' + networkId).removeClass('dnomal');419 $("#netBox").find('#repeater_net-' + networkId).addClass('demer');420 }421 }422 else if (deviceId === 7) {423 var hasProp = gasList.hasOwnProperty(upsId);424 if (!hasProp) {425 gasList[upsId] = [];426 }427 gasList[upsId].push(result);428 var gasLeng = gasList[upsId].length;429 if (gasLeng === 4) {430 var _index = gasList[upsId].indexOf('closed');431 if (_index === -1) {432 $target.find('#gas-status').removeClass('demer');433 $target.find('#gas-status').addClass('dnomal');434 $(".mapArea").find('.upsArea-' + upsId + '#gas-status').removeClass('demer');435 $(".mapArea").find('.upsArea-' + upsId + '#gas-status').addClass('dnomal');436 } else {437 $target.find('#gas-status').removeClass('dnomal');438 $target.find('#gas-status').addClass('demer');439 var devShowClz = $(".mapArea").find('.upsArea-' + upsId + '#gas-status').hasClass('devShow');440 if(devShowClz){441 $(".mapArea").find('.upsArea-' + upsId + '#gas-status').removeClass('devShow');442 }443 $(".mapArea").find('.upsArea-' + upsId + '#gas-status').removeClass('dnomal');444 $(".mapArea").find('.upsArea-' + upsId + '#gas-status').addClass('demer');445 }446 }447 }448 else if (deviceId === 8) {449 if (result === 'open') {450 $target.find('#phpoc-' + networkId).removeClass('demer');451 $target.find('#phpoc-' + networkId).addClass('dnomal');452 $("#netBox").find('#phpoc_net-' + networkId).removeClass('demer');453 $("#netBox").find('#phpoc_net-' + networkId).addClass('dnomal');454 455 }456 else if (result === 'closed') {457 $target.find('#phpoc-' + networkId).removeClass('dnomal');458 $target.find('#phpoc-' + networkId).addClass('demer');459 $("#netBox").find('#phpoc_net-' + networkId).removeClass('dnomal');460 $("#netBox").find('#phpoc_net-' + networkId).addClass('demer');461 }462 }463 } // end hasProp ì 무464 return data[i];465 });466 window.main.view.upsBinding();467 window.upsDeviceList = [];468 window.upsDeviceList = upsDeviceList;469 },470 error: function (model, response) {471 },472 });473 },474 upsBinding: function () {475 var _this = this;476 var upsList = window.upsList;477 for (var key in upsList) {478 if (upsList.hasOwnProperty(key)) {479 var _id = upsList[key]["id"];480 var $upsTarget = $('#ups-panel-' + _id);481 var $popTarget = $('#popup-panel-' + _id);482 var errorType = upsList[key]["error_type"]; // 0:ì ì, 1: ì ì , 2: ë°©ì , 3:ë¤í¸ìí¬ ì¥ì 483 var upsHasNormalClz = $upsTarget.find(".line-condition").hasClass("nomal");484 var upsHasEmerClz = $upsTarget.find(".line-condition").hasClass("emer");485 var networkHasNormalClz = $upsTarget.find(".network-condition").hasClass("nomal");486 var networkHasEmerClz = $upsTarget.find(".network-condition").hasClass("emer");487 var _bottomNomalHTHML = '<img src="./images/1st.png"><img src="./images/1st.png"><img src="./images/1st.png">';488 var _bottomErrorHTHML = '<img src="./images/2nd.png"><img src="./images/2nd.png"><img src="./images/2nd.png">';489 var upsCanvasLeng = $upsTarget.find('.circle').find('canvas').length;490 var popCanvasLeng = $popTarget.find('.circle').find('canvas').length;491 var upsSpanLeng = $upsTarget.find(".line-condition").find('span').length;492 if (errorType !== 1) {493 // ups ìì494 if (upsCanvasLeng === 1) {495 $upsTarget.find('.circle').children().css('display', 'none');496 $upsTarget.find(".line-condition").removeClass("circle");497 }498 // íì
ìì499 if (popCanvasLeng === 1) {500 $popTarget.find('.circle').children().css('display', 'none');501 $popTarget.find(".line-condition").removeClass("circle");502 }503 // // $upsTarget.find(".circle").empty();504 }505 else if (errorType === 1) {506 //ups ìì507 $upsTarget.find(".line-condition").removeClass("nomal");508 $upsTarget.find(".line-condition").removeClass("emer");509 $upsTarget.find(".line-condition").addClass("circle");510 // if(upsSpanLeng === 0){511 // $upsTarget.find(".line-condition").html("<span></span>");512 // }513 $upsTarget.find(".ac").empty();514 $upsTarget.find('.ups-state').find('.bottom').empty();515 // íì
ìì516 $popTarget.find(".line-condition").removeClass("nomal");517 $popTarget.find(".line-condition").removeClass("emer");518 $popTarget.find(".line-condition").addClass("circle");519 // if(popCanvasLeng === 0){520 // $popTarget.find(".line-condition").html("<span></span>");521 // }522 $popTarget.find(".ac").empty();523 $popTarget.find('.ups-state').find('.bottom').empty();524 }525 /** upsPoint ìííì - errorType=0 ì´ì¸ì ê°ìë class=Pemer ì¶ê° **/526 if (errorType === 0) {527 $('#upsPoint-' + _id).removeClass('Pemer');528 $('#upsPosition-' + _id).removeClass('Pemer');529 $('#popup-panel-' + _id).removeClass('pop-emer');530 $('#popup-panel-' + _id).addClass('pop-nomal');531 } else {532 $('#upsPoint-' + _id).addClass('Pemer');533 $('#upsPosition-' + _id).addClass('Pemer');534 $('#popup-panel-' + _id).removeClass('pop-nomal');535 $('#popup-panel-' + _id).addClass('pop-emer');536 $('#popup-panel-' + _id + '.pop-emer').css('display', 'block');537 var hasShow = $('#popup-panel-' + _id).hasClass('show');538 if (hasShow) {539 $('#popup-panel-' + _id).removeClass('show');540 }541 }542 /** ups ìí íì **/543 // ì ì ê³µê¸ ì ì544 if (errorType === 0) {545 // ups ìì546 // ups-state ìì ì¸í°ë ì
547 if (!upsHasNormalClz && upsHasEmerClz) {548 $upsTarget.find(".line-condition").removeClass("emer");549 $upsTarget.find(".line-condition").addClass("nomal");550 $upsTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);551 $popTarget.find(".line-condition").removeClass("emer");552 $popTarget.find(".line-condition").addClass("nomal");553 $popTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);554 }555 else if (!upsHasNormalClz && !upsHasEmerClz) {556 $upsTarget.find(".line-condition").addClass("nomal");557 $upsTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);558 $popTarget.find(".line-condition").addClass("nomal");559 $popTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);560 }561 // network-state ìì ì¸í°ë ì
562 if (!networkHasNormalClz && networkHasEmerClz) {563 // ups-state564 $upsTarget.find(".network-condition").removeClass("emer");565 $upsTarget.find(".network-condition").addClass("nomal");566 $upsTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);567 $popTarget.find(".network-condition").removeClass("emer");568 $popTarget.find(".network-condition").addClass("nomal");569 $popTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);570 }571 else if (!networkHasNormalClz && !networkHasEmerClz) {572 $upsTarget.find(".network-condition").addClass("nomal");573 $upsTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);574 $popTarget.find(".network-condition").addClass("nomal");575 $popTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);576 }577 var _html = '<i class="fas fa-plug"></i><br>'578 + '<span>220 V</span>';579 $upsTarget.find(".ac").html(_html);580 $popTarget.find(".ac").html(_html);581 $('#popup-panel-' + _id + '.pop-nomal').css('display', 'none');582 var hasShow = $(".popBox").siblings().hasClass('show');583 if (hasShow) {584 $('#popup-panel-' + _id + '.pop-nomal').addClass('show');585 }586 }587 // ì ì -ì ì ê³µê¸ ì¥ì (ë°°í°ë¦¬ ì¬ì©)588 else if (errorType === 1) {589 console.log('errorType-->',upsList[key]);590 // ups ìì ì°¨í¸591 $upsTarget.find('.circle').children().css('display', 'block');592 var _batteryRemain = upsList[key]["battery_remain"];593 594 var $upsCircle = $upsTarget.find('.circle');595 var upsHasCanvas = $upsCircle.find('canvas').length;596 var _percentVal = _batteryRemain / 100;597 if (upsHasCanvas === 0) {598 //_this.chartFnc(_batteryRemain);599 $upsTarget.find(".circle").html("<span class='bettery-per'></span>");600 $upsTarget.find('.circle').children().css('display', 'block');601 $upsCircle.find('span').html('<i class="fas fa-car-battery"></i><br>' + _batteryRemain + '<i>%</i>');602 603 $upsCircle.circleProgress({604 value: _percentVal,605 startAngle: -Math.PI / 6 * 3,606 lineCap: 'round',607 fill: { color: '#22BD09' }608 }).on('circle-animation-progress', function (event, progress) {609 610 });611 }612 else if (upsHasCanvas >= 1) {613 $upsCircle.circleProgress('value', _percentVal);614 $upsCircle.find('span').html('<i class="fas fa-car-battery"></i><br>' + _batteryRemain + '<i>%</i>');615 }616 //popup ìì ì°¨í¸617 $popTarget.find('.circle').children().css('display', 'block');618 var _batteryRemain = upsList[key]["battery_remain"];619 var $popCircle = $popTarget.find('.circle');620 var popHasCanvas = $popCircle.find('canvas').length;621 var _percentVal = _batteryRemain / 100;622 if (popHasCanvas === 0) {623 //_this.chartFnc(_batteryRemain);624 $popTarget.find(".line-condition").html("<span class='bettery-per'></span>");625 $popTarget.find('.circle').children().css('display', 'block');626 $popCircle.find('span').html('<i class="fas fa-car-battery"></i><br>' + _batteryRemain + '<i>%</i>');627 $popCircle.circleProgress({628 value: _percentVal,629 startAngle: -Math.PI / 6 * 3,630 lineCap: 'round',631 fill: { color: '#22BD09' }632 }).on('circle-animation-progress', function (event, progress) {633 });634 }635 else if (popHasCanvas >= 1) {636 $popCircle.circleProgress('value', _percentVal);637 $popCircle.find('span').html('<i class="fas fa-car-battery"></i><br>' + _batteryRemain + '<i>%</i>');638 }639 // ë°°í°ë¦¬ ì¬ì©ìê° ì ì©640 /* sample */ 641 // var _useTime = String(1.26);642 var usedTime = upsList[key]["use_time"];643 if(usedTime){644 var _useTime = String(upsList[key]["use_time"]);645 var subTime = _useTime.split('.');646 var usedHour = subTime[0] * 60;647 var subMin = (subTime[1].length !== 1) ? subTime[1] : subTime[1] + "0";648 var usedMinute = Math.round(60 * (subMin / 100));649 var _time = usedHour + usedMinute;650 //$upsTarget.find('.bottom').text('29min');651 $upsTarget.find('.ups-state').find('.bottom').text(_time + 'min');652 $popTarget.find('.ups-state').find('.bottom').text(_time + 'min');653 } else {654 $upsTarget.find('.ups-state').find('.bottom').text('--min');655 $popTarget.find('.ups-state').find('.bottom').text('--min');656 }657 // network-state ìì ì¸í°ë ì
658 if (!networkHasNormalClz && networkHasEmerClz) {659 $upsTarget.find(".network-condition").removeClass("emer");660 $upsTarget.find(".network-condition").addClass("nomal");661 $upsTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);662 $popTarget.find(".network-condition").removeClass("emer");663 $popTarget.find(".network-condition").addClass("nomal");664 $popTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);665 }666 else if (!networkHasNormalClz && !networkHasEmerClz) {667 $upsTarget.find(".network-condition").addClass("nomal");668 $upsTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);669 $popTarget.find(".network-condition").addClass("nomal");670 $popTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);671 }672 }673 // ë°©ì , ë¤í¸ìí¬ ì¥ì 674 else if (errorType === 2) {675 // ups-state ìì 676 if (upsHasNormalClz && !upsHasEmerClz) {677 // ups ìì678 $upsTarget.find(".line-condition").removeClass("nomal");679 $upsTarget.find(".line-condition").addClass("emer");680 $upsTarget.find('.bottom').html(_bottomErrorHTHML);681 // pop ìì682 $popTarget.find(".line-condition").removeClass("nomal");683 $popTarget.find(".line-condition").addClass("emer");684 $popTarget.find('.bottom').html(_bottomErrorHTHML);685 }686 else if (!upsHasNormalClz && !upsHasEmerClz) {687 $upsTarget.find(".line-condition").addClass("emer");688 $upsTarget.find('.bottom').html(_bottomErrorHTHML);689 $popTarget.find(".line-condition").addClass("emer");690 $popTarget.find('.bottom').html(_bottomErrorHTHML);691 }692 // network-state ìì693 if (networkHasNormalClz && !networkHasEmerClz) {694 $upsTarget.find(".network-condition").removeClass("nomal");695 $upsTarget.find(".network-condition").addClass("emer");696 $upsTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);697 $popTarget.find(".network-condition").removeClass("nomal");698 $popTarget.find(".network-condition").addClass("emer");699 $popTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);700 }701 else if (!networkHasNormalClz && !networkHasEmerClz) {702 $upsTarget.find(".network-condition").addClass("emer");703 $upsTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);704 $popTarget.find(".network-condition").addClass("emer");705 $popTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);706 }707 var _html = '<i class="fas fa-car-battery"></i><br>'708 + '<span>00 %</span>';709 $upsTarget.find(".ac").html(_html);710 $popTarget.find(".ac").html(_html);711 }712 // ë¤í¸ìí¬ ì¥ì 713 else if (errorType === 3) {714 // ups-state ìì 715 if (!upsHasNormalClz && upsHasEmerClz) {716 $upsTarget.find(".line-condition").removeClass("emer");717 $upsTarget.find(".line-condition").addClass("nomal");718 $upsTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);719 $popTarget.find(".line-condition").removeClass("emer");720 $popTarget.find(".line-condition").addClass("nomal");721 $popTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);722 }723 else if (!upsHasNormalClz && !upsHasEmerClz) {724 $upsTarget.find(".line-condition").addClass("nomal");725 $upsTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);726 $popTarget.find(".line-condition").addClass("nomal");727 $popTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);728 }729 // network-state ìì 730 if (networkHasNormalClz && !networkHasEmerClz) {731 $upsTarget.find(".network-condition").removeClass("nomal");732 $upsTarget.find(".network-condition").addClass("emer");733 $upsTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);734 $popTarget.find(".network-condition").removeClass("nomal");735 $popTarget.find(".network-condition").addClass("emer");736 $popTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);737 }738 else if (!networkHasNormalClz && !networkHasEmerClz) {739 $upsTarget.find(".network-condition").addClass("emer");740 $upsTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);741 $popTarget.find(".network-condition").addClass("emer");742 $popTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);743 }744 var _html = '<i class="fas fa-plug"></i><br>'745 + '<span>220 V</span>';746 $upsTarget.find(".ac").html(_html);747 $popTarget.find(".ac").html(_html);748 }749 }750 }751 },752 logData: function () {753 var _this = this;754 var upsDeviceList = window.upsDeviceList;755 if (upsDeviceList) {756 var delaySec = 200;757 for (i in upsDeviceList) {758 (function (ii) {759 setTimeout(function () {760 var deviceId = upsDeviceList[ii].device_id;761 var _logListLeng = $('.logList').find('li').length;762 if (_logListLeng >= 50) {763 $('.logList').find('li:last').remove();764 }765 if (upsDeviceList[ii].result === 'open') {766 //$('.logList').prepend('<li>' + upsDeviceList[ii].device_name + ' ' + upsDeviceList[ii].ups_location + ' --> ì ì</li>');767 $('.logList').prepend('<li>NMS' + upsDeviceList[ii].device_idx + 'A' + upsDeviceList[ii].device_index + ' '+upsDeviceList[ii].port+'</li>');768 }769 else if (upsDeviceList[ii].result === 'closed') {770 //$('.logList').prepend('<li style="color:#ff0000;">' + upsDeviceList[ii].device_name + ' ' + upsDeviceList[ii].ups_location + ' --> ì¥ì </li>');771 $('.logList').prepend('<li style="color:#ff0000;">NMS' + upsDeviceList[ii].device_idx + 'A' + upsDeviceList[ii].device_index + ' '+upsDeviceList[ii].port+'</li>');772 }773 if (ii == (upsDeviceList.length - 1)) {774 this.logData();775 }776 }, ii * delaySec)777 })(i);778 }779 }780 },781 destroy: function () {782 clearInterval(this.interval);783 clearTimeout(this.timeout);784 this.undelegateEvents();785 },786 });...
memoryRoomMine.js
Source: memoryRoomMine.js
1var memoryRoomMine = {2 setup: function(room){3 var runLinks = require('runLinks');4 // Memory objects5 var mem = Memory.rooms[room.name];6 for (i in mem.sources) {7 mem.sources[i]['slots'] = mem.sources[i].plain;8 mem.sources[i]['work'] = 5;9 mem.sources[i]['energy'] = Game.getObjectById(mem.sources[i].id).energy;10 }11 // Uniquely initialised room properties ================================12 // Get position of spawn13 if (typeof mem.posSpawn === 'undefined') {14 var spawn = room.find(FIND_STRUCTURES, {15 filter: (structure) => {return (structure.structureType == STRUCTURE_SPAWN)}});16 if (spawn.length) {17 var spawn = spawn[0];18 mem.posSpawn = {x: spawn.pos.x, y:spawn.pos.y};19 }20 }21 // Dynamic room properties =============================================22 // Find construction sites23 var sites = room.find(FIND_CONSTRUCTION_SITES);24 // Find dropped energy25 var piles = room.find(FIND_DROPPED_RESOURCES,26 {filter: (dropped) => {return (dropped.energy > (room.carryCapacity / 3))}});27 // Find energy sinks28 var sinks = room.find(FIND_STRUCTURES, {29 filter: (structure) => {return (((30 structure.structureType == STRUCTURE_EXTENSION ||31 structure.structureType == STRUCTURE_SPAWN) &&32 structure.energy < structure.energyCapacity) ||33 (structure.structureType == STRUCTURE_TOWER &&34 structure.energy < structure.energyCapacity / 2) ||35 (structure.structureType == STRUCTURE_TERMINAL &&36 _.sum(Game.rooms.E54N48.terminal.store) < 200000));}});37 mem.links_sinks = [];38 mem.links_sources = [];39 mem.objectsSites = sites;40 mem.objectsPiles = piles;41 mem.objectsSinks = sinks;42 // List jobs ===========================================================43 mem.joblistPickup = [];44 mem.joblistRepairRoads = [];45 mem.joblistRepairContainers = [];46 mem.joblistRepairWalls = [];47 mem.joblistRepairRamps = [];48 var defense = 1000;49 // List of pickup jobs -----------------------------------------------50 // Currently, list of pickups is generated afresh every single tick51 // Any worker thats full52 //for(var i in mem.creeps.workers) {53 // var worker = Game.getObjectById(mem.creeps.workers[i])54 // if (worker.carry.energy == worker.carryCapacity &&55 // !_.some(worker.id, mem.jobs.pickups)) {56 // mem.jobs.pickups.push(worker.id)57 // }58 //}59 // Any dropped ressources 100+60 var drops = (room.find(FIND_DROPPED_RESOURCES, {61 filter: {resourceType: RESOURCE_ENERGY}}))62 if (drops.length) {63 for(var i = 0; i < drops.length; i++) {64 var drop = drops[i]65 if (!_.some( mem.joblistPickup, drop.id) &&66 drop.amount >= 100) {67 mem.joblistPickup.push(drop.id)68 }69 }70 }71 // Any container with 500+72 var containers = room.find(FIND_STRUCTURES, {filter: {structureType: STRUCTURE_CONTAINER}});73 if (containers.length) {74 for(var c = 0; c < containers.length; c++) {75 var cont = containers[c]76 if (!_.some(cont.id, mem.joblistPickup) &&77 cont.store[RESOURCE_ENERGY] >= 200) {78 mem.joblistPickup.push(cont.id)79 }80 }81 }82 // Run Links -----------------------------------------------------------83 // /*/*84 // //Links given my run.links85 // var links = mem.links86 // if (typeof links != 'undefined' &&87 // links.length) {88 // for(var link in links) {89 // thislink = Game.getObjectById(link)90 // mem.joblistPickup.push(thislink.id)91 // }92 // }93 // // Links if three links and link 3 full94 // var links = room.find(FIND_STRUCTURES, {95 // filter: (structure) => {96 // return (structure.structureType == STRUCTURE_LINK)}});97 // if (links.length > 2 &&98 // links[2].energy > 0 &&99 // links[0].energy > 0) {100 // mem.joblistPickup.push(links[0].id)101 // }*/*/102 var storage = room.storage103 if (typeof storage !== 'undefined') {104 if (storage.length > 0) {105 mem.joblistPickup.push(storage.id)106 }107 }108 // List of upkeep jobs -----------------------------------------------109 // Add new jobs110 // Find all ramps111 var jobRamps = room.find(FIND_MY_STRUCTURES, {112 filter: (structure) => {113 return (structure.structureType == 'rampart' &&114 structure.hits < defense)}});115 _.forEach(jobRamps, function(job) {116 if (!_.some(mem.joblistRepairRamps, job.id)) {117 mem.joblistRepairRamps.push(job.id)118 }119 })120 // Find all roads121 var jobRoads = room.find(FIND_STRUCTURES, {122 filter: (structure) => {123 return (structure.structureType == 'road' &&124 structure.hits < (structure.hitsMax - 1000))}});125 for (j in jobRoads){126 if (!_.some(mem.joblistRepairRoads, jobRoads[j].id)) {127 mem.joblistRepairRoads.push(jobRoads[j].id)128 }129 }130 // Find all containers131 var jobConts = room.find(FIND_STRUCTURES, {132 filter: (structure) => {133 return (structure.structureType == 'container' &&134 structure.hits < 200000)}});135 for (j in jobConts){136 if (!_.some(mem.joblistRepairContainers, jobConts[j].id)) {137 mem.joblistRepairContainers.push(jobConts[j].id)138 }139 }140 // Find all walls141 var jobsWalls = room.find(FIND_STRUCTURES, {142 filter: (structure) => {143 return (structure.structureType == 'constructedWall' &&144 structure.hits < defense)}});145 for (j in jobsWalls){146 if (!_.some(mem.joblistRepairWalls, jobsWalls[j].id)) {147 mem.joblistRepairWalls.push(jobsWalls[j].id)148 }149 }150 // Remove done jobs151 // Done ramps152 var joblist = mem.joblistRepairRamps;153 var jobRamps = room.find(FIND_MY_STRUCTURES, {154 filter: (structure) => {return155 (structure.structureType == 'rampart' &&156 (structure.hits > defense ||157 structure.hits == structure.hitsMax))}});158 _.forEach(jobRamps, function(job) {159 if (_.some(mem.joblistRepairRamps, job.id)) {160 joblist.splice(joblist.indexOf(job.id),1)161 }162 })163 // Done roads164 var joblist = mem.joblistRepairRamps;165 var jobRoads = room.find(FIND_STRUCTURES, {166 filter: (structure) => {167 return (structure.structureType == 'road' &&168 structure.hits >= (structure.hitsMax - 2000))}});169 for (j in jobRoads){170 if (_.some(joblist, jobRoads[j].id)) {171 joblist.splice(joblist.indexOf(jobRoads[j]),1)172 }173 }174 // Done conts175 var joblist = mem.joblistRepairContainers;176 var jobConts = room.find(FIND_STRUCTURES, {177 filter: (structure) => {178 return (structure.structureType == 'container' &&179 structure.hits >= (structure.hitsMax - 2000))}});180 for (j in jobConts){181 if (_.some(joblist, jobConts[j].id)) {182 joblist.splice(joblist.indexOf(jobConts[j]),1)183 }184 }185 // Done walls186 var joblist = mem.joblistRepairWalls;187 var jobsWalls = room.find(FIND_STRUCTURES, {188 filter: (structure) => {189 return (structure.structureType == 'constructedWall' &&190 structure.hits >= 5000)}});191 for (j in jobsWalls){192 if (_.some(joblist, jobsWalls[j].id)) {193 joblist.splice(joblist.indexOf(jobsWalls[j]),1)194 }195 }196 // Generate spawning list ==============================================197 // Creep population targets:198 var popTarget = {199 generalist: 0,200 worker: 0,201 carrier: 0,202 upgrader: 0,203 builder: 0,204 defender: 0,205 hauler: 0,206 miner: 0,207 warrior: 0,208 healer: 0209 };210 // Number of plain fields next to sources211 var slots = _.sum(mem.sources, function(source) {return source.plain});212 var nSources = Object.keys(mem.sources).length;213 // If low lvl room, use generalists214 if (room.energyCapacityAvailable <= 300) {215 popTarget['generalist'] = Math.min(216 Math.floor(slots * 1.5),217 nSources * 1); //5218 }219 else if (room.energyCapacityAvailable <= 400) {220 popTarget['generalist'] = Math.min(221 Math.floor(slots * 1.5),222 nSources * 1); //3223 }224 else if (room.energyCapacityAvailable <= 600) {225 popTarget['generalist'] = Math.min(226 Math.floor(slots * 1.5),227 nSources * 1); //2228 }229 else if (room.energyCapacityAvailable <= 800) {230 popTarget['generalist'] = Math.min(231 Math.floor(slots * 1.5),232 nSources * 1); //1.5233 }234 // Else, user worker carrier model235 else if (room.energyCapacityAvailable > 800) {236 popTarget['worker'] = nSources;237 popTarget['carrier'] = 2;238 popTarget['upgrader'] = 1;239 // If there is a construction site, there should be a builder240 if (sites.length) {241 popTarget['builder'] = 1;242 }243 // If there is an extractor, there should be a miner244 if (room.find(FIND_MY_STRUCTURES, {245 filter: { structureType: STRUCTURE_EXTRACTOR}}).length) {246 popTarget['miner'] = 1;247 }248 }249 // Census of actual creep population -----------------------------------250 // Get all creeps in this room251 var creeps = _.filter(Game.creeps, function(o) {252 return o.room.name == room.name;253 });254 // Get number of creeps per role255 var pop = _.countBy(creeps, 'memory.role');256 var joblistSpawn = [];257 for (role in popTarget) {258 // Fill in zero values259 if (typeof pop[role] === 'undefined') {260 pop[role] = 0;261 }262 // Compare actual to target263 if (pop[role] < popTarget[role]) {264 joblistSpawn.push(role);265 }266 }267 mem['joblistSpawn'] = joblistSpawn;268 // Restart room ========================================================269 if (pop['generalist'] < 4 &&270 pop['carrier'] === 0) {271 var spawns = room.find(FIND_MY_STRUCTURES, {filter: {structureType: STRUCTURE_SPAWN}});272 if (spawns.length) {273 var spawn = _.sortByOrder(spawns, 'energy', 'desc')[0];274 if (room.energyCapacityAvailable <= 800) {275 spawn.spawnGeneralist(spawn.room.energyAvailable)276 }277 else if (room.energyCapacityAvailable > 800) {278 // If storage is non-empty279 if (typeof room.storage !== 'undefined' &&280 room.storage.store[RESOURCE_ENERGY] > 1000) {281 spawn.spawnCarrier(spawn.room.energyAvailable);282 }283 else {284 spawn.spawnGeneralist(spawn.room.energyAvailable);285 }286 }287 }288 }289 }290};...
vueselect.js
Source: vueselect.js
1Vue.component('vueselect',{2 template: `3<div class="ui-select">4 <div style="position:relative !important;" :class="{'popup':ispop}">5 <div class="ui-mini ui-btn ui-icon-carat-d ui-btn-icon-right ui-corner-all"6 @click="pop($event)" :class="{'ui-btn-active': isactive}" @mousedown="mousedown" @mouseup="mouseup" @mouseleave="mouseup">7 <a>{{ options[data.selected] }}</a>8 </div>9 <div v-show="options.length != 0 && ispop" class="overlayMask" :class="{'fullscreen':isFullScreen}" @click="!isFullScreen?hide():''"></div>10 <ul v-show="options.length != 0 && ispop" class="ui-selectmenu ui-selectmenu-list ui-listview ui-corner-all" style="position:absolute !important;overflow:auto;" :style="optionBoxPos">11 <div v-if="isFullScreen" class="ui-header ui-first-child">12 <div class="ui-btn ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-left" @click="hide"></div>13 <div class="ui-title">{{ title() }}</div>14 </div>15 <li @click="select($event)" :value="key" :class="{'ui-first-child': key === 0 && !isFullScreen, 'ui-last-child': key === (options.length - 1)}" v-for="(item, key) in options" :key="key">16 <div class="ui-btn" :class="{'ui-btn-active':key === data.selected}">{{item}}</div>17 </li>18 </ul>19 </div>20</div>`,21 data () {22 return {23 oldoptions: [],24 ispop: false,25 isactive: false,26 poptarget: undefined,27 isFullScreen: false,28 optionBoxPos: {29 top: 0,30 left: 031 },32 poptargetPos: JSON.stringify({33 top: 0,34 left: 0,35 offsetHeight: 0,36 offsetWidth: 037 }),38 objPos: {39 width: 0,40 height: 041 }42 }43 },44 computed: {45 options () {46 return this.data.options47 }48 },49 props: {50 label: {51 type: String,52 default: () => {53 return ''54 }55 },56 data: {57 type: Object,58 default: () => {59 return {60 options: [' '],61 selected: 062 }63 },64 required: true65 }66 },67 methods: {68 newPoptargetPos () {69 return {70 top: common.getElementTop(this.poptarget),71 left: common.getElementLeft(this.poptarget),72 offsetHeight: this.poptarget.offsetHeight,73 offsetWidth: this.poptarget.offsetWidth74 }75 },76 title () {77 return this.label === '' ? ' ' : document.getElementById(this.label).innerText78 },79 pop (event) {80 if (this.options.length === 0) {81 return82 }83 this.ispop = true84 this.poptarget = event.currentTarget85 },86 hide () {87 this.ispop = false88 },89 mousedown () {90 this.isactive = true91 },92 mouseup () {93 this.isactive = false94 },95 select (event) {96 this.data.selected = event.currentTarget.value * 197 this.ispop = false98 },99 listSize (obj) {100 let objarr = Array.from(obj.children)101 if (objarr.length !== this.options.length) {102 objarr.shift()103 }104 return {105 width: obj.offsetWidth,106 height: objarr.reduce((accumulator, currentValue) => {107 return accumulator + currentValue.offsetHeight108 }, 0)109 }110 },111 relocate (obj) {112 let listSize = this.listSize(obj)113 let pageArea = common.getPagearea()114 if (JSON.stringify(this.objPos) !== JSON.stringify(listSize)) {115 if (this.objPos.width === 0 || this.objPos.width === pageArea.width - 32 || listSize.width !== pageArea.width - 32) {116 this.objPos = JSON.parse(JSON.stringify(listSize))117 }118 }119 let newPoptargetPos = this.newPoptargetPos()120 let top = (newPoptargetPos.offsetHeight - listSize.height) / 2121 let left = (newPoptargetPos.offsetWidth - this.objPos.width) / 2122 let right = 'auto'123 let bottom = 'auto'124 let position = 'absolute !important'125 let maxtop = pageArea.height - listSize.height - 16126 let maxleft = pageArea.width - this.objPos.width - 16127 top = (top + newPoptargetPos.top) <= 16 ? (16 - newPoptargetPos.top)128 : ((top + newPoptargetPos.top) > maxtop ? (maxtop - newPoptargetPos.top) : top)129 left = (left + newPoptargetPos.left) <= 16 ? (16 - newPoptargetPos.left)130 : ((left + newPoptargetPos.left) > maxleft ? (maxleft - newPoptargetPos.left) : left)131 if (left + this.objPos.width + newPoptargetPos.left >= pageArea.width - 32) {132 right = '16px'133 }134 if (top + listSize.height + newPoptargetPos.top >= pageArea.height - 32) {135 position = 'fixed !important'136 top = 16137 left = 16138 right = '16px'139 bottom = '16px'140 this.isFullScreen = true141 } else {142 this.isFullScreen = false143 }144 return {145 top: top + 'px',146 left: left + 'px',147 right: right,148 bottom: bottom,149 position: position150 }151 }152 },153 beforeUpdate () {154 if (this.oldoptions.toString() !== this.options.toString()) {155 if (this.data.selected > this.options.length - 1) {156 this.data.selected = 0157 }158 }159 },160 updated () {161 // this.poptargetä½ä¸ºå®ä½ç®æ ,å¤æoptionsåç®æ ä½ç½®åçä¿®æ¹æéæ°å®ä½ï¼é¿å
åçæ»å¾ªç¯162 if (this.poptarget !== undefined &&163 (this.oldoptions.toString() !== this.options.toString() ||164 JSON.stringify(this.newPoptargetPos()) !== this.poptargetPos)) {165 let obj = this.poptarget.nextElementSibling.nextElementSibling166 if (obj.style.display === 'none') {167 return168 }169 this.oldoptions = this.options.slice()170 this.poptargetPos = JSON.stringify(this.newPoptargetPos())171 this.optionBoxPos = this.relocate(obj)172 }173 }...
aim trainer.js
Source: aim trainer.js
...23 24 // æ¾ç¤ºç®æ ï¼ç®æ å©ä½ï¼ä»¥åæ¶é´25 document.querySelector('.play-sets').style.display = 'flex'26 details.beginAt = new Date()27 popTarget(details.target)28}29function saveScore(){30 alert('saved to your account')31}32function popTarget(target,ev){33 target.style.display = 'none'34 if(ev){35 let screenW = ev.target.parentNode.parentNode.clientWidth36 let screenH = ev.target.parentNode.parentNode.clientHeight37 // let tW = ev.target.clientWidth38 // let tH = ev.target.clientHeight39 let tW = 10040 let tH = 10041 //ååtargetçä½ç½®42 let rleft = parseInt(Math.random() * screenW-tW)43 let rtop = parseInt(Math.random() * screenH-tH)44 if(rleft<0)rleft = 045 if(rtop<0)rtop = 046 target.style.left = rleft + 'px'47 target.style.top = rtop + 'px'48 }49 target.style.display = 'block'50}51function hitTarget(ev){52 let {currentScore,totalSum} = details53 details.currentScore++54 if(totalSum-currentScore<=1){55 playEnd()56 }else{57 details.remainCount.innerHTML = details.totalSum - details.currentScore58 popTarget(details.target,ev)59 }60}61function playEnd(){62 details.isPlaying = false63 details.endAt = new Date()64 document.querySelector('.play-sets').style.display = 'none'65 document.querySelector('.result').style.display = 'flex'66 document.querySelector('.avarage-time').innerHTML = parseInt((details.endAt - details.beginAt) / details.totalSum) +"ms"67}68function drawTarget(canvas,flag){69 const ctx = canvas.getContext('2d')70 71 ctx.save()72 ...
main.js
Source: main.js
1import $ from 'jquery';2(function($) {3if (typeof window === 'undefined') return;4var popTarget;5$.fn.instancitePopup = function(){6 7 $(document).on('click', '.pop-up__btn', function (e) {8 e.preventDefault();9 if ($(this).is('[data-href]')) {10 popTarget = $(this).data("href");11 } else {12 popTarget = $(this).attr("href");13 }14 $(popTarget).wrap("<span class='pop-up__placeholder'></span>")15 $(popTarget).prependTo(".pop-up__content");16 $(".pop-up__content > *").addClass("popWrap");17 $(".pop-up").fadeIn();18 $("body").addClass("popOpen");19 $(".close").click(function() {20 closePopup();21 });22 });23 $(document).keydown(function (e) {24 if (e.keyCode === 27) {25 closePopup();26 }27 });28 $('body').on('click touchstart', function (e) {29 if ($(".pop-up").is(":visible")) {30 if ($(e.target).closest(".popWrap").length === 0) {31 closePopup();32 }33 }34 });35};36function closePopup() {37 if ($(".pop-up").is(":visible")) {38 $(".pop-up").fadeOut(function () {39 $("body").removeClass("popOpen");40 $(".pop-up__content > *").removeClass("popWrap");41 $(popTarget).appendTo(".pop-up__placeholder");42 // $(popTarget).unwrap();43 $(".pop-up__content").html("");44 });45 }46}47$.fn.instancitePopup();...
pop.js
Source: pop.js
1var popOpen = null;2var popClose = null;3var popTarget = null;4$(document).ready(function(){5 init();6 popupControl(popOpen,popClose,popTarget);7 // ! popOpen => callPopupì click íì ë popupëìì´ë¦ì ë¶ë¬ìì ë³ìì ë´ì.8 // ! ê·¸ ëìì´ ê³§ = popup ë³ìê° ë¨.9});10function init(){11 popOpen = $('.callPopup');12 popClose = $('.pop_close');13 popTarget = $('.popup');14}15function popupControl(popOpen,popClose,popTarget){16 $(popOpen).click(function(){17 var activePopName = $(this).attr('data-popName');18 $("#" + activePopName).addClass('active');19 $(popTarget).css({20 "top": (($(window).height()-$(popTarget).outerHeight())/2+$(window).scrollTop())+"px"21 });22 $("body").css("overflow","hidden");23 });24 $(popClose).click(function(){25 $(popTarget).removeClass('active');26 $("body").css("overflow","auto");27 });...
index.js
Source: index.js
1$(document).ready(function(){2 var popTarget = $(".popup");3 var popClose = $(".pop_close");4 popup($(".callPopup"),popTarget,popClose);5 toggle();6 $('.slider').bxSlider({7 speed: 750,8 infiniteLoop: true,9 touchEnabled: false,10 pager: true11 });12});13function toggle(){14 var $activeTarget = $('header > div > div');15 $('header > div > nav > button').click(function(){16 $activeTarget.toggleClass('active');17 });18}19function popup(popOpen,popTarget,popClose){20 popOpen.click(function(){21 popTarget.addClass("activate");22 });23 popClose.click(function(){24 popTarget.removeClass("activate");25 });...
popup.js
Source: popup.js
1function cleanPopup(){2 $('.popup').removeClass('popactive');3}4function openPopup(poptarget){5 console.log('hoa');6 cleanPopup();7 $(poptarget).addClass('popactive').fadeIn();8}9function closePopup(poptarget){10 $('.popactive').fadeOut();11 cleanPopup();12}13$('.popup_opener').on('click', function(){14 var poptarget = '#' + $(this).attr('poptarget');15 openPopup(poptarget);16})17$('.popup_close').on('click', function(){18 closePopup();...
Using AI Code Generation
1const { popTarget } = require('playwright/lib/server/browserContext');2const { chromium } = require('playwright');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 const target = await page.target();8 await popTarget(context, target);9 await browser.close();10})();
Using AI Code Generation
1const { popTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement');2popTarget();3const { pushTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement');4pushTarget();5const { getTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement');6getTarget();7const { getAction } = require('playwright/lib/server/supplements/recorder/recorderSupplement');8getAction();9const { setAction } = require('playwright/lib/server/supplements/recorder/recorderSupplement');10setAction();11const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement');12setTarget();13const { setSelector } = require('playwright/lib/server/supplements/recorder/recorderSupplement');14setSelector();15const { getSelector } = require('playwright/lib/server/supplements/recorder/recorderSupplement');16getSelector();17const { setActionOptions } = require('playwright/lib/server/supplements/recorder/recorderSupplement');18setActionOptions();19const { getActionOptions } = require('playwright/lib/server/supplements/recorder/recorderSupplement');20getActionOptions();21const { setActionText } = require('playwright/lib/server/supplements/recorder/recorderSupplement');22setActionText();23const { getActionText } = require('playwright/lib/server/supplements/recorder/recorderSupplement');24getActionText();25const { setActionURL } = require('playwright/lib/server/supplements/recorder/recorderSupplement');26setActionURL();
Using AI Code Generation
1const { popTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');2popTarget();3const { pushTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');4pushTarget();5const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');6setTarget();7const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');8setTarget();9const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');10setTarget();11const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');12setTarget();13const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');14setTarget();15const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');16setTarget();17const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');18setTarget();19const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');20setTarget();21const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');22setTarget();23const {
Using AI Code Generation
1const { popTarget } = require('@playwright/test/lib/server/frames');2const { test, expect } = require('@playwright/test');3test('test', async ({ page }) => {4 await page.click('text="Docs"');5 await page.click('text="API"');6 await page.click('text="Page"');7 await page.click('text="page.$"');8 popTarget();9 await page.click('text="page.$eval"');10 await page.click('text="page.$$"');11 await page.click('text="page.$$eval"');12 await page.click('text="page.$x"');13 await page.click('text="page.$eval"');14 await page.click('text="page.$"');15 await page.click('text="page.$eval"');16 await page.click('text="page.$$eval"');17 await page.click('text="page.$x"');18 await page.click('text="page.$eval"');19 await page.click('text="page.$"');20 await page.click('text="page.$eval"');21 await page.click('text="page.$$eval"');22 await page.click('text="page.$x"');23 await page.click('text="page.$eval"');24 await page.click('text="page.$"');25 await page.click('text="page.$eval"');26 await page.click('text="page.$$eval"');27 await page.click('text="page.$x"');28 await page.click('text="page.$eval"');29 await page.click('text="page.$"');30 await page.click('text="page.$eval"');31 await page.click('text="page.$$eval"');32 await page.click('text="page.$x"');33 await page.click('text="page.$eval"');34 await page.click('text="page.$"');35 await page.click('text="page.$eval"');36 await page.click('text="page.$$eval"');37 await page.click('text="page.$x"');38 await page.click('text="page.$eval"');39 await page.click('text="page.$"');40 await page.click('text="page.$eval"');
Using AI Code Generation
1const { popTarget } = require('@playwright/test/lib/server/frames');2const { popTarget } = require('@playwright/test/lib/server/frames');3const { popTarget } = require('@playwright/test/lib/server/frames');4const { popTarget } = require('@playwright/test/lib/server/frames');5const { popTarget } = require('@playwright/test/lib/server/frames');6const { popTarget } = require('@playwright/test/lib/server/frames');7const { popTarget } = require('@playwright/test/lib/server/frames');8const { popTarget } = require('@playwright/test/lib/server/frames');
Using AI Code Generation
1const { popTarget } = require('playwright/lib/server/browserContext');2const target = popTarget();3const page = await target.page();4const browser = await target.browserContext().browser();5const context = await target.browserContext();6const { popTarget } = require('playwright/lib/server/browserContext');7const target = popTarget();8const page = await target.page();9const browser = await target.browserContext().browser();10const context = await target.browserContext();11const { popTarget } = require('playwright/lib/server/browserContext');12const target = popTarget();13const page = await target.page();14const browser = await target.browserContext().browser();15const context = await target.browserContext();16const { popTarget } = require('playwright/lib/server/browserContext');17const target = popTarget();18const page = await target.page();19const browser = await target.browserContext().browser();20const context = await target.browserContext();21const { popTarget } = require('playwright/lib/server/browserContext');22const target = popTarget();
Using AI Code Generation
1const { popTarget, currentTarget } = require('playwright/lib/internal/frames');2popTarget();3console.log(currentTarget());4const { popTarget, currentTarget } = require('playwright/lib/internal/frames');5test('test', async ({ page }) => {6 await page.evaluate(() => {7 popTarget();8 console.log(currentTarget());9 });10});
Jest + Playwright - Test callbacks of event-based DOM library
firefox browser does not start in playwright
Is it possible to get the selector from a locator object in playwright?
How to run a list of test suites in a single file concurrently in jest?
Running Playwright in Azure Function
firefox browser does not start in playwright
This question is quite close to a "need more focus" question. But let's try to give it some focus:
Does Playwright has access to the cPicker object on the page? Does it has access to the window object?
Yes, you can access both cPicker and the window object inside an evaluate call.
Should I trigger the events from the HTML file itself, and in the callbacks, print in the DOM the result, in some dummy-element, and then infer from that dummy element text that the callbacks fired?
Exactly, or you can assign values to a javascript variable:
const cPicker = new ColorPicker({
onClickOutside(e){
},
onInput(color){
window['color'] = color;
},
onChange(color){
window['result'] = color;
}
})
And then
it('Should call all callbacks with correct arguments', async() => {
await page.goto(`http://localhost:5000/tests/visual/basic.html`, {waitUntil:'load'})
// Wait until the next frame
await page.evaluate(() => new Promise(requestAnimationFrame))
// Act
// Assert
const result = await page.evaluate(() => window['color']);
// Check the value
})
Check out the latest blogs from LambdaTest on this topic:
Native apps are developed specifically for one platform. Hence they are fast and deliver superior performance. They can be downloaded from various app stores and are not accessible through browsers.
One of the essential parts when performing automated UI testing, whether using Selenium or another framework, is identifying the correct web elements the tests will interact with. However, if the web elements are not located correctly, you might get NoSuchElementException in Selenium. This would cause a false negative result because we won’t get to the actual functionality check. Instead, our test will fail simply because it failed to interact with the correct element.
Smartphones have changed the way humans interact with technology. Be it travel, fitness, lifestyle, video games, or even services, it’s all just a few touches away (quite literally so). We only need to look at the growing throngs of smartphone or tablet users vs. desktop users to grasp this reality.
As part of one of my consulting efforts, I worked with a mid-sized company that was looking to move toward a more agile manner of developing software. As with any shift in work style, there is some bewilderment and, for some, considerable anxiety. People are being challenged to leave their comfort zones and embrace a continuously changing, dynamic working environment. And, dare I say it, testing may be the most ‘disturbed’ of the software roles in agile development.
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!