Ran Shem Tov pushed to branch feature/CC-CHANNELMGR-1510 at cms-community / hippo-addon-channel-manager
Commits: f402c844 by Ran ShemTov at 2017-10-27T14:50:38+02:00 CHANNELMGR-1510 Create binding between the name and url fields component to CC2 - - - - - 71bbeec8 by Ran ShemTov at 2017-10-31T10:29:00+01:00 CHANNELMGR-1510 Finalize the change document name dialog - - - - - 6 changed files: - frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/name-url-fields/name-url-fields.component.ts - frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/name-url-fields/name-url-fields.html - frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/step-2/nameUrlFieldsDialog/name-url-fields-dialog.controller.js - frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/step-2/nameUrlFieldsDialog/name-url-fields-dialog.html - frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/step-2/step2.controller.js - frontend-ng/src/i18n/en.json Changes: ===================================== frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/name-url-fields/name-url-fields.component.ts ===================================== --- a/frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/name-url-fields/name-url-fields.component.ts +++ b/frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/name-url-fields/name-url-fields.component.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Component, ElementRef, OnInit, Output, ViewChild } from '@angular/core'; +import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; import { Observable } from 'rxjs/rx'; @Component({ @@ -25,14 +25,20 @@ import { Observable } from 'rxjs/rx'; export class NameUrlFieldsComponent implements OnInit { @ViewChild('form') form: HTMLFormElement; @ViewChild('nameInputElement') nameInputElement: ElementRef; - public urlField: string; + @Input('nameField') nameField: string; + @Input('urlField') urlField: string; + @Output() nameFieldChange: EventEmitter<string> = new EventEmitter(); + @Output() urlFieldChange: EventEmitter<string> = new EventEmitter(); public urlEditMode: { state: boolean, oldValue: string } = { state: false, oldValue: '' }; - public dummy: string; ngOnInit() { Observable.fromEvent(this.nameInputElement.nativeElement, 'keyup') .debounceTime(1000) - .subscribe(() => this.setDocumentUrlByName(this.form.controls.name.value)); + .subscribe(() => { + this.setDocumentUrlByName(this.nameField); + this.nameFieldChange.next(this.nameField); + this.urlFieldChange.next(this.urlField); + }); } setDocumentUrlByName(name: string) { ===================================== frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/name-url-fields/name-url-fields.html ===================================== --- a/frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/name-url-fields/name-url-fields.html +++ b/frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/name-url-fields/name-url-fields.html @@ -18,7 +18,7 @@ <!-- Document name field --> <div class="field"> <mat-input-container class="create-content-field"> - <input mdInput ngModel name="name" placeholder="Document name" required #nameInputElement> + <input mdInput [(ngModel)]="nameField" name="name" placeholder="Document name" required #nameInputElement> </mat-input-container> <hippo-hints [data]="form.controls.name.errors" *ngIf="form.controls.name && form.controls.name.touched"> ===================================== frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/step-2/nameUrlFieldsDialog/name-url-fields-dialog.controller.js ===================================== --- a/frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/step-2/nameUrlFieldsDialog/name-url-fields-dialog.controller.js +++ b/frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/step-2/nameUrlFieldsDialog/name-url-fields-dialog.controller.js @@ -15,14 +15,20 @@ */ class NameUrlFieldsDialogCtrl { - constructor($mdDialog) { + constructor($mdDialog, locals) { 'ngInject'; this.$mdDialog = $mdDialog; + this.name = locals.name; + this.url = locals.url; + this.title = locals.title; } - submit(form) { - this.$mdDialog.hide(form); + submit() { + this.$mdDialog.hide({ + name: this.name, + url: this.url, + }); } cancel() { ===================================== frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/step-2/nameUrlFieldsDialog/name-url-fields-dialog.html ===================================== --- a/frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/step-2/nameUrlFieldsDialog/name-url-fields-dialog.html +++ b/frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/step-2/nameUrlFieldsDialog/name-url-fields-dialog.html @@ -1,17 +1,23 @@ -<md-dialog flex="30" aria-label="{{ 'CHANGE_DOCUMENT_NAME' | translate }}"> +<md-dialog flex="30" aria-label="{{ ::$ctrl.title }}"> + <md-dialog-content> <div class="md-dialog-content name-url-fields-dialog"> - <hippo-name-url-fields></hippo-name-url-fields> + <h3>{{ ::$ctrl.title }}</h3> + + <hippo-name-url-fields [(name-field)]="$ctrl.name" [(url-field)]="$ctrl.url"></hippo-name-url-fields> </div> </md-dialog-content> + <md-dialog-actions> <md-button ng-click="$ctrl.cancel()" class="qa-cancel"> {{ ::'CANCEL' | translate }} </md-button> + <md-button ng-click="$ctrl.submit()" class="qa-submit-name-url"> {{ ::'CHANGE' | translate }} </md-button> </md-dialog-actions> + </md-dialog> ===================================== frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/step-2/step2.controller.js ===================================== --- a/frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/step-2/step2.controller.js +++ b/frontend-ng/src/app/channel/sidePanels/rightSidePanel/create-content/step-2/step2.controller.js @@ -125,16 +125,22 @@ class createContentStep2Controller { template: nameUrlFieldsTemplate, controller: NameUrlFieldsDialogCtrl, controllerAs: '$ctrl', + locals: { + title: this.$translate.instant('CHANGE_DOCUMENT_NAME'), + name: this.doc.displayName, + url: '', + }, bindToController: true, }); } - _submitEditNameUrl() { - console.log('name-url-submitted'); + _submitEditNameUrl(nameUrlObj) { + console.log(nameUrlObj); + this.doc.displayName = nameUrlObj.name; } editNameUrl() { - this._openEditNameUrlDialog().then(nameUrl => this._submitEditNameUrl(nameUrl)); + this._openEditNameUrlDialog().then(nameUrlObj => this._submitEditNameUrl(nameUrlObj)); } _resetBeforeStateChange() { ===================================== frontend-ng/src/i18n/en.json ===================================== --- a/frontend-ng/src/i18n/en.json +++ b/frontend-ng/src/i18n/en.json @@ -3,6 +3,7 @@ "ADVANCED_SETTINGS": "Advanced settings", "CANCEL": "Cancel", "CHANNEL_PROPERTIES_SAVE_SUCCESS": "Channel settings saved successfully", + "CHANGE_DOCUMENT_NAME": "Change document name", "CLOSE": "Close", "COLLAPSE": "Collapse", "CONFIRM_DELETE_CHANNEL_MESSAGE": "You cannot undo this action.", View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/99372fd666085cf9d6c2287446719b70341feedd...71bbeec8ef6b881ca80cfe663f7c999e4fded119 --- View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/99372fd666085cf9d6c2287446719b70341feedd...71bbeec8ef6b881ca80cfe663f7c999e4fded119 You're receiving this email because of your account on code.onehippo.org.
_______________________________________________ Hippocms-svn mailing list Hippocms-svn@lists.onehippo.org https://lists.onehippo.org/mailman/listinfo/hippocms-svn