瀏覽代碼

Added Recover Password
Edited Org logo
Added Mousewheel for owl
Edit SpeedTest title

causefx 8 年之前
父節點
當前提交
691f15c7a3
共有 9 個文件被更改,包括 125 次插入16 次删除
  1. 44 0
      api/functions/organizr-functions.php
  2. 13 0
      api/index.php
  3. 3 3
      api/pages/login.php
  4. 1 1
      api/plugins/js/speedTest.js
  5. 4 3
      index.php
  6. 52 7
      js/custom.js
  7. 1 2
      js/functions.js
  8. 7 0
      js/jquery.mousewheel.min.js
  9. 二進制
      plugins/images/organizr/logo-wide.png

+ 44 - 0
api/functions/organizr-functions.php

@@ -93,6 +93,50 @@ function register($array){
         return 'mismatch';
     }
 }
+function recover($array){
+    $email = $array['data']['email'];
+    $newPassword = randString(10);
+	try {
+		$connect = new Dibi\Connection([
+			'driver' => 'sqlite3',
+			'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
+		]);
+        $isUser = $connect->fetch('SELECT * FROM users WHERE email = ? COLLATE NOCASE',$email);
+        if($isUser){
+            $connect->query('
+                UPDATE users SET', [
+                    'password' => password_hash($newPassword, PASSWORD_BCRYPT)
+                ], '
+                WHERE email=? COLLATE NOCASE', $email);
+            if($GLOBALS['PHPMAILER-enabled']){
+    			$emailTemplate = array(
+    				'type' => 'reset',
+    				'body' => $GLOBALS['PHPMAILER-emailTemplateResetPassword'],
+    				'subject' => $GLOBALS['PHPMAILER-emailTemplateResetPasswordSubject'],
+    				'user' => $isUser['username'],
+    				'password' => $newPassword,
+    				'inviteCode' => null,
+    			);
+    			$emailTemplate = phpmEmailTemplate($emailTemplate);
+    			$sendEmail = array(
+    				'to' => $email,
+    				'user' => $isUser['username'],
+    				'subject' => $emailTemplate['subject'],
+    				'body' => phpmBuildEmail($emailTemplate),
+    			);
+    			phpmSendEmail($sendEmail);
+    		}
+            writeLog('success', 'User Management Function - User: '.$isUser['username'].'\'s password was reset', $isUser['username']);
+			return true;
+        }else{
+            writeLog('error', 'User Management Function - Error - User: '.$email.' An error Occured', $email);
+    		return 'an error occured';
+        }
+	} catch (Dibi\Exception $e) {
+		writeLog('error', 'User Management Function - Error - User: '.$email.' An error Occured', $email);
+		return 'an error occured';
+	}
+}
 function editUser($array){
     if($array['data']['username'] == '' && $array['data']['username'] == ''){
         return 'Username/email not set';

+ 13 - 0
api/index.php

@@ -574,6 +574,19 @@ switch ($function) {
                 break;
         }
         break;
+    case 'v1_recover':
+        switch ($method) {
+            case 'POST':
+                    $result['status'] = 'success';
+                    $result['statusText'] = 'success';
+                    $result['data'] = recover($_POST);
+                break;
+            default:
+                $result['status'] = 'error';
+                $result['statusText'] = 'The function requested is not defined for method: '.$method;
+                break;
+        }
+        break;
     case 'v1_upgrade':
     case 'v1_update':
     case 'v1_force':

+ 3 - 3
api/pages/login.php

@@ -71,7 +71,7 @@ $pageLogin = '
           </div>
         </div>
       </form>
-      <form class="form-horizontal" id="recoverform" action="">
+      <form class="form-horizontal" id="recoverform" onsubmit="return false;">
         <div class="form-group ">
           <div class="col-xs-12">
             <h3 lang="en">Recover Password</h3>
@@ -80,12 +80,12 @@ $pageLogin = '
         </div>
         <div class="form-group ">
           <div class="col-xs-12">
-            <input class="form-control" type="text" required="" placeholder="Email" lang="en">
+            <input id="recover-input" class="form-control" name="email" type="text" required="" placeholder="Email" lang="en" required>
           </div>
         </div>
         <div class="form-group text-center m-t-20">
           <div class="col-xs-12">
-            <button class="btn btn-primary btn-lg btn-block text-uppercase waves-effect waves-light" type="submit" lang="en">Reset</button>
+            <button class="btn btn-primary btn-lg btn-block text-uppercase waves-effect waves-light reset-button" type="submit" lang="en">Reset</button>
           </div>
         </div>
         <div class="form-group text-center m-t-20">

+ 1 - 1
api/plugins/js/speedTest.js

@@ -83,7 +83,7 @@ function speedTestLaunch(){
     }else{
         if(activeInfo.plugins["SPEEDTEST-enabled"] == true){
             if (activeInfo.user.groupID <= activeInfo.plugins.includes["SPEEDTEST-Auth-include"]) {
-                var menuList = `<li><a class="inline-popups speedTestModal" href="#speedtest-area" data-effect="mfp-zoom-out"><i class="fa fa-rocket fa-fw"></i> <span lang="en">Test Internet Speed</span></a></li>`;
+                var menuList = `<li><a class="inline-popups speedTestModal" href="#speedtest-area" data-effect="mfp-zoom-out"><i class="fa fa-rocket fa-fw"></i> <span lang="en">Test Server Speed</span></a></li>`;
 				var htmlDOM = `
 		    	<div id="speedtest-area" class="white-popup mfp-with-anim mfp-hide">
 		    		<div class="col-md-4 col-md-offset-4">

+ 4 - 3
index.php

@@ -99,9 +99,9 @@
 		<div class="error-page bg-org"></div>
 		<div class="login-area hidden"></div>
 		<div class="p-0" id="page-wrapper">
-			<div class="organizr-area"></div>
-			<div class="internal-listing p-0 hidden"></div>
-			<div class="iFrame-listing p-0 hidden"></div>
+		<div class="organizr-area"></div>
+		<div class="internal-listing p-0 hidden"></div>
+		<div class="iFrame-listing p-0 hidden"></div>
 		</div>
 		<!-- ============================================================== -->
 		<!-- End Page Content -->
@@ -150,6 +150,7 @@
     <script src="plugins/bower_components/bootstrap-select/bootstrap-select.min.js"></script>
 	<script src="plugins/bower_components/tinymce/tinymce.min.js"></script>
 	<script src="plugins/bower_components/multiselect/js/jquery.multi-select.js"></script>
+	<script src="js/jquery.mousewheel.min.js"></script>
 	<script src="https://cdn.plyr.io/3.1.0/plyr.js"></script>
 	<script src="https://apis.google.com/js/client.js?onload=googleApiClientReady"></script>
 	<script src="js/functions.js?v=<?php echo $GLOBALS['installedVersion']; ?>" ></script>

+ 52 - 7
js/custom.js

@@ -79,11 +79,6 @@ function pageLoad(){
         myLazyLoad.update();
     });
 
-
-
-
-
-
     /* ===== Collapsible Panels JS ===== */
 
     (function ($, window, document) {
@@ -456,7 +451,34 @@ $(document).on("click", ".register-button", function(e) {
         console.error("Organizr Function: Login Failed");
     });
 });
-
+$(document).on("click", ".reset-button", function(e) {
+    e.preventDefault;
+    var email = $('#recover-input').val();
+    if(email !== ''){
+		var post = {
+	        email:email
+		}
+        organizrAPI('POST','api/?v1/recover',post).success(function(data) {
+            var html = JSON.parse(data);
+            if(html.data == true){
+                message('Recover Password',' Email Sent','bottom-right','#FFF','success','10000');
+                $('#leave-recover').trigger('click');
+            }else if(html.data == 'an error occured'){
+                $.toast().reset('all');
+                message('Recover Error',' User Error','bottom-right','#FFF','warning','10000');
+                console.error('Organizr Function: Recover failed - Wrong Registration Password');
+            }else if(html.data == 'username taken'){
+                $.toast().reset('all');
+                message('Recover Error',' Registration Error - Username/Email Taken','bottom-right','#FFF','warning','10000');
+                console.error('Organizr Function: Recover Failed - Username/Email Taken');
+            }
+        }).fail(function(xhr) {
+            console.error("Organizr Function: Login Failed");
+        });
+    }else{
+        message('Recover Error','Enter Email','bottom-right','#FFF','warning','10000');
+    }
+});
 $(document).on("click", ".open-close", function () {
     $("body").toggleClass("show-sidebar");
 });
@@ -626,7 +648,6 @@ $(document).on("click", ".editUserAdmin", function () {
     if (post.password !== '' && post.password !== $('#edit-user-form [name=password2]').val()){
         message('Edit User Error',' Passwords do not match!','bottom-right','#FFF','warning','5000');
     }
-    console.log(post);
     if(post.id !== '' && post.username !== '' && post.email !== '' ){
         var callbacks = $.Callbacks();
         callbacks.add( buildUserManagement );
@@ -1691,3 +1712,27 @@ $(document).on("click", ".right-side-toggle", function () {
         fxhdr.attr('checked', false);
     }
 });
+$(document).on('mousewheel', '.recent-items .owl-stage', function (e) {
+    if (e.deltaY>0) {
+        $('.recent-items').trigger('next.owl');
+    } else {
+        $('.recent-items').trigger('prev.owl');
+    }
+    e.preventDefault();
+});
+$(document).on('mousewheel', '.playlist-items .owl-stage', function (e) {
+    if (e.deltaY>0) {
+        $('.playlist-items').trigger('next.owl');
+    } else {
+        $('.playlist-items').trigger('prev.owl');
+    }
+    e.preventDefault();
+});
+$(document).on('mousewheel', '.request-items .owl-stage', function (e) {
+    if (e.deltaY>0) {
+        $('.request-items').trigger('next.owl');
+    } else {
+        $('.request-items').trigger('prev.owl');
+    }
+    e.preventDefault();
+});

+ 1 - 2
js/functions.js

@@ -942,7 +942,7 @@ function buildCategoryEditor(){
 function settingsAPI(post, callbacks=null){
 	organizrAPI('POST',post.api,post).success(function(data) {
 		var response = JSON.parse(data);
-		console.log(data);
+		console.log(response);
 		message(post.messageTitle,post.messageBody,"bottom-right","#FFF","success","5000");
 		if(callbacks){ callbacks.fire(); }
 	}).fail(function(xhr) {
@@ -1004,7 +1004,6 @@ function updateUserInformation(){
 		ajaxloader(".content-wrap","in");
 		organizrAPI('POST','api/?v1/manage/user',post).success(function(data) {
 			var response = JSON.parse(data);
-			console.log(response);
 			if(response.data == true){
 				$.magnificPopup.close();
 				messageSingle('',window.lang.translate('User Info Updated'),'bottom-right','#FFF','success','5000');

文件差異過大導致無法顯示
+ 7 - 0
js/jquery.mousewheel.min.js


二進制
plugins/images/organizr/logo-wide.png


部分文件因文件數量過多而無法顯示