From 5a65e42dae3a59fad8d0b3c4f5986be77a7e081f Mon Sep 17 00:00:00 2001 From: alialaqrabawi3 Date: Tue, 6 May 2025 19:09:32 +0300 Subject: [PATCH 1/7] fix/ enforce delte when there is no deep link --- .../controllers/mediaHomeController.js | 85 ++++++++++--------- widget/js/shared/Deeplink.js | 10 ++- 2 files changed, 52 insertions(+), 43 deletions(-) diff --git a/control/content/controllers/mediaHomeController.js b/control/content/controllers/mediaHomeController.js index 5e5cde39..35aba920 100644 --- a/control/content/controllers/mediaHomeController.js +++ b/control/content/controllers/mediaHomeController.js @@ -516,48 +516,55 @@ if (!$rootScope.loading) return; - - // var rank = ContentHome.info.data.content.rankOfLastItem || 0; - let rank = 0; - for (var index = 0; index < rows.length; index++) { - rank += 10; - rows[index].dateCreated = new Date().getTime(); - rows[index].links = []; - rows[index].rank = rank; - rows[index].body = rows[index].bodyHTML; - rows[index].titleIndex = rows[index].title ? rows[index].titleIndex = rows[index].title.toLowerCase() : ''; - //MEDIA DATE INDEX - var setMediaDateIndex = new Date().getTime(); - if (rows[index].mediaDateIndex) { - setMediaDateIndex = rows[index].mediaDateIndex; - } else if (rows[index].mediaDate) { - setMediaDateIndex = new Date(rows[index].mediaDate).getTime(); - } else if (rows[index].dateCreated) { - setMediaDateIndex = new Date(rows[index].dateCreated).getTime(); + MediaContent.find({sort:{rank: -1}, limit:1, skip: 0}).then(function (res) { + const result = res.result; + // var rank = ContentHome.info.data.content.rankOfLastItem || 0; + let rank = 0; + console.log(result,'RESULT RANK') + if (result && result.length) { + rank = result[0].rank; } - rows[index].mediaDateIndex = setMediaDateIndex; - rows[index]._buildfire = { - index: { - date1: new Date(), + for (var index = 0; index < rows.length; index++) { + rank += 10; + rows[index].dateCreated = new Date().getTime(); + rows[index].links = []; + rows[index].rank = rank; + rows[index].body = rows[index].bodyHTML; + rows[index].titleIndex = rows[index].title ? rows[index].titleIndex = rows[index].title.toLowerCase() : ''; + //MEDIA DATE INDEX + var setMediaDateIndex = new Date().getTime(); + if (rows[index].mediaDateIndex) { + setMediaDateIndex = rows[index].mediaDateIndex; + } else if (rows[index].mediaDate) { + setMediaDateIndex = new Date(rows[index].mediaDate).getTime(); + } else if (rows[index].dateCreated) { + setMediaDateIndex = new Date(rows[index].dateCreated).getTime(); } - }; - } - if (validateCsv(rows)) { - MediaContent.insert(rows).then(function (data) { - $rootScope.loading = false; - $scope.isBusy = false; - $scope.items = []; - $scope.searchListItem(); - $scope.setDeeplinks(); - }, function errorHandler(error) { - console.error(error); + rows[index].mediaDateIndex = setMediaDateIndex; + rows[index]._buildfire = { + index: { + date1: new Date(), + } + }; + } + if (validateCsv(rows)) { + MediaContent.insert(rows).then(function (data) { + $rootScope.loading = false; + $scope.isBusy = false; + $scope.items = []; + $scope.searchListItem(); + $scope.setDeeplinks(); + }, function errorHandler(error) { + console.error(error); + $rootScope.loading = false; + $scope.$apply(); + }); + } else { $rootScope.loading = false; - $scope.$apply(); - }); - } else { - $rootScope.loading = false; - $csv.showInvalidCSV(); - } + $csv.showInvalidCSV(); + } + }) + } else { $rootScope.loading = false; $csv.showInvalidCSV(); diff --git a/widget/js/shared/Deeplink.js b/widget/js/shared/Deeplink.js index bef3e228..1651e04e 100644 --- a/widget/js/shared/Deeplink.js +++ b/widget/js/shared/Deeplink.js @@ -17,7 +17,6 @@ class Deeplink { deeplinkData: this.deeplinkData, imageUrl: this.imageUrl }; - buildfire.deeplink.registerDeeplink(options, (err, result) => { if (err || !result) { @@ -25,7 +24,7 @@ class Deeplink { return callback(err); } - callback(null, { + callback(null, { deeplinkId: result && result.data && result.data.deeplinkId ? result.data.deeplinkId : null, deeplinkData: new Deeplink(result && result.data ? result.data : null) }); @@ -74,13 +73,16 @@ class Deeplink { if (err) { console.error(err, '<<< ERROR WHILE DELETING DEEP LINK.'); + if (err === 'no result found for this deeplink id'){ + return callback(null) + } return callback(err); } callback(null); - + }); } -} \ No newline at end of file +} From 1cae46c2d1a940406412983233bfa7788f4d329d Mon Sep 17 00:00:00 2001 From: alialaqrabawi3 Date: Tue, 6 May 2025 19:09:55 +0300 Subject: [PATCH 2/7] remove console --- control/content/controllers/mediaHomeController.js | 1 - 1 file changed, 1 deletion(-) diff --git a/control/content/controllers/mediaHomeController.js b/control/content/controllers/mediaHomeController.js index 35aba920..e2df93e8 100644 --- a/control/content/controllers/mediaHomeController.js +++ b/control/content/controllers/mediaHomeController.js @@ -520,7 +520,6 @@ const result = res.result; // var rank = ContentHome.info.data.content.rankOfLastItem || 0; let rank = 0; - console.log(result,'RESULT RANK') if (result && result.length) { rank = result[0].rank; } From 0fc10e2168a401d69dea7c85c8be6b68113bd06e Mon Sep 17 00:00:00 2001 From: alialaqrabawi3 Date: Tue, 6 May 2025 19:57:55 +0300 Subject: [PATCH 3/7] search by rank --- control/content/controllers/mediaHomeController.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/content/controllers/mediaHomeController.js b/control/content/controllers/mediaHomeController.js index e2df93e8..9a73cd0c 100644 --- a/control/content/controllers/mediaHomeController.js +++ b/control/content/controllers/mediaHomeController.js @@ -444,7 +444,7 @@ const searchOptions = { filter: { '$json._buildfire.index.date1': { $gte: date } }, - limit: 50, skip: 0, recordCount: true + limit: 50, skip: 0, recordCount: true, sort:{rank: -1} }; getRecords(searchOptions, [], function (records) { $scope.registerAnalyticsEvent(records); From 66eb4d3533822ad44766171ea189f1eaa82526c0 Mon Sep 17 00:00:00 2001 From: alialaqrabawi3 Date: Tue, 6 May 2025 20:24:35 +0300 Subject: [PATCH 4/7] add sort on dateCreated --- control/content/controllers/mediaHomeController.js | 2 +- widget/js/shared/Deeplink.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/control/content/controllers/mediaHomeController.js b/control/content/controllers/mediaHomeController.js index 9a73cd0c..3542f8f2 100644 --- a/control/content/controllers/mediaHomeController.js +++ b/control/content/controllers/mediaHomeController.js @@ -444,7 +444,7 @@ const searchOptions = { filter: { '$json._buildfire.index.date1': { $gte: date } }, - limit: 50, skip: 0, recordCount: true, sort:{rank: -1} + limit: 50, skip: 0, recordCount: true, sort:{dateCreated: 1, rank: -1} }; getRecords(searchOptions, [], function (records) { $scope.registerAnalyticsEvent(records); diff --git a/widget/js/shared/Deeplink.js b/widget/js/shared/Deeplink.js index 1651e04e..1f7d6337 100644 --- a/widget/js/shared/Deeplink.js +++ b/widget/js/shared/Deeplink.js @@ -74,6 +74,8 @@ class Deeplink { if (err) { console.error(err, '<<< ERROR WHILE DELETING DEEP LINK.'); if (err === 'no result found for this deeplink id'){ + // Some items may not have a deeplink ID, which can result in this specific error. + // In such cases, we can safely ignore the error and proceed without it. return callback(null) } return callback(err); From 3d38e82e5a5eb2105bdbc1c04c6a57c407121245 Mon Sep 17 00:00:00 2001 From: AliAlaqrabawi3 <167025219+AliAlaqrabawi3@users.noreply.github.com> Date: Tue, 6 May 2025 20:25:30 +0300 Subject: [PATCH 5/7] Update Deeplink.js --- widget/js/shared/Deeplink.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/widget/js/shared/Deeplink.js b/widget/js/shared/Deeplink.js index 1f7d6337..4d2fd75a 100644 --- a/widget/js/shared/Deeplink.js +++ b/widget/js/shared/Deeplink.js @@ -73,11 +73,11 @@ class Deeplink { if (err) { console.error(err, '<<< ERROR WHILE DELETING DEEP LINK.'); - if (err === 'no result found for this deeplink id'){ - // Some items may not have a deeplink ID, which can result in this specific error. - // In such cases, we can safely ignore the error and proceed without it. - return callback(null) - } + if (err === 'no result found for this deeplink id'){ + // Some items may not have a deeplink ID, which can result in this specific error. + // In such cases, we can safely ignore the error and proceed without it. + return callback(null) + } return callback(err); } From fee93407d46e3ef2b6152ba0e19da21e8cf2a0e4 Mon Sep 17 00:00:00 2001 From: alialaqrabawi3 Date: Mon, 12 May 2025 20:05:29 +0300 Subject: [PATCH 6/7] fix/ delete search engine --- .../controllers/mediaHomeController.js | 25 ++++++++----- control/content/services.js | 35 ++++++++++++------- 2 files changed, 39 insertions(+), 21 deletions(-) diff --git a/control/content/controllers/mediaHomeController.js b/control/content/controllers/mediaHomeController.js index 3542f8f2..c1cd6433 100644 --- a/control/content/controllers/mediaHomeController.js +++ b/control/content/controllers/mediaHomeController.js @@ -246,20 +246,27 @@ (err, isConfirmed) => { if (isConfirmed) { $scope.isBusy = true; - Deeplink.deleteById(item.id, (err, res) => { - if (err) { + SearchEngineService.delete(item.id, (err, result)=>{ + if (err){ $scope.isBusy = false; return console.error(err); } + Deeplink.deleteById(item.id, (err, res) => { + if (err) { + $scope.isBusy = false; + return console.error(err); + } - MediaContent.delete(item.id).then(() => { - $scope.isBusy = false; - $scope.items = $scope.items.filter((_item) => _item.id !== item.id); - $scope.buildList(); - }).catch((err) => { - $scope.isBusy = false; - return console.error(err); + MediaContent.delete(item.id).then(() => { + $scope.isBusy = false; + $scope.items = $scope.items.filter((_item) => _item.id !== item.id); + $scope.buildList(); + }).catch((err) => { + $scope.isBusy = false; + return console.error(err); + }); }); + }); } } diff --git a/control/content/services.js b/control/content/services.js index f9202ccb..3fd320f8 100644 --- a/control/content/services.js +++ b/control/content/services.js @@ -204,24 +204,35 @@ return deferred.promise; }; - SearchEngine.prototype.delete = function (id) { + SearchEngine.prototype.delete = function (key, callback) { var that = this; var deferred = $q.defer(); - if (typeof id == 'undefined') { - return deferred.reject(new Error(MESSAGES.ERROR.ID_NOT_DEFINED)); - } + + if (typeof key === 'undefined') { + var error = new Error(MESSAGES.ERROR.ID_NOT_DEFINED); + deferred.reject(error); + callback(error, null); + return deferred.promise; + } + var data = { - id: id, - tag: that._tagName - } + key, + tag: that._tagName + }; + Buildfire.services.searchEngine.delete(data, function (err, result) { if (err) { - return deferred.reject(err); + if (err.errorMessage && err.errorMessage === 'Not Found'){ + deferred.resolve(true); + callback(null, true); + } + else { + deferred.reject(err); + callback(err, null); } - else if (result) { - return deferred.resolve(result); - } else { - return deferred.reject(new Error(MESSAGES.ERROR.NOT_FOUND)); + } else if (result) { + deferred.resolve(result); + callback(null, result); } }); return deferred.promise; From 992b8209ebbbf5861c9b4476824881bb065c61b5 Mon Sep 17 00:00:00 2001 From: AliAlaqrabawi3 <167025219+AliAlaqrabawi3@users.noreply.github.com> Date: Mon, 12 May 2025 20:08:04 +0300 Subject: [PATCH 7/7] Update services.js --- control/content/services.js | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/control/content/services.js b/control/content/services.js index 3fd320f8..8ea223dd 100644 --- a/control/content/services.js +++ b/control/content/services.js @@ -208,30 +208,29 @@ var that = this; var deferred = $q.defer(); - if (typeof key === 'undefined') { - var error = new Error(MESSAGES.ERROR.ID_NOT_DEFINED); - deferred.reject(error); - callback(error, null); - return deferred.promise; - } - + if (typeof key === 'undefined') { + var error = new Error(MESSAGES.ERROR.ID_NOT_DEFINED); + deferred.reject(error); + callback(error, null); + return deferred.promise; + } var data = { - key, - tag: that._tagName + key, + tag: that._tagName }; Buildfire.services.searchEngine.delete(data, function (err, result) { if (err) { if (err.errorMessage && err.errorMessage === 'Not Found'){ - deferred.resolve(true); + deferred.resolve(true); callback(null, true); - } - else { - deferred.reject(err); - callback(err, null); - } + } + else { + deferred.reject(err); + callback(err, null); + } } else if (result) { - deferred.resolve(result); + deferred.resolve(result); callback(null, result); } });