settings.php 126 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739
  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 USER
  9. require_once("user.php");
  10. $USER = new User("registration_callback");
  11. // Create Database Connection
  12. $file_db = new PDO('sqlite:'.DATABASE_LOCATION.'users.db');
  13. $file_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  14. // Some PHP config stuff
  15. ini_set("display_errors", 1);
  16. ini_set("error_reporting", E_ALL | E_STRICT);
  17. // Confirm Access
  18. qualifyUser('admin', true);
  19. // Load User List
  20. $gotUsers = $file_db->query('SELECT * FROM users');
  21. // Load Colours/Appearance
  22. foreach(loadAppearance() as $key => $value) {
  23. $$key = $value;
  24. }
  25. // Slimbar
  26. if(SLIMBAR == "true") {
  27. $slimBar = "30";
  28. $userSize = "25";
  29. } else {
  30. $slimBar = "56";
  31. $userSize = "40";
  32. }
  33. ?>
  34. <!DOCTYPE html>
  35. <html lang="en" class="no-js">
  36. <head>
  37. <meta charset="UTF-8">
  38. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  39. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  40. <meta name="msapplication-tap-highlight" content="no" />
  41. <title>Settings</title>
  42. <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
  43. <link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css">
  44. <link rel="stylesheet" href="bower_components/mdi/css/materialdesignicons.min.css">
  45. <link rel="stylesheet" href="bower_components/metisMenu/dist/metisMenu.min.css">
  46. <link rel="stylesheet" href="bower_components/Waves/dist/waves.min.css">
  47. <link rel="stylesheet" href="bower_components/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css">
  48. <link rel="stylesheet" href="js/selects/cs-select.css">
  49. <link rel="stylesheet" href="js/selects/cs-skin-elastic.css">
  50. <link href="bower_components/iconpick/dist/css/fontawesome-iconpicker.min.css" rel="stylesheet">
  51. <link rel="stylesheet" href="bower_components/google-material-color/dist/palette.css">
  52. <link rel="stylesheet" href="bower_components/sweetalert/dist/sweetalert.css">
  53. <link rel="stylesheet" href="bower_components/smoke/dist/css/smoke.min.css">
  54. <script src="js/menu/modernizr.custom.js"></script>
  55. <script type="text/javascript" src="js/sha1.js"></script>
  56. <script type="text/javascript" src="js/user.js"></script>
  57. <link rel="stylesheet" href="bower_components/animate.css/animate.min.css">
  58. <link rel="stylesheet" href="bower_components/DataTables/media/css/jquery.dataTables.css">
  59. <link rel="stylesheet" href="bower_components/datatables-tabletools/css/dataTables.tableTools.css">
  60. <link rel="stylesheet" href="bower_components/numbered/jquery.numberedtextarea.css">
  61. <link rel="stylesheet" href="css/style.css?v=<?php echo INSTALLEDVERSION; ?>">
  62. <link rel="stylesheet" href="css/settings.css?v=<?php echo INSTALLEDVERSION; ?>">
  63. <link href="css/jquery.filer.css" rel="stylesheet">
  64. <link href="css/jquery.filer-dragdropbox-theme.css" rel="stylesheet">
  65. <!--[if lt IE 9]>
  66. <script src="bower_components/html5shiv/dist/html5shiv.min.js"></script>
  67. <script src="bower_components/respondJs/dest/respond.min.js"></script>
  68. <![endif]-->
  69. <!--Scripts-->
  70. <script src="bower_components/jquery/dist/jquery.min.js"></script>
  71. <script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
  72. <script src="bower_components/metisMenu/dist/metisMenu.min.js"></script>
  73. <script src="bower_components/Waves/dist/waves.min.js"></script>
  74. <script src="bower_components/moment/min/moment.min.js"></script>
  75. <script src="bower_components/jquery.nicescroll/jquery.nicescroll.min.js"></script>
  76. <script src="bower_components/slimScroll/jquery.slimscroll.min.js"></script>
  77. <script src="bower_components/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.js"></script>
  78. <script src="bower_components/cta/dist/cta.min.js"></script>
  79. <!--Menu-->
  80. <script src="js/menu/classie.js"></script>
  81. <script src="bower_components/iconpick/dist/js/fontawesome-iconpicker.js"></script>
  82. <!--Selects-->
  83. <script src="js/selects/selectFx.js"></script>
  84. <script src="js/jscolor.js"></script>
  85. <script src="bower_components/sweetalert/dist/sweetalert.min.js"></script>
  86. <script src="bower_components/smoke/dist/js/smoke.min.js"></script>
  87. <script src="bower_components/numbered/jquery.numberedtextarea.js"></script>
  88. <!--Other-->
  89. <script src="js/ajax.js?v=<?php echo INSTALLEDVERSION; ?>"></script>
  90. <!--Notification-->
  91. <script src="js/notifications/notificationFx.js"></script>
  92. <script src="js/jqueri_ui_custom/jquery-ui.min.js"></script>
  93. <script src="js/jquery.filer.min.js" type="text/javascript"></script>
  94. <script src="js/custom.js?v=<?php echo INSTALLEDVERSION; ?>" type="text/javascript"></script>
  95. <script src="js/jquery.mousewheel.min.js" type="text/javascript"></script>
  96. <!--Data Tables-->
  97. <script src="bower_components/DataTables/media/js/jquery.dataTables.js"></script>
  98. <script src="bower_components/datatables.net-responsive/js/dataTables.responsive.js"></script>
  99. <script src="bower_components/datatables-tabletools/js/dataTables.tableTools.js"></script>
  100. <!--Other-->
  101. <script>
  102. function addTab() {
  103. var idNumber = Math.round(Math.random() * 999999999) + 1000000000;
  104. var $element = $('#tab-new').clone();
  105. $element.css('display','block');
  106. $element.attr('id', $element.attr('id').replace('new',idNumber));
  107. $element.find('[value=new]').attr('value', idNumber).val(idNumber);
  108. $element.find('[id][name]').each(function () {
  109. this.id = this.id.replace('new',idNumber);
  110. this.name = this.name.replace('new',idNumber);
  111. });
  112. $element.find('[for]').each(function () {
  113. $(this).attr('for',$(this).attr('for').replace('new',idNumber));
  114. });
  115. $element.appendTo('#submitTabs ul');
  116. $element.find('.icp-auto-pend').iconpicker({placement: 'left', hideOnSelect: false, collision: true}).hide();
  117. $('.tab-box').scrollTop($('.tab-box')[0].scrollHeight);
  118. }
  119. function submitTabs(form) {
  120. var formData = {};
  121. var ids = [];
  122. $.each($(form).serializeArray(), function(i,v) {
  123. var regmatch = /(\w+)\[((?:new-)?\d+)\]/i.exec(v.name);
  124. if (regmatch) {
  125. if (ids.indexOf(regmatch[2]) == -1) {
  126. ids.push(regmatch[2]);
  127. if (typeof formData['order'] !== 'object') { formData['order'] = {}; }
  128. formData['order'][regmatch[2]] = ids.length;
  129. }
  130. if (typeof formData[regmatch[1]] !== 'object') { formData[regmatch[1]] = {}; }
  131. formData[regmatch[1]][regmatch[2]] = v.value;
  132. } else {
  133. console.log(regmatch);
  134. }
  135. });
  136. console.log(formData);
  137. ajax_request('POST', 'submit-tabs', formData);
  138. return false;
  139. }
  140. </script>
  141. <style>
  142. .loop-animation {
  143. animation-iteration-count: infinite;
  144. -webkit-animation-iteration-count: infinite;
  145. -moz-animation-iteration-count: infinite;
  146. -o-animation-iteration-count: infinite;
  147. }
  148. @media screen and (max-width:737px){
  149. .email-body{width: 100%; overflow: auto;}
  150. .email-content, .email-new {
  151. -webkit-overflow-scrolling: touch;
  152. -webkit-transform: translateZ(0);
  153. overflow: scroll;
  154. position: fixed;
  155. height:100% !important;
  156. margin-top:0;
  157. }.email-content .email-header, .email-new .email-header{
  158. padding: 10px 30px;
  159. z-index: 1000;
  160. }
  161. }@media screen and (min-width:737px){
  162. .email-body{width: 100%}
  163. .email-content .close-button, .email-content .email-actions, .email-new .close-button, .email-new .email-actions {
  164. position: relative;
  165. top: 15px;
  166. right: 0px;
  167. float: right;
  168. }.email-inner-section {
  169. margin-top: 50px;
  170. }.email-content, .email-new {
  171. overflow: auto;
  172. margin-top: 0;
  173. height: 100%;
  174. position: fixed;
  175. max-width: 100%;
  176. width: 84%;
  177. right: -84%;
  178. }.email-content .email-header, .email-new .email-header{
  179. position: fixed;
  180. padding: 10px 30px;
  181. width: 84%;
  182. z-index: 1000;
  183. }
  184. }ul.inbox-nav.nav {
  185. background: white;
  186. padding: 5px;
  187. border-radius: 5px;
  188. }.profile-usermenu ul li.active a {
  189. border-left: 3px solid <?=$activetabBG;?> !important;
  190. padding-left: 12px;
  191. }.profile-usermenu ul li a:hover {
  192. background: <?=$hoverbg;?> !important;
  193. color: <?=$hovertext;?> !important;
  194. cursor: pointer;
  195. }input.form-control.material.icp-auto.iconpicker-element.iconpicker-input {
  196. display: none;
  197. }input.form-control.iconpicker-search {
  198. color: black;
  199. }.key {
  200. font-family:Tahoma, sans-serif;
  201. border-style:solid;
  202. border-color:#D5D6AD #C1C1A8 #CDCBA5 #E7E5C5;
  203. border-width:2px 3px 8px 3px;
  204. background:#D6D4B4;
  205. display:inline-block;
  206. border-radius:5px;
  207. margin:3px;
  208. text-align:center;
  209. }.form-control.material {
  210. background-image: -webkit-gradient(linear, left top, left bottom, from(<?=$topbartext;?>), to(<?=$topbartext;?>)), -webkit-gradient(linear, left top, left bottom, from(#d2d2d2), to(#d2d2d2));
  211. background-image: -webkit-linear-gradient(<?=$topbartext;?>, <?=$topbartext;?>), -webkit-linear-gradient(#d2d2d2, #d2d2d2);
  212. background-image: linear-gradient(<?=$topbartext;?>, <?=$topbartext;?>), linear-gradient(#d2d2d2, #d2d2d2);
  213. }.key span {
  214. background:#ECEECA;
  215. color:#5D5E4F;
  216. display:block;
  217. font-size:12px;
  218. padding:0 2px;
  219. border-radius:3px;
  220. width:14px;
  221. height:18px;
  222. line-height:18px;
  223. text-align:center;
  224. font-weight:bold;
  225. letter-spacing:1px;
  226. text-transform:uppercase;
  227. }.key.wide span {
  228. width:auto;
  229. padding:0 12px;
  230. }.dragging{
  231. border: 2px solid;
  232. }.todo .action-btns a span {
  233. color: #76828e !important;
  234. }.todo li:nth-child(even) {
  235. background: #FFFFFF !important;
  236. }.themeImage {
  237. position: fixed;
  238. left: 160px;
  239. top: 0px;
  240. height: 400px;
  241. }.chooseTheme a span {
  242. position:absolute; display:none; z-index:99;
  243. }.chooseTheme a:hover span {
  244. display:block;
  245. }ul.nav.nav-tabs.apps {
  246. border: solid;
  247. border-top: 0;
  248. border-left: 0;
  249. border-right: 0;
  250. border-radius: 0;
  251. }li.apps.active {
  252. border: solid;
  253. border-bottom: 0;
  254. border-radius: 5px;
  255. top: 3px;
  256. }<?php if(CUSTOMCSS == "true") :
  257. $template_file = "custom.css";
  258. $file_handle = fopen($template_file, "rb");
  259. echo fread($file_handle, filesize($template_file));
  260. fclose($file_handle);
  261. echo "\n";
  262. endif; ?>
  263. </style>
  264. </head>
  265. <body class="scroller-body" style="padding: 0; background: #273238; overflow: hidden">
  266. <div id="main-wrapper" class="main-wrapper">
  267. <!--Content-->
  268. <div id="content" style="margin:0 10px; overflow:hidden">
  269. <div class="modal fade checkFrame" tabindex="-1" role="dialog">
  270. <div class="modal-dialog modal-lg" role="document">
  271. <div class="modal-content">
  272. <div class="modal-header">
  273. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  274. <h4 class="modal-title">Check iFrame Compatability</h4>
  275. </div>
  276. <form id="urlTestForm" onsubmit="return false;">
  277. <div class="modal-body">
  278. Let's Check this URL
  279. <input type="text" class="form-control material" name="url-test" placeholder="<?php echo translate("URL"); ?>" autocorrect="off" autocapitalize="off" value="">
  280. </div>
  281. <div class="modal-footer">
  282. <button type="button" class="btn btn-default waves" data-dismiss="modal">Close</button>
  283. <button id="urlTestForm_submit" class="btn btn-primary waves" data-dismiss="modal">Check Frame URL</button>
  284. </div>
  285. </form>
  286. </div>
  287. </div>
  288. </div>
  289. <br/>
  290. <div id="versionCheck"></div>
  291. <div class="row">
  292. <div class="col-lg-2">
  293. <button id="apply" style="width: 100%; display: none;" class="btn waves btn-success btn-sm text-uppercase waves-effect waves-float animated tada" type="submit">
  294. <?php echo $language->translate("APPLY_CHANGES");?>
  295. </button>
  296. <div class="content-box profile-sidebar box-shadow">
  297. <img src="images/organizr-logo-h-d.png" width="100%" style="margin-top: -10px;">
  298. <div class="profile-usermenu">
  299. <ul class="nav" id="settings-list">
  300. <li><a id="open-tabs" box="tab-box"><i class="fa fa-list red-orange pull-right"></i>Edit Tabs</a></li>
  301. <li><a id="open-colors" box="color-box"><i class="fa fa-paint-brush green pull-right"></i>Edit Colors</a></li>
  302. <li><a id="open-users" box="users-box"><i class="fa fa-user red pull-right"></i>Manage Users</a></li>
  303. <li><a id="open-logs" box="logs-box"><i class="fa fa-file-text-o blue pull-right"></i>View Logs</a></li>
  304. <li><a id="open-homepage" box="homepage-box"><i class=" fa fa-home yellow pull-right"></i>Edit Homepage</a></li>
  305. <li><a id="open-advanced" box="advanced-box"><i class=" fa fa-cog light-blue pull-right"></i>Advanced</a></li>
  306. <li><a id="open-info" box="info-box"><i class=" fa fa-info-circle orange pull-right"></i>About</a></li>
  307. <li><a id="open-donate" box="donate-box"><i class=" fa fa-money red pull-right"></i>Donate</a></li>
  308. </ul>
  309. </div>
  310. </div>
  311. </div>
  312. <div class="col-lg-10">
  313. </div>
  314. </div>
  315. <div class="email-content tab-box white-bg">
  316. <div class="email-body">
  317. <div class="email-header gray-bg">
  318. <button type="button" class="btn btn-danger btn-sm waves close-button"><i class="fa fa-close"></i></button>
  319. <h1>Edit Tabs</h1>
  320. </div>
  321. <div class="email-inner small-box">
  322. <div class="email-inner-section">
  323. <div class="small-box todo-list fade in" id="tab-tabs">
  324. <form id="submitTabs" onsubmit="submitTabs(this); return false;">
  325. <div class="sort-todo">
  326. <button id="newtab" type="button" class="btn waves btn-labeled btn-success btn-sm text-uppercase waves-effect waves-float" onclick="addTab()">
  327. <span class="btn-label"><i class="fa fa-plus"></i></span><?php echo translate("NEW_TAB");?>
  328. </button>
  329. <button id="iconHide" type="button" class="btn waves btn-labeled btn-warning btn-sm text-uppercase waves-effect waves-float">
  330. <span class="btn-label"><i class="fa fa-upload"></i></span><?php echo $language->translate("UPLOAD_ICONS");?>
  331. </button>
  332. <button id="iconAll" type="button" class="btn waves btn-labeled btn-info btn-sm text-uppercase waves-effect waves-float">
  333. <span class="btn-label"><i class="fa fa-picture-o"></i></span><?php echo $language->translate("VIEW_ICONS");?>
  334. </button>
  335. <button id="checkFrame" data-toggle="modal" data-target=".checkFrame" type="button" class="btn waves btn-labeled btn-gray btn-sm text-uppercase waves-effect waves-float">
  336. <span class="btn-label"><i class="fa fa-check"></i></span><?php echo $language->translate("CHECK_FRAME");?>
  337. </button>
  338. <button type="submit" class="btn waves btn-labeled btn-success btn btn-sm pull-right text-uppercase waves-effect waves-float">
  339. <span class="btn-label"><i class="fa fa-floppy-o"></i></span><?php echo translate('SAVE_TABS'); ?>
  340. </button>
  341. </div>
  342. <input type="file" name="files[]" id="uploadIcons" multiple="multiple">
  343. <div id="viewAllIcons" style="display: none;">
  344. <h4><strong><?php echo $language->translate("ALL_ICONS");?></strong> [<?php echo $language->translate("CLICK_ICON");?>]</h4>
  345. <div class="row">
  346. <textarea id="copyTarget" class="hideCopy" style="left: -9999px; top: 0; position: absolute;"></textarea>
  347. <?php
  348. $dirname = "images/";
  349. $images = scandir($dirname);
  350. $ignore = Array(".", "..", "favicon", "cache", "platforms", "._.DS_Store", ".DS_Store", "confused.png", "sowwy.png", "sort-btns", "loading.png", "titlelogo.png", "default.svg", "login.png", "no-np.png", "themes", "nadaplaying.jpg", "organizr-logo-h-d.png", "organizr-logo-h.png");
  351. foreach($images as $curimg){
  352. if(!in_array($curimg, $ignore)) { ?>
  353. <div class="col-xs-2" style="width: 75px; height: 75px; padding-right: 0px;">
  354. <a data-toggle="tooltip" data-placement="bottom" title="<?=$dirname.$curimg;?>" class="thumbnail" style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);">
  355. <img style="width: 50px; height: 50px;" src="<?=$dirname.$curimg;?>" alt="thumbnail" class="allIcons">
  356. </a>
  357. </div>
  358. <?php
  359. }
  360. }
  361. ?>
  362. </div>
  363. </div>
  364. <div class="panel">
  365. <div class="panel-body todo">
  366. <ul class="list-group ui-sortable">
  367. <?php
  368. foreach($file_db->query('SELECT * FROM tabs ORDER BY `order` asc') as $key => $row) {
  369. if (!isset($row['id'])) { $row['id'] = $key + 1; }
  370. echo printTabRow($row);
  371. }
  372. ?>
  373. </ul>
  374. </div>
  375. </div>
  376. </form>
  377. <?php echo printTabRow(false); ?>
  378. </div>
  379. </div>
  380. </div>
  381. </div>
  382. </div>
  383. <div class="email-content color-box white-bg">
  384. <?php
  385. // Build Colour Settings
  386. echo buildSettings(
  387. array(
  388. 'title' => 'Appearance Settings',
  389. 'id' => 'appearance_settings',
  390. 'submitAction' => 'update-appearance',
  391. 'tabs' => array(
  392. array(
  393. 'title' => 'Colours',
  394. 'id' => 'theme_colours',
  395. 'image' => 'images/paint.png',
  396. 'fields' => array(
  397. array(
  398. array(
  399. 'type' => 'button',
  400. 'labelTranslate' => 'CHOOSE_THEME',
  401. 'icon' => 'css3',
  402. 'id' => 'themeSelector',
  403. 'buttonType' => 'dark',
  404. 'buttonDrop' => '
  405. <ul class="dropdown-menu gray-bg">
  406. <li class="chooseTheme" id="plexTheme" style="border: 1px #FFFFFF; border-style: groove; background: #000000; border-radius: 5px; margin: 5px;"><a style="color: #E49F0C !important;" href="#">Plex<span><img class="themeImage" src="images/themes/plex.png"></span></a></li>
  407. <li class="chooseTheme" id="newPlexTheme" style="border: 1px #E5A00D; border-style: groove; background: #282A2D; border-radius: 5px; margin: 5px;"><a style="color: #E5A00D !important;" href="#">New Plex<span><img class="themeImage" src="images/themes/newplex.png"></span></a></li>
  408. <li class="chooseTheme" id="embyTheme" style="border: 1px #FFFFFF; border-style: groove; background: #212121; border-radius: 5px; margin: 5px;"><a style="color: #52B54B !important;" href="#">Emby<span><img class="themeImage" src="images/themes/emby.png"></span></a></li>
  409. <li class="chooseTheme" id="bookTheme" style="border: 1px #FFFFFF; border-style: groove; background: #3B5998; border-radius: 5px; margin: 5px;"><a style="color: #FFFFFF !important;" href="#">Facebook<span><img class="themeImage" src="images/themes/facebook.png"></span></a></li>
  410. <li class="chooseTheme" id="spaTheme" style="border: 1px #66BBAE; border-style: groove; background: #66BBAE; border-radius: 5px; margin: 5px;"><a style="color: #5B391E !important;" href="#">Spa<span><img class="themeImage" src="images/themes/spa.png"></span></a></li>
  411. <li class="chooseTheme" id="darklyTheme" style="border: 1px #464545; border-style: groove; background: #375A7F; border-radius: 5px; margin: 5px;"><a style="color: #FFFFFF !important;" href="#">Darkly<span><img class="themeImage" src="images/themes/darkly.png"></span></a></li>
  412. <li class="chooseTheme" id="slateTheme" style="border: 1px #58C0DE; border-style: groove; background: #272B30; border-radius: 5px; margin: 5px;"><a style="color: #C8C8C8 !important;" href="#">Slate<span><img class="themeImage" src="images/themes/slate.png"></span></a></li>
  413. <li class="chooseTheme" id="monokaiTheme" style="border: 1px #AD80FD; border-style: groove; background: #333333; border-radius: 5px; margin: 5px;"><a style="color: #66D9EF !important;" href="#">Monokai<span><img class="themeImage" src="images/themes/monokai.png"></span></a></li>
  414. <li class="chooseTheme" id="thejokerTheme" style="border: 1px #CCC6CC; border-style: groove; background: #000000; border-radius: 5px; margin: 5px;"><a style="color: #CCCCCC !important;" href="#">The Joker<span><img class="themeImage" src="images/themes/joker.png"></span></a></li>
  415. <li class="chooseTheme" id="redTheme" style="border: 1px #eb6363; border-style: groove; background: #eb6363; border-radius: 5px; margin: 5px;"><a style="color: #FFFFFF !important;" href="#">Original Red<span><img class="themeImage" src="images/themes/original.png"></span></a></li>
  416. </ul>
  417. ',
  418. ),
  419. ),
  420. array(
  421. 'type' => 'header',
  422. 'labelTranslate' => 'TITLE',
  423. ),
  424. array(
  425. array(
  426. 'type' => 'text',
  427. 'format' => 'colour',
  428. 'labelTranslate' => 'TITLE',
  429. 'name' => 'title',
  430. 'id' => 'title',
  431. 'value' => $title,
  432. ),
  433. array(
  434. 'type' => 'text',
  435. 'format' => 'colour',
  436. 'class' => 'jscolor {hash:true}',
  437. 'labelTranslate' => 'TITLE_TEXT',
  438. 'name' => 'topbartext',
  439. 'id' => 'topbartext',
  440. 'value' => $topbartext,
  441. ),
  442. array(
  443. 'type' => 'text',
  444. 'format' => 'colour',
  445. 'class' => 'jscolor {hash:true}',
  446. 'labelTranslate' => 'LOADING_COLOR',
  447. 'name' => 'loading',
  448. 'id' => 'loading',
  449. 'value' => $loading,
  450. ),
  451. ),
  452. array(
  453. 'type' => 'header',
  454. 'labelTranslate' => 'NAVIGATION_BARS',
  455. ),
  456. array(
  457. array(
  458. 'type' => 'text',
  459. 'format' => 'colour',
  460. 'class' => 'jscolor {hash:true}',
  461. 'labelTranslate' => 'TOP_BAR',
  462. 'name' => 'topbar',
  463. 'id' => 'topbar',
  464. 'value' => $topbar,
  465. ),
  466. array(
  467. 'type' => 'text',
  468. 'format' => 'colour',
  469. 'class' => 'jscolor {hash:true}',
  470. 'labelTranslate' => 'BOTTOM_BAR',
  471. 'name' => 'bottombar',
  472. 'id' => 'bottombar',
  473. 'value' => $bottombar,
  474. ),
  475. array(
  476. 'type' => 'text',
  477. 'format' => 'colour',
  478. 'class' => 'jscolor {hash:true}',
  479. 'labelTranslate' => 'SIDE_BAR',
  480. 'name' => 'sidebar',
  481. 'id' => 'sidebar',
  482. 'value' => $sidebar,
  483. ),
  484. ),
  485. array(
  486. array(
  487. 'type' => 'text',
  488. 'format' => 'colour',
  489. 'class' => 'jscolor {hash:true}',
  490. 'labelTranslate' => 'HOVER_BG',
  491. 'name' => 'hoverbg',
  492. 'id' => 'hoverbg',
  493. 'value' => $hoverbg,
  494. ),
  495. array(
  496. 'type' => 'text',
  497. 'format' => 'colour',
  498. 'class' => 'jscolor {hash:true}',
  499. 'labelTranslate' => 'HOVER_TEXT',
  500. 'name' => 'hovertext',
  501. 'id' => 'hovertext',
  502. 'value' => $hovertext,
  503. ),
  504. ),
  505. array(
  506. 'type' => 'header',
  507. 'labelTranslate' => 'ACTIVE_TAB',
  508. ),
  509. array(
  510. array(
  511. 'type' => 'text',
  512. 'format' => 'colour',
  513. 'class' => 'jscolor {hash:true}',
  514. 'labelTranslate' => 'ACTIVE_TAB_BG',
  515. 'name' => 'activetabBG',
  516. 'id' => 'activetabBG',
  517. 'value' => $activetabBG,
  518. ),
  519. array(
  520. 'type' => 'text',
  521. 'format' => 'colour',
  522. 'class' => 'jscolor {hash:true}',
  523. 'labelTranslate' => 'ACTIVE_TAB_ICON',
  524. 'name' => 'activetabicon',
  525. 'id' => 'activetabicon',
  526. 'value' => $activetabicon,
  527. ),
  528. array(
  529. 'type' => 'text',
  530. 'format' => 'colour',
  531. 'class' => 'jscolor {hash:true}',
  532. 'labelTranslate' => 'ACTIVE_TAB_TEXT',
  533. 'name' => 'activetabtext',
  534. 'id' => 'activetabtext',
  535. 'value' => $activetabtext,
  536. ),
  537. ),
  538. array(
  539. 'type' => 'header',
  540. 'labelTranslate' => 'INACTIVE_TAB',
  541. ),
  542. array(
  543. array(
  544. 'type' => 'text',
  545. 'format' => 'colour',
  546. 'class' => 'jscolor {hash:true}',
  547. 'labelTranslate' => 'INACTIVE_ICON',
  548. 'name' => 'inactiveicon',
  549. 'id' => 'inactiveicon',
  550. 'value' => $inactiveicon,
  551. ),
  552. array(
  553. 'type' => 'text',
  554. 'format' => 'colour',
  555. 'class' => 'jscolor {hash:true}',
  556. 'labelTranslate' => 'INACTIVE_TEXT',
  557. 'name' => 'inactivetext',
  558. 'id' => 'inactivetext',
  559. 'value' => $inactivetext,
  560. ),
  561. ),
  562. ),
  563. ),
  564. array(
  565. 'title' => 'Custom CSS',
  566. 'id' => 'theme_css',
  567. 'image' => 'images/gear.png',
  568. 'fields' => array(
  569. array(
  570. 'type' => 'header',
  571. 'label' => 'Custom CSS',
  572. ),
  573. array(
  574. 'type' => 'textarea',
  575. 'name' => 'customCSS',
  576. 'value' => (file_exists('./custom.css')?file_get_contents('./custom.css'):''),
  577. 'rows' => 25,
  578. 'style' => 'background: #000; color: #FFF;',
  579. ),
  580. ),
  581. ),
  582. ),
  583. )
  584. );
  585. ?>
  586. </div>
  587. <div class="email-content homepage-box white-bg">
  588. <?php
  589. // Qualify most typical hostnames prior to form submission
  590. $urlPattern = '([hH][tT][tT][pP][sS]?):\/\/([\w\.\-]{1,250})(?::(\d{1,5}))?((?:\/[^?.\s]+))?';
  591. // Once configurable user groups is added change to select-multi to allow specific group selection
  592. $userSelectType = 'select';
  593. $userTypes = array(
  594. 'None' => 'false',
  595. 'User' => 'user|admin',
  596. 'Admin' => 'admin',
  597. );
  598. // Build Homepage Settings
  599. echo buildSettings(
  600. array(
  601. 'title' => 'Homepage Settings',
  602. 'id' => 'homepage_settings',
  603. 'onready' => '',
  604. 'tabs' => array(
  605. array(
  606. 'title' => 'General',
  607. 'id' => 'home_general',
  608. 'image' => 'images/gear.png',
  609. 'fields' => array(
  610. array(
  611. 'type' => $userSelectType,
  612. 'labelTranslate' => 'SHOW_HOMEPAGE',
  613. 'name' => 'homePageAuthNeeded',
  614. 'value' => HOMEPAGEAUTHNEEDED,
  615. 'options' => $userTypes,
  616. ),
  617. array(
  618. 'type' => 'checkbox',
  619. 'labelTranslate' => 'SPEED_TEST',
  620. 'name' => 'speedTest',
  621. 'value' => SPEEDTEST,
  622. ),
  623. /*
  624. array(
  625. 'type' => 'custom',
  626. 'labelTranslate' => 'SHOW_HOMEPAGE',
  627. 'html' => 'homePageAuthNeeded',
  628. 'name' => 'homePagelayout',
  629. 'value' => '',
  630. ),
  631. */
  632. ),
  633. ),
  634. array(
  635. 'title' => 'Plex',
  636. 'id' => 'plex',
  637. 'image' => 'images/plex.png',
  638. 'fields' => array(
  639. array(
  640. 'type' => $userSelectType,
  641. 'labelTranslate' => 'SHOW_ON_HOMEPAGE',
  642. 'name' => 'plexHomeAuth',
  643. 'value' => PLEXHOMEAUTH,
  644. 'options' => $userTypes,
  645. ),
  646. array(
  647. 'type' => 'text',
  648. 'placeholder' => 'http://hostname:32400',
  649. 'labelTranslate' => 'PLEX_URL',
  650. 'assist' => 'http://hostname:32400',
  651. 'name' => 'plexURL',
  652. 'pattern' => $urlPattern,
  653. 'value' => PLEXURL,
  654. ),
  655. array(
  656. 'type' => 'text',
  657. 'placeholder' => randString(20),
  658. 'labelTranslate' => 'PLEX_TOKEN',
  659. 'name' => 'plexToken',
  660. 'pattern' => '[a-zA-Z0-9]{20}',
  661. 'value' => PLEXTOKEN,
  662. ),
  663. array(
  664. 'type' => 'custom',
  665. 'html' => '<a href="https://support.plex.tv/hc/en-us/articles/204059436-Finding-an-authentication-token-X-Plex-Token">Plex Token Wiki Article</a>',
  666. ),
  667. array(
  668. array(
  669. 'type' => 'checkbox',
  670. 'labelTranslate' => 'RECENT_MOVIES',
  671. 'name' => 'plexRecentMovie',
  672. 'value' => PLEXRECENTMOVIE,
  673. ),
  674. array(
  675. 'type' => 'checkbox',
  676. 'labelTranslate' => 'RECENT_TV',
  677. 'name' => 'plexRecentTV',
  678. 'value' => PLEXRECENTTV,
  679. ),
  680. array(
  681. 'type' => 'checkbox',
  682. 'labelTranslate' => 'RECENT_MUSIC',
  683. 'name' => 'plexRecentMusic',
  684. 'value' => PLEXRECENTMUSIC,
  685. ),
  686. array(
  687. 'type' => 'checkbox',
  688. 'labelTranslate' => 'PLAYING_NOW',
  689. 'name' => 'plexPlayingNow',
  690. 'value' => PLEXPLAYINGNOW,
  691. ),
  692. array(
  693. 'type' => 'checkbox',
  694. 'labelTranslate' => 'SHOW_NAMES',
  695. 'name' => 'plexShowNames',
  696. 'value' => PLEXSHOWNAMES,
  697. ),
  698. ),
  699. ),
  700. ),
  701. array(
  702. 'title' => 'Emby',
  703. 'id' => 'emby',
  704. 'image' => 'images/emby.png',
  705. 'fields' => array(
  706. array(
  707. 'type' => $userSelectType,
  708. 'labelTranslate' => 'SHOW_ON_HOMEPAGE',
  709. 'name' => 'embyHomeAuth',
  710. 'value' => EMBYHOMEAUTH,
  711. 'options' => $userTypes,
  712. ),
  713. array(
  714. 'type' => 'text',
  715. 'placeholder' => 'http://hostname:8096/emby',
  716. 'labelTranslate' => 'EMBY_URL',
  717. 'assist' => 'http://hostname:8096 | https://hostname/emby | http://hostname:8096/emby',
  718. 'name' => 'embyURL',
  719. 'pattern' => $urlPattern,
  720. 'value' => EMBYURL,
  721. ),
  722. array(
  723. 'type' => 'text',
  724. 'placeholder' => randString(32),
  725. 'labelTranslate' => 'EMBY_TOKEN',
  726. 'name' => 'embyToken',
  727. 'pattern' => '[a-zA-Z0-9]{32}',
  728. 'value' => EMBYTOKEN,
  729. ),
  730. array(
  731. array(
  732. 'type' => 'checkbox',
  733. 'labelTranslate' => 'RECENT_MOVIES',
  734. 'name' => 'embyRecentMovie',
  735. 'value' => EMBYRECENTMOVIE,
  736. ),
  737. array(
  738. 'type' => 'checkbox',
  739. 'labelTranslate' => 'RECENT_TV',
  740. 'name' => 'embyRecentTV',
  741. 'value' => EMBYRECENTTV,
  742. ),
  743. array(
  744. 'type' => 'checkbox',
  745. 'labelTranslate' => 'RECENT_MUSIC',
  746. 'name' => 'embyRecentMusic',
  747. 'value' => EMBYRECENTMUSIC,
  748. ),
  749. array(
  750. 'type' => 'checkbox',
  751. 'labelTranslate' => 'PLAYING_NOW',
  752. 'name' => 'embyPlayingNow',
  753. 'value' => EMBYPLAYINGNOW,
  754. ),
  755. ),
  756. ),
  757. ),
  758. array(
  759. 'title' => 'Sonarr',
  760. 'id' => 'sonarr',
  761. 'image' => 'images/sonarr.png',
  762. 'fields' => array(
  763. array(
  764. 'type' => $userSelectType,
  765. 'labelTranslate' => 'SHOW_ON_HOMEPAGE',
  766. 'name' => 'sonarrHomeAuth',
  767. 'value' => SONARRHOMEAUTH,
  768. 'options' => $userTypes,
  769. ),
  770. array(
  771. 'type' => 'text',
  772. 'placeholder' => 'http://hostname:8989',
  773. 'labelTranslate' => 'SONARR_URL',
  774. 'assist' => 'http://hostname:8989 | hostname/sonarr | http://hostname:8989/sonarr',
  775. 'name' => 'sonarrURL',
  776. 'pattern' => $urlPattern,
  777. 'value' => SONARRURL,
  778. ),
  779. array(
  780. 'type' => 'text',
  781. 'placeholder' => randString(32),
  782. 'labelTranslate' => 'SONARR_KEY',
  783. 'name' => 'sonarrKey',
  784. 'pattern' => '[a-zA-Z0-9]{32}',
  785. 'value' => SONARRKEY,
  786. ),
  787. ),
  788. ),
  789. array(
  790. 'title' => 'Radarr',
  791. 'id' => 'radarr',
  792. 'image' => 'images/radarr.png',
  793. 'fields' => array(
  794. array(
  795. 'type' => $userSelectType,
  796. 'labelTranslate' => 'SHOW_ON_HOMEPAGE',
  797. 'name' => 'radarrHomeAuth',
  798. 'value' => RADARRHOMEAUTH,
  799. 'options' => $userTypes,
  800. ),
  801. array(
  802. 'type' => 'text',
  803. 'placeholder' => 'http://hostname:7878',
  804. 'labelTranslate' => 'RADARR_URL',
  805. 'assist' => 'http://hostname:7878 | hostname/radarr | http://hostname:7878/radarr',
  806. 'name' => 'radarrURL',
  807. 'pattern' => $urlPattern,
  808. 'value' => RADARRURL,
  809. ),
  810. array(
  811. 'type' => 'text',
  812. 'placeholder' => randString(32),
  813. 'labelTranslate' => 'RADARR_KEY',
  814. 'name' => 'radarrKey',
  815. 'pattern' => '[a-zA-Z0-9]{32}',
  816. 'value' => RADARRKEY,
  817. ),
  818. ),
  819. ),
  820. array(
  821. 'title' => 'Sickbeard/Sickrage',
  822. 'id' => 'sick',
  823. 'image' => 'images/sickrage.png',
  824. 'fields' => array(
  825. array(
  826. 'type' => $userSelectType,
  827. 'labelTranslate' => 'SHOW_ON_HOMEPAGE',
  828. 'name' => 'sickrageHomeAuth',
  829. 'value' => SICKRAGEHOMEAUTH,
  830. 'options' => $userTypes,
  831. ),
  832. array(
  833. 'type' => 'text',
  834. 'placeholder' => 'http://hostname:8081/sick',
  835. 'labelTranslate' => 'SICK_URL',
  836. 'assist' => 'http://hostname:8081 | hostname/sick | http://hostname:8081/sick',
  837. 'name' => 'sickrageURL',
  838. 'pattern' => $urlPattern,
  839. 'value' => SICKRAGEURL,
  840. ),
  841. array(
  842. 'type' => 'text',
  843. 'placeholder' => randString(32),
  844. 'labelTranslate' => 'SICK_KEY',
  845. 'name' => 'sickrageKey',
  846. 'value' => SICKRAGEKEY,
  847. ),
  848. ),
  849. ),
  850. array(
  851. 'title' => 'Headphones',
  852. 'id' => 'headphones',
  853. 'image' => 'images/headphones.png',
  854. 'fields' => array(
  855. array(
  856. 'type' => $userSelectType,
  857. 'labelTranslate' => 'SHOW_ON_HOMEPAGE',
  858. 'name' => 'headphonesHomeAuth',
  859. 'value' => HEADPHONESHOMEAUTH,
  860. 'options' => $userTypes,
  861. ),
  862. array(
  863. 'type' => 'text',
  864. 'placeholder' => 'http://hostname:8181',
  865. 'labelTranslate' => 'HEADPHONES_URL',
  866. 'assist' => 'http://hostname:8181',
  867. 'name' => 'headphonesURL',
  868. 'pattern' => $urlPattern,
  869. 'value' => HEADPHONESURL,
  870. ),
  871. array(
  872. 'type' => 'text',
  873. 'placeholder' => randString(32),
  874. 'labelTranslate' => 'HEADPHONES_KEY',
  875. 'name' => 'headphonesKey',
  876. 'value' => HEADPHONESKEY,
  877. ),
  878. ),
  879. ),
  880. array(
  881. 'title' => 'Sabnzbd',
  882. 'id' => 'sabnzbd',
  883. 'image' => 'images/sabnzbd.png',
  884. 'fields' => array(
  885. array(
  886. 'type' => $userSelectType,
  887. 'labelTranslate' => 'SHOW_ON_HOMEPAGE',
  888. 'name' => 'sabnzbdHomeAuth',
  889. 'value' => SABNZBDHOMEAUTH,
  890. 'options' => $userTypes,
  891. ),
  892. array(
  893. 'type' => 'text',
  894. 'placeholder' => 'http://hostname:8080/sabnzbd',
  895. 'labelTranslate' => 'SABNZBD_URL',
  896. 'assist' => 'http://hostname:8080 | http://hostname/sabnzbd | http://hostname:8080/sabnzbd',
  897. 'name' => 'sabnzbdURL',
  898. 'pattern' => $urlPattern,
  899. 'value' => SABNZBDURL,
  900. ),
  901. array(
  902. 'type' => 'text',
  903. 'placeholder' => randString(32),
  904. 'labelTranslate' => 'SABNZBD_KEY',
  905. 'name' => 'sabnzbdKey',
  906. 'value' => SABNZBDKEY,
  907. ),
  908. ),
  909. ),
  910. array(
  911. 'title' => 'nzbGET',
  912. 'id' => 'nzbget',
  913. 'image' => 'images/nzbget.png',
  914. 'fields' => array(
  915. array(
  916. 'type' => $userSelectType,
  917. 'labelTranslate' => 'SHOW_ON_HOMEPAGE',
  918. 'name' => 'nzbgetHomeAuth',
  919. 'value' => NZBGETHOMEAUTH,
  920. 'options' => $userTypes,
  921. ),
  922. array(
  923. 'type' => 'text',
  924. 'placeholder' => 'http://hostname:6789',
  925. 'labelTranslate' => 'NZBGET_URL',
  926. 'assist' => 'http://hostname:6789',
  927. 'name' => 'nzbgetURL',
  928. 'pattern' => $urlPattern,
  929. 'value' => NZBGETURL,
  930. ),
  931. array(
  932. 'type' => 'text',
  933. 'labelTranslate' => 'USERNAME',
  934. 'name' => 'nzbgetUsername',
  935. 'value' => NZBGETUSERNAME,
  936. ),
  937. array(
  938. 'type' => 'password',
  939. 'labelTranslate' => 'PASSWORD',
  940. 'name' => 'nzbgetPassword',
  941. 'value' => (empty(NZBGETPASSWORD)?'':randString(20)),
  942. ),
  943. ),
  944. ),
  945. array(
  946. 'title' => 'Calendar',
  947. 'id' => 'calendar',
  948. 'image' => 'images/calendar.png',
  949. 'fields' => array(
  950. array(
  951. 'type' => 'select',
  952. 'labelTranslate' => 'CALENDAR_START_DAY',
  953. 'name' => 'calendarStart',
  954. 'value' => CALENDARSTART,
  955. 'options' => array(
  956. explode('|', translate('DAYS'))[0] => '0',
  957. explode('|', translate('DAYS'))[1] => '1',
  958. explode('|', translate('DAYS'))[2] => '2',
  959. explode('|', translate('DAYS'))[3] => '3',
  960. explode('|', translate('DAYS'))[4] => '4',
  961. explode('|', translate('DAYS'))[5] => '5',
  962. explode('|', translate('DAYS'))[6] => '6',
  963. ),
  964. ),
  965. array(
  966. 'type' => 'select',
  967. 'labelTranslate' => 'DEFAULT',
  968. 'name' => 'calendarView',
  969. 'value' => CALENDARVIEW,
  970. 'options' => array(
  971. translate('MONTH') => 'month',
  972. translate('DAY') => 'basicDay',
  973. translate('WEEK') => 'basicWeek',
  974. ),
  975. ),
  976. array(
  977. 'type' => 'select',
  978. 'labelTranslate' => 'CALTIMEFORMAT',
  979. 'name' => 'calTimeFormat',
  980. 'value' => CALTIMEFORMAT,
  981. 'options' => array(
  982. '6p' => 'h(:mm)t',
  983. '6:00p' => 'h:mmt',
  984. '6:00' => 'h:mm',
  985. '18' => 'H(:mm)',
  986. '18:00' => 'H:mm',
  987. ),
  988. ),
  989. array(
  990. 'type' => 'number',
  991. 'placeholder' => '10',
  992. 'labelTranslate' => 'CALENDAR_START_DATE',
  993. 'name' => 'calendarStartDay',
  994. 'pattern' => '[1-9][0-9]+',
  995. 'value' => CALENDARSTARTDAY,
  996. ),
  997. array(
  998. 'type' => 'number',
  999. 'placeholder' => '10',
  1000. 'labelTranslate' => 'CALENDAR_END_DATE',
  1001. 'name' => 'calendarEndDay',
  1002. 'pattern' => '[1-9][0-9]+',
  1003. 'value' => CALENDARENDDAY,
  1004. ),
  1005. ),
  1006. ),
  1007. array(
  1008. 'title' => 'Notice',
  1009. 'id' => 'notice',
  1010. 'image' => 'images/pin.png',
  1011. 'fields' => array(
  1012. array(
  1013. 'type' => $userSelectType,
  1014. 'labelTranslate' => 'SHOW_ON_HOMEPAGE',
  1015. 'name' => 'homepageNoticeAuth',
  1016. 'value' => HOMEPAGENOTICEAUTH,
  1017. 'options' => $userTypes,
  1018. ),
  1019. array(
  1020. 'type' => $userSelectType,
  1021. 'labelTranslate' => 'NOTICE_LAYOUT',
  1022. 'name' => 'homepageNoticeLayout',
  1023. 'value' => HOMEPAGENOTICELAYOUT,
  1024. 'options' => array(
  1025. 'Elegant' => 'elegant',
  1026. 'Basic' => 'basic',
  1027. 'Jumbotron' => 'jumbotron',
  1028. ),
  1029. ),
  1030. array(
  1031. 'type' => $userSelectType,
  1032. 'labelTranslate' => 'NOTICE_COLOR',
  1033. 'name' => 'homepageNoticeType',
  1034. 'value' => HOMEPAGENOTICETYPE,
  1035. 'options' => array(
  1036. 'Green' => 'success',
  1037. 'Blue' => 'primary',
  1038. 'Gray' => 'gray',
  1039. 'Red' => 'danger',
  1040. 'Yellow' => 'warning',
  1041. 'Light Blue' => 'info',
  1042. ),
  1043. ),
  1044. array(
  1045. 'type' => 'text',
  1046. 'labelTranslate' => 'NOTICE_TITLE',
  1047. 'name' => 'homepageNoticeTitle',
  1048. 'value' => HOMEPAGENOTICETITLE,
  1049. ),
  1050. array(
  1051. 'type' => 'textarea',
  1052. 'labelTranslate' => 'NOTICE_MESSAGE',
  1053. 'name' => 'homepageNoticeMessage',
  1054. 'value' => HOMEPAGENOTICEMESSAGE,
  1055. 'rows' => 5,
  1056. 'class' => 'material no-code',
  1057. ),
  1058. ),
  1059. ),
  1060. array(
  1061. 'title' => 'Custom HTML 1',
  1062. 'id' => 'customhtml1',
  1063. 'image' => 'images/gear.png',
  1064. 'fields' => array(
  1065. array(
  1066. 'type' => $userSelectType,
  1067. 'labelTranslate' => 'SHOW_ON_HOMEPAGE',
  1068. 'name' => 'homepageCustomHTML1Auth',
  1069. 'value' => HOMEPAGECUSTOMHTML1AUTH,
  1070. 'options' => $userTypes,
  1071. ),
  1072. array(
  1073. 'type' => 'textarea',
  1074. 'labelTranslate' => 'CUSTOMHTML',
  1075. 'name' => 'homepageCustomHTML1',
  1076. 'value' => HOMEPAGECUSTOMHTML1,
  1077. 'rows' => 15,
  1078. 'style' => 'background: #000; color: #FFF;',
  1079. ),
  1080. ),
  1081. ),
  1082. ),
  1083. )
  1084. );
  1085. ?>
  1086. </div>
  1087. <div class="email-content advanced-box white-bg">
  1088. <?php
  1089. $backendOptions = array();
  1090. foreach (array_filter(get_defined_functions()['user'],function($v) { return strpos($v, 'plugin_auth_') === 0; }) as $value) {
  1091. $name = str_replace('plugin_auth_','',$value);
  1092. if (strpos($name, 'disabled') === false) {
  1093. $backendOptions[ucwords(str_replace('_',' ',$name))] = $name;
  1094. } else {
  1095. $backendOptions[$value()] = array(
  1096. 'value' => randString(),
  1097. 'disabled' => true,
  1098. );
  1099. }
  1100. }
  1101. ksort($backendOptions);
  1102. echo buildSettings(
  1103. array(
  1104. 'title' => 'Advanced Settings',
  1105. 'id' => 'advanced_settings',
  1106. 'onready' => '$(\'#authType_id\').trigger(\'change\')',
  1107. 'tabs' => array(
  1108. array(
  1109. 'title' => 'Backend Authentication',
  1110. 'id' => 'be_auth',
  1111. 'image' => 'images/security.png',
  1112. 'fields' => array(
  1113. array(
  1114. 'type' => 'select',
  1115. 'labelTranslate' => 'AUTHTYPE',
  1116. 'name' => 'authType',
  1117. 'value' => AUTHTYPE,
  1118. 'onchange' => 'if (this.value == \'internal\') { $(\'.be-auth, #authBackend_id, #authBackendCreate_id\').parent().hide(); } else { $(\'#authBackend_id, #authBackendCreate_id\').trigger(\'change\').parent().show(); }',
  1119. 'options' => array(
  1120. 'Organizr' => 'internal',
  1121. 'Organizr & Backend' => 'both',
  1122. // 'Backend' => 'external',
  1123. ),
  1124. ),
  1125. array(
  1126. 'type' => 'select',
  1127. 'labelTranslate' => 'AUTHBACKEND',
  1128. 'name' => 'authBackend',
  1129. 'onchange' => '$(\'.be-auth\').each(function() { $(this).parent().hide(); }); $(\'.be-auth-\'+this.value).each(function() { $(this).parent().show(); });',
  1130. 'value' => AUTHBACKEND,
  1131. 'options' => $backendOptions,
  1132. ),
  1133. array(
  1134. 'type' => 'select',
  1135. 'labelTranslate' => 'AUTHBACKENDCREATE',
  1136. 'name' => 'authBackendCreate',
  1137. 'value' => AUTHBACKENDCREATE,
  1138. 'options' => array(
  1139. translate('YES_CREATE') => 'true',
  1140. translate('NO_CREATE') => 'false',
  1141. ),
  1142. ),
  1143. array(
  1144. 'type' => 'text',
  1145. 'placeholder' => 'http://hostname:8181',
  1146. 'labelTranslate' => 'AUTHBACKENDHOST',
  1147. 'assist' => 'http(s)://hostname:8181 | Ldap(s)://localhost:389 | ftp(s)://localhost:21',
  1148. 'name' => 'authBackendHost',
  1149. 'class' => 'be-auth be-auth-ftp be-auth-ldap',
  1150. 'pattern' => '((?:[hH][tT][tT][pP]|[lL][dD][aA][pP]|[fF][tT][pP])[sS]?):\/\/([\w\.]{1,250})(?::(\d{1,5}))?((?:\/[^?.\s]+))?',
  1151. 'value' => AUTHBACKENDHOST,
  1152. ),
  1153. array(
  1154. 'type' => 'text',
  1155. 'placeholder' => 'domain',
  1156. 'labelTranslate' => 'AUTHBACKENDDOMAIN',
  1157. 'name' => 'authBackendDomain',
  1158. 'class' => 'be-auth be-auth-ldap',
  1159. 'value' => AUTHBACKENDDOMAIN,
  1160. ),
  1161. array(
  1162. 'type' => 'text',
  1163. 'placeholder' => 'http://hostname:8096/emby',
  1164. 'labelTranslate' => 'EMBY_URL',
  1165. 'assist' => 'http://hostname:8096 | https://hostname/emby | http://hostname:8096/emby',
  1166. 'class' => 'be-auth be-auth-emby_local be-auth-emby_all be-auth-emby_connect',
  1167. 'name' => 'embyURL',
  1168. 'pattern' => $urlPattern,
  1169. 'value' => EMBYURL,
  1170. ),
  1171. array(
  1172. 'type' => 'text',
  1173. 'placeholder' => randString(32),
  1174. 'labelTranslate' => 'EMBY_TOKEN',
  1175. 'name' => 'plexToken',
  1176. 'class' => 'be-auth be-auth-emby_all be-auth-emby_connect',
  1177. 'pattern' => '[a-zA-Z0-9]{32}',
  1178. 'value' => EMBYTOKEN,
  1179. ),
  1180. array(
  1181. 'type' => 'text',
  1182. 'labelTranslate' => 'PLEX_USERNAME',
  1183. 'name' => 'plexUsername',
  1184. 'class' => 'be-auth be-auth-plex',
  1185. 'value' => PLEXUSERNAME,
  1186. ),
  1187. array(
  1188. 'type' => 'password',
  1189. 'labelTranslate' => 'PLEX_PASSWORD',
  1190. 'name' => 'plexPassword',
  1191. 'class' => 'be-auth be-auth-plex',
  1192. 'value' => (empty(PLEXPASSWORD)?'':randString(20)),
  1193. ),
  1194. ),
  1195. ),
  1196. array(
  1197. 'title' => 'Super Advanced',
  1198. 'id' => 'super_advanced',
  1199. 'image' => 'images/gear.png',
  1200. 'fields' => array(
  1201. array(
  1202. 'type' => 'text',
  1203. 'placeholder' => '/home/www-data/',
  1204. 'labelTranslate' => 'DATABASE_PATH',
  1205. 'name' => 'database_Location',
  1206. 'value' => DATABASE_LOCATION,
  1207. ),
  1208. array(
  1209. 'type' => 'select',
  1210. 'labelTranslate' => 'SET_TIMEZONE',
  1211. 'name' => 'timezone',
  1212. 'value' => TIMEZONE,
  1213. 'options' => timezoneOptions(),
  1214. ),
  1215. array(
  1216. 'type' => 'text',
  1217. 'labelTranslate' => 'REGISTER_PASSWORD',
  1218. 'name' => 'registerPassword',
  1219. 'value' => REGISTERPASSWORD,
  1220. ),
  1221. array(
  1222. 'type' => 'text',
  1223. 'labelTranslate' => 'COOKIE_DOMAIN',
  1224. 'name' => 'domain',
  1225. 'value' => DOMAIN,
  1226. ),
  1227. array(
  1228. 'type' => 'password',
  1229. 'labelTranslate' => 'COOKIE_PASSWORD',
  1230. 'name' => 'cookiePassword',
  1231. 'value' => (empty(COOKIEPASSWORD)?'':randString(20)),
  1232. ),
  1233. array(
  1234. 'type' => 'text',
  1235. 'labelTranslate' => 'GIT_BRANCH',
  1236. 'placeholder' => 'Default: \'master\' - Development: \'develop\' OR \'cero-dev\'',
  1237. 'id' => 'git_branch_id',
  1238. 'name' => 'git_branch',
  1239. 'value' => GIT_BRANCH,
  1240. ),
  1241. array(
  1242. array(
  1243. 'type' => 'checkbox',
  1244. 'labelTranslate' => 'GIT_CHECK',
  1245. 'name' => 'git_check',
  1246. 'value' => GIT_CHECK,
  1247. ),
  1248. array(
  1249. 'type' => 'button',
  1250. 'id' => 'gitForceInstall',
  1251. 'labelTranslate' => 'GIT_FORCE',
  1252. 'icon' => 'gear',
  1253. 'onclick' => 'if ($(\'#git_branch_id[data-changed]\').length) { alert(\'Branch was altered, save settings first!\') } else { if (confirm(\''.translate('GIT_FORCE_CONFIRM').'\')) { ajax_request(\'POST\', \'forceBranchInstall\'); } }',
  1254. ),
  1255. ),
  1256. array(
  1257. 'type' => 'checkbox',
  1258. 'labelTranslate' => 'MULTIPLE_LOGINS',
  1259. 'name' => 'multipleLogin',
  1260. 'value' => MULTIPLELOGIN,
  1261. ),
  1262. ),
  1263. ),
  1264. array(
  1265. 'title' => 'Mail Settings',
  1266. 'id' => 'mail_settings',
  1267. 'image' => 'images/mail.png',
  1268. 'fields' => array(
  1269. array(
  1270. 'type' => 'text',
  1271. 'placeholder' => 'mail.provider.com',
  1272. 'labelTranslate' => 'SMTP_HOST',
  1273. 'name' => 'smtpHost',
  1274. 'pattern' => '([\w\.\-]{1,250})',
  1275. 'value' => SMTPHOST,
  1276. ),
  1277. array(
  1278. 'type' => 'number',
  1279. 'placeholder' => '465',
  1280. 'labelTranslate' => 'SMTP_HOST_PORT',
  1281. 'name' => 'smtpHostPort',
  1282. 'value' => SMTPHOSTPORT,
  1283. ),
  1284. array(
  1285. 'type' => 'text',
  1286. 'labelTranslate' => 'SMTP_HOST_USERNAME',
  1287. 'name' => 'smtpHostUsername',
  1288. 'value' => SMTPHOSTUSERNAME,
  1289. ),
  1290. array(
  1291. 'type' => 'password',
  1292. 'labelTranslate' => 'SMTP_HOST_PASSWORD',
  1293. 'name' => 'smtpHostPassword',
  1294. 'value' => (empty(SMTPHOSTPASSWORD)?'':randString(20)),
  1295. ),
  1296. array(
  1297. 'type' => 'text',
  1298. 'labelTranslate' => 'SMTP_HOST_SENDER_NAME',
  1299. 'name' => 'smtpHostSenderName',
  1300. 'value' => SMTPHOSTSENDERNAME,
  1301. ),
  1302. array(
  1303. 'type' => 'text',
  1304. 'labelTranslate' => 'SMTP_HOST_SENDER_EMAIL',
  1305. 'name' => 'smtpHostSenderEmail',
  1306. 'value' => SMTPHOSTSENDEREMAIL,
  1307. ),
  1308. array(
  1309. 'type' => 'select',
  1310. 'labelTranslate' => 'SMTP_HOST_AUTH',
  1311. 'name' => 'smtpHostType',
  1312. 'value' => SMTPHOSTTYPE,
  1313. 'options' => array(
  1314. 'ssl' => 'ssl',
  1315. 'tls' => 'tls',
  1316. ),
  1317. ),
  1318. array(
  1319. array(
  1320. 'type' => 'checkbox',
  1321. 'labelTranslate' => 'SMTP_HOST_AUTH',
  1322. 'name' => 'smtpHostAuth',
  1323. 'value' => SMTPHOSTAUTH,
  1324. ),
  1325. array(
  1326. 'type' => 'checkbox',
  1327. 'labelTranslate' => 'ENABLE_MAIL',
  1328. 'name' => 'enableMail',
  1329. 'value' => ENABLEMAIL,
  1330. ),
  1331. ),
  1332. ),
  1333. ),
  1334. array(
  1335. 'title' => 'Advanced Visual',
  1336. 'id' => 'advanced_visual',
  1337. 'image' => 'images/paint.png',
  1338. 'fields' => array(
  1339. array(
  1340. 'type' => 'text',
  1341. 'placeholder' => 'images/organizr.png',
  1342. 'labelTranslate' => 'LOADING_ICON_URL',
  1343. 'name' => 'loadingIcon',
  1344. 'value' => LOADINGICON,
  1345. ),
  1346. array(
  1347. 'type' => 'text',
  1348. 'placeholder' => 'images/organizr.png',
  1349. 'labelTranslate' => 'LOGO_URL_TITLE',
  1350. 'name' => 'titleLogo',
  1351. 'value' => TITLELOGO,
  1352. ),
  1353. array(
  1354. 'type' => 'select',
  1355. 'labelTranslate' => 'NOTIFICATION_TYPE',
  1356. 'name' => 'notifyEffect',
  1357. 'onchange' => 'parent.notify(\'This is an example popup!\', \'bullhorn\', \'success\', 4000, this.value.split(\'-\')[0], this.value.split(\'-\')[1]);',
  1358. 'value' => NOTIFYEFFECT,
  1359. 'options' => array(
  1360. 'Slide From Top' => 'bar-slidetop',
  1361. 'Exploader From Top' => 'bar-exploader',
  1362. 'Flip' => 'attached-flip',
  1363. 'Bouncy Flip' => 'attached-bouncyflip',
  1364. 'Growl Scale' => 'growl-scale',
  1365. 'Growl Genie' => 'growl-genie',
  1366. 'Growl Jelly' => 'growl-jelly',
  1367. 'Growl Slide' => 'growl-slide',
  1368. 'Spinning Box' => 'other-boxspinner',
  1369. 'Sliding' => 'other-thumbslider',
  1370. ),
  1371. ),
  1372. array(
  1373. array(
  1374. 'type' => 'checkbox',
  1375. 'labelTranslate' => 'ENABLE_LOADING_SCREEN',
  1376. 'name' => 'loadingScreen',
  1377. 'value' => LOADINGSCREEN,
  1378. ),
  1379. array(
  1380. 'type' => 'checkbox',
  1381. 'labelTranslate' => 'ENABLE_SLIMBAR',
  1382. 'name' => 'slimBar',
  1383. 'value' => SLIMBAR,
  1384. ),
  1385. array(
  1386. 'type' => 'checkbox',
  1387. 'labelTranslate' => 'GRAVATAR',
  1388. 'name' => 'gravatar',
  1389. 'value' => GRAVATAR,
  1390. ),
  1391. ),
  1392. ),
  1393. ),
  1394. ),
  1395. )
  1396. );
  1397. ?>
  1398. </div>
  1399. <div class="email-content donate-box white-bg">
  1400. <div class="email-body">
  1401. <div class="email-header gray-bg">
  1402. <button type="button" class="btn btn-danger btn-sm waves close-button"><i class="fa fa-close"></i></button>
  1403. <h1>Donate To Organizr</h1>
  1404. </div>
  1405. <div class="email-inner small-box">
  1406. <div class="email-inner-section">
  1407. <div class="small-box fade in" id="donate-org">
  1408. <div class="row">
  1409. <div class="col-lg-12">
  1410. <div class="big-box">
  1411. <div class="jumbotron">
  1412. <div class="container">
  1413. <h2><strong>Hey There <em class="gray"><?php echo ucwords($USER->username);?></em>,</strong></h2>
  1414. <br/>
  1415. <small>I had always said that I wouldn't take any donations for my work but some situations have changed in my life. By no means does anyone need to donate but if you choose to help out and show appreciation I would surely appreciate that very much. I do all of this for everyone and because I'm happy when i do it :)</small>
  1416. <br/><br/>
  1417. <small>I just want to take this time to thank you for even visiting this section of Organizr. Just by you clicking into this area makes me happy. Even the fact that you are still reading this makes me happy. I bet now you are wondering, why am I even still reading this... LOL, don't worry, I'm kinda laughing as I am typing this. Anywho, thank you for reading along and I hope you enjoy the rest of your day.</small>
  1418. <br/><br/>
  1419. <p class="pull-right"><i class="fa fa-heart fa-1x red loop-animation animated pulse" aria-hidden="true"></i> CauseFX</p>
  1420. </div>
  1421. </div>
  1422. </div>
  1423. </div>
  1424. </div>
  1425. <div class="row">
  1426. <div class="col-sm-6 col-lg-6">
  1427. <div class="content-box ultra-widget blue-bg" style="cursor: pointer;" onclick="window.open('https://paypal.me/causefx', '_blank')">
  1428. <div class="w-content big-box">
  1429. <div class="w-progress">
  1430. <span class="w-amount">PayPal</span>
  1431. <br>
  1432. <span class="text-uppercase w-name">Donate with PayPal</span>
  1433. </div>
  1434. <span class="w-refresh w-p-icon">
  1435. <span class="fa-stack fa-lg">
  1436. <i class="fa fa-square fa-stack-2x"></i>
  1437. <i class="fa fa-paypal blue fa-stack-1x fa-inverse"></i>
  1438. </span>
  1439. </span>
  1440. </div>
  1441. </div>
  1442. </div>
  1443. <div class="col-sm-6 col-lg-6">
  1444. <div class="content-box ultra-widget green-bg" style="cursor: pointer;" onclick="window.open('https://cash.me/$causefx', '_blank')">
  1445. <div class="w-content big-box">
  1446. <div class="w-progress">
  1447. <span class="w-amount">Square</span>
  1448. <br>
  1449. <span class="text-uppercase w-name">Donate with Square Cash</span>
  1450. </div>
  1451. <span class="w-refresh w-p-icon">
  1452. <span class="fa-stack fa-lg">
  1453. <i class="fa fa-square fa-stack-2x"></i>
  1454. <i class="fa fa-dollar green fa-stack-1x fa-inverse"></i>
  1455. </span>
  1456. </span>
  1457. </div>
  1458. </div>
  1459. </div>
  1460. </div>
  1461. </div>
  1462. </div>
  1463. </div>
  1464. </div>
  1465. </div>
  1466. <div class="email-content info-box white-bg">
  1467. <div class="email-body">
  1468. <div class="email-header gray-bg">
  1469. <button type="button" class="btn btn-danger btn-sm waves close-button"><i class="fa fa-close"></i></button>
  1470. <h1>About Organizr</h1>
  1471. </div>
  1472. <div class="email-inner small-box">
  1473. <div class="email-inner-section">
  1474. <div class="small-box fade in" id="about">
  1475. <h4><img src="images/organizr-logo-h-d.png" height="50px"></h4>
  1476. <p id="version"></p>
  1477. <p id="submitFeedback">
  1478. <a href='https://reddit.com/r/organizr' target='_blank' type='button' style="background: #AD80FD" class='btn waves btn-labeled btn-success btn text-uppercase waves-effect waves-float'><span class='btn-label'><i class='fa fa-reddit'></i></span>SUBREDDIT</a>
  1479. <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><?php echo $language->translate("SUBMIT_ISSUE");?></a>
  1480. <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><?php echo $language->translate("VIEW_ON_GITHUB");?></a>
  1481. <a href='https://gitter.im/Organizrr/Lobby' target='_blank' type='button' class='btn waves btn-labeled btn-dark btn text-uppercase waves-effect waves-float'><span class='btn-label'><i class='fa fa-comments-o'></i></span><?php echo $language->translate("CHAT_WITH_US");?></a>
  1482. <button type="button" class="class='btn waves btn-labeled btn-warning btn text-uppercase waves-effect waves-float" data-toggle="modal" data-target=".Help-Me-modal-lg"><span class='btn-label'><i class='fa fa-life-ring'></i></span><?php echo $language->translate("HELP");?></button>
  1483. <button id="deleteToggle" type="button" class="class='btn waves btn-labeled btn-danger btn text-uppercase waves-effect waves-float" ><span class='btn-label'><i class='fa fa-trash'></i></span><?php echo $language->translate("DELETE_DATABASE");?></button>
  1484. </p>
  1485. <div class="modal fade Help-Me-modal-lg" tabindex="-1" role="dialog">
  1486. <div class="modal-dialog modal-lg" role="document">
  1487. <div class="modal-content" style="color: <?php echo $topbartext;?> !important; background: <?php echo $topbar;?> !important;">
  1488. <div class="modal-header">
  1489. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  1490. <h4 class="modal-title"><?php echo $language->translate("HELP");?>!</h4>
  1491. </div>
  1492. <div class="modal-body" style="background: <?php echo $sidebar;?> !important;">
  1493. <div style="margin-bottom: 0px;" class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
  1494. <div style="color: <?php echo $topbartext;?> !important; background: <?php echo $topbar;?> !important;" class="panel panel-default">
  1495. <div class="panel-heading" role="tab" id="headingOne">
  1496. <h4 class="panel-title" style="text-decoration: none;" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
  1497. <?php echo $language->translate("ADDING_TABS");?>
  1498. </h4>
  1499. </div>
  1500. <div id="collapseOne" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne" aria-expanded="true">
  1501. <div class="panel-body">
  1502. <p><?php echo $language->translate("START_ADDING_TABS");?></p>
  1503. <ul>
  1504. <li><strong><?php echo $language->translate("TAB_URL");?></strong> <?php echo $language->translate("TAB_URL_ABOUT");?></li>
  1505. <li><strong><?php echo $language->translate("ICON_URL");?></strong> <?php echo $language->translate("ICON_URL_ABOUT");?></li>
  1506. <li><strong><?php echo $language->translate("DEFAULT");?></strong> <?php echo $language->translate("DEFAULT_ABOUT");?></li>
  1507. <li><strong><?php echo $language->translate("ACTIVE");?></strong> <?php echo $language->translate("ACTIVE_ABOUT");?></li>
  1508. <li><strong><?php echo $language->translate("USER");?></strong> <?php echo $language->translate("USER_ABOUT");?></li>
  1509. <li><strong><?php echo $language->translate("GUEST");?></strong> <?php echo $language->translate("GUEST_ABOUT");?></li>
  1510. <li><strong><?php echo $language->translate("NO_IFRAME");?></strong> <?php echo $language->translate("NO_IFRAME_ABOUT");?></li>
  1511. </ul>
  1512. </div>
  1513. </div>
  1514. </div>
  1515. <div style="color: <?php echo $topbartext;?> !important; background: <?php echo $topbar;?> !important;" class="panel panel-default">
  1516. <div class="panel-heading" role="tab" id="headingTwo">
  1517. <h4 class="panel-title" style="text-decoration: none;" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo">
  1518. <?php echo $language->translate("QUICK_ACCESS");?>
  1519. </h4>
  1520. </div>
  1521. <div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo" aria-expanded="true">
  1522. <div class="panel-body">
  1523. <p><?php echo $language->translate("QUICK_ACCESS_ABOUT");?> <mark><?php echo getServerPath(); ?>#Sonarr</mark></p>
  1524. </div>
  1525. </div>
  1526. </div>
  1527. <div style="color: <?php echo $topbartext;?> !important; background: <?php echo $topbar;?> !important;" class="panel panel-default">
  1528. <div class="panel-heading" role="tab" id="headingThree">
  1529. <h4 class="panel-title" style="text-decoration: none;" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseThree" aria-expanded="true" aria-controls="collapseThree">
  1530. <?php echo $language->translate("SIDE_BY_SIDE");?>
  1531. </h4>
  1532. </div>
  1533. <div id="collapseThree" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree" aria-expanded="true">
  1534. <div class="panel-body">
  1535. <p><?php echo $language->translate("SIDE_BY_SIDE_ABOUT");?></p>
  1536. <ul>
  1537. <li><?php echo $language->translate("SIDE_BY_SIDE_INSTRUCTIONS1");?></li>
  1538. <li><?php echo $language->translate("SIDE_BY_SIDE_INSTRUCTIONS2");?> [<i class='mdi mdi-refresh'></i>]</li>
  1539. <li><?php echo $language->translate("SIDE_BY_SIDE_INSTRUCTIONS3");?></li>
  1540. </ul>
  1541. </div>
  1542. </div>
  1543. </div>
  1544. <div style="color: <?php echo $topbartext;?> !important; background: <?php echo $topbar;?> !important;" class="panel panel-default">
  1545. <div class="panel-heading" role="tab" id="headingFour">
  1546. <h4 class="panel-title" style="text-decoration: none;" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseFour" aria-expanded="true" aria-controls="collapseFour">
  1547. <?php echo $language->translate("KEYBOARD_SHORTCUTS");?>
  1548. </h4>
  1549. </div>
  1550. <div id="collapseFour" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingFour" aria-expanded="true">
  1551. <div class="panel-body">
  1552. <p><?php echo $language->translate("KEYBOARD_SHORTCUTS_ABOUT");?></p>
  1553. <ul>
  1554. <li><keyboard class="key"><span>S</span></keyboard> + <keyboard class="key"><span>S</span></keyboard> <?php echo $language->translate("KEYBOARD_INSTRUCTIONS1");?></li>
  1555. <li><keyboard class="key"><span>F</span></keyboard> + <keyboard class="key"><span>F</span></keyboard> <?php echo $language->translate("KEYBOARD_INSTRUCTIONS6");?></li>
  1556. <li><keyboard class="key"><span>P</span></keyboard> + <keyboard class="key"><span>P</span></keyboard> <?php echo $language->translate("KEYBOARD_INSTRUCTIONS7");?></li>
  1557. <li><keyboard class="key"><span>M</span></keyboard> + <keyboard class="key"><span>M</span></keyboard> <?php echo $language->translate("KEYBOARD_INSTRUCTIONS8");?></li>
  1558. <li><keyboard class="key wide"><span>Ctrl</span></keyboard> + <keyboard class="key wide"><span>Shift</span></keyboard> + <keyboard class="key"><span>&darr;</span></keyboard> <?php echo $language->translate("KEYBOARD_INSTRUCTIONS2");?></li>
  1559. <li><keyboard class="key wide"><span>Ctrl</span></keyboard> + <keyboard class="key wide"><span>Shift</span></keyboard> + <keyboard class="key"><span>&uarr;</span></keyboard> <?php echo $language->translate("KEYBOARD_INSTRUCTIONS3");?></li>
  1560. <li><keyboard class="key wide"><span>Ctrl</span></keyboard> + <keyboard class="key wide"><span>Shift</span></keyboard> + <keyboard class="key"><span>1</span></keyboard> - <keyboard class="key"><span>9</span></keyboard> <?php echo $language->translate("KEYBOARD_INSTRUCTIONS5");?></li>
  1561. <li><keyboard class="key wide"><span>Esc</span></keyboard> + <keyboard class="key wide"><span>Esc</span></keyboard> <?php echo $language->translate("KEYBOARD_INSTRUCTIONS4");?></li>
  1562. </ul>
  1563. </div>
  1564. </div>
  1565. </div>
  1566. <div style="color: <?php echo $topbartext;?> !important; background: <?php echo $topbar;?> !important;" class="panel panel-default">
  1567. <div class="panel-heading" role="tab" id="headingFive">
  1568. <h4 class="panel-title" style="text-decoration: none;" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseFive" aria-expanded="true" aria-controls="collapseFive">
  1569. <?php echo $language->translate("TAB_NOT_LOADING");?>
  1570. </h4>
  1571. </div>
  1572. <div id="collapseFive" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingFive" aria-expanded="true">
  1573. <div class="panel-body">
  1574. <p><?php echo $language->translate("TAB_NOT_LOADING_ABOUT");?></p>
  1575. <?php
  1576. if(get_browser_name() == "Chrome") : echo get_browser_name() . ": <a href='https://chrome.google.com/webstore/detail/ignore-x-frame-headers/gleekbfjekiniecknbkamfmkohkpodhe' target='_blank'><strong>Ignore X-Frame headers</strong> by Guillaume Ryder</a>";
  1577. elseif(get_browser_name() == "Firefox") : echo get_browser_name() . ": <a href='https://addons.mozilla.org/en-us/firefox/addon/ignore-x-frame-options/' target='_blank'><strong>Ignore X-Frame headers</strong> by rjhoukema</a>";
  1578. else : echo "Sorry, currently there is no other alternative for " . get_browser_name(); endif;
  1579. ?>
  1580. </div>
  1581. </div>
  1582. </div>
  1583. <div style="color: <?php echo $topbartext;?> !important; background: <?php echo $topbar;?> !important;" class="panel panel-default">
  1584. <div class="panel-heading" role="tab" id="headingSix">
  1585. <h4 class="panel-title" style="text-decoration: none;" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseSix" aria-expanded="true" aria-controls="collapseSix">
  1586. <?php echo $language->translate("USER_ICONS");?>
  1587. </h4>
  1588. </div>
  1589. <div id="collapseSix" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingSix" aria-expanded="true">
  1590. <div class="panel-body">
  1591. <p><?php echo $language->translate("USER_ICONS_ABOUT");?> <a href="http://gravatar.com" target="_blank">gravatar.com</a></p>
  1592. </div>
  1593. </div>
  1594. </div>
  1595. <div style="color: <?php echo $topbartext;?> !important; background: <?php echo $topbar;?> !important;" class="panel panel-default">
  1596. <div class="panel-heading" role="tab" id="headingSeven">
  1597. <h4 class="panel-title" style="text-decoration: none;" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseSeven" aria-expanded="true" aria-controls="collapseSeven">
  1598. <?php echo $language->translate("TRANSLATIONS");?>
  1599. </h4>
  1600. </div>
  1601. <div id="collapseSeven" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingSeven" aria-expanded="true">
  1602. <div class="panel-body">
  1603. <p><?php echo $language->translate("TRANSLATIONS_ABOUT");?> <a href="https://github.com/causefx/Organizr/tree/develop/lang" target="_blank">Github Develop Branch</a></p>
  1604. </div>
  1605. </div>
  1606. </div>
  1607. </div>
  1608. </div>
  1609. <div class="modal-footer">
  1610. <button type="button" class="btn btn-default waves" data-dismiss="modal"><?php echo $language->translate("CLOSE");?></button>
  1611. </div>
  1612. </div>
  1613. </div>
  1614. </div>
  1615. <p id="whatsnew"></p>
  1616. <p id="downloadnow"></p>
  1617. <div id="deleteDiv" style="display: none;" class="panel panel-danger">
  1618. <div class="panel-heading">
  1619. <h3 class="panel-title"><?php echo $language->translate("DELETE_DATABASE");?></h3>
  1620. </div>
  1621. <div class="panel-body">
  1622. <div class="">
  1623. <p><?php echo $language->translate("DELETE_WARNING");?></p>
  1624. <form id="deletedb" method="post" onsubmit="ajax_request('POST', 'deleteDB'); return false;">
  1625. <button class="btn waves btn-labeled btn-danger pull-right text-uppercase waves-effect waves-float" type="submit">
  1626. <span class="btn-label"><i class="fa fa-trash"></i></span><?php echo $language->translate("DELETE_DATABASE");?>
  1627. </button>
  1628. </form>
  1629. </div>
  1630. </div>
  1631. </div>
  1632. <div class="timeline-container">
  1633. <div class="row">
  1634. <div class="col-lg-12">
  1635. <ul class="cbp_tmtimeline" id="versionHistory">
  1636. </ul>
  1637. <div class="btn-group-sm btn-group btn-group-justified">
  1638. <div id="loadMore" class="btn-group" role="group">
  1639. <button type="button" class="btn waves btn-primary waves-effect waves-float text-uppercase"><?php echo $language->translate("SHOW_MORE");?></button>
  1640. </div>
  1641. <div id="showLess" class="btn-group" role="group">
  1642. <button type="button" class="btn waves btn-warning waves-effect waves-float text-uppercase"><?php echo $language->translate("SHOW_LESS");?></button>
  1643. </div>
  1644. </div>
  1645. </div>
  1646. </div>
  1647. </div>
  1648. </div>
  1649. </div>
  1650. </div>
  1651. </div>
  1652. </div>
  1653. <div class="email-content users-box white-bg">
  1654. <div class="email-body">
  1655. <div class="email-header gray-bg">
  1656. <button type="button" class="btn btn-danger btn-sm waves close-button"><i class="fa fa-close"></i></button>
  1657. <h1>Users Management</h1>
  1658. </div>
  1659. <div class="email-inner small-box">
  1660. <div class="email-inner-section">
  1661. <div class="small-box fade in" id="useredit">
  1662. <div class="row">
  1663. <div class="col-lg-12">
  1664. <div class="small-box">
  1665. <form class="content-form form-inline" name="new user registration" id="registration" action="" method="POST">
  1666. <input type="hidden" name="op" value="register"/>
  1667. <input type="hidden" name="sha1" value=""/>
  1668. <input type="hidden" name="settings" value="true"/>
  1669. <div class="form-group">
  1670. <input type="text" class="form-control material" name="username" placeholder="<?php echo $language->translate("USERNAME");?>" autocorrect="off" autocapitalize="off" value="">
  1671. </div>
  1672. <div class="form-group">
  1673. <input type="email" class="form-control material" name="email" placeholder="<?php echo $language->translate("EMAIL");?>">
  1674. </div>
  1675. <div class="form-group">
  1676. <input type="password" class="form-control material" name="password1" placeholder="<?php echo $language->translate("PASSWORD");?>">
  1677. </div>
  1678. <div class="form-group">
  1679. <input type="password" class="form-control material" name="password2" placeholder="<?php echo $language->translate("PASSWORD_AGAIN");?>">
  1680. </div>
  1681. <button type="submit" onclick="User.processRegistration()" class="btn waves btn-labeled btn-primary btn btn-sm text-uppercase waves-effect waves-float promoteUser">
  1682. <span class="btn-label"><i class="fa fa-user-plus"></i></span><?php echo $language->translate("CREATE_USER");?>
  1683. </button>
  1684. </form>
  1685. </div>
  1686. </div>
  1687. </div>
  1688. <div class="small-box">
  1689. <form class="content-form form-inline" name="unregister" id="unregister" action="" method="POST">
  1690. <p id="inputUsername"></p>
  1691. <div class="table-responsive">
  1692. <table class="table table-striped">
  1693. <thead>
  1694. <tr>
  1695. <th>#</th>
  1696. <th><?php echo $language->translate("USERNAME");?></th>
  1697. <th><?php echo $language->translate("EMAIL");?></th>
  1698. <th><?php echo $language->translate("LOGIN_STATUS");?></th>
  1699. <th><?php echo $language->translate("LAST_SEEN");?></th>
  1700. <th><?php echo $language->translate("USER_GROUP");?></th>
  1701. <th><?php echo $language->translate("USER_ACTIONS");?></th>
  1702. </tr>
  1703. </thead>
  1704. <tbody>
  1705. <?php $countUsers = 1;
  1706. foreach($gotUsers as $row) :
  1707. if($row['role'] == "admin" && $countUsers == 1) :
  1708. $userColor = "red";
  1709. $disableAction = "disabled=\"disabled\"";
  1710. else :
  1711. $userColor = "blue";
  1712. $disableAction = "";
  1713. endif;
  1714. if($row['active'] == "true") :
  1715. $userActive = $language->translate("LOGGED_IN");
  1716. $userActiveColor = "primary";
  1717. else :
  1718. $userActive = $language->translate("LOGGED_OUT");
  1719. $userActiveColor = "danger";
  1720. endif;
  1721. $userpic = md5( strtolower( trim( $row['email'] ) ) );
  1722. if(!empty($row["last"])) :
  1723. $lastActive = date("Y-m-d H:i", intval($row["last"]));
  1724. else :
  1725. $lastActive = "";
  1726. endif;
  1727. ?>
  1728. <tr id="<?=$row['username'];?>">
  1729. <th scope="row"><?=$countUsers;?></th>
  1730. <td><?php if(GRAVATAR == "true") : ?><i class="userpic"><img src="https://www.gravatar.com/avatar/<?=$userpic;?>?s=25&d=mm" class="img-circle"></i> &nbsp; <?php endif; ?><?=$row['username'];?></td>
  1731. <td><?=$row['email'];?></td>
  1732. <td><span class="label label-<?=$userActiveColor;?>"><?=$userActive;?></span></td>
  1733. <td><?=$lastActive;?></td>
  1734. <td><span class="text-uppercase <?=$userColor;?>"><?=$row['role'];?></span></td>
  1735. <td id="<?=$row['username'];?>">
  1736. <button <?=$disableAction;?> class="btn waves btn-labeled btn-danger btn btn-sm text-uppercase waves-effect waves-float deleteUser">
  1737. <span class="btn-label"><i class="fa fa-user-times"></i></span><?php echo $language->translate("DELETE");?>
  1738. </button>
  1739. <?php if ($row['role'] == "user") : ?>
  1740. <button class="btn waves btn-labeled btn-success btn btn-sm text-uppercase waves-effect waves-float promoteUser">
  1741. <span class="btn-label"><i class="fa fa-arrow-up"></i></span><?php echo $language->translate("PROMOTE");?>
  1742. </button>
  1743. <?php endif; ?>
  1744. <?php if ($row['role'] == "admin") : ?>
  1745. <button <?=$disableAction;?> class="btn waves btn-labeled btn-warning btn btn-sm text-uppercase waves-effect waves-float demoteUser">
  1746. <span class="btn-label"><i class="fa fa-arrow-down"></i></span><?php echo $language->translate("DEMOTE");?>
  1747. </button>
  1748. <?php endif; ?>
  1749. </td>
  1750. </tr>
  1751. <?php $countUsers++; endforeach; ?>
  1752. </tbody>
  1753. </table>
  1754. </div>
  1755. </form>
  1756. </div>
  1757. </div>
  1758. </div>
  1759. </div>
  1760. </div>
  1761. </div>
  1762. <div class="email-content logs-box white-bg">
  1763. <div class="email-body">
  1764. <div class="email-header gray-bg">
  1765. <button type="button" class="btn btn-danger btn-sm waves close-button"><i class="fa fa-close"></i></button>
  1766. <h1>Logs</h1>
  1767. </div>
  1768. <div class="email-inner small-box">
  1769. <div class="email-inner-section">
  1770. <div class="small-box" id="loginlog">
  1771. <div>
  1772. <?php if(file_exists("org.log")){ ?>
  1773. <button id="viewOrgLogs" class="btn waves btn-labeled gray-bg text-uppercase waves-effect waves-float" type="button"><span class="btn-label"><i class="fa fa-terminal"></i></span>Organizr Log </button>
  1774. <?php } if(file_exists(FAIL_LOG)){ ?>
  1775. <button id="viewLoginLogs" class="btn waves btn-labeled grayish-blue-bg text-uppercase waves-effect waves-float" type="button" style="display: none"><span class="btn-label"><i class="fa fa-user"></i></span>Login Log </button>
  1776. <?php } ?>
  1777. </div>
  1778. <?php if(file_exists("org.log")){ ?>
  1779. <div id="orgLogTable" class="table-responsive" style="display: none">
  1780. <table id="orgLogs" class="display">
  1781. <thead>
  1782. <tr>
  1783. <th><?php echo $language->translate("DATE");?></th>
  1784. <th><?php echo $language->translate("STATUS");?></th>
  1785. <th><?php echo $language->translate("TYPE");?></th>
  1786. </tr>
  1787. </thead>
  1788. <tbody>
  1789. <?php readLog(); ?>
  1790. </tbody>
  1791. </table>
  1792. </div>
  1793. <?php } ?>
  1794. <div id="loginTable" class="table-responsive">
  1795. <?php if(file_exists(FAIL_LOG)){ ?>
  1796. <div id="loginStats">
  1797. <div class="content-box ultra-widget">
  1798. <div class="w-progress">
  1799. <span id="goodCount" class="w-amount green"></span>
  1800. <span id="badCount" class="w-amount red pull-right">3</span>
  1801. <br>
  1802. <span class="text-uppercase w-name"><?php echo $language->translate("GOOD_LOGINS");?></span>
  1803. <span class="text-uppercase w-name pull-right"><?php echo $language->translate("BAD_LOGINS");?></span>
  1804. </div>
  1805. <div class="progress progress-bar-sm zero-m">
  1806. <div id="goodPercent" class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%"></div>
  1807. <div id="badPercent" class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%"></div>
  1808. </div>
  1809. <div class="w-status clearfix">
  1810. <div id="goodTitle" class="w-status-title pull-left text-uppercase">20%</div>
  1811. <div id="badTitle" class="w-status-number pull-right text-uppercase">80%</div>
  1812. </div>
  1813. </div>
  1814. </div>
  1815. <table id="datatable" class="display">
  1816. <thead>
  1817. <tr>
  1818. <th><?php echo $language->translate("DATE");?></th>
  1819. <th><?php echo $language->translate("USERNAME");?></th>
  1820. <th><?php echo $language->translate("IP_ADDRESS");?></th>
  1821. <th><?php echo $language->translate("TYPE");?></th>
  1822. </tr>
  1823. </thead>
  1824. <tbody>
  1825. <?php
  1826. $getFailLog = str_replace("\r\ndate", "date", file_get_contents(FAIL_LOG));
  1827. $gotFailLog = json_decode($getFailLog, true);
  1828. $goodLogin = 0;
  1829. $badLogin = 0;
  1830. function getColor($colorTest){
  1831. if($colorTest == "bad_auth") :
  1832. $gotColorTest = "danger";
  1833. elseif($colorTest == "good_auth") :
  1834. $gotColorTest = "primary";
  1835. endif;
  1836. echo $gotColorTest;
  1837. }
  1838. foreach (array_reverse($gotFailLog["auth"]) as $key => $val) :
  1839. if($val["auth_type"] == "bad_auth") : $badLogin++; elseif($val["auth_type"] == "good_auth") : $goodLogin++; endif;
  1840. ?>
  1841. <tr>
  1842. <td><?=$val["date"];?></td>
  1843. <td><?=$val["username"];?></td>
  1844. <td><?=$val["ip"];?></td>
  1845. <td><span class="label label-<?php getColor($val["auth_type"]);?>"><?=$val["auth_type"];?></span></td>
  1846. </tr>
  1847. <?php endforeach; ?>
  1848. </tbody>
  1849. </table>
  1850. <?php
  1851. $totalLogin = $goodLogin + $badLogin;
  1852. $goodPercent = round(($goodLogin / $totalLogin) * 100);
  1853. $badPercent = round(($badLogin / $totalLogin) * 100);
  1854. };
  1855. if(!file_exists(FAIL_LOG)){
  1856. echo $language->translate("NOTHING_LOG");
  1857. }
  1858. ?>
  1859. </div>
  1860. </div>
  1861. </div>
  1862. </div>
  1863. </div>
  1864. </div>
  1865. </div>
  1866. <!--End Content-->
  1867. </div>
  1868. <script>
  1869. $(function () {
  1870. //Data Tables
  1871. $('#datatable').DataTable({
  1872. displayLength: 10,
  1873. dom: 'T<"clear">lfrtip',
  1874. responsive: true,
  1875. "order": [[ 0, 'desc' ]],
  1876. "language": {
  1877. "info": "<?php echo explosion($language->translate('SHOW_ENTRY_CURRENT'), 0);?> _START_ <?php echo explosion($language->translate('SHOW_ENTRY_CURRENT'), 1);?> _END_ <?php echo explosion($language->translate('SHOW_ENTRY_CURRENT'), 2);?> _TOTAL_ <?php echo explosion($language->translate('SHOW_ENTRY_CURRENT'), 3);?>",
  1878. "infoEmpty": "<?php echo $language->translate('NO_ENTRIES');?>",
  1879. "infoFiltered": "<?php echo explosion($language->translate('FILTERED'), 0);?> _MAX_ <?php echo explosion($language->translate('FILTERED'), 1);?>",
  1880. "lengthMenu": "<?php echo $language->translate('SHOW');?> _MENU_ <?php echo $language->translate('ENTRIES');?>",
  1881. "search": "",
  1882. "searchPlaceholder": "<?php echo $language->translate('SEARCH');?>",
  1883. "searchClass": "<?php echo $language->translate('SEARCH');?>",
  1884. "zeroRecords": "<?php echo $language->translate('NO_MATCHING');?>",
  1885. "paginate": {
  1886. "next": "<?php echo $language->translate('NEXT');?>",
  1887. "previous": "<?php echo $language->translate('PREVIOUS');?>",
  1888. }
  1889. }
  1890. });
  1891. });
  1892. $(function () {
  1893. //Data Tables
  1894. $('#orgLogs').DataTable({
  1895. displayLength: 10,
  1896. dom: 'T<"clear">lfrtip',
  1897. responsive: true,
  1898. "order": [[ 0, 'desc' ]],
  1899. "language": {
  1900. "info": "<?php echo explosion($language->translate('SHOW_ENTRY_CURRENT'), 0);?> _START_ <?php echo explosion($language->translate('SHOW_ENTRY_CURRENT'), 1);?> _END_ <?php echo explosion($language->translate('SHOW_ENTRY_CURRENT'), 2);?> _TOTAL_ <?php echo explosion($language->translate('SHOW_ENTRY_CURRENT'), 3);?>",
  1901. "infoEmpty": "<?php echo $language->translate('NO_ENTRIES');?>",
  1902. "infoFiltered": "<?php echo explosion($language->translate('FILTERED'), 0);?> _MAX_ <?php echo explosion($language->translate('FILTERED'), 1);?>",
  1903. "lengthMenu": "<?php echo $language->translate('SHOW');?> _MENU_ <?php echo $language->translate('ENTRIES');?>",
  1904. "search": "",
  1905. "searchPlaceholder": "<?php echo $language->translate('SEARCH');?>",
  1906. "searchClass": "<?php echo $language->translate('SEARCH');?>",
  1907. "zeroRecords": "<?php echo $language->translate('NO_MATCHING');?>",
  1908. "paginate": {
  1909. "next": "<?php echo $language->translate('NEXT');?>",
  1910. "previous": "<?php echo $language->translate('PREVIOUS');?>",
  1911. }
  1912. }
  1913. });
  1914. });
  1915. </script>
  1916. <script>
  1917. (function($) {
  1918. function startTrigger(e,data) {
  1919. var $elem = $(this);
  1920. $elem.data('mouseheld_timeout', setTimeout(function() {
  1921. $elem.trigger('mouseheld');
  1922. }, e.data));
  1923. }
  1924. function stopTrigger() {
  1925. var $elem = $(this);
  1926. clearTimeout($elem.data('mouseheld_timeout'));
  1927. }
  1928. var mouseheld = $.event.special.mouseheld = {
  1929. setup: function(data) {
  1930. var $this = $(this);
  1931. $this.bind('mousedown', +data || mouseheld.time, startTrigger);
  1932. $this.bind('mouseleave mouseup', stopTrigger);
  1933. },
  1934. teardown: function() {
  1935. var $this = $(this);
  1936. $this.unbind('mousedown', startTrigger);
  1937. $this.unbind('mouseleave mouseup', stopTrigger);
  1938. },
  1939. time: 200 // default to 750ms
  1940. };
  1941. })(jQuery);
  1942. $(function () {
  1943. //$(".todo ul").sortable();
  1944. $(".todo ul").sortable({
  1945. 'opacity': 0.9,
  1946. });
  1947. $("#submitTabs").on('submit', function (e) {
  1948. console.log('disabled this func')
  1949. return false;
  1950. });
  1951. $('#apply').on('click touchstart', function(){
  1952. window.parent.location.reload();
  1953. });
  1954. });
  1955. </script>
  1956. <script>
  1957. $("#iconHide").click(function(){
  1958. $( "div[class^='jFiler jFiler-theme-dragdropbox']" ).toggle();
  1959. });
  1960. $("#iconAll").click(function(){
  1961. $( "div[id^='viewAllIcons']" ).toggle();
  1962. });
  1963. $("#deleteToggle").click(function(){
  1964. $( "#deleteDiv" ).toggle();
  1965. });
  1966. $(".deleteUser").click(function(){
  1967. var parent_id = $(this).parent().attr('id');
  1968. editUsername = $('#unregister').find('#inputUsername');
  1969. $(editUsername).html('<input type="hidden" name="op" value="unregister"/><input type="hidden" name="username"value="' + parent_id + '" />');
  1970. });
  1971. $(".promoteUser").click(function(){
  1972. var parent_ids = $(this).parent().attr('id');
  1973. editUsername = $('#unregister').find('#inputUsername');
  1974. $(editUsername).html('<input type="hidden" name="op" value="update"/><input type="hidden" name="role" value="admin"/><input type="hidden" name="username"value="' + parent_ids + '" />');
  1975. });
  1976. $(".demoteUser").click(function(){
  1977. var parent_idz = $(this).parent().attr('id');
  1978. editUsername = $('#unregister').find('#inputUsername');
  1979. $(editUsername).html('<input type="hidden" name="op" value="update"/><input type="hidden" name="role" value="user"/><input type="hidden" name="username"value="' + parent_idz + '" />');
  1980. });
  1981. $("#viewOrgLogs, #viewLoginLogs").click(function(){
  1982. $('#orgLogTable').toggle();
  1983. $('#loginTable').toggle();
  1984. $('#viewOrgLogs').toggle();
  1985. $('#viewLoginLogs').toggle();
  1986. });
  1987. $('#showLess').hide();
  1988. $('#loadMore').click(function () {
  1989. x= (x+5 <= size_li) ? x+5 : size_li;
  1990. $('#versionHistory li:lt('+x+')').show();
  1991. $('#showLess').show();
  1992. if(x == size_li){
  1993. $('#loadMore').hide();
  1994. }
  1995. });
  1996. $('#showLess').click(function () {
  1997. $('#versionHistory li').not(':lt(2)').hide();
  1998. $('#loadMore').show();
  1999. $('#showLess').hide();
  2000. });
  2001. $('.icp-auto').iconpicker({placement: 'left', hideOnSelect: false, collision: true});
  2002. $("li[class^='list-group-item']").bind('mouseheld', function(e) {
  2003. $(this).find("span[class^='fa fa-hand-paper-o']").attr("class", "fa fa-hand-grab-o");
  2004. $(this).addClass("dragging");
  2005. $(this).find("div[class^='action-btns tabIconView']").addClass("animated swing");
  2006. $(this).mouseup(function() {
  2007. $(this).find("span[class^='fa fa-hand-grab-o']").attr("class", "fa fa-hand-paper-o");
  2008. $(this).removeClass("dragging");
  2009. $(this).find("div[class^='action-btns tabIconView']").removeClass("animated swing");
  2010. });
  2011. });
  2012. function copyToClipboard(elem) {
  2013. // create hidden text element, if it doesn't already exist
  2014. var targetId = "_hiddenCopyText_";
  2015. var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA";
  2016. var origSelectionStart, origSelectionEnd;
  2017. if (isInput) {
  2018. // can just use the original source element for the selection and copy
  2019. target = elem;
  2020. origSelectionStart = elem.selectionStart;
  2021. origSelectionEnd = elem.selectionEnd;
  2022. } else {
  2023. // must use a temporary form element for the selection and copy
  2024. target = document.getElementById(targetId);
  2025. if (!target) {
  2026. var target = document.createElement("textarea");
  2027. target.style.position = "absolute";
  2028. target.style.left = "-9999px";
  2029. target.style.top = "0";
  2030. target.id = targetId;
  2031. document.body.appendChild(target);
  2032. }
  2033. target.textContent = elem.textContent;
  2034. }
  2035. // select the content
  2036. var currentFocus = document.activeElement;
  2037. target.focus();
  2038. target.setSelectionRange(0, target.value.length);
  2039. // copy the selection
  2040. var succeed;
  2041. try {
  2042. succeed = document.execCommand("copy");
  2043. } catch(e) {
  2044. succeed = false;
  2045. }
  2046. // restore original focus
  2047. if (currentFocus && typeof currentFocus.focus === "function") {
  2048. //currentFocus.focus();
  2049. }
  2050. if (isInput) {
  2051. // restore prior selection
  2052. elem.setSelectionRange(origSelectionStart, origSelectionEnd);
  2053. } else {
  2054. // clear temporary content
  2055. target.textContent = "";
  2056. }
  2057. return succeed;
  2058. }
  2059. $("img[class^='allIcons']").click(function(){
  2060. $("textarea[id^='copyTarget']").val($(this).attr("src"));
  2061. copyToClipboard(document.getElementById("copyTarget"));
  2062. parent.notify("<?php echo $language->translate('ICON_COPY');?>","clipboard","success","5000", "<?=$notifyExplode[0];?>", "<?=$notifyExplode[1];?>");
  2063. $( "div[id^='viewAllIcons']" ).toggle();
  2064. });
  2065. $('body').on('click', 'b.allIcons', function() {
  2066. $("textarea[id^='copyTarget2']").val($(this).attr("title"));
  2067. copyToClipboard(document.getElementById("copyTarget2"));
  2068. parent.notify("<?php echo $language->translate('ICON_COPY');?>","clipboard","success","5000", "<?=$notifyExplode[0];?>", "<?=$notifyExplode[1];?>");
  2069. $( "div[class^='jFiler jFiler-theme-dragdropbox']" ).hide();
  2070. });
  2071. </script>
  2072. <script>
  2073. //Custom Themes
  2074. function changeColor(elementName, elementColor) {
  2075. var definedElement = document.getElementById(elementName);
  2076. definedElement.focus();
  2077. definedElement.value = elementColor;
  2078. definedElement.style.backgroundColor = elementColor;
  2079. $(definedElement).trigger('change');
  2080. }
  2081. $('#plexTheme').on('click touchstart', function(){
  2082. changeColor("topbartext", "#E49F0C");
  2083. changeColor("topbar", "#000000");
  2084. changeColor("bottombar", "#000000");
  2085. changeColor("sidebar", "#121212");
  2086. changeColor("hoverbg", "#FFFFFF");
  2087. changeColor("activetabBG", "#E49F0C");
  2088. changeColor("activetabicon", "#FFFFFF");
  2089. changeColor("activetabtext", "#FFFFFF");
  2090. changeColor("inactiveicon", "#949494");
  2091. changeColor("inactivetext", "#B8B8B8");
  2092. changeColor("loading", "#E49F0C");
  2093. changeColor("hovertext", "#000000");
  2094. });
  2095. $('#embyTheme').on('click touchstart', function(){
  2096. changeColor("topbartext", "#52B54B");
  2097. changeColor("topbar", "#212121");
  2098. changeColor("bottombar", "#212121");
  2099. changeColor("sidebar", "#121212");
  2100. changeColor("hoverbg", "#FFFFFF");
  2101. changeColor("activetabBG", "#52B54B");
  2102. changeColor("activetabicon", "#FFFFFF");
  2103. changeColor("activetabtext", "#FFFFFF");
  2104. changeColor("inactiveicon", "#949494");
  2105. changeColor("inactivetext", "#B8B8B8");
  2106. changeColor("loading", "#52B54B");
  2107. changeColor("hovertext", "#000000");
  2108. });
  2109. $('#bookTheme').on('click touchstart', function(){
  2110. changeColor("topbartext", "#FFFFFF");
  2111. changeColor("topbar", "#3B5998");
  2112. changeColor("bottombar", "#3B5998");
  2113. changeColor("sidebar", "#8B9DC3");
  2114. changeColor("hoverbg", "#FFFFFF");
  2115. changeColor("activetabBG", "#3B5998");
  2116. changeColor("activetabicon", "#FFFFFF");
  2117. changeColor("activetabtext", "#FFFFFF");
  2118. changeColor("inactiveicon", "#DFE3EE");
  2119. changeColor("inactivetext", "#DFE3EE");
  2120. changeColor("loading", "#FFFFFF");
  2121. changeColor("hovertext", "#000000");
  2122. });
  2123. $('#spaTheme').on('click touchstart', function(){
  2124. changeColor("topbartext", "#5B391E");
  2125. changeColor("topbar", "#66BBAE");
  2126. changeColor("bottombar", "#66BBAE");
  2127. changeColor("sidebar", "#C3EEE7");
  2128. changeColor("hoverbg", "#66BBAE");
  2129. changeColor("activetabBG", "#C6C386");
  2130. changeColor("activetabicon", "#FFFFFF");
  2131. changeColor("activetabtext", "#FFFFFF");
  2132. changeColor("inactiveicon", "#5B391E");
  2133. changeColor("inactivetext", "#5B391E");
  2134. changeColor("loading", "#5B391E");
  2135. changeColor("hovertext", "#000000");
  2136. });
  2137. $('#darklyTheme').on('click touchstart', function(){
  2138. changeColor("topbartext", "#FFFFFF");
  2139. changeColor("topbar", "#375A7F");
  2140. changeColor("bottombar", "#375A7F");
  2141. changeColor("sidebar", "#222222");
  2142. changeColor("hoverbg", "#464545");
  2143. changeColor("activetabBG", "#FFFFFF");
  2144. changeColor("activetabicon", "#464545");
  2145. changeColor("activetabtext", "#464545");
  2146. changeColor("inactiveicon", "#0CE3AC");
  2147. changeColor("inactivetext", "#0CE3AC");
  2148. changeColor("loading", "#FFFFFF");
  2149. changeColor("hovertext", "#000000");
  2150. });
  2151. $('#slateTheme').on('click touchstart', function(){
  2152. changeColor("topbartext", "#C8C8C8");
  2153. changeColor("topbar", "#272B30");
  2154. changeColor("bottombar", "#272B30");
  2155. changeColor("sidebar", "#32383E");
  2156. changeColor("hoverbg", "#58C0DE");
  2157. changeColor("activetabBG", "#3E444C");
  2158. changeColor("activetabicon", "#C8C8C8");
  2159. changeColor("activetabtext", "#FFFFFF");
  2160. changeColor("inactiveicon", "#C8C8C8");
  2161. changeColor("inactivetext", "#C8C8C8");
  2162. changeColor("loading", "#C8C8C8");
  2163. changeColor("hovertext", "#000000");
  2164. });
  2165. $('#defaultTheme').on('click touchstart', function(){
  2166. changeColor("topbartext", "#FFFFFF");
  2167. changeColor("topbar", "#eb6363");
  2168. changeColor("bottombar", "#eb6363");
  2169. changeColor("sidebar", "#000000");
  2170. changeColor("hoverbg", "#eb6363");
  2171. changeColor("activetabBG", "#eb6363");
  2172. changeColor("activetabicon", "#FFFFFF");
  2173. changeColor("activetabtext", "#FFFFFF");
  2174. changeColor("inactiveicon", "#FFFFFF");
  2175. changeColor("inactivetext", "#FFFFFF");
  2176. changeColor("loading", "#FFFFFF");
  2177. changeColor("hovertext", "#000000");
  2178. });
  2179. $('#redTheme').on('click touchstart', function(){
  2180. changeColor("topbartext", "#FFFFFF");
  2181. changeColor("topbar", "#eb6363");
  2182. changeColor("bottombar", "#eb6363");
  2183. changeColor("sidebar", "#000000");
  2184. changeColor("hoverbg", "#eb6363");
  2185. changeColor("activetabBG", "#eb6363");
  2186. changeColor("activetabicon", "#FFFFFF");
  2187. changeColor("activetabtext", "#FFFFFF");
  2188. changeColor("inactiveicon", "#FFFFFF");
  2189. changeColor("inactivetext", "#FFFFFF");
  2190. changeColor("loading", "#FFFFFF");
  2191. changeColor("hovertext", "#000000");
  2192. });
  2193. $('#monokaiTheme').on('click touchstart', function(){
  2194. changeColor("topbartext", "#66D9EF");
  2195. changeColor("topbar", "#333333");
  2196. changeColor("bottombar", "#333333");
  2197. changeColor("sidebar", "#393939");
  2198. changeColor("hoverbg", "#AD80FD");
  2199. changeColor("activetabBG", "#F92671");
  2200. changeColor("activetabicon", "#FFFFFF");
  2201. changeColor("activetabtext", "#FFFFFF");
  2202. changeColor("inactiveicon", "#66D9EF");
  2203. changeColor("inactivetext", "#66D9EF");
  2204. changeColor("loading", "#66D9EF");
  2205. changeColor("hovertext", "#000000");
  2206. });
  2207. $('#thejokerTheme').on('click touchstart', function(){
  2208. changeColor("topbartext", "#CCCCCC");
  2209. changeColor("topbar", "#000000");
  2210. changeColor("bottombar", "#000000");
  2211. changeColor("sidebar", "#121212");
  2212. changeColor("hoverbg", "#CCC6CC");
  2213. changeColor("activetabBG", "#A50CB0");
  2214. changeColor("activetabicon", "#FFFFFF");
  2215. changeColor("activetabtext", "#FFFFFF");
  2216. changeColor("inactiveicon", "#949494");
  2217. changeColor("inactivetext", "#B8B8B8");
  2218. changeColor("loading", "#CCCCCC");
  2219. changeColor("hovertext", "#000000");
  2220. });
  2221. $('#newPlexTheme').on('click touchstart', function(){
  2222. changeColor("topbartext", "#E5A00D");
  2223. changeColor("topbar", "#282A2D");
  2224. changeColor("bottombar", "#282A2D");
  2225. changeColor("sidebar", "#3F4245");
  2226. changeColor("hoverbg", "#E5A00D");
  2227. changeColor("activetabBG", "#282A2D");
  2228. changeColor("activetabicon", "#E5A00D");
  2229. changeColor("activetabtext", "#E5A00D");
  2230. changeColor("inactiveicon", "#F9F9F9");
  2231. changeColor("inactivetext", "#F9F9F9");
  2232. changeColor("loading", "#E5A00D");
  2233. changeColor("hovertext", "#E0E3E6");
  2234. });//$( "div" ).not( ".green, #blueone" )
  2235. $('textarea').not( ".no-code" ).numberedtextarea({
  2236. // font color for line numbers
  2237. color: null,
  2238. // border color
  2239. borderColor: 'null',
  2240. // CSS class to be added to the line numbers
  2241. class: null,
  2242. // if true Tab key creates indentation
  2243. allowTabChar: true,
  2244. });
  2245. $(".email-header .close-button").click(function () {
  2246. $(".email-content").removeClass("email-active");
  2247. $('html').removeClass("overhid");
  2248. $("#settings-list").find("li").removeClass("active");
  2249. });
  2250. $(document).mouseup(function (e)
  2251. {
  2252. var container = $(".email-content, .checkFrame, #content");
  2253. if (!container.is(e.target) && container.has(e.target).length === 0) {
  2254. $(".email-content").removeClass("email-active");
  2255. $('html').removeClass("overhid");
  2256. $("#settings-list").find("li").removeClass("active");
  2257. }
  2258. });
  2259. $( document ).on( 'keydown', function ( e ) {
  2260. if ( e.keyCode === 27 ) { // ESC
  2261. var container = $(".email-content");
  2262. if (!container.is(e.target) && container.has(e.target).length === 0) {
  2263. $(".email-content").removeClass("email-active");
  2264. $('html').removeClass("overhid");
  2265. $("#settings-list").find("li").removeClass("active");
  2266. }
  2267. }
  2268. });
  2269. $("#open-info, #open-users, #open-logs, #open-advanced, #open-homepage, #open-colors, #open-tabs, #open-donate ").on("click",function (e) {
  2270. $(".email-content").removeClass("email-active");
  2271. $('html').removeClass("overhid");
  2272. if($(window).width() < 768){
  2273. $('html').addClass("overhid");
  2274. }
  2275. var settingsBox = $('.'+$(this).attr("box"));
  2276. console.log($(this).attr("box"))
  2277. settingsBox.addClass("email-active");
  2278. $("#settings-list").find("li").removeClass("active");
  2279. $(this).parent().addClass("active");
  2280. $("<div class='refresh-preloader'><div class='la-timer la-dark'><div></div></div></div>").appendTo(settingsBox).show();
  2281. setTimeout(function(){
  2282. var refreshMailPreloader = settingsBox.find('.refresh-preloader'),
  2283. deletedMailBox = refreshMailPreloader.fadeOut(300, function(){
  2284. refreshMailPreloader.remove();
  2285. });
  2286. },600);
  2287. e.preventDefault();
  2288. });
  2289. function checkGithub() {
  2290. $.ajax({
  2291. type: "GET",
  2292. url: "https://api.github.com/repos/causefx/Organizr/releases",
  2293. dataType: "json",
  2294. success: function(github) {
  2295. var currentVersion = "<?php echo INSTALLEDVERSION;?>";
  2296. infoTabVersion = $('#about').find('#version');
  2297. infoTabVersionHistory = $('#about').find('#versionHistory');
  2298. infoTabNew = $('#about').find('#whatsnew');
  2299. infoTabDownload = $('#about').find('#downloadnow');
  2300. $.each(github, function(i,v) {
  2301. if(i === 0){
  2302. console.log(v.tag_name);
  2303. githubVersion = v.tag_name;
  2304. githubDescription = v.body;
  2305. githubName = v.name;
  2306. }
  2307. $(infoTabVersionHistory).append('<li style="display: none"><time class="cbp_tmtime" datetime="' + v.published_at + '"><span>' + v.published_at.substring(0,10) + '</span> <span>' + v.tag_name + '</span></time><div class="cbp_tmicon animated jello"><i class="fa fa-github-alt"></i></div><div class="cbp_tmlabel"><h2 class="text-uppercase">' + v.name + '</h2><p>' + v.body + '</p></div></li>');
  2308. size_li = $("#versionHistory li").size();
  2309. x=2;
  2310. $('#versionHistory li:lt('+x+')').show();
  2311. });
  2312. if(currentVersion < githubVersion){
  2313. console.log("You Need To Upgrade");
  2314. parent.notify("<strong><?php echo $language->translate("NEW_VERSION");?></strong> <?php echo $language->translate("CLICK_INFO");?>","arrow-circle-o-down","warning","50000", "<?=$notifyExplode[0];?>", "<?=$notifyExplode[1];?>");
  2315. $(infoTabNew).html("<br/><h4><strong><?php echo $language->translate("WHATS_NEW");?> " + githubVersion + "</strong></h4><strong><?php echo $language->translate("TITLE");?>: </strong>" + githubName + " <br/><strong><?php echo $language->translate("CHANGES");?>: </strong>" + githubDescription);
  2316. <?php if (extension_loaded("ZIP")){?>
  2317. $(infoTabDownload).html("<br/><form style=\"display:initial;\" id=\"upgradeOrg\" method=\"post\" onsubmit=\"ajax_request(\'POST\', \'upgradeInstall\'); return false;\"><input type=\"hidden\" name=\"action\" value=\"upgrade\" /><button class=\"btn waves btn-labeled btn-success text-uppercase waves-effect waves-float\" type=\"submit\"><span class=\"btn-label\"><i class=\"fa fa-refresh\"></i></span><?php echo $language->translate("AUTO_UPGRADE");?></button></form> <a href='https://github.com/causefx/Organizr/archive/master.zip' target='_blank' type='button' class='btn waves btn-labeled btn-success text-uppercase waves-effect waves-float'><span class='btn-label'><i class='fa fa-download'></i></span>Organizr v." + githubVersion + "</a>");
  2318. $( "p[id^='upgrade']" ).toggle();
  2319. <?php }else{ ?>
  2320. $(infoTabDownload).html("<br/><a href='https://github.com/causefx/Organizr/archive/master.zip' target='_blank' type='button' class='btn waves btn-labeled btn-success text-uppercase waves-effect waves-float'><span class='btn-label'><i class='fa fa-download'></i></span>Organizr v." + githubVersion + "</a>");
  2321. $( "p[id^='upgrade']" ).toggle();
  2322. <?php } ?>
  2323. }else if(currentVersion === githubVersion){
  2324. console.log("You Are on Current Version");
  2325. }else{
  2326. console.log("something went wrong");
  2327. }
  2328. $(infoTabVersion).html("<strong><?php echo $language->translate("INSTALLED_VERSION");?>: </strong>" + currentVersion + " <strong><?php echo $language->translate("CURRENT_VERSION");?>: </strong>" + githubVersion + " <strong><?php echo $language->translate("DATABASE_PATH");?>: </strong> <?php echo htmlentities(DATABASE_LOCATION);?>");
  2329. }
  2330. });
  2331. }
  2332. </script>
  2333. <script>
  2334. $( document ).ready(function() {
  2335. //AJAX Submit for URL Check
  2336. $('#urlTestForm_submit').on('click', function () {
  2337. ajax_request('POST', 'check-url', {
  2338. checkurl: $('#urlTestForm [name=url-test]').val(),
  2339. });
  2340. });
  2341. //Hide Icon box on load
  2342. $( "div[class^='jFiler jFiler-theme-dragdropbox']" ).hide();
  2343. //Set Some Scrollbars
  2344. $(".scroller-body").niceScroll({
  2345. railpadding: {top:0,right:0,left:0,bottom:0}
  2346. });
  2347. $(".email-content").niceScroll({
  2348. railpadding: {top:0,right:0,left:0,bottom:0}
  2349. });
  2350. $("textarea").niceScroll({
  2351. railpadding: {top:0,right:0,left:0,bottom:0}
  2352. });
  2353. //Stop Div behind From Scrolling
  2354. $( '.email-content' ).on( 'mousewheel', function ( e ) {
  2355. e.preventDefault();
  2356. }, false);
  2357. //Set Hide Function
  2358. if (0) {
  2359. var authTypeFunc = function() {
  2360. // Hide Everything
  2361. $('#host-selected, #host-other, #host-plex, #host-emby, #host-ldap').hide();
  2362. // Qualify Auth Type
  2363. if($('#authType').val() !== "internal"){
  2364. $( '#host-selected' ).show();
  2365. // Qualify aithBackend
  2366. if($('#authBackend').val() === "plex"){
  2367. $('#host-selected, #host-plex').show();
  2368. }else if($('#authBackend').val().indexOf("emby")>=0){
  2369. $('#host-selected, #host-other, #host-emby').show();
  2370. }else if($('#authBackend').val() === "ldap"){
  2371. $('#host-selected, #host-other, #host-ldap').show();
  2372. }else {
  2373. $('#host-selected, #host-other').show();
  2374. }
  2375. }
  2376. }
  2377. //Hide Settings on selection
  2378. $('#authType, #authBackend').on('change', authTypeFunc);
  2379. //Hide Settings on Load
  2380. authTypeFunc();
  2381. } else { console.log() }
  2382. //Simulate Edit Tabs Click
  2383. //$("#open-tabs").trigger("click");
  2384. //Append Delete log to User Logs and Org Logs
  2385. $("#datatable_wrapper > div[class^='DTTT_container']").append('<form style="display: inline; margin-left: 3px;" id="deletelog" method="post" onsubmit="ajax_request(\'POST\', \'deleteLog\'); return false;"><input type="hidden" name="action" value="deleteLog" /><button class="btn waves btn-labeled btn-danger text-uppercase waves-effect waves-float" type="submit"><span class="btn-label"><i class="fa fa-trash"></i></span><?php echo $language->translate("PURGE_LOG");?> </button></form>');
  2386. $("#orgLogs_wrapper > div[class^='DTTT_container']").append('<form style="display: inline; margin-left: 3px;" id="deleteOrglog" method="post" onsubmit="ajax_request(\'POST\', \'deleteOrgLog\'); return false;"><input type="hidden" name="action" value="deleteOrgLog" /><button class="btn waves btn-labeled btn-danger text-uppercase waves-effect waves-float" type="submit"><span class="btn-label"><i class="fa fa-trash"></i></span><?php echo $language->translate("PURGE_LOG");?> </button></form>')
  2387. $("a[id^='ToolTables_datatable_0'] span").html('<?php echo $language->translate("PRINT");?>')
  2388. //Enable Tooltips
  2389. $('[data-toggle="tooltip"]').tooltip();
  2390. //AJAX call to github to get version info
  2391. <?php if (GIT_CHECK) { echo 'checkGithub()'; } ?>
  2392. //Edit Info tab with Github info
  2393. <?php if(file_exists(FAIL_LOG)) : ?>
  2394. goodCount = $('#loginStats').find('#goodCount');
  2395. goodPercent = $('#loginStats').find('#goodPercent');
  2396. goodTitle = $('#loginStats').find('#goodTitle');
  2397. badCount = $('#loginStats').find('#badCount');
  2398. badPercent = $('#loginStats').find('#badPercent');
  2399. badTitle = $('#loginStats').find('#badTitle');
  2400. $(goodCount).html("<?php echo $goodLogin;?>");
  2401. $(goodTitle).html("<?php echo $goodPercent;?>%");
  2402. $(goodPercent).attr('aria-valuenow', "<?php echo $goodPercent;?>");
  2403. $(goodPercent).attr('style', "width: <?php echo $goodPercent;?>%");
  2404. $(badCount).html("<?php echo $badLogin;?>");
  2405. $(badTitle).html("<?php echo $badPercent;?>%");
  2406. $(badPercent).attr('aria-valuenow', "<?php echo $badPercent;?>");
  2407. $(badPercent).attr('style', "width: <?php echo $badPercent;?>%");
  2408. <?php endif; ?>
  2409. });
  2410. </script>
  2411. </body>
  2412. </html>