Преглед на файлове

feat: add logs limit setting

Ahmad Kholid преди 2 години
родител
ревизия
34cfaec448
променени са 3 файла, в които са добавени 41 реда и са изтрити 24 реда
  1. 8 4
      src/background/workflowEngine/engine.js
  2. 32 20
      src/newtab/pages/settings/SettingsIndex.vue
  3. 1 0
      src/stores/main.js

+ 8 - 4
src/background/workflowEngine/engine.js

@@ -46,11 +46,11 @@ class WorkflowEngine {
     };
     this.rowData = {};
 
+    this.logsLimit = 1001;
     this.logHistoryId = 0;
 
     let variables = {};
     let { globalData } = workflow;
-
     if (options && options?.data) {
       globalData = options.data.globalData || globalData;
       variables = isObject(options.data.variables)
@@ -196,8 +196,7 @@ class WorkflowEngine {
 
       if (BROWSER_TYPE !== 'chrome') {
         this.workflow.settings.debugMode = false;
-      }
-      if (this.workflow.settings.debugMode) {
+      } else if (this.workflow.settings.debugMode) {
         chrome.debugger.onEvent.addListener(this.onDebugEvent);
       }
       if (
@@ -214,6 +213,11 @@ class WorkflowEngine {
         }
       }
 
+      const { settings: userSettings } = await browser.storage.local.get(
+        'settings'
+      );
+      this.logsLimit = userSettings.logsLimit || 1001;
+
       this.workflow.table = columns;
       this.startedTimestamp = Date.now();
 
@@ -255,7 +259,7 @@ class WorkflowEngine {
   addLogHistory(detail) {
     if (detail.name === 'blocks-group') return;
 
-    const isLimit = this.history.length >= 1001;
+    const isLimit = this.history.length >= this.logsLimit;
     const notErrorLog = detail.type !== 'error';
 
     if ((isLimit || !this.saveLog) && notErrorLog) return;

+ 32 - 20
src/newtab/pages/settings/SettingsIndex.vue

@@ -55,26 +55,38 @@
     </p>
   </div>
   <div id="delete-logs" class="mt-12">
-    <p class="font-semibold mb-1">
-      {{ t('settings.deleteLog.title') }}
-    </p>
-    <ui-select
-      label="Delete after"
-      class="w-80"
-      :model-value="settings.deleteLogAfter"
-      @change="
-        updateSetting('deleteLogAfter', $event === 'never' ? 'never' : +$event)
-      "
-    >
-      <option v-for="day in deleteLogDays" :key="day" :value="day">
-        <template v-if="typeof day === 'string'">
-          {{ t('settings.deleteLog.deleteAfter.never') }}
-        </template>
-        <template v-else>
-          {{ t('settings.deleteLog.deleteAfter.days', { day }) }}
-        </template>
-      </option>
-    </ui-select>
+    <p class="font-semibold mb-1">Workflow Logs</p>
+    <div class="flex items-center">
+      <ui-select
+        :model-value="settings.deleteLogAfter"
+        :label="t('settings.deleteLog.title')"
+        placeholder="Delete after"
+        class="w-80"
+        @change="
+          updateSetting(
+            'deleteLogAfter',
+            $event === 'never' ? 'never' : +$event
+          )
+        "
+      >
+        <option v-for="day in deleteLogDays" :key="day" :value="day">
+          <template v-if="typeof day === 'string'">
+            {{ t('settings.deleteLog.deleteAfter.never') }}
+          </template>
+          <template v-else>
+            {{ t('settings.deleteLog.deleteAfter.days', { day }) }}
+          </template>
+        </option>
+      </ui-select>
+      <ui-input
+        :model-value="settings.logsLimit"
+        class="ml-4"
+        type="number"
+        label="Logs limit"
+        min="10"
+        @change="updateSetting('logsLimit', +$event <= 0 ? 1000 : +$event)"
+      />
+    </div>
   </div>
 </template>
 <script setup>

+ 1 - 0
src/stores/main.js

@@ -15,6 +15,7 @@ export const useStore = defineStore('main', {
     settings: {
       locale: 'en',
       deleteLogAfter: 30,
+      logsLimit: 1000,
       editor: {
         minZoom: 0.6,
         maxZoom: 1.3,