{"javascript":"$(document).ready(function() {\n\n /////Init api and connect to selected port, in development mode does nothing\n Api.Init(0)\n\n /////Hide development elements\n $(\"#InitializationTabHeader\").hide()\n\n /////Lists which accumulates messages\n let ListOfDatabaseMessages = []\n let ListOfEmbeddedMessages = []\n\n /////Api event handler\n Api.SetEventHandler(function(EventType, EventData) {\n\n /////Need to show login form\n if (EventType == \"login\") {\n UIkit.tab($(\"#InitializationTabHeader\")[0]).show(1);\n\n /////Fill default username and password\n if (EventData[\"username\"])\n $(\"#Username\").val(EventData[\"username\"])\n if (EventData[\"password\"])\n $(\"#Password\").val(EventData[\"password\"])\n }\n\n if (EventType == \"run_type_select\") {\n UIkit.tab($(\"#InitializationTabHeader\")[0]).show(5);\n if (EventData[\"is_run_instant\"]) {\n $('input:radio[name=\"ScheduleType\"]').filter('[value=\"Run now\"]').attr('checked', true);\n } else {\n $('input:radio[name=\"ScheduleType\"]').filter('[value=\"Shedule application\"]').attr('checked', true);\n\n }\n }\n\n /////On message received\n if (EventType == \"message\") {\n $(\"#Message\").html(EventData[\"text\"])\n UIkit.tab($(\"#InitializationTabHeader\")[0]).show(2);\n }\n\n /////Show database connection dialog\n if (EventType == \"show_database_connection\") {\n UIkit.tab($(\"#InitializationTabHeader\")[0]).show(3);\n }\n\n /////Display message about database connection process\n if (EventType == \"show_database_log\") {\n if (EventData[\"is_final\"])\n $(\"#DatabaseMessageLog\").html(EventData[\"text\"])\n /////Save log to list\n ListOfDatabaseMessages.push(EventData[\"text\"])\n }\n\n /////Show embedded connection dialog\n if (EventType == \"show_embedded_connection\") {\n UIkit.tab($(\"#InitializationTabHeader\")[0]).show(4);\n }\n\n /////Display message about embedded language install process\n if (EventType == \"show_embedded_log\") {\n if (EventData[\"is_final\"])\n $(\"#EmbeddedLanguageLog\").html(EventData[\"text\"])\n /////Save log to list\n ListOfEmbeddedMessages.push(EventData[\"text\"])\n }\n\n /////Change title of embedded language install dialog\n if (EventType == \"show_embedded_title\") {\n $(\"#EmbeddedLanguageTitle\").html(EventData[\"text\"])\n }\n\n /////Finished install embedded languages\n if (EventType == \"finished_embedded\") {\n ListOfEmbeddedMessages = []\n UIkit.tab($(\"#InitializationTabHeader\")[0]).show(0);\n }\n\n /////Finished start database\n if (EventType == \"finished_database\") {\n ListOfDatabaseMessages = []\n UIkit.tab($(\"#InitializationTabHeader\")[0]).show(0);\n }\n\n })\n\n //Accept schedule type\n $(\"#AcceptScheduleType\").click(function() {\n Api.SelectRunType($('input[name=ScheduleType]:checked').val() == \"Run now\");\n })\n\n\n /////On login button clicked\n $(\"#Login\").click(function() {\n /////Show progress bar and wait for next message\n UIkit.tab($(\"#InitializationTabHeader\")[0]).show(0);\n Api.Login($(\"#Username\").val(), $(\"#Password\").val())\n })\n\n /////On message accepted\n $(\"#MessageOk\").click(function() {\n /////Show progress bar and wait for next message\n UIkit.tab($(\"#InitializationTabHeader\")[0]).show(0);\n Api.MessageAccepted()\n })\n\n /////On run without database\n $(\"#RunWithoutDatabase\").click(function() {\n /////Show progress bar and wait for next message\n UIkit.tab($(\"#InitializationTabHeader\")[0]).show(0);\n Api.RunWithoutDatabase()\n })\n\n /////On run without database\n $(\"#RunWithoutEmbeddedLog\").click(function() {\n /////Show progress bar and wait for next message\n UIkit.tab($(\"#InitializationTabHeader\")[0]).show(0);\n Api.RunWithoutEmbeddedLanguage()\n })\n\n $(\"#DownloadEmbeddedLog\").click(function() {\n /////Format log of embedded language install and send it to download\n var blob = new Blob([ListOfEmbeddedMessages.join(\"\\n\")], {\n type: \"text/plain;charset=utf-8\"\n });\n saveAs(blob, \"EmbeddedInstallLog.txt\");\n })\n\n $(\"#DownloadDatabaseLog\").click(function() {\n /////Format log of database start and send it to download\n var blob = new Blob([ListOfDatabaseMessages.join(\"\\n\")], {\n type: \"text/plain;charset=utf-8\"\n });\n saveAs(blob, \"DatabaseStartLog.txt\");\n })\n\n /////Submit login after enter pressed\n $('#Username, #Password').keypress(function(e) {\n var key = e.which;\n if (key == 13) {\n $('#Login').click();\n return false;\n }\n });\n\n /////Clear Initial messages\n $(\"#DatabaseMessageLog\").html(\"\")\n $(\"#EmbeddedLanguageLog\").html(\"\")\n\n /////After everything is initialized may show body\n $(\"body\").fadeIn()\n\n /////Events\n});","cssFiles":["https://bablosoft.com/buildinterface/uikit/css/uikit.css"],"jsFiles":["https://bablosoft.com/buildinterface/jquery/jquery.min.js?v=2","https://bablosoft.com/buildinterface/uikit/js/uikit.js?v=2","https://bablosoft.com/buildinterface/uikit/js/uikit-icons.js?v=2","https://bablosoft.com/buildinterface/charts/utils.js?v=2","https://bablosoft.com/buildinterface/charts/charts.js?v=2","https://bablosoft.com/buildinterface/filesaver/FileSaver.min.js?v=2","https://bablosoft.com/buildinterface/interface-extensions/extensions.js?v=2","https://bablosoft.com/buildinterface/bas-api/bas-api.js?v=2"],"css":"#Message {\n text-align: center;\n font-size: small;\n}\n\n.table-row {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n flex-wrap: nowrap;\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n}\n\n.table-cell {\n min-height: 25px;\n flex-grow: 1;\n flex-basis: 100%;\n}\n\n#InitializationTabHeader {\n display: flex;\n margin-bottom: 0px;\n}\n\n#CenterScreen {\n width: 100%;\n height: 100vh;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n background-color: rgb(44, 47, 51);\n}\n\n#InitializationTab {\n margin-left: 0px;\n color: rgb(255, 255, 255);\n}\n\n#im3ii {\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n height: 40px;\n line-height: 20px;\n font-size: small;\n color: rgb(255, 255, 255);\n}\n\n.row {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n flex-wrap: nowrap;\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n}\n\n.cell {\n min-height: 25px;\n flex-grow: 1;\n flex-basis: 100%;\n}\n\n#i849rf {\n flex-basis: 30px;\n flex-grow: 0;\n flex-shrink: 0;\n}\n\n#ia45qb {\n flex-basis: 50%;\n flex-grow: 1;\n flex-shrink: 1;\n}\n\n#ic7n4b {\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n height: auto;\n line-height: 20px;\n padding-left: 0px;\n color: rgb(255, 255, 255);\n}\n\n#Username {\n margin-top: 0px;\n margin-right: 0px;\n margin-bottom: 20px;\n margin-left: 0px;\n min-width: 300px;\n color: rgb(255, 255, 255);\n background-color: rgb(22, 23, 25);\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n border-bottom-right-radius: 10px;\n border-bottom-left-radius: 10px;\n}\n\n#ifuhla {\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n height: auto;\n line-height: 20px;\n padding-left: 0px;\n color: rgb(255, 255, 255);\n}\n\n.uk-alert {\n font-size: small;\n}\n\n#Password {\n margin-top: 0px;\n margin-right: 0px;\n margin-bottom: 20px;\n margin-left: 0px;\n min-width: 300px;\n background-color: rgb(22, 23, 25);\n color: rgb(255, 255, 255);\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n border-bottom-right-radius: 10px;\n border-bottom-left-radius: 10px;\n}\n\n#Login {\n max-width: 300px;\n background-color: rgb(22, 23, 25);\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n border-bottom-right-radius: 10px;\n border-bottom-left-radius: 10px;\n}\n\n#isdxgs {\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n}\n\n#LoginTitle {\n text-align: center;\n margin-top: 0px;\n margin-right: 0px;\n margin-bottom: 20px;\n margin-left: 0px;\n color: rgb(255, 255, 255);\n}\n\n#igvfb9 {\n background-color: rgb(35, 39, 42);\n border-top-width: 1px;\n border-right-width: 1px;\n border-bottom-width: 1px;\n border-left-width: 1px;\n border-top-style: solid;\n border-right-style: solid;\n border-bottom-style: solid;\n border-left-style: solid;\n border-top-color: rgb(255, 255, 255);\n border-right-color: rgb(255, 255, 255);\n border-bottom-color: rgb(255, 255, 255);\n border-left-color: rgb(255, 255, 255);\n border-image-source: initial;\n border-image-slice: initial;\n border-image-width: initial;\n border-image-outset: initial;\n border-image-repeat: initial;\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n border-bottom-right-radius: 20px;\n border-bottom-left-radius: 20px;\n}\n\n#igldzm {\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n}\n\n#MessageOk {\n max-width: 300px;\n min-width: 100px;\n background-color: rgb(22, 23, 25);\n}\n\n#ispdrb {\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n padding-top: 10px;\n background-color: #23272A;\n}\n\n#ibr968 {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: center;\n}\n\n#RunWithoutEmbeddedLog {\n margin-top: 0px;\n margin-right: 0px;\n margin-bottom: 0px;\n margin-left: 7px;\n}\n\n#ia8vmt {\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n line-height: 20px;\n text-align: center;\n font-size: small;\n}\n\n#DatabaseMessageLog {\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n line-height: 20px;\n text-align: center;\n font-size: small;\n}\n\n#EmbeddedLanguageLog {\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n line-height: 20px;\n text-align: center;\n font-size: small;\n}\n\n#EmbeddedLanguageTitle {\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n line-height: 20px;\n text-align: center;\n font-size: small;\n}\n\n#itvmzx {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: center;\n}\n\n#RunWithoutDatabase {\n margin-top: 0px;\n margin-right: 0px;\n margin-bottom: 0px;\n margin-left: 7px;\n}\n\n#ibyo87 {\n padding-top: 0px;\n padding-right: 0px;\n padding-bottom: 0px;\n padding-left: 0px;\n height: auto;\n line-height: 20px;\n font-size: small;\n margin-bottom: 30px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n}\n\n#ibc53b {\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: flex-start;\n font-size: small;\n margin-bottom: 20px;\n}\n\n#AcceptScheduleType {\n width: auto;\n background-color: rgb(22, 23, 25);\n}\n\n#i5fail {\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n}\n\n#iygggo {\n padding-top: 0px;\n padding-right: 0px;\n padding-bottom: 0px;\n padding-left: 0px;\n}\n\n#IconStartType {\n margin-right: 5px;\n}\n\n.ScheduleTypeDescription {\n color: rgb(153, 153, 153);\n margin-bottom: 20px;\n margin-left: 15px;\n margin-top: 5px;\n max-width: 350px;\n}\n\n#ijf92 {\n color: rgb(255, 255, 255);\n background-color: rgb(35, 39, 42);\n border-top-width: 1px;\n border-right-width: 1px;\n border-bottom-width: 1px;\n border-left-width: 1px;\n border-top-style: solid;\n border-right-style: solid;\n border-bottom-style: solid;\n border-left-style: solid;\n border-top-color: rgb(102, 102, 102);\n border-right-color: rgb(102, 102, 102);\n border-bottom-color: rgb(102, 102, 102);\n border-left-color: rgb(102, 102, 102);\n border-image-source: initial;\n border-image-slice: initial;\n border-image-width: initial;\n border-image-outset: initial;\n border-image-repeat: initial;\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n border-bottom-right-radius: 20px;\n border-bottom-left-radius: 20px;\n}\n\n#i0rdnj {\n background-color: rgb(35, 39, 42);\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n border-bottom-right-radius: 20px;\n border-bottom-left-radius: 20px;\n}\n\n#ir8e0r {\n color: rgb(255, 255, 255);\n}\n\n#io3ptp {\n color: rgb(255, 255, 255);\n}\n\n#i0sio {\n background-color: #23272A;\n}\n\n@media (max-width: 768px) {\n .row {\n flex-wrap: wrap;\n }\n .row {\n flex-wrap: wrap;\n }\n .row {\n flex-wrap: wrap;\n }\n .row {\n flex-wrap: wrap;\n }\n .row {\n flex-wrap: wrap;\n }\n .row {\n flex-wrap: wrap;\n }\n .row {\n flex-wrap: wrap;\n }\n .row {\n flex-wrap: wrap;\n }\n .row {\n flex-wrap: wrap;\n }\n .row {\n flex-wrap: wrap;\n }\n .row {\n flex-wrap: wrap;\n }\n .row {\n flex-wrap: wrap;\n }\n}","html":"