index.php 73 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896
  1. <?php
  2. // Include functions if not already included
  3. require_once('functions.php');
  4. // Upgrade environment
  5. upgradeCheck();
  6. // Lazyload settings
  7. $databaseConfig = configLazy('config/config.php');
  8. // Load Colours/Appearance
  9. foreach(loadAppearance() as $key => $value) {
  10. $$key = $value;
  11. }
  12. //Set some variables
  13. ini_set("display_errors", 1);
  14. ini_set("error_reporting", E_ALL | E_STRICT);
  15. $data = false;
  16. $databaseLocation = "databaseLocation.ini.php";
  17. $needSetup = "Yes";
  18. $tabSetup = "Yes";
  19. $hasOptions = "No";
  20. $settingsicon = "No";
  21. $settingsActive = "";
  22. $action = "";
  23. $loadingIcon = "images/organizr-load-w-thick.gif";
  24. $baseURL = "";
  25. $dbcreated = false;
  26. // Get Action
  27. if(isset($_POST['action'])) {
  28. $action = $_POST['action'];
  29. unset($_POST['action']);
  30. }
  31. //Get Invite Code
  32. $inviteCode = isset($_GET['inviteCode']) ? $_GET['inviteCode'] : null;
  33. // Check for config file
  34. if(!file_exists('config/config.php')) {
  35. if($action == "createLocation") {
  36. if (isset($_POST['database_Location'])) {
  37. $_POST['database_Location'] = str_replace('//','/',$_POST['database_Location'].'/');
  38. if(substr($_POST['database_Location'], -1) != "/") : $_POST['database_Location'] = $_POST['database_Location'] . "/"; endif;
  39. $_POST['user_home'] = $_POST['database_Location'].'users/';
  40. }
  41. if (file_exists($_POST['database_Location'])) {
  42. updateConfig($_POST);
  43. } else {
  44. debug_out('Dir doesn\'t exist: '.$_POST['database_Location'],1); // Pretty Up
  45. }
  46. } else {
  47. $configReady = "No";
  48. $userpic = "";
  49. $showPic = "";
  50. }
  51. }
  52. if (file_exists('config/config.php')) {
  53. if (!DATABASE_LOCATION){
  54. die(header("Refresh:0"));
  55. }
  56. $configReady = "Yes";
  57. require_once("user.php");
  58. $USER = new User("registration_callback");
  59. $dbfile = DATABASE_LOCATION . constant('User::DATABASE_NAME') . ".db";
  60. $database = new PDO("sqlite:" . $dbfile);
  61. $query = "SELECT * FROM users";
  62. foreach($database->query($query) as $data) {
  63. $needSetup = "No";
  64. }
  65. $db = DATABASE_LOCATION . constant('User::DATABASE_NAME') . ".db";
  66. $file_db = new PDO("sqlite:" . $db);
  67. $file_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  68. $dbTab = $file_db->query('SELECT name FROM sqlite_master WHERE type="table" AND name="tabs"');
  69. $dbOptions = $file_db->query('SELECT name FROM sqlite_master WHERE type="table" AND name="options"');
  70. foreach($dbTab as $row) :
  71. if (in_array("tabs", $row)) :
  72. $tabSetup = "No";
  73. endif;
  74. endforeach;
  75. if($tabSetup == "Yes") :
  76. $settingsActive = "active";
  77. endif;
  78. foreach($dbOptions as $row) :
  79. if (in_array("options", $row)) :
  80. $hasOptions = "Yes";
  81. endif;
  82. endforeach;
  83. if($tabSetup == "No") :
  84. if($USER->authenticated && $USER->role == "admin") :
  85. $result = $file_db->query('SELECT * FROM tabs WHERE active = "true" ORDER BY `order` asc');
  86. $splash = $file_db->query('SELECT * FROM tabs WHERE active = "true" AND splash = "true" ORDER BY `order` asc');
  87. $getsettings = $file_db->query('SELECT * FROM tabs WHERE active = "true" ORDER BY `order` asc');
  88. foreach($getsettings as $row) :
  89. if(!empty($row['iconurl']) && $settingsicon == "No") :
  90. $settingsicon = "Yes";
  91. endif;
  92. endforeach;
  93. elseif($USER->authenticated && $USER->role == "user") :
  94. $result = $file_db->query('SELECT * FROM tabs WHERE active = "true" AND user = "true" ORDER BY `order` asc');
  95. $splash = $file_db->query('SELECT * FROM tabs WHERE active = "true" AND splash = "true" AND user = "true" ORDER BY `order` asc');
  96. else :
  97. $result = $file_db->query('SELECT * FROM tabs WHERE active = "true" AND guest = "true" ORDER BY `order` asc');
  98. $splash = $file_db->query('SELECT * FROM tabs WHERE active = "true" AND splash = "true" AND guest = "true" ORDER BY `order` asc');
  99. endif;
  100. endif;
  101. $userpic = md5( strtolower( trim( $USER->email ) ) );
  102. if(LOADINGICON !== "") : $loadingIcon = LOADINGICON; endif;
  103. if(SLIMBAR == "true") : $slimBar = "30"; $userSize = "25"; else : $slimBar = "56"; $userSize = "40"; endif;
  104. if($USER->authenticated) :
  105. if(GRAVATAR == "true") :
  106. $showPic = "<img src='https://www.gravatar.com/avatar/$userpic?s=$userSize' class='img-circle'>";
  107. else:
  108. $showPic = "<i class=\"mdi mdi-account-box-outline\"></i>";
  109. endif;
  110. else :
  111. $showPic = "<login class='login-btn text-uppercase'>" . $language->translate("LOGIN") . "</login>";
  112. endif;
  113. //NEW CHAT
  114. if(CHAT == "true" && qualifyUser(CHATAUTH)){
  115. if( $db = new SQLite3("chatpack.db") ){
  116. if( $db->busyTimeout(5000) ){
  117. if( $db->exec("PRAGMA journal_mode = wal;") ) {
  118. $logtable = "CREATE TABLE IF NOT EXISTS chatpack_log
  119. (id INTEGER PRIMARY KEY,
  120. timestamp INTEGER NOT NULL,
  121. user TEXT NOT NULL,
  122. avatar TEXT NOT NULL,
  123. message TEXT NOT NULL,
  124. liked INTEGER DEFAULT 0)";
  125. if( $db->exec($logtable) ){
  126. $usertable = "CREATE TABLE IF NOT EXISTS chatpack_typing
  127. (id INTEGER PRIMARY KEY,
  128. timestamp INTEGER NOT NULL,
  129. user TEXT NOT NULL)";
  130. $onlinetable = "CREATE TABLE IF NOT EXISTS chatpack_last_message
  131. (
  132. user TEXT PRIMARY KEY NOT NULL,
  133. timestamp INTEGER NOT NULL,
  134. avatar TEXT NOT NULL)";
  135. if( $db->exec($usertable) && $db->exec($onlinetable) ){
  136. $dbcreated = true;
  137. }else{
  138. errormessage("creating database table for typing");
  139. }
  140. }else{
  141. errormessage("creating database table for messages");
  142. }
  143. if( !$db->close() ){
  144. errormessage("closing database connection");
  145. }
  146. }else{
  147. errormessage("setting journal mode");
  148. }
  149. }else{
  150. errormessage("setting busy timeout");
  151. }
  152. }else{
  153. errormessage("using SQLite");
  154. }
  155. }
  156. }
  157. if(!defined('SLIMBAR')) : define('SLIMBAR', 'true'); endif;
  158. if(!defined('AUTOHIDE')) : define('AUTOHIDE', 'false'); endif;
  159. if(!defined('ENABLEMAIL')) : define('ENABLEMAIL', 'false'); endif;
  160. if(!defined('CUSTOMCSS')) : define('CUSTOMCSS', 'false'); endif;
  161. if(!defined('LOADINGSCREEN')) : define('LOADINGSCREEN', 'true'); endif;
  162. if(!isset($notifyExplode)) :
  163. $notifyExplode = array("bar","slidetop");
  164. endif;
  165. if(SLIMBAR == "true") : $slimBar = "30"; $userSize = "25"; $chatSize = "114px"; else : $slimBar = "56"; $userSize = "40"; $chatSize = "140px";endif;
  166. if(file_exists("images/settings2.png")) : $iconRotate = "false"; $settingsIcon = "settings2.png"; else: $iconRotate = "true"; $settingsIcon = "settings.png"; endif;
  167. ?>
  168. <!--
  169. ___ ___ ___ ___ ___ ___ ___ ___
  170. /\ \ /\ \ /\ \ /\ \ /\__\ /\ \ /\ \ /\ \
  171. /::\ \ /::\ \ /::\ \ /::\ \ /:| _|_ _\:\ \ _\:\ \ /::\ \
  172. /:/\:\__\ /::\:\__\ /:/\:\__\ /::\:\__\ /::|/\__\ /\/::\__\ /::::\__\ /::\:\__\
  173. \:\/:/ / \;:::/ / \:\:\/__/ \/\::/ / \/|::/ / \::/\/__/ \::;;/__/ \;:::/ /
  174. \::/ / |:\/__/ \::/ / /:/ / |:/ / \:\__\ \:\__\ |:\/__/
  175. \/__/ \|__| \/__/ \/__/ \/__/ \/__/ \/__/ \|__|
  176. [Organizr Version: <?php echo INSTALLEDVERSION; ?> - By: CauseFX]
  177. -->
  178. <!DOCTYPE html>
  179. <html lang="<?php echo $language->getLang(); ?>" class="no-js">
  180. <head>
  181. <meta charset="UTF-8">
  182. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
  183. <meta name="apple-mobile-web-app-capable" content="yes" />
  184. <meta name="mobile-web-app-capable" content="yes" /
  185. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  186. <meta name="msapplication-tap-highlight" content="no" />
  187. <title><?=$title;?><?php if($title !== "Organizr") : echo " - Organizr"; endif; ?></title>
  188. <link rel="stylesheet" href="<?=$baseURL;?>bower_components/bootstrap/dist/css/bootstrap.min.css?v=<?php echo INSTALLEDVERSION; ?>">
  189. <link rel="stylesheet" href="<?=$baseURL;?>bower_components/font-awesome/css/font-awesome.min.css?v=<?php echo INSTALLEDVERSION; ?>">
  190. <link rel="stylesheet" href="<?=$baseURL;?>bower_components/mdi/css/materialdesignicons.min.css?v=<?php echo INSTALLEDVERSION; ?>">
  191. <link rel="stylesheet" href="<?=$baseURL;?>bower_components/metisMenu/dist/metisMenu.min.css?v=<?php echo INSTALLEDVERSION; ?>">
  192. <link rel="stylesheet" href="<?=$baseURL;?>bower_components/Waves/dist/waves.min.css?v=<?php echo INSTALLEDVERSION; ?>">
  193. <link rel="stylesheet" href="<?=$baseURL;?>bower_components/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css?v=<?php echo INSTALLEDVERSION; ?>">
  194. <link rel="stylesheet" href="<?=$baseURL;?>js/selects/cs-select.css?v=<?php echo INSTALLEDVERSION; ?>">
  195. <link rel="stylesheet" href="<?=$baseURL;?>js/selects/cs-skin-elastic.css?v=<?php echo INSTALLEDVERSION; ?>">
  196. <link rel="stylesheet" href="<?=$baseURL;?>bower_components/google-material-color/dist/palette.css?v=<?php echo INSTALLEDVERSION; ?>">
  197. <link rel="stylesheet" href="<?=$baseURL;?>bower_components/sweetalert/dist/sweetalert.css?v=<?php echo INSTALLEDVERSION; ?>">
  198. <link rel="stylesheet" href="<?=$baseURL;?>bower_components/smoke/dist/css/smoke.min.css?v=<?php echo INSTALLEDVERSION; ?>">
  199. <link rel="stylesheet" href="<?=$baseURL;?>js/notifications/ns-style-growl.css?v=<?php echo INSTALLEDVERSION; ?>">
  200. <link rel="stylesheet" href="<?=$baseURL;?>js/notifications/ns-style-other.css?v=<?php echo INSTALLEDVERSION; ?>">
  201. <script src="<?=$baseURL;?>js/menu/modernizr.custom.js?v=<?php echo INSTALLEDVERSION; ?>"></script>
  202. <script type="text/javascript" src="<?=$baseURL;?>js/sha1.js?v=<?php echo INSTALLEDVERSION; ?>"></script>
  203. <script type="text/javascript" src="<?=$baseURL;?>js/user.js?v=<?php echo INSTALLEDVERSION; ?>"></script>
  204. <link rel="stylesheet" href="<?=$baseURL;?>css/style.css?v=<?php echo INSTALLEDVERSION; ?>">
  205. <link rel="stylesheet" href="bower_components/animate.css/animate.min.css?v=<?php echo INSTALLEDVERSION; ?>">
  206. <link rel="icon" type="image/png" href="<?=$baseURL;?>images/favicon/android-chrome-192x192.png" sizes="192x192">
  207. <link rel="apple-touch-icon" sizes="180x180" href="<?=$baseURL;?>images/favicon/apple-touch-icon.png">
  208. <link rel="icon" type="image/png" href="<?=$baseURL;?>images/favicon/favicon-32x32.png" sizes="32x32">
  209. <link rel="icon" type="image/png" href="<?=$baseURL;?>images/favicon/favicon-16x16.png" sizes="16x16">
  210. <link rel="manifest" href="<?=$baseURL;?>images/favicon/manifest.json">
  211. <link rel="mask-icon" href="<?=$baseURL;?>images/favicon/safari-pinned-tab.svg" color="#2d89ef">
  212. <link rel="shortcut icon" href="<?=$baseURL;?>images/favicon/favicon.ico">
  213. <meta name="msapplication-config" content="<?=$baseURL;?>images/favicon/browserconfig.xml">
  214. <meta name="theme-color" content="#2d89ef">
  215. <link rel="stylesheet" type="text/css" href="css/addtohomescreen.css">
  216. <script src="js/addtohomescreen.js"></script>
  217. <script src="js/push.js"></script>
  218. <!--Other-->
  219. <script src="js/ajax.js?v=<?php echo INSTALLEDVERSION; ?>"></script>
  220. <!--[if lt IE 9]>
  221. <script src="bower_components/html5shiv/dist/html5shiv.min.js"></script>
  222. <script src="bower_components/respondJs/dest/respond.min.js"></script>
  223. <![endif]-->
  224. </head>
  225. <style>
  226. .new-message{
  227. color: #46bc99 !important;
  228. }
  229. @media screen and (max-width:737px){
  230. .email-body{width: 100%; overflow: auto;height: 100%;}
  231. .email-content, .email-new {
  232. -webkit-overflow-scrolling: touch;
  233. -webkit-transform: translateZ(0);
  234. overflow: scroll;
  235. position: fixed;
  236. height:100% !important;
  237. margin-top:<?=$slimBar;?>px;
  238. }.email-content .email-header, .email-new .email-header{
  239. padding: 10px 30px;
  240. z-index: 1000;
  241. }
  242. }@media screen and (min-width:737px){
  243. .email-body{width: 100%}
  244. .email-content .close-button, .email-content .email-actions, .email-new .close-button, .email-new .email-actions {
  245. position: relative;
  246. top: 15px;
  247. right: 0px;
  248. float: right;
  249. }.email-inner-section {
  250. margin-top: 30px;
  251. }.email-content, .email-new {
  252. overflow: auto;
  253. margin: <?=$slimBar;?>px 0 0 0 !important;
  254. height: 100%;
  255. position: fixed;
  256. max-width: 100%;
  257. width: calc(35%) !important;
  258. right: calc(-35%);
  259. }.email-content .email-header, .email-new .email-header{
  260. position: fixed;
  261. padding: 0px 30px;
  262. width: calc(35%) !important;
  263. z-index: 1000;
  264. }
  265. }
  266. .loop-animation {
  267. animation-iteration-count: infinite;
  268. -webkit-animation-iteration-count: infinite;
  269. -moz-animation-iteration-count: infinite;
  270. -o-animation-iteration-count: infinite;
  271. }
  272. .loop-animation-timeout {
  273. animation-iteration-count: 5;
  274. -webkit-animation-iteration-count: 5;
  275. -moz-animation-iteration-count: 5;
  276. -o-animation-iteration-count: 5;
  277. }
  278. .ping-success {
  279. background: #46bc99 !important;
  280. box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  281. }.ping-warning {
  282. background: #ff3333 !important;
  283. box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  284. }
  285. .TabOpened {
  286. -webkit-filter: drop-shadow(0px 0px 5px <?=$topbartext;?>);
  287. filter: drop-shadow(0px 0px 5px <?=$topbartext;?>);
  288. }.bottom-bnts a {
  289. background: <?=$bottombar;?> !important;
  290. color: <?=$topbartext;?> !important;
  291. }.bottom-bnts {
  292. background: <?=$bottombar;?> !important;
  293. }.gn-menu-main {
  294. background: <?=$topbar;?>;
  295. }.gn-menu-main ul.gn-menu {
  296. background: <?=$sidebar;?>;
  297. }.gn-menu-wrapper {
  298. background: <?=$sidebar;?>;
  299. }.la-timer.la-dark {
  300. color: <?=$topbartext;?>
  301. }.refresh-preloader {
  302. background: <?=$loading;?>;
  303. }.la-timer {
  304. width: 75px;
  305. height: 75px;
  306. padding-top: 20px;
  307. border-radius: 100px;
  308. background: <?=$sidebar;?>;
  309. border: 2px solid <?=$topbar;?>;
  310. }@media screen and (min-width:737px){
  311. .tab-item:hover a {
  312. color: <?=$hovertext;?> !important;
  313. background: <?=$hoverbg;?>;
  314. border-radius: 100px 0 0 100px;
  315. }
  316. }.gn-menu li.active > a {
  317. color: <?=$activetabtext;?> !important;
  318. background: <?=$activetabBG;?>;
  319. border-radius: 100px 0 0 100px;
  320. }.gn-menu li.rightActive > a {
  321. background: <?=$hoverbg;?>;
  322. border-radius: 100px 0 0 100px;
  323. }.gn-menu li.active i.fa {
  324. color: <?=$activetabicon;?>;
  325. }.gn-menu li i.fa {
  326. color: <?=$inactiveicon;?>;
  327. }.gn-menu-main ul.gn-menu a {
  328. color: <?=$inactivetext;?>;
  329. }li.dropdown.some-btn .mdi {
  330. color: <?=$topbartext;?>;
  331. }li.dropdown.some-btn .mdi:hover {
  332. color: <?=$hoverbg;?>;
  333. }.nav>li>a:focus, .nav>li>a:hover {
  334. text-decoration: none;
  335. background-color: transparent;
  336. }div#preloader {
  337. background: <?=$loading;?>;
  338. }.iframe {
  339. -webkit-overflow-scrolling: touch;
  340. }.main-wrapper{
  341. position: absolute !important;
  342. }#menu-toggle span {
  343. background: <?=$topbartext;?>;
  344. }logo.logo {
  345. opacity: 0.5;
  346. filter: alpha(opacity=50);
  347. }.mini-nav .split {
  348. width: calc(50% - 25px);
  349. }.splitRight {
  350. width: 50%;
  351. margin-left: 50% !important;
  352. position: absolute !important;
  353. }.split {
  354. width: 50%;
  355. position: absolute !important;
  356. }.mini-nav .splitRight {
  357. margin-left: calc(50% + 25px) !important;
  358. width: calc(50% - 25px);
  359. }.form-control.material {
  360. background-image: -webkit-gradient(linear, left top, left bottom, from(<?=$topbartext;?>), to(<?=$topbartext;?>)), -webkit-gradient(linear, left top, left bottom, from(#d2d2d2), to(#d2d2d2));
  361. background-image: -webkit-linear-gradient(<?=$topbartext;?>, <?=$topbartext;?>), -webkit-linear-gradient(#d2d2d2, #d2d2d2);
  362. background-image: linear-gradient(<?=$topbartext;?>, <?=$topbartext;?>), linear-gradient(#d2d2d2, #d2d2d2);
  363. }img.titlelogoclass {
  364. max-width: 250px;
  365. max-height: <?=$slimBar;?>px;
  366. }@media only screen and (max-width: 450px) {
  367. img.titlelogoclass {
  368. max-width: 150px;
  369. }
  370. }.login-btn {
  371. -webkit-border-radius: 4;
  372. -moz-border-radius: 4;
  373. border-radius: 4px;
  374. -webkit-box-shadow: 0px 1px 3px #666666;
  375. -moz-box-shadow: 0px 1px 3px #666666;
  376. box-shadow: 0px 1px 3px #666666;
  377. font-family: Arial;
  378. color: <?=$topbar;?>;
  379. font-size: 10px;
  380. vertical-align: top;
  381. background: <?=$topbartext;?>;
  382. padding: 5px 10px 5px 10px;
  383. text-decoration: none;
  384. font-weight: 700;
  385. font-style: normal;
  386. }.login-btn:hover {
  387. background: <?=$hoverbg;?>;
  388. color: <?=$hovertext;?>;
  389. text-decoration: none;
  390. font-weight: 700;
  391. }
  392. <?php if(SLIMBAR == "true") : ?>
  393. /* Slim Styling */
  394. body{
  395. padding-top: 30px !important;
  396. }.gn-menu-main {
  397. height: 30px !important;
  398. }.gn-menu-wrapper {
  399. top: 30px !important;
  400. }.gn-menu-main .navbar-right {
  401. line-height: 30px !important;
  402. }img.img-circle {
  403. vertical-align: inherit;
  404. margin-top: 2px;
  405. }.menu-toggle .hamburger {
  406. top: 0px !important;
  407. }.top-clock {
  408. line-height: 30px !important;
  409. }img.titlelogoclass {
  410. vertical-align: inherit;
  411. }.members-sidebar {
  412. top: 30px !important;
  413. }.menu-toggle .cross span:nth-child(2) {
  414. left: -9px;
  415. top: 41px;
  416. }.menu-toggle.gn-selected .cross span:nth-child(2) {
  417. width: 53%;
  418. }.menu-toggle.gn-selected .cross span:nth-child(1) {
  419. height: 105% !important;
  420. }.menu-toggle .cross span:nth-child(1) {
  421. left: 6px !important;
  422. top: 26px !important;
  423. }.menu-toggle .hamburger span {
  424. margin: 5px 0;
  425. width: 25px;
  426. }.menu-toggle .hamburger {
  427. margin-left: -17px;
  428. }.ns-effect-slidetop {
  429. padding: 6px 22px;
  430. }.ns-effect-exploader {
  431. padding: 5px 22px;
  432. }
  433. <?php endif; ?>
  434. <?php customCSS(); ?>
  435. </style>
  436. <body style="overflow: hidden">
  437. <?php if (LOADINGSCREEN == "true") : ?>
  438. <!--Preloader-->
  439. <div id="preloader" class="preloader table-wrapper">
  440. <div class="table-row">
  441. <div class="table-cell">
  442. <div class="la-ball-scale-multiple la-3x" style="color: <?=$topbar;?>">
  443. <?php if (pathinfo($loadingIcon, PATHINFO_EXTENSION) !== "gif" ) :
  444. echo "<div></div><div></div><div></div>";
  445. endif; ?>
  446. <logo class="logo"><img height="192px" src="<?=$loadingIcon;?>"></logo>
  447. </div>
  448. </div>
  449. </div>
  450. </div>
  451. <?php endif; ?>
  452. <div id="main-wrapper" class="main-wrapper" tabindex="-1">
  453. <ul id="gn-menu" class="gn-menu-main">
  454. <li class="gn-trigger">
  455. <a id="menu-toggle" class="menu-toggle gn-icon gn-icon-menu">
  456. <div class="hamburger">
  457. <span></span>
  458. <span></span>
  459. <span></span>
  460. </div>
  461. <div class="cross">
  462. <span></span>
  463. <span></span>
  464. </div>
  465. </a>
  466. <nav class="gn-menu-wrapper">
  467. <div class="gn-scroller" id="gn-scroller">
  468. <ul id="tabList" class="gn-menu metismenu">
  469. <!--Start Tab List-->
  470. <?php if($tabSetup == "No") : $tabCount = 1; $allPings = array(); foreach($result as $row) :
  471. $name = str_replace(array(':', '\\', '/', '*'), 'x', $row['ping_url']);
  472. if($row['defaultz'] == "true") : $defaultz = "active"; else : $defaultz = ""; endif; ?>
  473. <li window="<?=$row['window'];?>" class="tab-item <?=$defaultz;?>" id="<?=$row['url'];?>x" data-title="<?=$row['name'];?>" name="<?php echo strtolower($row['name']);?>">
  474. <a class="tab-link">
  475. <?php if($row['iconurl']) : ?>
  476. <i style="font-size: 19px; padding: 0 10px; font-size: 19px;">
  477. <span id="<?=$row['url'];?>s" class="badge badge-success" style="position: absolute;z-index: 100;right: 0px;"></span>
  478. <img src="<?=$row['iconurl'];?>" style="height: 30px; width: 30px; margin-top: -2px;">
  479. <?php if($row['ping'] == "true" && $row['ping_url']){ $allPings["image".$name] = $row['ping_url']; ?>
  480. <ping id="ping-<?=$name;?>"></ping>
  481. <?php }?>
  482. </i>
  483. <?php else : ?>
  484. <i class="fa <?=$row['icon'];?> fa-lg">
  485. <span id="<?=$row['url'];?>s" class="badge badge-success" style="position: absolute;z-index: 100;right: 0px;"></span>
  486. <?php if($row['ping'] == "true" && $row['ping_url']){ $allPings["icon".$name] = $row['ping_url']; ?>
  487. <ping id="ping-<?=$name;?>"></ping>
  488. <?php }?>
  489. </i>
  490. <?php endif; ?>
  491. <?=$row['name'];?>
  492. </a>
  493. </li>
  494. <?php $tabCount++; endforeach; endif;?>
  495. <?php if($configReady == "Yes") : if($USER->authenticated && $USER->role == "admin") :?>
  496. <li class="tab-item <?=$settingsActive;?>" id="settings.phpx" data-title="Settings" name="settings">
  497. <a class="tab-link">
  498. <?php if($settingsicon == "Yes") :
  499. echo '<i style="font-size: 19px; padding: 0 10px; font-size: 19px;">
  500. <img id="settings-icon" src="images/' . $settingsIcon . '" style="height: 30px; margin-top: -2px;"></i>';
  501. else :
  502. echo '<i id="settings-icon" class="fa fa-cog"></i>';
  503. endif; ?>
  504. <?php echo $language->translate("SETTINGS");?>
  505. </a>
  506. </li>
  507. <li style="display: none;" class="tab-item" id="updatedb.phpx" data-title="Upgrade" name="upgrade">
  508. <a class="tab-link">
  509. <?php if($settingsicon == "Yes") :
  510. echo '<i style="font-size: 19px; padding: 0 10px; font-size: 19px;">
  511. <img id="upgrade-icon" src="images/upgrade.png" style="height: 30px; margin-top: -2px;"></i>';
  512. else :
  513. echo '<i id="upgrade-icon" class="fa fa-arrow-up"></i>';
  514. endif; ?>
  515. <?php echo $language->translate("UPGRADE");?>
  516. </a>
  517. </li>
  518. <?php endif; endif;?>
  519. <!--End Tab List-->
  520. </ul>
  521. </div>
  522. <!-- /gn-scroller -->
  523. <div class="bottom-bnts">
  524. <a class="fix-nav"><i class="mdi mdi-pin"></i></a>
  525. </div>
  526. </nav>
  527. </li>
  528. <li class="top-clock">
  529. <?php
  530. if($configReady == "Yes") :
  531. if(TITLELOGO == "") :
  532. echo "<span><span style=\"color: $topbartext\"><b>$title</b></span></span>";
  533. else :
  534. echo "<img class='titlelogoclass' src='" . TITLELOGO . "'>";
  535. endif;
  536. else :
  537. echo "<span><span style=\"color: $topbartext\"><b>$title</b></span></span>";
  538. endif;
  539. ?>
  540. </li>
  541. <li class="pull-right">
  542. <ul class="nav navbar-right right-menu">
  543. <li class="dropdown some-btn">
  544. <?php if($configReady == "Yes") : if(!$USER->authenticated) : ?>
  545. <a class="log-in">
  546. <?php endif; endif;?>
  547. <?php if($configReady == "Yes") : if($USER->authenticated) : ?>
  548. <a class="show-members">
  549. <?php endif; endif;?>
  550. <i class="userpic"><?=$showPic;?></i>
  551. </a>
  552. </li>
  553. <li class="dropdown some-btn">
  554. <a class="fullscreen">
  555. <i class="mdi mdi-fullscreen"></i>
  556. </a>
  557. </li>
  558. <li class="dropdown some-btn">
  559. <a id="reload" class="refresh">
  560. <i class="mdi mdi-refresh"></i>
  561. </a>
  562. </li>
  563. <li class="dropdown some-btn">
  564. <a id="popout" class="popout">
  565. <i class="mdi mdi-window-restore"></i>
  566. </a>
  567. </li>
  568. <?php if(CHAT == "true" && qualifyUser(CHATAUTH)){?>
  569. <li class="dropdown some-btn">
  570. <a id="chat-open" class="chat-open">
  571. <i class="mdi mdi-forum animated"></i>
  572. <span class="label label-new-message"></span>
  573. </a>
  574. </li>
  575. <?php } ?>
  576. <li style="display: block" id="splitView" class="dropdown some-btn">
  577. <a class="spltView">
  578. <i class="mdi mdi-window-close"></i>
  579. </a>
  580. </li>
  581. </ul>
  582. </li>
  583. </ul>
  584. <!--Content-->
  585. <div id="content" class="content" style="">
  586. <script>addToHomescreen();</script>
  587. <!--Load Framed Content-->
  588. <?php if($needSetup == "Yes" && $configReady == "Yes") : ?>
  589. <div class="table-wrapper" style="background:<?=$sidebar;?>;">
  590. <div class="table-row">
  591. <div class="table-cell text-center">
  592. <div class="login i-block">
  593. <div class="content-box">
  594. <div class="biggest-box" style="background:<?=$topbar;?>;">
  595. <h1 class="zero-m text-uppercase" style="color:<?=$topbartext;?>;"><?php echo $language->translate("CREATE_ADMIN");?></h1>
  596. </div>
  597. <div class="big-box text-left registration-form">
  598. <h4 class="text-center"><?php echo $language->translate("CREATE_ACCOUNT");?></h4>
  599. <form class="controlbox" name="new user registration" id="registration" action="" method="POST" data-smk-icon="glyphicon-remove-sign">
  600. <input type="hidden" name="op" value="register"/>
  601. <input type="hidden" name="sha1" value=""/>
  602. <input type="hidden" name="settings" value="false"/>
  603. <div class="form-group">
  604. <input type="text" class="form-control material" name="username" autofocus placeholder="<?php echo $language->translate("USERNAME");?>" autocorrect="off" autocapitalize="off" minlength="3" maxlength="16" required>
  605. </div>
  606. <div class="form-group">
  607. <input type="email" class="form-control material" name="email" placeholder="<?php echo $language->translate("EMAIL");?>">
  608. </div>
  609. <div class="form-group">
  610. <input type="password" class="form-control material" name="password1" placeholder="<?php echo $language->translate("PASSWORD");?>" data-smk-strongPass="weak" required>
  611. </div>
  612. <div class="form-group">
  613. <input type="password" class="form-control material" name="password2" placeholder="<?php echo $language->translate("PASSWORD_AGAIN");?>">
  614. </div>
  615. <button id="registerSubmit" style="background:<?=$topbar;?>;" type="submit" class="btn btn-block text-uppercase waves waves-effect waves-float" value="Register"><text style="color:<?=$topbartext;?>;"><?php echo $language->translate("REGISTER");?></text></button>
  616. </form>
  617. </div>
  618. </div>
  619. </div>
  620. </div>
  621. </div>
  622. </div>
  623. <?php endif; ?>
  624. <?php if($needSetup == "Yes" && $configReady == "No") : ?>
  625. <div class="table-wrapper" style="background:<?=$sidebar;?>;">
  626. <div class="table-row">
  627. <div class="table-cell text-center">
  628. <div class="login i-block">
  629. <div class="content-box">
  630. <div class="biggest-box" style="background:<?=$topbar;?>;">
  631. <h1 class="zero-m text-uppercase" style="color:<?=$topbartext;?>;"><?php echo $language->translate("DATABASE_PATH");?></h1>
  632. </div>
  633. <div class="big-box text-left">
  634. <h3 class="text-center"><?php echo $language->translate("SPECIFY_LOCATION");?></h3>
  635. <h5 class="text-left"><strong><?php echo $language->translate("CURRENT_DIRECTORY");?>: <?php echo str_replace("\\","/",__DIR__); ?> <br><?php echo $language->translate("PARENT_DIRECTORY");?>: <?php echo str_replace("\\","/",dirname(__DIR__)); ?></strong></h5>
  636. <form class="controlbox" name="setupDatabase" id="setupDatabase" action="" method="POST" data-smk-icon="glyphicon-remove-sign">
  637. <input type="hidden" name="action" value="createLocation" />
  638. <div class="form-group">
  639. <input type="text" class="form-control material" name="database_Location" autofocus value="<?php echo str_replace("\\","/",dirname(__DIR__));?>" autocorrect="off" autocapitalize="off" required>
  640. <h5><?php echo $language->translate("SET_DATABASE_LOCATION");?></h5>
  641. <?php echo getTimezone();?>
  642. <h5><?php echo $language->translate("SET_TIMEZONE");?></h5>
  643. <?php
  644. if(file_exists(dirname(__DIR__) . '/users.db') || file_exists(__DIR__ . '/users.db') || file_exists(__DIR__ . '/config/users.db')) :
  645. echo '<h5 class="text-center red">';
  646. echo $language->translate("DONT_WORRY");
  647. echo '</h5>';
  648. endif;?>
  649. </div>
  650. <button style="background:<?=$topbar;?>;" id="databaseLocationSubmit" type="submit" class="btn btn-block btn-sm text-uppercase waves waves-effect waves-float" value="Save Location"><text style="color:<?=$topbartext;?>;"><?php echo $language->translate("SAVE_LOCATION");?></text></button>
  651. </form>
  652. </div>
  653. </div>
  654. </div>
  655. </div>
  656. </div>
  657. </div>
  658. <?php endif; ?>
  659. <?php if($configReady == "Yes") : if(!$USER->authenticated && $tabSetup == "Yes" && $needSetup == "No") :?>
  660. <div class="table-wrapper">
  661. <div class="table-row">
  662. <div class="table-cell text-center">
  663. <div class="login i-block">
  664. <div class="content-box">
  665. <div class="blue-bg biggest-box">
  666. <h1 class="zero-m text-uppercase"><?php echo $language->translate("AWESOME");?></h1>
  667. </div>
  668. <div class="big-box text-left">
  669. <h4 class="text-center"><?php echo $language->translate("TIME_TO_LOGIN");?></h4>
  670. <button type="submit" class="btn log-in btn-block btn-primary text-uppercase waves waves-effect waves-float"><?php echo $language->translate("LOGIN");?></button>
  671. </div>
  672. </div>
  673. </div>
  674. </div>
  675. </div>
  676. </div>
  677. <?php endif; endif; ?>
  678. <?php if($tabSetup == "No" && $needSetup == "No") :?>
  679. <div id="tabEmpty" class="table-wrapper" style="display: none; background:<?=$sidebar;?>;">
  680. <div class="table-row">
  681. <div class="table-cell text-center">
  682. <div class="login i-block">
  683. <div class="content-box">
  684. <div class="biggest-box" style="background:<?=$topbar;?>;">
  685. <h1 class="zero-m text-uppercase" style="color:<?=$topbartext;?>;"><?php echo $language->translate("HOLD_UP");?></h1>
  686. </div>
  687. <div class="big-box text-left">
  688. <center><img src="images/sowwy.png" style="height: 200px;"></center>
  689. <h2 class="text-center"><?php echo $language->translate("LOOKS_LIKE_YOU_DONT_HAVE_ACCESS");?></h2>
  690. <?php if(!$USER->authenticated) : ?>
  691. <button style="background:<?=$topbar;?>;" type="submit" class="btn log-in btn-block btn-primary text-uppercase waves waves-effect waves-float"><text style="color:<?=$topbartext;?>;"><?php echo $language->translate("LOGIN");?></text></button>
  692. <?php endif; ?>
  693. </div>
  694. </div>
  695. </div>
  696. </div>
  697. </div>
  698. </div>
  699. <?php endif;?>
  700. <!--End Load Framed Content-->
  701. </div>
  702. <div id="contentRight" class="content splitRight" style="">
  703. </div>
  704. <!--End Content-->
  705. <!--Welcome notification-->
  706. <div id="welcome"></div>
  707. <div id="members-sidebar" style="background: <?=$sidebar;?>;" class="members-sidebar fade in">
  708. <h4 class="pull-left zero-m"><?php echo $language->translate("OPTIONS");?></h4>
  709. <span class="close-members-sidebar"><i class="fa fa-remove fa-lg pull-right"></i></span>
  710. <div class="clearfix"><br/></div>
  711. <?php if($configReady == "Yes") : if($USER->authenticated) : ?>
  712. <br>
  713. <div class="content-box profile-sidebar box-shadow">
  714. <?php if(GRAVATAR == "true") : ?>
  715. <img src="https://www.gravatar.com/avatar/<?=$userpic;?>?s=100&d=mm" class="img-responsive img-circle center-block" alt="user">
  716. <?php endif; ?>
  717. <div class="profile-usertitle">
  718. <div class="profile-usertitle-name">
  719. <?php echo strtoupper($USER->username); ?>
  720. </div>
  721. <div class="profile-usertitle-job">
  722. <?php echo strtoupper($USER->role); ?>
  723. </div>
  724. </div>
  725. <div id="buttonsDiv" class="profile-userbuttons">
  726. <button id="editInfo" type="button" class="btn btn-primary text-uppercase waves waves-effect waves-float"><?php echo $language->translate("EDIT_INFO");?></button>
  727. <button type="button" class="logout btn btn-warning waves waves-effect waves-float"><?php echo $language->translate("LOGOUT");?></button>
  728. </div>
  729. <div id="editInfoDiv" style="display: none" class="profile-usertitle">
  730. <form class="content-form form-inline" name="update" id="update" action="" method="POST">
  731. <input type="hidden" name="op" value="update"/>
  732. <input type="hidden" name="sha1" value=""/>
  733. <input type="hidden" name="password" value="">
  734. <input type="hidden" name="username" value="<?php echo $USER->username; ?>"/>
  735. <input type="hidden" name="role" value="<?php echo $USER->role; ?>"/>
  736. <div class="form-group">
  737. <input autocomplete="off" type="text" value="<?php echo $USER->email; ?>" class="form-control" name="email" placeholder="<?php echo $language->translate("EMAIL_ADDRESS");?>">
  738. </div>
  739. <div class="form-group">
  740. <input autocomplete="off" type="password" class="form-control" name="password1" placeholder="<?php echo $language->translate("PASSWORD");?>">
  741. </div>
  742. <div class="form-group">
  743. <input autocomplete="off" type="password" class="form-control" name="password2" placeholder="<?php echo $language->translate("PASSWORD_AGAIN");?>">
  744. </div>
  745. <br>
  746. <div class="form-group">
  747. <input type="button" class="btn btn-success text-uppercase waves-effect waves-float" value="<?php echo $language->translate("UPDATE");?>" onclick="User.processUpdate()"/>
  748. <button id="goBackButtons" type="button" class="btn btn-primary text-uppercase waves waves-effect waves-float"><?php echo $language->translate("GO_BACK");?></button>
  749. </div>
  750. </form>
  751. </div>
  752. </div>
  753. <?php endif; endif;?>
  754. </div>
  755. </div>
  756. <?php if($configReady == "Yes") : if(!$USER->authenticated && $configReady == "Yes") : ?>
  757. <div id="loginModal" class="login-modal modal fade">
  758. <div style="background:<?=$sidebar;?>;" class="table-wrapper">
  759. <div class="table-row">
  760. <div class="table-cell text-center">
  761. <button style="color:<?=$topbartext;?>;" type="button" class="close" data-dismiss="modal" aria-label="Close">
  762. <span aria-hidden="true">&times;</span>
  763. </button>
  764. <div class="login i-block">
  765. <div class="content-box">
  766. <div style="background:<?=$topbar;?>;" class="biggest-box">
  767. <h1 style="color:<?=$topbartext;?>;" class="zero-m text-uppercase"><?php echo $language->translate("WELCOME");?></h1>
  768. </div>
  769. <div class="big-box text-left login-form">
  770. <?php if($USER->error!="") : ?>
  771. <p class="error">Error: <?php echo $USER->error; ?></p>
  772. <?php endif; ?>
  773. <form name="log in" id="login" action="" method="POST">
  774. <h4 class="text-center"><?php echo $language->translate("LOGIN");?></h4>
  775. <div class="form-group">
  776. <input type="hidden" name="op" value="login">
  777. <input type="hidden" name="sha1" value="">
  778. <input type="hidden" name="password" value="">
  779. <input type="hidden" name="rememberMe" value="false"/>
  780. <input type="text" class="form-control material" name="username" placeholder="<?php echo $language->translate("USERNAME");?>" autocomplete="off" autocorrect="off" autocapitalize="off" value="" autofocus required>
  781. </div>
  782. <div class="form-group">
  783. <input type="password" class="form-control material" name="password1" value="" autocomplete="off" placeholder="<?php echo $language->translate("PASSWORD");?>" required>
  784. </div>
  785. <div class="form-group">
  786. <div class="i-block"> <input id="rememberMe" name="rememberMe" class="switcher switcher-success switcher-medium pull-left" value="true" type="checkbox" checked="">
  787. <label for="rememberMe" class="pull-left"></label>
  788. <label class="pull-right"> &nbsp; <?php echo $language->translate("REMEMBER_ME");?></label>
  789. </div>
  790. </div>
  791. <button id="loginSubmit" style="background:<?=$topbar;?>;" type="submit" class="btn btn-block btn-info text-uppercase waves" value="log in" onclick="User.processLogin()"><text style="color:<?=$topbartext;?>;"><?php echo $language->translate("LOGIN");?></text></button>
  792. </form>
  793. <?php if (ENABLEMAIL == "true") : ?>
  794. <button id="switchForgot" style="background:<?=$topbartext;?>;" class="btn btn-block btn-info text-uppercase waves"><text style="color:<?=$topbar;?>;"><?php echo $language->translate("FORGOT_PASSWORD");?></text></button>
  795. <?php endif; ?>
  796. <?php if(REGISTERPASSWORD != "") : ?>
  797. <button id="switchCreateUser" style="background:<?=$hoverbg;?>;" class="btn btn-block btn-info text-uppercase waves"><text style="color:<?=$hovertext;?>;"><?php echo $language->translate("CREATE_USER");?></text></button>
  798. <?php endif; ?>
  799. <form style="display: none;" name="forgotPassword" id="forgotPassword" action="" method="POST" data-smk-icon="glyphicon-remove-sign">
  800. <h4 class="text-center"><?php echo $language->translate("FORGOT_PASSWORD");?></h4>
  801. <div class="form-group">
  802. <input type="hidden" name="op" value="reset">
  803. <input type="text" class="form-control material" name="email" placeholder="<?php echo $language->translate("EMAIL");?>" autocorrect="off" autocapitalize="off" value="" autofocus required>
  804. </div>
  805. <button style="background:<?=$topbar;?>;" type="submit" class="btn btn-block btn-info text-uppercase waves" value="reset password"><text style="color:<?=$topbartext;?>;"><?php echo $language->translate("RESET_PASSWORD");?></text></button>
  806. </form>
  807. <button id="welcomeGoBack" style="background:<?=$topbartext;?>; display: none" class="btn btn-block btn-info text-uppercase waves"><text style="color:<?=$topbar;?>;"><?php echo $language->translate("GO_BACK");?></text></button>
  808. <?php if(REGISTERPASSWORD != "") : ?>
  809. <div id="userPassForm" style="display: none;">
  810. <form id="userCreateForm" action="register.php" method="POST">
  811. <h4 class="text-center"><?php echo $language->translate("ENTER_PASSWORD_TO_REGISTER");?></h4>
  812. <center><h5 id="userCreateErrors" style="color: red"></h5></center>
  813. <div class="form-group">
  814. <input type="text" class="form-control material" name="registerPasswordValue" placeholder="<?php echo $language->translate("PASSWORD");?>" autocorrect="off" autocapitalize="off" value="" autofocus required>
  815. </div>
  816. <button style="background:<?=$topbar;?>;" type="submit" id="checkRegisterPass" class="btn btn-block btn-info text-uppercase waves" value="reset password"><text style="color:<?=$topbartext;?>;"><?php echo $language->translate("SUBMIT");?></text></button>
  817. </form>
  818. <button id="welcomeGoBack2" style="background:<?=$topbartext;?>; display: none" class="btn btn-block btn-info text-uppercase waves"><text style="color:<?=$topbar;?>;"><?php echo $language->translate("GO_BACK");?></text></button>
  819. </div>
  820. <form style="display: none;" name="createUser" id="registration" action="" method="POST" data-smk-icon="glyphicon-remove-sign">
  821. <h4 class="text-center"><?php echo $language->translate("CREATE_USER");?></h4>
  822. <input type="hidden" name="op" value="register"/>
  823. <input type="hidden" name="sha1" value=""/>
  824. <input type="hidden" name="settings" value="false"/>
  825. <div class="form-group">
  826. <input type="text" class="form-control material" name="username" autofocus placeholder="<?php echo $language->translate("USERNAME");?>" autocorrect="off" autocapitalize="off" minlength="3" maxlength="16" required>
  827. </div>
  828. <div class="form-group">
  829. <input type="email" class="form-control material" name="email" placeholder="<?php echo $language->translate("EMAIL");?>">
  830. </div>
  831. <div class="form-group">
  832. <input type="password" class="form-control material" name="password1" placeholder="<?php echo $language->translate("PASSWORD");?>" data-smk-strongPass="weak" required>
  833. </div>
  834. <div class="form-group">
  835. <input type="password" class="form-control material" name="password2" placeholder="<?php echo $language->translate("PASSWORD_AGAIN");?>">
  836. </div>
  837. <button id="registerSubmit" type="submit" class="btn green-bg btn-block btn-warning text-uppercase waves waves-effect waves-float" value="Register"><?php echo $language->translate("REGISTER");?></button>
  838. <button id="welcomeGoBack3" style="background:<?=$topbartext;?>; display: none" class="btn btn-block btn-info text-uppercase waves"><text style="color:<?=$topbar;?>;"><?php echo $language->translate("GO_BACK");?></text></button>
  839. </form>
  840. <?php endif; ?>
  841. </div>
  842. </div>
  843. </div>
  844. </div>
  845. </div>
  846. </div>
  847. </div>
  848. <?php endif; endif; ?>
  849. <?php if($configReady == "Yes") : if($USER->authenticated) : ?>
  850. <div style="background:<?=$topbar;?>;" class="logout-modal modal fade">
  851. <div class="table-wrapper" style="background: <?=$sidebar;?>">
  852. <div class="table-row">
  853. <div class="table-cell text-center">
  854. <div class="login i-block">
  855. <div class="content-box">
  856. <div style="background:<?=$topbar;?>;" class="biggest-box">
  857. <h1 style="color:<?=$topbartext;?>;" class="zero-m text-uppercase"><?php echo $language->translate("LOGOUT");?></h1>
  858. </div>
  859. <div class="big-box login-form">
  860. <form name="log out" id="logout" action="" method="POST">
  861. <input type="hidden" name="op" value="logout">
  862. <input type="hidden" name="username"value="<?php echo $_SESSION["username"]; ?>" >
  863. <center><img src="images/sowwy.png" style="height: 200px;"></center>
  864. <h3 style="color:<?=$topbar;?>;" class="zero-m text-uppercase"><?php echo $language->translate("DO_YOU_WANT_TO_LOGOUT");?></h3>
  865. <a style="color:<?=$topbar;?>;" id="logoutSubmit" class="i-block" data-dismiss="modal"><?php echo $language->translate("YES_WORD");?></a>
  866. <a style="color:<?=$topbar;?>;" class="i-block" data-dismiss="modal"><?php echo $language->translate("NO_WORD");?></a>
  867. </form>
  868. </div>
  869. </div>
  870. </div>
  871. </div>
  872. </div>
  873. </div>
  874. </div>
  875. <?php endif; endif;?>
  876. <?php if(isset($_GET['inviteCode'])){ ?>
  877. <div id="inviteSet" class="login-modal modal fade">
  878. <div style="background:<?=$sidebar;?>;" class="table-wrapper">
  879. <div class="table-row">
  880. <div class="table-cell text-center">
  881. <button style="color:<?=$topbartext;?>;" type="button" class="close" data-dismiss="modal" aria-label="Close">
  882. <span aria-hidden="true">&times;</span>
  883. </button>
  884. <div class="login i-block">
  885. <div class="content-box">
  886. <div style="background:<?=$topbar;?>;" class="biggest-box">
  887. <h1 style="color:<?=$topbartext;?>;" class="zero-m text-uppercase"><?php echo $language->translate("WELCOME");?></h1>
  888. </div>
  889. <div class="big-box text-left login-form">
  890. <?php if($USER->error!="") : ?>
  891. <p class="error">Error: <?php echo $USER->error; ?></p>
  892. <?php endif; ?>
  893. <form name="checkInviteForm" id="checkInviteForm" onsubmit="return false;" data-smk-icon="glyphicon-remove-sign">
  894. <h4 class="text-center"><?php echo $language->translate("CHECK_INVITE");?></h4>
  895. <div class="form-group">
  896. <input style="font-size: 400%; height: 100%" type="text" class="form-control yellow-bg text-center text-uppercase" name="inviteCode" placeholder="<?php echo $language->translate("CODE");?>" autocomplete="off" autocorrect="off" autocapitalize="off" value="<?=$inviteCode;?>" maxlength="6" spellcheck="false" autofocus required>
  897. </div>
  898. <button id="checkInviteForm_submit" style="background:<?=$topbar;?>;" type="submit" class="btn btn-block btn-info text-uppercase waves" value="checkInvite"><text style="color:<?=$topbartext;?>;"><?php echo $language->translate("SUBMIT_CODE");?></text></button>
  899. </form>
  900. <div style="display: none" id="chooseMethod">
  901. <h4 class="text-center"><?php echo $language->translate("HAVE_ACCOUNT");?></h4>
  902. <button id="yesPlexButton" style="background:<?=$topbartext;?>;" class="btn btn-block btn-info text-uppercase waves"><text style="color:<?=$topbar;?>;"><?php echo $language->translate("YES");?></text></button>
  903. <button id="noPlexButton" style="background:<?=$topbartext;?>;" class="btn btn-block btn-info text-uppercase waves"><text style="color:<?=$topbar;?>;"><?php echo $language->translate("NO");?></text></button>
  904. </div>
  905. <form style="display:none" name="useInviteForm" id="useInviteForm" onsubmit="return false;" data-smk-icon="glyphicon-remove-sign">
  906. <h4 class="text-center"><?php echo $language->translate("ENTER_PLEX_NAME");?></h4>
  907. <h4 id="accountMade" style="display: none" class="text-center">
  908. <span class="label label-primary"><?php echo $language->translate("ACCOUNT_MADE");?></span>
  909. </h4>
  910. <div id="accountSubmitted" style="display: none" class="panel panel-success">
  911. <div class="panel-heading">
  912. <h3 class="panel-title"><?php echo explosion($language->translate('ACCOUNT_SUBMITTED'), 0);?></h3>
  913. </div>
  914. <div class="panel-body">
  915. <?php echo explosion($language->translate('ACCOUNT_SUBMITTED'), 1);?><br/>
  916. <?php echo explosion($language->translate('ACCOUNT_SUBMITTED'), 2);?><br/>
  917. <?php echo explosion($language->translate('ACCOUNT_SUBMITTED'), 3);?>
  918. </div>
  919. </div>
  920. <div class="form-group">
  921. <input style="font-size: 400%; height: 100%" type="hidden" class="form-control yellow-bg text-center text-uppercase" name="inviteCode" placeholder="<?php echo $language->translate("CODE");?>" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" value="<?=$inviteCode;?>" maxlength="6" required>
  922. <input type="text" class="form-control material" name="inviteUser" placeholder="<?php echo $language->translate("USERNAME_EMAIL");?>" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" value="" autofocus required>
  923. </div>
  924. <button id="useInviteForm_submit" style="background:<?=$topbar;?>;" type="submit" class="btn btn-block btn-info text-uppercase waves" value="useInvite"><text style="color:<?=$topbartext;?>;"><?php echo $language->translate("JOIN");?></text></button>
  925. <button id="plexYesGoBack" style="background:<?=$topbartext;?>;" class="btn btn-block btn-info text-uppercase waves"><text style="color:<?=$topbar;?>;"><?php echo $language->translate("GO_BACK");?></text></button>
  926. </form>
  927. <form style="display:none" name="joinPlexForm" id="joinPlexForm" onsubmit="return false;" data-smk-icon="glyphicon-remove-sign">
  928. <h4 class="text-center"><?php echo $language->translate("CREATE_PLEX");?></h4>
  929. <div class="form-group">
  930. <input type="text" class="form-control material" name="joinUser" placeholder="<?php echo $language->translate("USERNAME");?>" autocomplete="new-password" autocorrect="off" autocapitalize="off" spellcheck="false" value="" autofocus required>
  931. <input type="text" class="form-control material" name="joinEmail" placeholder="<?php echo $language->translate("EMAIL");?>" autocomplete="new-password" autocorrect="off" autocapitalize="off" spellcheck="false" value="" required>
  932. <input type="password" class="form-control material" name="joinPassword" placeholder="<?php echo $language->translate("PASSWORD");?>" autocomplete="new-password" autocorrect="off" autocapitalize="off" spellcheck="false" value="" required>
  933. </div>
  934. <button id="joinPlexForm_submit" style="background:<?=$topbar;?>;" type="submit" class="btn btn-block btn-info text-uppercase waves" value="useInvite"><text style="color:<?=$topbartext;?>;"><?php echo $language->translate("SIGN_UP");?></text></button>
  935. <button id="plexNoGoBack" style="background:<?=$topbartext;?>;" class="btn btn-block btn-info text-uppercase waves"><text style="color:<?=$topbar;?>;"><?php echo $language->translate("GO_BACK");?></text></button>
  936. </form>
  937. </div>
  938. </div>
  939. </div>
  940. </div>
  941. </div>
  942. </div>
  943. </div>
  944. <?php } ?>
  945. <?php if (file_exists('config/config.php') && $configReady == "Yes" && $tabSetup == "No" && SPLASH == "true") {?>
  946. <div id="splashScreen" class="splash-modal modal fade">
  947. <div style="background:<?=$sidebar;?>;" class="table-wrapper big-box">
  948. <button style="color:<?=$topbartext;?>;" type="button" class="close" data-dismiss="modal" aria-label="Close">
  949. <span aria-hidden="true">&times;</span>
  950. </button>
  951. <br/><br/>
  952. <div class="row">
  953. <div class="col-lg-12">
  954. <div class="row">
  955. <?php if($tabSetup == "No") : $tabCount = 1; foreach($splash as $row) : ?>
  956. <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2" id="splash-<?php echo strtolower($row['name']);?>">
  957. <li style="list-style-type: none; cursor: pointer;" window="<?=$row['window'];?>" class="splash-item content-box small-box ultra-widget gray-bg" name="<?php echo strtolower($row['name']);?>">
  958. <div class="w-content">
  959. <div class="w-icon">
  960. <center>
  961. <?php if($row['iconurl']) : ?>
  962. <i style="">
  963. <img src="<?=$row['iconurl'];?>" style="height: 100px; margin-top: -10px;" class="">
  964. </i>
  965. <?php else : ?>
  966. <i style="padding-bottom: 8px" class="fa <?=$row['icon'];?> fa-sm"></i>
  967. <?php endif; ?>
  968. </center>
  969. </div>
  970. <div class="text-center"><span class="text-uppercase w-name elip"><?=$row['name'];?></span></div>
  971. </div>
  972. </li>
  973. </div>
  974. <?php $tabCount++; endforeach; endif;?>
  975. </div>
  976. <?php if( $USER->authenticated && $USER->role == "admin" ){ ?>
  977. <div class="row">
  978. <div class="col-lg-12">
  979. <li style="list-style-type: none; cursor: pointer;" class="splash-item content-box small-box ultra-widget gray-bg" data-title="" name="settings">
  980. <div class="w-content">
  981. <div class="w-icon">
  982. <center>
  983. <i style="">
  984. <img src="images/settings.png" style="height: 100px; margin-top: -10px;" class="">
  985. </i>
  986. </center>
  987. </div>
  988. <div class="text-center"><span class="text-uppercase w-name elip">Settings</span></div>
  989. </div>
  990. </li>
  991. </div>
  992. </div>
  993. <?php } ?>
  994. </div>
  995. </div>
  996. </div>
  997. </div>
  998. <?php } ?>
  999. <!-- CHAT BOX -->
  1000. <?php if(CHAT == "true" && qualifyUser(CHATAUTH)){?>
  1001. <div class="email-content chat-box white-bg">
  1002. <div class="email-body">
  1003. <div class="email-inner small-box" style="padding: 0">
  1004. <div class="email-inner-section" style="margin-top: 0;">
  1005. <div class="small-box fade in" style="padding: 0">
  1006. <?php if( $dbcreated ){ ?>
  1007. <div class="main-wrapper" style="position: initial; left:0;">
  1008. <div id="content">
  1009. <div id="chat-div" class="">
  1010. <div class="big-box chat gray-bg">
  1011. <div class="box" style="overflow: hidden; width: auto; height: calc(100vh - <?php echo $chatSize; ?>) !important;">
  1012. <div id="intro">
  1013. <center><img class="logo" alt="logo" src="images/organizr-logo-h.png" style="width: 100%;">
  1014. <br><br>start chatting...</center>
  1015. </div>
  1016. <ul id="messages" class="chat-double chat-container"></ul>
  1017. <ul class="chat-double chat-container" style="padding: 0px;"><li id="istyping"></li></ul>
  1018. </div>
  1019. <br/>
  1020. <input id="message" autofocus type="text" class="form-control gray-bg" placeholder="Enter your text" autocomplete="off"/>
  1021. <audio id="tabalert" preload="auto">
  1022. <source src="chat/audio/newmessage.mp3" type="audio/mpeg">
  1023. </audio>
  1024. </div>
  1025. </div>
  1026. <div id="chat-users-div" class="col-lg-12" style="display: none">
  1027. <div class="content-box">
  1028. <div class="content-title big-box i-block gray-bg">
  1029. <h4 class="zero-m">Online</h4>
  1030. </div>
  1031. <div class="clearfix"></div>
  1032. <div id="onlineusers" class="big-box"></div>
  1033. </div>
  1034. </div>
  1035. <?php } ?>
  1036. </div>
  1037. </div>
  1038. </div>
  1039. </div>
  1040. </div>
  1041. <?php } ?>
  1042. <script>
  1043. var d = new Date();
  1044. var timezone = d.getTimezoneOffset();
  1045. console.log(timezone)
  1046. </script>
  1047. <!--Scripts-->
  1048. <script src="<?=$baseURL;?>bower_components/jquery/dist/jquery.min.js"></script>
  1049. <script src="<?=$baseURL;?>bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
  1050. <script src="<?=$baseURL;?>bower_components/metisMenu/dist/metisMenu.min.js"></script>
  1051. <script src="<?=$baseURL;?>bower_components/Waves/dist/waves.min.js"></script>
  1052. <script src="<?=$baseURL;?>bower_components/moment/min/moment.min.js"></script>
  1053. <script src="<?=$baseURL;?>bower_components/jquery.nicescroll/jquery.nicescroll.min.js"></script>
  1054. <script src="<?=$baseURL;?>bower_components/slimScroll/jquery.slimscroll.min.js"></script>
  1055. <script src="<?=$baseURL;?>bower_components/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.js"></script>
  1056. <script src="<?=$baseURL;?>bower_components/cta/dist/cta.min.js"></script>
  1057. <!--Menu-->
  1058. <script src="<?=$baseURL;?>js/menu/classie.js"></script>
  1059. <script src="<?=$baseURL;?>js/menu/gnmenu.js"></script>
  1060. <!--Selects-->
  1061. <script src="<?=$baseURL;?>js/selects/selectFx.js"></script>
  1062. <script src="<?=$baseURL;?>bower_components/sweetalert/dist/sweetalert.min.js"></script>
  1063. <script src="<?=$baseURL;?>bower_components/smoke/dist/js/smoke.min.js"></script>
  1064. <!--Notification-->
  1065. <script src="<?=$baseURL;?>js/notifications/notificationFx.js?v=<?php echo INSTALLEDVERSION; ?>"></script>
  1066. <!--Custom Scripts-->
  1067. <script src="<?=$baseURL;?>js/common.js?v=<?php echo INSTALLEDVERSION; ?>"></script>
  1068. <script src="<?=$baseURL;?>js/mousetrap.min.js"></script>
  1069. <script src="js/jquery.mousewheel.min.js" type="text/javascript"></script>
  1070. <?php if(CHAT == "true" && qualifyUser(CHATAUTH)){?><script src="chatjs.php" defer="true"></script><?php }?>
  1071. <script>
  1072. //Tooltips
  1073. $('[data-toggle="tooltip"]').tooltip();
  1074. $(".box").niceScroll({
  1075. railpadding: {top:0,right:0,left:0,bottom:0},
  1076. scrollspeed: 30,
  1077. mousescrollstep: 60
  1078. });
  1079. $("#onlineusers").niceScroll({
  1080. railpadding: {top:0,right:0,left:0,bottom:0},
  1081. scrollspeed: 30,
  1082. mousescrollstep: 60
  1083. });
  1084. <?php if (file_exists('config/config.php') && $configReady == "Yes" && $tabSetup == "No" && SPLASH == "true") {?>
  1085. $('.splash-modal').modal("show");
  1086. <?php } ?>
  1087. var fixed = document.getElementById('gn-scroller');
  1088. fixed.addEventListener('touchmove', function(e) {
  1089. e.preventDefault();
  1090. }, false);
  1091. function setHeight() {
  1092. windowHeight = $(window).innerHeight();
  1093. $("div").find(".iframe").css('height', windowHeight - <?=$slimBar;?> + "px");
  1094. $('#content').css('height', windowHeight - <?=$slimBar;?> + "px");
  1095. };
  1096. function notify(notifyString, notifyIcon, notifyType, notifyLength, notifyLayout, notifyEffect) {
  1097. var notifyString = notifyString;
  1098. var notifyIcon = notifyIcon;
  1099. var notifyType = notifyType;
  1100. var notifyLength = notifyLength;
  1101. var notifyLayout = notifyLayout;
  1102. var notifyEffect = notifyEffect;
  1103. if (notifyEffect === "slidetop"){
  1104. var addMeesage = '<span class="fa fa-' + notifyIcon + ' fa-2x"></span>' + '<p>' + notifyString + '</p>';
  1105. }else if (notifyEffect === "exploader"){
  1106. var addMeesage = '<span class="fa fa-' + notifyIcon + ' fa-2x pull-left"></span>' + '<p>' + notifyString + '</p>';
  1107. }else if (notifyEffect === "thumbslider"){
  1108. var addMeesage = '<div class="ns-thumb"><img src="images/alert.png"/></div><div class="ns-content"><p>' + notifyString + '</p></div>';
  1109. }else{
  1110. var addMeesage = '<p>' + notifyString + '</p>';
  1111. }
  1112. setTimeout(function () {
  1113. var notification = new NotificationFx({
  1114. message: addMeesage,
  1115. layout: notifyLayout,
  1116. effect: notifyEffect,
  1117. ttl: notifyLength,
  1118. type: notifyType,
  1119. onClose: function () {
  1120. $(".ns-box").fadeOut(400);
  1121. }
  1122. });
  1123. notification.show();
  1124. }, 500);
  1125. }
  1126. $('#registerSubmit').click(function() {
  1127. if ($('#registration').smkValidate()) {
  1128. console.log("validated");
  1129. }
  1130. User.processRegistration();
  1131. });
  1132. $("#editInfo").click(function(){
  1133. $( "div[id^='editInfoDiv']" ).toggle();
  1134. $( "div[id^='buttonsDiv']" ).toggle();
  1135. });
  1136. $("#goBackButtons").click(function(){
  1137. $( "div[id^='editInfoDiv']" ).toggle();
  1138. $( "div[id^='buttonsDiv']" ).toggle();
  1139. });
  1140. $("#welcomeGoBack").click(function(){
  1141. $( "form[id^='login']" ).toggle();
  1142. $( "form[id^='forgotPassword']" ).toggle();
  1143. $("#switchForgot").toggle();
  1144. $("#switchCreateUser").toggle();
  1145. $("#welcomeGoBack").toggle();
  1146. });
  1147. $("#plexNoGoBack").click(function(){
  1148. $("#joinPlexForm").toggle();
  1149. $("#chooseMethod").toggle();
  1150. });
  1151. $("#plexYesGoBack").click(function(){
  1152. $("#useInviteForm").toggle();
  1153. $("#chooseMethod").toggle();
  1154. });
  1155. $("#welcomeGoBack2").click(function(){
  1156. $( "form[id^='login']" ).toggle();
  1157. $("#userPassForm").toggle();
  1158. $("#switchForgot").toggle();
  1159. $("#switchCreateUser").toggle();
  1160. $("#welcomeGoBack2").toggle();
  1161. });
  1162. $("#welcomeGoBack3").click(function(){
  1163. $("#registration").toggle();
  1164. $("#welcomeGoBack3").toggle();
  1165. $( "form[id^='login']" ).toggle();
  1166. $("#switchForgot").toggle();
  1167. $("#switchCreateUser").toggle();
  1168. });
  1169. $("#switchForgot").click(function(){
  1170. $( "form[id^='login']" ).toggle();
  1171. $( "form[id^='forgotPassword']" ).toggle();
  1172. $("#switchForgot").toggle();
  1173. $("#switchCreateUser").toggle();
  1174. $("#welcomeGoBack").toggle();
  1175. });
  1176. $("#switchCreateUser").click(function(){
  1177. $( "form[id^='login']" ).toggle();
  1178. $("#userPassForm").toggle();
  1179. $("#switchForgot").toggle();
  1180. $("#switchCreateUser").toggle();
  1181. $("#welcomeGoBack2").toggle();
  1182. });
  1183. //Sign in
  1184. $(".log-in").click(function(e){
  1185. var e1 = document.querySelector(".log-in"),
  1186. e2 = document.querySelector(".login-modal");
  1187. cta(e1, e2, {relativeToWindow: true}, function () {
  1188. $('.login-modal').modal("show");
  1189. });
  1190. e.preventDefault();
  1191. });
  1192. //InviteCode
  1193. <?php if(isset($_GET['inviteCode'])){ ?>
  1194. $('#inviteSet').modal("show");
  1195. <?php } ?>
  1196. //Logout
  1197. $(".logout").click(function(e){
  1198. var el1 = document.querySelector(".logout"),
  1199. el2 = document.querySelector(".logout-modal");
  1200. cta(el1, el2, {relativeToWindow: true}, function () {
  1201. $('.logout-modal').modal("show");
  1202. });
  1203. e.preventDefault();
  1204. });
  1205. //Members Sidebar
  1206. $(".show-members").click(function(e){
  1207. var e_s1 = document.querySelector(".show-members"),
  1208. e_s2 = document.querySelector("#members-sidebar");
  1209. cta(e_s1, e_s2, {relativeToWindow: true}, function () {
  1210. $ ('#members-sidebar').addClass('members-sidebar-open');
  1211. });
  1212. e.preventDefault();
  1213. });
  1214. $('.close-members-sidebar').click(function(){
  1215. $('#members-sidebar').removeClass('members-sidebar-open');
  1216. });
  1217. $(document).ready(function(){
  1218. <?php
  1219. if($configReady == "Yes"){
  1220. $pingCount = 1; if($USER->authenticated && $USER->role == "admin"){ $pingTimer = "60000"; }else{ $pingTimer = "600000"; }
  1221. foreach($allPings as $type => $ping){
  1222. $name = str_replace(array(':', '\\', '/', '*'), 'x', $ping);
  1223. if(strpos($type, 'image') !== false){ $style = "margin-top:28px"; }else{ $style = ""; }?>
  1224. var pingTab<?php echo $pingCount;?> = function() {
  1225. $("ping[id^='ping-<?php echo $name;?>']").load("ajax.php?a=get-ping&url=<?php echo $ping;?>&style=<?php echo $style;?>");
  1226. };
  1227. // Initial Loads
  1228. pingTab<?php echo $pingCount;?>();
  1229. // Interval Loads
  1230. setInterval(function() {
  1231. pingTab<?php echo $pingCount;?>();
  1232. console.log("ping check for tab[<?php echo $pingCount;?>] complete");
  1233. }, <?php echo $pingTimer; ?>);
  1234. <?php $pingCount++; }
  1235. }?>
  1236. //PLEX INVITE SHIT
  1237. $('#checkInviteForm').on('submit', function () {
  1238. ajax_request('POST', 'validate-invite', {
  1239. invitecode: $('#checkInviteForm [name=inviteCode]').val(),
  1240. }).done(function(data){
  1241. var result = JSON.stringify(data).includes("success");
  1242. if(result === true){
  1243. $('#checkInviteForm').hide();
  1244. $('#chooseMethod').show();
  1245. console.log(result);
  1246. }
  1247. });
  1248. });
  1249. $('#useInviteForm').on('submit', function () {
  1250. ajax_request('POST', 'use-invite', {
  1251. invitecode: $('#useInviteForm [name=inviteCode]').val(),
  1252. inviteuser: $('#useInviteForm [name=inviteUser]').val(),
  1253. }).done(function(data){
  1254. var result = JSON.stringify(data).includes("success");
  1255. console.log(result);
  1256. if(result === true){
  1257. //$('#checkInviteForm').hide();
  1258. //$('#chooseMethod').show();
  1259. $('#accountSubmitted').show();
  1260. console.log(result);
  1261. }
  1262. });
  1263. });
  1264. $('#joinPlexForm').on('submit', function () {
  1265. ajax_request('POST', 'join-plex', {
  1266. joinuser: $('#joinPlexForm [name=joinUser]').val(),
  1267. joinemail: $('#joinPlexForm [name=joinEmail]').val(),
  1268. joinpassword: $('#joinPlexForm [name=joinPassword]').val(),
  1269. }).done(function(data){
  1270. var result = JSON.stringify(data).includes("success");
  1271. if(result === true){
  1272. $('#joinPlexForm').hide();
  1273. $('#useInviteForm').show();
  1274. $('#accountMade').show();
  1275. $('input[name=inviteUser]').val($('input[name=joinUser]').val());
  1276. console.log(result);
  1277. }
  1278. });
  1279. });
  1280. $("#yesPlexButton").click(function(){
  1281. $('#chooseMethod').hide();
  1282. $('#useInviteForm').show();
  1283. });
  1284. $("#noPlexButton").click(function(){
  1285. $('#chooseMethod').hide();
  1286. $('#joinPlexForm').show();
  1287. });
  1288. $('#userCreateForm').submit(function(event) {
  1289. var formData = {
  1290. 'registerPasswordValue' : $('input[name=registerPasswordValue]').val()
  1291. };
  1292. $.ajax({
  1293. type : 'POST',
  1294. url : 'register.php',
  1295. data : formData,
  1296. dataType : 'json',
  1297. encode : true
  1298. })
  1299. .done(function(data) {
  1300. console.log(data);
  1301. if ( ! data.success) {
  1302. $('#userCreateErrors').html('Wrong Password!'); // add the actual error message under our input
  1303. } else {
  1304. $("#userPassForm").toggle();
  1305. $("#registration").toggle();
  1306. $("#welcomeGoBack3").toggle();
  1307. }
  1308. });
  1309. event.preventDefault();
  1310. });
  1311. defaultTab = $("li[class^='tab-item active']").attr("id");
  1312. $("li[class^='tab-item active']").first().find("img").addClass("TabOpened");
  1313. if (defaultTab){
  1314. defaultTab = defaultTab.substr(0, defaultTab.length-1);
  1315. console.log(defaultTab);
  1316. }else{
  1317. defaultTabNone = $("li[class^='tab-item']").attr("id");
  1318. if (defaultTabNone){
  1319. $("li[class^='tab-item']").first().attr("class", "tab-item active");
  1320. $("li[class^='tab-item']").first().find("img").addClass("TabOpened");
  1321. defaultTab = defaultTabNone.substr(0, defaultTabNone.length-1);
  1322. }
  1323. }
  1324. if (defaultTab){
  1325. defaultTabName = $("li[class^='tab-item active']").attr("name");
  1326. $("#content").html('<div class="iframe active" data-content-name="'+defaultTabName+'" data-content-url="'+defaultTab+'"><iframe id="frame-'+defaultTabName+'" scrolling="auto" sandbox="allow-presentation allow-forms allow-same-origin allow-pointer-lock allow-scripts allow-popups allow-modals allow-top-navigation" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" frameborder="0" style="width:100%; height:100%; position: absolute;" src="'+defaultTab+'"></iframe></div>');
  1327. document.getElementById('main-wrapper').focus();
  1328. }
  1329. if (defaultTab == null){
  1330. $("div[id^='tabEmpty']").show();
  1331. <?php
  1332. echo "console.log('Need Setup = $needSetup | Config Ready = $configReady');";
  1333. if($needSetup == "No" && $configReady == "Yes"){
  1334. if(!$USER->authenticated){
  1335. echo "$('#loginModal').modal('show');";
  1336. }
  1337. }
  1338. ?>
  1339. }
  1340. if ($(location).attr('hash')){
  1341. var getHash = $(location).attr('hash').substr(1).replace("%20", " ").replace("_", " ");
  1342. var gotHash = getHash.toLowerCase();
  1343. var getLiTab = $("li[name^='" + gotHash + "']");
  1344. if(gotHash === "upgrade"){ getLiTab.toggle(); console.log("got it"); }
  1345. getLiTab.trigger("click");
  1346. }
  1347. setHeight();
  1348. });
  1349. <?php if(!empty($USER->info_log)) : ?>
  1350. notify("<?php echo printArray($USER->info_log); ?>","info-circle","notice","5000", "<?=$notifyExplode[0];?>", "<?=$notifyExplode[1];?>");
  1351. <?php endif; ?>
  1352. <?php if(!empty($USER->error_log)) : ?>
  1353. notify("<?php echo printArray($USER->error_log); ?>","exclamation-circle ","error","5000", "<?=$notifyExplode[0];?>", "<?=$notifyExplode[1];?>");
  1354. <?php endif; ?>
  1355. $("li[class^='tab-item']").dblclick(function(){
  1356. var thisidfull = $(this).attr("id");
  1357. var thisid = thisidfull.substr(0, thisidfull.length-1);
  1358. var thisframe = $("#content div[data-content-url^='"+thisid+"']").children('iframe');
  1359. $(thisframe).attr('src', $(thisframe).attr('src'));
  1360. var refreshBox = $('#content').find('.active');
  1361. $("<div class='refresh-preloader'><div class='la-timer la-dark'><div></div></div></div>").appendTo(refreshBox).fadeIn(10);
  1362. setTimeout(function(){
  1363. var refreshPreloader = refreshBox.find('.refresh-preloader'),
  1364. deletedRefreshBox = refreshPreloader.fadeOut(300, function(){
  1365. refreshPreloader.remove();
  1366. $("i[class^='mdi mdi-refresh fa-spin']").attr("class", "mdi mdi-refresh");
  1367. });
  1368. },800);
  1369. });
  1370. $('#reload').on('click tap', function(){
  1371. $("i[class^='mdi mdi-refresh']").attr("class", "mdi mdi-refresh fa-spin");
  1372. var activeFrame = $('#content').find('.active').children('iframe');
  1373. activeFrame.attr('src', activeFrame.attr('src'));
  1374. var refreshBox = $('#content').find('.active');
  1375. $("<div class='refresh-preloader'><div class='la-timer la-dark'><div></div></div></div>").appendTo(refreshBox).fadeIn(10);
  1376. setTimeout(function(){
  1377. var refreshPreloader = refreshBox.find('.refresh-preloader'),
  1378. deletedRefreshBox = refreshPreloader.fadeOut(300, function(){
  1379. refreshPreloader.remove();
  1380. $("i[class^='mdi mdi-refresh fa-spin']").attr("class", "mdi mdi-refresh");
  1381. });
  1382. },500);
  1383. });
  1384. $('#popout').on('click tap', function(){
  1385. var activeFrame = $('#content').find('.active').children('iframe');
  1386. console.log(activeFrame.attr('src'));
  1387. window.open(activeFrame.attr('src'), '_blank');
  1388. });
  1389. $('#chat-open').on('click tap', function(){
  1390. $('.chat-box').toggleClass('email-active');
  1391. $(".mdi-forum").removeClass("tada loop-animation new-message");//SET MESSAGE TO ZERO
  1392. $("#message").focus();
  1393. });
  1394. $('#reload').on('contextmenu', function(e){
  1395. $("i[class^='mdi mdi-refresh']").attr("class", "mdi mdi-refresh fa-spin");
  1396. var activeFrame = $('#contentRight').find('.active').children('iframe');
  1397. activeFrame.attr('src', activeFrame.attr('src'));
  1398. var refreshBox = $('#contentRight').find('.active');
  1399. $("<div class='refresh-preloader'><div class='la-timer la-dark'><div></div></div></div>").appendTo(refreshBox).fadeIn(10);
  1400. setTimeout(function(){
  1401. var refreshPreloader = refreshBox.find('.refresh-preloader'),
  1402. deletedRefreshBox = refreshPreloader.fadeOut(300, function(){
  1403. refreshPreloader.remove();
  1404. $("i[class^='mdi mdi-refresh fa-spin']").attr("class", "mdi mdi-refresh");
  1405. });
  1406. },500);
  1407. return false;
  1408. });
  1409. $('#splitView').on('contextmenu', function(e){
  1410. e.stopPropagation();
  1411. //$('#splitView').hide();
  1412. $("#content").attr("class", "content");
  1413. $("li[class^='tab-item rightActive']").attr("class", "tab-item");
  1414. $("#contentRight").html('');
  1415. return false;
  1416. });
  1417. $('#splitView').on('click tap', function(){
  1418. var activeFrame = $('#content').find('.active');
  1419. var getCurrentTab = $("li[class^='tab-item active']");
  1420. getCurrentTab.removeClass('active');
  1421. getCurrentTab.find('img').removeClass('TabOpened');
  1422. $("img[class^='TabOpened']").parents("li").trigger("click");
  1423. activeFrame.remove();
  1424. });
  1425. <?php if($iconRotate == "true") : ?>
  1426. $("li[id^='settings.phpx']").on('click tap', function(){
  1427. $("img[id^='settings-icon']").addClass("fa-spin");
  1428. $("i[id^='settings-icon']").addClass("fa-spin");
  1429. setTimeout(function(){
  1430. $("img[id^='settings-icon']").removeClass("fa-spin");
  1431. $("i[id^='settings-icon']").removeClass("fa-spin");
  1432. },1000);
  1433. });
  1434. <?php endif; ?>
  1435. $('#logoutSubmit').on('click tap', function(){
  1436. $( "#logout" ).submit();
  1437. });
  1438. $(window).resize(function(){
  1439. setHeight();
  1440. });
  1441. $("li[class^='splash-item']").on('click vclick', function(){
  1442. var thisname = $(this).attr("name");
  1443. var splashTab = $("#tabList li[name^='" + thisname + "']");
  1444. splashTab.trigger("click");
  1445. $('.splash-modal').modal("hide");
  1446. });
  1447. $("li[class^='tab-item']").on('click vclick', function(){
  1448. var thisidfull = $(this).attr("id");
  1449. var thistitle = $(this).attr("data-title");
  1450. var thisname = $(this).attr("name");
  1451. var thisid = thisidfull.substr(0, thisidfull.length-1);
  1452. var currentframe = $("#content div[data-content-url^='"+thisid+"']");
  1453. if (currentframe.attr("class") == "iframe active") {
  1454. console.log(thisid + " is active already");
  1455. setHeight();
  1456. }else if (currentframe.attr("class") == "iframe hidden") {
  1457. console.log(thisid + " is active already but hidden");
  1458. $("#content div[class^='iframe active']").attr("class", "iframe hidden");
  1459. currentframe.attr("class", "iframe active");
  1460. document.title = thistitle;
  1461. //window.location.href = '#' + thisname;
  1462. setHeight();
  1463. $("li[class^='tab-item active']").attr("class", "tab-item");
  1464. $(this).attr("class", "tab-item active");
  1465. }else {
  1466. if ($(this).attr("window") == "true") {
  1467. window.open(thisid,'_blank');
  1468. }else {
  1469. console.log(thisid + " make new div");
  1470. $("#content div[class^='iframe active']").attr("class", "iframe hidden");
  1471. $( '<div class="iframe active" data-content-name="'+thisname+'" data-content-url="'+thisid+'"><iframe id="frame-'+thisname+'" scrolling="auto" sandbox="allow-presentation allow-forms allow-same-origin allow-pointer-lock allow-scripts allow-popups allow-modals allow-top-navigation" allowfullscreen="true" webkitallowfullscreen="true" frameborder="0" style="width:100%; height:100%; position: absolute;" src="'+thisid+'"></iframe></div>' ).appendTo( "#content" );
  1472. document.title = thistitle;
  1473. // window.location.href = '#' + thisname;
  1474. setHeight();
  1475. $("li[class^='tab-item active']").attr("class", "tab-item");
  1476. $(this).attr("class", "tab-item active");
  1477. jQuery(this).find("img").addClass("TabOpened");
  1478. }
  1479. }
  1480. });
  1481. $("li[class^='tab-item']").on('contextmenu', function(e){
  1482. e.stopPropagation();
  1483. $('#splitView').show();
  1484. $("#content").attr("class", "content split");
  1485. var thisidfull = $(this).attr("id");
  1486. var thistitle = $(this).attr("data-title");
  1487. var thisname = $(this).attr("name");
  1488. var thisid = thisidfull.substr(0, thisidfull.length-1);
  1489. var currentframe = $("#contentRight div[data-content-url^='"+thisid+"']");
  1490. if (currentframe.attr("class") == "iframe active") {
  1491. console.log(thisid + " is active already");
  1492. }else if (currentframe.attr("class") == "iframe hidden") {
  1493. console.log(thisid + " is active already but hidden");
  1494. $("#contentRight div[class^='iframe active']").attr("class", "iframe hidden");
  1495. currentframe.attr("class", "iframe active");
  1496. document.title = thistitle;
  1497. window.location.href = '#' + thisname;
  1498. setHeight();
  1499. $("li[class^='tab-item rightActive']").attr("class", "tab-item");
  1500. $(this).attr("class", "tab-item rightActive");
  1501. }else {
  1502. if ($(this).attr("window") == "true") {
  1503. window.open(thisid,'_blank');
  1504. }else {
  1505. console.log(thisid + " make new div");
  1506. $("#contentRight div[class^='iframe active']").attr("class", "iframe hidden");
  1507. $( '<div class="iframe active" data-content-name="'+thisname+'" data-content-url="'+thisid+'"><iframe id="frameRight-'+thisname+'" scrolling="auto" sandbox="allow-presentation allow-forms allow-same-origin allow-pointer-lock allow-scripts allow-popups allow-modals allow-top-navigation" allowfullscreen="true" webkitallowfullscreen="true" frameborder="0" style="width:100%; height:100%; position: absolute;" src="'+thisid+'"></iframe></div>' ).appendTo( "#contentRight" );
  1508. document.title = thistitle;
  1509. window.location.href = '#' + thisname;
  1510. setHeight();
  1511. $("li[class^='tab-item rightActive']").attr("class", "tab-item");
  1512. $(this).attr("class", "tab-item rightActive");
  1513. jQuery(this).find("img").addClass("TabOpened");
  1514. }
  1515. }
  1516. return false;
  1517. });
  1518. Mousetrap.bind('ctrl+shift+up', function(e) {
  1519. var getCurrentTab = $("li[class^='tab-item active']");
  1520. var previousTab = getCurrentTab.prev().attr( "class", "tab-item" );
  1521. previousTab.trigger("click");
  1522. return false;
  1523. });
  1524. Mousetrap.bind('ctrl+shift+down', function(e) {
  1525. var getCurrentTab = $("li[class^='tab-item active']");
  1526. var nextTab = getCurrentTab.next().attr( "class", "tab-item" );
  1527. nextTab.trigger("click");
  1528. return false;
  1529. });
  1530. Mousetrap.bind('s s', function() { $("li[id^='settings.phpx']").trigger("click"); });
  1531. Mousetrap.bind('p p', function() { $("a[class^='fix-nav']").trigger("click"); });
  1532. Mousetrap.bind('m m', function() { $("div[class^='hamburger']").trigger("click"); });
  1533. Mousetrap.bind('r r', function() { $("a[id^='reload']").trigger("click"); });
  1534. Mousetrap.bind('f f', function() { $("a[class^='fullscreen']").trigger("click"); });
  1535. <?php if($tabSetup == "No") : foreach(range(1,$tabCount) as $index) : if ($index == 10) : break; endif;?>
  1536. Mousetrap.bind('ctrl+shift+<?php echo $index; ?>', function() { $("ul[id^='tabList'] li:nth-child(<?php echo $index; ?>)").trigger("click"); });
  1537. <?php endforeach; endif; ?>
  1538. Mousetrap.bind('esc esc', function() {
  1539. $("#content").attr("class", "content");
  1540. $("li[class^='tab-item rightActive']").attr("class", "tab-item");
  1541. $("#contentRight").html('');
  1542. });
  1543. var ref = document.referrer;
  1544. if(ref.indexOf("updated")>=0){
  1545. notify("<?php echo $language->translate('UPDATE_COMPLETE');?>","exclamation-circle ","success","5000", "<?=$notifyExplode[0];?>", "<?=$notifyExplode[1];?>");
  1546. }
  1547. if(ref.indexOf("submit")>=0){
  1548. notify("<?php echo $language->translate('CUSTOM_COMPLETE');?>","exclamation-circle ","success","5000", "<?=$notifyExplode[0];?>", "<?=$notifyExplode[1];?>");
  1549. }
  1550. </script>
  1551. </body>
  1552. </html>