Browse Source

Merge pull request #1518 from causefx/v2-develop

V2 develop
causefx 5 years ago
parent
commit
ceff095ea5

+ 3 - 3
api/classes/organizr.class.php

@@ -58,7 +58,7 @@ class Organizr
 	
 	// ===================================
 	// Organizr Version
-	public $version = '2.1.74';
+	public $version = '2.1.83';
 	// ===================================
 	// Quick php Version check
 	public $minimumPHP = '7.2';
@@ -255,12 +255,12 @@ class Organizr
 	
 	public function checkRoute($request)
 	{
-		$route = $request->getUri()->getPath();
+		$route = '/api/v2/' . explode('api/v2/', $request->getUri()->getPath())[1];
 		$method = $request->getMethod();
 		$data = $this->apiData($request);
 		if (!in_array($route, $GLOBALS['bypass'])) {
 			if ($this->isApprovedRequest($method, $data) === false) {
-				$this->setAPIResponse('error', 'Not authorized', 401);
+				$this->setAPIResponse('error', 'Not authorized for current Route: ' . $route, 401);
 				$this->writeLog('success', 'Killed Attack From [' . (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'No Referer') . ']', $this->user['username']);
 				return false;
 			}

+ 1 - 1
api/homepage/jackett.php

@@ -100,7 +100,7 @@ trait JackettHomepageItem
 		$endpoint = $apiURL . '/api/v2.0/indexers/all/results?apikey=' . $this->config['jackettToken'] . '&Query=' . urlencode($query);
 		try {
 			$headers = array();
-			$options = array('timeout' => 60);
+			$options = array('timeout' => 120);
 			$response = Requests::get($endpoint, $headers, $options);
 			if ($response->success) {
 				$apiData = json_decode($response->body, true);

+ 2 - 38
api/pages/homepage.php

@@ -39,7 +39,7 @@ function get_page_homepage($Organizr = null)
 			    filterCalendar: {
 			      text: \'Filter\',
 			      click: function() {
-			        $(\'#calendar-filter-modal\').modal(\'show\');
+			        toggleCalendarFilter();
 			      },
 			      //icon: \'x\'
 			    },
@@ -105,42 +105,6 @@ $(".homepage-loading-box").fadeOut(5000);
     <div class="col-md-8 col-md-offset-2 youtube-div">  </div>
 </div>
 <!-- /.container-fluid -->
-<!--  modal content -->
-<div id="calendar-filter-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true" style="display: none;">
-    <div class="modal-dialog modal-sm">
-        <div class="modal-content">
-            <div class="modal-header">
-                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
-                <h4 class="modal-title" id="mySmallModalLabel" lane="en">Filter Calendar</h4> </div>
-            <div class="modal-body">
-            	<div class="row">
-                    
-                    <div class="col-md-12">
-                        <label class="control-label" lang="en">Choose Media Type</label>
-                        <select class="form-control form-white" data-placeholder="Choose media type" id="choose-calender-filter">
-                            <option value="all" lang="en">All</option>
-                            <option value="tv" lang="en">TV</option>
-                            <option value="film" lang="en">Movie</option>
-                            <option value="music" lang="en">Music</option>
-                        </select>
-                    </div>
-                    <div class="col-md-12">
-                        <label class="control-label" lang="en">Choose Media Status</label>
-                        <select class="form-control form-white" data-placeholder="Choose media status" id="choose-calender-filter-status">
-                            <option value="all" lang="en">All</option>
-                            <option value="text-success" lang="en">Downloaded</option>
-                            <option value="text-info" lang="en">Unaired</option>
-                            <option value="text-danger" lang="en">Missing</option>
-                            <option value="text-primary animated flash" lang="en">Premier</option>
-                        </select>
-                    </div>
-                </div>
-			</div>
-        </div>
-        <!-- /.modal-content -->
-    </div>
-    <!-- /.modal-dialog -->
-</div>
-<!-- /.modal -->
+
 ';
 }

+ 1 - 1
api/pages/settings.php

@@ -282,7 +282,7 @@ function get_page_settings($Organizr)
     							    <div class="col-lg-12">
                                         <div class="white-box bg-org">
 	                                        <div class="p-20 p-t-0 text-center">
-							                    <h4 class="font-medium">Backers</h4>
+							                    <h4 class="font-medium" lang="en">Backers</h4>
 							                    <ul class="dp-table m-t-30 backers-list"></ul>
 							                </div>
 						                </div>

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

@@ -24,7 +24,7 @@ function chatLaunch(){
                                 <ul class="chat-list p-t-30"></ul>
                                 <div class="row send-chat-box">
                                     <div class="col-sm-12">
-                                        <textarea class="form-control chat-input-send" placeholder="Type your message"></textarea>
+                                        <textarea class="form-control chat-input-send" placeholder="Type your message" lang="en"></textarea>
                                         <div class="custom-send">
                                             <button type="button" class="btn btn-info btn-lg custom-send-button"><i class="fa fa-paper-plane fa-2x"></i> </button>
                                         </div>

+ 1 - 1
index.php

@@ -158,7 +158,7 @@ $Organizr = new Organizr();
             <div class="modal-content">
                 <div class="modal-header">
                     <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
-                    <h4 class="modal-title" id="help-modal-title">Large modal</h4></div>
+                    <h4 class="modal-title" id="help-modal-title" lang="en">Large modal</h4></div>
                 <div class="modal-body" id="help-modal-body"></div>
             </div>
             <!-- /.modal-content -->

+ 0 - 3
js/custom.js

@@ -1713,9 +1713,6 @@ $(document).on('change', "#edit-tab-form-chooseIcon", function (e) {
 $(document).on('change', "#choose-calender-filter, #choose-calender-filter-status", function (e) {
     filter = $('#choose-calender-filter').val();
     filterDownload = $('#choose-calender-filter-status').val();
-    $('#calendar-filter-modal').modal('hide');
-    console.log("Calendar Filter: "+filter);
-    console.log("Calendar Filter: "+filterDownload);
     $('#calendar').fullCalendar('rerenderEvents');
     new SimpleBar($('.fc-scroller')[0]);
 });

File diff suppressed because it is too large
+ 0 - 0
js/custom.min.js


+ 61 - 15
js/functions.js

@@ -1042,9 +1042,9 @@ function buildAccordion(array, open = false){
         var id = mainId + '-' + i;
         items += `
         <div class="panel">
-            <div class="panel-heading bg-org" id="`+id+`-heading" role="tab"> <a class="panel-title `+collapsed+`" data-toggle="collapse" href="#`+id+`-collapse" data-parent="#`+mainId+`" aria-expanded="false" aria-controls="`+id+`-collapse"> `+v.title+` </a> </div>
+            <div class="panel-heading bg-org" id="`+id+`-heading" role="tab"> <a class="panel-title `+collapsed+`" data-toggle="collapse" href="#`+id+`-collapse" data-parent="#`+mainId+`" aria-expanded="false" aria-controls="`+id+`-collapse"> <span lang="en">`+v.title+`</span> </a> </div>
             <div class="panel-collapse `+collapse+`" id="`+id+`-collapse" aria-labelledby="`+id+`-heading" role="tabpanel">
-                <div class="panel-body"> `+v.body+` </div>
+                <div class="panel-body" lang="en"> `+v.body+` </div>
             </div>
         </div>
         `;
@@ -1801,7 +1801,7 @@ function buildFormGroup(array){
 		if(i == 'custom'){
 			group += v;
 		}else{
-		    uList += `<li role="presentation" class="`+active+`"><a href="#`+customID+cleanClass(i)+`" aria-controls="`+i+`" role="tab" data-toggle="tab" aria-expanded="false"><span> `+i+`</span></a></li>`;
+		    uList += `<li role="presentation" class="`+active+`"><a href="#`+customID+cleanClass(i)+`" aria-controls="`+i+`" role="tab" data-toggle="tab" aria-expanded="false"><span lang="en">`+i+`</span></a></li>`;
 			group += `
 				<!-- FORM GROUP -->
 				<div role="tabpanel" class="tab-pane fade in `+active+`" id="`+customID+cleanClass(i)+`">
@@ -2460,12 +2460,12 @@ function buildActiveTokens(array) {
                                 <thead>
                                     <tr>
                                         <th>#</th>
-                                        <th>Token</th>
-                                        <th>Created</th>
-                                        <th>Expires</th>
-                                        <th>Browser</th>
-                                        <th>IP</th>
-                                        <th>Action</th>
+                                        <th lang="en">Token</th>
+                                        <th lang="en">Created</th>
+                                        <th lang="en">Expires</th>
+                                        <th lang="en">Browser</th>
+                                        <th lang="en">IP</th>
+                                        <th lang="en">Action</th>
                                     </tr>
                                 </thead>
                                 <tbody>
@@ -2492,7 +2492,7 @@ function accountManager(user){
                         <div class="panel-wrapper collapse" aria-expanded="true">
                             <div class="panel-body bg-org">
                                 <p lang="en">If you signed in with a Plex Acct... Please use the following link to change your password there:</p><br>
-                                <p><a href="https://app.plex.tv/auth#?resetPassword" target="_blank">Change Password on Plex Website</a></p>
+                                <p><a href="https://app.plex.tv/auth#?resetPassword" target="_blank" lang="en">Change Password on Plex Website</a></p>
                             </div>
                         </div>
                     </div>
@@ -3387,7 +3387,9 @@ function updateCheck(){
             if (activeInfo.settings.misc.docker === false) {
                 messageSingle(window.lang.translate('Update Available'), latest + ' ' + window.lang.translate('is available, goto') + ' <a href="javascript:void(0)" onclick="tabActions(event,\'Settings\',0);clickPath(\'update\')"><span lang="en">Update Tab</span></a>', activeInfo.settings.notifications.position, '#FFF', 'update', '60000');
             }
-        }
+        }else{
+			organizrConsole('Update Function','Already running latest version: ' + latest, 'info');
+		}
 		$('#githubVersions').html(buildVersion(reverseObject(response)));
 	}).fail(function(xhr) {
 		OrganizrApiError(xhr);
@@ -3494,7 +3496,7 @@ function buildBackers(array){
 			}
 		}
 	});
-	backers += '<li><a href="https://opencollective.com/organizr" target="_blank" class="circle circle-md bg-info di" data-toggle="tooltip" title="" data-original-title="Join">You</a></li>';
+	backers += '<li><a href="https://opencollective.com/organizr" target="_blank" class="circle circle-md bg-info di" data-toggle="tooltip" title="" data-original-title="Join" lang="en">You</a></li>';
 	return backers;
 }
 function sponsorDetails(id){
@@ -8338,14 +8340,14 @@ function homepageJackett(){
 				`+header+`
 				<div class="panel-wrapper p-b-0 collapse in">
 					<div class="white-box">
-	                    <h3 class="box-title m-b-0">Search</h3>
+	                    <h3 class="box-title m-b-0" lang="en">Search</h3>
 	                    
 	                    <form onsubmit="searchJackett();return false;">
 	                        <div class="input-group m-b-30">
 	                        	<span class="input-group-btn hidden">
 									<button type="button" class="btn waves-effect waves-light btn-primary clearJackett" onclick="clearJackett();"><i class="fa fa-eraser"></i></button>
 								</span>
-	                            <input id="jackett-search-query" class="form-control" placeholder="Search for...">
+	                            <input id="jackett-search-query" class="form-control" placeholder="Search for..." lang="en">
 	                            <span class="input-group-btn">
 									<button type="submit" class="btn waves-effect waves-light btn-info"><i class="fa fa-search"></i></button>
 								</span>
@@ -9775,6 +9777,43 @@ function toggleDebug(){
 	});
 	getDebugPreInfo();
 }
+function toggleCalendarFilter(){
+	var div = `
+	<div id="calendar-filter-modal" class="panel panel-inverse">
+        <div class="panel-heading"><span class="text-uppercase" lang="en">Filter Calendar</span></div>
+        <div class="panel-wrapper collapse in" aria-expanded="true">
+            <div class="panel-body">
+	            <div class="row">
+                    <div class="col-md-12">
+                        <label class="control-label" lang="en">Choose Media Type</label>
+                        <select class="form-control form-white" data-placeholder="Choose media type" id="choose-calender-filter">
+                            <option value="all" lang="en">All</option>
+                            <option value="tv" lang="en">TV</option>
+                            <option value="film" lang="en">Movie</option>
+                            <option value="music" lang="en">Music</option>
+                        </select>
+                    </div>
+                    <div class="col-md-12">
+                        <label class="control-label" lang="en">Choose Media Status</label>
+                        <select class="form-control form-white" data-placeholder="Choose media status" id="choose-calender-filter-status">
+                            <option value="all" lang="en">All</option>
+                            <option value="text-success" lang="en">Downloaded</option>
+                            <option value="text-info" lang="en">Unaired</option>
+                            <option value="text-danger" lang="en">Missing</option>
+                            <option value="text-primary animated flash" lang="en">Premier</option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+        </div>
+	</div>
+	`;
+	swal({
+		content: createElementFromHTML(div),
+		className: 'bg-org',
+		button: false
+	});
+}
 function closeOrgError(){
     $('#main-org-error-container').removeClass('show');
     $('#main-org-error').html('');
@@ -10254,6 +10293,12 @@ function OrganizrApiError(xhr, secondaryMessage = null){
 	}
 	return false;
 }
+function checkForUpdates(){
+	if(activeInfo.user.loggedin && activeInfo.user.groupID <= 1){
+		updateCheck();
+		checkCommitLoad();
+	}
+}
 function launch(){
 	console.info('https://docs.organizr.app/books/setup-features/page/organizr-20--%3E-21-migration-guide');
 	organizrConsole('API V2 API','If you see a 404 Error for api/v2/launch below this line, you have not setup the new location block... See URL above this line', 'error');
@@ -10303,7 +10348,7 @@ function launch(){
 			        buildLanguage('wizard');
 			        break;
 		        case "dependencies":
-			        buildDependencyCheck(json.data);
+			        buildDependencyCheck(json);
 			        break;
 		        case "ok":
 			        loadAppearance(json.data.appearance);
@@ -10318,6 +10363,7 @@ function launch(){
 				        organizrSpecialSettings(json.data);
 				        getPingList(json);
 				        checkLocalForwardStatus(json.data);
+				        checkForUpdates();
 			        }
 			        loadCustomJava(json.data.appearance);
 			        if(getCookie('lockout')){

+ 7 - 0
js/version.json

@@ -299,5 +299,12 @@
     "new": "Add group to auth header",
     "fixed": "fix Traefik Redirection adds an . at ending (#1484)|fix issue with special character in password rutorrent module (#1511)|Unifi homepage item image|Radarr Test button|Sonarr Test button|Lidarr Test button|Arrs homepage items|rtorrent array fix|Healthchecks plugin",
     "notes": "Add Turkish language|Please join our discord if you have any issues|Please report bugs in GitHub issues page"
+  },
+  "2.1.83": {
+    "date": "2020-11-20 20:00",
+    "title": "Weekly update",
+    "new": "Update check on load instead of settings",
+    "fixed": "add clarification to checkRoute error message|Increase jackett timeout to 120 seconds|add language elements to more areas|rework calendar filter|fix checkroute if has subdir|fix dependency check",
+    "notes": "Please join our discord if you have any issues|Please report bugs in GitHub issues page"
   }
 }

Some files were not shown because too many files changed in this diff