settings.php 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326
  1. <?php
  2. date_default_timezone_set('America/Los_Angeles');
  3. $data = false;
  4. ini_set("display_errors", 1);
  5. ini_set("error_reporting", E_ALL | E_STRICT);
  6. function registration_callback($username, $email, $userdir)
  7. {
  8. global $data;
  9. $data = array($username, $email, $userdir);
  10. }
  11. require_once("user.php");
  12. $USER = new User("registration_callback");
  13. if(!$USER->authenticated) :
  14. die("Why you trying to access this without logging in?!?!");
  15. elseif($USER->authenticated && $USER->role !== "admin") :
  16. die("C'mon man! I give you access to my stuff and now you're trying to get in the back door?");
  17. endif;
  18. $dbfile = constant('User::DATABASE_LOCATION') . constant('User::DATABASE_NAME') . ".db";
  19. $userdirpath = constant('User::USER_HOME');
  20. $userdirpath = substr_replace($userdirpath, "", -1);
  21. $file_db = new PDO("sqlite:" . $dbfile);
  22. $file_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  23. $getUsers = $file_db->query('SELECT * FROM users');
  24. $dbTab = $file_db->query('SELECT name FROM sqlite_master WHERE type="table" AND name="tabs"');
  25. $dbOptions = $file_db->query('SELECT name FROM sqlite_master WHERE type="table" AND name="options"');
  26. $tabSetup = "Yes";
  27. $hasOptions = "No";
  28. foreach($dbTab as $row) :
  29. if (in_array("tabs", $row)) :
  30. $tabSetup = "No";
  31. endif;
  32. endforeach;
  33. foreach($dbOptions as $row) :
  34. if (in_array("options", $row)) :
  35. $hasOptions = "Yes";
  36. endif;
  37. endforeach;
  38. if($hasOptions == "No") :
  39. $title = "Organizr";
  40. $topbar = "#eb6363";
  41. $topbartext = "#FFFFFF";
  42. $bottombar = "#eb6363";
  43. $sidebar = "#000000";
  44. $hoverbg = "#eb6363";
  45. $activetabBG = "#eb6363";
  46. $activetabicon = "#FFFFFF";
  47. $activetabtext = "#FFFFFF";
  48. $inactiveicon = "#FFFFFF";
  49. $inactivetext = "#FFFFFF";
  50. endif;
  51. if($tabSetup == "No") :
  52. $result = $file_db->query('SELECT * FROM tabs');
  53. endif;
  54. if($hasOptions == "Yes") :
  55. $resulto = $file_db->query('SELECT * FROM options');
  56. endif;
  57. if($hasOptions == "Yes") :
  58. foreach($resulto as $row) :
  59. $title = $row['title'];
  60. $topbartext = $row['topbartext'];
  61. $topbar = $row['topbar'];
  62. $bottombar = $row['bottombar'];
  63. $sidebar = $row['sidebar'];
  64. $hoverbg = $row['hoverbg'];
  65. $activetabBG = $row['activetabBG'];
  66. $activetabicon = $row['activetabicon'];
  67. $activetabtext = $row['activetabtext'];
  68. $inactiveicon = $row['inactiveicon'];
  69. $inactivetext = $row['inactivetext'];
  70. endforeach;
  71. endif;
  72. $action = "";
  73. if(isset($_POST['action'])) :
  74. $action = $_POST['action'];
  75. endif;
  76. if(!isset($_POST['op'])) :
  77. $_POST['op'] = "";
  78. endif;
  79. if($action == "addTabz") :
  80. if($tabSetup == "No") :
  81. $file_db->exec("DELETE FROM tabs");
  82. endif;
  83. if($tabSetup == "Yes") :
  84. $file_db->exec("CREATE TABLE tabs (name TEXT UNIQUE, url TEXT, defaultz TEXT, active TEXT, user TEXT, guest TEXT, icon TEXT, iconurl TEXT, window TEXT)");
  85. endif;
  86. $addTabName = array();
  87. $addTabUrl = array();
  88. $addTabIcon = array();
  89. $addTabIconUrl = array();
  90. $addTabDefault = array();
  91. $addTabActive = array();
  92. $addTabUser = array();
  93. $addTabGuest = array();
  94. $addTabWindow = array();
  95. $buildArray = array();
  96. foreach ($_POST as $key => $value) :
  97. $trueKey = explode('-', $key);
  98. if ($value == "on") :
  99. $value = "true";
  100. endif;
  101. if($trueKey[0] == "name"):
  102. array_push($addTabName, $value);
  103. endif;
  104. if($trueKey[0] == "url"):
  105. array_push($addTabUrl, $value);
  106. endif;
  107. if($trueKey[0] == "icon"):
  108. array_push($addTabIcon, $value);
  109. endif;
  110. if($trueKey[0] == "iconurl"):
  111. array_push($addTabIconUrl, $value);
  112. endif;
  113. if($trueKey[0] == "default"):
  114. array_push($addTabDefault, $value);
  115. endif;
  116. if($trueKey[0] == "active"):
  117. array_push($addTabActive, $value);
  118. endif;
  119. if($trueKey[0] == "user"):
  120. array_push($addTabUser, $value);
  121. endif;
  122. if($trueKey[0] == "guest"):
  123. array_push($addTabGuest, $value);
  124. endif;
  125. if($trueKey[0] == "window"):
  126. array_push($addTabWindow, $value);
  127. endif;
  128. endforeach;
  129. $tabArray = 0;
  130. if(count($addTabName) > 0) :
  131. foreach(range(1,count($addTabName)) as $index) :
  132. if(!isset($addTabDefault[$tabArray])) :
  133. $tabDefault = "false";
  134. else :
  135. $tabDefault = $addTabDefault[$tabArray];
  136. endif;
  137. $buildArray[] = array('name' => $addTabName[$tabArray],
  138. 'url' => $addTabUrl[$tabArray],
  139. 'defaultz' => $tabDefault,
  140. 'active' => $addTabActive[$tabArray],
  141. 'user' => $addTabUser[$tabArray],
  142. 'guest' => $addTabGuest[$tabArray],
  143. 'icon' => $addTabIcon[$tabArray],
  144. 'window' => $addTabWindow[$tabArray],
  145. 'iconurl' => $addTabIconUrl[$tabArray]);
  146. $tabArray++;
  147. endforeach;
  148. endif;
  149. $insert = "INSERT INTO tabs (name, url, defaultz, active, user, guest, icon, iconurl, window)
  150. VALUES (:name, :url, :defaultz, :active, :user, :guest, :icon, :iconurl, :window)";
  151. $stmt = $file_db->prepare($insert);
  152. $stmt->bindParam(':name', $name);
  153. $stmt->bindParam(':url', $url);
  154. $stmt->bindParam(':defaultz', $defaultz);
  155. $stmt->bindParam(':active', $active);
  156. $stmt->bindParam(':user', $user);
  157. $stmt->bindParam(':guest', $guest);
  158. $stmt->bindParam(':icon', $icon);
  159. $stmt->bindParam(':iconurl', $iconurl);
  160. $stmt->bindParam(':window', $window);
  161. foreach ($buildArray as $t) :
  162. $name = $t['name'];
  163. $url = $t['url'];
  164. $defaultz = $t['defaultz'];
  165. $active = $t['active'];
  166. $user = $t['user'];
  167. $guest = $t['guest'];
  168. $icon = $t['icon'];
  169. $iconurl = $t['iconurl'];
  170. $window = $t['window'];
  171. $stmt->execute();
  172. endforeach;
  173. //echo "<script>window.onload = function() {if(!window.location.hash) {window.location = window.location + '#loaded';window.location.reload();}}</script>";
  174. endif;
  175. if($action == "addOptionz") :
  176. if($hasOptions == "Yes") :
  177. $file_db->exec("DELETE FROM options");
  178. endif;
  179. if($hasOptions == "No") :
  180. $file_db->exec("CREATE TABLE options (title TEXT UNIQUE, topbar TEXT, bottombar TEXT, sidebar TEXT, hoverbg TEXT, topbartext TEXT, activetabBG TEXT, activetabicon TEXT, activetabtext TEXT, inactiveicon TEXT, inactivetext TEXT)");
  181. endif;
  182. $title = $_POST['title'];
  183. $topbartext = $_POST['topbartext'];
  184. $topbar = $_POST['topbar'];
  185. $bottombar = $_POST['bottombar'];
  186. $sidebar = $_POST['sidebar'];
  187. $hoverbg = $_POST['hoverbg'];
  188. $activetabBG = $_POST['activetabBG'];
  189. $activetabicon = $_POST['activetabicon'];
  190. $activetabtext = $_POST['activetabtext'];
  191. $inactiveicon = $_POST['inactiveicon'];
  192. $inactivetext = $_POST['inactivetext'];
  193. $insert = "INSERT INTO options (title, topbartext, topbar, bottombar, sidebar, hoverbg, activetabBG, activetabicon, activetabtext, inactiveicon, inactivetext)
  194. VALUES (:title, :topbartext, :topbar, :bottombar, :sidebar, :hoverbg, :activetabBG, :activetabicon , :activetabtext , :inactiveicon, :inactivetext)";
  195. $stmt = $file_db->prepare($insert);
  196. $stmt->bindParam(':title', $title);
  197. $stmt->bindParam(':topbartext', $topbartext);
  198. $stmt->bindParam(':topbar', $topbar);
  199. $stmt->bindParam(':bottombar', $bottombar);
  200. $stmt->bindParam(':sidebar', $sidebar);
  201. $stmt->bindParam(':hoverbg', $hoverbg);
  202. $stmt->bindParam(':activetabBG', $activetabBG);
  203. $stmt->bindParam(':activetabicon', $activetabicon);
  204. $stmt->bindParam(':activetabtext', $activetabtext);
  205. $stmt->bindParam(':inactiveicon', $inactiveicon);
  206. $stmt->bindParam(':inactivetext', $inactivetext);
  207. $stmt->execute();
  208. endif;
  209. ?>
  210. <!DOCTYPE html>
  211. <html lang="en" class="no-js">
  212. <head>
  213. <meta charset="UTF-8">
  214. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  215. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  216. <meta name="msapplication-tap-highlight" content="no" />
  217. <title>Settings</title>
  218. <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
  219. <link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css">
  220. <link rel="stylesheet" href="bower_components/mdi/css/materialdesignicons.min.css">
  221. <link rel="stylesheet" href="bower_components/metisMenu/dist/metisMenu.min.css">
  222. <link rel="stylesheet" href="bower_components/Waves/dist/waves.min.css">
  223. <link rel="stylesheet" href="bower_components/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css">
  224. <link rel="stylesheet" href="js/selects/cs-select.css">
  225. <link rel="stylesheet" href="js/selects/cs-skin-elastic.css">
  226. <link href="bower_components/iconpick/dist/css/fontawesome-iconpicker.min.css" rel="stylesheet">
  227. <link rel="stylesheet" href="bower_components/google-material-color/dist/palette.css">
  228. <link rel="stylesheet" href="bower_components/sweetalert/dist/sweetalert.css">
  229. <link rel="stylesheet" href="bower_components/smoke/dist/css/smoke.min.css">
  230. <script src="js/menu/modernizr.custom.js"></script>
  231. <script type="text/javascript" src="js/sha1.js"></script>
  232. <script type="text/javascript" src="js/user.js"></script>
  233. <link rel="stylesheet" href="css/style.css">
  234. <link rel="icon" href="img/favicon.ico" type="image/x-icon" />
  235. <link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon" />
  236. <!--[if lt IE 9]>
  237. <script src="bower_components/html5shiv/dist/html5shiv.min.js"></script>
  238. <script src="bower_components/respondJs/dest/respond.min.js"></script>
  239. <![endif]-->
  240. </head>
  241. <body style="padding: 0; background: #273238;">
  242. <style>
  243. input.form-control.material.icp-auto.iconpicker-element.iconpicker-input {
  244. display: none;
  245. }
  246. </style>
  247. <div id="main-wrapper" class="main-wrapper">
  248. <!--Content-->
  249. <div id="content" style="margin:0 20px; overflow:hidden">
  250. <br/>
  251. <div id="versionCheck"></div>
  252. <div class="row">
  253. <div class="col-lg-12">
  254. <div class="tabbable tabs-with-bg" id="eighth-tabs">
  255. <ul class="nav nav-tabs" style="background: #76828e">
  256. <li class="active">
  257. <a href="#tab-tabs" data-toggle="tab"><i class="fa fa-list gray"></i></a>
  258. </li>
  259. <li>
  260. <a href="#customedit" data-toggle="tab"><i class="fa fa-paint-brush green"></i></a>
  261. </li>
  262. <li>
  263. <a href="#useredit" data-toggle="tab"><i class="fa fa-user red"></i></a>
  264. </li>
  265. <li>
  266. <a href="#about" data-toggle="tab"><i class="fa fa-info indigo"></i></a>
  267. </li>
  268. </ul>
  269. <div class="tab-content">
  270. <div class="content-box box-shadow big-box todo-list tab-pane big-box fade in active" id="tab-tabs">
  271. <div class="sort-todo">
  272. <a class="total-tabs" href="#">Total Tabs <span class="badge green-bg"></span></a>
  273. <?php if($action) : ?>
  274. <button id="apply" class="btn btn-success waves text-uppercase pull-right waves-effect waves-float" type="submit">Apply Changes</button>
  275. <?php endif; ?>
  276. </div>
  277. <form id="add_tab" method="post">
  278. <div class="form-group add-tab">
  279. <div class="input-group">
  280. <div class="input-group-addon">
  281. <i class="fa fa-pencil green"></i>
  282. </div>
  283. <input type="text" class="form-control name-of-todo" placeholder="Type In New Tab Name And Hit Enter">
  284. </div>
  285. </div>
  286. </form>
  287. <div class="panel">
  288. <form id="submitTabs" method="post">
  289. <div class="panel-body todo">
  290. <input type="hidden" name="action" value="addTabz" />
  291. <ul class="list-group ui-sortable">
  292. <?php if($tabSetup == "No") : $tabNum = 1;
  293. foreach($result as $row) :
  294. if($row['defaultz'] == "true") : $default = "checked"; else : $default = ""; endif;
  295. if($row['active'] == "true") : $activez = "checked"; else : $activez = ""; endif;
  296. if($row['guest'] == "true") : $guestz = "checked"; else : $guestz = ""; endif;
  297. if($row['user'] == "true") : $userz = "checked"; else : $userz = ""; endif;
  298. if($row['window'] == "true") : $windowz = "checked"; else : $windowz = ""; endif;
  299. ?>
  300. <li id="item-<?=$tabNum;?>" class="list-group-item" style="position: relative; left: 0px; top: 0px;">
  301. <tab class="content-form form-inline">
  302. <div class="form-group">
  303. <div class="action-btns" style="width:calc(100%)">
  304. <a class="" style="margin-left: 0px"><span class="fa fa-hand-paper-o"></span></a>
  305. </div>
  306. </div>
  307. <div class="form-group">
  308. <input style="width: 110px;" type="text" class="form-control material input-sm" id="name-<?=$tabNum;?>" name="name-<?=$tabNum;?>" placeholder="New Tab Name" value="<?=$row['name'];?>">
  309. </div>
  310. <div class="form-group">
  311. <input style="width: 110px;" type="text" class="form-control material input-sm" id="url-<?=$tabNum;?>" name="url-<?=$tabNum;?>" placeholder="Tab URL" value="<?=$row['url']?>">
  312. </div>
  313. <div style="margin-right: 5px;" class="form-group">
  314. <div class="input-group">
  315. <input data-placement="bottomRight" class="form-control material icp-auto" name="icon-<?=$tabNum;?>" value="<?=$row['icon'];?>" type="text" />
  316. <span class="input-group-addon"></span>
  317. </div>
  318. - OR -
  319. </div>
  320. <div class="form-group">
  321. <input style="width: 110px;" type="text" class="form-control material input-sm" id="iconurl-<?=$tabNum;?>" name="iconurl-<?=$tabNum;?>" placeholder="Icon URL" value="<?=$row['iconurl']?>">
  322. </div>
  323. <div class="form-group">
  324. <div class="radio radio-danger">
  325. <input type="radio" id="default[<?=$tabNum;?>]" value="true" name="default" <?=$default;?>>
  326. <label for="default[<?=$tabNum;?>]">Default</label>
  327. </div>
  328. </div>
  329. <div class="form-group">
  330. <div class="">
  331. <input id="" class="switcher switcher-success" value="false" name="active-<?=$tabNum;?>" type="hidden">
  332. <input id="active[<?=$tabNum;?>]" class="switcher switcher-success" name="active-<?=$tabNum;?>" type="checkbox" <?=$activez;?>>
  333. <label for="active[<?=$tabNum;?>]"></label>
  334. </div>
  335. Active
  336. </div>
  337. <div class="form-group">
  338. <div class="">
  339. <input id="" class="switcher switcher-primary" value="false" name="user-<?=$tabNum;?>" type="hidden">
  340. <input id="user[<?=$tabNum;?>]" class="switcher switcher-primary" name="user-<?=$tabNum;?>" type="checkbox" <?=$userz;?>>
  341. <label for="user[<?=$tabNum;?>]"></label>
  342. </div>
  343. User
  344. </div>
  345. <div class="form-group">
  346. <div class="">
  347. <input id="" class="switcher switcher-primary" value="false" name="guest-<?=$tabNum;?>" type="hidden">
  348. <input id="guest[<?=$tabNum;?>]" class="switcher switcher-warning" name="guest-<?=$tabNum;?>" type="checkbox" <?=$guestz;?>>
  349. <label for="guest[<?=$tabNum;?>]"></label>
  350. </div>
  351. Guest
  352. </div>
  353. <div class="form-group">
  354. <div class="">
  355. <input id="" class="switcher switcher-primary" value="false" name="window-<?=$tabNum;?>" type="hidden">
  356. <input id="window[<?=$tabNum;?>]" class="switcher switcher-warning" name="window-<?=$tabNum;?>" type="checkbox" <?=$windowz;?>>
  357. <label for="window[<?=$tabNum;?>]"></label>
  358. </div>
  359. No iFrame
  360. </div>
  361. <div class="pull-right action-btns" style="padding-top: 8px;">
  362. <a class="trash"><span class="fa fa-close"></span></a>
  363. </div>
  364. </tab>
  365. </li>
  366. <?php $tabNum ++; endforeach; endif;?>
  367. </ul>
  368. </div>
  369. <div class="checkbox clear-todo pull-left"></div>
  370. <input class="btn btn-success waves text-uppercase pull-right waves-effect waves-float" type="submit" value="Save Tabs">
  371. </form>
  372. </div>
  373. </div>
  374. <div class="tab-pane big-box fade in" id="useredit">
  375. <div class="row">
  376. <div class="col-lg-12">
  377. <div class="gray-bg content-box big-box box-shadow">
  378. <h4><strong>Change User Info For <?=$_SESSION['username'];?></strong></h4>
  379. <form class="content-form form-inline" name="update" id="update" action="" method="POST">
  380. <input type="hidden" name="op" value="update"/>
  381. <input type="hidden" name="sha1" value=""/>
  382. <input type="hidden" name="role" value="<?php echo $USER->role; ?>"/>
  383. <div class="form-group">
  384. <input autocomplete="off" type="text" value="<?php echo $USER->email; ?>" class="form-control" name="email" placeholder="E-mail Address">
  385. </div>
  386. <div class="form-group">
  387. <input autocomplete="off" type="password" class="form-control" name="password1" placeholder="Password">
  388. </div>
  389. <div class="form-group">
  390. <input autocomplete="off" type="password" class="form-control" name="password2" placeholder="Password Again">
  391. </div>
  392. <input type="button" class="btn btn-success text-uppercase waves waves-effect waves-float" value="Update" onclick="User.processUpdate()"/>
  393. </form>
  394. </div>
  395. </div>
  396. </div>
  397. <div class="row">
  398. <div class="col-lg-12">
  399. <div class="gray-bg content-box big-box box-shadow">
  400. <h4><strong>Create User</strong></h4>
  401. <form class="content-form form-inline" name="new user registration" id="registration" action="" method="POST">
  402. <input type="hidden" name="op" value="register"/>
  403. <input type="hidden" name="sha1" value=""/>
  404. <div class="form-group">
  405. <input type="text" class="form-control" name="username" placeholder="Username" autocorrect="off" autocapitalize="off" value="">
  406. </div>
  407. <div class="form-group">
  408. <input type="email" class="form-control" name="email" placeholder="E-mail">
  409. </div>
  410. <div class="form-group">
  411. <input type="password" class="form-control" name="password1" placeholder="Password">
  412. </div>
  413. <div class="form-group">
  414. <input type="password" class="form-control" name="password2" placeholder="Retype Password">
  415. </div>
  416. <input type="button" class="btn btn-success text-uppercase waves waves-effect waves-float" value="Create User" onclick="User.processRegistration()"/>
  417. </form>
  418. </div>
  419. </div>
  420. </div>
  421. <div class="row">
  422. <div class="col-lg-12">
  423. <div class="gray-bg content-box big-box box-shadow">
  424. <h4><strong>Delete User</strong></h4>
  425. <form class="content-form form-inline" name="unregister" id="unregister" action="" method="POST">
  426. <input type="hidden" name="op" value="unregister"/>
  427. <input type="hidden" name="sha1" value=""/>
  428. <input type="hidden" name="role" value="<?php echo $USER->role; ?>"/>
  429. <div class="form-group">
  430. <select class="form-control" name="username">
  431. <?php foreach($getUsers as $row) : ?>
  432. <option><?=$row['username'];?></option>
  433. <?php endforeach; ?>
  434. </select>
  435. </div>
  436. <input type="submit" class="btn btn-danger text-uppercase waves waves-effect waves-float" value="Delete User"/>
  437. </form>
  438. </div>
  439. </div>
  440. </div>
  441. </div>
  442. <div class="tab-pane big-box fade in" id="about">
  443. <h4><strong>About Organizr</strong></h4>
  444. <p id="version"></p>
  445. <p id="submitFeedback">
  446. <a href='https://github.com/causefx/Organizr/issues/new' target='_blank' type='button' class='btn waves btn-labeled btn-success btn text-uppercase waves-effect waves-float'><span class='btn-label'><i class='fa fa-github-alt'></i></span>Submit Issue or Request</a>
  447. <a href='https://github.com/causefx/Organizr' target='_blank' type='button' class='btn waves btn-labeled btn-primary btn text-uppercase waves-effect waves-float'><span class='btn-label'><i class='fa fa-github'></i></span>View On Github</a>
  448. </p>
  449. <p id="whatsnew"></p>
  450. <p id="downloadnow"></p>
  451. <div class="panel panel-danger">
  452. <div class="panel-heading">
  453. <h3 class="panel-title">Delete Database</h3>
  454. </div>
  455. <div class="panel-body">
  456. <div class="col-lg-4">
  457. <p>Only do this if an upgrade requires it. This will delete your database so there is no going back and you will need to set everything back up, including user accouts.</p>
  458. <form id="deletedb" method="post">
  459. <input type="hidden" name="action" value="deleteDB" />
  460. <input class="btn btn-danger waves text-uppercase pull-right waves-effect waves-float" type="submit" value="Delete Database">
  461. </form>
  462. </div>
  463. </div>
  464. </div>
  465. </div>
  466. <div class="tab-pane small-box fade in" id="customedit">
  467. <form id="add_optionz" method="post">
  468. <input type="hidden" name="action" value="addOptionz" />
  469. <button id="plexTheme" style="background: #E49F0C" type="button" class="btn waves btn-dark text-uppercase waves-effect waves-float">Plex</button>
  470. <button id="embyTheme" style="background: #52B54B" type="button" class="btn waves btn-dark text-uppercase waves-effect waves-float">Emby</button>
  471. <button id="bookTheme" style="background: #3B5998" type="button" class="btn waves btn-dark text-uppercase waves-effect waves-float">Book</button>
  472. <button id="spaTheme" style="background: #66BBAE" type="button" class="btn waves btn-dark text-uppercase waves-effect waves-float">Spa</button>
  473. <input class="btn btn-success waves text-uppercase pull-right waves-effect waves-float" type="submit" value="Save Options">
  474. <div class="content-box box-shadow big-box grids">
  475. <div class="row show-grids">
  476. <h4><strong>Title</strong></h4>
  477. <div class="col-md-2">
  478. <center>Title</center>
  479. <input name="title" class="form-control" value="<?=$title;?>" placeholder="Organizr">
  480. </div>
  481. <div class="col-md-2">
  482. <center>Title Text</center>
  483. <input name="topbartext" id="topbartext" class="form-control jscolor {hash:true}" value="<?=$topbartext;?>">
  484. </div>
  485. </div>
  486. <div class="row show-grids">
  487. <h4><strong>Navigation Bars</strong></h4>
  488. <div class="col-md-2">
  489. <center>Top Bar</center>
  490. <input name="topbar" id="topbar" class="form-control jscolor {hash:true}" value="<?=$topbar;?>">
  491. </div>
  492. <div class="col-md-2">
  493. <center>Bottom Bar</center>
  494. <input name="bottombar" id="bottombar" class="form-control jscolor {hash:true}" value="<?=$bottombar;?>">
  495. </div>
  496. <div class="clearfix visible-xs-block"></div>
  497. <div class="col-md-2">
  498. <center>Side Bar</center>
  499. <input name="sidebar" id="sidebar" class="form-control jscolor {hash:true}" value="<?=$sidebar;?>">
  500. </div>
  501. <div class="col-md-2">
  502. <center>Hover BG</center>
  503. <input name="hoverbg" id="hoverbg" class="form-control jscolor {hash:true}" value="<?=$hoverbg;?>">
  504. </div>
  505. </div>
  506. <div class="row show-grids">
  507. <h4><strong>Active Tab</strong></h4>
  508. <div class="col-md-2">
  509. <center>Active Tab BG</center>
  510. <input name="activetabBG" id="activetabBG" class="form-control jscolor {hash:true}" value=<?=$activetabBG;?>"">
  511. </div>
  512. <div class="col-md-2">
  513. <center>Active Tab Icon</center>
  514. <input name="activetabicon" id="activetabicon" class="form-control jscolor {hash:true}" value="<?=$activetabicon;?>">
  515. </div>
  516. <div class="col-md-2">
  517. <center>Active Tab Text</center>
  518. <input name="activetabtext" id="activetabtext" class="form-control jscolor {hash:true}" value="<?=$activetabtext;?>">
  519. </div>
  520. </div>
  521. <div class="row show-grids">
  522. <h4><strong>Inactive Tab</strong></h4>
  523. <div class="col-md-2">
  524. <center>Inactive Icon</center>
  525. <input name="inactiveicon" id="inactiveicon" class="form-control jscolor {hash:true}" value="<?=$inactiveicon;?>">
  526. </div>
  527. <div class="col-md-2">
  528. <center>Inactive Text</center>
  529. <input name="inactivetext" id="inactivetext" class="form-control jscolor {hash:true}" value="<?=$inactivetext;?>">
  530. </div>
  531. </div>
  532. </div>
  533. </form>
  534. </div>
  535. </div>
  536. </div>
  537. </div>
  538. </div>
  539. </div>
  540. <!--End Content-->
  541. <!--Welcome notification-->
  542. <div id="welcome"></div>
  543. </div>
  544. <?php if(!$USER->authenticated) : ?>
  545. <?php endif;?>
  546. <?php if($USER->authenticated) : ?>
  547. <?php endif;?>
  548. <!--Scripts-->
  549. <script src="bower_components/jquery/dist/jquery.min.js"></script>
  550. <script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
  551. <script src="bower_components/metisMenu/dist/metisMenu.min.js"></script>
  552. <script src="bower_components/Waves/dist/waves.min.js"></script>
  553. <script src="bower_components/moment/min/moment.min.js"></script>
  554. <script src="bower_components/jquery.nicescroll/jquery.nicescroll.min.js"></script>
  555. <script src="bower_components/slimScroll/jquery.slimscroll.min.js"></script>
  556. <script src="bower_components/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.js"></script>
  557. <script src="bower_components/cta/dist/cta.min.js"></script>
  558. <!--Menu-->
  559. <script src="js/menu/classie.js"></script>
  560. <script src="bower_components/iconpick/dist/js/fontawesome-iconpicker.js"></script>
  561. <!--Selects-->
  562. <script src="js/selects/selectFx.js"></script>
  563. <script src="js/jscolor.js"></script>
  564. <script src="bower_components/sweetalert/dist/sweetalert.min.js"></script>
  565. <script src="bower_components/smoke/dist/js/smoke.min.js"></script>
  566. <!--Notification-->
  567. <script src="js/notifications/notificationFx.js"></script>
  568. <script src="js/jqueri_ui_custom/jquery-ui.min.js"></script>
  569. <?php if($_POST['op']) : ?>
  570. <script>
  571. $.smkAlert({
  572. text: '<?php echo $USER->info_log[0];?>',
  573. type: 'info'
  574. });
  575. </script>
  576. <?php endif; ?>
  577. <?php if($action == "addTabz") : ?>
  578. <script>
  579. if(!window.location.hash) {
  580. window.location = window.location + '#loaded';
  581. window.location.reload();
  582. }else{
  583. swal("Tabs Saved!", "Apply Changes To Reload The Page!", "success");
  584. }
  585. </script>
  586. <?php endif; ?>
  587. <?php if($action == "addOptionz") : ?>
  588. <script>
  589. swal("Colors Saved!", "Apply Changes To Reload The Page!", "success");
  590. </script>
  591. <?php endif; ?>
  592. <?php if($action == "deleteDB") : ?>
  593. <script>
  594. swal({
  595. title: "Are you sure?",
  596. text: "You will not be able to undo this!",
  597. type: "warning",
  598. showCancelButton: true,
  599. confirmButtonColor: "#DD6B55",
  600. confirmButtonText: "Yes, delete it!",
  601. cancelButtonText: "No, No, No!",
  602. closeOnConfirm: false,
  603. closeOnCancel: false,
  604. confirmButtonColor: "#63A8EB"
  605. },
  606. function (isConfirm) {
  607. if (isConfirm) {
  608. swal("Deleted!", "The Database is long gone now.", "success");
  609. <?php
  610. $file_db = null;
  611. unlink($dbfile);
  612. foreach(glob($userdirpath . '/*') as $file) :
  613. if(is_dir($file)) :
  614. rmdir($file);
  615. elseif(!is_dir($file)) :
  616. unlink($file);
  617. endif;
  618. endforeach;
  619. rmdir($userdirpath);
  620. ?>
  621. window.parent.location.reload();
  622. } else {
  623. swal("Cancelled", "Whoa! That was close", "error");
  624. }
  625. });
  626. </script>
  627. <?php endif; ?>
  628. <script>
  629. $(function () {
  630. $(".todo ul").sortable();
  631. $("#add_tab").on('submit', function (e) {
  632. e.preventDefault();
  633. var $toDo = $(this).find('.name-of-todo');
  634. toDo_name = $toDo.val();
  635. if (toDo_name.length >= 3) {
  636. var newid = $('.list-group-item').length + 1;
  637. $(".todo ul").append(
  638. '<li id="item-' + newid + '" class="list-group-item" style="position: relative; left: 0px; top: 0px;"><tab class="content-form form-inline"> <div class="form-group"><div class="action-btns" style="width:calc(100%)"><a class="" style="margin-left: 0px"><span class="fa fa-hand-paper-o"></span></a></div></div> <div class="form-group"><input style="width: 110px;" type="text" class="form-control material input-sm" name="name-' + newid + '" id="name[' + newid + ']" placeholder="New Tab Name" value="' + toDo_name + '"></div> <div class="form-group"><input style="width: 110px;" type="text" class="form-control material input-sm" name="url-' + newid + '" id="url[' + newid + ']" placeholder="Tab URL"></div> <div style="margin-right: 5px;" class="form-group"><div class="input-group"><input style="width: 110px;" name="icon-' + newid + '" data-placement="bottomRight" class="form-control material icp-auto" value="fa-diamond" type="text" /><span class="input-group-addon"></span></div> - OR -</div> <div class="form-group"><input style="width: 110px;" type="text" class="form-control material input-sm" id="iconurl-' + newid + '" name="iconurl-' + newid + '" placeholder="Icon URL" value=""></div> <div class="form-group"> <div class="radio radio-danger"> <input type="radio" name="default" id="default[' + newid + ']" name="default"> <label for="default[' + newid + ']">Default</label></div></div> <div class="form-group"><div class=""><input id="" class="switcher switcher-success" value="false" name="active-' + newid + '" type="hidden"><input name="active-' + newid + '" id="active[' + newid + ']" class="switcher switcher-success" type="checkbox" checked=""><label for="active[' + newid + ']"></label></div> Active</div> <div class="form-group"><div class=""><input id="" class="switcher switcher-primary" value="false" name="user-' + newid + '" type="hidden"><input id="user[' + newid + ']" name="user-' + newid + '" class="switcher switcher-primary" type="checkbox" checked=""><label for="user[' + newid + ']"></label></div> User</div> <div class="form-group"><div class=""><input id="" class="switcher switcher-primary" value="false" name="guest-' + newid + '" type="hidden"><input name="guest-' + newid + '" id="guest[' + newid + ']" class="switcher switcher-warning" type="checkbox" checked=""><label for="guest[' + newid + ']"></label></div> Guest</div> <div class="form-group"><div class=""><input id="" class="switcher switcher-primary" value="false" name="window-' + newid + '" type="hidden"><input name="window-' + newid + '" id="window[' + newid + ']" class="switcher switcher-warning" type="checkbox"><label for="window[' + newid + ']"></label></div> No iFrame</div><div class="pull-right action-btns" style="padding-top: 8px;"><a class="trash"><span class="fa fa-close"></span></a></div></tab></li>'
  639. );
  640. $('.icp-auto').iconpicker({placement: 'left', hideOnSelect: false, collision: true});
  641. var eventObject = {
  642. title: $.trim($("#" + newid).text()),
  643. className: $("#" + newid).attr("data-bg"),
  644. stick: true
  645. };
  646. $("#" + newid).data('eventObject', eventObject);
  647. $toDo.val('').focus();
  648. } else {
  649. $toDo.focus();
  650. }
  651. });
  652. count();
  653. $(".list-group-item").addClass("list-item");
  654. //Remove one completed item
  655. $(document).on('click', '.trash', function (e) {
  656. var clearedCompItem = $(this).closest(".list-group-item").remove();
  657. e.preventDefault();
  658. count();
  659. });
  660. //Count items
  661. function count() {
  662. var active = $('.list-group-item').length;
  663. $('.total-tabs span').text(active);
  664. };
  665. $("#submitTabs").on('submit', function (e) {
  666. console.log("submitted");
  667. $("div.radio").each(function(i) {
  668. $(this).find('input').attr('name', 'default-' + i);
  669. console.log(i);
  670. });
  671. $('form input[type="radio"]').not(':checked').each(function() {
  672. $(this).prop('checked', true);
  673. $(this).prop('value', "false");
  674. console.log("found unchecked");
  675. });
  676. });
  677. $('#apply').on('click touchstart', function(){
  678. window.parent.location.reload();
  679. });
  680. });
  681. </script>
  682. <script>
  683. $('.icp-auto').iconpicker({placement: 'left', hideOnSelect: false, collision: true});
  684. $( "span[class^='fa fa-hand-paper-o']" )
  685. .mouseup(function() {
  686. $(this).attr("class", "fa fa-hand-paper-o");
  687. })
  688. .mousedown(function() {
  689. $(this).attr("class", "fa fa-hand-grab-o");
  690. });
  691. </script>
  692. <script>
  693. //Custom Themes
  694. function changeColor(elementName, elementColor) {
  695. var definedElement = document.getElementById(elementName);
  696. definedElement.value = elementColor;
  697. definedElement.style.backgroundColor = elementColor;
  698. }
  699. $('#plexTheme').on('click touchstart', function(){
  700. changeColor("topbartext", "#E49F0C");
  701. changeColor("topbar", "#000000");
  702. changeColor("bottombar", "#000000");
  703. changeColor("sidebar", "#121212");
  704. changeColor("hoverbg", "#FFFFFF");
  705. changeColor("activetabBG", "#E49F0C");
  706. changeColor("activetabicon", "#FFFFFF");
  707. changeColor("activetabtext", "#FFFFFF");
  708. changeColor("inactiveicon", "#949494");
  709. changeColor("inactivetext", "#B8B8B8");
  710. });
  711. $('#embyTheme').on('click touchstart', function(){
  712. changeColor("topbartext", "#52B54B");
  713. changeColor("topbar", "#212121");
  714. changeColor("bottombar", "#212121");
  715. changeColor("sidebar", "#121212");
  716. changeColor("hoverbg", "#FFFFFF");
  717. changeColor("activetabBG", "#52B54B");
  718. changeColor("activetabicon", "#FFFFFF");
  719. changeColor("activetabtext", "#FFFFFF");
  720. changeColor("inactiveicon", "#949494");
  721. changeColor("inactivetext", "#B8B8B8");
  722. });
  723. $('#bookTheme').on('click touchstart', function(){
  724. changeColor("topbartext", "#FFFFFF");
  725. changeColor("topbar", "#3B5998");
  726. changeColor("bottombar", "#3B5998");
  727. changeColor("sidebar", "#8B9DC3");
  728. changeColor("hoverbg", "#FFFFFF");
  729. changeColor("activetabBG", "#3B5998");
  730. changeColor("activetabicon", "#FFFFFF");
  731. changeColor("activetabtext", "#FFFFFF");
  732. changeColor("inactiveicon", "#DFE3EE");
  733. changeColor("inactivetext", "#DFE3EE");
  734. });
  735. $('#spaTheme').on('click touchstart', function(){
  736. changeColor("topbartext", "#5B391E");
  737. changeColor("topbar", "#66BBAE");
  738. changeColor("bottombar", "#66BBAE");
  739. changeColor("sidebar", "#C3EEE7");
  740. changeColor("hoverbg", "#66BBAE");
  741. changeColor("activetabBG", "#C6C386");
  742. changeColor("activetabicon", "#FFFFFF");
  743. changeColor("activetabtext", "#FFFFFF");
  744. changeColor("inactiveicon", "#5B391E");
  745. changeColor("inactivetext", "#5B391E");
  746. });
  747. </script>
  748. <script>
  749. $( document ).ready(function() {
  750. $.ajax({
  751. type: "GET",
  752. url: "https://api.github.com/repos/causefx/Organizr/releases/latest",
  753. dataType: "json",
  754. success: function(github) {
  755. var currentVersion = "0.95";
  756. var githubVersion = github.tag_name;
  757. var githubDescription = github.body;
  758. var githubName = github.name;
  759. infoTabVersion = $('#about').find('#version');
  760. infoTabNew = $('#about').find('#whatsnew');
  761. infoTabDownload = $('#about').find('#downloadnow');
  762. if(currentVersion < githubVersion){
  763. console.log("You Need To Upgrade");
  764. $.smkAlert({
  765. text: '<strong>New Version Available</strong> Click Info Tab',
  766. type: 'warning',
  767. permanent: true
  768. });
  769. $(infoTabNew).html("<br/><h4><strong>What's New in " + githubVersion + "</strong></h4><strong>Title: </strong>" + githubName + " <br/><strong>Changes: </strong>" + githubDescription);
  770. $(infoTabDownload).html("<br/><a href='https://github.com/causefx/Organizr/archive/master.zip' target='_blank' type='button' class='btn waves btn-labeled btn-success btn-lg text-uppercase waves-effect waves-float'><span class='btn-label'><i class='fa fa-download'></i></span>Download Organizr v." + githubVersion + "</a>");
  771. }else if(currentVersion === githubVersion){
  772. console.log("You Are on Current Version");
  773. $.smkAlert({
  774. text: 'Software is <strong>Up-To-Date!</strong>',
  775. type: 'success'
  776. });
  777. }else{
  778. console.log("something went wrong");
  779. $.smkAlert({
  780. text: '<strong>WTF!? </strong>Can\'t check version.',
  781. type: 'danger',
  782. time: 10
  783. });
  784. }
  785. $(infoTabVersion).html("<strong>Installed Version: </strong>" + currentVersion + " <strong>Current Version: </strong>" + githubVersion);
  786. }
  787. });
  788. });
  789. </script>
  790. </body>
  791. </html>