UNPKG

nemo-ui

Version:

UI for Nemo View creation

71 lines (66 loc) 2.15 kB
'use strict'; var Nemo = require('nemo'); var path = require('path'); function NemoRemote() { this.nemo = {}; } NemoRemote.prototype.start = function (cb) { var nemoBaseDir = __dirname; var nemo = this.nemo = Nemo(nemoBaseDir, function nemoSetup(err) { if (err) { return cb(err); } nemo.driver.get(nemo.data.baseUrl).then(function () { cb(null); }) }); //).setup().then(function (_nemo) { // self.nemo = _nemo; // return self.nemo.wd.promise.fulfilled(); //}).then(function () { // return self.nemo.driver.get(self.nemo.props.targetBaseUrl); //}); }; NemoRemote.prototype.injectUI = function () { return this.nemo.driver.executeScript(function () { var iframe = document.createElement("iframe"); iframe.setAttribute("src", "http://localhost:2330/remote.html"); iframe.setAttribute('id', 'nemoUI_iframe'); iframe.setAttribute("style", "position: absolute; top:0; right: 0; width: 400px; height: 400px; border: 1px solid #00A000"); document.querySelector("body").appendChild(iframe); }, function (err) { console.log('injectUI err', err); }); }; NemoRemote.prototype.injectWalkerStyle = function () { return this.nemo.driver.executeScript(function () { if (document.querySelector('#__nemo__walker__stylesheet')) { return; } var walkerStyle = document.createElement("style"); walkerStyle.setAttribute('id', '__nemo__walker__stylesheet'); walkerStyle.innerText = '.__nemo__walker__ {border:2px solid red}'; document.querySelector("head").appendChild(walkerStyle); }, function (err) { console.log('injectWalkerStyle err', err); }); }; NemoRemote.prototype.reinjectUI = function () { var self = this; return this.nemo.driver.executeScript(function () { var present = document.querySelector("#nemoUI_iframe"); if (present === null) { return false; } else { return true; } }).then(function (returned) { if (returned === false) { console.log('reinject NemoUI'); self.injectUI(); } }, function (err) { console.log('checkUI error', err); }); }; module.exports = new NemoRemote();