mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
Alfresco login webcomponent
This commit is contained in:
23
demo-shell-ng2/webcomponents/alfresco-login/.bower.json
Normal file
23
demo-shell-ng2/webcomponents/alfresco-login/.bower.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "alfresco-login",
|
||||
"description": "Provide the Alfresco login .",
|
||||
"keywords": [
|
||||
"web-component",
|
||||
"web-components",
|
||||
"polymer",
|
||||
"alfresco"
|
||||
],
|
||||
"main": "alfresco-login.html",
|
||||
"license": "MIT",
|
||||
"ignore": [
|
||||
"/.*",
|
||||
"/test/",
|
||||
"/demo/",
|
||||
"/bower_components/"
|
||||
],
|
||||
"dependencies": {
|
||||
"polymer": "Polymer/polymer#^1.0.0"
|
||||
},
|
||||
"_originalSource": "alfresco-login",
|
||||
"_direct": true
|
||||
}
|
96
demo-shell-ng2/webcomponents/alfresco-login/README.md
Executable file
96
demo-shell-ng2/webcomponents/alfresco-login/README.md
Executable file
@@ -0,0 +1,96 @@
|
||||
# Introduction
|
||||
This repository contains an element for the Alfresco login REST API. The element is designed for use in Polymer 1.0.
|
||||
|
||||
## Install
|
||||
|
||||
Install the component using [Bower](http://bower.io/):
|
||||
|
||||
```sh
|
||||
$ bower install alfresco-login --save
|
||||
```
|
||||
|
||||
Or [download as ZIP](https://github.com/TODO/master.zip).
|
||||
|
||||
## Usage
|
||||
|
||||
1. Import Web Components' polyfill:
|
||||
|
||||
```html
|
||||
<script src="bower_components/webcomponentsjs/webcomponents.min.js"></script>
|
||||
```
|
||||
|
||||
2. Import Custom Element:
|
||||
|
||||
```html
|
||||
<link rel="import" href="bower_components/alfresco-login/alfresco-login.html">
|
||||
```
|
||||
|
||||
3. Start using it!
|
||||
|
||||
```html
|
||||
<alfresco-login></alfresco-login>
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
Attribute | Options | Default | Description
|
||||
--- | --- | --- | ---
|
||||
`method` | *string* | `GET` | Type of HTTP Request.
|
||||
|
||||
## Events
|
||||
|
||||
Event | Description
|
||||
--- | ---
|
||||
`onsubmit` | The event is fired if a user signs in Alfresco successfully.
|
||||
--- | ---
|
||||
`onerror` | The event is fired if a user is not signed into Alfresco..
|
||||
|
||||
## Development
|
||||
|
||||
In order to run it locally you'll need to fetch some dependencies and a basic server setup.
|
||||
|
||||
* Install [Bower](http://bower.io/) & [Grunt](http://gruntjs.com/):
|
||||
|
||||
```sh
|
||||
$ [sudo] npm install -g bower grunt-cli
|
||||
```
|
||||
|
||||
* Install local dependencies:
|
||||
|
||||
```sh
|
||||
$ bower install && npm install
|
||||
```
|
||||
|
||||
* To test your project, start the development server and open `http://localhost:8000`.
|
||||
|
||||
```sh
|
||||
$ grunt server
|
||||
```
|
||||
|
||||
* To build the distribution files before releasing a new version.
|
||||
|
||||
```sh
|
||||
$ grunt build
|
||||
```
|
||||
|
||||
* To provide a live demo, send everything to `gh-pages` branch.
|
||||
|
||||
```sh
|
||||
$ grunt deploy
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
1. Fork it!
|
||||
2. Create your feature branch: `git checkout -b my-new-feature`
|
||||
3. Commit your changes: `git commit -m 'Add some feature'`
|
||||
4. Push to the branch: `git push origin my-new-feature`
|
||||
5. Submit a pull request :D
|
||||
|
||||
## History
|
||||
|
||||
For detailed changelog, check [Releases](https://github.com/TODO/alfresco-file-list/releases).
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](http://opensource.org/licenses/MIT)
|
126
demo-shell-ng2/webcomponents/alfresco-login/alfresco-login.html
Executable file
126
demo-shell-ng2/webcomponents/alfresco-login/alfresco-login.html
Executable file
@@ -0,0 +1,126 @@
|
||||
<link rel="import" href="../../bower_components/polymer/polymer.html">
|
||||
|
||||
<!--
|
||||
An element providing a solution to the login.
|
||||
|
||||
Example:
|
||||
|
||||
<alfresco-login method="GET" onsubmit="methodSuccess" onerror="methodError"></alfresco-login>
|
||||
|
||||
@demo
|
||||
-->
|
||||
|
||||
<link rel="import" href="../../bower_components/paper-input/paper-input.html">
|
||||
<link rel="import" href="../../bower_components/paper-button/paper-button.html">
|
||||
|
||||
<dom-module id="alfresco-login">
|
||||
|
||||
<style type="text/css">
|
||||
:host([invalid]) input {
|
||||
border-color: red;
|
||||
}
|
||||
</style>
|
||||
|
||||
<template>
|
||||
<form id="login">
|
||||
<paper-input name="username" id="username" label="Username"></paper-input>
|
||||
<paper-input label="password input" name="password" id="password" type="password"></paper-input>
|
||||
<button type="submit" class="btn btn-default" on-click="_submit">Login</button>
|
||||
</form>
|
||||
</template>
|
||||
</dom-module>
|
||||
|
||||
<script>
|
||||
|
||||
Polymer({
|
||||
|
||||
is: 'alfresco-login',
|
||||
|
||||
behaviors: [
|
||||
Polymer.IronValidatableBehavior
|
||||
],
|
||||
|
||||
/**
|
||||
* The submit event is fired if a user
|
||||
* signs in Alfresco successfully.
|
||||
*
|
||||
* @event submit
|
||||
*/
|
||||
|
||||
/**
|
||||
* The error event is fired if a
|
||||
* user is not signed into Alfresco.
|
||||
*
|
||||
* @event error
|
||||
*/
|
||||
|
||||
|
||||
properties: {
|
||||
|
||||
method: {
|
||||
type: String,
|
||||
value: 'GET'
|
||||
},
|
||||
|
||||
headers: {
|
||||
type: Object,
|
||||
value: {}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
ready: function(){
|
||||
},
|
||||
|
||||
/**
|
||||
* Login Alfesco
|
||||
*
|
||||
* @param {object}
|
||||
*/
|
||||
_submit: function() {
|
||||
event.preventDefault();
|
||||
|
||||
var self = this;
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
|
||||
var url = 'http://192.168.99.100:8080/alfresco/service/api/login';
|
||||
|
||||
var parameterJson = '';
|
||||
|
||||
if (this.method === 'POST') {
|
||||
parameterJson = JSON.stringify({username: username.value, password: password.value});
|
||||
} else {
|
||||
url += '?u='+username.value+'&pw='+password.value;
|
||||
}
|
||||
|
||||
xhr.open(this.method, url, true);
|
||||
|
||||
for (key in this.headers) {
|
||||
if (this.headers.hasOwnProperty(key)) {
|
||||
xhr.setRequestHeader(key, this.headers[key]);
|
||||
}
|
||||
}
|
||||
|
||||
xhr.onload = function(e) {
|
||||
if (xhr.status === 200) {
|
||||
var token = '';
|
||||
if (xhr.responseXML) {
|
||||
token = xhr.responseXML.children[0].childNodes[0].nodeValue;
|
||||
} else {
|
||||
token = JSON.parse(xhr.responseText).data.ticket;
|
||||
}
|
||||
if (token) {
|
||||
self.fire("submit", {ticket: token});
|
||||
} else {
|
||||
self.fire("error", {error:'Token error'});
|
||||
}
|
||||
} else {
|
||||
self.fire("error", {error:'Login error'});
|
||||
}
|
||||
};
|
||||
xhr.send(parameterJson);
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
16
demo-shell-ng2/webcomponents/alfresco-login/index.html
Executable file
16
demo-shell-ng2/webcomponents/alfresco-login/index.html
Executable file
@@ -0,0 +1,16 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
|
||||
<link rel="import" href="alfresco-login.html">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<alfresco-login method="GET"></alfresco-login>
|
||||
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user