33( function ( angular ) {
44 angular
55 . module ( 'mediaCenterRSSPluginWidget' )
6- . controller ( 'WidgetHomeCtrl' , [ '$scope' , 'DataStore' , 'Buildfire' , 'FeedParseService' , 'TAG_NAMES' , 'ItemDetailsService' , 'Location' , '$filter' , 'Underscore' , '$rootScope' , 'FEED_IMAGES' , 'trackAnalyticsActions' , 'utils' ,
6+ . controller ( 'WidgetHomeCtrl' , [ '$scope' , 'DataStore' , 'Buildfire' , 'FeedParseService' , 'TAG_NAMES' , 'ItemDetailsService' , 'Location' , '$filter' , 'Underscore' , '$rootScope' , 'FEED_IMAGES' , 'trackAnalyticsActions' , 'utils' ,
77 function ( $scope , DataStore , Buildfire , FeedParseService , TAG_NAMES , ItemDetailsService , Location , $filter , Underscore , $rootScope , FEED_IMAGES , trackAnalyticsActions , utils ) {
88
99 if ( window . device ) {
3737 function extractItemFromFeeds ( feeds = { } , itemId ) {
3838 if ( ! feeds || typeof feeds !== 'object' || ! itemId ) return null ;
3939 let itemData = null ;
40-
40+
4141 Object . keys ( feeds ) . forEach ( key => {
4242 if ( feeds [ key ] . items && feeds [ key ] . items . length ) {
4343 let feedItem = feeds [ key ] . items . find ( el => el . guid == itemId ) ;
4949 } ) ;
5050 return itemData ;
5151 }
52-
52+
5353 $scope . deeplinkData = null ;
5454 $scope . isDeeplinkItemOpened = false ;
5555 $scope . first = true ;
6969 ...data . feed ,
7070 guid : data . link ,
7171 imageSrcUrl : data . feed . image_url ,
72- pubDate : data . feed . publish_date
72+ pubDate : data . feed . publish_date
7373 } ;
7474 WidgetHome . proceedToItem ( - 1 , item , pushToHistory ) ;
7575 } else if ( data . link ) {
112112 }
113113 }
114114
115- /**
115+ /**
116116 * Private variables
117117 *
118118 * @name _items used to hold RSS feed items and helps in lazy loading.
119- * @type {object }
120- * @private
119+ * @type {object }
120+ * @private
121121 *
122122 * @name limit used to load a number of items in list on scroll
123123 * @type {number }
178178 } ;
179179
180180 // show the deeplink skeleton if the deeplink is present
181- buildfire . deeplink . getData ( function ( data ) {
182- if ( ! data ) return ;
181+ try {
182+ buildfire . deeplink . getData ( function ( data ) {
183+ if ( ! data ) return ;
183184
184- $scope . deeplinkData = data ;
185- toggleDeeplinkSkeleton ( true ) ;
186- } ) ;
185+ $scope . deeplinkData = utils . decodeObject ( data ) ;
186+ toggleDeeplinkSkeleton ( true ) ;
187+ } ) ;
188+ } catch ( e ) {
189+ console . error ( 'Error getting deeplink data' , e ) ;
190+ }
187191 buildfire . deeplink . onUpdate ( function ( data ) {
188192 if ( ! data ) return ;
189193
194198 }
195199 } ) ;
196200
197- /**
201+ /**
198202 * @name WidgetHome.data is used to hold user's data object which used throughout the app.
199203 * @type {object }
200204 */
210214 */
211215 WidgetHome . items = [ ] ;
212216
213- /**
217+ /**
214218 * @name WidgetHome.busy is used to disable ng-infinite scroll when more data not available to show.
215219 * @type {boolean }
216220 */
287291 isInit = false ;
288292
289293 function checkFeedEquality ( currentItems , fetchedItems ) {
290-
294+
291295 if ( ! currentItems [ 0 ] || ! currentItems [ 0 ] . guid ) return false ;
292296
293297 var sameLength = currentItems . length === fetchedItems . length ;
294298 var firstItemUnchanged = currentItems [ 0 ] . guid === fetchedItems [ 0 ] . guid ;
295299 var lastItemUnchanged = currentItems [ currentItems . length - 1 ] . guid === fetchedItems [ fetchedItems . length - 1 ] . guid ;
296-
300+
297301 return sameLength && firstItemUnchanged && lastItemUnchanged ;
298302 }
299303 } ;
452456 WidgetHome . loading = true ;
453457 if ( ! $scope . $$phase ) $scope . $digest ( ) ;
454458 }
455-
459+
456460 WidgetHome . fetchFeedResults ( feed ) . then ( ( result ) => {
457461 let isChanged = ! WidgetHome . checkFeedEquality ( WidgetHome . feedsCache [ feed . id ] . items ?? [ ] , result . data . items ) ;
458462 WidgetHome . feedsCache [ feed . id ] = {
466470
467471 if ( isChanged ) WidgetHome . renderFeedItems ( ) ;
468472 WidgetHome . loading = false ;
469-
473+
470474 if ( Object . keys ( WidgetHome . feedsData ) . length === WidgetHome . data . content . feeds . length ) WidgetHome . dataTotallyLoaded = true ;
471475
472476 if ( ! $scope . $$phase ) $scope . $digest ( ) ;
548552 if ( WidgetHome . isItems ) {
549553 WidgetHome . loading = false ;
550554 }
551-
555+
552556 WidgetHome . handleInitialParsing ( ) ;
553557 } ) . catch ( ( err ) => {
554558 console . error ( err )
789793
790794 }
791795 ] ) ;
792- } ) ( window . angular ) ;
796+ } ) ( window . angular ) ;
0 commit comments