diff --git a/.editorconfig b/.editorconfig
index 8ed330c4a2..c310eb95da 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,10 +1,19 @@
+# http://editorconfig.org
root = true
-[{src,scripts}/**.{ts,json,js}]
-end_of_line = crlf
+[*]
charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
indent_style = space
indent_size = 4
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[package.json]
+indent_style = space
+indent_size = 2
+
+[*.md]
+insert_final_newline = false
+trim_trailing_whitespace = false
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000000..5f4e5c9b4f
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,32 @@
+
+
+**Type of issue:** (check with "[x]")
+- [ ] New feature request
+- [ ] Bug
+- [ ] Support request
+
+**Current behavior:**
+
+
+**Expected behavior:**
+
+
+**Steps to reproduce the issue:**
+
+
+**Component name and version:**
+
+
+**Browser and version:**
+
+
+**Node version (for build issues):**
+
+
+**New feature request:**
+
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000000..f0845685b0
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,37 @@
+
+
+**Type of contribution:** (check one with "x")
+```
+[ ] Bugfix
+[ ] Feature
+[ ] Code formatting
+[ ] Code Refactoring
+[ ] Build related changes
+[ ] Documentation
+[ ] Other... Please describe:
+```
+**This PR adds the following feature:**
+
+
+**Current behavior:**
+
+**New behavior:**
+
+**This PR fixes the following issue:**
+
+
+**This PR introduces a breaking change:** (check one with "x")
+- [ ] Yes
+- [ ] No
+
+
+
+
+**More information:**
+
diff --git a/.gitignore b/.gitignore
index fd050d0b70..62258c2884 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,8 @@ node_modules
workspace.xml
.idea/
dist/
-!systemjs.config.js
\ No newline at end of file
+!systemjs.config.js
+demo-shell-ng2/app/components/router/
+ng2-components/ng2-alfresco-userinfo-old/demo/src/app/
+ng2-components/ng2-alfresco-userinfo-old/src/services/bpm-user.service.spec.ts
+ng2-components/ng2-alfresco-userinfo-old/src/services/ecm-user.service.spec.ts
diff --git a/.travis.yml b/.travis.yml
index 871656636c..a3786026b6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -27,9 +27,13 @@ env:
- MODULE=ng2-alfresco-upload
- MODULE=ng2-alfresco-viewer
- MODULE=ng2-alfresco-webscript
+ - MODULE=ng2-alfresco-tag
- MODULE=ng2-activiti-form
- MODULE=ng2-activiti-tasklist
- MODULE=ng2-activiti-processlist
+ - MODULE=ng2-activiti-diagrams
+ - MODULE=ng2-activiti-analytics
+ - MODULE=ng2-alfresco-userinfo
before_script:
- if ([ "$MODULE" != "ng2-alfresco-core" ]); then
@@ -44,21 +48,12 @@ before_script:
- if ([ "$MODULE" == "ng2-activiti-processlist" ]); then
(cd ng2-components/ng2-activiti-tasklist; npm link ng2-alfresco-core; npm link ng2-alfresco-datatable; npm link ng2-activiti-form; npm install; npm link);
fi
+ - if ([ "$MODULE" == "ng2-activiti-analytics" ]); then
+ (cd ng2-components/ng2-activiti-diagrams; npm link ng2-alfresco-core; npm install; npm link);
+ fi
- cd ng2-components/$MODULE;
- - if ([ "$MODULE" != "ng2-alfresco-core" ]); then
- npm link ng2-alfresco-core;
- fi
- - if ([ "$MODULE" == "ng2-alfresco-documentlist" ] || [ "$MODULE" == "ng2-alfresco-webscript" ] || [ "$MODULE" == "ng2-activiti-processlist" ] || [ "$MODULE" == "ng2-activiti-tasklist" ]); then
- npm link ng2-alfresco-datatable;
- fi
- - if ([ "$MODULE" == "ng2-activiti-tasklist" ]); then
- npm link ng2-activiti-form;
- fi
- - if ([ "$MODULE" == "ng2-activiti-processlist" ]); then
- npm link ng2-activiti-tasklist;
- fi
- - npm install;
- npm run travis
+ - npm install;
- ls -ltrh ./node_modules/
script: npm run test
# Send coverage data to Coveralls
@@ -79,3 +74,7 @@ cache:
- ng2-components/ng2-alfresco-upload/node_modules
- ng2-components/ng2-alfresco-viewer/node_modules
- ng2-components/ng2-alfresco-webscript/node_modules
+ - ng2-components/ng2-alfresco-tag/node_modules
+ - ng2-components/ng2-activiti-analytics/node_modules
+ - ng2-components/ng2-alfresco-userinfo/node_modules
+ - ng2-components/ng2-activiti-diagrams/node_modules
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000000..ee92513479
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,11 @@
+// Place your settings in this file to overwrite default and user settings.
+{
+ "files.exclude": {
+ "**/.git": true,
+ "**/.svn": true,
+ "**/.hg": true,
+ "**/.DS_Store": true,
+ "**/*.js": { "when": "$(basename).ts"},
+ "**/*.js.map": { "when": "$(basename)"}
+ }
+}
diff --git a/BROWSER-SUPPORT.md b/BROWSER-SUPPORT.md
new file mode 100644
index 0000000000..1b5bd199a3
--- /dev/null
+++ b/BROWSER-SUPPORT.md
@@ -0,0 +1,55 @@
+# Browser Support
+Browser support and polyfills guide.
+
+Browser compatibility and support depends on targeted browsers and 3rd party libraries. ADF framework is based on the following libraries and components:
+
+- Angular 2 (all ADF components)
+- Material Design Lite (all ADF components)
+- Moment.js (many ADF components)
+- PDF.js (`ng2-alfresco-viewer` component)
+- Raphael.js (`ng2-alfresco-diagrams`, `ng2-alfresco-analytics`)
+- Chart.js (`ng2-alfresco-analytics`)
+- Material Design - Date and Time Picker (`ng2-activiti-form`, `ng2-alfresco-analytics`)
+
+## Browser polyfills
+
+### Angular 2
+Please refer to the [official guide](https://angular.io/docs/ts/latest/guide/browser-support.html) for Angular 2 browser support.
+
+ADF (demo shell) imports by default the following set of recommended polyfills:
+
+- [core-js](https://www.npmjs.com/package/core-js) (ES6 standard support)
+
+### 3rd party libraries
+Please refer to the following list of [popular polyfills](https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills) for HTML5 cross-browser compatibility.
+
+ADF (demo shell) imports by default the following set of recommended polyfills:
+
+- [intl](https://www.npmjs.com/package/intl), Polyfill the ECMA-402 Intl API (except collation), **IE**/**Safari**
+- [dom4](https://github.com/WebReflection/dom4), A fully tested and covered polyfill for new DOM Level 4 entries, **IE**
+- [element.scrollintoviewifneeded-polyfill](https://www.npmjs.com/package/element.scrollintoviewifneeded-polyfill), simple JavaScript implementation of the non-standard WebKit method scrollIntoViewIfNeeded that can be called on DOM elements, **IE**/**Firefox**/**Safari**, required only to support **Material Design - Date and Time Picker** component
+- [pdfjs compatibility](https://www.npmjs.com/package/pdfjs-dist), Portable Document Format (PDF) library that is built with HTML5, **IE**
+- (dialog-polyfill)[https://www.npmjs.com/package/dialog-polyfill], Polyfill for the dialog element, **IE**/**Safari**/**Firefox**
+
+## Example
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+For a complete code please refer to [demo shell](demo-shell-ng2/index.html) example.
diff --git a/PREREQUISITES.md b/PREREQUISITES.md
index 7687ee6ec4..0bb6211056 100644
--- a/PREREQUISITES.md
+++ b/PREREQUISITES.md
@@ -2,94 +2,18 @@
The [Angular 2](https://angular.io/) based application development framework requires the following:
-- An Alfresco Platform Repository (version [5.2.a-EA](https://wiki.alfresco.com/wiki/Community_file_list_201606-EA) or newer) to talk to, which has [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing) enabled.
+- An Alfresco Platform Repository (version [201609 Early Access](https://community.alfresco.com/docs/DOC-6372-alfresco-community-edition-file-list-201609-ea) or newer) to talk to, which has [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing) enabled.
+- [Download and install Activiti](https://www.alfresco.com/products/bpm/alfresco-activiti/trial)
- [Node.js](https://nodejs.org/en/) JavaScript runtime.
- [npm](https://www.npmjs.com/) package manager for JavaScript.
-
+- (If you use ECM and BPM together) Make sure your user has the same username and password in both system
+
+*Note: Default username for activiti is "admin@app.activiti.com" and "admin" for Alfresco, and also the default password are different. Change them to be equal.*
+
**Verify that you are running at least node `v5.x.x` and npm `3.x.x`**
by running `node -v` and `npm -v` in a terminal/console window.
Older versions produce errors.
-## Installing Alfresco
-
-Alfresco comes with installers that will install all the servers, webapps, and tools needed to run Alfresco.
-
-- Download Alfresco Community from this [page](https://www.alfresco.com/products/community/download).
-- Install Alfresco following these [instructions](http://docs.alfresco.com/5.1/concepts/installs-eval-intro.html).
-
-This will install the following Alfresco web applications:
-
-- Alfresco Platform with the Content Repository, which we need so we can access content from our custom web client
-- Alfresco Solr, which we need so we can search for content from our custom web client
-- Alfresco Share, not technically needed, but can be useful for creating users and groups, and to access and upload content to the repository while we are developing the custom web client
-
-### Enable CORS in Alfresco
-
-The web client that we are building with the application development framework will be loaded from a different web server than the Alfresco Platform is running on.
-So we need to tell the Alfresco server that any request that comes in from this custom web client should be allowed access
-to the Content Repository. This is done by enabling CORS.
-
-To enable CORS in the Alfresco Platform do one of the following:
-
-**Download and install the enable CORS module**
-
-This is the easiest way, add the [enablecors](https://artifacts.alfresco.com/nexus/service/local/repositories/releases/content/org/alfresco/enablecors/1.0/enablecors-1.0.jar)
-platform module JAR to the *$ALF_INSTALL_DIR/modules/platform* directory and restart the server.
-
-Note. by default the CORS filter that is enabled will allow any orgin.
-
-**Manually update the web.xml file**
-
-Modify *$ALF_INSTALL_DIR/tomcat/webapps/alfresco/WEB-INF/web.xml* and uncomment the following section and update
-`cors.allowOrigin` to `http://localhost:3000`:
-
-```
-
-
+
@@ -52,9 +52,9 @@ necessary configuration, see this [page](PREREQUISITES.md).
## Components
To view the complete list of all the components that you can use to build your custom Alfresco (ECM,BPM) client follow this link:
-[Components](https://github.com/Alfresco/alfresco-ng2-components/tree/master/ng2-components).
+[Components](/ng2-components).
-You can browse all the components also at the following [page](http://devproducts.alfresco.com/).
+You can browse all the components at the following [page](http://devproducts.alfresco.com/).
## Yeoman generators
@@ -89,3 +89,17 @@ To deploy directly on your AWS instance our demo shell click the button below:
+## Browser Support
+All components are supported in the below browsers:
+
+|**Browser** |**Version** |
+|--- |--- |
+|Chrome |Latest |
+|Safari (OS X) |9.x |
+|Firefox* |Latest |
+|Edge |13, 14 |
+|Internet Explorer |11 |
+
+*Concerning Alfresco Upload Component, folder upload currently not supported [firefox known issue](https://bugzilla.mozilla.org/show_bug.cgi?id=1188880 )
+
+Please refer to [Browser Support](BROWSER-SUPPORT.md) article for more details.
diff --git a/appveyor.yml b/appveyor.yml
index 6487d8bafb..7e892d3323 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -14,10 +14,14 @@ environment:
- COMPONENT_NAME: ng2-alfresco-search
- COMPONENT_NAME: ng2-alfresco-upload
- COMPONENT_NAME: ng2-alfresco-viewer
+ - COMPONENT_NAME: ng2-alfresco-tag
- COMPONENT_NAME: ng2-alfresco-webscript
- COMPONENT_NAME: ng2-activiti-form
- COMPONENT_NAME: ng2-activiti-tasklist
- COMPONENT_NAME: ng2-activiti-processlist
+ - COMPONENT_NAME: ng2-activiti-diagrams
+ - COMPONENT_NAME: ng2-activiti-analytics
+ - COMPONENT_NAME: ng2-alfresco-userinfo
# Install scripts. (runs after repo cloning)
install:
@@ -35,10 +39,10 @@ install:
- cd ng2-components/%COMPONENT_NAME%
- IF %COMPONENT_NAME% NEQ ng2-alfresco-core (npm link ng2-alfresco-core)
- IF %COMPONENT_NAME% EQU ng2-alfresco-documentlist (npm link ng2-alfresco-datatable)
- - IF %COMPONENT_NAME% EQU ng2-activiti-processlist (npm link ng2-alfresco-datatable)
- - IF %COMPONENT_NAME% EQU ng2-activiti-processlist (npm link ng2-activiti-tasklist)
+ - IF %COMPONENT_NAME% EQU ng2-activiti-processlist (npm link ng2-alfresco-datatable && npm link ng2-activiti-form && npm link ng2-activiti-tasklist)
- IF %COMPONENT_NAME% EQU ng2-activiti-tasklist (npm link ng2-alfresco-datatable && npm link ng2-activiti-form)
- IF %COMPONENT_NAME% EQU ng2-alfresco-webscript (npm link ng2-alfresco-datatable)
+ - IF %COMPONENT_NAME% EQU ng2-activiti-analytics (npm link ng2-alfresco-diagrams)
- npm install
# Post-install test scripts.
diff --git a/demo-shell-ng2/.gitignore b/demo-shell-ng2/.gitignore
index 964913e5ef..022350903b 100644
--- a/demo-shell-ng2/.gitignore
+++ b/demo-shell-ng2/.gitignore
@@ -3,6 +3,7 @@ node_modules/
bower_components/
app/**/*.js
app/**/*.js.map
+!app/js/Polyline.js
.idea
dist/
diff --git a/demo-shell-ng2/app/app.component.css b/demo-shell-ng2/app/app.component.css
index 87031d33ee..6eff75fc29 100644
--- a/demo-shell-ng2/app/app.component.css
+++ b/demo-shell-ng2/app/app.component.css
@@ -3,3 +3,15 @@
display: none;
}
}
+
+.mdl-layout-title {
+ font-size: 17px;
+}
+
+.user-profile {
+ margin-right: 50px;
+}
+
+.mdl-button-padding {
+ padding-left: 20px;
+}
diff --git a/demo-shell-ng2/app/app.component.html b/demo-shell-ng2/app/app.component.html
index c5d2a1d1e7..bbea07d6f6 100644
--- a/demo-shell-ng2/app/app.component.html
+++ b/demo-shell-ng2/app/app.component.html
@@ -1,68 +1,83 @@
+ +
+ + ++ +
+ ++ +
+ ++ +
+ +- -
- - -- -
- -- -
- -- -
- -+
-
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{label | translate}} | +
---|
{{row | translate }} | +
{{label | translate}} | +
---|
{{row | translate }} | +
FormGroup : {{dateRange && dateRange.value | json }}
+FormGroup valid : {{dateRange && dateRange.valid }}
+FormGroup status : {{dateRange && dateRange.errors | json }}
+FormGroup start status : {{dateRange && dateRange.controls.startDate && dateRange.controls.startDate.errors | json }}
+FormGroup end status: {{dateRange && dateRange.controls.endDate.errors | json }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -33,52 +33,127 @@
## Prerequisites
-Before you start using this development framework, make sure you have installed all required software and done all the
+Before you start using this development framework, make sure you have installed all required software and done all the
necessary configuration, see this [page](https://github.com/Alfresco/alfresco-ng2-components/blob/master/PREREQUISITES.md).
## Install
-```sh
-npm install --save ng2-activiti-form
-```
+Follow the 3 steps below:
-### Dependencies
+1. Npm
-Add the following dependency to your index.html:
+ ```sh
+ npm install ng2-activiti-form --save
+ ```
-```html
-
-```
+2. Html
-You must separately install the following libraries for your application:
-
-- [ng2-translate](https://github.com/ocombe/ng2-translate)
-- [ng2-alfresco-core](https://www.npmjs.com/package/ng2-alfresco-core)
+ Include these dependencies in your index.html page:
-```sh
-npm install --save ng2-translate ng2-alfresco-core
-```
+ ```html
-#### Material Design Lite
+
+
-The style of this component is based on [material design](https://getmdl.io/), so if you want to visualize it correctly you have to add the material
-design dependency to your project:
+
+
+
+
-```sh
-npm install --save material-design-icons material-design-lite
-```
+
+
+
+
-Also make sure you include these dependencies in your `index.html` file:
+
+
+
-```html
-
-
-
-
-```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ```
+
+3. SystemJs
+
+ Add the following components to your systemjs.config.js file:
+
+ - moment
+ - ng2-translate
+ - ng2-alfresco-core
+ - alfresco-js-api
+ - ng2-activiti-form
+
+ Please refer to the following example file: [systemjs.config.js](demo/systemjs
+ .config.js) .
## Basic usage examples
+The component shows a Form from Activiti
+
+```html
+
+
+
+
+
+
+
+
+