@ -1,7 +1,7 @@
|
||||
Metadata-Version: 2.1
|
||||
Name: pyOpenRPA
|
||||
Version: 1.2.14
|
||||
Summary: First open source RPA platform for business
|
||||
Version: 1.3.0
|
||||
Summary: The powerful open source RPA platform for business
|
||||
Home-page: https://pyopenrpa.ru/
|
||||
Author: Ivan Maslov
|
||||
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
|
||||
Name: pyOpenRPA
|
||||
Version: 1.2.14
|
||||
Summary: First open source RPA platform for business
|
||||
Version: 1.3.0
|
||||
Summary: The powerful open source RPA platform for business
|
||||
Home-page: https://pyopenrpa.ru/
|
||||
Author: Ivan Maslov
|
||||
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 |