Canh Ngo pushed to branch feature/cmng-psp1-CHANNELMGR-467 at cms-community / 
hippo-addon-channel-manager


Commits:
1c97783d by Canh Ngo at 2016-03-17T14:51:07+01:00
CHANNELMGR-467: Renamed ComponentRenderingService to ExtJsHandlerService

Moved ExtJsHandlerService#renderComponent() to PageStructureService to align 
with PageStructureService#renderContainer()

Due to only listening to the 'render-component' event from ExtJS, the 
ComponentRenderingService should be renamed properly.

- - - - -


6 changed files:

- − 
frontend-ng/src/angularjs/channel/page/componentRendering.service.fixture.html
- frontend-ng/src/angularjs/channel/page/componentRendering.service.js → 
frontend-ng/src/angularjs/channel/page/extJsHandler.service.js
- frontend-ng/src/angularjs/channel/page/componentRendering.service.spec.js → 
frontend-ng/src/angularjs/channel/page/extJsHandler.service.spec.js
- frontend-ng/src/angularjs/channel/page/page.js
- frontend-ng/src/angularjs/channel/page/page.run.js
- frontend-ng/src/angularjs/channel/page/pageStructure.service.js


Changes:

=====================================
frontend-ng/src/angularjs/channel/page/componentRendering.service.fixture.html 
deleted
=====================================
--- 
a/frontend-ng/src/angularjs/channel/page/componentRendering.service.fixture.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!--
-  ~ Copyright 2016 Hippo B.V. (http://www.onehippo.com)
-  ~
-  ~ 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.
-  -->
-
-<div id="component">
-</div>


=====================================
frontend-ng/src/angularjs/channel/page/componentRendering.service.js → 
frontend-ng/src/angularjs/channel/page/extJsHandler.service.js
=====================================
--- a/frontend-ng/src/angularjs/channel/page/componentRendering.service.js
+++ b/frontend-ng/src/angularjs/channel/page/extJsHandler.service.js
@@ -14,30 +14,16 @@
  * limitations under the License.
  */
 
-export class ComponentRenderingService {
+export class ExtJsHandlerService {
 
-  constructor($http, $log, CmsService, PageStructureService, RenderingService) 
{
+  constructor(CmsService, PageStructureService) {
     'ngInject';
 
-    this.$http = $http;
-    this.$log = $log;
     this.CmsService = CmsService;
     this.PageStructureService = PageStructureService;
-    this.RenderingService = RenderingService;
   }
 
   initialize() {
-    this.CmsService.subscribe('render-component', this._renderComponent, this);
-  }
-
-  _renderComponent(componentId, propertiesMap) {
-    const component = this.PageStructureService.getComponentById(componentId);
-    if (component) {
-      this.RenderingService.fetchComponentMarkup(component, 
propertiesMap).then((response) => {
-        this.PageStructureService.updateComponent(component, response.data);
-      });
-    } else {
-      this.$log.warn(`Cannot render unknown component '${componentId}'`);
-    }
+    this.CmsService.subscribe('render-component', 
this.PageStructureService.renderComponent.bind(this.PageStructureService), 
this);
   }
 }


=====================================
frontend-ng/src/angularjs/channel/page/componentRendering.service.spec.js → 
frontend-ng/src/angularjs/channel/page/extJsHandler.service.spec.js
=====================================
--- a/frontend-ng/src/angularjs/channel/page/componentRendering.service.spec.js
+++ b/frontend-ng/src/angularjs/channel/page/extJsHandler.service.spec.js
@@ -14,50 +14,23 @@
  * limitations under the License.
  */
 
-describe('ComponentRenderingService', () => {
+describe('ExtJsHandlerService', () => {
   'use strict';
 
   let PageStructureService;
-  let RenderingService;
-  let $log;
-  let $q;
 
   beforeEach(() => {
     module('hippo-cm.channel.page');
 
-    inject((_$httpBackend_, _$q_, _$log_, _PageStructureService_, 
_RenderingService_) => {
-      $log = _$log_;
-      $q = _$q_;
+    inject((_PageStructureService_) => {
       PageStructureService = _PageStructureService_;
-      RenderingService = _RenderingService_;
     });
   });
 
-  beforeEach(() => {
-    
jasmine.getFixtures().load('channel/page/componentRendering.service.fixture.html');
-  });
-
-  it('renders a component', () => {
-    const component = jasmine.createSpyObj('component', ['getJQueryElement']);
-    const iframeElement = $j('#component');
-
-    component.getJQueryElement.and.returnValue(iframeElement);
-    spyOn(PageStructureService, 'getComponent').and.returnValue(component);
-    spyOn(PageStructureService, 'updateComponent');
-    spyOn(RenderingService, 'fetchComponentMarkup').and.returnValue($q.when('{ 
data: <div>component markup</div> }'));
-
+  it('handles the render event from ExtJS', () => {
+    spyOn(PageStructureService, 'renderComponent');
     window.CMS_TO_APP.publish('render-component', '1234', { foo: 1, bar: 'a:b' 
});
 
-    
expect(RenderingService.fetchComponentMarkup).toHaveBeenCalledWith(component, { 
foo: 1, bar: 'a:b' });
-    
expect(PageStructureService.replaceComponent).toHaveBeenCalledWith(component, 
'<div>component markup</div>');
-  });
-
-  it('logs a warning when the component to render cannot be found', () => {
-    spyOn(PageStructureService, 'getComponent').and.returnValue(null);
-    spyOn($log, 'warn');
-
-    window.CMS_TO_APP.publish('render-component', 'unknown-component-id', {});
-
-    expect($log.warn).toHaveBeenCalled();
+    expect(PageStructureService.renderComponent).toHaveBeenCalledWith('1234', 
{ foo: 1, bar: 'a:b' });
   });
 });


=====================================
frontend-ng/src/angularjs/channel/page/page.js
=====================================
--- a/frontend-ng/src/angularjs/channel/page/page.js
+++ b/frontend-ng/src/angularjs/channel/page/page.js
@@ -15,7 +15,7 @@
  */
 
 import { RenderingService } from './rendering.service';
-import { ComponentRenderingService } from './componentRendering.service';
+import { ExtJsHandlerService } from './extJsHandler.service';
 import { PageMetaDataService } from './pageMetaData.service';
 import { PageStructureService } from './pageStructure.service';
 import { run } from './page.run';
@@ -23,7 +23,7 @@ import { run } from './page.run';
 export const channelPageModule = angular
   .module('hippo-cm.channel.page', [])
   .service('RenderingService', RenderingService)
-  .service('ComponentRenderingService', ComponentRenderingService)
+  .service('ExtJsHandlerService', ExtJsHandlerService)
   .service('PageMetaDataService', PageMetaDataService)
   .service('PageStructureService', PageStructureService)
   .run(run);


=====================================
frontend-ng/src/angularjs/channel/page/page.run.js
=====================================
--- a/frontend-ng/src/angularjs/channel/page/page.run.js
+++ b/frontend-ng/src/angularjs/channel/page/page.run.js
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-export function run(ComponentRenderingService) {
+export function run(ExtJsHandlerService) {
   'ngInject';
 
-  ComponentRenderingService.initialize();
+  ExtJsHandlerService.initialize();
 }


=====================================
frontend-ng/src/angularjs/channel/page/pageStructure.service.js
=====================================
--- a/frontend-ng/src/angularjs/channel/page/pageStructure.service.js
+++ b/frontend-ng/src/angularjs/channel/page/pageStructure.service.js
@@ -144,10 +144,21 @@ export class PageStructureService {
     });
   }
 
+  renderComponent(componentId, propertiesMap) {
+    const component = this.getComponentById(componentId);
+    if (component) {
+      this.RenderingService.fetchComponentMarkup(component, 
propertiesMap).then((response) => {
+        this._updateComponent(component, response.data);
+      });
+    } else {
+      this.$log.warn(`Cannot render unknown component '${componentId}'`);
+    }
+  }
+
   /**
    * Update the component with the new markup
    */
-  updateComponent(component, newMarkup) {
+  _updateComponent(component, newMarkup) {
     const jQueryNodeCollection = component.replaceDOM(newMarkup);
     this._replaceComponent(component, 
this._createComponent(jQueryNodeCollection, component.getContainer()));
     this.OverlaySyncService.syncIframe();



View it on GitLab: 
https://code.onehippo.org/cms-community/hippo-addon-channel-manager/commit/1c97783d9bf0324f348ede9afb34674a9902f429
_______________________________________________
Hippocms-svn mailing list
Hippocms-svn@lists.onehippo.org
https://lists.onehippo.org/mailman/listinfo/hippocms-svn

Reply via email to