Merge pull request #2029 from dpalou/MOBILE-3108
MOBILE-3108 siteplugins: Allow create only title and prerendered blocks
This commit is contained in:
		
						commit
						0eb88c6fa4
					
				| @ -13,7 +13,6 @@ | |||||||
| // limitations under the License.
 | // limitations under the License.
 | ||||||
| 
 | 
 | ||||||
| import { Injectable, Injector } from '@angular/core'; | import { Injectable, Injector } from '@angular/core'; | ||||||
| import { TranslateService } from '@ngx-translate/core'; |  | ||||||
| 
 | 
 | ||||||
| import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | ||||||
| import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | ||||||
| @ -27,7 +26,7 @@ export class AddonBlockBadgesHandler extends CoreBlockBaseHandler { | |||||||
|     name = 'AddonBlockBadges'; |     name = 'AddonBlockBadges'; | ||||||
|     blockName = 'badges'; |     blockName = 'badges'; | ||||||
| 
 | 
 | ||||||
|     constructor(private translate: TranslateService) { |     constructor() { | ||||||
|         super(); |         super(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -44,7 +43,7 @@ export class AddonBlockBadgesHandler extends CoreBlockBaseHandler { | |||||||
|             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { |             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { | ||||||
| 
 | 
 | ||||||
|         return { |         return { | ||||||
|             title: this.translate.instant('addon.block_badges.pluginname'), |             title: 'addon.block_badges.pluginname', | ||||||
|             class: 'addon-block-badges', |             class: 'addon-block-badges', | ||||||
|             component: CoreBlockPreRenderedComponent |             component: CoreBlockPreRenderedComponent | ||||||
|         }; |         }; | ||||||
|  | |||||||
| @ -13,7 +13,6 @@ | |||||||
| // limitations under the License.
 | // limitations under the License.
 | ||||||
| 
 | 
 | ||||||
| import { Injectable, Injector } from '@angular/core'; | import { Injectable, Injector } from '@angular/core'; | ||||||
| import { TranslateService } from '@ngx-translate/core'; |  | ||||||
| 
 | 
 | ||||||
| import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | ||||||
| import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | ||||||
| @ -27,7 +26,7 @@ export class AddonBlockBlogMenuHandler extends CoreBlockBaseHandler { | |||||||
|     name = 'AddonBlockBlogMenu'; |     name = 'AddonBlockBlogMenu'; | ||||||
|     blockName = 'blog_menu'; |     blockName = 'blog_menu'; | ||||||
| 
 | 
 | ||||||
|     constructor(private translate: TranslateService) { |     constructor() { | ||||||
|         super(); |         super(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -44,7 +43,7 @@ export class AddonBlockBlogMenuHandler extends CoreBlockBaseHandler { | |||||||
|             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { |             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { | ||||||
| 
 | 
 | ||||||
|         return { |         return { | ||||||
|             title: this.translate.instant('addon.block_blogmenu.pluginname'), |             title: 'addon.block_blogmenu.pluginname', | ||||||
|             class: 'addon-block-blog-menu', |             class: 'addon-block-blog-menu', | ||||||
|             component: CoreBlockPreRenderedComponent |             component: CoreBlockPreRenderedComponent | ||||||
|         }; |         }; | ||||||
|  | |||||||
| @ -13,7 +13,6 @@ | |||||||
| // limitations under the License.
 | // limitations under the License.
 | ||||||
| 
 | 
 | ||||||
| import { Injectable, Injector } from '@angular/core'; | import { Injectable, Injector } from '@angular/core'; | ||||||
| import { TranslateService } from '@ngx-translate/core'; |  | ||||||
| 
 | 
 | ||||||
| import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | ||||||
| import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | ||||||
| @ -27,7 +26,7 @@ export class AddonBlockBlogRecentHandler extends CoreBlockBaseHandler { | |||||||
|     name = 'AddonBlockBlogRecent'; |     name = 'AddonBlockBlogRecent'; | ||||||
|     blockName = 'blog_recent'; |     blockName = 'blog_recent'; | ||||||
| 
 | 
 | ||||||
|     constructor(private translate: TranslateService) { |     constructor() { | ||||||
|         super(); |         super(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -44,7 +43,7 @@ export class AddonBlockBlogRecentHandler extends CoreBlockBaseHandler { | |||||||
|             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { |             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { | ||||||
| 
 | 
 | ||||||
|         return { |         return { | ||||||
|             title: this.translate.instant('addon.block_blogrecent.pluginname'), |             title: 'addon.block_blogrecent.pluginname', | ||||||
|             class: 'addon-block-blog-recent', |             class: 'addon-block-blog-recent', | ||||||
|             component: CoreBlockPreRenderedComponent |             component: CoreBlockPreRenderedComponent | ||||||
|         }; |         }; | ||||||
|  | |||||||
| @ -13,7 +13,6 @@ | |||||||
| // limitations under the License.
 | // limitations under the License.
 | ||||||
| 
 | 
 | ||||||
| import { Injectable, Injector } from '@angular/core'; | import { Injectable, Injector } from '@angular/core'; | ||||||
| import { TranslateService } from '@ngx-translate/core'; |  | ||||||
| 
 | 
 | ||||||
| import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | ||||||
| import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | ||||||
| @ -27,7 +26,7 @@ export class AddonBlockBlogTagsHandler extends CoreBlockBaseHandler { | |||||||
|     name = 'AddonBlockBlogTags'; |     name = 'AddonBlockBlogTags'; | ||||||
|     blockName = 'blog_tags'; |     blockName = 'blog_tags'; | ||||||
| 
 | 
 | ||||||
|     constructor(private translate: TranslateService) { |     constructor() { | ||||||
|         super(); |         super(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -44,7 +43,7 @@ export class AddonBlockBlogTagsHandler extends CoreBlockBaseHandler { | |||||||
|             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { |             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { | ||||||
| 
 | 
 | ||||||
|         return { |         return { | ||||||
|             title: this.translate.instant('addon.block_blogtags.pluginname'), |             title: 'addon.block_blogtags.pluginname', | ||||||
|             class: 'addon-block-blog-tags', |             class: 'addon-block-blog-tags', | ||||||
|             component: CoreBlockPreRenderedComponent |             component: CoreBlockPreRenderedComponent | ||||||
|         }; |         }; | ||||||
|  | |||||||
| @ -13,7 +13,6 @@ | |||||||
| // limitations under the License.
 | // limitations under the License.
 | ||||||
| 
 | 
 | ||||||
| import { Injectable, Injector } from '@angular/core'; | import { Injectable, Injector } from '@angular/core'; | ||||||
| import { TranslateService } from '@ngx-translate/core'; |  | ||||||
| import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | ||||||
| import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | ||||||
| import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler'; | import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler'; | ||||||
| @ -26,7 +25,7 @@ export class AddonBlockGlossaryRandomHandler extends CoreBlockBaseHandler { | |||||||
|     name = 'AddonBlockGlossaryRandom'; |     name = 'AddonBlockGlossaryRandom'; | ||||||
|     blockName = 'glossary_random'; |     blockName = 'glossary_random'; | ||||||
| 
 | 
 | ||||||
|     constructor(private translate: TranslateService) { |     constructor() { | ||||||
|         super(); |         super(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -42,7 +41,7 @@ export class AddonBlockGlossaryRandomHandler extends CoreBlockBaseHandler { | |||||||
|     getDisplayData(injector: Injector, block: any, contextLevel: string, instanceId: number) |     getDisplayData(injector: Injector, block: any, contextLevel: string, instanceId: number) | ||||||
|             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { |             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { | ||||||
|         return { |         return { | ||||||
|             title: block.contents.title || this.translate.instant('addon.block_glossaryrandom.pluginname'), |             title: block.contents.title || 'addon.block_glossaryrandom.pluginname', | ||||||
|             class: 'addon-block-glossary-random', |             class: 'addon-block-glossary-random', | ||||||
|             component: CoreBlockPreRenderedComponent |             component: CoreBlockPreRenderedComponent | ||||||
|         }; |         }; | ||||||
|  | |||||||
| @ -13,7 +13,6 @@ | |||||||
| // limitations under the License.
 | // limitations under the License.
 | ||||||
| 
 | 
 | ||||||
| import { Injectable, Injector } from '@angular/core'; | import { Injectable, Injector } from '@angular/core'; | ||||||
| import { TranslateService } from '@ngx-translate/core'; |  | ||||||
| import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | ||||||
| import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | ||||||
| import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler'; | import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler'; | ||||||
| @ -26,7 +25,7 @@ export class AddonBlockNewsItemsHandler extends CoreBlockBaseHandler { | |||||||
|     name = 'AddonBlockNewsItems'; |     name = 'AddonBlockNewsItems'; | ||||||
|     blockName = 'news_items'; |     blockName = 'news_items'; | ||||||
| 
 | 
 | ||||||
|     constructor(private translate: TranslateService) { |     constructor() { | ||||||
|         super(); |         super(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -42,7 +41,7 @@ export class AddonBlockNewsItemsHandler extends CoreBlockBaseHandler { | |||||||
|     getDisplayData(injector: Injector, block: any, contextLevel: string, instanceId: number) |     getDisplayData(injector: Injector, block: any, contextLevel: string, instanceId: number) | ||||||
|             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { |             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { | ||||||
|         return { |         return { | ||||||
|             title: this.translate.instant('addon.block_newsitems.pluginname'), |             title: 'addon.block_newsitems.pluginname', | ||||||
|             class: 'addon-block-news-items', |             class: 'addon-block-news-items', | ||||||
|             component: CoreBlockPreRenderedComponent |             component: CoreBlockPreRenderedComponent | ||||||
|         }; |         }; | ||||||
|  | |||||||
| @ -13,7 +13,6 @@ | |||||||
| // limitations under the License.
 | // limitations under the License.
 | ||||||
| 
 | 
 | ||||||
| import { Injectable, Injector } from '@angular/core'; | import { Injectable, Injector } from '@angular/core'; | ||||||
| import { TranslateService } from '@ngx-translate/core'; |  | ||||||
| import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | ||||||
| import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | ||||||
| import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler'; | import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler'; | ||||||
| @ -26,7 +25,7 @@ export class AddonBlockOnlineUsersHandler extends CoreBlockBaseHandler { | |||||||
|     name = 'AddonBlockOnlineUsers'; |     name = 'AddonBlockOnlineUsers'; | ||||||
|     blockName = 'online_users'; |     blockName = 'online_users'; | ||||||
| 
 | 
 | ||||||
|     constructor(private translate: TranslateService) { |     constructor() { | ||||||
|         super(); |         super(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -42,7 +41,7 @@ export class AddonBlockOnlineUsersHandler extends CoreBlockBaseHandler { | |||||||
|     getDisplayData(injector: Injector, block: any, contextLevel: string, instanceId: number) |     getDisplayData(injector: Injector, block: any, contextLevel: string, instanceId: number) | ||||||
|             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { |             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { | ||||||
|         return { |         return { | ||||||
|             title: this.translate.instant('addon.block_onlineusers.pluginname'), |             title: 'addon.block_onlineusers.pluginname', | ||||||
|             class: 'addon-block-online-users', |             class: 'addon-block-online-users', | ||||||
|             component: CoreBlockPreRenderedComponent |             component: CoreBlockPreRenderedComponent | ||||||
|         }; |         }; | ||||||
|  | |||||||
| @ -13,7 +13,6 @@ | |||||||
| // limitations under the License.
 | // limitations under the License.
 | ||||||
| 
 | 
 | ||||||
| import { Injectable, Injector } from '@angular/core'; | import { Injectable, Injector } from '@angular/core'; | ||||||
| import { TranslateService } from '@ngx-translate/core'; |  | ||||||
| 
 | 
 | ||||||
| import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | ||||||
| import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | ||||||
| @ -27,7 +26,7 @@ export class AddonBlockRecentActivityHandler extends CoreBlockBaseHandler { | |||||||
|     name = 'AddonBlockRecentActivity'; |     name = 'AddonBlockRecentActivity'; | ||||||
|     blockName = 'recent_activity'; |     blockName = 'recent_activity'; | ||||||
| 
 | 
 | ||||||
|     constructor(private translate: TranslateService) { |     constructor() { | ||||||
|         super(); |         super(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -44,7 +43,7 @@ export class AddonBlockRecentActivityHandler extends CoreBlockBaseHandler { | |||||||
|             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { |             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { | ||||||
| 
 | 
 | ||||||
|         return { |         return { | ||||||
|             title: this.translate.instant('addon.block_recentactivity.pluginname'), |             title: 'addon.block_recentactivity.pluginname', | ||||||
|             class: 'addon-block-recent-activity', |             class: 'addon-block-recent-activity', | ||||||
|             component: CoreBlockPreRenderedComponent |             component: CoreBlockPreRenderedComponent | ||||||
|         }; |         }; | ||||||
|  | |||||||
| @ -13,7 +13,6 @@ | |||||||
| // limitations under the License.
 | // limitations under the License.
 | ||||||
| 
 | 
 | ||||||
| import { Injectable, Injector } from '@angular/core'; | import { Injectable, Injector } from '@angular/core'; | ||||||
| import { TranslateService } from '@ngx-translate/core'; |  | ||||||
| 
 | 
 | ||||||
| import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | ||||||
| import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | ||||||
| @ -27,7 +26,7 @@ export class AddonBlockRssClientHandler extends CoreBlockBaseHandler { | |||||||
|     name = 'AddonBlockRssClient'; |     name = 'AddonBlockRssClient'; | ||||||
|     blockName = 'rss_client'; |     blockName = 'rss_client'; | ||||||
| 
 | 
 | ||||||
|     constructor(private translate: TranslateService) { |     constructor() { | ||||||
|         super(); |         super(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -44,7 +43,7 @@ export class AddonBlockRssClientHandler extends CoreBlockBaseHandler { | |||||||
|             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { |             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { | ||||||
| 
 | 
 | ||||||
|         return { |         return { | ||||||
|             title: block.contents.title || this.translate.instant('addon.block_rssclient.pluginname'), |             title: block.contents.title || 'addon.block_rssclient.pluginname', | ||||||
|             class: 'addon-block-rss-client', |             class: 'addon-block-rss-client', | ||||||
|             component: CoreBlockPreRenderedComponent |             component: CoreBlockPreRenderedComponent | ||||||
|         }; |         }; | ||||||
|  | |||||||
| @ -13,7 +13,6 @@ | |||||||
| // limitations under the License.
 | // limitations under the License.
 | ||||||
| 
 | 
 | ||||||
| import { Injectable, Injector } from '@angular/core'; | import { Injectable, Injector } from '@angular/core'; | ||||||
| import { TranslateService } from '@ngx-translate/core'; |  | ||||||
| 
 | 
 | ||||||
| import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | import { CoreBlockHandlerData } from '@core/block/providers/delegate'; | ||||||
| import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | ||||||
| @ -27,7 +26,7 @@ export class AddonBlockTagsHandler extends CoreBlockBaseHandler { | |||||||
|     name = 'AddonBlockTags'; |     name = 'AddonBlockTags'; | ||||||
|     blockName = 'tags'; |     blockName = 'tags'; | ||||||
| 
 | 
 | ||||||
|     constructor(private translate: TranslateService) { |     constructor() { | ||||||
|         super(); |         super(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -44,7 +43,7 @@ export class AddonBlockTagsHandler extends CoreBlockBaseHandler { | |||||||
|             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { |             : CoreBlockHandlerData | Promise<CoreBlockHandlerData> { | ||||||
| 
 | 
 | ||||||
|         return { |         return { | ||||||
|             title: this.translate.instant('addon.block_tags.pluginname'), |             title: 'addon.block_tags.pluginname', | ||||||
|             class: 'addon-block-tags', |             class: 'addon-block-tags', | ||||||
|             component: CoreBlockPreRenderedComponent |             component: CoreBlockPreRenderedComponent | ||||||
|         }; |         }; | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| <ion-item-divider text-wrap *ngIf="title"> | <ion-item-divider text-wrap *ngIf="title"> | ||||||
|     <h2><core-format-text [text]="title"></core-format-text></h2> |     <h2><core-format-text [text]="title | translate"></core-format-text></h2> | ||||||
| </ion-item-divider> | </ion-item-divider> | ||||||
| <core-loading [hideUntil]="loaded" class="core-loading-center"> | <core-loading [hideUntil]="loaded" class="core-loading-center"> | ||||||
|     <ion-item *ngIf="block.contents.content" text-wrap class="core-block-content"> |     <ion-item *ngIf="block.contents.content" text-wrap class="core-block-content"> | ||||||
|  | |||||||
| @ -15,14 +15,17 @@ | |||||||
| import { Injector } from '@angular/core'; | import { Injector } from '@angular/core'; | ||||||
| import { CoreSitePluginsBaseHandler } from './base-handler'; | import { CoreSitePluginsBaseHandler } from './base-handler'; | ||||||
| import { CoreBlockHandler, CoreBlockHandlerData } from '@core/block/providers/delegate'; | import { CoreBlockHandler, CoreBlockHandlerData } from '@core/block/providers/delegate'; | ||||||
|  | import { CoreBlockPreRenderedComponent } from '@core/block/components/pre-rendered-block/pre-rendered-block'; | ||||||
| import { CoreSitePluginsBlockComponent } from '@core/siteplugins/components/block/block'; | import { CoreSitePluginsBlockComponent } from '@core/siteplugins/components/block/block'; | ||||||
|  | import { CoreSitePluginsOnlyTitleBlockComponent } from '@core/siteplugins/components/only-title-block/only-title-block'; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Handler to support a block using a site plugin. |  * Handler to support a block using a site plugin. | ||||||
|  */ |  */ | ||||||
| export class CoreSitePluginsBlockHandler extends CoreSitePluginsBaseHandler implements CoreBlockHandler { | export class CoreSitePluginsBlockHandler extends CoreSitePluginsBaseHandler implements CoreBlockHandler { | ||||||
| 
 | 
 | ||||||
|     constructor(name: string, public blockName: string, protected handlerSchema: any, protected initResult: any) { |     constructor(name: string, public title: string, public blockName: string, protected handlerSchema: any, | ||||||
|  |             protected initResult: any) { | ||||||
|         super(name); |         super(name); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -38,23 +41,27 @@ export class CoreSitePluginsBlockHandler extends CoreSitePluginsBaseHandler impl | |||||||
|      */ |      */ | ||||||
|     getDisplayData(injector: Injector, block: any, contextLevel: string, instanceId: number): |     getDisplayData(injector: Injector, block: any, contextLevel: string, instanceId: number): | ||||||
|             CoreBlockHandlerData | Promise<CoreBlockHandlerData> { |             CoreBlockHandlerData | Promise<CoreBlockHandlerData> { | ||||||
|         let title, |         let className, | ||||||
|             className; |             component; | ||||||
|         if (this.handlerSchema.displaydata && this.handlerSchema.displaydata.title) { | 
 | ||||||
|             title = this.handlerSchema.displaydata.title; |  | ||||||
|         } else { |  | ||||||
|             title = 'plugins.block_' + block.name + '.pluginname'; |  | ||||||
|         } |  | ||||||
|         if (this.handlerSchema.displaydata && this.handlerSchema.displaydata.class) { |         if (this.handlerSchema.displaydata && this.handlerSchema.displaydata.class) { | ||||||
|             className = this.handlerSchema.displaydata.class; |             className = this.handlerSchema.displaydata.class; | ||||||
|         } else { |         } else { | ||||||
|             className = 'block_' + block.name; |             className = 'block_' + block.name; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         if (this.handlerSchema.displaydata && this.handlerSchema.displaydata.type == 'title') { | ||||||
|  |             component = CoreSitePluginsOnlyTitleBlockComponent; | ||||||
|  |         } else if (this.handlerSchema.displaydata && this.handlerSchema.displaydata.type == 'prerendered') { | ||||||
|  |             component = CoreBlockPreRenderedComponent; | ||||||
|  |         } else { | ||||||
|  |             component = CoreSitePluginsBlockComponent; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         return { |         return { | ||||||
|             title: title, |             title: this.title, | ||||||
|             class: className, |             class: className, | ||||||
|             component: CoreSitePluginsBlockComponent |             component: component | ||||||
|         }; |         }; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -53,7 +53,10 @@ export class CoreSitePluginsBlockComponent extends CoreBlockBaseComponent implem | |||||||
|             if (handler) { |             if (handler) { | ||||||
|                 this.component = handler.plugin.component; |                 this.component = handler.plugin.component; | ||||||
|                 this.method = handler.handlerSchema.method; |                 this.method = handler.handlerSchema.method; | ||||||
|                 this.args = { }; |                 this.args = { | ||||||
|  |                     contextlevel: this.contextLevel, | ||||||
|  |                     instanceid: this.instanceId, | ||||||
|  |                 }; | ||||||
|                 this.initResult = handler.initResult; |                 this.initResult = handler.initResult; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  | |||||||
| @ -30,12 +30,14 @@ import { CoreSitePluginsAssignFeedbackComponent } from './assign-feedback/assign | |||||||
| import { CoreSitePluginsAssignSubmissionComponent } from './assign-submission/assign-submission'; | import { CoreSitePluginsAssignSubmissionComponent } from './assign-submission/assign-submission'; | ||||||
| import { CoreSitePluginsWorkshopAssessmentStrategyComponent } from './workshop-assessment-strategy/workshop-assessment-strategy'; | import { CoreSitePluginsWorkshopAssessmentStrategyComponent } from './workshop-assessment-strategy/workshop-assessment-strategy'; | ||||||
| import { CoreSitePluginsBlockComponent } from '@core/siteplugins/components/block/block'; | import { CoreSitePluginsBlockComponent } from '@core/siteplugins/components/block/block'; | ||||||
|  | import { CoreSitePluginsOnlyTitleBlockComponent } from '@core/siteplugins/components/only-title-block/only-title-block'; | ||||||
| 
 | 
 | ||||||
| @NgModule({ | @NgModule({ | ||||||
|     declarations: [ |     declarations: [ | ||||||
|         CoreSitePluginsPluginContentComponent, |         CoreSitePluginsPluginContentComponent, | ||||||
|         CoreSitePluginsModuleIndexComponent, |         CoreSitePluginsModuleIndexComponent, | ||||||
|         CoreSitePluginsBlockComponent, |         CoreSitePluginsBlockComponent, | ||||||
|  |         CoreSitePluginsOnlyTitleBlockComponent, | ||||||
|         CoreSitePluginsCourseOptionComponent, |         CoreSitePluginsCourseOptionComponent, | ||||||
|         CoreSitePluginsCourseFormatComponent, |         CoreSitePluginsCourseFormatComponent, | ||||||
|         CoreSitePluginsUserProfileFieldComponent, |         CoreSitePluginsUserProfileFieldComponent, | ||||||
| @ -59,6 +61,7 @@ import { CoreSitePluginsBlockComponent } from '@core/siteplugins/components/bloc | |||||||
|         CoreSitePluginsPluginContentComponent, |         CoreSitePluginsPluginContentComponent, | ||||||
|         CoreSitePluginsModuleIndexComponent, |         CoreSitePluginsModuleIndexComponent, | ||||||
|         CoreSitePluginsBlockComponent, |         CoreSitePluginsBlockComponent, | ||||||
|  |         CoreSitePluginsOnlyTitleBlockComponent, | ||||||
|         CoreSitePluginsCourseOptionComponent, |         CoreSitePluginsCourseOptionComponent, | ||||||
|         CoreSitePluginsCourseFormatComponent, |         CoreSitePluginsCourseFormatComponent, | ||||||
|         CoreSitePluginsUserProfileFieldComponent, |         CoreSitePluginsUserProfileFieldComponent, | ||||||
| @ -72,6 +75,7 @@ import { CoreSitePluginsBlockComponent } from '@core/siteplugins/components/bloc | |||||||
|     entryComponents: [ |     entryComponents: [ | ||||||
|         CoreSitePluginsModuleIndexComponent, |         CoreSitePluginsModuleIndexComponent, | ||||||
|         CoreSitePluginsBlockComponent, |         CoreSitePluginsBlockComponent, | ||||||
|  |         CoreSitePluginsOnlyTitleBlockComponent, | ||||||
|         CoreSitePluginsCourseOptionComponent, |         CoreSitePluginsCourseOptionComponent, | ||||||
|         CoreSitePluginsCourseFormatComponent, |         CoreSitePluginsCourseFormatComponent, | ||||||
|         CoreSitePluginsUserProfileFieldComponent, |         CoreSitePluginsUserProfileFieldComponent, | ||||||
|  | |||||||
| @ -0,0 +1,3 @@ | |||||||
|  | <ion-item-divider text-wrap detail-push (click)="gotoBlock($event)"> | ||||||
|  |     <h2>{{ title | translate }}</h2> | ||||||
|  | </ion-item-divider> | ||||||
| @ -0,0 +1,69 @@ | |||||||
|  | // (C) Copyright 2015 Martin Dougiamas
 | ||||||
|  | //
 | ||||||
|  | // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||||
|  | // you may not use this file except in compliance with the License.
 | ||||||
|  | // You may obtain a copy of the License at
 | ||||||
|  | //
 | ||||||
|  | //     http://www.apache.org/licenses/LICENSE-2.0
 | ||||||
|  | //
 | ||||||
|  | // Unless required by applicable law or agreed to in writing, software
 | ||||||
|  | // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||||
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||||
|  | // See the License for the specific language governing permissions and
 | ||||||
|  | // limitations under the License.
 | ||||||
|  | 
 | ||||||
|  | import { Injector, OnInit, Component, Optional } from '@angular/core'; | ||||||
|  | import { NavController } from 'ionic-angular'; | ||||||
|  | import { CoreBlockBaseComponent } from '@core/block/classes/base-block-component'; | ||||||
|  | import { CoreSitePluginsProvider } from '../../providers/siteplugins'; | ||||||
|  | import { CoreBlockDelegate } from '@core/block/providers/delegate'; | ||||||
|  | import { CoreSplitViewComponent } from '@components/split-view/split-view'; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Component to render blocks with only a title and link. | ||||||
|  |  */ | ||||||
|  | @Component({ | ||||||
|  |     selector: 'core-siteplugins-only-title-block', | ||||||
|  |     templateUrl: 'core-siteplugins-only-title-block.html' | ||||||
|  | }) | ||||||
|  | export class CoreSitePluginsOnlyTitleBlockComponent  extends CoreBlockBaseComponent implements OnInit { | ||||||
|  | 
 | ||||||
|  |     constructor(injector: Injector, protected sitePluginsProvider: CoreSitePluginsProvider, | ||||||
|  |             protected blockDelegate: CoreBlockDelegate, private navCtrl: NavController, | ||||||
|  |             @Optional() private svComponent: CoreSplitViewComponent) { | ||||||
|  | 
 | ||||||
|  |         super(injector, 'CoreSitePluginsOnlyTitleBlockComponent'); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Component being initialized. | ||||||
|  |      */ | ||||||
|  |     ngOnInit(): void { | ||||||
|  |         super.ngOnInit(); | ||||||
|  | 
 | ||||||
|  |         this.fetchContentDefaultError = 'Error getting ' + this.block.contents.title + ' data.'; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Go to the block page. | ||||||
|  |      */ | ||||||
|  |     gotoBlock(): void { | ||||||
|  |         const handlerName = this.blockDelegate.getHandlerName(this.block.name); | ||||||
|  |         const handler = this.sitePluginsProvider.getSitePluginHandler(handlerName); | ||||||
|  | 
 | ||||||
|  |         if (handler) { | ||||||
|  |             const navCtrl = this.svComponent ? this.svComponent.getMasterNav() : this.navCtrl; | ||||||
|  | 
 | ||||||
|  |             navCtrl.push('CoreSitePluginsPluginPage', { | ||||||
|  |                 title: this.title, | ||||||
|  |                 component: handler.plugin.component, | ||||||
|  |                 method: handler.handlerSchema.method, | ||||||
|  |                 initResult: handler.initResult, | ||||||
|  |                 args: { | ||||||
|  |                     contextlevel: this.contextLevel, | ||||||
|  |                     instanceid: this.instanceId, | ||||||
|  |                 }, | ||||||
|  |             }); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -661,10 +661,11 @@ export class CoreSitePluginsHelperProvider { | |||||||
|             string | Promise<string> { |             string | Promise<string> { | ||||||
| 
 | 
 | ||||||
|         const uniqueName = this.sitePluginsProvider.getHandlerUniqueName(plugin, handlerName), |         const uniqueName = this.sitePluginsProvider.getHandlerUniqueName(plugin, handlerName), | ||||||
|             blockName = (handlerSchema.moodlecomponent || plugin.component).replace('block_', ''); |             blockName = (handlerSchema.moodlecomponent || plugin.component).replace('block_', ''), | ||||||
|  |             prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title || 'pluginname'); | ||||||
| 
 | 
 | ||||||
|         this.blockDelegate.registerHandler( |         this.blockDelegate.registerHandler( | ||||||
|             new CoreSitePluginsBlockHandler(uniqueName, blockName, handlerSchema, initResult)); |             new CoreSitePluginsBlockHandler(uniqueName, prefixedTitle, blockName, handlerSchema, initResult)); | ||||||
| 
 | 
 | ||||||
|         return uniqueName; |         return uniqueName; | ||||||
|     } |     } | ||||||
| @ -709,7 +710,7 @@ export class CoreSitePluginsHelperProvider { | |||||||
| 
 | 
 | ||||||
|         // Create and register the handler.
 |         // Create and register the handler.
 | ||||||
|         const uniqueName = this.sitePluginsProvider.getHandlerUniqueName(plugin, handlerName), |         const uniqueName = this.sitePluginsProvider.getHandlerUniqueName(plugin, handlerName), | ||||||
|             prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title), |             prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title || 'pluginname'), | ||||||
|             handler = new CoreSitePluginsCourseOptionHandler(uniqueName, prefixedTitle, plugin, |             handler = new CoreSitePluginsCourseOptionHandler(uniqueName, prefixedTitle, plugin, | ||||||
|                     handlerSchema, initResult, this.sitePluginsProvider, this.utils); |                     handlerSchema, initResult, this.sitePluginsProvider, this.utils); | ||||||
| 
 | 
 | ||||||
| @ -749,7 +750,7 @@ export class CoreSitePluginsHelperProvider { | |||||||
| 
 | 
 | ||||||
|         // Create and register the handler.
 |         // Create and register the handler.
 | ||||||
|         const uniqueName = this.sitePluginsProvider.getHandlerUniqueName(plugin, handlerName), |         const uniqueName = this.sitePluginsProvider.getHandlerUniqueName(plugin, handlerName), | ||||||
|             prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title); |             prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title || 'pluginname'); | ||||||
| 
 | 
 | ||||||
|         this.mainMenuDelegate.registerHandler( |         this.mainMenuDelegate.registerHandler( | ||||||
|                 new CoreSitePluginsMainMenuHandler(uniqueName, prefixedTitle, plugin, handlerSchema, initResult)); |                 new CoreSitePluginsMainMenuHandler(uniqueName, prefixedTitle, plugin, handlerSchema, initResult)); | ||||||
| @ -778,7 +779,7 @@ export class CoreSitePluginsHelperProvider { | |||||||
| 
 | 
 | ||||||
|         // Create and register the handler.
 |         // Create and register the handler.
 | ||||||
|         const uniqueName = this.sitePluginsProvider.getHandlerUniqueName(plugin, handlerName), |         const uniqueName = this.sitePluginsProvider.getHandlerUniqueName(plugin, handlerName), | ||||||
|             prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title), |             prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title || 'pluginname'), | ||||||
|             processorName = (handlerSchema.moodlecomponent || plugin.component).replace('message_', ''); |             processorName = (handlerSchema.moodlecomponent || plugin.component).replace('message_', ''); | ||||||
| 
 | 
 | ||||||
|         this.messageOutputDelegate.registerHandler(new CoreSitePluginsMessageOutputHandler(uniqueName, processorName, |         this.messageOutputDelegate.registerHandler(new CoreSitePluginsMessageOutputHandler(uniqueName, processorName, | ||||||
| @ -897,7 +898,7 @@ export class CoreSitePluginsHelperProvider { | |||||||
| 
 | 
 | ||||||
|         // Create and register the handler.
 |         // Create and register the handler.
 | ||||||
|         const uniqueName = this.sitePluginsProvider.getHandlerUniqueName(plugin, handlerName), |         const uniqueName = this.sitePluginsProvider.getHandlerUniqueName(plugin, handlerName), | ||||||
|             prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title); |             prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title || 'pluginname'); | ||||||
| 
 | 
 | ||||||
|         this.settingsDelegate.registerHandler( |         this.settingsDelegate.registerHandler( | ||||||
|                 new CoreSitePluginsSettingsHandler(uniqueName, prefixedTitle, plugin, handlerSchema, initResult)); |                 new CoreSitePluginsSettingsHandler(uniqueName, prefixedTitle, plugin, handlerSchema, initResult)); | ||||||
| @ -926,7 +927,7 @@ export class CoreSitePluginsHelperProvider { | |||||||
| 
 | 
 | ||||||
|         // Create and register the handler.
 |         // Create and register the handler.
 | ||||||
|         const uniqueName = this.sitePluginsProvider.getHandlerUniqueName(plugin, handlerName), |         const uniqueName = this.sitePluginsProvider.getHandlerUniqueName(plugin, handlerName), | ||||||
|             prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title), |             prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title || 'pluginname'), | ||||||
|             handler = new CoreSitePluginsUserProfileHandler(uniqueName, prefixedTitle, plugin, handlerSchema, |             handler = new CoreSitePluginsUserProfileHandler(uniqueName, prefixedTitle, plugin, handlerSchema, | ||||||
|                     initResult, this.sitePluginsProvider, this.utils); |                     initResult, this.sitePluginsProvider, this.utils); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user