MOBILE-3833 dev: Add the option to reset user tours
This commit is contained in:
		
							parent
							
								
									568f161550
								
							
						
					
					
						commit
						de9a478633
					
				| @ -45,6 +45,14 @@ | |||||||
|                 </ion-label> |                 </ion-label> | ||||||
|                 <ion-toggle [(ngModel)]="pluginStyles" (ionChange)="pluginStylesChanged()"></ion-toggle> |                 <ion-toggle [(ngModel)]="pluginStyles" (ionChange)="pluginStylesChanged()"></ion-toggle> | ||||||
|             </ion-item> |             </ion-item> | ||||||
|  |             <ion-item class="ion-text-wrap" *ngIf="userToursEnabled"> | ||||||
|  |                 <ion-label> | ||||||
|  |                     <h2>Reset user tours</h2> | ||||||
|  |                 </ion-label> | ||||||
|  |                 <ion-button (click)="resetUserTours()" aria-label="Reset user tours" fill="clear" slot="end"> | ||||||
|  |                     <ion-icon slot="icon-only" aria-hidden="true" name="fas-broom"></ion-icon> | ||||||
|  |                 </ion-button> | ||||||
|  |             </ion-item> | ||||||
| 
 | 
 | ||||||
|             <ion-item-divider> |             <ion-item-divider> | ||||||
|                 <ion-label> |                 <ion-label> | ||||||
|  | |||||||
| @ -14,7 +14,9 @@ | |||||||
| 
 | 
 | ||||||
| import { Component, OnInit } from '@angular/core'; | import { Component, OnInit } from '@angular/core'; | ||||||
| import { CoreSitePlugins } from '@features/siteplugins/services/siteplugins'; | import { CoreSitePlugins } from '@features/siteplugins/services/siteplugins'; | ||||||
|  | import { CoreUserTours } from '@features/usertours/services/user-tours'; | ||||||
| import { CoreSites } from '@services/sites'; | import { CoreSites } from '@services/sites'; | ||||||
|  | import { CoreDomUtils } from '@services/utils/dom'; | ||||||
| import { CoreUtils } from '@services/utils/utils'; | import { CoreUtils } from '@services/utils/utils'; | ||||||
| import { Platform } from '@singletons'; | import { Platform } from '@singletons'; | ||||||
| 
 | 
 | ||||||
| @ -36,6 +38,7 @@ export class CoreSettingsDevPage implements OnInit { | |||||||
|     pluginStyles = true; |     pluginStyles = true; | ||||||
|     pluginStylesCount = 0; |     pluginStylesCount = 0; | ||||||
|     sitePlugins: CoreSitePluginsBasicInfo[] = []; |     sitePlugins: CoreSitePluginsBasicInfo[] = []; | ||||||
|  |     userToursEnabled = true; | ||||||
| 
 | 
 | ||||||
|     disabledFeatures: string[] = []; |     disabledFeatures: string[] = []; | ||||||
| 
 | 
 | ||||||
| @ -60,6 +63,8 @@ export class CoreSettingsDevPage implements OnInit { | |||||||
|         this.pluginStyles = false; |         this.pluginStyles = false; | ||||||
|         this.pluginStylesCount = 0; |         this.pluginStylesCount = 0; | ||||||
| 
 | 
 | ||||||
|  |         this.userToursEnabled = !CoreUserTours.isDisabled(); | ||||||
|  | 
 | ||||||
|         document.head.querySelectorAll('style').forEach((style) => { |         document.head.querySelectorAll('style').forEach((style) => { | ||||||
|             if (this.siteId && style.id.endsWith(this.siteId)) { |             if (this.siteId && style.id.endsWith(this.siteId)) { | ||||||
|                 if (style.innerHTML.length > 0) { |                 if (style.innerHTML.length > 0) { | ||||||
| @ -139,6 +144,14 @@ export class CoreSettingsDevPage implements OnInit { | |||||||
|         CoreUtils.copyToClipboard(JSON.stringify({ disabledFeatures: this.disabledFeatures, sitePlugins: this.sitePlugins })); |         CoreUtils.copyToClipboard(JSON.stringify({ disabledFeatures: this.disabledFeatures, sitePlugins: this.sitePlugins })); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * Reset all user tours. | ||||||
|  |      */ | ||||||
|  |     async resetUserTours(): Promise<void> { | ||||||
|  |         await CoreUserTours.resetTours(); | ||||||
|  |         CoreDomUtils.showToast('User tours have been reseted'); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Basic site plugin info.
 | // Basic site plugin info.
 | ||||||
|  | |||||||
| @ -63,7 +63,7 @@ export class CoreUserToursService { | |||||||
|      * @returns Whether the User Tour is pending or not. |      * @returns Whether the User Tour is pending or not. | ||||||
|      */ |      */ | ||||||
|     async isPending(id: string): Promise<boolean> { |     async isPending(id: string): Promise<boolean> { | ||||||
|         if (CoreConstants.CONFIG.disableUserTours || CoreConstants.CONFIG.disabledUserTours?.includes(id)) { |         if (this.isDisabled(id)) { | ||||||
|             return false; |             return false; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| @ -252,6 +252,31 @@ export class CoreUserToursService { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * Is user Tour disabled? | ||||||
|  |      * | ||||||
|  |      * @param tourId Tour Id or undefined to check all user tours. | ||||||
|  |      * @return Wether a particular or all user tours are disabled. | ||||||
|  |      */ | ||||||
|  |     isDisabled(tourId?: string): boolean { | ||||||
|  |         if (CoreConstants.CONFIG.disableUserTours) { | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return !!tourId && !!CoreConstants.CONFIG.disabledUserTours?.includes(tourId); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * It will reset all user tours. | ||||||
|  |      */ | ||||||
|  |     async resetTours(): Promise<void> { | ||||||
|  |         if (this.isDisabled()) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         await this.table.delete(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export const CoreUserTours = makeSingleton(CoreUserToursService); | export const CoreUserTours = makeSingleton(CoreUserToursService); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user