]> git.wh0rd.org - chrome-ext/tabs-backup.git/blobdiff - background.js
change deleteOldestBackup to promise/async
[chrome-ext/tabs-backup.git] / background.js
index 0add75bb216c07b4f09f6510c0ac13c940a69e0a..894baa990544db82fabd3e91a27c50280756ca4a 100644 (file)
@@ -48,35 +48,24 @@ function onAlarm (alarm) {
        //      perform automatic backup
                backupNow(true, formattedDate, function({success, backupName, backupObj}) {
                        // automatic backup completed
-                       var popupViews = chrome.extension.getViews({type: "popup"});
-                       if (popupViews.length > 0) {
-                               for (var i = 0; i < popupViews.length; i++) {
-                                       var popupView = popupViews[i];
-                                       if (!popupView.insertBackupItem) {
-                                               continue;
-                                       }
-
-                                       popupView.insertBackupItem(backupName, backupObj, true /*insertAtBeginning*/, true /*doAnimation*/);
-                                       popupView.updateStorageInfo();
-                               }
-                       }
+                       chrome.runtime.sendMessage({
+                               action: 'insertBackupItem',
+                               args: [backupName, backupObj, true /*insertAtBeginning*/, true /*doAnimation*/],
+                       });
                });
 }
 
 chrome.alarms.onAlarm.addListener(onAlarm);
 
-function date_prependZero (val) {
-       return val < 10 ? "0" + val : "" + val;
-}
-
-// yyyy-m-d h:i:s
-function date_format (d) {
-       var monthOneOffset = d.getMonth() + 1; // convert from 0-11 to 1-12
-
-       var formattedDate = d.getFullYear() + "-" + date_prependZero(monthOneOffset) + "-" + date_prependZero(d.getDate())
-               + " " + date_prependZero(d.getHours()) + ":" + date_prependZero(d.getMinutes()) + ":" + date_prependZero(d.getSeconds());
-
-       return formattedDate;
+// yyyy-mm-dd hh:mm:ss
+function date_format(d) {
+       const prependZero = (val) => val.toString().padStart(2, '0');
+       return d.getFullYear() + "-" +
+               prependZero(d.getMonth() + 1) + "-" +
+               prependZero(d.getDate()) + " " +
+               prependZero(d.getHours()) + ":" +
+               prependZero(d.getMinutes()) + ":" +
+               prependZero(d.getSeconds());
 }
 
 
@@ -89,46 +78,23 @@ function backupNowManual (callbackDone) {
 
 }
 
-function deleteOldestBackup () {
-       chrome.storage.local.get(function(items) {
-               if(!items.backups_list) {
-                       return;
-               }
-
-               var backupsList = items.backups_list;
-               var numItemsToDelete = backupsList.length - items.prefs_max_backup_items;
-               if (numItemsToDelete > 0) {
-                       var i = 0;
-                       var loopFunc = function () {
-                               //
-                               if (i > 0) {
-                                       var deletedBackupName = backupsList[i-1];
-                                       var popupViews = chrome.extension.getViews({type: "popup"});
-                                       if (popupViews.length > 0) {
-                                               for (var j = 0; j < popupViews.length; j++) {
-                                                       var popupView = popupViews[j];
-                                                       if (!popupView.removeBackupItemDiv) {
-                                                               continue;
-                                                       }
-
-                                                       popupView.removeBackupItemDiv(deletedBackupName);
-                                                       popupView.updateStorageInfo();
-                                               }
-                                       }
-                               }
-                               //
-
-                               if (i >= numItemsToDelete) {
-                                       return;
-                               }
+async function deleteOldestBackup() {
+       const items = await chrome.storage.local.get();
+       if (!items.backups_list) {
+               return;
+       }
 
-                               deleteBackup(backupsList[i]).then(loopFunc);
-                               i++;
-                       };
+       const backupsList = items.backups_list;
+       const numItemsToDelete = backupsList.length - items.prefs_max_backup_items;
+       for (let i = 0; i < numItemsToDelete; ++i) {
+               const deletedBackupName = backupsList[i];
+               await deleteBackup(deletedBackupName);
 
-                       loopFunc ();
-               }
-       });
+               chrome.runtime.sendMessage({
+                       action: 'removeBackupItemDiv',
+                       args: [deletedBackupName],
+               });
+       }
 }
 
 //var isCreatingBackup = false;