'+ escapeHtml(title) + '
' + escapeHtml(summary) +'
diff --git a/mkdocs.yml b/mkdocs.yml index 8c03223c..cf7d35a4 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,23 +1,7 @@ -site_name: "
+ Uma ferramenta concebida para facilitar o processo de coleta de dados, essencial no suporte às operações e manutenções e sistemas de instalação elétrica. Este sistema foi desenvolvido com o propósito específico de agilizar a obtenção de informações cruciais, aprimorando assim a eficiência nas operações e garantindo uma gestão mais eficaz das instalações elétricas. +
+ +
+ Cadastre Locais e Gerenciar os sistemas de instalações elétricas, sistema de iluminação, cargas elétricas, linhas elétricas,
+ cabeamento estruturado, sistema de refrigeração, sistema de alarme de proteção contra incêndio, quadro de distribuição, circuitos
+ elétricos e sistema de proteção contra Descargas Atmosféricas.
+
+
+
+ Crie e mantenha um registro detalhado de todos os locais e salas dentro da instalação, facilitando a gestão e manutenção das instalações elétricas.
+
+
+
+ Acesse rapidamente todas as instalações registradas e visualize informações detalhadas sobre cada uma delas, incluindo status de manutenção e histórico de serviços.
+
+
+
+ O aplicativo conta com uma funcionalidade de integração
+ em tempo real, permitindo o acompanhamento de localizações e salas
+ registradas. Os usuários podem criar e atualizar locais
+ instantaneamente, garantindo que todas as mudanças sejam refletidas no sistema
+ sem atrasos. Essa funcionalidade é essencial para uma gestão eficiente de ambientes dinâmicos,
+ proporcionando uma visão atualizada e precisa de todas as localizações e salas
+ monitoradas pelo aplicativo.
+
+
+
+ Uma ferramenta concebida para facilitar o processo de coleta de dados, essencial no suporte às operações e manutenções e sistemas de instalação elétrica. Este sistema foi desenvolvido com o propósito específico de agilizar a obtenção de informações cruciais, aprimorando assim a eficiência nas operações e garantindo uma gestão mais eficaz das instalações elétricas. +
+
+ Cadastre Locais e Gerenciar os sistemas de instalações elétricas, sistema de iluminação, cargas elétricas, linhas elétricas,
+ cabeamento estruturado, sistema de refrigeração, sistema de alarme de proteção contra incêndio, quadro de distribuição, circuitos
+ elétricos e sistema de proteção contra Descargas Atmosféricas.
+
+
+
+ Crie e mantenha um registro detalhado de todos os locais e salas dentro da instalação, facilitando a gestão e manutenção das instalações elétricas.
+
+
+
+ Acesse rapidamente todas as instalações registradas e visualize informações detalhadas sobre cada uma delas, incluindo status de manutenção e histórico de serviços.
+
+
+
+ O aplicativo conta com uma funcionalidade de integração
+ em tempo real, permitindo o acompanhamento de localizações e salas
+ registradas. Os usuários podem criar e atualizar locais
+ instantaneamente, garantindo que todas as mudanças sejam refletidas no sistema
+ sem atrasos. Essa funcionalidade é essencial para uma gestão eficiente de ambientes dinâmicos,
+ proporcionando uma visão atualizada e precisa de todas as localizações e salas
+ monitoradas pelo aplicativo.
+
+
+
+ Desenvolvedor Frontend(codifica o frontend e realiza integração com backend), + UX Design(Projeta a interface do usuário, cria protótipos), +
++ Desenvolvedor backend. +
++ Desenvolvedor backend +
++ Responsável pela codificação do backend, configuração da infraestrutura, + e participação na codificação do frontend e integração com o backend. +
++ Levantamento de requisitos,gerenciamento da documentação e + validação com a cliente. +
+' + escapeHtml(summary) +'
' + noResultsText + '
'); + } +} + +function doSearch () { + var query = document.getElementById('mkdocs-search-query').value; + if (query.length > min_search_length) { + if (!window.Worker) { + displayResults(search(query)); + } else { + searchWorker.postMessage({query: query}); + } + } else { + // Clear results for short queries + displayResults([]); + } +} + +function initSearch () { + var search_input = document.getElementById('mkdocs-search-query'); + if (search_input) { + search_input.addEventListener("keyup", doSearch); + } + var term = getSearchTermFromLocation(); + if (term) { + search_input.value = term; + doSearch(); + } +} + +function onWorkerMessage (e) { + if (e.data.allowSearch) { + initSearch(); + } else if (e.data.results) { + var results = e.data.results; + displayResults(results); + } else if (e.data.config) { + min_search_length = e.data.config.min_search_length-1; + } +} + +if (!window.Worker) { + console.log('Web Worker API not supported'); + // load index in main thread + $.getScript(joinUrl(base_url, "search/worker.js")).done(function () { + console.log('Loaded worker'); + init(); + window.postMessage = function (msg) { + onWorkerMessage({data: msg}); + }; + }).fail(function (jqxhr, settings, exception) { + console.error('Could not load worker.js'); + }); +} else { + // Wrap search in a web worker + var searchWorker = new Worker(joinUrl(base_url, "search/worker.js")); + searchWorker.postMessage({init: true}); + searchWorker.onmessage = onWorkerMessage; +} diff --git a/site/search/worker.js b/site/search/worker.js new file mode 100644 index 00000000..8628dbce --- /dev/null +++ b/site/search/worker.js @@ -0,0 +1,133 @@ +var base_path = 'function' === typeof importScripts ? '.' : '/search/'; +var allowSearch = false; +var index; +var documents = {}; +var lang = ['en']; +var data; + +function getScript(script, callback) { + console.log('Loading script: ' + script); + $.getScript(base_path + script).done(function () { + callback(); + }).fail(function (jqxhr, settings, exception) { + console.log('Error: ' + exception); + }); +} + +function getScriptsInOrder(scripts, callback) { + if (scripts.length === 0) { + callback(); + return; + } + getScript(scripts[0], function() { + getScriptsInOrder(scripts.slice(1), callback); + }); +} + +function loadScripts(urls, callback) { + if( 'function' === typeof importScripts ) { + importScripts.apply(null, urls); + callback(); + } else { + getScriptsInOrder(urls, callback); + } +} + +function onJSONLoaded () { + data = JSON.parse(this.responseText); + var scriptsToLoad = ['lunr.js']; + if (data.config && data.config.lang && data.config.lang.length) { + lang = data.config.lang; + } + if (lang.length > 1 || lang[0] !== "en") { + scriptsToLoad.push('lunr.stemmer.support.js'); + if (lang.length > 1) { + scriptsToLoad.push('lunr.multi.js'); + } + if (lang.includes("ja") || lang.includes("jp")) { + scriptsToLoad.push('tinyseg.js'); + } + for (var i=0; i < lang.length; i++) { + if (lang[i] != 'en') { + scriptsToLoad.push(['lunr', lang[i], 'js'].join('.')); + } + } + } + loadScripts(scriptsToLoad, onScriptsLoaded); +} + +function onScriptsLoaded () { + console.log('All search scripts loaded, building Lunr index...'); + if (data.config && data.config.separator && data.config.separator.length) { + lunr.tokenizer.separator = new RegExp(data.config.separator); + } + + if (data.index) { + index = lunr.Index.load(data.index); + data.docs.forEach(function (doc) { + documents[doc.location] = doc; + }); + console.log('Lunr pre-built index loaded, search ready'); + } else { + index = lunr(function () { + if (lang.length === 1 && lang[0] !== "en" && lunr[lang[0]]) { + this.use(lunr[lang[0]]); + } else if (lang.length > 1) { + this.use(lunr.multiLanguage.apply(null, lang)); // spread operator not supported in all browsers: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator#Browser_compatibility + } + this.field('title'); + this.field('text'); + this.ref('location'); + + for (var i=0; i < data.docs.length; i++) { + var doc = data.docs[i]; + this.add(doc); + documents[doc.location] = doc; + } + }); + console.log('Lunr index built, search ready'); + } + allowSearch = true; + postMessage({config: data.config}); + postMessage({allowSearch: allowSearch}); +} + +function init () { + var oReq = new XMLHttpRequest(); + oReq.addEventListener("load", onJSONLoaded); + var index_path = base_path + '/search_index.json'; + if( 'function' === typeof importScripts ){ + index_path = 'search_index.json'; + } + oReq.open("GET", index_path); + oReq.send(); +} + +function search (query) { + if (!allowSearch) { + console.error('Assets for search still loading'); + return; + } + + var resultDocuments = []; + var results = index.search(query); + for (var i=0; i < results.length; i++){ + var result = results[i]; + doc = documents[result.ref]; + doc.summary = doc.text.substring(0, 200); + resultDocuments.push(doc); + } + return resultDocuments; +} + +if( 'function' === typeof importScripts ) { + onmessage = function (e) { + if (e.data.init) { + init(); + } else if (e.data.query) { + postMessage({ results: search(e.data.query) }); + } else { + console.error("Worker - Unrecognized message: " + e); + } + }; +} diff --git a/site/sitemap.xml b/site/sitemap.xml new file mode 100644 index 00000000..0f8724ef --- /dev/null +++ b/site/sitemap.xml @@ -0,0 +1,3 @@ + +