Bläddra i källkod

Total file count handling with Modal and globally

Artur Paikin 9 år sedan
förälder
incheckning
3b546329d4
3 ändrade filer med 16 tillägg och 21 borttagningar
  1. 2 0
      src/core/Core.js
  2. 14 1
      src/plugins/Modal.js
  3. 0 20
      src/plugins/ProgressBar.js

+ 2 - 0
src/core/Core.js

@@ -39,6 +39,8 @@ export default class Core {
 
     // Set up an event EventEmitter
     this.emitter = new ee.EventEmitter()
+
+    this.totalFilesSelectedCount = 0
   }
 
 /**

+ 14 - 1
src/plugins/Modal.js

@@ -149,9 +149,22 @@ export default class Modal extends Plugin {
     // Listen for allDone event to close all tabs
     this.core.emitter.on('allDone', () => this.allDone())
 
-    this.core.emitter.on('fileSelection', () => {
+    this.core.emitter.on('fileSelection', (data) => {
       this.nextButton.classList.add('is-active')
+
+      const files = data.filesSelected
+      const selectedCount = files.length
+
+        // How many files have been selected totally
+      this.core.totalFilesSelectedCount = this.core.totalFilesSelectedCount + selectedCount
+
+      this.nextButton.innerHTML = this.core.i18n('uploadFiles', {'smart_count': this.core.totalFilesSelectedCount})
+
+      Object.keys(files).forEach(file => {
+        this.core.log(`These file has been selected: ${files[file]}`)
+      })
     })
+
     this.core.emitter.on('reset', () => this.nextButton.classList.remove('is-active'))
 
     // Close the Modal on esc key press

+ 0 - 20
src/plugins/ProgressBar.js

@@ -14,9 +14,6 @@ export default class ProgressBar extends Plugin {
 
     // merge default options with the ones set by user
     this.opts = Object.assign({}, defaultOptions, opts)
-
-    // Keep track of number of selected files
-    this.totalSelectedCount = 0
   }
 
   setProgress (percentage) {
@@ -50,23 +47,6 @@ export default class ProgressBar extends Plugin {
       this.setProgress(percentage)
     })
 
-    // When files are selected, fire this event to: display there names, progress...
-    this.core.emitter.on('fileSelection', data => {
-      const files = data.filesSelected
-
-      // How many files have been selected now
-      const selectedCount = files.length
-
-        // How many files have been selected totally
-      this.totalSelectedCount = this.totalSelectedCount + selectedCount
-
-      this.uploadButton.innerHTML = this.core.i18n('uploadFiles', {'smart_count': this.totalSelectedCount})
-
-      Object.keys(files).forEach(file => {
-        this.core.log(`These file has been selected: ${files[file]}`)
-      })
-    })
-
     this.core.emitter.on('reset', data => {
       this.progressBarContainerEl.classList.remove('is-active')
       this.uploadButton.classList.remove('is-active')