diff --git a/demo-shell-ng2/app/vendor.ts b/demo-shell-ng2/app/vendor.ts
index afb4ca35a2..c7d4a05717 100644
--- a/demo-shell-ng2/app/vendor.ts
+++ b/demo-shell-ng2/app/vendor.ts
@@ -57,10 +57,6 @@ require('script-loader!raphael/raphael.min.js');
require('script-loader!moment/min/moment.min.js');
-import 'md-date-time-picker/dist/css/mdDateTimePicker.css';
-require('script-loader!md-date-time-picker/dist/js/mdDateTimePicker.min.js');
-require('script-loader!md-date-time-picker/dist/js/draggabilly.pkgd.min.js');
-
require('pdfjs-dist/web/compatibility.js');
// Setting worker path to worker bundle.
diff --git a/demo-shell-ng2/package.json b/demo-shell-ng2/package.json
index 69103e4ba6..9681413e7d 100644
--- a/demo-shell-ng2/package.json
+++ b/demo-shell-ng2/package.json
@@ -76,7 +76,6 @@
"intl": "1.2.5",
"material-design-icons": "2.2.3",
"material-design-lite": "1.2.1",
- "md-date-time-picker": "2.2.0",
"minimatch": "3.0.4",
"moment": "2.15.1",
"ng2-3d-editor": "0.0.15",
diff --git a/ng2-components/config/karma.conf-all.js b/ng2-components/config/karma.conf-all.js
index 3a2ca18a00..7286000f24 100644
--- a/ng2-components/config/karma.conf-all.js
+++ b/ng2-components/config/karma.conf-all.js
@@ -20,11 +20,6 @@ module.exports = function (config) {
{pattern: './node_modules/alfresco-js-api/dist/alfresco-js-api.min.js', included: true, watched: false},
{pattern: './node_modules/raphael/raphael.min.js', included: true, watched: false},
{pattern: './node_modules/moment/min/moment.min.js', included: true, watched: false},
- {
- pattern: './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.min.js',
- included: true,
- watched: false
- },
{pattern: './node_modules/ng2-translate/ng2-translate.js', included: false, watched: false},
{
diff --git a/ng2-components/ng2-activiti-analytics/index.ts b/ng2-components/ng2-activiti-analytics/index.ts
index 0bce895fcf..8bae88f1a1 100644
--- a/ng2-components/ng2-activiti-analytics/index.ts
+++ b/ng2-components/ng2-activiti-analytics/index.ts
@@ -16,7 +16,6 @@
*/
import { ModuleWithProviders, NgModule } from '@angular/core';
-import { MdButtonModule, MdIconModule, MdTooltipModule } from '@angular/material';
import { DiagramsModule } from 'ng2-activiti-diagrams';
import { CoreModule, TRANSLATION_PROVIDER } from 'ng2-alfresco-core';
@@ -27,8 +26,8 @@ import { AnalyticsReportListComponent } from './src/components/analytics-report-
import { AnalyticsReportParametersComponent } from './src/components/analytics-report-parameters.component';
import { AnalyticsComponent } from './src/components/analytics.component';
import { AnalyticsService } from './src/services/analytics.service';
-
import { WIDGET_DIRECTIVES } from './src/components/widgets/index';
+import { MaterialModule } from './src/material.module';
export * from './src/components/analytics.component';
export * from './src/components/analytics-generator.component';
@@ -55,9 +54,7 @@ export const ANALYTICS_PROVIDERS: any[] = [
CoreModule,
ChartsModule,
DiagramsModule,
- MdTooltipModule,
- MdButtonModule,
- MdIconModule
+ MaterialModule
],
declarations: [
...ANALYTICS_DIRECTIVES
@@ -75,9 +72,7 @@ export const ANALYTICS_PROVIDERS: any[] = [
],
exports: [
...ANALYTICS_DIRECTIVES,
- MdTooltipModule,
- MdButtonModule,
- MdIconModule
+ MaterialModule
]
})
export class AnalyticsModule {
diff --git a/ng2-components/ng2-activiti-analytics/karma.conf.js b/ng2-components/ng2-activiti-analytics/karma.conf.js
index d677c0e597..6ee544ea73 100644
--- a/ng2-components/ng2-activiti-analytics/karma.conf.js
+++ b/ng2-components/ng2-activiti-analytics/karma.conf.js
@@ -15,11 +15,9 @@ module.exports = function (config) {
'./node_modules/alfresco-js-api/dist/alfresco-js-api.js',
'./node_modules/raphael/raphael.js',
'./node_modules/moment/min/moment.min.js',
- './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js',
{pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false},
{pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false},
- {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false},
{pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false},
{pattern: 'karma-test-shim.js', watched: false},
diff --git a/ng2-components/ng2-activiti-analytics/package.json b/ng2-components/ng2-activiti-analytics/package.json
index 0571018988..4e27dba939 100644
--- a/ng2-components/ng2-activiti-analytics/package.json
+++ b/ng2-components/ng2-activiti-analytics/package.json
@@ -44,11 +44,10 @@
"@angular/platform-browser-dynamic": "4.2.5",
"@angular/router": "4.2.5",
"@ngx-translate/core": "7.0.0",
- "alfresco-js-api": "1.7.0",
+ "alfresco-js-api": "^1.8.0-beta1",
"chart.js": "2.5.0",
"core-js": "2.4.1",
"hammerjs": "2.0.8",
- "md-date-time-picker": "2.2.0",
"moment": "2.15.1",
"ng2-activiti-diagrams": "1.7.0",
"ng2-alfresco-core": "1.7.0",
diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.css b/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.scss
similarity index 100%
rename from ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.css
rename to ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.scss
diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.spec.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.spec.ts
index 10f2e1f6d5..9e8e2e5218 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.spec.ts
+++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.spec.ts
@@ -17,7 +17,6 @@
import { DebugElement } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-import { MdButtonModule, MdIconModule, MdTooltipModule } from '@angular/material';
import { DiagramsModule } from 'ng2-activiti-diagrams';
import { AlfrescoTranslationService, CoreModule } from 'ng2-alfresco-core';
import { ChartsModule } from 'ng2-charts';
@@ -31,6 +30,7 @@ import { AnalyticsReportHeatMapComponent } from '../components/analytics-report-
import { AnalyticsReportListComponent } from '../components/analytics-report-list.component';
import { AnalyticsReportParametersComponent } from '../components/analytics-report-parameters.component';
import { WIDGET_DIRECTIVES } from '../components/widgets/index';
+import { MaterialModule } from '../material.module';
import { AnalyticsService } from '../services/analytics.service';
export const ANALYTICS_DIRECTIVES: any[] = [
@@ -59,11 +59,8 @@ describe('AnalyticsGeneratorComponent', () => {
TestBed.configureTestingModule({
imports: [
CoreModule.forRoot(),
- MdTooltipModule,
- MdButtonModule,
- MdIconModule,
+ MaterialModule,
ChartsModule,
-
DiagramsModule.forRoot()
],
declarations: [
diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.ts
index 55d7fdedd8..bdcd70b21e 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.ts
+++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.ts
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';
+import { Component, EventEmitter, Input, OnChanges, Output, ViewEncapsulation } from '@angular/core';
import { ReportQuery } from 'ng2-activiti-diagrams';
import { Chart } from 'ng2-activiti-diagrams';
import { AnalyticsService } from '../services/analytics.service';
@@ -23,7 +23,8 @@ import { AnalyticsService } from '../services/analytics.service';
@Component({
selector: 'adf-analytics-generator, activiti-analytics-generator',
templateUrl: './analytics-generator.component.html',
- styleUrls: ['./analytics-generator.component.css']
+ styleUrls: ['./analytics-generator.component.scss'],
+ encapsulation: ViewEncapsulation.None
})
export class AnalyticsGeneratorComponent implements OnChanges {
@@ -64,7 +65,7 @@ export class AnalyticsGeneratorComponent implements OnChanges {
constructor(private analyticsService: AnalyticsService) {
}
- ngOnChanges(changes: SimpleChanges) {
+ ngOnChanges() {
if (this.reportId && this.reportParamQuery) {
this.generateReport(this.reportId, this.reportParamQuery);
} else {
diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-heat-map.component.spec.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-heat-map.component.spec.ts
index 56e1370722..f431fade43 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-heat-map.component.spec.ts
+++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-heat-map.component.spec.ts
@@ -22,6 +22,7 @@ import { AlfrescoTranslationService, CoreModule } from 'ng2-alfresco-core';
import { Observable } from 'rxjs/Rx';
import { AnalyticsReportHeatMapComponent } from '../components/analytics-report-heat-map.component';
import { WIDGET_DIRECTIVES } from '../components/widgets/index';
+import { MaterialModule } from '../material.module';
import { AnalyticsService } from '../services/analytics.service';
declare let jasmine: any;
@@ -46,7 +47,8 @@ describe('AnalyticsReportHeatMapComponent', () => {
TestBed.configureTestingModule({
imports: [
CoreModule.forRoot(),
- DiagramsModule.forRoot()
+ DiagramsModule.forRoot(),
+ MaterialModule
],
declarations: [
AnalyticsReportHeatMapComponent,
diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-list.component.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-list.component.ts
index f7b3d2e4c6..b8586373d8 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-list.component.ts
+++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-list.component.ts
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';
import { ReportParametersModel } from 'ng2-activiti-diagrams';
import { Observable, Observer } from 'rxjs/Rx';
import { AnalyticsService } from '../services/analytics.service';
@@ -23,7 +23,8 @@ import { AnalyticsService } from '../services/analytics.service';
@Component({
selector: ' adf-analytics-report-list, analytics-report-list',
templateUrl: './analytics-report-list.component.html',
- styleUrls: ['./analytics-report-list.component.css']
+ styleUrls: ['./analytics-report-list.component.css'],
+ encapsulation: ViewEncapsulation.None
})
export class AnalyticsReportListComponent implements OnInit {
diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.html b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.html
index 419e7e6b48..557078363b 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.html
+++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.html
@@ -71,7 +71,7 @@
diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.spec.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.spec.ts
index 3ac18c3a66..3382a2b24c 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.spec.ts
+++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.spec.ts
@@ -17,16 +17,15 @@
import { DebugElement, SimpleChange } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-import { MdButtonModule, MdTooltipModule, OVERLAY_PROVIDERS } from '@angular/material';
-import * as moment from 'moment';
+import { ReportParametersModel } from 'ng2-activiti-diagrams';
import { AlfrescoTranslationService, AppConfigModule, CoreModule } from 'ng2-alfresco-core';
import { Observable } from 'rxjs/Rx';
-
-import { ReportParametersModel } from 'ng2-activiti-diagrams';
import * as analyticParamsMock from '../assets/analyticsParamsReportComponent.mock';
import { AnalyticsReportParametersComponent } from '../components/analytics-report-parameters.component';
import { WIDGET_DIRECTIVES } from '../components/widgets/index';
+import { MaterialModule } from '../material.module';
import { AnalyticsService } from '../services/analytics.service';
+import { DateRangeWidgetComponent } from './widgets/date-range/date-range.widget';
declare let jasmine: any;
@@ -46,16 +45,15 @@ describe('AnalyticsReportParametersComponent', () => {
AppConfigModule.forRoot('app.config.json', {
bpmHost: 'http://localhost:9876/bpm'
}),
- MdTooltipModule,
- MdButtonModule
+ MaterialModule
],
declarations: [
+ DateRangeWidgetComponent,
AnalyticsReportParametersComponent,
...WIDGET_DIRECTIVES
],
providers: [
- AnalyticsService,
- OVERLAY_PROVIDERS
+ AnalyticsService
]
}).compileComponents();
@@ -115,7 +113,7 @@ describe('AnalyticsReportParametersComponent', () => {
let reportId = 1;
let change = new SimpleChange(null, reportId, true);
- component.ngOnChanges({ 'reportId': change });
+ component.ngOnChanges({'reportId': change});
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200,
@@ -135,7 +133,7 @@ describe('AnalyticsReportParametersComponent', () => {
let reportId = 1;
let change = new SimpleChange(null, reportId, true);
- component.ngOnChanges({ 'reportId': change });
+ component.ngOnChanges({'reportId': change});
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200,
@@ -162,7 +160,7 @@ describe('AnalyticsReportParametersComponent', () => {
let reportId = 1;
let change = new SimpleChange(null, reportId, true);
- component.ngOnChanges({ 'reportId': change });
+ component.ngOnChanges({'reportId': change});
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200,
@@ -224,7 +222,7 @@ describe('AnalyticsReportParametersComponent', () => {
let reportId = 1;
let change = new SimpleChange(null, reportId, true);
- component.ngOnChanges({ 'reportId': change });
+ component.ngOnChanges({'reportId': change});
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200,
@@ -235,21 +233,15 @@ describe('AnalyticsReportParametersComponent', () => {
it('Should render a date range components when the definition parameter type is \'dateRange\' ', (done) => {
component.onSuccessReportParams.subscribe(() => {
- fixture.detectChanges();
-
- let today = moment().format('YYYY-MM-DD');
-
- const startDate: any = element.querySelector('#startDateInput');
- const endDate: any = element.querySelector('#endDateInput');
-
- expect(startDate.value).toEqual(today);
- expect(endDate.value).toEqual(today);
+ let dateElement: any = element.querySelector('adf-date-range-widget');
+ expect(dateElement).toBeDefined();
done();
});
let reportId = 1;
let change = new SimpleChange(null, reportId, true);
- component.ngOnChanges({ 'reportId': change });
+ component.toggleParameters();
+ component.ngOnChanges({'reportId': change});
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200,
@@ -274,7 +266,7 @@ describe('AnalyticsReportParametersComponent', () => {
let reportId = 1;
let change = new SimpleChange(null, reportId, true);
- component.ngOnChanges({ 'reportId': change });
+ component.ngOnChanges({'reportId': change});
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200,
@@ -312,7 +304,7 @@ describe('AnalyticsReportParametersComponent', () => {
let reportId = 1;
let change = new SimpleChange(null, reportId, true);
- component.ngOnChanges({ 'reportId': change });
+ component.ngOnChanges({'reportId': change});
});
@@ -346,7 +338,7 @@ describe('AnalyticsReportParametersComponent', () => {
component.appId = appId;
component.reportId = '1';
let change = new SimpleChange(null, appId, true);
- component.ngOnChanges({ 'appId': change });
+ component.ngOnChanges({'appId': change});
});
@@ -359,7 +351,7 @@ describe('AnalyticsReportParametersComponent', () => {
let reportId = 1;
let change = new SimpleChange(null, reportId, true);
- component.ngOnChanges({ 'reportId': change });
+ component.ngOnChanges({'reportId': change});
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200,
@@ -409,7 +401,7 @@ describe('AnalyticsReportParametersComponent', () => {
let reportId = 1;
let change = new SimpleChange(null, reportId, true);
- component.ngOnChanges({ 'reportId': change });
+ component.ngOnChanges({'reportId': change});
});
@@ -421,7 +413,7 @@ describe('AnalyticsReportParametersComponent', () => {
let reportId = 1;
let change = new SimpleChange(null, reportId, true);
- component.ngOnChanges({ 'reportId': change });
+ component.ngOnChanges({'reportId': change});
jasmine.Ajax.requests.mostRecent().respondWith({
status: 404,
@@ -467,7 +459,7 @@ describe('AnalyticsReportParametersComponent', () => {
beforeEach(async(() => {
let reportId = 1;
let change = new SimpleChange(null, reportId, true);
- component.ngOnChanges({ 'reportId': change });
+ component.ngOnChanges({'reportId': change});
fixture.detectChanges();
jasmine.Ajax.requests.mostRecent().respondWith({
diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.ts
index cf7be41b51..37e5a7ff26 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.ts
+++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.ts
@@ -26,7 +26,8 @@ import {
OnInit,
Output,
SimpleChanges,
- ViewChild
+ ViewChild,
+ ViewEncapsulation
} from '@angular/core';
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
import * as moment from 'moment';
@@ -45,7 +46,8 @@ declare let dialogPolyfill: any;
@Component({
selector: 'adf-analytics-report-parameters, analytics-report-parameters',
templateUrl: './analytics-report-parameters.component.html',
- styleUrls: ['./analytics-report-parameters.component.css']
+ styleUrls: ['./analytics-report-parameters.component.css'],
+ encapsulation: ViewEncapsulation.None
})
export class AnalyticsReportParametersComponent implements OnInit, OnChanges, OnDestroy, AfterViewChecked, AfterContentChecked {
diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.css b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.scss
similarity index 100%
rename from ng2-components/ng2-activiti-analytics/src/components/analytics.component.css
rename to ng2-components/ng2-activiti-analytics/src/components/analytics.component.scss
diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.ts
index 1c35493a79..0f1622992f 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.ts
+++ b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.ts
@@ -15,14 +15,15 @@
* limitations under the License.
*/
-import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';
+import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';
import { ReportQuery } from 'ng2-activiti-diagrams';
import { AnalyticsGeneratorComponent } from './analytics-generator.component';
@Component({
selector: 'adf-analytics, activiti-analytics',
templateUrl: './analytics.component.html',
- styleUrls: ['./analytics.component.css']
+ styleUrls: ['./analytics.component.scss'],
+ encapsulation: ViewEncapsulation.None
})
export class AnalyticsComponent implements OnChanges {
diff --git a/ng2-components/ng2-activiti-analytics/src/components/widgets/checkbox/checkbox.widget.ts b/ng2-components/ng2-activiti-analytics/src/components/widgets/checkbox/checkbox.widget.ts
index c9963e7d59..9fba7a441a 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/widgets/checkbox/checkbox.widget.ts
+++ b/ng2-components/ng2-activiti-analytics/src/components/widgets/checkbox/checkbox.widget.ts
@@ -18,13 +18,14 @@
/* tslint:disable:component-selector */
/* tslint:disable:no-access-missing-member */
-import { Component, ElementRef, Input } from '@angular/core';
+import { Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { WidgetComponent } from './../widget.component';
@Component({
selector: 'checkbox-widget',
- templateUrl: './checkbox.widget.html'
+ templateUrl: './checkbox.widget.html',
+ encapsulation: ViewEncapsulation.None
})
export class CheckboxWidgetComponent extends WidgetComponent {
diff --git a/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.css b/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.css
deleted file mode 100644
index 384c81f215..0000000000
--- a/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.date-picker-mdl {
- margin-left: 20px;
-}
\ No newline at end of file
diff --git a/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.html b/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.html
index 1533982dc2..8b6f2e72b0 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.html
+++ b/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.html
@@ -1,43 +1,46 @@
-
- Start date must be less than End date
+
+ {{'DATE-WIDGET.MESSAGES.START-LESS-THAN-END-DATE' | translate}}
-
-
-
-
-
-
- Start is required
-
-
-
-
-
-
-
-
-
-
-
+
+ {{'DATE-WIDGET.MESSAGES.START-DATE-REQUIRED' | translate}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FormGroup : {{dateRange && dateRange.value | json }}
diff --git a/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.scss b/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.scss
new file mode 100644
index 0000000000..f1c7606a5b
--- /dev/null
+++ b/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.scss
@@ -0,0 +1,7 @@
+.adf-text-danger {
+ color: #D8000C;
+
+ .mat-input-container {
+ width: 80% !important;
+ }
+}
diff --git a/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.ts b/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.ts
index db874b0fba..6204eb5bd1 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.ts
+++ b/ng2-components/ng2-activiti-analytics/src/components/widgets/date-range/date-range.widget.ts
@@ -15,37 +15,26 @@
* limitations under the License.
*/
- /* tslint:disable:component-selector */
-
-/* tslint:disable::no-access-missing-member */
-import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';
+import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';
import { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';
+import { DateAdapter, MD_DATE_FORMATS } from '@angular/material';
import * as moment from 'moment';
-import { WidgetComponent } from './../widget.component';
-
-function dateCheck(c: AbstractControl) {
- let startDate = moment(c.get('startDate').value);
- let endDate = moment(c.get('endDate').value);
- let result = startDate.isAfter(endDate);
- return result ? {'greaterThan': true} : null;
-}
-
-declare let mdDateTimePicker: any;
+import { Moment } from 'moment';
+import { MOMENT_DATE_FORMATS, MomentDateAdapter } from 'ng2-alfresco-core';
@Component({
- selector: 'date-range-widget',
+ selector: 'adf-date-range-widget',
templateUrl: './date-range.widget.html',
- styleUrls: ['./date-range.widget.css']
+ providers: [
+ {provide: DateAdapter, useClass: MomentDateAdapter},
+ {provide: MD_DATE_FORMATS, useValue: MOMENT_DATE_FORMATS}],
+ styleUrls: ['./date-range.widget.scss'],
+ encapsulation: ViewEncapsulation.None
})
-export class DateRangeWidgetComponent extends WidgetComponent implements OnInit, OnDestroy {
+export class DateRangeWidgetComponent implements OnInit {
- public static FORMAT_DATE_ACTIVITI: string = 'YYYY-MM-DD';
-
- @ViewChild('startElement')
- startElement: any;
-
- @ViewChild('endElement')
- endElement: any;
+ public FORMAT_DATE_ACTIVITI: string = 'YYYY-MM-DD';
+ public SHOW_FORMAT: string = 'DD/MM/YYYY';
@Input('group')
public dateRange: FormGroup;
@@ -56,152 +45,66 @@ export class DateRangeWidgetComponent extends WidgetComponent implements OnInit,
@Output()
dateRangeChanged: EventEmitter
= new EventEmitter();
+ minDate: Moment;
+ maxDate: Moment;
+ startDatePicker: Moment;
+ endDatePicker: Moment;
+
debug: boolean = false;
- dialogStart: any;
-
- dialogEnd: any;
-
- constructor(public elementRef: ElementRef) {
- super();
+ constructor(public dateAdapter: DateAdapter) {
}
ngOnInit() {
- this.initForm();
- this.addAccessibilityLabelToDatePicker();
- }
+ let momentDateAdapter = this.dateAdapter;
+ momentDateAdapter.overrideDisplyaFormat = this.SHOW_FORMAT;
- initForm() {
- let startDateForm = this.field.value ? this.field.value.startDate : '' ;
- let startDate = this.convertToMomentDate(startDateForm);
- let endDateForm = this.field.value ? this.field.value.endDate : '' ;
- let endDate = this.convertToMomentDate(endDateForm);
+ if (this.field) {
+ if (this.field.value && this.field.value.startDate) {
+ this.startDatePicker = moment(this.field.value.startDate, this.FORMAT_DATE_ACTIVITI);
+ }
- let startDateControl = new FormControl(startDate);
+ if (this.field.value && this.field.value.endDate) {
+ this.endDatePicker = moment(this.field.value.endDate, this.FORMAT_DATE_ACTIVITI);
+ }
+ }
+
+ let startDateControl = new FormControl(this.startDatePicker);
startDateControl.setValidators(Validators.required);
this.dateRange.addControl('startDate', startDateControl);
- let endDateControl = new FormControl(endDate);
+ let endDateControl = new FormControl(this.endDatePicker);
endDateControl.setValidators(Validators.required);
this.dateRange.addControl('endDate', endDateControl);
- this.dateRange.setValidators(dateCheck);
- this.dateRange.valueChanges.subscribe(data => this.onGroupValueChanged(data));
-
- this.initSartDateDialog(startDate);
- this.initEndDateDialog(endDate);
+ this.dateRange.setValidators(this.dateCheck);
+ this.dateRange.valueChanges.subscribe(() => this.onGroupValueChanged());
}
- initSartDateDialog(date: string) {
- let settings: any = {
- type: 'date',
- past: moment().subtract(100, 'years'),
- future: moment().add(100, 'years')
- };
-
- settings.init = moment(date, DateRangeWidgetComponent.FORMAT_DATE_ACTIVITI);
-
- this.dialogStart = new mdDateTimePicker.default(settings);
- this.dialogStart.trigger = this.startElement.nativeElement;
-
- let startDateButton = document.getElementById('startDateButton');
- startDateButton.addEventListener('click', () => {
- this.dialogStart.toggle();
- });
- }
-
- private addAccessibilityLabelToDatePicker() {
- let left: any = document.querySelector('#mddtp-date__left');
- if (left) {
- left.appendChild(this.createCustomElement('date left'));
- }
-
- let right: any = document.querySelector('#mddtp-date__right');
- if (right) {
- right.appendChild(this.createCustomElement('date right'));
- }
-
- let cancel: any = document.querySelector('#mddtp-date__cancel');
- if (cancel) {
- cancel.appendChild(this.createCustomElement('date cancel'));
- }
-
- let ok: any = document.querySelector('#mddtp-date__ok');
- if (ok) {
- ok.appendChild(this.createCustomElement('date ok'));
- }
- }
-
- private createCustomElement(text: string): HTMLElement {
- let span = document.createElement('span');
- span.style.visibility = 'hidden';
- let rightSpanText = document.createTextNode(text);
- span.appendChild(rightSpanText);
- return span;
- }
-
- initEndDateDialog(date: string) {
- let settings: any = {
- type: 'date',
- past: moment().subtract(100, 'years'),
- future: moment().add(100, 'years')
- };
-
- settings.init = moment(date, DateRangeWidgetComponent.FORMAT_DATE_ACTIVITI);
-
- this.dialogEnd = new mdDateTimePicker.default(settings);
- this.dialogEnd.trigger = this.endElement.nativeElement;
-
- let endDateButton = document.getElementById('endDateButton');
- endDateButton.addEventListener('click', () => {
- this.dialogEnd.toggle();
- });
- }
-
- onOkStart(inputEl: HTMLInputElement) {
- let date = this.dialogStart.time.format(DateRangeWidgetComponent.FORMAT_DATE_ACTIVITI);
- this.dateRange.patchValue({
- startDate: date
- });
- let materialElemen: any = inputEl.parentElement;
- if (materialElemen) {
- materialElemen.MaterialTextfield.change(date);
- }
- }
-
- onOkEnd(inputEl: HTMLInputElement) {
- let date = this.dialogEnd.time.format(DateRangeWidgetComponent.FORMAT_DATE_ACTIVITI);
- this.dateRange.patchValue({
- endDate: date
- });
-
- let materialElemen: any = inputEl.parentElement;
- if (materialElemen) {
- materialElemen.MaterialTextfield.change(date);
- }
- }
-
- onGroupValueChanged(data: any) {
+ onGroupValueChanged() {
if (this.dateRange.valid) {
- let dateStart = this.convertToMomentDateWithTime(this.dateRange.controls['startDate'].value);
- let endStart = this.convertToMomentDateWithTime(this.dateRange.controls['endDate'].value);
+ let dateStart = this.convertToMomentDateWithTime(this.dateRange.controls.startDate.value);
+ let endStart = this.convertToMomentDateWithTime(this.dateRange.controls.endDate.value);
this.dateRangeChanged.emit({startDate: dateStart, endDate: endStart});
}
}
- public convertToMomentDateWithTime(date: string) {
- return moment(date, DateRangeWidgetComponent.FORMAT_DATE_ACTIVITI, true).format(DateRangeWidgetComponent.FORMAT_DATE_ACTIVITI) + 'T00:00:00.000Z';
+ convertToMomentDateWithTime(date: string) {
+ return moment(date, this.FORMAT_DATE_ACTIVITI, true).format(this.FORMAT_DATE_ACTIVITI) + 'T00:00:00.000Z';
}
- private convertToMomentDate(date: string) {
- if (date) {
- return moment(date).format(DateRangeWidgetComponent.FORMAT_DATE_ACTIVITI);
- } else {
- return moment().format(DateRangeWidgetComponent.FORMAT_DATE_ACTIVITI);
- }
+ dateCheck(formControl: AbstractControl) {
+ let startDate = moment(formControl.get('startDate').value);
+ let endDate = moment(formControl.get('endDate').value);
+ let result = startDate.isAfter(endDate);
+ return result ? {'greaterThan': true} : null;
}
- ngOnDestroy() {
+ isStartDateGreaterThanEndDate() {
+ return this.dateRange && this.dateRange.errors && this.dateRange.errors.greaterThan;
+ }
+ isStartDateEmpty() {
+ return this.dateRange && this.dateRange.controls.startDate && !this.dateRange.controls.startDate.valid;
}
}
diff --git a/ng2-components/ng2-activiti-analytics/src/components/widgets/dropdown/dropdown.widget.css b/ng2-components/ng2-activiti-analytics/src/components/widgets/dropdown/dropdown.widget.css
deleted file mode 100644
index ae995ca854..0000000000
--- a/ng2-components/ng2-activiti-analytics/src/components/widgets/dropdown/dropdown.widget.css
+++ /dev/null
@@ -1,23 +0,0 @@
-.dropdown-widget {
- width: 100%;
-}
-
-.dropdown-widget__select {
- width: 100%;
-}
-
-.dropdown-widget__invalid .dropdown-widget__select {
- border-color: #d50000;
-}
-
-.dropdown-widget__invalid .dropdown-widget__label {
- color: #d50000;
-}
-
-.dropdown-widget__invalid .dropdown-widget__label:after {
- background-color: #d50000;
-}
-
-.dropdown-widget__invalid .mdl-textfield__error {
- visibility: visible !important;
-}
diff --git a/ng2-components/ng2-activiti-analytics/src/components/widgets/dropdown/dropdown.widget.html b/ng2-components/ng2-activiti-analytics/src/components/widgets/dropdown/dropdown.widget.html
index 688b591560..07095b025e 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/widgets/dropdown/dropdown.widget.html
+++ b/ng2-components/ng2-activiti-analytics/src/components/widgets/dropdown/dropdown.widget.html
@@ -1,7 +1,10 @@
-