@ -1,7 +1,7 @@
|
|||||||
Metadata-Version: 2.1
|
Metadata-Version: 2.1
|
||||||
Name: pyOpenRPA
|
Name: pyOpenRPA
|
||||||
Version: 1.2.14
|
Version: 1.3.0
|
||||||
Summary: First open source RPA platform for business
|
Summary: The powerful open source RPA platform for business
|
||||||
Home-page: https://pyopenrpa.ru/
|
Home-page: https://pyopenrpa.ru/
|
||||||
Author: Ivan Maslov
|
Author: Ivan Maslov
|
||||||
Author-email: Ivan.Maslov@pyopenrpa.ru
|
Author-email: Ivan.Maslov@pyopenrpa.ru
|
After Width: | Height: | Size: 110 KiB |
@ -0,0 +1,100 @@
|
|||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/reset.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/site.css">
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/container.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/grid.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/header.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/image.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/menu.css">
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/divider.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/dropdown.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/segment.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/button.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/list.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/icon.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/sidebar.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/transition.css">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="pusher tag-top">
|
||||||
|
|
||||||
|
<div class="ui inverted vertical masthead center aligned segment zoomed" style="background-color:#000000; ">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
.main.container {
|
||||||
|
margin-top: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main.menu {
|
||||||
|
margin-top: 4em;
|
||||||
|
border-radius: 0;
|
||||||
|
border: none;
|
||||||
|
box-shadow: none;
|
||||||
|
transition:
|
||||||
|
box-shadow 0.5s ease,
|
||||||
|
padding 0.5s ease
|
||||||
|
;
|
||||||
|
}
|
||||||
|
.main.menu .item img.logo {
|
||||||
|
margin-right: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay {
|
||||||
|
float: left;
|
||||||
|
margin: 0em 3em 1em 0em;
|
||||||
|
}
|
||||||
|
.overlay .menu {
|
||||||
|
position: relative;
|
||||||
|
left: 0;
|
||||||
|
transition: left 0.5s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main.menu.fixed {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
border: 1px solid #DDD;
|
||||||
|
box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
.overlay.fixed .menu {
|
||||||
|
left: 800px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text.container .left.floated.image {
|
||||||
|
margin: 2em 2em 2em -4em;
|
||||||
|
}
|
||||||
|
.text.container .right.floated.image {
|
||||||
|
margin: 2em -4em 2em 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui.footer.segment {
|
||||||
|
margin: 5em 0em 0em;
|
||||||
|
padding: 5em 0em;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="ui text container tag-top">
|
||||||
|
<div class="ui middle aligned stackable grid container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="four wide column">
|
||||||
|
<img src="/orpa/Resources/Web/orpa/styleset/pyOpenRPA_logo.png" width="140px;" height="140px"></img>
|
||||||
|
</div>
|
||||||
|
<div class="twelve wide column">
|
||||||
|
<h1 class="ui inverted header" style="margin-top:0px; margin-bottom:0px;">
|
||||||
|
<span class="library" style="text-transform: uppercase; letter-spacing: 5px; margin-top:0px; margin-bottom:5px; font-weight: bold;">{{title}}</span>
|
||||||
|
</h1>
|
||||||
|
<h2 style="text-transform: uppercase; letter-spacing: 5px; margin-top:0px; margin-bottom:5px;">
|
||||||
|
{{subtitle}}
|
||||||
|
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
@ -0,0 +1,992 @@
|
|||||||
|
var mGlobal={}
|
||||||
|
mGlobal.pyOpenRPA = {}
|
||||||
|
window.onload=function() {
|
||||||
|
//document.cookie = "SessionGUIDStr=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
|
||||||
|
//Render existing data
|
||||||
|
//mGlobal.Monitor.fControlPanelRefresh_TechnicalRender()
|
||||||
|
}
|
||||||
|
$(document).ready(function() {
|
||||||
|
document.cookie = "SessionGUIDStr=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
|
||||||
|
console.log("Cookie is deleted")
|
||||||
|
// fix main menu to page on passing
|
||||||
|
$('.main.menu').visibility({
|
||||||
|
type: 'fixed'
|
||||||
|
});
|
||||||
|
$('.overlay').visibility({
|
||||||
|
type: 'fixed',
|
||||||
|
offset: 80
|
||||||
|
});
|
||||||
|
|
||||||
|
// lazy load images
|
||||||
|
$('.image').visibility({
|
||||||
|
type: 'image',
|
||||||
|
transition: 'vertical flip in',
|
||||||
|
duration: 500
|
||||||
|
});
|
||||||
|
|
||||||
|
// show dropdown on hover
|
||||||
|
$('.main.menu .ui.dropdown').dropdown({
|
||||||
|
on: 'hover'
|
||||||
|
});
|
||||||
|
function clone(obj) {
|
||||||
|
var copy;
|
||||||
|
|
||||||
|
// Handle the 3 simple types, and null or undefined
|
||||||
|
if (null == obj || "object" != typeof obj) return obj;
|
||||||
|
|
||||||
|
// Handle Date
|
||||||
|
if (obj instanceof Date) {
|
||||||
|
copy = new Date();
|
||||||
|
copy.setTime(obj.getTime());
|
||||||
|
return copy;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle Array
|
||||||
|
if (obj instanceof Array) {
|
||||||
|
copy = [];
|
||||||
|
for (var i = 0, len = obj.length; i < len; i++) {
|
||||||
|
copy[i] = clone(obj[i]);
|
||||||
|
}
|
||||||
|
return copy;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle Object
|
||||||
|
if (obj instanceof Object) {
|
||||||
|
copy = {};
|
||||||
|
for (var attr in obj) {
|
||||||
|
if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]);
|
||||||
|
}
|
||||||
|
return copy;
|
||||||
|
}
|
||||||
|
throw new Error("Unable to copy obj! Its type isn't supported.");
|
||||||
|
}
|
||||||
|
//For data storage key
|
||||||
|
mGlobal["DataStorage"] = {}
|
||||||
|
// Clear the session cookie
|
||||||
|
|
||||||
|
String.prototype.replaceAll = function(search, replace){
|
||||||
|
return this.split(search).join(replace);
|
||||||
|
}
|
||||||
|
mGlobal.GeneralGenerateHTMLCodeHandlebars=function(inInnerTemplateSelector,inData) {
|
||||||
|
lHTMLTemplate=$(inInnerTemplateSelector)[0].innerHTML
|
||||||
|
//console.log(lHTMLTemplate)
|
||||||
|
//Компиляция
|
||||||
|
var template = Handlebars.compile(lHTMLTemplate);
|
||||||
|
//Вставка данных
|
||||||
|
var lHTMLResult = template(inData);
|
||||||
|
return lHTMLResult
|
||||||
|
}
|
||||||
|
mGlobal.GeneralGenerateHTMLCode=function(inTemplateHTMLSelector,inItemDictionary,inKeywordPrefix="::",inKeywordPostfix="::") {
|
||||||
|
///Получить заготовку
|
||||||
|
lTemplateHTMLCode=$(inTemplateHTMLSelector)[0].outerHTML
|
||||||
|
///Определить ключь экранирования специальных ключевых слов
|
||||||
|
///Выполнить циклические замены, если там есть пожходящие ключи
|
||||||
|
lResultHTMLCode=lTemplateHTMLCode
|
||||||
|
for(var lKey in inItemDictionary) {
|
||||||
|
lHTMLKey=inKeywordPrefix+lKey+inKeywordPostfix;
|
||||||
|
lResultHTMLCode=lResultHTMLCode.replaceAll(lHTMLKey,inItemDictionary[lKey])
|
||||||
|
}
|
||||||
|
///Вернуть результат
|
||||||
|
return lResultHTMLCode
|
||||||
|
}
|
||||||
|
//////////////////////////
|
||||||
|
/////Info JS module
|
||||||
|
//////////////////////////
|
||||||
|
mGlobal.Info={};
|
||||||
|
|
||||||
|
mGlobal.Info.TableActivityLogScheduleListRefresh=function() {
|
||||||
|
|
||||||
|
}
|
||||||
|
//////////////////////////
|
||||||
|
/////Controller JS module
|
||||||
|
//////////////////////////
|
||||||
|
mGlobal.Controller={};
|
||||||
|
|
||||||
|
mGlobal.Controller.CMDRunText=function(inCMDText) {
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = [
|
||||||
|
{"Type":"CMDStart", "Command": inCMDText}
|
||||||
|
]
|
||||||
|
///Обнулить таблицу
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3){},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Controller.CMDRun=function() {
|
||||||
|
///Обнулить таблицу
|
||||||
|
lCMDCode=$(".openrpa-controller-cmd-run-input")[0].value
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = [
|
||||||
|
{
|
||||||
|
"Def":"OSCMD", // def link or def alias (look gSettings["Processor"]["AliasDefDict"])
|
||||||
|
"ArgList":[], // Args list
|
||||||
|
"ArgDict":{"inCMDStr":lCMDCode,"inRunAsyncBool":false}, // Args dictionary
|
||||||
|
"ArgGSettings": null, // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
"ArgLogger": "inLogger" // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: '/pyOpenRPA/ActivityListExecute',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///Отправить запрос на формирование таблицы
|
||||||
|
//lHTMLCode=console.log("CMDRun result: "+lResponseJSON[0].result)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Controller.CMDRunGUILogout=function() {
|
||||||
|
///Обнулить таблицу
|
||||||
|
lCMDCode="for /f \"skip=1 tokens=2\" %s in ('query user %USERNAME%') do (tscon \\dest:console)"
|
||||||
|
//lCMDCode = lCMDCode.replace(/\\n/g, "\\n")
|
||||||
|
// .replace(/\\'/g, "\\'")
|
||||||
|
// .replace(/\\"/g, '\\"')
|
||||||
|
// .replace(/\\&/g, "\\&")
|
||||||
|
// .replace(/\\r/g, "\\r")
|
||||||
|
// .replace(/\\t/g, "\\t")
|
||||||
|
// .replace(/\\b/g, "\\b")
|
||||||
|
// .replace(/\\f/g, "\\f")
|
||||||
|
// .replace('"', "\\\"");
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = [
|
||||||
|
{"Type":"CMDStart", "Command": lCMDCode }
|
||||||
|
]
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///Отправить запрос на формирование таблицы
|
||||||
|
//lHTMLCode=console.log("CMDRun result: "+lResponseJSON[0].result)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
///Restart PC
|
||||||
|
mGlobal.Controller.PCRestart = function () {
|
||||||
|
mGlobal.Controller.OrchestratorSessionSave()
|
||||||
|
mGlobal.Controller.CMDRunText("shutdown -r")
|
||||||
|
}
|
||||||
|
///Orchestrator save session
|
||||||
|
mGlobal.Controller.OrchestratorSessionSave=function() {
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = [
|
||||||
|
{"Type":"OrchestratorSessionSave"}
|
||||||
|
]
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
///Перезагрузить Orchestrator
|
||||||
|
mGlobal.Controller.OrchestratorRestart=function() {
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = [
|
||||||
|
{"Type":"OrchestratorRestart"}
|
||||||
|
]
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Controller.OrchestratorGITPullRestart = function() {
|
||||||
|
mGlobal.Controller.OrchestratorSessionSave() //Save current RDP list session
|
||||||
|
mGlobal.Controller.CMDRunText("timeout 3 & taskkill /f /im OpenRPA_Orchestrator.exe & timeout 2 & cd "+mGlobal.WorkingDirectoryPathStr+" & git reset --hard & git pull & pyOpenRPA.Orchestrator_x64_administrator_startup.cmd");
|
||||||
|
}
|
||||||
|
//////////////////////////
|
||||||
|
/////Monitor JS module
|
||||||
|
//////////////////////////
|
||||||
|
mGlobal.Monitor={};
|
||||||
|
mGlobal.Monitor.ScreenshotModal={};
|
||||||
|
mGlobal.Monitor.GenerateUniqueID=function(inPrefix="tempUID=") {
|
||||||
|
return inPrefix+Math.round(Math.random()*1000)+"-"+Math.round(Math.random()*10000)+"-"+Math.round(Math.random()*1000)
|
||||||
|
}
|
||||||
|
//inHostURI: http://localhost:8081
|
||||||
|
mGlobal.Monitor.ScreenshotModal.Show=function(inHostURI=" ") {
|
||||||
|
$('.ui.modal.daemon-screenshot').modal({'onHide':function (inElement) {mGlobal.Monitor.ScreenshotModal.Close();} }).modal('show');
|
||||||
|
|
||||||
|
//Функция обновления картинки
|
||||||
|
lScreenshotUpdate=function() {
|
||||||
|
lScreenshotSrc=inHostURI+"/GetScreenshot?"+mGlobal.Monitor.GenerateUniqueID()
|
||||||
|
$(".daemon-screenshot img").attr('src', lScreenshotSrc);
|
||||||
|
}
|
||||||
|
|
||||||
|
mGlobal.Monitor.ScreenshotModal.timerId=setInterval(lScreenshotUpdate,1500)
|
||||||
|
}
|
||||||
|
mGlobal.Monitor.ScreenshotModal.Close=function() {
|
||||||
|
clearInterval(mGlobal.Monitor.ScreenshotModal.timerId);
|
||||||
|
}
|
||||||
|
///Monitor
|
||||||
|
mGlobal.Monitor.DaemonList={}
|
||||||
|
mGlobal.Monitor.DaemonList.fRefreshTable=function() {
|
||||||
|
///Загрузка данных
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: 'Monitor/JSONDaemonListGet',
|
||||||
|
data: '',
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///Сформировать HTML код новой таблицы
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-hidden-monitor-table-general",lResponseJSON)
|
||||||
|
///Очистить дерево
|
||||||
|
//mGlobal.ElementTree.fClear();
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".openrpa-monitor").html(lHTMLCode)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
////////////////////////////////
|
||||||
|
///////Control panel
|
||||||
|
///////////////////////////////
|
||||||
|
///Refresh control panel
|
||||||
|
function sleep(ms) {
|
||||||
|
ms += new Date().getTime();
|
||||||
|
while (new Date() < ms){}
|
||||||
|
}
|
||||||
|
function uuidv4() {
|
||||||
|
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
||||||
|
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
|
||||||
|
return v.toString(16);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.SessionGUIDStr = uuidv4() // Generate uuid4 of the session
|
||||||
|
//console.log(uuidv4());
|
||||||
|
mGlobal.RobotRDPActive = {}
|
||||||
|
mGlobal.Monitor.fControlPanelRefresh_TechnicalRender = function()
|
||||||
|
{
|
||||||
|
lResponseJSON = mGlobal.Monitor.mDatasetLast
|
||||||
|
|
||||||
|
if (lResponseJSON!= null) {
|
||||||
|
/// New version of control panels
|
||||||
|
for (var lKeyStr in lResponseJSON){
|
||||||
|
if (lKeyStr != "RenderRobotList") { /// Check if not "RenderRobotList"
|
||||||
|
lCPDict = lResponseJSON[lKeyStr]
|
||||||
|
/// Render HTML
|
||||||
|
if ("HTMLStr" in lCPDict) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// v1.2.0 Backward compatibility - support old control panels
|
||||||
|
if ("RenderRobotList" in lResponseJSON) {
|
||||||
|
///Escape onclick
|
||||||
|
/// RenderRobotList
|
||||||
|
lResponseJSON["RenderRobotList"].forEach(
|
||||||
|
function(lItem){
|
||||||
|
if ('FooterButtonX2List' in lItem) {
|
||||||
|
/// FooterButtonX2List
|
||||||
|
lItem["FooterButtonX2List"].forEach(
|
||||||
|
function(lItem2){
|
||||||
|
if ('OnClick' in lItem) {
|
||||||
|
lOnClickEscaped = lItem["OnClick"];
|
||||||
|
lOnClickEscaped = lOnClickEscaped.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
||||||
|
lItem["OnClick"] = lOnClickEscaped;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
/// FooterButtonX1List
|
||||||
|
lItem["FooterButtonX1List"].forEach(
|
||||||
|
function(lItem2){
|
||||||
|
if ('OnClick' in lItem) {
|
||||||
|
lOnClickEscaped = lItem["OnClick"];
|
||||||
|
lOnClickEscaped = lOnClickEscaped.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
||||||
|
lItem["OnClick"] = lOnClickEscaped;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
//////////////////////////////////////////////////////////
|
||||||
|
///Сформировать HTML код новой таблицы - контрольная панель
|
||||||
|
lHTMLCode+=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-hidden-control-panel",lResponseJSON)
|
||||||
|
//Присвоить ответ в mGlobal.Monitor.mResponseList
|
||||||
|
mGlobal.Monitor.mResponseList = lResponseJSON
|
||||||
|
///Set result in mGlobal.DataStorage
|
||||||
|
lResponseJSON["RenderRobotList"].forEach(
|
||||||
|
function(lItem){
|
||||||
|
if ('DataStorageKey' in lItem) {
|
||||||
|
mGlobal["DataStorage"][lItem['DataStorageKey']]=lItem
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".openrpa-control-panel").html(lHTMLCode)
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
/// !RDP List ! Сформировать HTML код новой таблицы - список RDP
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-hidden-robotrdpactive-control-panel",lResponseJSON)
|
||||||
|
//Присвоить ответ в mGlobal.RobotRDPActive.mResponseList
|
||||||
|
mGlobal.RobotRDPActive.mResponseList = lResponseJSON
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".openrpa-robotrdpactive-control-panel").html(lHTMLCode)
|
||||||
|
///Очистить дерево
|
||||||
|
//mGlobal.ElementTree.fClear();
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
/// !UserAgent List ! Сформировать HTML код новой таблицы - список RDP
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".pyOpenRPA-Agent-ListTemplate",lResponseJSON)
|
||||||
|
//Присвоить ответ в mGlobal.RobotRDPActive.mResponseList
|
||||||
|
mGlobal.RobotRDPActive.mResponseList = lResponseJSON
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".pyOpenRPA-Agent-List").html(lHTMLCode)
|
||||||
|
///Очистить дерево
|
||||||
|
//mGlobal.ElementTree.fClear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
///v 1.2.0 pyOpenRPA
|
||||||
|
/// Execute ActivityItem
|
||||||
|
mGlobal.pyOpenRPA.ActivityItemExecute=function(inActivityItem) {
|
||||||
|
///EXAMPLE
|
||||||
|
// {
|
||||||
|
// "Def":"OSCMD", // def link or def alias (look gSettings["Processor"]["AliasDefDict"])
|
||||||
|
// "ArgList":[], // Args list
|
||||||
|
// "ArgDict":{"inCMDStr":lCMDCode,"inRunAsyncBool":false}, // Args dictionary
|
||||||
|
// "ArgGSettings": null, // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// "ArgLogger": "inLogger" // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// }
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = [inActivityItem]
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: '/pyOpenRPA/ActivityListExecute',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
console.log(lResponseJSON)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/// Execute ActivityList
|
||||||
|
mGlobal.pyOpenRPA.ActivityListExecute=function(inActivityList) {
|
||||||
|
///EXAMPLE
|
||||||
|
// [{
|
||||||
|
// "Def":"OSCMD", // def link or def alias (look gSettings["Processor"]["AliasDefDict"])
|
||||||
|
// "ArgList":[], // Args list
|
||||||
|
// "ArgDict":{"inCMDStr":lCMDCode,"inRunAsyncBool":false}, // Args dictionary
|
||||||
|
// "ArgGSettings": null, // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// "ArgLogger": "inLogger" // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// }]
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = inActivityList
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: '/pyOpenRPA/ActivityListExecute',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
console.log(lResponseJSON)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/// Add ActivityList in processor queue
|
||||||
|
mGlobal.pyOpenRPA.ProcessorQueueAdd=function(inActivityList) {
|
||||||
|
///EXAMPLE
|
||||||
|
// [{
|
||||||
|
// "Def":"OSCMD", // def link or def alias (look gSettings["Processor"]["AliasDefDict"])
|
||||||
|
// "ArgList":[], // Args list
|
||||||
|
// "ArgDict":{"inCMDStr":lCMDCode,"inRunAsyncBool":false}, // Args dictionary
|
||||||
|
// "ArgGSettings": null, // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// "ArgLogger": "inLogger" // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// }]
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = inActivityList
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: '/pyOpenRPA/ProcessorQueueAdd',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
console.log(lResponseJSON)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// v1.2.0 pyOpenRPA ServerJSInit
|
||||||
|
mGlobal.pyOpenRPA.ServerJSInitDef=function() {
|
||||||
|
try {
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
headers: {},
|
||||||
|
url: 'pyOpenRPA/ServerJSInit',
|
||||||
|
data: mGlobal.pyOpenRPA.ServerDataHashStr,
|
||||||
|
async: false,
|
||||||
|
success: function(lJSText) {
|
||||||
|
try {
|
||||||
|
eval(lJSText)
|
||||||
|
}
|
||||||
|
catch(error) {
|
||||||
|
console.log(error)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dataType: "text",
|
||||||
|
error: function(jqXHR, textStatus, errorThrown ) {
|
||||||
|
console.log(textStatus)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch(error) {
|
||||||
|
console.log(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// v1.2.0 pyOpenRPA ServerData
|
||||||
|
mGlobal.pyOpenRPA.ServerDataDict = null
|
||||||
|
mGlobal.pyOpenRPA.ServerDataHashStr = ""
|
||||||
|
mGlobal.pyOpenRPA.ServerDataRefreshDef_TechnicalRender = function()
|
||||||
|
{
|
||||||
|
lResponseJSON = mGlobal.pyOpenRPA.ServerDataDict
|
||||||
|
if (lResponseJSON!= null) {
|
||||||
|
/// New version of control panels
|
||||||
|
lHTMLCode = '<div class="ui cards">'
|
||||||
|
for (var lKeyStr in lResponseJSON["CPDict"]){
|
||||||
|
lCPDict = lResponseJSON["CPDict"][lKeyStr]
|
||||||
|
/// Render HTML
|
||||||
|
if ("HTMLStr" in lCPDict) {
|
||||||
|
lHTMLCode+=lCPDict["HTMLStr"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lHTMLCode += '</div>'
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".openrpa-control-panel").html(lHTMLCode)
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
/// !RDP List ! Сформировать HTML код новой таблицы - список RDP
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-hidden-robotrdpactive-control-panel",lResponseJSON["RDPDict"])
|
||||||
|
//Присвоить ответ в mGlobal.RobotRDPActive.mResponseList
|
||||||
|
mGlobal.RobotRDPActive.mResponseList = lResponseJSON["RDPDict"]
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".openrpa-robotrdpactive-control-panel").html(lHTMLCode)
|
||||||
|
///Очистить дерево
|
||||||
|
//mGlobal.ElementTree.fClear();
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
/// !UserAgent List ! Сформировать HTML код новой таблицы - список RDP
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".pyOpenRPA-Agent-ListTemplate",lResponseJSON["AgentDict"])
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".pyOpenRPA-Agent-List").html(lHTMLCode)
|
||||||
|
///Очистить дерево
|
||||||
|
//mGlobal.ElementTree.fClear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mGlobal.pyOpenRPA.ServerDataRefreshDef=function() {
|
||||||
|
try {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
headers: {},
|
||||||
|
url: 'pyOpenRPA/ServerData',
|
||||||
|
data: mGlobal.pyOpenRPA.ServerDataHashStr,
|
||||||
|
success: function(lData,l2,l3) {
|
||||||
|
try {
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
mGlobal.VersionStr = lResponseJSON["ServerDataDict"]["UserDict"]["VersionStr"]
|
||||||
|
mGlobal.pyOpenRPA.ServerDataDict = lResponseJSON["ServerDataDict"]
|
||||||
|
mGlobal.pyOpenRPA.ServerDataHashStr = lResponseJSON["HashStr"]
|
||||||
|
mGlobal.pyOpenRPA.ServerDataRefreshDef_TechnicalRender()
|
||||||
|
mGlobal.UserRoleUpdate();
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerDataRefreshDef,600) // If LOGS are update every ms - set some limit in ms on the client side
|
||||||
|
//mGlobal.pyOpenRPA.ServerDataRefreshDef() // Go to the next call
|
||||||
|
}
|
||||||
|
catch(error) {
|
||||||
|
console.log(error)
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerDataRefreshDef,3000)
|
||||||
|
}
|
||||||
|
//mGlobal.pyOpenRPA.ServerDataRefreshDef() // recursive
|
||||||
|
},
|
||||||
|
dataType: "text",
|
||||||
|
error: function(jqXHR, textStatus, errorThrown ) {
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerDataRefreshDef,3000)
|
||||||
|
//sleep(3000)
|
||||||
|
//mGlobal.pyOpenRPA.ServerDataRefreshDef() // recursive
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch(error) {
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerDataRefreshDef,3000)
|
||||||
|
//sleep(3000)
|
||||||
|
//mGlobal.pyOpenRPA.ServerDataRefreshDef() // recursive
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/////////////////////////////////////////////////////////////
|
||||||
|
/// v1.2.0 pyOpenRPA ServerLogs
|
||||||
|
mGlobal.pyOpenRPA.ServerLogList = null
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListHashStr = ""
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListDoRenderBool = true
|
||||||
|
///Turn OFF rendering
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListDoRenderFalse = function() {
|
||||||
|
///Set unfreeze button
|
||||||
|
$("a.mGlobal-pyOpenRPA-ServerLogListDoRender").html("Разморозить окно логов")
|
||||||
|
$("a.mGlobal-pyOpenRPA-ServerLogListDoRender").attr("onclick","mGlobal.pyOpenRPA.ServerLogListDoRenderTrue()")
|
||||||
|
$("textarea.mGlobal-pyOpenRPA-ServerLogList").css("background-color","#b9e2e8")
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListDoRenderBool = false
|
||||||
|
}
|
||||||
|
///Turn ON rendering
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListDoRenderTrue = function() {
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListDoRenderBool = true
|
||||||
|
///Render last data
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListRefreshDef_TechnicalRender()
|
||||||
|
///Set unfreeze button
|
||||||
|
$("a.mGlobal-pyOpenRPA-ServerLogListDoRender").html("Заморозить окно логов")
|
||||||
|
$("a.mGlobal-pyOpenRPA-ServerLogListDoRender").attr("onclick","mGlobal.pyOpenRPA.ServerLogListDoRenderFalse()")
|
||||||
|
$("textarea.mGlobal-pyOpenRPA-ServerLogList").css("background-color","")
|
||||||
|
|
||||||
|
}
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListScrollBottomDef = function() {
|
||||||
|
var lTA = $("textarea.mGlobal-pyOpenRPA-ServerLogList")[0];
|
||||||
|
lTA.scrollTop = lTA.scrollHeight;
|
||||||
|
}
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListRefreshDef_TechnicalRender = function()
|
||||||
|
{
|
||||||
|
lResponseJSON = mGlobal.pyOpenRPA.ServerLogList
|
||||||
|
if (lResponseJSON!= null && mGlobal.pyOpenRPA.ServerLogListDoRenderBool==true) {
|
||||||
|
lText = lResponseJSON.join("\n") /// Code for the processing the text
|
||||||
|
$("textarea.mGlobal-pyOpenRPA-ServerLogList")[0].value= lText ///Прогрузить новую таблицу
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListScrollBottomDef() //Scroll to the bottom
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListRefreshDef=function() {
|
||||||
|
try {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
headers: {},
|
||||||
|
url: 'pyOpenRPA/ServerLog',
|
||||||
|
data: mGlobal.pyOpenRPA.ServerLogListHashStr,
|
||||||
|
success: function(lData,l2,l3) {
|
||||||
|
try {
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
mGlobal.pyOpenRPA.ServerLogList = lResponseJSON["ServerLogList"]
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListHashStr = lResponseJSON["HashStr"]
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListRefreshDef_TechnicalRender()
|
||||||
|
}
|
||||||
|
catch(error) {
|
||||||
|
}
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerLogListRefreshDef,600) // If LOGS are update every ms - set some limit in ms on the client side
|
||||||
|
//mGlobal.pyOpenRPA.ServerLogListRefreshDef() // recursive
|
||||||
|
},
|
||||||
|
dataType: "text",
|
||||||
|
error: function(jqXHR, textStatus, errorThrown ) {
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerLogListRefreshDef,3000)
|
||||||
|
//sleep(3000)
|
||||||
|
//mGlobal.pyOpenRPA.ServerLogListRefreshDef() // recursive
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch(error) {
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerLogListRefreshDef,3000)
|
||||||
|
//sleep(3000)
|
||||||
|
//mGlobal.pyOpenRPA.ServerLogListRefreshDef() // recursive
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
mGlobal.Monitor.mDatasetLast = null
|
||||||
|
|
||||||
|
///////////////////////////////
|
||||||
|
///Processor functions
|
||||||
|
///////////////////////////////
|
||||||
|
mGlobal.Processor = {}
|
||||||
|
mGlobal.Processor.ServerValueAppend = function(inKeyList,inValue) {
|
||||||
|
lData = [
|
||||||
|
{
|
||||||
|
"Type":"GlobalDictKeyListValueAppend",
|
||||||
|
"KeyList": inKeyList,
|
||||||
|
"Value": inValue
|
||||||
|
}
|
||||||
|
]
|
||||||
|
///Обнулить таблицу
|
||||||
|
$('.ui.modal.basic .content').html("");
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///TODO Show error if exist error
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Processor.ServerValueSet = function(inKeyList,inValue) {
|
||||||
|
lData = [
|
||||||
|
{
|
||||||
|
"Type":"GlobalDictKeyListValueSet",
|
||||||
|
"KeyList": inKeyList,
|
||||||
|
"Value": inValue
|
||||||
|
}
|
||||||
|
]
|
||||||
|
///Обнулить таблицу
|
||||||
|
$('.ui.modal.basic .content').html("");
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///TODO Show error if exist error
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Processor.ServerValueOperatorPlus = function(inKeyList,inValue) {
|
||||||
|
lData = [
|
||||||
|
{
|
||||||
|
"Type":"GlobalDictKeyListValueOperator+",
|
||||||
|
"KeyList": inKeyList,
|
||||||
|
"Value": inValue
|
||||||
|
}
|
||||||
|
]
|
||||||
|
///Обнулить таблицу
|
||||||
|
$('.ui.modal.basic .content').html("");
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///TODO Show error if exist error
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Processor.Send = function(inData) {
|
||||||
|
lData = inData
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///TODO Show error if exist error
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Server= {}
|
||||||
|
mGlobal.Server.JSONGet=function(inMethod, inURL, inDataJSON, inCallback)
|
||||||
|
{
|
||||||
|
$.ajax({
|
||||||
|
type: inMethod,
|
||||||
|
url: inURL,
|
||||||
|
data: JSON.stringify(inDataJSON),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
inCallback(lResponseJSON)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/////////////////
|
||||||
|
///Modal
|
||||||
|
///////////////////
|
||||||
|
mGlobal.Modal={}
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
mGlobal.Modal.TableFilter={}
|
||||||
|
mGlobal.Modal.TableFilter.Show=function(inJSON) {
|
||||||
|
//{
|
||||||
|
// "Title":"",
|
||||||
|
// "Headers":["Header1","Header2"],
|
||||||
|
// "Rows": [["Cell1","Cell2"],["Cell2-1","Cell2-2"]],
|
||||||
|
// "FilterOnKeyUp": "<JS Code>" //Fill here in function
|
||||||
|
//}
|
||||||
|
//Set js handler to Search field
|
||||||
|
inJSON["FilterOnKeyUp"]="mGlobal.Modal.TableFilter.FilterUpdate(this.value);"
|
||||||
|
///Set value
|
||||||
|
mGlobal.Modal.TableFilter.mDataJSON = inJSON
|
||||||
|
//Render HTML
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-handlebar-template-table-filter",inJSON);
|
||||||
|
///Установить HTML код
|
||||||
|
$('.ui.modal.basic .content').html(lHTMLCode);
|
||||||
|
$('.ui.modal.basic').modal('show');
|
||||||
|
//DO widest modal for table with scroll x
|
||||||
|
$("div.ui.basic.modal.transition.visible.active.scrolling")[0].style["width"]="1300px"
|
||||||
|
$("div.ui.basic.modal.transition.visible.active.scrolling")[0].style["overflow"]="scroll"
|
||||||
|
}
|
||||||
|
//Service function
|
||||||
|
mGlobal.Modal.TableFilter.FilterUpdate=function(inFilterValue) {
|
||||||
|
//Get JSON, apply filter, clone data
|
||||||
|
lDataJSON = clone(mGlobal.Modal.TableFilter.mDataJSON)
|
||||||
|
delete lDataJSON["Rows"]
|
||||||
|
lDataJSON["Rows"]=[]
|
||||||
|
//Filter code [any occurence in the row is ok for push! ]
|
||||||
|
mGlobal.Modal.TableFilter.mDataJSON["Rows"].forEach(
|
||||||
|
function(inElement) {
|
||||||
|
lFlagElementAppend = false
|
||||||
|
inElement.forEach(
|
||||||
|
function(inElement2) {
|
||||||
|
if (String(inElement2).includes(inFilterValue)) {
|
||||||
|
lFlagElementAppend = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
if (lFlagElementAppend) {
|
||||||
|
lDataJSON["Rows"].push(inElement)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
//Clear Filter Title property (fixed in html)
|
||||||
|
delete lDataJSON["FilterOnKeyUp"]
|
||||||
|
delete lDataJSON["Title"]
|
||||||
|
//Search the table element [replace only table html]
|
||||||
|
lElement = $('.ui.modals.active .content table.table')[0]
|
||||||
|
lElementParentElement = lElement.parentNode
|
||||||
|
lElement.parentNode.removeChild(lElement);
|
||||||
|
//Render HTML
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-handlebar-template-table-filter",lDataJSON);
|
||||||
|
///Установить HTML код
|
||||||
|
lElementParentElement.insertAdjacentHTML("beforeend",lHTMLCode);
|
||||||
|
}
|
||||||
|
/////////////////////////////////////////////////////////////
|
||||||
|
mGlobal.Modal.ListFilter={}
|
||||||
|
mGlobal.Modal.ListFilter.Show=function(inJSON) {
|
||||||
|
//{
|
||||||
|
// "Title":"",
|
||||||
|
// "List":[{"Header":"","Description":""}],
|
||||||
|
// "FilterOnKeyUp": "<JS Code>" //Fill here in function
|
||||||
|
//}
|
||||||
|
//Set js handler to Search field
|
||||||
|
inJSON["FilterOnKeyUp"]="mGlobal.Modal.ListFilter.FilterUpdate(this.value);"
|
||||||
|
///Set value
|
||||||
|
mGlobal.Modal.ListFilter.mDataJSON = inJSON
|
||||||
|
//Render HTML
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-handlebar-template-list-filter",inJSON);
|
||||||
|
///Установить HTML код
|
||||||
|
$('.ui.modal.basic .content').html(lHTMLCode);
|
||||||
|
$('.ui.modal.basic').modal('show');
|
||||||
|
}
|
||||||
|
//Service function
|
||||||
|
mGlobal.Modal.ListFilter.FilterUpdate=function(inFilterValue) {
|
||||||
|
//Get JSON, apply filter, clone data
|
||||||
|
lDataJSON = clone(mGlobal.Modal.ListFilter.mDataJSON)
|
||||||
|
delete lDataJSON["List"]
|
||||||
|
lDataJSON["List"]=[]
|
||||||
|
//Filter code [any occurence in the row is ok for push! ]
|
||||||
|
mGlobal.Modal.ListFilter.mDataJSON["List"].forEach(
|
||||||
|
function(inElement) {
|
||||||
|
lFlagElementAppend = false
|
||||||
|
if (String(inElement["Header"]).includes(inFilterValue)) {
|
||||||
|
lFlagElementAppend = true
|
||||||
|
}
|
||||||
|
if (String(inElement["Description"]).includes(inFilterValue)) {
|
||||||
|
lFlagElementAppend = true
|
||||||
|
}
|
||||||
|
if (lFlagElementAppend) {
|
||||||
|
lDataJSON["List"].push(inElement)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
//Clear Filter Title property (fixed in html)
|
||||||
|
delete lDataJSON["FilterOnKeyUp"]
|
||||||
|
delete lDataJSON["Title"]
|
||||||
|
//Search the table element [replace only table html]
|
||||||
|
lElement = $('.ui.modals.active .content div.ui.inverted.segment')[0]
|
||||||
|
lElementParentElement = lElement.parentNode
|
||||||
|
lElement.parentNode.removeChild(lElement);
|
||||||
|
//Render HTML
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-handlebar-template-list-filter",lDataJSON);
|
||||||
|
///Установить HTML код
|
||||||
|
lElementParentElement.insertAdjacentHTML("beforeend",lHTMLCode);
|
||||||
|
}
|
||||||
|
mGlobal.UserRoleHierarchyDict = null // Put here the user role hierarchy
|
||||||
|
// UAC Ask
|
||||||
|
mGlobal.UserRoleAsk=function(inList) {
|
||||||
|
var lResult = true; // Init flag
|
||||||
|
var lRoleHierarchyDict = mGlobal.pyOpenRPA.ServerDataDict.UserDict.UACClientDict; // get the Hierarchy
|
||||||
|
// Try to get value from key list
|
||||||
|
var lKeyValue = lRoleHierarchyDict; // Init the base
|
||||||
|
var lListLength = inList.length;
|
||||||
|
for (var i = 0; i<lListLength; i++) {
|
||||||
|
var lItem = inList[i]; // get the item
|
||||||
|
if (typeof lKeyValue == "object") {
|
||||||
|
if (lItem in lKeyValue) { // Has key
|
||||||
|
lKeyValue = lKeyValue[lItem]; // Get the value and go to the next loop iteration
|
||||||
|
} else { // Else branch - true or false
|
||||||
|
if (Object.keys(lKeyValue).length > 0) { // false - if Dict has some elements
|
||||||
|
lResult = false; // Set the False Flag
|
||||||
|
} else {
|
||||||
|
lResult = true; // Set the true flag
|
||||||
|
}
|
||||||
|
break; // Stop the loop
|
||||||
|
}
|
||||||
|
} else { // Has element with no detalization - return true
|
||||||
|
lResult = true; // Set the flag
|
||||||
|
break; // Close the loop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return lResult; // Return the result
|
||||||
|
}
|
||||||
|
// Check user roles and update the Orchestrator UI
|
||||||
|
mGlobal.UserRoleUpdate=function() {
|
||||||
|
var lUACAsk = mGlobal.UserRoleAsk // Alias
|
||||||
|
//CPKeyDict
|
||||||
|
if (lUACAsk(["pyOpenRPADict","CPKeyDict"])) { $(".UACClient-pyOpenRPADict-CPKeyDict").show(); }
|
||||||
|
|
||||||
|
//RDPKeyDict
|
||||||
|
if (lUACAsk(["pyOpenRPADict","RDPKeyDict"])) { $(".UACClient-pyOpenRPADict-RDPKeyDict").show(); }
|
||||||
|
|
||||||
|
//AgentKeyDict
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AgentKeyDict"])) { $(".UACClient-pyOpenRPADict-AgentKeyDict").show(); }
|
||||||
|
|
||||||
|
// AdminDict
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","LogViewerBool"])) { $(".UACClient-pyOpenRPADict-AdminDict-LogViewerBool").show(); }
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","CMDInputBool"])) { $(".UACClient-pyOpenRPADict-AdminDict-CMDInputBool").show(); }
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","ScreenshotViewerBool"])) { $(".UACClient-pyOpenRPADict-AdminDict-ScreenshotViewerBool").show(); }
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","RestartOrchestratorBool"])) { $(".UACClient-pyOpenRPADict-AdminDict-RestartOrchestratorBool").show(); }
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","RestartOrchestratorGITPullBool"])) { $(".UACClient-pyOpenRPADict-AdminDict-RestartOrchestratorGITPullBool").show(); }
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","RestartPCBool"])) { $(".UACClient-pyOpenRPADict-AdminDict-RestartPCBool").show(); }
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","Debugging"])) { $(".UACClient-pyOpenRPADict-AdminDict-Debugging").show(); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// v1.2.0 pyOpenRPA Init defs
|
||||||
|
mGlobal.pyOpenRPA.ServerDataRefreshDef(); // Init the refresh data def from server side
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListRefreshDef(); // Init the refresh data def from the log window
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListDoRenderTrue(); // Init button to freeze/unfreeze textare with logs
|
||||||
|
mGlobal.pyOpenRPA.ServerJSInitDef(); // Recieve JS from server (if exist) and then call anothe url ServerData
|
||||||
|
//$('.ui.dropdown').dropdown();
|
||||||
|
|
||||||
|
////////////////////////////////////////////
|
||||||
|
// 1.2.7 Debugging
|
||||||
|
/// Execute ActivityItem
|
||||||
|
|
||||||
|
// Debugging onchange def autofill init
|
||||||
|
var lDropdownOnChange = function(inEvent){
|
||||||
|
//lValueStr = inEvent.target.value
|
||||||
|
lValueStr = inEvent
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: '/pyOpenRPA/Debugging/HelperDefAutofill/'+lValueStr,
|
||||||
|
data: null,
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
console.log("HelperDefAutofill:")
|
||||||
|
console.log(lResponseJSON)
|
||||||
|
//ArgDict merge
|
||||||
|
var lArgDictTargetDict = lResponseJSON["ArgDict"]
|
||||||
|
var lArgDictStr = $(".mGlobal-pyOpenRPA-Debugging-ArgDict")[0].value
|
||||||
|
if (lArgDictStr !="" && lArgDictStr !=null) {
|
||||||
|
lArgDictLastDict = JSON.parse(lArgDictStr)
|
||||||
|
lArgDictTargetDict = mGlobal.pyOpenRPA.DebuggingAutofillMerge(lArgDictTargetDict, lArgDictLastDict)
|
||||||
|
}
|
||||||
|
|
||||||
|
$(".mGlobal-pyOpenRPA-Debugging-ArgList")[0].value = JSON.stringify(lResponseJSON["ArgList"])
|
||||||
|
$(".mGlobal-pyOpenRPA-Debugging-ArgDict")[0].value = JSON.stringify(lArgDictTargetDict)
|
||||||
|
$(".mGlobal-pyOpenRPA-Debugging-ArgGSettingsStr")[0].value = JSON.stringify(lResponseJSON["ArgGSettingsStr"])
|
||||||
|
$(".mGlobal-pyOpenRPA-Debugging-ArgLoggerStr")[0].value = JSON.stringify(lResponseJSON["ArgLoggerStr"])
|
||||||
|
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//$('.ui.dropdown.mGlobal-pyOpenRPA-Debugging-Def-Dropdown')[0].onchange=lDropdownOnChange
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
mGlobal.pyOpenRPA.DebuggingExecute=function() {
|
||||||
|
///EXAMPLE
|
||||||
|
// {
|
||||||
|
// "Def":"OSCMD", // def link or def alias (look gSettings["Processor"]["AliasDefDict"])
|
||||||
|
// "ArgList":[], // Args list
|
||||||
|
// "ArgDict":{"inCMDStr":lCMDCode,"inRunAsyncBool":false}, // Args dictionary
|
||||||
|
// "ArgGSettings": null, // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// "ArgLogger": "inLogger" // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// }
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lArgListStr = $(".mGlobal-pyOpenRPA-Debugging-ArgList")[0].value
|
||||||
|
lArgDictStr = $(".mGlobal-pyOpenRPA-Debugging-ArgDict")[0].value
|
||||||
|
lArgGSettingsStr = $(".mGlobal-pyOpenRPA-Debugging-ArgGSettingsStr")[0].value
|
||||||
|
lArgLoggerStr = $(".mGlobal-pyOpenRPA-Debugging-ArgLoggerStr")[0].value
|
||||||
|
lActivityItem = {
|
||||||
|
"Def":$(".mGlobal-pyOpenRPA-Debugging-Def")[0].value, // def link or def alias (look gSettings["Processor"]["AliasDefDict"])
|
||||||
|
"ArgList":(lArgListStr == "" ? [] : JSON.parse(lArgListStr)), // Args list
|
||||||
|
"ArgDict":(lArgDictStr == "" ? {} : JSON.parse(lArgDictStr)), // Args dictionary
|
||||||
|
"ArgGSettingsStr": (lArgGSettingsStr == "" ? null : lArgGSettingsStr), // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
"ArgLoggerStr": (lArgLoggerStr == "" ? null : lArgLoggerStr) // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
}
|
||||||
|
lData = [lActivityItem]
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: '/pyOpenRPA/ActivityListExecute',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
console.log(lResponseJSON)
|
||||||
|
$(".mGlobal-pyOpenRPA-Debugging-Output")[0].value = JSON.stringify(lResponseJSON[0])
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.pyOpenRPA.DebuggingAutofillMerge=function(inTargetDict, inLastDict) {
|
||||||
|
// Merge 2 dict (get values from Last dict if key exists in new dict
|
||||||
|
for (const [lKeyStr, lValue] of Object.entries(inTargetDict)) {
|
||||||
|
//Check if key exists in LastDict
|
||||||
|
if (lKeyStr in inLastDict) {
|
||||||
|
inTargetDict[lKeyStr] = inLastDict[lKeyStr]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return inTargetDict
|
||||||
|
}
|
||||||
|
// 1.2.7 Debugging toolbox init
|
||||||
|
$('.ui.dropdown.mGlobal-pyOpenRPA-Debugging-Def-Dropdown')
|
||||||
|
.dropdown({
|
||||||
|
apiSettings: {
|
||||||
|
// this url parses query server side and returns filtered results
|
||||||
|
url: '/pyOpenRPA/Debugging/HelperDefList/{query}'
|
||||||
|
},
|
||||||
|
onChange: lDropdownOnChange
|
||||||
|
})
|
||||||
|
;
|
||||||
|
});
|
After Width: | Height: | Size: 245 KiB |
After Width: | Height: | Size: 251 KiB |
After Width: | Height: | Size: 244 KiB |
After Width: | Height: | Size: 239 KiB |
After Width: | Height: | Size: 252 KiB |
After Width: | Height: | Size: 255 KiB |
After Width: | Height: | Size: 255 KiB |
After Width: | Height: | Size: 255 KiB |
After Width: | Height: | Size: 255 KiB |
After Width: | Height: | Size: 255 KiB |
@ -0,0 +1,737 @@
|
|||||||
|
/*
|
||||||
|
* # Semantic UI - 2.4.2
|
||||||
|
* https://github.com/Semantic-Org/Semantic-UI
|
||||||
|
* http://www.semantic-ui.com/
|
||||||
|
*
|
||||||
|
* Copyright 2014 Contributors
|
||||||
|
* Released under the MIT license
|
||||||
|
* http://opensource.org/licenses/MIT
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/*!
|
||||||
|
* # Semantic UI - Header
|
||||||
|
* http://github.com/semantic-org/semantic-ui/
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Released under the MIT license
|
||||||
|
* http://opensource.org/licenses/MIT
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Header
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
|
||||||
|
/* Standard */
|
||||||
|
.ui.header {
|
||||||
|
border: none;
|
||||||
|
margin: calc(2rem - 0.14285714em ) 0em 1rem;
|
||||||
|
padding: 0em 0em;
|
||||||
|
font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 1.28571429em;
|
||||||
|
text-transform: none;
|
||||||
|
color: rgba(0, 0, 0, 0.87);
|
||||||
|
}
|
||||||
|
.ui.header:first-child {
|
||||||
|
margin-top: -0.14285714em;
|
||||||
|
}
|
||||||
|
.ui.header:last-child {
|
||||||
|
margin-bottom: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Sub Header
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
.ui.header .sub.header {
|
||||||
|
display: block;
|
||||||
|
font-weight: normal;
|
||||||
|
padding: 0em;
|
||||||
|
margin: 0em;
|
||||||
|
font-size: 1rem;
|
||||||
|
line-height: 1.2em;
|
||||||
|
color: rgba(0, 0, 0, 0.6);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Icon
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
.ui.header > .icon {
|
||||||
|
display: table-cell;
|
||||||
|
opacity: 1;
|
||||||
|
font-size: 1.5em;
|
||||||
|
padding-top: 0em;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* With Text Node */
|
||||||
|
.ui.header .icon:only-child {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0em;
|
||||||
|
margin-right: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Image
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.header > .image:not(.icon),
|
||||||
|
.ui.header > img {
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 0.14285714em;
|
||||||
|
width: 2.5em;
|
||||||
|
height: auto;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.ui.header > .image:not(.icon):only-child,
|
||||||
|
.ui.header > img:only-child {
|
||||||
|
margin-right: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Content
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
.ui.header .content {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* After Image */
|
||||||
|
.ui.header > img + .content,
|
||||||
|
.ui.header > .image + .content {
|
||||||
|
padding-left: 0.75rem;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* After Icon */
|
||||||
|
.ui.header > .icon + .content {
|
||||||
|
padding-left: 0.75rem;
|
||||||
|
display: table-cell;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Loose Coupling
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
.ui.header .ui.label {
|
||||||
|
font-size: '';
|
||||||
|
margin-left: 0.5rem;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Positioning */
|
||||||
|
.ui.header + p {
|
||||||
|
margin-top: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Types
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Page
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
h1.ui.header {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
h2.ui.header {
|
||||||
|
font-size: 1.71428571rem;
|
||||||
|
}
|
||||||
|
h3.ui.header {
|
||||||
|
font-size: 1.28571429rem;
|
||||||
|
}
|
||||||
|
h4.ui.header {
|
||||||
|
font-size: 1.07142857rem;
|
||||||
|
}
|
||||||
|
h5.ui.header {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Sub Header */
|
||||||
|
h1.ui.header .sub.header {
|
||||||
|
font-size: 1.14285714rem;
|
||||||
|
}
|
||||||
|
h2.ui.header .sub.header {
|
||||||
|
font-size: 1.14285714rem;
|
||||||
|
}
|
||||||
|
h3.ui.header .sub.header {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
h4.ui.header .sub.header {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
h5.ui.header .sub.header {
|
||||||
|
font-size: 0.92857143rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Content Heading
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
.ui.huge.header {
|
||||||
|
min-height: 1em;
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
.ui.large.header {
|
||||||
|
font-size: 1.71428571em;
|
||||||
|
}
|
||||||
|
.ui.medium.header {
|
||||||
|
font-size: 1.28571429em;
|
||||||
|
}
|
||||||
|
.ui.small.header {
|
||||||
|
font-size: 1.07142857em;
|
||||||
|
}
|
||||||
|
.ui.tiny.header {
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Sub Header */
|
||||||
|
.ui.huge.header .sub.header {
|
||||||
|
font-size: 1.14285714rem;
|
||||||
|
}
|
||||||
|
.ui.large.header .sub.header {
|
||||||
|
font-size: 1.14285714rem;
|
||||||
|
}
|
||||||
|
.ui.header .sub.header {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
.ui.small.header .sub.header {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
.ui.tiny.header .sub.header {
|
||||||
|
font-size: 0.92857143rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Sub Heading
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
.ui.sub.header {
|
||||||
|
padding: 0em;
|
||||||
|
margin-bottom: 0.14285714rem;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 0.85714286em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: '';
|
||||||
|
}
|
||||||
|
.ui.small.sub.header {
|
||||||
|
font-size: 0.78571429em;
|
||||||
|
}
|
||||||
|
.ui.sub.header {
|
||||||
|
font-size: 0.85714286em;
|
||||||
|
}
|
||||||
|
.ui.large.sub.header {
|
||||||
|
font-size: 0.92857143em;
|
||||||
|
}
|
||||||
|
.ui.huge.sub.header {
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Icon
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.icon.header {
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
margin: 2rem 0em 1rem;
|
||||||
|
}
|
||||||
|
.ui.icon.header:after {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
height: 0px;
|
||||||
|
clear: both;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
.ui.icon.header:first-child {
|
||||||
|
margin-top: 0em;
|
||||||
|
}
|
||||||
|
.ui.icon.header .icon {
|
||||||
|
float: none;
|
||||||
|
display: block;
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
line-height: 1;
|
||||||
|
padding: 0em;
|
||||||
|
font-size: 3em;
|
||||||
|
margin: 0em auto 0.5rem;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
.ui.icon.header .content {
|
||||||
|
display: block;
|
||||||
|
padding: 0em;
|
||||||
|
}
|
||||||
|
.ui.icon.header .circular.icon {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
.ui.icon.header .square.icon {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
.ui.block.icon.header .icon {
|
||||||
|
margin-bottom: 0em;
|
||||||
|
}
|
||||||
|
.ui.icon.header.aligned {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
States
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
.ui.disabled.header {
|
||||||
|
opacity: 0.45;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Variations
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Inverted
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.inverted.header {
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
.ui.inverted.header .sub.header {
|
||||||
|
color: rgba(255, 255, 255, 0.8);
|
||||||
|
}
|
||||||
|
.ui.inverted.attached.header {
|
||||||
|
background: #545454 -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.05)));
|
||||||
|
background: #545454 -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05));
|
||||||
|
background: #545454 linear-gradient(transparent, rgba(0, 0, 0, 0.05));
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
border-color: transparent;
|
||||||
|
}
|
||||||
|
.ui.inverted.block.header {
|
||||||
|
background: #545454 -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.05)));
|
||||||
|
background: #545454 -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05));
|
||||||
|
background: #545454 linear-gradient(transparent, rgba(0, 0, 0, 0.05));
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.ui.inverted.block.header {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Colors
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
/*--- Red ---*/
|
||||||
|
|
||||||
|
.ui.red.header {
|
||||||
|
color: #DB2828 !important;
|
||||||
|
}
|
||||||
|
a.ui.red.header:hover {
|
||||||
|
color: #d01919 !important;
|
||||||
|
}
|
||||||
|
.ui.red.dividing.header {
|
||||||
|
border-bottom: 2px solid #DB2828;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
.ui.inverted.red.header {
|
||||||
|
color: #FF695E !important;
|
||||||
|
}
|
||||||
|
a.ui.inverted.red.header:hover {
|
||||||
|
color: #ff5144 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--- Orange ---*/
|
||||||
|
|
||||||
|
.ui.orange.header {
|
||||||
|
color: #F2711C !important;
|
||||||
|
}
|
||||||
|
a.ui.orange.header:hover {
|
||||||
|
color: #f26202 !important;
|
||||||
|
}
|
||||||
|
.ui.orange.dividing.header {
|
||||||
|
border-bottom: 2px solid #F2711C;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
.ui.inverted.orange.header {
|
||||||
|
color: #FF851B !important;
|
||||||
|
}
|
||||||
|
a.ui.inverted.orange.header:hover {
|
||||||
|
color: #ff7701 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--- Olive ---*/
|
||||||
|
|
||||||
|
.ui.olive.header {
|
||||||
|
color: #B5CC18 !important;
|
||||||
|
}
|
||||||
|
a.ui.olive.header:hover {
|
||||||
|
color: #a7bd0d !important;
|
||||||
|
}
|
||||||
|
.ui.olive.dividing.header {
|
||||||
|
border-bottom: 2px solid #B5CC18;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
.ui.inverted.olive.header {
|
||||||
|
color: #D9E778 !important;
|
||||||
|
}
|
||||||
|
a.ui.inverted.olive.header:hover {
|
||||||
|
color: #d8ea5c !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--- Yellow ---*/
|
||||||
|
|
||||||
|
.ui.yellow.header {
|
||||||
|
color: #FBBD08 !important;
|
||||||
|
}
|
||||||
|
a.ui.yellow.header:hover {
|
||||||
|
color: #eaae00 !important;
|
||||||
|
}
|
||||||
|
.ui.yellow.dividing.header {
|
||||||
|
border-bottom: 2px solid #FBBD08;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
.ui.inverted.yellow.header {
|
||||||
|
color: #FFE21F !important;
|
||||||
|
}
|
||||||
|
a.ui.inverted.yellow.header:hover {
|
||||||
|
color: #ffdf05 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--- Green ---*/
|
||||||
|
|
||||||
|
.ui.green.header {
|
||||||
|
color: #21BA45 !important;
|
||||||
|
}
|
||||||
|
a.ui.green.header:hover {
|
||||||
|
color: #16ab39 !important;
|
||||||
|
}
|
||||||
|
.ui.green.dividing.header {
|
||||||
|
border-bottom: 2px solid #21BA45;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
.ui.inverted.green.header {
|
||||||
|
color: #2ECC40 !important;
|
||||||
|
}
|
||||||
|
a.ui.inverted.green.header:hover {
|
||||||
|
color: #22be34 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--- Teal ---*/
|
||||||
|
|
||||||
|
.ui.teal.header {
|
||||||
|
color: #00B5AD !important;
|
||||||
|
}
|
||||||
|
a.ui.teal.header:hover {
|
||||||
|
color: #009c95 !important;
|
||||||
|
}
|
||||||
|
.ui.teal.dividing.header {
|
||||||
|
border-bottom: 2px solid #00B5AD;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
.ui.inverted.teal.header {
|
||||||
|
color: #6DFFFF !important;
|
||||||
|
}
|
||||||
|
a.ui.inverted.teal.header:hover {
|
||||||
|
color: #54ffff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--- Blue ---*/
|
||||||
|
|
||||||
|
.ui.blue.header {
|
||||||
|
color: #2185D0 !important;
|
||||||
|
}
|
||||||
|
a.ui.blue.header:hover {
|
||||||
|
color: #1678c2 !important;
|
||||||
|
}
|
||||||
|
.ui.blue.dividing.header {
|
||||||
|
border-bottom: 2px solid #2185D0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
.ui.inverted.blue.header {
|
||||||
|
color: #54C8FF !important;
|
||||||
|
}
|
||||||
|
a.ui.inverted.blue.header:hover {
|
||||||
|
color: #3ac0ff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--- Violet ---*/
|
||||||
|
|
||||||
|
.ui.violet.header {
|
||||||
|
color: #6435C9 !important;
|
||||||
|
}
|
||||||
|
a.ui.violet.header:hover {
|
||||||
|
color: #5829bb !important;
|
||||||
|
}
|
||||||
|
.ui.violet.dividing.header {
|
||||||
|
border-bottom: 2px solid #6435C9;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
.ui.inverted.violet.header {
|
||||||
|
color: #A291FB !important;
|
||||||
|
}
|
||||||
|
a.ui.inverted.violet.header:hover {
|
||||||
|
color: #8a73ff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--- Purple ---*/
|
||||||
|
|
||||||
|
.ui.purple.header {
|
||||||
|
color: #A333C8 !important;
|
||||||
|
}
|
||||||
|
a.ui.purple.header:hover {
|
||||||
|
color: #9627ba !important;
|
||||||
|
}
|
||||||
|
.ui.purple.dividing.header {
|
||||||
|
border-bottom: 2px solid #A333C8;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
.ui.inverted.purple.header {
|
||||||
|
color: #DC73FF !important;
|
||||||
|
}
|
||||||
|
a.ui.inverted.purple.header:hover {
|
||||||
|
color: #d65aff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--- Pink ---*/
|
||||||
|
|
||||||
|
.ui.pink.header {
|
||||||
|
color: #E03997 !important;
|
||||||
|
}
|
||||||
|
a.ui.pink.header:hover {
|
||||||
|
color: #e61a8d !important;
|
||||||
|
}
|
||||||
|
.ui.pink.dividing.header {
|
||||||
|
border-bottom: 2px solid #E03997;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
.ui.inverted.pink.header {
|
||||||
|
color: #FF8EDF !important;
|
||||||
|
}
|
||||||
|
a.ui.inverted.pink.header:hover {
|
||||||
|
color: #ff74d8 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--- Brown ---*/
|
||||||
|
|
||||||
|
.ui.brown.header {
|
||||||
|
color: #A5673F !important;
|
||||||
|
}
|
||||||
|
a.ui.brown.header:hover {
|
||||||
|
color: #975b33 !important;
|
||||||
|
}
|
||||||
|
.ui.brown.dividing.header {
|
||||||
|
border-bottom: 2px solid #A5673F;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
.ui.inverted.brown.header {
|
||||||
|
color: #D67C1C !important;
|
||||||
|
}
|
||||||
|
a.ui.inverted.brown.header:hover {
|
||||||
|
color: #c86f11 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--- Grey ---*/
|
||||||
|
|
||||||
|
.ui.grey.header {
|
||||||
|
color: #767676 !important;
|
||||||
|
}
|
||||||
|
a.ui.grey.header:hover {
|
||||||
|
color: #838383 !important;
|
||||||
|
}
|
||||||
|
.ui.grey.dividing.header {
|
||||||
|
border-bottom: 2px solid #767676;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
.ui.inverted.grey.header {
|
||||||
|
color: #DCDDDE !important;
|
||||||
|
}
|
||||||
|
a.ui.inverted.grey.header:hover {
|
||||||
|
color: #cfd0d2 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Aligned
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.left.aligned.header {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.ui.right.aligned.header {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.ui.centered.header,
|
||||||
|
.ui.center.aligned.header {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.ui.justified.header {
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
.ui.justified.header:after {
|
||||||
|
display: inline-block;
|
||||||
|
content: '';
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Floated
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.floated.header,
|
||||||
|
.ui[class*="left floated"].header {
|
||||||
|
float: left;
|
||||||
|
margin-top: 0em;
|
||||||
|
margin-right: 0.5em;
|
||||||
|
}
|
||||||
|
.ui[class*="right floated"].header {
|
||||||
|
float: right;
|
||||||
|
margin-top: 0em;
|
||||||
|
margin-left: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Fitted
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.fitted.header {
|
||||||
|
padding: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Dividing
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.dividing.header {
|
||||||
|
padding-bottom: 0.21428571rem;
|
||||||
|
border-bottom: 1px solid rgba(34, 36, 38, 0.15);
|
||||||
|
}
|
||||||
|
.ui.dividing.header .sub.header {
|
||||||
|
padding-bottom: 0.21428571rem;
|
||||||
|
}
|
||||||
|
.ui.dividing.header .icon {
|
||||||
|
margin-bottom: 0em;
|
||||||
|
}
|
||||||
|
.ui.inverted.dividing.header {
|
||||||
|
border-bottom-color: rgba(255, 255, 255, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Block
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.block.header {
|
||||||
|
background: #F3F4F5;
|
||||||
|
padding: 0.78571429rem 1rem;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
border: 1px solid #D4D4D5;
|
||||||
|
border-radius: 0.28571429rem;
|
||||||
|
}
|
||||||
|
.ui.tiny.block.header {
|
||||||
|
font-size: 0.85714286rem;
|
||||||
|
}
|
||||||
|
.ui.small.block.header {
|
||||||
|
font-size: 0.92857143rem;
|
||||||
|
}
|
||||||
|
.ui.block.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
.ui.large.block.header {
|
||||||
|
font-size: 1.14285714rem;
|
||||||
|
}
|
||||||
|
.ui.huge.block.header {
|
||||||
|
font-size: 1.42857143rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Attached
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.attached.header {
|
||||||
|
background: #FFFFFF;
|
||||||
|
padding: 0.78571429rem 1rem;
|
||||||
|
margin-left: -1px;
|
||||||
|
margin-right: -1px;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
border: 1px solid #D4D4D5;
|
||||||
|
}
|
||||||
|
.ui.attached.block.header {
|
||||||
|
background: #F3F4F5;
|
||||||
|
}
|
||||||
|
.ui.attached:not(.top):not(.bottom).header {
|
||||||
|
margin-top: 0em;
|
||||||
|
margin-bottom: 0em;
|
||||||
|
border-top: none;
|
||||||
|
border-radius: 0em;
|
||||||
|
}
|
||||||
|
.ui.top.attached.header {
|
||||||
|
margin-bottom: 0em;
|
||||||
|
border-radius: 0.28571429rem 0.28571429rem 0em 0em;
|
||||||
|
}
|
||||||
|
.ui.bottom.attached.header {
|
||||||
|
margin-top: 0em;
|
||||||
|
border-top: none;
|
||||||
|
border-radius: 0em 0em 0.28571429rem 0.28571429rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Attached Sizes */
|
||||||
|
.ui.tiny.attached.header {
|
||||||
|
font-size: 0.85714286em;
|
||||||
|
}
|
||||||
|
.ui.small.attached.header {
|
||||||
|
font-size: 0.92857143em;
|
||||||
|
}
|
||||||
|
.ui.attached.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
.ui.large.attached.header {
|
||||||
|
font-size: 1.14285714em;
|
||||||
|
}
|
||||||
|
.ui.huge.attached.header {
|
||||||
|
font-size: 1.42857143em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Sizing
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
|
||||||
|
font-size: 1.28571429em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Theme Overrides
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Site Overrides
|
||||||
|
*******************************/
|
||||||
|
|
@ -0,0 +1,759 @@
|
|||||||
|
/*******************************
|
||||||
|
Homepage
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
body.index .pusher > .page {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 992px) {
|
||||||
|
html {
|
||||||
|
overflow-x: visible;
|
||||||
|
-webkit-overflow-scrolling: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
body > .pusher {
|
||||||
|
display: block;
|
||||||
|
min-height: 0px;
|
||||||
|
flex-direction: initial;
|
||||||
|
}
|
||||||
|
body > .pusher > .full.height {
|
||||||
|
display: block;
|
||||||
|
flex: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Masthead
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
body .masthead.segment.zoomed h1 {
|
||||||
|
text-shadow: 0px 0px 4px rgba(0, 0, 0, 0);
|
||||||
|
color: rgba(255, 255, 255, 1);
|
||||||
|
}
|
||||||
|
body .masthead.zoomed:after {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
body .masthead.zoomed {
|
||||||
|
background-color: #25282A;
|
||||||
|
}
|
||||||
|
|
||||||
|
body .masthead {
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
text-align: center;
|
||||||
|
padding: 0em;
|
||||||
|
color: rgba(255, 255, 255, 0.9);
|
||||||
|
margin-bottom: 0px;
|
||||||
|
border-bottom: none;
|
||||||
|
|
||||||
|
background-color: #000000;
|
||||||
|
background-position: 50% 50%;
|
||||||
|
-webkit-transform: translate3d(0, 0, 0);
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
|
body .masthead:after {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
z-index: -1;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
content: '';
|
||||||
|
background-size: cover;
|
||||||
|
|
||||||
|
opacity: 0.45;
|
||||||
|
}
|
||||||
|
body .masthead.bg1:after {
|
||||||
|
background-image: url("./bg1.jpg");
|
||||||
|
}
|
||||||
|
body .masthead.bg2:after {
|
||||||
|
background-image: url("./bg2.jpg");
|
||||||
|
}
|
||||||
|
body .masthead.bg3:after {
|
||||||
|
background-image: url("./bg3.jpg");
|
||||||
|
}
|
||||||
|
body .masthead.bg4:after {
|
||||||
|
background-image: url("./bg4.jpg");
|
||||||
|
}
|
||||||
|
body .masthead.bg5:after {
|
||||||
|
background-image: url("./bg5.jpg");
|
||||||
|
}
|
||||||
|
body .masthead.bg6:after {
|
||||||
|
background-image: url("./bg6.jpg");
|
||||||
|
}
|
||||||
|
body .masthead.bg7:after {
|
||||||
|
background-image: url("./bg7.jpg");
|
||||||
|
}
|
||||||
|
body .masthead.bg8:after {
|
||||||
|
background-image: url("./bg8.jpg");
|
||||||
|
}
|
||||||
|
body .masthead.bg9:after {
|
||||||
|
background-image: url("./bg9.jpg");
|
||||||
|
}
|
||||||
|
body .masthead.bg10:after {
|
||||||
|
background-image: url("./bg10.jpg");
|
||||||
|
}
|
||||||
|
body .masthead.bg11:after {
|
||||||
|
background-image: url("./bg1.jpg");
|
||||||
|
}
|
||||||
|
body .masthead.bg12:after {
|
||||||
|
background-image: url("./bg2.jpg");
|
||||||
|
}
|
||||||
|
body .masthead.bg13:after {
|
||||||
|
background-image: url("./bg3.jpg");
|
||||||
|
}
|
||||||
|
body .masthead.bg14:after {
|
||||||
|
background-image: url("./bg4.jpg");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
body .masthead,
|
||||||
|
body .masthead:after {
|
||||||
|
-ms-transition:
|
||||||
|
background 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s,
|
||||||
|
opacity 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s;
|
||||||
|
-moz-transition:
|
||||||
|
background 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s,
|
||||||
|
opacity 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s;
|
||||||
|
-webkit-transition:
|
||||||
|
background 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s,
|
||||||
|
opacity 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s;
|
||||||
|
transition:
|
||||||
|
background 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s,
|
||||||
|
opacity 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s;
|
||||||
|
}
|
||||||
|
#example.index .masthead .container {
|
||||||
|
height: 55vh;
|
||||||
|
margin-left: auto !important;
|
||||||
|
margin-right: auto !important;
|
||||||
|
min-height: 600px;
|
||||||
|
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-webkit-justify-content: center;
|
||||||
|
-ms-flex-pack: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
#example .masthead .container {
|
||||||
|
padding: 15rem 0em;
|
||||||
|
}
|
||||||
|
#example.index .following.bar iframe.github {
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
body.index .following.bar .menu .item {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
#example.index.pushed .masthead,
|
||||||
|
#example.index.pushed .following.bar {
|
||||||
|
-webkit-transform: translate3d(0, 0, 0);
|
||||||
|
-moz-transform: translate3d(0, 0, 0);
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#example.index > .pusher > .footer {
|
||||||
|
padding-left: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#example.index .light.following.bar {
|
||||||
|
padding: 0em 0em;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
border-bottom: 1px solid #DDDDDD;
|
||||||
|
box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.04);
|
||||||
|
}
|
||||||
|
|
||||||
|
#example.index .masthead.segment .typed-cursor {
|
||||||
|
position: relative;
|
||||||
|
top: -0.05em;
|
||||||
|
left: -0.25em;
|
||||||
|
visibility: hidden;
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-animation: blink 0.7s infinite;
|
||||||
|
-moz-animation: blink 0.7s infinite;
|
||||||
|
animation: blink 0.7s infinite;
|
||||||
|
-webkit-transition: opacity 0.7s ease;
|
||||||
|
-moz-transition: opacity 0.7s ease;
|
||||||
|
transition: opacity 0.7s ease;
|
||||||
|
}
|
||||||
|
#example.index .masthead.segment .typed-cursor.stop {
|
||||||
|
opacity: 0;
|
||||||
|
-moz-animation-duration: 0s;
|
||||||
|
-webkit-animation-duration: 0s;
|
||||||
|
animation-duration: 0s;
|
||||||
|
}
|
||||||
|
@keyframes blink {
|
||||||
|
0% { opacity:1; }
|
||||||
|
50% { opacity:0; }
|
||||||
|
100% { opacity:1; }
|
||||||
|
}
|
||||||
|
@-webkit-keyframes blink {
|
||||||
|
0% { opacity:1; }
|
||||||
|
50% { opacity:0; }
|
||||||
|
100% { opacity:1; }
|
||||||
|
}
|
||||||
|
@-moz-keyframes blink {
|
||||||
|
0% { opacity:1; }
|
||||||
|
50% { opacity:0; }
|
||||||
|
100% { opacity:1; }
|
||||||
|
}
|
||||||
|
|
||||||
|
#example.index .vertical.segment {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#example.index .masthead.segment h1 {
|
||||||
|
font-size: 3em;
|
||||||
|
color: rgba(255, 255, 255, 1);
|
||||||
|
line-height: 1.2;
|
||||||
|
margin: 0px 0px 0px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
-moz-perspective: 500px;
|
||||||
|
-webkit-perspective: 500px;
|
||||||
|
perspective: 500px;
|
||||||
|
|
||||||
|
text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
|
||||||
|
|
||||||
|
-moz-transform-style: preserve-3d;
|
||||||
|
-webkit-transform-style: preserve-3d;
|
||||||
|
transform-style: preserve-3d;
|
||||||
|
}
|
||||||
|
#example.index .masthead.segment h1 .tagline {
|
||||||
|
font-size: 0.75em;
|
||||||
|
}
|
||||||
|
#example.index .masthead.segment h1 > .library {
|
||||||
|
display: block;
|
||||||
|
font-size: 1.75em;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
#example.index .masthead.segment h1 b {
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
#example.index .masthead.segment h1 .text {
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: 300;
|
||||||
|
margin-left: -0.4em;
|
||||||
|
}
|
||||||
|
#example.index .masthead h2 {
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0px 0 16px 0px;
|
||||||
|
font-size: 1.75em;
|
||||||
|
border-bottom: none;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
#example.index .masthead p {
|
||||||
|
font-size: 1.5em;
|
||||||
|
margin: 1em 0em 1.5em;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
#example.index .ui.header {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
#example.index .footer .ui.header {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#example.index .introduction {
|
||||||
|
position: relative;
|
||||||
|
clear: both;
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
#example.index .introduction .buttons {
|
||||||
|
margin-top: 3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#example.index .advertisement {
|
||||||
|
display: none !important;
|
||||||
|
padding-left: 0;
|
||||||
|
position: absolute;
|
||||||
|
left: auto;
|
||||||
|
right: 6em;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
#example.index .fixed.launch.button {
|
||||||
|
display: none;
|
||||||
|
top: 100px;
|
||||||
|
}
|
||||||
|
#example.index .main.menu {
|
||||||
|
top: 0px;
|
||||||
|
}
|
||||||
|
#example.index pre.console {
|
||||||
|
height: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Intro
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
#example .intro.segment h1 + p {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Demo
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
#example .demo.row .example > .ui.label:not(.empty) {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
#example .demo.row .ui.progress {
|
||||||
|
margin-bottom: 2.5em;
|
||||||
|
}
|
||||||
|
#example .demo.row h4 {
|
||||||
|
font-weight: bold !important;
|
||||||
|
margin: 0em 0em 1em !important;
|
||||||
|
}
|
||||||
|
#example .demo.row .example {
|
||||||
|
clear: both;
|
||||||
|
padding-top: 3em;
|
||||||
|
margin-top: 3em;
|
||||||
|
}
|
||||||
|
#example .demo.row .ui.menu,
|
||||||
|
#example .demo.row .ui.card {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
#example .demo.row .ui.card {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Features
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
#example.index .hidden.code {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#example.index .demo.row .example {
|
||||||
|
clear: both;
|
||||||
|
padding-top: 1.5em;
|
||||||
|
margin-top: 1.5em;
|
||||||
|
}
|
||||||
|
#example.index .demo.row .example:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
#example.index .demo.row .example:last-child {
|
||||||
|
margin-bottom: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Following
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
#example.index .following.bar {
|
||||||
|
position: fixed;
|
||||||
|
top: 0px;
|
||||||
|
z-index: 900;
|
||||||
|
left: 0%;
|
||||||
|
padding: 2em 0em;
|
||||||
|
width: 100%;
|
||||||
|
box-shadow: 0px 0px 0px 0px transparent;
|
||||||
|
border-bottom: 1px solid transparent;
|
||||||
|
transition:
|
||||||
|
padding 0.5s ease,
|
||||||
|
background 0.5s ease,
|
||||||
|
box-shadow 0.5s ease,
|
||||||
|
border 0.5s ease
|
||||||
|
;
|
||||||
|
}
|
||||||
|
#example.index .following.bar > .menu .item {
|
||||||
|
transition: all 0.5s ease;
|
||||||
|
}
|
||||||
|
#example.index.pushed .following.bar .menu .item,
|
||||||
|
#example.index.pushed .following.bar {
|
||||||
|
transition: none;
|
||||||
|
}
|
||||||
|
#example.index .following.bar .additional.item[data-site="learn"]:hover {
|
||||||
|
color: #D9499A;
|
||||||
|
}
|
||||||
|
#example.index .following.bar span.additional.item {
|
||||||
|
cursor: default;
|
||||||
|
color: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
#example.index .following.bar .inverted span.additional.item {
|
||||||
|
color: rgba(255, 255, 255, 0.2);
|
||||||
|
}
|
||||||
|
#example.index .following.bar .column > .menu {
|
||||||
|
margin-top: 0px;
|
||||||
|
height: 35px;
|
||||||
|
}
|
||||||
|
#example.index .following.bar .network.menu .item {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
#example.index .following.bar .item iframe {
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
#example.index .following.bar .network.menu .view-ui {
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
#example.index .light.following.bar .network.menu .view-ui {
|
||||||
|
color: #00B5AD;
|
||||||
|
}
|
||||||
|
#example.index .light.following.bar .inverted.network.menu .view-ui {
|
||||||
|
color: #6DFFFF;
|
||||||
|
}
|
||||||
|
#example.index .following .logo {
|
||||||
|
float: left;
|
||||||
|
width: 35px;
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
#example.index .following .logo .side {
|
||||||
|
width: 35px;
|
||||||
|
}
|
||||||
|
#example .masthead .version.label:after {
|
||||||
|
background-color: #000000 !important;
|
||||||
|
}
|
||||||
|
#example.index .following .version.label {
|
||||||
|
margin: 0.25em 0px 0px 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Stripes
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
#example.index .stripe .grid .row {
|
||||||
|
margin: 2rem 0rem;
|
||||||
|
}
|
||||||
|
#example.index .feature.stripe .grid .row {
|
||||||
|
margin: 0rem;
|
||||||
|
}
|
||||||
|
#example.index .feature.stripe .column {
|
||||||
|
display: flex;
|
||||||
|
-ms-flex-direction: column;
|
||||||
|
-webkit-flex-direction: column;
|
||||||
|
-moz-flex-direction: column;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
#example.index .feature.stripe p {
|
||||||
|
-webkit-flex: 1 0 auto;
|
||||||
|
-moz-flex: 1 0 auto;
|
||||||
|
-ms-flex: 1 0 auto;
|
||||||
|
flex: 1 0 auto;
|
||||||
|
margin: 0.5em 0em 2em;
|
||||||
|
}
|
||||||
|
#example .stripe .ui.vertical.divider {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
#example.index .feature.stripe .icon.header .icon.image {
|
||||||
|
width: auto;
|
||||||
|
height: 65px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
#example.index .stripe .icon.header .icon.image {
|
||||||
|
height: 65px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
#example.index .community.stripe {
|
||||||
|
box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1);
|
||||||
|
padding: 4em 0;
|
||||||
|
}
|
||||||
|
#example.index .stripe .icon.header i.icon {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Final */
|
||||||
|
#example.index .final.stripe {
|
||||||
|
border-top: 1px solid #DDDDDD;
|
||||||
|
background-color: #F8F8F8;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Alternate */
|
||||||
|
#example .alternate.stripe {
|
||||||
|
background-color: #F2F3F5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
#example.index .inverted.stripe {
|
||||||
|
background-color: #1B1C1D;
|
||||||
|
}
|
||||||
|
#example.index .inverted.stripe p {
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Legacy?
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
/* content */
|
||||||
|
#example .solid,
|
||||||
|
#example .stripe {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
padding: 10em 0px;
|
||||||
|
border-radius: 0em;
|
||||||
|
margin: 0em;
|
||||||
|
-webkit-transform: translate3d(0, 0, 0);
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
|
#example .theming.stripe {
|
||||||
|
-webkit-transform: none;
|
||||||
|
transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#example .stripe h1 {
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
#example .stripe h2 {
|
||||||
|
font-size: 26px;
|
||||||
|
}
|
||||||
|
#example .stripe h3 {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
#example .feature.stripe {
|
||||||
|
padding: 3em 0em;
|
||||||
|
}
|
||||||
|
#example .theming.stripe .left.aligned.column {
|
||||||
|
padding-top: 8em;
|
||||||
|
}
|
||||||
|
#example .theming.stripe .hljs.code {
|
||||||
|
height: 483px;
|
||||||
|
max-height: 483px;
|
||||||
|
}
|
||||||
|
#example .theming .source.grid {
|
||||||
|
display: none !important;
|
||||||
|
margin: 2rem 2rem -4rem;
|
||||||
|
}
|
||||||
|
#example .theming .source.grid.visible {
|
||||||
|
display: block;
|
||||||
|
display: flex !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#example .theming.stripe .buttons {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
#example .theming.stripe .button {
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
#example .stripe .column > p {
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1.6;
|
||||||
|
margin: 1em 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#example .dark.stripe {
|
||||||
|
background-color: #333333;
|
||||||
|
background: url(/images/dark-bg.png) repeat;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
#example .stripe .column > .label {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#example .solid {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
-webkit-box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.1);
|
||||||
|
-moz-box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.1);
|
||||||
|
box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
#example .solid .column {
|
||||||
|
color: #555555;
|
||||||
|
}
|
||||||
|
#example .solid .column p b {
|
||||||
|
color: rgba(0, 0, 0, 0.9);
|
||||||
|
}
|
||||||
|
#example .solid .column p {
|
||||||
|
color: rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Promo
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
#example.index .promo.stripe {
|
||||||
|
padding: 3em 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Newsletter
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
#example.index .email.stripe {
|
||||||
|
padding: 5em 0em;
|
||||||
|
}
|
||||||
|
#example.index .email.stripe p {
|
||||||
|
margin: -0.5em 0em 1em;
|
||||||
|
}
|
||||||
|
#example.index .email.stripe .input {
|
||||||
|
width: 450px;
|
||||||
|
}
|
||||||
|
#example.index .email.stripe .submit.button {
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@media only screen and (max-width : 400px) {
|
||||||
|
#example.index .advertisement {
|
||||||
|
display: none;
|
||||||
|
margin-left: -130px !important;
|
||||||
|
}
|
||||||
|
#example.index .carbonad {
|
||||||
|
width: 260px !important;
|
||||||
|
}
|
||||||
|
#example.index .masthead.segment h1 {
|
||||||
|
font-size: 1.75em !important;
|
||||||
|
}
|
||||||
|
#example.index .feature.stripe {
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@media only screen and (max-width : 600px) {
|
||||||
|
#example.index .solid,
|
||||||
|
#example.index .stripe {
|
||||||
|
padding: 4em 0em;
|
||||||
|
}
|
||||||
|
#example.index .masthead.segment h1 .text {
|
||||||
|
margin-left: 0em;
|
||||||
|
}
|
||||||
|
#example.index .following.bar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#example.index .masthead:before {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#example.index .following.bar .column {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
#example.index .following .logo {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
#example.index .codebase.stripe {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#example.index .following .version.label {
|
||||||
|
vertical-align: top;
|
||||||
|
margin-top: 0em;
|
||||||
|
}
|
||||||
|
#example .masthead .container {
|
||||||
|
padding: 6rem 0rem;
|
||||||
|
}
|
||||||
|
#example.index .masthead.segment h1 {
|
||||||
|
font-size: 2.25em;
|
||||||
|
}
|
||||||
|
#example.index .email.stripe .input {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
#example.index .following .secondary.menu {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#example.index .email.stripe .submit.button {
|
||||||
|
margin-top: 0.5em;
|
||||||
|
}
|
||||||
|
#example.index .stripe .icon.header .icon.image {
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
#example.index .stripe {
|
||||||
|
padding: 2em 0em !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width : 650px) {
|
||||||
|
#example.index .fixed.launch.button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#example .stripe h1 {
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media only screen and (min-width : 601px) {
|
||||||
|
#example .theming .source.button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#example.index .main.menu {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#example.index .fixed.launch.button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Homepage */
|
||||||
|
@media only screen and (max-width : 810px) {
|
||||||
|
#example.index .masthead.segment h1 > .library {
|
||||||
|
font-size: 1.75em;
|
||||||
|
}
|
||||||
|
#example.index .feature.stripe p {
|
||||||
|
height: auto;
|
||||||
|
min-height: 0px;
|
||||||
|
}
|
||||||
|
#example.index .container {
|
||||||
|
margin-left: 0em;
|
||||||
|
margin-right: 0em;
|
||||||
|
}
|
||||||
|
#example .solid, #example .stripe {
|
||||||
|
padding: 6em 0em;
|
||||||
|
}
|
||||||
|
#example.index .masthead .container {
|
||||||
|
margin-top: 50px;
|
||||||
|
}
|
||||||
|
#example.index .following.bar span.additional.item {
|
||||||
|
display: none;
|
||||||
|
visibility: hidden !important;
|
||||||
|
}
|
||||||
|
#example.index .following.bar .network.menu .view-ui {
|
||||||
|
margin-right: 0.75em;
|
||||||
|
}
|
||||||
|
#example.index .masthead .container {
|
||||||
|
min-height: 350px;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@media only screen and (max-width : 1040px) {
|
||||||
|
#example.index .following.bar .network.menu .view-ui {
|
||||||
|
margin-right: 0.5em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@media only screen and (max-width: 1300px) {
|
||||||
|
#example.index .advertisement {
|
||||||
|
position: absolute;
|
||||||
|
top: auto;
|
||||||
|
left: 50%;
|
||||||
|
bottom: 2rem;
|
||||||
|
margin-left: -175px;
|
||||||
|
-webkit-transform: none;
|
||||||
|
-moz-transform: none;
|
||||||
|
-ms-transform: none;
|
||||||
|
transform: none;
|
||||||
|
}
|
||||||
|
#example.index .inverted.advertisement .carbonad-img {
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
#example.index #carbonads-container {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
#example.index .carbonad {
|
||||||
|
width: 340px;
|
||||||
|
}
|
||||||
|
#example.index .carbonad-text,
|
||||||
|
#example.index .carbonad-tag {
|
||||||
|
float: none;
|
||||||
|
display: block;
|
||||||
|
text-align: left;
|
||||||
|
margin-left: 160px;
|
||||||
|
width: 170px;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,322 @@
|
|||||||
|
semantic.home = {};
|
||||||
|
|
||||||
|
// ready event
|
||||||
|
semantic.home.ready = function() {
|
||||||
|
|
||||||
|
var
|
||||||
|
$themeDropdown = $('.theme.dropdown'),
|
||||||
|
$header = $('.masthead'),
|
||||||
|
$ui = $header.find('h1 b'),
|
||||||
|
$phrase = $header.find('h1 span'),
|
||||||
|
$download = $header.find('.download'),
|
||||||
|
$library = $header.find('.library'),
|
||||||
|
$cursor = $header.find('.typed-cursor'),
|
||||||
|
$version = $header.find('.version'),
|
||||||
|
$themeButton = $('.theming .source.button'),
|
||||||
|
$themeGrid = $('.theming .source.grid'),
|
||||||
|
|
||||||
|
handler
|
||||||
|
;
|
||||||
|
|
||||||
|
handler = {
|
||||||
|
getRandomInt: function(min, max) {
|
||||||
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
||||||
|
},
|
||||||
|
introduction: function() {
|
||||||
|
var
|
||||||
|
background = 'bg' + handler.getRandomInt(1, 9)
|
||||||
|
;
|
||||||
|
// zoom out
|
||||||
|
$header
|
||||||
|
.addClass(background)
|
||||||
|
.removeClass('zoomed')
|
||||||
|
;
|
||||||
|
},
|
||||||
|
changeLogo: function() {
|
||||||
|
var
|
||||||
|
$logo = $('.following .logo'),
|
||||||
|
$nextSide = $logo.find('.'+ $(this).data('site') +'.side'),
|
||||||
|
directions = [
|
||||||
|
'up',
|
||||||
|
'left',
|
||||||
|
'down',
|
||||||
|
'right'
|
||||||
|
],
|
||||||
|
direction = directions[Math.floor(Math.random() * directions.length)]
|
||||||
|
;
|
||||||
|
if($nextSide.length > 0) {
|
||||||
|
clearTimeout(handler.timer);
|
||||||
|
handler.timer = setTimeout(function() {
|
||||||
|
$logo
|
||||||
|
.shape('set next side', $nextSide)
|
||||||
|
.shape('flip ' + direction)
|
||||||
|
;
|
||||||
|
}, 50);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
returnLogo: function() {
|
||||||
|
var
|
||||||
|
$logo = $('.following .logo'),
|
||||||
|
$nextSide = $logo.find('.ui.side')
|
||||||
|
;
|
||||||
|
clearTimeout(handler.timer);
|
||||||
|
handler.timer = setTimeout(function() {
|
||||||
|
$logo
|
||||||
|
.shape('set next side', $nextSide)
|
||||||
|
.shape('flip over')
|
||||||
|
;
|
||||||
|
}, 500);
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
less: {
|
||||||
|
|
||||||
|
parseFile: function(content) {
|
||||||
|
var
|
||||||
|
variables = {},
|
||||||
|
lines = content.match(/^\s*(@[\s|\S]+?;)/gm),
|
||||||
|
name,
|
||||||
|
value
|
||||||
|
;
|
||||||
|
if(lines) {
|
||||||
|
$.each(lines, function(index, line) {
|
||||||
|
// clear whitespace
|
||||||
|
line = $.trim(line);
|
||||||
|
// match variables only
|
||||||
|
if(line[0] == '@') {
|
||||||
|
name = line.match(/^@(.+?):/);
|
||||||
|
value = line.match(/:\s*([\s|\S]+?;)/);
|
||||||
|
if( ($.isArray(name) && name.length >= 2) && ($.isArray(value) && value.length >= 2) ) {
|
||||||
|
name = name[1];
|
||||||
|
value = value[1];
|
||||||
|
variables[name] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
console.log(variables);
|
||||||
|
return variables;
|
||||||
|
},
|
||||||
|
|
||||||
|
changeTheme: function(theme) {
|
||||||
|
var
|
||||||
|
$themeDropdown = $(this),
|
||||||
|
$variableCode = $('.variable.code'),
|
||||||
|
$overrideCode = $('.override.code'),
|
||||||
|
$existingVariables = $variableCode.closest('.existing'),
|
||||||
|
$existingOverrides = $overrideCode.closest('.existing'),
|
||||||
|
|
||||||
|
variableURL = '/src/themes/{$theme}/{$type}s/{$element}.variables',
|
||||||
|
overrideURL = '/src/themes/{$theme}/{$type}s/{$element}.overrides',
|
||||||
|
urlData = {
|
||||||
|
theme : typeof(theme === 'string')
|
||||||
|
? theme.toLowerCase()
|
||||||
|
: theme,
|
||||||
|
type : $themeDropdown.data('type'),
|
||||||
|
element : $themeDropdown.data('element')
|
||||||
|
}
|
||||||
|
;
|
||||||
|
if($existingVariables.length > 0) {
|
||||||
|
$variableCode = $('<div class="ui variable code" data-type="less" data-preserve="true" />');
|
||||||
|
$variableCode
|
||||||
|
.insertAfter($existingVariables)
|
||||||
|
;
|
||||||
|
$existingVariables.remove();
|
||||||
|
console.log($variableCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($existingOverrides.length > 0) {
|
||||||
|
$overrideCode = $('<div class="ui override code" data-type="less" data-preserve="true" />');
|
||||||
|
$overrideCode
|
||||||
|
.insertAfter($existingOverrides)
|
||||||
|
;
|
||||||
|
$existingOverrides.remove();
|
||||||
|
console.log($overrideCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
$themeDropdown
|
||||||
|
.api({
|
||||||
|
on : 'now',
|
||||||
|
url : variableURL,
|
||||||
|
dataType : 'text',
|
||||||
|
urlData : urlData,
|
||||||
|
onSuccess: function(content) {
|
||||||
|
window.less.modifyVars( handler.less.parseFile(content) );
|
||||||
|
$themeDropdown
|
||||||
|
.api({
|
||||||
|
on : 'now',
|
||||||
|
url : overrideURL,
|
||||||
|
dataType : 'text',
|
||||||
|
urlData : urlData,
|
||||||
|
onSuccess: function(content) {
|
||||||
|
if( $('style.override').length > 0 ) {
|
||||||
|
$('style.override').remove();
|
||||||
|
}
|
||||||
|
$('<style>' + content + '</style>')
|
||||||
|
.addClass('override')
|
||||||
|
.appendTo('body')
|
||||||
|
;
|
||||||
|
$('.sticky').sticky('refresh');
|
||||||
|
|
||||||
|
$overrideCode.html(content);
|
||||||
|
$.proxy(semantic.handler.initializeCode, $overrideCode[0])();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
;
|
||||||
|
$variableCode.html(content);
|
||||||
|
$.proxy(semantic.handler.initializeCode, $variableCode[0])();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
showThemeButton: function(value, text) {
|
||||||
|
if(!$themeButton.transition('is visible')) {
|
||||||
|
$themeButton.transition('scale in');
|
||||||
|
}
|
||||||
|
$.proxy(handler.less.changeTheme, this)(value);
|
||||||
|
},
|
||||||
|
createDemos: function() {
|
||||||
|
$('.demo.menu .item, .demo.buttons .button')
|
||||||
|
.on('click', function() {
|
||||||
|
if(!$(this).hasClass('dropdown')) {
|
||||||
|
$(this)
|
||||||
|
.addClass('active')
|
||||||
|
.closest('.ui.menu, .ui.buttons')
|
||||||
|
.find('.item, .button')
|
||||||
|
.not($(this))
|
||||||
|
.removeClass('active')
|
||||||
|
;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
;
|
||||||
|
$('.example .message .close')
|
||||||
|
.on('click', function() {
|
||||||
|
$(this).closest('.message').transition('scale out');
|
||||||
|
})
|
||||||
|
;
|
||||||
|
},
|
||||||
|
toggleTheme: function() {
|
||||||
|
$(this).toggleClass('active');
|
||||||
|
$themeGrid.toggleClass('visible');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// intro
|
||||||
|
handler.introduction();
|
||||||
|
|
||||||
|
if($(window).width() > 600) {
|
||||||
|
$('body')
|
||||||
|
.visibility({
|
||||||
|
offset : -10,
|
||||||
|
observeChanges : false,
|
||||||
|
once : false,
|
||||||
|
continuous : false,
|
||||||
|
onTopPassed: function() {
|
||||||
|
requestAnimationFrame(function() {
|
||||||
|
$('.following.bar')
|
||||||
|
.addClass('light fixed')
|
||||||
|
.find('.menu')
|
||||||
|
.removeClass('inverted')
|
||||||
|
;
|
||||||
|
$('.following .additional.item')
|
||||||
|
.transition('scale in', 750)
|
||||||
|
;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onTopPassedReverse: function() {
|
||||||
|
requestAnimationFrame(function() {
|
||||||
|
$('.following.bar')
|
||||||
|
.removeClass('light fixed')
|
||||||
|
.find('.menu')
|
||||||
|
.addClass('inverted')
|
||||||
|
.find('.additional.item')
|
||||||
|
.transition('hide')
|
||||||
|
;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
;
|
||||||
|
}
|
||||||
|
$('.additional.item')
|
||||||
|
.popup({
|
||||||
|
delay: {
|
||||||
|
show: 200,
|
||||||
|
hide: 50
|
||||||
|
},
|
||||||
|
position: 'bottom center'
|
||||||
|
})
|
||||||
|
;
|
||||||
|
|
||||||
|
$('.email.stripe form')
|
||||||
|
.form({
|
||||||
|
fields: {
|
||||||
|
email: {
|
||||||
|
identifier : 'email',
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
type : 'empty',
|
||||||
|
prompt : 'Please enter an e-mail'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type : 'email',
|
||||||
|
prompt : 'Please enter a valid e-mail address'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$themeDropdown
|
||||||
|
.dropdown('setting', 'transition', 'drop')
|
||||||
|
.dropdown('setting', 'duration', 350)
|
||||||
|
.dropdown('setting', 'action', 'activate')
|
||||||
|
.dropdown('setting', 'onChange', handler.showThemeButton)
|
||||||
|
;
|
||||||
|
|
||||||
|
$themeButton
|
||||||
|
.on('click', handler.toggleTheme)
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
// demos
|
||||||
|
$('.demo .checkbox')
|
||||||
|
.checkbox()
|
||||||
|
;
|
||||||
|
$('.demo .accordion')
|
||||||
|
.accordion()
|
||||||
|
;
|
||||||
|
$('.demo .dimmer')
|
||||||
|
.dimmer({
|
||||||
|
on: 'hover'
|
||||||
|
})
|
||||||
|
;
|
||||||
|
$('.demo .ui.dropdown')
|
||||||
|
.dropdown()
|
||||||
|
;
|
||||||
|
|
||||||
|
if(window.Transifex !== undefined) {
|
||||||
|
window.Transifex.live.onTranslatePage(function(countryCode){
|
||||||
|
var fullName = $('.language.dropdown .item[data-value=' + countryCode + ']').eq(0).text();
|
||||||
|
$('.language.dropdown > .text').html(fullName);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$('.ui.sidebar')
|
||||||
|
.sidebar('setting', {
|
||||||
|
transition: 'overlay'
|
||||||
|
})
|
||||||
|
;
|
||||||
|
|
||||||
|
handler.createDemos();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// attach ready event
|
||||||
|
$(document)
|
||||||
|
.ready(semantic.home.ready)
|
||||||
|
;
|
@ -0,0 +1 @@
|
|||||||
|
{}
|
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 237 KiB |
After Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
@ -0,0 +1,889 @@
|
|||||||
|
/*
|
||||||
|
* # Semantic UI - 2.4.2
|
||||||
|
* https://github.com/Semantic-Org/Semantic-UI
|
||||||
|
* http://www.semantic-ui.com/
|
||||||
|
*
|
||||||
|
* Copyright 2014 Contributors
|
||||||
|
* Released under the MIT license
|
||||||
|
* http://opensource.org/licenses/MIT
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/*!
|
||||||
|
* # Semantic UI - Segment
|
||||||
|
* http://github.com/semantic-org/semantic-ui/
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Released under the MIT license
|
||||||
|
* http://opensource.org/licenses/MIT
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Segment
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
.ui.segment {
|
||||||
|
position: relative;
|
||||||
|
background: #FFFFFF;
|
||||||
|
-webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
|
||||||
|
box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
|
||||||
|
margin: 1rem 0em;
|
||||||
|
padding: 1em 1em;
|
||||||
|
border-radius: 0.28571429rem;
|
||||||
|
border: 1px solid rgba(34, 36, 38, 0.15);
|
||||||
|
}
|
||||||
|
.ui.segment:first-child {
|
||||||
|
margin-top: 0em;
|
||||||
|
}
|
||||||
|
.ui.segment:last-child {
|
||||||
|
margin-bottom: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Vertical */
|
||||||
|
.ui.vertical.segment {
|
||||||
|
margin: 0em;
|
||||||
|
padding-left: 0em;
|
||||||
|
padding-right: 0em;
|
||||||
|
background: none transparent;
|
||||||
|
border-radius: 0px;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
border: none;
|
||||||
|
border-bottom: 1px solid rgba(34, 36, 38, 0.15);
|
||||||
|
}
|
||||||
|
.ui.vertical.segment:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Loose Coupling
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Header */
|
||||||
|
.ui.inverted.segment > .ui.header {
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Label */
|
||||||
|
.ui[class*="bottom attached"].segment > [class*="top attached"].label {
|
||||||
|
border-top-left-radius: 0em;
|
||||||
|
border-top-right-radius: 0em;
|
||||||
|
}
|
||||||
|
.ui[class*="top attached"].segment > [class*="bottom attached"].label {
|
||||||
|
border-bottom-left-radius: 0em;
|
||||||
|
border-bottom-right-radius: 0em;
|
||||||
|
}
|
||||||
|
.ui.attached.segment:not(.top):not(.bottom) > [class*="top attached"].label {
|
||||||
|
border-top-left-radius: 0em;
|
||||||
|
border-top-right-radius: 0em;
|
||||||
|
}
|
||||||
|
.ui.attached.segment:not(.top):not(.bottom) > [class*="bottom attached"].label {
|
||||||
|
border-bottom-left-radius: 0em;
|
||||||
|
border-bottom-right-radius: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Grid */
|
||||||
|
.ui.page.grid.segment,
|
||||||
|
.ui.grid > .row > .ui.segment.column,
|
||||||
|
.ui.grid > .ui.segment.column {
|
||||||
|
padding-top: 2em;
|
||||||
|
padding-bottom: 2em;
|
||||||
|
}
|
||||||
|
.ui.grid.segment {
|
||||||
|
margin: 1rem 0em;
|
||||||
|
border-radius: 0.28571429rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Table */
|
||||||
|
.ui.basic.table.segment {
|
||||||
|
background: #FFFFFF;
|
||||||
|
border: 1px solid rgba(34, 36, 38, 0.15);
|
||||||
|
-webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
|
||||||
|
box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
|
||||||
|
}
|
||||||
|
.ui[class*="very basic"].table.segment {
|
||||||
|
padding: 1em 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Types
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Placeholder
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.placeholder.segment {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-ms-flex-direction: column;
|
||||||
|
flex-direction: column;
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-ms-flex-pack: center;
|
||||||
|
justify-content: center;
|
||||||
|
-webkit-box-align: stretch;
|
||||||
|
-ms-flex-align: stretch;
|
||||||
|
align-items: stretch;
|
||||||
|
max-width: initial;
|
||||||
|
-webkit-animation: none;
|
||||||
|
animation: none;
|
||||||
|
overflow: visible;
|
||||||
|
padding: 1em 1em;
|
||||||
|
min-height: 18rem;
|
||||||
|
background: #F9FAFB;
|
||||||
|
border-color: rgba(34, 36, 38, 0.15);
|
||||||
|
-webkit-box-shadow: 0px 2px 25px 0 rgba(34, 36, 38, 0.05) inset;
|
||||||
|
box-shadow: 0px 2px 25px 0 rgba(34, 36, 38, 0.05) inset;
|
||||||
|
}
|
||||||
|
.ui.placeholder.segment .button,
|
||||||
|
.ui.placeholder.segment textarea {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.ui.placeholder.segment .field,
|
||||||
|
.ui.placeholder.segment textarea,
|
||||||
|
.ui.placeholder.segment > .ui.input,
|
||||||
|
.ui.placeholder.segment .button {
|
||||||
|
max-width: 15rem;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
.ui.placeholder.segment .column .button,
|
||||||
|
.ui.placeholder.segment .column .field,
|
||||||
|
.ui.placeholder.segment .column textarea,
|
||||||
|
.ui.placeholder.segment .column > .ui.input {
|
||||||
|
max-width: 15rem;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
.ui.placeholder.segment > .inline {
|
||||||
|
-ms-flex-item-align: center;
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
.ui.placeholder.segment > .inline > .button {
|
||||||
|
display: inline-block;
|
||||||
|
width: auto;
|
||||||
|
margin: 0px 0.35714286rem 0px 0px;
|
||||||
|
}
|
||||||
|
.ui.placeholder.segment > .inline > .button:last-child {
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Piled
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.piled.segments,
|
||||||
|
.ui.piled.segment {
|
||||||
|
margin: 3em 0em;
|
||||||
|
-webkit-box-shadow: '';
|
||||||
|
box-shadow: '';
|
||||||
|
z-index: auto;
|
||||||
|
}
|
||||||
|
.ui.piled.segment:first-child {
|
||||||
|
margin-top: 0em;
|
||||||
|
}
|
||||||
|
.ui.piled.segment:last-child {
|
||||||
|
margin-bottom: 0em;
|
||||||
|
}
|
||||||
|
.ui.piled.segments:after,
|
||||||
|
.ui.piled.segments:before,
|
||||||
|
.ui.piled.segment:after,
|
||||||
|
.ui.piled.segment:before {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
visibility: visible;
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
height: 100%;
|
||||||
|
left: 0px;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid rgba(34, 36, 38, 0.15);
|
||||||
|
-webkit-box-shadow: '';
|
||||||
|
box-shadow: '';
|
||||||
|
}
|
||||||
|
.ui.piled.segments:before,
|
||||||
|
.ui.piled.segment:before {
|
||||||
|
-webkit-transform: rotate(-1.2deg);
|
||||||
|
transform: rotate(-1.2deg);
|
||||||
|
top: 0;
|
||||||
|
z-index: -2;
|
||||||
|
}
|
||||||
|
.ui.piled.segments:after,
|
||||||
|
.ui.piled.segment:after {
|
||||||
|
-webkit-transform: rotate(1.2deg);
|
||||||
|
transform: rotate(1.2deg);
|
||||||
|
top: 0;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Piled Attached */
|
||||||
|
.ui[class*="top attached"].piled.segment {
|
||||||
|
margin-top: 3em;
|
||||||
|
margin-bottom: 0em;
|
||||||
|
}
|
||||||
|
.ui.piled.segment[class*="top attached"]:first-child {
|
||||||
|
margin-top: 0em;
|
||||||
|
}
|
||||||
|
.ui.piled.segment[class*="bottom attached"] {
|
||||||
|
margin-top: 0em;
|
||||||
|
margin-bottom: 3em;
|
||||||
|
}
|
||||||
|
.ui.piled.segment[class*="bottom attached"]:last-child {
|
||||||
|
margin-bottom: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Stacked
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.stacked.segment {
|
||||||
|
padding-bottom: 1.4em;
|
||||||
|
}
|
||||||
|
.ui.stacked.segments:before,
|
||||||
|
.ui.stacked.segments:after,
|
||||||
|
.ui.stacked.segment:before,
|
||||||
|
.ui.stacked.segment:after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
bottom: -3px;
|
||||||
|
left: 0%;
|
||||||
|
border-top: 1px solid rgba(34, 36, 38, 0.15);
|
||||||
|
background: rgba(0, 0, 0, 0.03);
|
||||||
|
width: 100%;
|
||||||
|
height: 6px;
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
.ui.stacked.segments:before,
|
||||||
|
.ui.stacked.segment:before {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add additional page */
|
||||||
|
.ui.tall.stacked.segments:before,
|
||||||
|
.ui.tall.stacked.segment:before {
|
||||||
|
display: block;
|
||||||
|
bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inverted */
|
||||||
|
.ui.stacked.inverted.segments:before,
|
||||||
|
.ui.stacked.inverted.segments:after,
|
||||||
|
.ui.stacked.inverted.segment:before,
|
||||||
|
.ui.stacked.inverted.segment:after {
|
||||||
|
background-color: rgba(0, 0, 0, 0.03);
|
||||||
|
border-top: 1px solid rgba(34, 36, 38, 0.35);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Padded
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.padded.segment {
|
||||||
|
padding: 1.5em;
|
||||||
|
}
|
||||||
|
.ui[class*="very padded"].segment {
|
||||||
|
padding: 3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Padded vertical */
|
||||||
|
.ui.padded.segment.vertical.segment,
|
||||||
|
.ui[class*="very padded"].vertical.segment {
|
||||||
|
padding-left: 0px;
|
||||||
|
padding-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Compact
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.compact.segment {
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Compact Group */
|
||||||
|
.ui.compact.segments {
|
||||||
|
display: -webkit-inline-box;
|
||||||
|
display: -ms-inline-flexbox;
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
.ui.compact.segments .segment,
|
||||||
|
.ui.segments .compact.segment {
|
||||||
|
display: block;
|
||||||
|
-webkit-box-flex: 0;
|
||||||
|
-ms-flex: 0 1 auto;
|
||||||
|
flex: 0 1 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Circular
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.circular.segment {
|
||||||
|
display: table-cell;
|
||||||
|
padding: 2em;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
border-radius: 500em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Raised
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.raised.segments,
|
||||||
|
.ui.raised.segment {
|
||||||
|
-webkit-box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
|
||||||
|
box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Groups
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
|
||||||
|
/* Group */
|
||||||
|
.ui.segments {
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-ms-flex-direction: column;
|
||||||
|
flex-direction: column;
|
||||||
|
position: relative;
|
||||||
|
margin: 1rem 0em;
|
||||||
|
border: 1px solid rgba(34, 36, 38, 0.15);
|
||||||
|
-webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
|
||||||
|
box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
|
||||||
|
border-radius: 0.28571429rem;
|
||||||
|
}
|
||||||
|
.ui.segments:first-child {
|
||||||
|
margin-top: 0em;
|
||||||
|
}
|
||||||
|
.ui.segments:last-child {
|
||||||
|
margin-bottom: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Nested Segment */
|
||||||
|
.ui.segments > .segment {
|
||||||
|
top: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
border-radius: 0px;
|
||||||
|
margin: 0em;
|
||||||
|
width: auto;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
border: none;
|
||||||
|
border-top: 1px solid rgba(34, 36, 38, 0.15);
|
||||||
|
}
|
||||||
|
.ui.segments:not(.horizontal) > .segment:first-child {
|
||||||
|
border-top: none;
|
||||||
|
margin-top: 0em;
|
||||||
|
bottom: 0px;
|
||||||
|
margin-bottom: 0em;
|
||||||
|
top: 0px;
|
||||||
|
border-radius: 0.28571429rem 0.28571429rem 0em 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Bottom */
|
||||||
|
.ui.segments:not(.horizontal) > .segment:last-child {
|
||||||
|
top: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
margin-top: 0em;
|
||||||
|
margin-bottom: 0em;
|
||||||
|
-webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
|
||||||
|
box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
|
||||||
|
border-radius: 0em 0em 0.28571429rem 0.28571429rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Only */
|
||||||
|
.ui.segments:not(.horizontal) > .segment:only-child {
|
||||||
|
border-radius: 0.28571429rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Nested Group */
|
||||||
|
.ui.segments > .ui.segments {
|
||||||
|
border-top: 1px solid rgba(34, 36, 38, 0.15);
|
||||||
|
margin: 1rem 1rem;
|
||||||
|
}
|
||||||
|
.ui.segments > .segments:first-child {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
.ui.segments > .segment + .segments:not(.horizontal) {
|
||||||
|
margin-top: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Horizontal Group */
|
||||||
|
.ui.horizontal.segments {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-orient: horizontal;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-ms-flex-direction: row;
|
||||||
|
flex-direction: row;
|
||||||
|
background-color: transparent;
|
||||||
|
border-radius: 0px;
|
||||||
|
padding: 0em;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
-webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
|
||||||
|
box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
|
||||||
|
margin: 1rem 0em;
|
||||||
|
border-radius: 0.28571429rem;
|
||||||
|
border: 1px solid rgba(34, 36, 38, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Nested Horizontal Group */
|
||||||
|
.ui.segments > .horizontal.segments {
|
||||||
|
margin: 0em;
|
||||||
|
background-color: transparent;
|
||||||
|
border-radius: 0px;
|
||||||
|
border: none;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
border-top: 1px solid rgba(34, 36, 38, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Horizontal Segment */
|
||||||
|
.ui.horizontal.segments > .segment {
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
-ms-flex: 1 1 0px;
|
||||||
|
|
||||||
|
/* Solves #2550 MS Flex */
|
||||||
|
margin: 0em;
|
||||||
|
min-width: 0px;
|
||||||
|
background-color: transparent;
|
||||||
|
border-radius: 0px;
|
||||||
|
border: none;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
border-left: 1px solid rgba(34, 36, 38, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Border Fixes */
|
||||||
|
.ui.segments > .horizontal.segments:first-child {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
.ui.horizontal.segments > .segment:first-child {
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
States
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Disabled
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
.ui.disabled.segment {
|
||||||
|
opacity: 0.45;
|
||||||
|
color: rgba(40, 40, 40, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
Loading
|
||||||
|
---------------*/
|
||||||
|
|
||||||
|
.ui.loading.segment {
|
||||||
|
position: relative;
|
||||||
|
cursor: default;
|
||||||
|
pointer-events: none;
|
||||||
|
text-shadow: none !important;
|
||||||
|
color: transparent !important;
|
||||||
|
-webkit-transition: all 0s linear;
|
||||||
|
transition: all 0s linear;
|
||||||
|
}
|
||||||
|
.ui.loading.segment:before {
|
||||||
|
position: absolute;
|
||||||
|
content: '';
|
||||||
|
top: 0%;
|
||||||
|
left: 0%;
|
||||||
|
background: rgba(255, 255, 255, 0.8);
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 0.28571429rem;
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
.ui.loading.segment:after {
|
||||||
|
position: absolute;
|
||||||
|
content: '';
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin: -1.5em 0em 0em -1.5em;
|
||||||
|
width: 3em;
|
||||||
|
height: 3em;
|
||||||
|
-webkit-animation: segment-spin 0.6s linear;
|
||||||
|
animation: segment-spin 0.6s linear;
|
||||||
|
-webkit-animation-iteration-count: infinite;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
border-radius: 500rem;
|
||||||
|
border-color: #767676 rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1);
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0.2em;
|
||||||
|
-webkit-box-shadow: 0px 0px 0px 1px transparent;
|
||||||
|
box-shadow: 0px 0px 0px 1px transparent;
|
||||||
|
visibility: visible;
|
||||||
|
z-index: 101;
|
||||||
|
}
|
||||||
|
@-webkit-keyframes segment-spin {
|
||||||
|
from {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes segment-spin {
|
||||||
|
from {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Variations
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Basic
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.basic.segment {
|
||||||
|
background: none transparent;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Clearing
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.clearing.segment:after {
|
||||||
|
content: ".";
|
||||||
|
display: block;
|
||||||
|
height: 0;
|
||||||
|
clear: both;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Colors
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Red */
|
||||||
|
.ui.red.segment:not(.inverted) {
|
||||||
|
border-top: 2px solid #DB2828 !important;
|
||||||
|
}
|
||||||
|
.ui.inverted.red.segment {
|
||||||
|
background-color: #DB2828 !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Orange */
|
||||||
|
.ui.orange.segment:not(.inverted) {
|
||||||
|
border-top: 2px solid #F2711C !important;
|
||||||
|
}
|
||||||
|
.ui.inverted.orange.segment {
|
||||||
|
background-color: #F2711C !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Yellow */
|
||||||
|
.ui.yellow.segment:not(.inverted) {
|
||||||
|
border-top: 2px solid #FBBD08 !important;
|
||||||
|
}
|
||||||
|
.ui.inverted.yellow.segment {
|
||||||
|
background-color: #FBBD08 !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Olive */
|
||||||
|
.ui.olive.segment:not(.inverted) {
|
||||||
|
border-top: 2px solid #B5CC18 !important;
|
||||||
|
}
|
||||||
|
.ui.inverted.olive.segment {
|
||||||
|
background-color: #B5CC18 !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Green */
|
||||||
|
.ui.green.segment:not(.inverted) {
|
||||||
|
border-top: 2px solid #21BA45 !important;
|
||||||
|
}
|
||||||
|
.ui.inverted.green.segment {
|
||||||
|
background-color: #21BA45 !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Teal */
|
||||||
|
.ui.teal.segment:not(.inverted) {
|
||||||
|
border-top: 2px solid #00B5AD !important;
|
||||||
|
}
|
||||||
|
.ui.inverted.teal.segment {
|
||||||
|
background-color: #00B5AD !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Blue */
|
||||||
|
.ui.blue.segment:not(.inverted) {
|
||||||
|
border-top: 2px solid #2185D0 !important;
|
||||||
|
}
|
||||||
|
.ui.inverted.blue.segment {
|
||||||
|
background-color: #2185D0 !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Violet */
|
||||||
|
.ui.violet.segment:not(.inverted) {
|
||||||
|
border-top: 2px solid #6435C9 !important;
|
||||||
|
}
|
||||||
|
.ui.inverted.violet.segment {
|
||||||
|
background-color: #6435C9 !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Purple */
|
||||||
|
.ui.purple.segment:not(.inverted) {
|
||||||
|
border-top: 2px solid #A333C8 !important;
|
||||||
|
}
|
||||||
|
.ui.inverted.purple.segment {
|
||||||
|
background-color: #A333C8 !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pink */
|
||||||
|
.ui.pink.segment:not(.inverted) {
|
||||||
|
border-top: 2px solid #E03997 !important;
|
||||||
|
}
|
||||||
|
.ui.inverted.pink.segment {
|
||||||
|
background-color: #E03997 !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Brown */
|
||||||
|
.ui.brown.segment:not(.inverted) {
|
||||||
|
border-top: 2px solid #A5673F !important;
|
||||||
|
}
|
||||||
|
.ui.inverted.brown.segment {
|
||||||
|
background-color: #A5673F !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Grey */
|
||||||
|
.ui.grey.segment:not(.inverted) {
|
||||||
|
border-top: 2px solid #767676 !important;
|
||||||
|
}
|
||||||
|
.ui.inverted.grey.segment {
|
||||||
|
background-color: #767676 !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Black */
|
||||||
|
.ui.black.segment:not(.inverted) {
|
||||||
|
border-top: 2px solid #1B1C1D !important;
|
||||||
|
}
|
||||||
|
.ui.inverted.black.segment {
|
||||||
|
background-color: #1B1C1D !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Aligned
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui[class*="left aligned"].segment {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.ui[class*="right aligned"].segment {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.ui[class*="center aligned"].segment {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Floated
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.floated.segment,
|
||||||
|
.ui[class*="left floated"].segment {
|
||||||
|
float: left;
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
.ui[class*="right floated"].segment {
|
||||||
|
float: right;
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Inverted
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.inverted.segment {
|
||||||
|
border: none;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.ui.inverted.segment,
|
||||||
|
.ui.primary.inverted.segment {
|
||||||
|
background: #1B1C1D;
|
||||||
|
color: rgba(255, 255, 255, 0.9);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Nested */
|
||||||
|
.ui.inverted.segment .segment {
|
||||||
|
color: rgba(0, 0, 0, 0.87);
|
||||||
|
}
|
||||||
|
.ui.inverted.segment .inverted.segment {
|
||||||
|
color: rgba(255, 255, 255, 0.9);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Attached */
|
||||||
|
.ui.inverted.attached.segment {
|
||||||
|
border-color: #555555;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Emphasis
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Secondary */
|
||||||
|
.ui.secondary.segment {
|
||||||
|
background: #F3F4F5;
|
||||||
|
color: rgba(0, 0, 0, 0.6);
|
||||||
|
}
|
||||||
|
.ui.secondary.inverted.segment {
|
||||||
|
background: #4c4f52 -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.2)), to(rgba(255, 255, 255, 0.2)));
|
||||||
|
background: #4c4f52 -webkit-linear-gradient(rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.2) 100%);
|
||||||
|
background: #4c4f52 linear-gradient(rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.2) 100%);
|
||||||
|
color: rgba(255, 255, 255, 0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tertiary */
|
||||||
|
.ui.tertiary.segment {
|
||||||
|
background: #DCDDDE;
|
||||||
|
color: rgba(0, 0, 0, 0.6);
|
||||||
|
}
|
||||||
|
.ui.tertiary.inverted.segment {
|
||||||
|
background: #717579 -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.35)), to(rgba(255, 255, 255, 0.35)));
|
||||||
|
background: #717579 -webkit-linear-gradient(rgba(255, 255, 255, 0.35) 0%, rgba(255, 255, 255, 0.35) 100%);
|
||||||
|
background: #717579 linear-gradient(rgba(255, 255, 255, 0.35) 0%, rgba(255, 255, 255, 0.35) 100%);
|
||||||
|
color: rgba(255, 255, 255, 0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Attached
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Middle */
|
||||||
|
.ui.attached.segment {
|
||||||
|
top: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
border-radius: 0px;
|
||||||
|
margin: 0em -1px;
|
||||||
|
width: calc(100% - (-1px * 2));
|
||||||
|
max-width: calc(100% - (-1px * 2));
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
border: 1px solid #D4D4D5;
|
||||||
|
}
|
||||||
|
.ui.attached:not(.message) + .ui.attached.segment:not(.top) {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Top */
|
||||||
|
.ui[class*="top attached"].segment {
|
||||||
|
bottom: 0px;
|
||||||
|
margin-bottom: 0em;
|
||||||
|
top: 0px;
|
||||||
|
margin-top: 1rem;
|
||||||
|
border-radius: 0.28571429rem 0.28571429rem 0em 0em;
|
||||||
|
}
|
||||||
|
.ui.segment[class*="top attached"]:first-child {
|
||||||
|
margin-top: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Bottom */
|
||||||
|
.ui.segment[class*="bottom attached"] {
|
||||||
|
bottom: 0px;
|
||||||
|
margin-top: 0em;
|
||||||
|
top: 0px;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
-webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
|
||||||
|
box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
|
||||||
|
border-radius: 0em 0em 0.28571429rem 0.28571429rem;
|
||||||
|
}
|
||||||
|
.ui.segment[class*="bottom attached"]:last-child {
|
||||||
|
margin-bottom: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
Size
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
.ui.mini.segments .segment,
|
||||||
|
.ui.mini.segment {
|
||||||
|
font-size: 0.78571429rem;
|
||||||
|
}
|
||||||
|
.ui.tiny.segments .segment,
|
||||||
|
.ui.tiny.segment {
|
||||||
|
font-size: 0.85714286rem;
|
||||||
|
}
|
||||||
|
.ui.small.segments .segment,
|
||||||
|
.ui.small.segment {
|
||||||
|
font-size: 0.92857143rem;
|
||||||
|
}
|
||||||
|
.ui.segments .segment,
|
||||||
|
.ui.segment {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
.ui.large.segments .segment,
|
||||||
|
.ui.large.segment {
|
||||||
|
font-size: 1.14285714rem;
|
||||||
|
}
|
||||||
|
.ui.big.segments .segment,
|
||||||
|
.ui.big.segment {
|
||||||
|
font-size: 1.28571429rem;
|
||||||
|
}
|
||||||
|
.ui.huge.segments .segment,
|
||||||
|
.ui.huge.segment {
|
||||||
|
font-size: 1.42857143rem;
|
||||||
|
}
|
||||||
|
.ui.massive.segments .segment,
|
||||||
|
.ui.massive.segment {
|
||||||
|
font-size: 1.71428571rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Theme Overrides
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Site Overrides
|
||||||
|
*******************************/
|
||||||
|
|
After Width: | Height: | Size: 5.8 KiB |
@ -1,7 +1,7 @@
|
|||||||
Metadata-Version: 2.1
|
Metadata-Version: 2.1
|
||||||
Name: pyOpenRPA
|
Name: pyOpenRPA
|
||||||
Version: 1.2.14
|
Version: 1.3.0
|
||||||
Summary: First open source RPA platform for business
|
Summary: The powerful open source RPA platform for business
|
||||||
Home-page: https://pyopenrpa.ru/
|
Home-page: https://pyopenrpa.ru/
|
||||||
Author: Ivan Maslov
|
Author: Ivan Maslov
|
||||||
Author-email: Ivan.Maslov@pyopenrpa.ru
|
Author-email: Ivan.Maslov@pyopenrpa.ru
|
After Width: | Height: | Size: 110 KiB |
@ -0,0 +1,100 @@
|
|||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/reset.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/site.css">
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/container.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/grid.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/header.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/image.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/menu.css">
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/divider.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/dropdown.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/segment.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/button.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/list.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/icon.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/sidebar.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/orpa/Resources/Web/Semantic-UI-CSS-master/components/transition.css">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="pusher tag-top">
|
||||||
|
|
||||||
|
<div class="ui inverted vertical masthead center aligned segment zoomed" style="background-color:#000000; ">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
.main.container {
|
||||||
|
margin-top: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main.menu {
|
||||||
|
margin-top: 4em;
|
||||||
|
border-radius: 0;
|
||||||
|
border: none;
|
||||||
|
box-shadow: none;
|
||||||
|
transition:
|
||||||
|
box-shadow 0.5s ease,
|
||||||
|
padding 0.5s ease
|
||||||
|
;
|
||||||
|
}
|
||||||
|
.main.menu .item img.logo {
|
||||||
|
margin-right: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay {
|
||||||
|
float: left;
|
||||||
|
margin: 0em 3em 1em 0em;
|
||||||
|
}
|
||||||
|
.overlay .menu {
|
||||||
|
position: relative;
|
||||||
|
left: 0;
|
||||||
|
transition: left 0.5s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main.menu.fixed {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
border: 1px solid #DDD;
|
||||||
|
box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
.overlay.fixed .menu {
|
||||||
|
left: 800px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text.container .left.floated.image {
|
||||||
|
margin: 2em 2em 2em -4em;
|
||||||
|
}
|
||||||
|
.text.container .right.floated.image {
|
||||||
|
margin: 2em -4em 2em 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui.footer.segment {
|
||||||
|
margin: 5em 0em 0em;
|
||||||
|
padding: 5em 0em;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="ui text container tag-top">
|
||||||
|
<div class="ui middle aligned stackable grid container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="four wide column">
|
||||||
|
<img src="/orpa/Resources/Web/orpa/styleset/pyOpenRPA_logo.png" width="140px;" height="140px"></img>
|
||||||
|
</div>
|
||||||
|
<div class="twelve wide column">
|
||||||
|
<h1 class="ui inverted header" style="margin-top:0px; margin-bottom:0px;">
|
||||||
|
<span class="library" style="text-transform: uppercase; letter-spacing: 5px; margin-top:0px; margin-bottom:5px; font-weight: bold;">{{title}}</span>
|
||||||
|
</h1>
|
||||||
|
<h2 style="text-transform: uppercase; letter-spacing: 5px; margin-top:0px; margin-bottom:5px;">
|
||||||
|
{{subtitle}}
|
||||||
|
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
After Width: | Height: | Size: 4.8 KiB |
@ -0,0 +1,992 @@
|
|||||||
|
var mGlobal={}
|
||||||
|
mGlobal.pyOpenRPA = {}
|
||||||
|
window.onload=function() {
|
||||||
|
//document.cookie = "SessionGUIDStr=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
|
||||||
|
//Render existing data
|
||||||
|
//mGlobal.Monitor.fControlPanelRefresh_TechnicalRender()
|
||||||
|
}
|
||||||
|
$(document).ready(function() {
|
||||||
|
document.cookie = "SessionGUIDStr=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
|
||||||
|
console.log("Cookie is deleted")
|
||||||
|
// fix main menu to page on passing
|
||||||
|
$('.main.menu').visibility({
|
||||||
|
type: 'fixed'
|
||||||
|
});
|
||||||
|
$('.overlay').visibility({
|
||||||
|
type: 'fixed',
|
||||||
|
offset: 80
|
||||||
|
});
|
||||||
|
|
||||||
|
// lazy load images
|
||||||
|
$('.image').visibility({
|
||||||
|
type: 'image',
|
||||||
|
transition: 'vertical flip in',
|
||||||
|
duration: 500
|
||||||
|
});
|
||||||
|
|
||||||
|
// show dropdown on hover
|
||||||
|
$('.main.menu .ui.dropdown').dropdown({
|
||||||
|
on: 'hover'
|
||||||
|
});
|
||||||
|
function clone(obj) {
|
||||||
|
var copy;
|
||||||
|
|
||||||
|
// Handle the 3 simple types, and null or undefined
|
||||||
|
if (null == obj || "object" != typeof obj) return obj;
|
||||||
|
|
||||||
|
// Handle Date
|
||||||
|
if (obj instanceof Date) {
|
||||||
|
copy = new Date();
|
||||||
|
copy.setTime(obj.getTime());
|
||||||
|
return copy;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle Array
|
||||||
|
if (obj instanceof Array) {
|
||||||
|
copy = [];
|
||||||
|
for (var i = 0, len = obj.length; i < len; i++) {
|
||||||
|
copy[i] = clone(obj[i]);
|
||||||
|
}
|
||||||
|
return copy;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle Object
|
||||||
|
if (obj instanceof Object) {
|
||||||
|
copy = {};
|
||||||
|
for (var attr in obj) {
|
||||||
|
if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]);
|
||||||
|
}
|
||||||
|
return copy;
|
||||||
|
}
|
||||||
|
throw new Error("Unable to copy obj! Its type isn't supported.");
|
||||||
|
}
|
||||||
|
//For data storage key
|
||||||
|
mGlobal["DataStorage"] = {}
|
||||||
|
// Clear the session cookie
|
||||||
|
|
||||||
|
String.prototype.replaceAll = function(search, replace){
|
||||||
|
return this.split(search).join(replace);
|
||||||
|
}
|
||||||
|
mGlobal.GeneralGenerateHTMLCodeHandlebars=function(inInnerTemplateSelector,inData) {
|
||||||
|
lHTMLTemplate=$(inInnerTemplateSelector)[0].innerHTML
|
||||||
|
//console.log(lHTMLTemplate)
|
||||||
|
//Компиляция
|
||||||
|
var template = Handlebars.compile(lHTMLTemplate);
|
||||||
|
//Вставка данных
|
||||||
|
var lHTMLResult = template(inData);
|
||||||
|
return lHTMLResult
|
||||||
|
}
|
||||||
|
mGlobal.GeneralGenerateHTMLCode=function(inTemplateHTMLSelector,inItemDictionary,inKeywordPrefix="::",inKeywordPostfix="::") {
|
||||||
|
///Получить заготовку
|
||||||
|
lTemplateHTMLCode=$(inTemplateHTMLSelector)[0].outerHTML
|
||||||
|
///Определить ключь экранирования специальных ключевых слов
|
||||||
|
///Выполнить циклические замены, если там есть пожходящие ключи
|
||||||
|
lResultHTMLCode=lTemplateHTMLCode
|
||||||
|
for(var lKey in inItemDictionary) {
|
||||||
|
lHTMLKey=inKeywordPrefix+lKey+inKeywordPostfix;
|
||||||
|
lResultHTMLCode=lResultHTMLCode.replaceAll(lHTMLKey,inItemDictionary[lKey])
|
||||||
|
}
|
||||||
|
///Вернуть результат
|
||||||
|
return lResultHTMLCode
|
||||||
|
}
|
||||||
|
//////////////////////////
|
||||||
|
/////Info JS module
|
||||||
|
//////////////////////////
|
||||||
|
mGlobal.Info={};
|
||||||
|
|
||||||
|
mGlobal.Info.TableActivityLogScheduleListRefresh=function() {
|
||||||
|
|
||||||
|
}
|
||||||
|
//////////////////////////
|
||||||
|
/////Controller JS module
|
||||||
|
//////////////////////////
|
||||||
|
mGlobal.Controller={};
|
||||||
|
|
||||||
|
mGlobal.Controller.CMDRunText=function(inCMDText) {
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = [
|
||||||
|
{"Type":"CMDStart", "Command": inCMDText}
|
||||||
|
]
|
||||||
|
///Обнулить таблицу
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3){},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Controller.CMDRun=function() {
|
||||||
|
///Обнулить таблицу
|
||||||
|
lCMDCode=$(".openrpa-controller-cmd-run-input")[0].value
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = [
|
||||||
|
{
|
||||||
|
"Def":"OSCMD", // def link or def alias (look gSettings["Processor"]["AliasDefDict"])
|
||||||
|
"ArgList":[], // Args list
|
||||||
|
"ArgDict":{"inCMDStr":lCMDCode,"inRunAsyncBool":false}, // Args dictionary
|
||||||
|
"ArgGSettings": null, // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
"ArgLogger": "inLogger" // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: '/pyOpenRPA/ActivityListExecute',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///Отправить запрос на формирование таблицы
|
||||||
|
//lHTMLCode=console.log("CMDRun result: "+lResponseJSON[0].result)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Controller.CMDRunGUILogout=function() {
|
||||||
|
///Обнулить таблицу
|
||||||
|
lCMDCode="for /f \"skip=1 tokens=2\" %s in ('query user %USERNAME%') do (tscon \\dest:console)"
|
||||||
|
//lCMDCode = lCMDCode.replace(/\\n/g, "\\n")
|
||||||
|
// .replace(/\\'/g, "\\'")
|
||||||
|
// .replace(/\\"/g, '\\"')
|
||||||
|
// .replace(/\\&/g, "\\&")
|
||||||
|
// .replace(/\\r/g, "\\r")
|
||||||
|
// .replace(/\\t/g, "\\t")
|
||||||
|
// .replace(/\\b/g, "\\b")
|
||||||
|
// .replace(/\\f/g, "\\f")
|
||||||
|
// .replace('"', "\\\"");
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = [
|
||||||
|
{"Type":"CMDStart", "Command": lCMDCode }
|
||||||
|
]
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///Отправить запрос на формирование таблицы
|
||||||
|
//lHTMLCode=console.log("CMDRun result: "+lResponseJSON[0].result)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
///Restart PC
|
||||||
|
mGlobal.Controller.PCRestart = function () {
|
||||||
|
mGlobal.Controller.OrchestratorSessionSave()
|
||||||
|
mGlobal.Controller.CMDRunText("shutdown -r")
|
||||||
|
}
|
||||||
|
///Orchestrator save session
|
||||||
|
mGlobal.Controller.OrchestratorSessionSave=function() {
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = [
|
||||||
|
{"Type":"OrchestratorSessionSave"}
|
||||||
|
]
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
///Перезагрузить Orchestrator
|
||||||
|
mGlobal.Controller.OrchestratorRestart=function() {
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = [
|
||||||
|
{"Type":"OrchestratorRestart"}
|
||||||
|
]
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Controller.OrchestratorGITPullRestart = function() {
|
||||||
|
mGlobal.Controller.OrchestratorSessionSave() //Save current RDP list session
|
||||||
|
mGlobal.Controller.CMDRunText("timeout 3 & taskkill /f /im OpenRPA_Orchestrator.exe & timeout 2 & cd "+mGlobal.WorkingDirectoryPathStr+" & git reset --hard & git pull & pyOpenRPA.Orchestrator_x64_administrator_startup.cmd");
|
||||||
|
}
|
||||||
|
//////////////////////////
|
||||||
|
/////Monitor JS module
|
||||||
|
//////////////////////////
|
||||||
|
mGlobal.Monitor={};
|
||||||
|
mGlobal.Monitor.ScreenshotModal={};
|
||||||
|
mGlobal.Monitor.GenerateUniqueID=function(inPrefix="tempUID=") {
|
||||||
|
return inPrefix+Math.round(Math.random()*1000)+"-"+Math.round(Math.random()*10000)+"-"+Math.round(Math.random()*1000)
|
||||||
|
}
|
||||||
|
//inHostURI: http://localhost:8081
|
||||||
|
mGlobal.Monitor.ScreenshotModal.Show=function(inHostURI=" ") {
|
||||||
|
$('.ui.modal.daemon-screenshot').modal({'onHide':function (inElement) {mGlobal.Monitor.ScreenshotModal.Close();} }).modal('show');
|
||||||
|
|
||||||
|
//Функция обновления картинки
|
||||||
|
lScreenshotUpdate=function() {
|
||||||
|
lScreenshotSrc=inHostURI+"/GetScreenshot?"+mGlobal.Monitor.GenerateUniqueID()
|
||||||
|
$(".daemon-screenshot img").attr('src', lScreenshotSrc);
|
||||||
|
}
|
||||||
|
|
||||||
|
mGlobal.Monitor.ScreenshotModal.timerId=setInterval(lScreenshotUpdate,1500)
|
||||||
|
}
|
||||||
|
mGlobal.Monitor.ScreenshotModal.Close=function() {
|
||||||
|
clearInterval(mGlobal.Monitor.ScreenshotModal.timerId);
|
||||||
|
}
|
||||||
|
///Monitor
|
||||||
|
mGlobal.Monitor.DaemonList={}
|
||||||
|
mGlobal.Monitor.DaemonList.fRefreshTable=function() {
|
||||||
|
///Загрузка данных
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: 'Monitor/JSONDaemonListGet',
|
||||||
|
data: '',
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///Сформировать HTML код новой таблицы
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-hidden-monitor-table-general",lResponseJSON)
|
||||||
|
///Очистить дерево
|
||||||
|
//mGlobal.ElementTree.fClear();
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".openrpa-monitor").html(lHTMLCode)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
////////////////////////////////
|
||||||
|
///////Control panel
|
||||||
|
///////////////////////////////
|
||||||
|
///Refresh control panel
|
||||||
|
function sleep(ms) {
|
||||||
|
ms += new Date().getTime();
|
||||||
|
while (new Date() < ms){}
|
||||||
|
}
|
||||||
|
function uuidv4() {
|
||||||
|
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
||||||
|
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
|
||||||
|
return v.toString(16);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.SessionGUIDStr = uuidv4() // Generate uuid4 of the session
|
||||||
|
//console.log(uuidv4());
|
||||||
|
mGlobal.RobotRDPActive = {}
|
||||||
|
mGlobal.Monitor.fControlPanelRefresh_TechnicalRender = function()
|
||||||
|
{
|
||||||
|
lResponseJSON = mGlobal.Monitor.mDatasetLast
|
||||||
|
|
||||||
|
if (lResponseJSON!= null) {
|
||||||
|
/// New version of control panels
|
||||||
|
for (var lKeyStr in lResponseJSON){
|
||||||
|
if (lKeyStr != "RenderRobotList") { /// Check if not "RenderRobotList"
|
||||||
|
lCPDict = lResponseJSON[lKeyStr]
|
||||||
|
/// Render HTML
|
||||||
|
if ("HTMLStr" in lCPDict) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// v1.2.0 Backward compatibility - support old control panels
|
||||||
|
if ("RenderRobotList" in lResponseJSON) {
|
||||||
|
///Escape onclick
|
||||||
|
/// RenderRobotList
|
||||||
|
lResponseJSON["RenderRobotList"].forEach(
|
||||||
|
function(lItem){
|
||||||
|
if ('FooterButtonX2List' in lItem) {
|
||||||
|
/// FooterButtonX2List
|
||||||
|
lItem["FooterButtonX2List"].forEach(
|
||||||
|
function(lItem2){
|
||||||
|
if ('OnClick' in lItem) {
|
||||||
|
lOnClickEscaped = lItem["OnClick"];
|
||||||
|
lOnClickEscaped = lOnClickEscaped.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
||||||
|
lItem["OnClick"] = lOnClickEscaped;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
/// FooterButtonX1List
|
||||||
|
lItem["FooterButtonX1List"].forEach(
|
||||||
|
function(lItem2){
|
||||||
|
if ('OnClick' in lItem) {
|
||||||
|
lOnClickEscaped = lItem["OnClick"];
|
||||||
|
lOnClickEscaped = lOnClickEscaped.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
||||||
|
lItem["OnClick"] = lOnClickEscaped;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
//////////////////////////////////////////////////////////
|
||||||
|
///Сформировать HTML код новой таблицы - контрольная панель
|
||||||
|
lHTMLCode+=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-hidden-control-panel",lResponseJSON)
|
||||||
|
//Присвоить ответ в mGlobal.Monitor.mResponseList
|
||||||
|
mGlobal.Monitor.mResponseList = lResponseJSON
|
||||||
|
///Set result in mGlobal.DataStorage
|
||||||
|
lResponseJSON["RenderRobotList"].forEach(
|
||||||
|
function(lItem){
|
||||||
|
if ('DataStorageKey' in lItem) {
|
||||||
|
mGlobal["DataStorage"][lItem['DataStorageKey']]=lItem
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".openrpa-control-panel").html(lHTMLCode)
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
/// !RDP List ! Сформировать HTML код новой таблицы - список RDP
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-hidden-robotrdpactive-control-panel",lResponseJSON)
|
||||||
|
//Присвоить ответ в mGlobal.RobotRDPActive.mResponseList
|
||||||
|
mGlobal.RobotRDPActive.mResponseList = lResponseJSON
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".openrpa-robotrdpactive-control-panel").html(lHTMLCode)
|
||||||
|
///Очистить дерево
|
||||||
|
//mGlobal.ElementTree.fClear();
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
/// !UserAgent List ! Сформировать HTML код новой таблицы - список RDP
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".pyOpenRPA-Agent-ListTemplate",lResponseJSON)
|
||||||
|
//Присвоить ответ в mGlobal.RobotRDPActive.mResponseList
|
||||||
|
mGlobal.RobotRDPActive.mResponseList = lResponseJSON
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".pyOpenRPA-Agent-List").html(lHTMLCode)
|
||||||
|
///Очистить дерево
|
||||||
|
//mGlobal.ElementTree.fClear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
///v 1.2.0 pyOpenRPA
|
||||||
|
/// Execute ActivityItem
|
||||||
|
mGlobal.pyOpenRPA.ActivityItemExecute=function(inActivityItem) {
|
||||||
|
///EXAMPLE
|
||||||
|
// {
|
||||||
|
// "Def":"OSCMD", // def link or def alias (look gSettings["Processor"]["AliasDefDict"])
|
||||||
|
// "ArgList":[], // Args list
|
||||||
|
// "ArgDict":{"inCMDStr":lCMDCode,"inRunAsyncBool":false}, // Args dictionary
|
||||||
|
// "ArgGSettings": null, // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// "ArgLogger": "inLogger" // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// }
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = [inActivityItem]
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: '/pyOpenRPA/ActivityListExecute',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
console.log(lResponseJSON)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/// Execute ActivityList
|
||||||
|
mGlobal.pyOpenRPA.ActivityListExecute=function(inActivityList) {
|
||||||
|
///EXAMPLE
|
||||||
|
// [{
|
||||||
|
// "Def":"OSCMD", // def link or def alias (look gSettings["Processor"]["AliasDefDict"])
|
||||||
|
// "ArgList":[], // Args list
|
||||||
|
// "ArgDict":{"inCMDStr":lCMDCode,"inRunAsyncBool":false}, // Args dictionary
|
||||||
|
// "ArgGSettings": null, // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// "ArgLogger": "inLogger" // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// }]
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = inActivityList
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: '/pyOpenRPA/ActivityListExecute',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
console.log(lResponseJSON)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/// Add ActivityList in processor queue
|
||||||
|
mGlobal.pyOpenRPA.ProcessorQueueAdd=function(inActivityList) {
|
||||||
|
///EXAMPLE
|
||||||
|
// [{
|
||||||
|
// "Def":"OSCMD", // def link or def alias (look gSettings["Processor"]["AliasDefDict"])
|
||||||
|
// "ArgList":[], // Args list
|
||||||
|
// "ArgDict":{"inCMDStr":lCMDCode,"inRunAsyncBool":false}, // Args dictionary
|
||||||
|
// "ArgGSettings": null, // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// "ArgLogger": "inLogger" // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// }]
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lData = inActivityList
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: '/pyOpenRPA/ProcessorQueueAdd',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
console.log(lResponseJSON)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// v1.2.0 pyOpenRPA ServerJSInit
|
||||||
|
mGlobal.pyOpenRPA.ServerJSInitDef=function() {
|
||||||
|
try {
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
headers: {},
|
||||||
|
url: 'pyOpenRPA/ServerJSInit',
|
||||||
|
data: mGlobal.pyOpenRPA.ServerDataHashStr,
|
||||||
|
async: false,
|
||||||
|
success: function(lJSText) {
|
||||||
|
try {
|
||||||
|
eval(lJSText)
|
||||||
|
}
|
||||||
|
catch(error) {
|
||||||
|
console.log(error)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dataType: "text",
|
||||||
|
error: function(jqXHR, textStatus, errorThrown ) {
|
||||||
|
console.log(textStatus)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch(error) {
|
||||||
|
console.log(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// v1.2.0 pyOpenRPA ServerData
|
||||||
|
mGlobal.pyOpenRPA.ServerDataDict = null
|
||||||
|
mGlobal.pyOpenRPA.ServerDataHashStr = ""
|
||||||
|
mGlobal.pyOpenRPA.ServerDataRefreshDef_TechnicalRender = function()
|
||||||
|
{
|
||||||
|
lResponseJSON = mGlobal.pyOpenRPA.ServerDataDict
|
||||||
|
if (lResponseJSON!= null) {
|
||||||
|
/// New version of control panels
|
||||||
|
lHTMLCode = '<div class="ui cards">'
|
||||||
|
for (var lKeyStr in lResponseJSON["CPDict"]){
|
||||||
|
lCPDict = lResponseJSON["CPDict"][lKeyStr]
|
||||||
|
/// Render HTML
|
||||||
|
if ("HTMLStr" in lCPDict) {
|
||||||
|
lHTMLCode+=lCPDict["HTMLStr"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lHTMLCode += '</div>'
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".openrpa-control-panel").html(lHTMLCode)
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
/// !RDP List ! Сформировать HTML код новой таблицы - список RDP
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-hidden-robotrdpactive-control-panel",lResponseJSON["RDPDict"])
|
||||||
|
//Присвоить ответ в mGlobal.RobotRDPActive.mResponseList
|
||||||
|
mGlobal.RobotRDPActive.mResponseList = lResponseJSON["RDPDict"]
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".openrpa-robotrdpactive-control-panel").html(lHTMLCode)
|
||||||
|
///Очистить дерево
|
||||||
|
//mGlobal.ElementTree.fClear();
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
/// !UserAgent List ! Сформировать HTML код новой таблицы - список RDP
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".pyOpenRPA-Agent-ListTemplate",lResponseJSON["AgentDict"])
|
||||||
|
///Прогрузить новую таблицу
|
||||||
|
$(".pyOpenRPA-Agent-List").html(lHTMLCode)
|
||||||
|
///Очистить дерево
|
||||||
|
//mGlobal.ElementTree.fClear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mGlobal.pyOpenRPA.ServerDataRefreshDef=function() {
|
||||||
|
try {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
headers: {},
|
||||||
|
url: 'pyOpenRPA/ServerData',
|
||||||
|
data: mGlobal.pyOpenRPA.ServerDataHashStr,
|
||||||
|
success: function(lData,l2,l3) {
|
||||||
|
try {
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
mGlobal.VersionStr = lResponseJSON["ServerDataDict"]["UserDict"]["VersionStr"]
|
||||||
|
mGlobal.pyOpenRPA.ServerDataDict = lResponseJSON["ServerDataDict"]
|
||||||
|
mGlobal.pyOpenRPA.ServerDataHashStr = lResponseJSON["HashStr"]
|
||||||
|
mGlobal.pyOpenRPA.ServerDataRefreshDef_TechnicalRender()
|
||||||
|
mGlobal.UserRoleUpdate();
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerDataRefreshDef,600) // If LOGS are update every ms - set some limit in ms on the client side
|
||||||
|
//mGlobal.pyOpenRPA.ServerDataRefreshDef() // Go to the next call
|
||||||
|
}
|
||||||
|
catch(error) {
|
||||||
|
console.log(error)
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerDataRefreshDef,3000)
|
||||||
|
}
|
||||||
|
//mGlobal.pyOpenRPA.ServerDataRefreshDef() // recursive
|
||||||
|
},
|
||||||
|
dataType: "text",
|
||||||
|
error: function(jqXHR, textStatus, errorThrown ) {
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerDataRefreshDef,3000)
|
||||||
|
//sleep(3000)
|
||||||
|
//mGlobal.pyOpenRPA.ServerDataRefreshDef() // recursive
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch(error) {
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerDataRefreshDef,3000)
|
||||||
|
//sleep(3000)
|
||||||
|
//mGlobal.pyOpenRPA.ServerDataRefreshDef() // recursive
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/////////////////////////////////////////////////////////////
|
||||||
|
/// v1.2.0 pyOpenRPA ServerLogs
|
||||||
|
mGlobal.pyOpenRPA.ServerLogList = null
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListHashStr = ""
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListDoRenderBool = true
|
||||||
|
///Turn OFF rendering
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListDoRenderFalse = function() {
|
||||||
|
///Set unfreeze button
|
||||||
|
$("a.mGlobal-pyOpenRPA-ServerLogListDoRender").html("Разморозить окно логов")
|
||||||
|
$("a.mGlobal-pyOpenRPA-ServerLogListDoRender").attr("onclick","mGlobal.pyOpenRPA.ServerLogListDoRenderTrue()")
|
||||||
|
$("textarea.mGlobal-pyOpenRPA-ServerLogList").css("background-color","#b9e2e8")
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListDoRenderBool = false
|
||||||
|
}
|
||||||
|
///Turn ON rendering
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListDoRenderTrue = function() {
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListDoRenderBool = true
|
||||||
|
///Render last data
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListRefreshDef_TechnicalRender()
|
||||||
|
///Set unfreeze button
|
||||||
|
$("a.mGlobal-pyOpenRPA-ServerLogListDoRender").html("Заморозить окно логов")
|
||||||
|
$("a.mGlobal-pyOpenRPA-ServerLogListDoRender").attr("onclick","mGlobal.pyOpenRPA.ServerLogListDoRenderFalse()")
|
||||||
|
$("textarea.mGlobal-pyOpenRPA-ServerLogList").css("background-color","")
|
||||||
|
|
||||||
|
}
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListScrollBottomDef = function() {
|
||||||
|
var lTA = $("textarea.mGlobal-pyOpenRPA-ServerLogList")[0];
|
||||||
|
lTA.scrollTop = lTA.scrollHeight;
|
||||||
|
}
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListRefreshDef_TechnicalRender = function()
|
||||||
|
{
|
||||||
|
lResponseJSON = mGlobal.pyOpenRPA.ServerLogList
|
||||||
|
if (lResponseJSON!= null && mGlobal.pyOpenRPA.ServerLogListDoRenderBool==true) {
|
||||||
|
lText = lResponseJSON.join("\n") /// Code for the processing the text
|
||||||
|
$("textarea.mGlobal-pyOpenRPA-ServerLogList")[0].value= lText ///Прогрузить новую таблицу
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListScrollBottomDef() //Scroll to the bottom
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListRefreshDef=function() {
|
||||||
|
try {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
headers: {},
|
||||||
|
url: 'pyOpenRPA/ServerLog',
|
||||||
|
data: mGlobal.pyOpenRPA.ServerLogListHashStr,
|
||||||
|
success: function(lData,l2,l3) {
|
||||||
|
try {
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
mGlobal.pyOpenRPA.ServerLogList = lResponseJSON["ServerLogList"]
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListHashStr = lResponseJSON["HashStr"]
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListRefreshDef_TechnicalRender()
|
||||||
|
}
|
||||||
|
catch(error) {
|
||||||
|
}
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerLogListRefreshDef,600) // If LOGS are update every ms - set some limit in ms on the client side
|
||||||
|
//mGlobal.pyOpenRPA.ServerLogListRefreshDef() // recursive
|
||||||
|
},
|
||||||
|
dataType: "text",
|
||||||
|
error: function(jqXHR, textStatus, errorThrown ) {
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerLogListRefreshDef,3000)
|
||||||
|
//sleep(3000)
|
||||||
|
//mGlobal.pyOpenRPA.ServerLogListRefreshDef() // recursive
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch(error) {
|
||||||
|
setTimeout(mGlobal.pyOpenRPA.ServerLogListRefreshDef,3000)
|
||||||
|
//sleep(3000)
|
||||||
|
//mGlobal.pyOpenRPA.ServerLogListRefreshDef() // recursive
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
mGlobal.Monitor.mDatasetLast = null
|
||||||
|
|
||||||
|
///////////////////////////////
|
||||||
|
///Processor functions
|
||||||
|
///////////////////////////////
|
||||||
|
mGlobal.Processor = {}
|
||||||
|
mGlobal.Processor.ServerValueAppend = function(inKeyList,inValue) {
|
||||||
|
lData = [
|
||||||
|
{
|
||||||
|
"Type":"GlobalDictKeyListValueAppend",
|
||||||
|
"KeyList": inKeyList,
|
||||||
|
"Value": inValue
|
||||||
|
}
|
||||||
|
]
|
||||||
|
///Обнулить таблицу
|
||||||
|
$('.ui.modal.basic .content').html("");
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///TODO Show error if exist error
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Processor.ServerValueSet = function(inKeyList,inValue) {
|
||||||
|
lData = [
|
||||||
|
{
|
||||||
|
"Type":"GlobalDictKeyListValueSet",
|
||||||
|
"KeyList": inKeyList,
|
||||||
|
"Value": inValue
|
||||||
|
}
|
||||||
|
]
|
||||||
|
///Обнулить таблицу
|
||||||
|
$('.ui.modal.basic .content').html("");
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///TODO Show error if exist error
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Processor.ServerValueOperatorPlus = function(inKeyList,inValue) {
|
||||||
|
lData = [
|
||||||
|
{
|
||||||
|
"Type":"GlobalDictKeyListValueOperator+",
|
||||||
|
"KeyList": inKeyList,
|
||||||
|
"Value": inValue
|
||||||
|
}
|
||||||
|
]
|
||||||
|
///Обнулить таблицу
|
||||||
|
$('.ui.modal.basic .content').html("");
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///TODO Show error if exist error
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Processor.Send = function(inData) {
|
||||||
|
lData = inData
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'Utils/Processor',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
///TODO Show error if exist error
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.Server= {}
|
||||||
|
mGlobal.Server.JSONGet=function(inMethod, inURL, inDataJSON, inCallback)
|
||||||
|
{
|
||||||
|
$.ajax({
|
||||||
|
type: inMethod,
|
||||||
|
url: inURL,
|
||||||
|
data: JSON.stringify(inDataJSON),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
inCallback(lResponseJSON)
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/////////////////
|
||||||
|
///Modal
|
||||||
|
///////////////////
|
||||||
|
mGlobal.Modal={}
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
mGlobal.Modal.TableFilter={}
|
||||||
|
mGlobal.Modal.TableFilter.Show=function(inJSON) {
|
||||||
|
//{
|
||||||
|
// "Title":"",
|
||||||
|
// "Headers":["Header1","Header2"],
|
||||||
|
// "Rows": [["Cell1","Cell2"],["Cell2-1","Cell2-2"]],
|
||||||
|
// "FilterOnKeyUp": "<JS Code>" //Fill here in function
|
||||||
|
//}
|
||||||
|
//Set js handler to Search field
|
||||||
|
inJSON["FilterOnKeyUp"]="mGlobal.Modal.TableFilter.FilterUpdate(this.value);"
|
||||||
|
///Set value
|
||||||
|
mGlobal.Modal.TableFilter.mDataJSON = inJSON
|
||||||
|
//Render HTML
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-handlebar-template-table-filter",inJSON);
|
||||||
|
///Установить HTML код
|
||||||
|
$('.ui.modal.basic .content').html(lHTMLCode);
|
||||||
|
$('.ui.modal.basic').modal('show');
|
||||||
|
//DO widest modal for table with scroll x
|
||||||
|
$("div.ui.basic.modal.transition.visible.active.scrolling")[0].style["width"]="1300px"
|
||||||
|
$("div.ui.basic.modal.transition.visible.active.scrolling")[0].style["overflow"]="scroll"
|
||||||
|
}
|
||||||
|
//Service function
|
||||||
|
mGlobal.Modal.TableFilter.FilterUpdate=function(inFilterValue) {
|
||||||
|
//Get JSON, apply filter, clone data
|
||||||
|
lDataJSON = clone(mGlobal.Modal.TableFilter.mDataJSON)
|
||||||
|
delete lDataJSON["Rows"]
|
||||||
|
lDataJSON["Rows"]=[]
|
||||||
|
//Filter code [any occurence in the row is ok for push! ]
|
||||||
|
mGlobal.Modal.TableFilter.mDataJSON["Rows"].forEach(
|
||||||
|
function(inElement) {
|
||||||
|
lFlagElementAppend = false
|
||||||
|
inElement.forEach(
|
||||||
|
function(inElement2) {
|
||||||
|
if (String(inElement2).includes(inFilterValue)) {
|
||||||
|
lFlagElementAppend = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
if (lFlagElementAppend) {
|
||||||
|
lDataJSON["Rows"].push(inElement)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
//Clear Filter Title property (fixed in html)
|
||||||
|
delete lDataJSON["FilterOnKeyUp"]
|
||||||
|
delete lDataJSON["Title"]
|
||||||
|
//Search the table element [replace only table html]
|
||||||
|
lElement = $('.ui.modals.active .content table.table')[0]
|
||||||
|
lElementParentElement = lElement.parentNode
|
||||||
|
lElement.parentNode.removeChild(lElement);
|
||||||
|
//Render HTML
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-handlebar-template-table-filter",lDataJSON);
|
||||||
|
///Установить HTML код
|
||||||
|
lElementParentElement.insertAdjacentHTML("beforeend",lHTMLCode);
|
||||||
|
}
|
||||||
|
/////////////////////////////////////////////////////////////
|
||||||
|
mGlobal.Modal.ListFilter={}
|
||||||
|
mGlobal.Modal.ListFilter.Show=function(inJSON) {
|
||||||
|
//{
|
||||||
|
// "Title":"",
|
||||||
|
// "List":[{"Header":"","Description":""}],
|
||||||
|
// "FilterOnKeyUp": "<JS Code>" //Fill here in function
|
||||||
|
//}
|
||||||
|
//Set js handler to Search field
|
||||||
|
inJSON["FilterOnKeyUp"]="mGlobal.Modal.ListFilter.FilterUpdate(this.value);"
|
||||||
|
///Set value
|
||||||
|
mGlobal.Modal.ListFilter.mDataJSON = inJSON
|
||||||
|
//Render HTML
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-handlebar-template-list-filter",inJSON);
|
||||||
|
///Установить HTML код
|
||||||
|
$('.ui.modal.basic .content').html(lHTMLCode);
|
||||||
|
$('.ui.modal.basic').modal('show');
|
||||||
|
}
|
||||||
|
//Service function
|
||||||
|
mGlobal.Modal.ListFilter.FilterUpdate=function(inFilterValue) {
|
||||||
|
//Get JSON, apply filter, clone data
|
||||||
|
lDataJSON = clone(mGlobal.Modal.ListFilter.mDataJSON)
|
||||||
|
delete lDataJSON["List"]
|
||||||
|
lDataJSON["List"]=[]
|
||||||
|
//Filter code [any occurence in the row is ok for push! ]
|
||||||
|
mGlobal.Modal.ListFilter.mDataJSON["List"].forEach(
|
||||||
|
function(inElement) {
|
||||||
|
lFlagElementAppend = false
|
||||||
|
if (String(inElement["Header"]).includes(inFilterValue)) {
|
||||||
|
lFlagElementAppend = true
|
||||||
|
}
|
||||||
|
if (String(inElement["Description"]).includes(inFilterValue)) {
|
||||||
|
lFlagElementAppend = true
|
||||||
|
}
|
||||||
|
if (lFlagElementAppend) {
|
||||||
|
lDataJSON["List"].push(inElement)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
//Clear Filter Title property (fixed in html)
|
||||||
|
delete lDataJSON["FilterOnKeyUp"]
|
||||||
|
delete lDataJSON["Title"]
|
||||||
|
//Search the table element [replace only table html]
|
||||||
|
lElement = $('.ui.modals.active .content div.ui.inverted.segment')[0]
|
||||||
|
lElementParentElement = lElement.parentNode
|
||||||
|
lElement.parentNode.removeChild(lElement);
|
||||||
|
//Render HTML
|
||||||
|
lHTMLCode=mGlobal.GeneralGenerateHTMLCodeHandlebars(".openrpa-handlebar-template-list-filter",lDataJSON);
|
||||||
|
///Установить HTML код
|
||||||
|
lElementParentElement.insertAdjacentHTML("beforeend",lHTMLCode);
|
||||||
|
}
|
||||||
|
mGlobal.UserRoleHierarchyDict = null // Put here the user role hierarchy
|
||||||
|
// UAC Ask
|
||||||
|
mGlobal.UserRoleAsk=function(inList) {
|
||||||
|
var lResult = true; // Init flag
|
||||||
|
var lRoleHierarchyDict = mGlobal.pyOpenRPA.ServerDataDict.UserDict.UACClientDict; // get the Hierarchy
|
||||||
|
// Try to get value from key list
|
||||||
|
var lKeyValue = lRoleHierarchyDict; // Init the base
|
||||||
|
var lListLength = inList.length;
|
||||||
|
for (var i = 0; i<lListLength; i++) {
|
||||||
|
var lItem = inList[i]; // get the item
|
||||||
|
if (typeof lKeyValue == "object") {
|
||||||
|
if (lItem in lKeyValue) { // Has key
|
||||||
|
lKeyValue = lKeyValue[lItem]; // Get the value and go to the next loop iteration
|
||||||
|
} else { // Else branch - true or false
|
||||||
|
if (Object.keys(lKeyValue).length > 0) { // false - if Dict has some elements
|
||||||
|
lResult = false; // Set the False Flag
|
||||||
|
} else {
|
||||||
|
lResult = true; // Set the true flag
|
||||||
|
}
|
||||||
|
break; // Stop the loop
|
||||||
|
}
|
||||||
|
} else { // Has element with no detalization - return true
|
||||||
|
lResult = true; // Set the flag
|
||||||
|
break; // Close the loop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return lResult; // Return the result
|
||||||
|
}
|
||||||
|
// Check user roles and update the Orchestrator UI
|
||||||
|
mGlobal.UserRoleUpdate=function() {
|
||||||
|
var lUACAsk = mGlobal.UserRoleAsk // Alias
|
||||||
|
//CPKeyDict
|
||||||
|
if (lUACAsk(["pyOpenRPADict","CPKeyDict"])) { $(".UACClient-pyOpenRPADict-CPKeyDict").show(); }
|
||||||
|
|
||||||
|
//RDPKeyDict
|
||||||
|
if (lUACAsk(["pyOpenRPADict","RDPKeyDict"])) { $(".UACClient-pyOpenRPADict-RDPKeyDict").show(); }
|
||||||
|
|
||||||
|
//AgentKeyDict
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AgentKeyDict"])) { $(".UACClient-pyOpenRPADict-AgentKeyDict").show(); }
|
||||||
|
|
||||||
|
// AdminDict
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","LogViewerBool"])) { $(".UACClient-pyOpenRPADict-AdminDict-LogViewerBool").show(); }
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","CMDInputBool"])) { $(".UACClient-pyOpenRPADict-AdminDict-CMDInputBool").show(); }
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","ScreenshotViewerBool"])) { $(".UACClient-pyOpenRPADict-AdminDict-ScreenshotViewerBool").show(); }
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","RestartOrchestratorBool"])) { $(".UACClient-pyOpenRPADict-AdminDict-RestartOrchestratorBool").show(); }
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","RestartOrchestratorGITPullBool"])) { $(".UACClient-pyOpenRPADict-AdminDict-RestartOrchestratorGITPullBool").show(); }
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","RestartPCBool"])) { $(".UACClient-pyOpenRPADict-AdminDict-RestartPCBool").show(); }
|
||||||
|
if (lUACAsk(["pyOpenRPADict","AdminDict","Debugging"])) { $(".UACClient-pyOpenRPADict-AdminDict-Debugging").show(); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// v1.2.0 pyOpenRPA Init defs
|
||||||
|
mGlobal.pyOpenRPA.ServerDataRefreshDef(); // Init the refresh data def from server side
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListRefreshDef(); // Init the refresh data def from the log window
|
||||||
|
mGlobal.pyOpenRPA.ServerLogListDoRenderTrue(); // Init button to freeze/unfreeze textare with logs
|
||||||
|
mGlobal.pyOpenRPA.ServerJSInitDef(); // Recieve JS from server (if exist) and then call anothe url ServerData
|
||||||
|
//$('.ui.dropdown').dropdown();
|
||||||
|
|
||||||
|
////////////////////////////////////////////
|
||||||
|
// 1.2.7 Debugging
|
||||||
|
/// Execute ActivityItem
|
||||||
|
|
||||||
|
// Debugging onchange def autofill init
|
||||||
|
var lDropdownOnChange = function(inEvent){
|
||||||
|
//lValueStr = inEvent.target.value
|
||||||
|
lValueStr = inEvent
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: '/pyOpenRPA/Debugging/HelperDefAutofill/'+lValueStr,
|
||||||
|
data: null,
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
console.log("HelperDefAutofill:")
|
||||||
|
console.log(lResponseJSON)
|
||||||
|
//ArgDict merge
|
||||||
|
var lArgDictTargetDict = lResponseJSON["ArgDict"]
|
||||||
|
var lArgDictStr = $(".mGlobal-pyOpenRPA-Debugging-ArgDict")[0].value
|
||||||
|
if (lArgDictStr !="" && lArgDictStr !=null) {
|
||||||
|
lArgDictLastDict = JSON.parse(lArgDictStr)
|
||||||
|
lArgDictTargetDict = mGlobal.pyOpenRPA.DebuggingAutofillMerge(lArgDictTargetDict, lArgDictLastDict)
|
||||||
|
}
|
||||||
|
|
||||||
|
$(".mGlobal-pyOpenRPA-Debugging-ArgList")[0].value = JSON.stringify(lResponseJSON["ArgList"])
|
||||||
|
$(".mGlobal-pyOpenRPA-Debugging-ArgDict")[0].value = JSON.stringify(lArgDictTargetDict)
|
||||||
|
$(".mGlobal-pyOpenRPA-Debugging-ArgGSettingsStr")[0].value = JSON.stringify(lResponseJSON["ArgGSettingsStr"])
|
||||||
|
$(".mGlobal-pyOpenRPA-Debugging-ArgLoggerStr")[0].value = JSON.stringify(lResponseJSON["ArgLoggerStr"])
|
||||||
|
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//$('.ui.dropdown.mGlobal-pyOpenRPA-Debugging-Def-Dropdown')[0].onchange=lDropdownOnChange
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
mGlobal.pyOpenRPA.DebuggingExecute=function() {
|
||||||
|
///EXAMPLE
|
||||||
|
// {
|
||||||
|
// "Def":"OSCMD", // def link or def alias (look gSettings["Processor"]["AliasDefDict"])
|
||||||
|
// "ArgList":[], // Args list
|
||||||
|
// "ArgDict":{"inCMDStr":lCMDCode,"inRunAsyncBool":false}, // Args dictionary
|
||||||
|
// "ArgGSettings": null, // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// "ArgLogger": "inLogger" // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
// }
|
||||||
|
///Подготовить конфигурацию
|
||||||
|
lArgListStr = $(".mGlobal-pyOpenRPA-Debugging-ArgList")[0].value
|
||||||
|
lArgDictStr = $(".mGlobal-pyOpenRPA-Debugging-ArgDict")[0].value
|
||||||
|
lArgGSettingsStr = $(".mGlobal-pyOpenRPA-Debugging-ArgGSettingsStr")[0].value
|
||||||
|
lArgLoggerStr = $(".mGlobal-pyOpenRPA-Debugging-ArgLoggerStr")[0].value
|
||||||
|
lActivityItem = {
|
||||||
|
"Def":$(".mGlobal-pyOpenRPA-Debugging-Def")[0].value, // def link or def alias (look gSettings["Processor"]["AliasDefDict"])
|
||||||
|
"ArgList":(lArgListStr == "" ? [] : JSON.parse(lArgListStr)), // Args list
|
||||||
|
"ArgDict":(lArgDictStr == "" ? {} : JSON.parse(lArgDictStr)), // Args dictionary
|
||||||
|
"ArgGSettingsStr": (lArgGSettingsStr == "" ? null : lArgGSettingsStr), // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
"ArgLoggerStr": (lArgLoggerStr == "" ? null : lArgLoggerStr) // Name of GSettings attribute: str (ArgDict) or index (for ArgList)
|
||||||
|
}
|
||||||
|
lData = [lActivityItem]
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: '/pyOpenRPA/ActivityListExecute',
|
||||||
|
data: JSON.stringify(lData),
|
||||||
|
success:
|
||||||
|
function(lData,l2,l3)
|
||||||
|
{
|
||||||
|
var lResponseJSON=JSON.parse(lData)
|
||||||
|
console.log(lResponseJSON)
|
||||||
|
$(".mGlobal-pyOpenRPA-Debugging-Output")[0].value = JSON.stringify(lResponseJSON[0])
|
||||||
|
},
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mGlobal.pyOpenRPA.DebuggingAutofillMerge=function(inTargetDict, inLastDict) {
|
||||||
|
// Merge 2 dict (get values from Last dict if key exists in new dict
|
||||||
|
for (const [lKeyStr, lValue] of Object.entries(inTargetDict)) {
|
||||||
|
//Check if key exists in LastDict
|
||||||
|
if (lKeyStr in inLastDict) {
|
||||||
|
inTargetDict[lKeyStr] = inLastDict[lKeyStr]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return inTargetDict
|
||||||
|
}
|
||||||
|
// 1.2.7 Debugging toolbox init
|
||||||
|
$('.ui.dropdown.mGlobal-pyOpenRPA-Debugging-Def-Dropdown')
|
||||||
|
.dropdown({
|
||||||
|
apiSettings: {
|
||||||
|
// this url parses query server side and returns filtered results
|
||||||
|
url: '/pyOpenRPA/Debugging/HelperDefList/{query}'
|
||||||
|
},
|
||||||
|
onChange: lDropdownOnChange
|
||||||
|
})
|
||||||
|
;
|
||||||
|
});
|
After Width: | Height: | Size: 245 KiB |
After Width: | Height: | Size: 251 KiB |
After Width: | Height: | Size: 244 KiB |
After Width: | Height: | Size: 239 KiB |
After Width: | Height: | Size: 252 KiB |
After Width: | Height: | Size: 255 KiB |