Эх сурвалжийг харах

Panel - Logging: fire data loading on open accordion

DSR! 4 жил өмнө
parent
commit
ecce61d46f

+ 4 - 14
src/pineapple/modules/Logging/js/module.js

@@ -14,7 +14,6 @@ registerController('PineAPLogController', ['$api', '$scope', '$timeout', functio
         removeDuplicates: false
     };
 
-
     $scope.refreshLog = (function() {
         $scope.log = [];
         $scope.loadingPineapLog = true;
@@ -145,9 +144,8 @@ registerController('PineAPLogController', ['$api', '$scope', '$timeout', functio
 }]);
 
 registerController('SyslogController', ['$api', '$scope', function($api, $scope) {
-    $scope.syslog = 'Loading...';
-
-    $scope.refreshLog = (function() {
+    $scope.refreshLog = (function(force) {
+        $scope.syslog = 'Loading...';
         $api.request({
             module: 'Logging',
             action: 'getSyslog'
@@ -157,14 +155,11 @@ registerController('SyslogController', ['$api', '$scope', function($api, $scope)
             }
         })
     });
-
-    $scope.refreshLog();
 }]);
 
 registerController('DmesgController', ['$api', '$scope', function($api, $scope) {
-    $scope.dmesg = 'Loading...';
-
     $scope.refreshLog = (function() {
+        $scope.dmesg = 'Loading...';
         $api.request({
             module: 'Logging',
             action: 'getDmesg'
@@ -174,14 +169,11 @@ registerController('DmesgController', ['$api', '$scope', function($api, $scope)
             }
         })
     });
-
-    $scope.refreshLog();
 }]);
 
 registerController('ReportingLogController', ['$api', '$scope', function($api, $scope) {
-    $scope.reportingLog = '';
-
     $scope.refreshLog = (function() {
+        $scope.reportingLog = 'Loading...';
         $api.request({
             module: 'Logging',
             action: 'getReportingLog'
@@ -191,6 +183,4 @@ registerController('ReportingLogController', ['$api', '$scope', function($api, $
             }
         })
     });
-
-    $scope.refreshLog();
 }]);

+ 13 - 4
src/pineapple/modules/Logging/module.html

@@ -74,7 +74,7 @@
             </div>
         </div>
     </div>
-    <div class="panel panel-default" ng-controller="SyslogController">
+    <div id="syslogController" class="panel panel-default" ng-controller="SyslogController">
         <div class="panel-heading pointer" data-toggle="collapse" data-target="#Syslog" data-parent="#accordion">
             <h4 class="panel-title">System Log</h4>
         </div>
@@ -84,7 +84,7 @@
             </div>
         </div>
     </div>
-    <div class="panel panel-default" ng-controller="DmesgController">
+    <div id="dmesgController" class="panel panel-default" ng-controller="DmesgController">
         <div class="panel-heading pointer" data-toggle="collapse" data-target="#Dmesg" data-parent="#accordion">
             <h4 class="panel-title">Dmesg</h4>
         </div>
@@ -94,7 +94,7 @@
             </div>
         </div>
     </div>
-    <div class="panel panel-default" ng-controller="ReportingLogController">
+    <div id="reportingLogController" class="panel panel-default" ng-controller="ReportingLogController">
         <div class="panel-heading pointer" data-toggle="collapse" data-target="#Reporting" data-parent="#accordion">
             <h4 class="panel-title">Reporting Log</h4>
         </div>
@@ -105,4 +105,13 @@
             </div>
         </div>
     </div>
-</div>
+</div>
+
+<script type="text/javascript">
+    // dirty hack for handle bootstrap events
+    $(function() {
+        $('#syslogController,#dmesgController,#reportingLogController').on('shown.bs.collapse', function (event) {
+            angular.element(event.currentTarget).scope().refreshLog();
+        });
+    });
+</script>