settings.php 55 KB

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