forked from CIT/Vmeda.Online
		
	MOBILE-4081 user: Fix offline preference not synchronized
This commit is contained in:
		
							parent
							
								
									6a11ea5d55
								
							
						
					
					
						commit
						efca5aa61c
					
				@ -15,6 +15,7 @@
 | 
			
		||||
import { Injectable } from '@angular/core';
 | 
			
		||||
 | 
			
		||||
import { CoreSites } from '@services/sites';
 | 
			
		||||
import { CoreUtils } from '@services/utils/utils';
 | 
			
		||||
import { makeSingleton } from '@singletons';
 | 
			
		||||
import { PREFERENCES_TABLE_NAME, CoreUserPreferenceDBRecord } from './database/user';
 | 
			
		||||
 | 
			
		||||
@ -33,7 +34,10 @@ export class CoreUserOfflineProvider {
 | 
			
		||||
    async getChangedPreferences(siteId?: string): Promise<CoreUserPreferenceDBRecord[]> {
 | 
			
		||||
        const site = await CoreSites.getSite(siteId);
 | 
			
		||||
 | 
			
		||||
        return site.getDb().getRecordsSelect(PREFERENCES_TABLE_NAME, 'value != onlineValue');
 | 
			
		||||
        return site.getDb().getRecordsSelect(
 | 
			
		||||
            PREFERENCES_TABLE_NAME,
 | 
			
		||||
            'value != onlinevalue OR onlinevalue IS NULL',
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@ -64,8 +68,19 @@ export class CoreUserOfflineProvider {
 | 
			
		||||
        const record: Partial<CoreUserPreferenceDBRecord> = {
 | 
			
		||||
            name,
 | 
			
		||||
            value,
 | 
			
		||||
            onlinevalue: onlineValue,
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        if (onlineValue === undefined) {
 | 
			
		||||
            // Keep online value already stored (if any).
 | 
			
		||||
            const entry = await CoreUtils.ignoreErrors(
 | 
			
		||||
                site.getDb().getRecord<CoreUserPreferenceDBRecord>(PREFERENCES_TABLE_NAME, { name }),
 | 
			
		||||
                null,
 | 
			
		||||
            );
 | 
			
		||||
 | 
			
		||||
            record.onlinevalue = entry?.onlinevalue;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        await site.getDb().insertRecord(PREFERENCES_TABLE_NAME, record);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user