mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
Initial search implementation
- Add search box to demo-shell toolbar - Initial search component to display results Refs #69
This commit is contained in:
@@ -6,6 +6,19 @@
|
|||||||
<span class="mdl-layout-title">Alfresco</span>
|
<span class="mdl-layout-title">Alfresco</span>
|
||||||
<!-- Add spacer, to align navigation to the right -->
|
<!-- Add spacer, to align navigation to the right -->
|
||||||
<div class="mdl-layout-spacer"></div>
|
<div class="mdl-layout-spacer"></div>
|
||||||
|
|
||||||
|
<form [ngFormModel]="searchForm" (submit)="onSearch(searchForm.value, $event)">
|
||||||
|
<div class="mdl-textfield mdl-js-textfield mdl-textfield--expandable">
|
||||||
|
<label class="mdl-button mdl-js-button mdl-button--icon" for="searchTerm">
|
||||||
|
<i class="material-icons">search</i>
|
||||||
|
</label>
|
||||||
|
<div class="mdl-textfield__expandable-holder">
|
||||||
|
<input class="mdl-textfield__input" type="text" id="searchTerm" ngControl="searchTerm">
|
||||||
|
<label class="mdl-textfield__label" for="searchTerm">Expandable Input</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
<!-- Navigation. We hide it in small screens. -->
|
<!-- Navigation. We hide it in small screens. -->
|
||||||
<nav class="mdl-navigation mdl-layout--large-screen-only">
|
<nav class="mdl-navigation mdl-layout--large-screen-only">
|
||||||
<a class="mdl-navigation__link" data-automation-id="files" href="" [routerLink]="['Files']">DocumentList</a>
|
<a class="mdl-navigation__link" data-automation-id="files" href="" [routerLink]="['Files']">DocumentList</a>
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { Component } from 'angular2/core';
|
import { Component } from 'angular2/core';
|
||||||
|
import { ControlGroup, FormBuilder, Validators } from 'angular2/common';
|
||||||
import { Router, RouteConfig, ROUTER_DIRECTIVES } from 'angular2/router';
|
import { Router, RouteConfig, ROUTER_DIRECTIVES } from 'angular2/router';
|
||||||
import { AlfrescoAuthenticationService } from 'ng2-alfresco-login/ng2-alfresco-login';
|
import { AlfrescoAuthenticationService } from 'ng2-alfresco-login/ng2-alfresco-login';
|
||||||
import { MDL } from 'ng2-alfresco-core/material';
|
import { MDL } from 'ng2-alfresco-core/material';
|
||||||
@@ -26,6 +27,7 @@ import { AlfrescoSettingsService } from 'ng2-alfresco-core/services';
|
|||||||
import { TranslateService, TranslatePipe } from 'ng2-translate/ng2-translate';
|
import { TranslateService, TranslatePipe } from 'ng2-translate/ng2-translate';
|
||||||
import { UploadButtonComponent } from 'ng2-alfresco-upload/ng2-alfresco-upload';
|
import { UploadButtonComponent } from 'ng2-alfresco-upload/ng2-alfresco-upload';
|
||||||
import { DataTableDemoComponent } from './components/datatable/datatable-demo.component';
|
import { DataTableDemoComponent } from './components/datatable/datatable-demo.component';
|
||||||
|
import { AlfrescoSearchComponent } from 'ng2-alfresco-search/ng2-alfresco-search';
|
||||||
|
|
||||||
declare var document: any;
|
declare var document: any;
|
||||||
|
|
||||||
@@ -40,17 +42,24 @@ declare var document: any;
|
|||||||
{path: '/', name: 'Files', component: FilesComponent, useAsDefault: true},
|
{path: '/', name: 'Files', component: FilesComponent, useAsDefault: true},
|
||||||
{path: '/datatable', name: 'DataTable', component: DataTableDemoComponent},
|
{path: '/datatable', name: 'DataTable', component: DataTableDemoComponent},
|
||||||
{path: '/uploader', name: 'Uploader', component: UploadButtonComponent},
|
{path: '/uploader', name: 'Uploader', component: UploadButtonComponent},
|
||||||
{path: '/login', name: 'Login', component: AlfrescoLoginComponent}
|
{path: '/login', name: 'Login', component: AlfrescoLoginComponent},
|
||||||
|
{path: '/search', name: 'Search', component: AlfrescoSearchComponent}
|
||||||
])
|
])
|
||||||
export class AppComponent {
|
export class AppComponent {
|
||||||
translate: TranslateService;
|
translate: TranslateService;
|
||||||
|
searchForm: ControlGroup;
|
||||||
|
|
||||||
constructor(public auth: AlfrescoAuthenticationService,
|
constructor(private _fb: FormBuilder,
|
||||||
|
public auth: AlfrescoAuthenticationService,
|
||||||
public router: Router,
|
public router: Router,
|
||||||
translate: TranslateService,
|
translate: TranslateService,
|
||||||
alfrescoSettingsService: AlfrescoSettingsService) {
|
alfrescoSettingsService: AlfrescoSettingsService) {
|
||||||
alfrescoSettingsService.host = 'http://192.168.99.100:8080';
|
alfrescoSettingsService.host = 'http://192.168.99.100:8080';
|
||||||
|
|
||||||
|
this.searchForm = this._fb.group({
|
||||||
|
searchTerm: ['', Validators.compose([Validators.required, Validators.minLength(3)])]
|
||||||
|
});
|
||||||
|
|
||||||
this.translationInit(translate);
|
this.translationInit(translate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,4 +99,16 @@ export class AppComponent {
|
|||||||
// todo: workaround for drawer closing
|
// todo: workaround for drawer closing
|
||||||
document.querySelector('.mdl-layout').MaterialLayout.toggleDrawer();
|
document.querySelector('.mdl-layout').MaterialLayout.toggleDrawer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method called on submit form
|
||||||
|
* @param value
|
||||||
|
* @param event
|
||||||
|
*/
|
||||||
|
onSearch(value: any, event) {
|
||||||
|
if (event) {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
this.router.navigate(['Search', value]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
'ng2-alfresco-datatable': 'node_modules/ng2-alfresco-datatable/dist',
|
'ng2-alfresco-datatable': 'node_modules/ng2-alfresco-datatable/dist',
|
||||||
'ng2-alfresco-documentlist': 'node_modules/ng2-alfresco-documentlist/dist',
|
'ng2-alfresco-documentlist': 'node_modules/ng2-alfresco-documentlist/dist',
|
||||||
'ng2-alfresco-login': 'node_modules/ng2-alfresco-login',
|
'ng2-alfresco-login': 'node_modules/ng2-alfresco-login',
|
||||||
|
'ng2-alfresco-search': 'node_modules/ng2-alfresco-search',
|
||||||
'ng2-alfresco-upload': 'node_modules/ng2-alfresco-upload/dist',
|
'ng2-alfresco-upload': 'node_modules/ng2-alfresco-upload/dist',
|
||||||
'ng2-translate': 'node_modules/ng2-translate',
|
'ng2-translate': 'node_modules/ng2-translate',
|
||||||
'rxjs': 'node_modules/rxjs'
|
'rxjs': 'node_modules/rxjs'
|
||||||
@@ -37,10 +38,11 @@
|
|||||||
},
|
},
|
||||||
'ng2-uploader': {defaultExtension: 'js'},
|
'ng2-uploader': {defaultExtension: 'js'},
|
||||||
'ng2-alfresco-core': {defaultExtension: 'js'},
|
'ng2-alfresco-core': {defaultExtension: 'js'},
|
||||||
|
'ng2-alfresco-datatable': {defaultExtension: 'js'},
|
||||||
'ng2-alfresco-documentlist': {defaultExtension: 'js'},
|
'ng2-alfresco-documentlist': {defaultExtension: 'js'},
|
||||||
'ng2-alfresco-login': {defaultExtension: 'js'},
|
'ng2-alfresco-login': {defaultExtension: 'js'},
|
||||||
|
'ng2-alfresco-search': {defaultExtension: 'js'},
|
||||||
'ng2-alfresco-upload': {defaultExtension: 'js'},
|
'ng2-alfresco-upload': {defaultExtension: 'js'},
|
||||||
'ng2-alfresco-datatable': {defaultExtension: 'js'},
|
|
||||||
'ng2-translate': {defaultExtension: 'js'},
|
'ng2-translate': {defaultExtension: 'js'},
|
||||||
'rxjs': {defaultExtension: 'js'}
|
'rxjs': {defaultExtension: 'js'}
|
||||||
};
|
};
|
||||||
|
15
ng2-components/ng2-alfresco-search/.editorconfig
Normal file
15
ng2-components/ng2-alfresco-search/.editorconfig
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# http://editorconfig.org
|
||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
insert_final_newline = false
|
||||||
|
trim_trailing_whitespace = false
|
10
ng2-components/ng2-alfresco-search/.gitignore
vendored
Normal file
10
ng2-components/ng2-alfresco-search/.gitignore
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
npm-debug.log
|
||||||
|
node_modules/
|
||||||
|
.idea/
|
||||||
|
typings
|
||||||
|
coverage/
|
||||||
|
dist/
|
||||||
|
src/**/*.js
|
||||||
|
src/**/*.js.map
|
||||||
|
ng2-alfresco-datatable.js
|
||||||
|
ng2-alfresco-datatable.js.map
|
6
ng2-components/ng2-alfresco-search/.travis.yml
Executable file
6
ng2-components/ng2-alfresco-search/.travis.yml
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
language: node_js
|
||||||
|
node_js:
|
||||||
|
- '5'
|
||||||
|
script: npm run coverage
|
||||||
|
# Send coverage data to Coveralls
|
||||||
|
after_script: "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"
|
177
ng2-components/ng2-alfresco-search/LICENSE
Normal file
177
ng2-components/ng2-alfresco-search/LICENSE
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
40
ng2-components/ng2-alfresco-search/README.md
Normal file
40
ng2-components/ng2-alfresco-search/README.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# Search Component for Angular 2
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href='https://raw.githubusercontent.com/Alfresco/dev-platform-webcomponents/master/ng2-components/ng2-alfresco-search/LICENSE'>
|
||||||
|
<img src='https://img.shields.io/hexpm/l/plug.svg' alt='license' />
|
||||||
|
</a>
|
||||||
|
<a href='https://www.alfresco.com/'>
|
||||||
|
<img src='https://img.shields.io/badge/style-component-green.svg?label=alfresco' alt='my blog' />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm install --save ng2-alfresco-core ng2-alfresco-search
|
||||||
|
```
|
||||||
|
|
||||||
|
## Build from sources
|
||||||
|
|
||||||
|
Alternatively you can build component from sources with the following commands:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
## Running unit tests
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
This task rebuilds all the code, runs tslint, license checks and other quality check tools
|
||||||
|
before performing unit testing.
|
||||||
|
|
||||||
|
## Code coverage
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run coverage
|
||||||
|
```
|
16
ng2-components/ng2-alfresco-search/assets/license_header.txt
Normal file
16
ng2-components/ng2-alfresco-search/assets/license_header.txt
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
70
ng2-components/ng2-alfresco-search/karma-test-shim.js
Normal file
70
ng2-components/ng2-alfresco-search/karma-test-shim.js
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
// Tun on full stack traces in errors to help debugging
|
||||||
|
Error.stackTraceLimit = Infinity;
|
||||||
|
|
||||||
|
jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000;
|
||||||
|
|
||||||
|
// // Cancel Karma's synchronous start,
|
||||||
|
// // we will call `__karma__.start()` later, once all the specs are loaded.
|
||||||
|
__karma__.loaded = function() {};
|
||||||
|
|
||||||
|
System.config({
|
||||||
|
packages: {
|
||||||
|
'base/dist': {
|
||||||
|
defaultExtension: 'js',
|
||||||
|
format: 'register',
|
||||||
|
map: Object.keys(window.__karma__.files).filter(onlyAppFiles).reduce(createPathRecords, {})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
map: {
|
||||||
|
'ng2-alfresco-core': '/base/dist/node_modules/ng2-alfresco-core'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
System.import('angular2/src/platform/browser/browser_adapter')
|
||||||
|
.then(function(browser_adapter) { browser_adapter.BrowserDomAdapter.makeCurrent(); })
|
||||||
|
.then(function() { return Promise.all(resolveTestFiles()); })
|
||||||
|
.then(
|
||||||
|
function() {
|
||||||
|
__karma__.start();
|
||||||
|
},
|
||||||
|
function(error) {
|
||||||
|
__karma__.error(error.stack || error);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
function createPathRecords(pathsMapping, appPath) {
|
||||||
|
// creates local module name mapping to global path with karma's fingerprint in path, e.g.:
|
||||||
|
// './vg-player/vg-player':
|
||||||
|
// '/base/dist/vg-player/vg-player.js?f4523daf879cfb7310ef6242682ccf10b2041b3e'
|
||||||
|
var moduleName = './' + resolveKeyPathForMapping('base/dist/', appPath);
|
||||||
|
moduleName = moduleName.replace(/\.js$/, '');
|
||||||
|
pathsMapping[moduleName] = appPath + '?' + window.__karma__.files[appPath];
|
||||||
|
return pathsMapping;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onlyAppFiles(filePath) {
|
||||||
|
return /\/base\/dist\/(?!.*\.spec\.js$).*\.js$/.test(filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onlySpecFiles(path) {
|
||||||
|
return /\.spec\.js$/.test(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolveTestFiles() {
|
||||||
|
return Object.keys(window.__karma__.files) // All files served by Karma.
|
||||||
|
.filter(onlySpecFiles)
|
||||||
|
.map(function(moduleName) {
|
||||||
|
// loads all spec files via their global module names (e.g.
|
||||||
|
// 'base/dist/vg-player/vg-player.spec')
|
||||||
|
return System.import(moduleName);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolveKeyPathForMapping(basePathWhereToStart, appPath) {
|
||||||
|
var location = appPath.indexOf(basePathWhereToStart);
|
||||||
|
if (location > -1) {
|
||||||
|
return appPath.substring(basePathWhereToStart.length + 1);
|
||||||
|
} else {
|
||||||
|
return appPath;
|
||||||
|
}
|
||||||
|
}
|
78
ng2-components/ng2-alfresco-search/karma.conf.js
Normal file
78
ng2-components/ng2-alfresco-search/karma.conf.js
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
module.exports = function (config) {
|
||||||
|
config.set({
|
||||||
|
|
||||||
|
basePath: '.',
|
||||||
|
|
||||||
|
frameworks: ['jasmine'],
|
||||||
|
|
||||||
|
files: [
|
||||||
|
// paths loaded by Karma
|
||||||
|
{pattern: 'node_modules/angular2/bundles/angular2-polyfills.js', included: true, watched: true},
|
||||||
|
{pattern: 'node_modules/systemjs/dist/system.src.js', included: true, watched: true},
|
||||||
|
{pattern: 'node_modules/rxjs/bundles/Rx.js', included: true, watched: true},
|
||||||
|
{pattern: 'node_modules/angular2/bundles/angular2.dev.js', included: true, watched: true},
|
||||||
|
{pattern: 'node_modules/angular2/bundles/testing.dev.js', included: true, watched: true},
|
||||||
|
{pattern: 'node_modules/angular2/bundles/http.dev.js', included: true, watched: true},
|
||||||
|
{pattern: 'node_modules/alfresco-core-rest-api/bundle.js', included: true, watched: false},
|
||||||
|
|
||||||
|
{pattern: 'karma-test-shim.js', included: true, watched: true},
|
||||||
|
|
||||||
|
// paths loaded via module imports
|
||||||
|
{pattern: 'dist/**/*.js', included: false, watched: true},
|
||||||
|
{pattern: 'dist/**/*.html', included: true, served: true, watched: true},
|
||||||
|
{pattern: 'dist/**/*.css', included: true, served: true, watched: true},
|
||||||
|
|
||||||
|
// paths to support debugging with source maps in dev tools
|
||||||
|
{pattern: 'src/**/*.ts', included: false, watched: false},
|
||||||
|
{pattern: 'dist/**/*.js.map', included: false, watched: false}
|
||||||
|
],
|
||||||
|
|
||||||
|
// proxied base paths
|
||||||
|
proxies: {
|
||||||
|
// required for component assets fetched by Angular's compiler
|
||||||
|
'/src/': '/base/src/'
|
||||||
|
},
|
||||||
|
|
||||||
|
port: 9876,
|
||||||
|
|
||||||
|
// level of logging
|
||||||
|
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
||||||
|
logLevel: config.LOG_INFO,
|
||||||
|
|
||||||
|
colors: true,
|
||||||
|
|
||||||
|
autoWatch: true,
|
||||||
|
|
||||||
|
browsers: ['Chrome'],
|
||||||
|
|
||||||
|
// Karma plugins loaded
|
||||||
|
plugins: [
|
||||||
|
'karma-jasmine',
|
||||||
|
'karma-coverage',
|
||||||
|
'karma-chrome-launcher',
|
||||||
|
'karma-mocha-reporter'
|
||||||
|
],
|
||||||
|
|
||||||
|
// Coverage reporter generates the coverage
|
||||||
|
reporters: ['mocha', 'coverage'],
|
||||||
|
|
||||||
|
// Source files that you wanna generate coverage for.
|
||||||
|
// Do not include tests or libraries (these files will be instrumented by Istanbul)
|
||||||
|
preprocessors: {
|
||||||
|
'dist/**/!(*spec).js': ['coverage']
|
||||||
|
},
|
||||||
|
|
||||||
|
coverageReporter: {
|
||||||
|
dir: 'coverage/',
|
||||||
|
reporters: [
|
||||||
|
{type: 'text-summary'},
|
||||||
|
{type: 'json', subdir: '.', file: 'coverage-final.json'},
|
||||||
|
{type: 'html'}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
singleRun: true
|
||||||
|
})
|
||||||
|
};
|
27
ng2-components/ng2-alfresco-search/ng2-alfresco-search.ts
Normal file
27
ng2-components/ng2-alfresco-search/ng2-alfresco-search.ts
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { AlfrescoService } from './src/services/alfresco.service';
|
||||||
|
|
||||||
|
// services
|
||||||
|
export * from './src/services/alfresco.service';
|
||||||
|
|
||||||
|
export * from './src/components/alfresco-search.component';
|
||||||
|
|
||||||
|
export const ALFRESCO_SEARCH_PROVIDERS: [any] = [
|
||||||
|
AlfrescoService
|
||||||
|
];
|
89
ng2-components/ng2-alfresco-search/package.json
Normal file
89
ng2-components/ng2-alfresco-search/package.json
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
{
|
||||||
|
"name": "ng2-alfresco-search",
|
||||||
|
"description": "Alfresco Angular2 Search Component",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"author": "Alfresco Software, Ltd.",
|
||||||
|
"scripts": {
|
||||||
|
"postinstall": "typings install && npm link ../ng2-alfresco-core && npm run build",
|
||||||
|
"typings": "typings install",
|
||||||
|
"start": "npm run test && http-server -c-1 -o -p 8875 .",
|
||||||
|
"build": "npm run tslint && typings install && rm -rf dist && tsc && npm run copytemplates && license-check",
|
||||||
|
"tslint": "npm run tslint-test && npm run tslint-src && npm run tslint-root",
|
||||||
|
"tslint-test": "tslint -c tslint.json test/**/*.ts",
|
||||||
|
"tslint-src": "tslint -c tslint.json src/**/*.ts",
|
||||||
|
"tslint-root": "tslint -c tslint.json *.ts",
|
||||||
|
"copytemplates": "npm run copy-html && npm run copy-css",
|
||||||
|
"copy-html": "copyfiles './src/**/*.html' dist",
|
||||||
|
"copy-css": "copyfiles './src/**/*.css' dist",
|
||||||
|
"licensecheck": "license-check",
|
||||||
|
"tsc": "tsc",
|
||||||
|
"pretest": "npm run build",
|
||||||
|
"test": "karma start karma.conf.js",
|
||||||
|
"posttest": "node_modules/.bin/remap-istanbul -i coverage/coverage-final.json -o coverage -t html",
|
||||||
|
"coverage": "http-server -c-1 -o -p 9875 ./coverage"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Alfresco/dev-platform-webcomponents.git"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/Alfresco/dev-platform-webcomponents/issues"
|
||||||
|
},
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"contributors": [
|
||||||
|
{
|
||||||
|
"name": "Will Abson",
|
||||||
|
"email": "will.abson@alfresco.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"keywords": [
|
||||||
|
"ng2",
|
||||||
|
"angular",
|
||||||
|
"angular2",
|
||||||
|
"alfresco"
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"angular2": "2.0.0-beta.15",
|
||||||
|
"systemjs": "0.19.26",
|
||||||
|
"es6-shim": "^0.35.0",
|
||||||
|
"reflect-metadata": "0.1.2",
|
||||||
|
"rxjs": "5.0.0-beta.2",
|
||||||
|
"zone.js": "^0.6.12",
|
||||||
|
"es6-module-loader": "^0.17.8"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"angular2": "2.0.0-beta.15"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"copyfiles": "^0.2.1",
|
||||||
|
"coveralls": "^2.11.9",
|
||||||
|
"http-server": "0.8.5",
|
||||||
|
"jasmine-core": "2.4.1",
|
||||||
|
"karma": "~0.13.22",
|
||||||
|
"karma-chrome-launcher": "~1.0.1",
|
||||||
|
"karma-coverage": "^1.0.0",
|
||||||
|
"karma-jasmine": "~1.0.2",
|
||||||
|
"karma-mocha-reporter": "^2.0.3",
|
||||||
|
"license-check": "^1.0.4",
|
||||||
|
"remap-istanbul": "^0.6.3",
|
||||||
|
"traceur": "^0.0.91",
|
||||||
|
"tslint": "^3.8.1",
|
||||||
|
"typescript": "^1.8.10",
|
||||||
|
"typings": "^0.7.12"
|
||||||
|
},
|
||||||
|
"license-check-config": {
|
||||||
|
"src": [
|
||||||
|
"**/*.js",
|
||||||
|
"**/*.ts",
|
||||||
|
"!/**/coverage/**/*",
|
||||||
|
"!/**/demo/**/*",
|
||||||
|
"!/**/node_modules/**/*",
|
||||||
|
"!/**/typings/**/*",
|
||||||
|
"!*.js"
|
||||||
|
],
|
||||||
|
"path": "assets/license_header.txt",
|
||||||
|
"blocking": false,
|
||||||
|
"logInfo": false,
|
||||||
|
"logError": true
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,41 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import {Http} from 'angular2/http';
|
||||||
|
import {Observable} from 'rxjs/Observable';
|
||||||
|
|
||||||
|
import {AlfrescoSettingsService} from 'ng2-alfresco-core/services';
|
||||||
|
import {AlfrescoService} from './../../src/services/alfresco.service';
|
||||||
|
|
||||||
|
export class AlfrescoServiceMock extends AlfrescoService {
|
||||||
|
|
||||||
|
_folderToReturn: any = {};
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
http: Http = null,
|
||||||
|
settings: AlfrescoSettingsService = null
|
||||||
|
) {
|
||||||
|
super(http, settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
getFolder(folder: string) {
|
||||||
|
return Observable.create(observer => {
|
||||||
|
observer.next(this._folderToReturn);
|
||||||
|
observer.complete();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,17 @@
|
|||||||
|
<h1>Search results</h1>
|
||||||
|
<p *ngIf="results">Found {{results.length}} results for {{currentSearchTerm}}</p>
|
||||||
|
<table *ngIf="results" class="mdl-data-table mdl-js-data-table mdl-shadow--2dp full-width">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<span class="mdl-data-table__cell--non-numeric">Name</span>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
<tr *ngFor="#result of results; #idx = index">
|
||||||
|
<td>{{result.entry.name}}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
@@ -0,0 +1,73 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { Component, Input } from 'angular2/core';
|
||||||
|
import { RouteParams } from 'angular2/router';
|
||||||
|
import { AlfrescoService } from './../services/alfresco.service';
|
||||||
|
|
||||||
|
declare let __moduleName: string;
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
moduleId: __moduleName,
|
||||||
|
selector: 'alfresco-search',
|
||||||
|
styles: [
|
||||||
|
`
|
||||||
|
:host h1 {
|
||||||
|
font-size:22px
|
||||||
|
}
|
||||||
|
`
|
||||||
|
],
|
||||||
|
templateUrl: './alfresco-search.component.html',
|
||||||
|
providers: [AlfrescoService]
|
||||||
|
})
|
||||||
|
export class AlfrescoSearchComponent {
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
currentSearchTerm: string = '';
|
||||||
|
|
||||||
|
folder: any;
|
||||||
|
results: any;
|
||||||
|
errorMessage;
|
||||||
|
|
||||||
|
route: any[] = [];
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private _alfrescoService: AlfrescoService, params: RouteParams) {
|
||||||
|
this.results = [];
|
||||||
|
this.currentSearchTerm = params.get('searchTerm');
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.displaySearchResults(this.currentSearchTerm);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads and displays folder content
|
||||||
|
* @param searchTerm Search query entered by user
|
||||||
|
*/
|
||||||
|
displaySearchResults(searchTerm) {
|
||||||
|
if (searchTerm !== null) {
|
||||||
|
this._alfrescoService
|
||||||
|
.getLiveSearchResults(searchTerm)
|
||||||
|
.subscribe(
|
||||||
|
results => this.results = results.list.entries,
|
||||||
|
error => this.errorMessage = <any>error
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -0,0 +1,121 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { Injectable } from 'angular2/core';
|
||||||
|
import { Http, Response } from 'angular2/http';
|
||||||
|
import { Observable } from 'rxjs/Observable';
|
||||||
|
|
||||||
|
import { AlfrescoSettingsService } from 'ng2-alfresco-core/services';
|
||||||
|
import { NodePaging, MinimalNodeEntity } from './../models/document-library.model';
|
||||||
|
|
||||||
|
declare let AlfrescoApi: any;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Internal service used by Document List component.
|
||||||
|
*/
|
||||||
|
@Injectable()
|
||||||
|
export class AlfrescoService {
|
||||||
|
|
||||||
|
private _host: string = 'http://127.0.0.1:8080';
|
||||||
|
private _baseUrlPath: string = '/alfresco/api/-default-/public/alfresco/versions/1';
|
||||||
|
|
||||||
|
constructor(private http: Http,
|
||||||
|
private settings: AlfrescoSettingsService) {
|
||||||
|
if (settings) {
|
||||||
|
this._host = settings.host;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public get host(): string {
|
||||||
|
return this._host;
|
||||||
|
}
|
||||||
|
|
||||||
|
public set host(value: string) {
|
||||||
|
this._host = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
private getBaseUrl(): string {
|
||||||
|
return this.host + this._baseUrlPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
private getAlfrescoTicket() {
|
||||||
|
return localStorage.getItem('token');
|
||||||
|
}
|
||||||
|
|
||||||
|
private getAlfrescoClient() {
|
||||||
|
let defaultClient = new AlfrescoApi.ApiClient();
|
||||||
|
defaultClient.basePath = this.getBaseUrl();
|
||||||
|
|
||||||
|
// Configure HTTP basic authorization: basicAuth
|
||||||
|
let basicAuth = defaultClient.authentications['basicAuth'];
|
||||||
|
basicAuth.username = 'ROLE_TICKET';
|
||||||
|
basicAuth.password = this.getAlfrescoTicket();
|
||||||
|
|
||||||
|
return defaultClient;
|
||||||
|
}
|
||||||
|
|
||||||
|
private getSearchNodesPromise(term: string) {
|
||||||
|
let alfrescoClient = this.getAlfrescoClient();
|
||||||
|
let apiInstance = new AlfrescoApi.SearchApi(alfrescoClient);
|
||||||
|
let nodeId = '-root-';
|
||||||
|
let opts = {
|
||||||
|
include: ['path'],
|
||||||
|
rootNodeId: nodeId
|
||||||
|
};
|
||||||
|
return apiInstance.liveSearchNodes(term, opts);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute a search against the repository
|
||||||
|
*
|
||||||
|
* @param term Search term
|
||||||
|
* @returns {Observable<NodePaging>} Search results
|
||||||
|
*/
|
||||||
|
getLiveSearchResults(term: string) {
|
||||||
|
return Observable.fromPromise(this.getSearchNodesPromise(term))
|
||||||
|
.map(res => <NodePaging> res)
|
||||||
|
.do(data => console.log('Search data', data)) // eyeball results in the console
|
||||||
|
.catch(this.handleError);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get thumbnail URL for the given document node.
|
||||||
|
* @param document Node to get URL for.
|
||||||
|
* @returns {string} URL address.
|
||||||
|
*/
|
||||||
|
getDocumentThumbnailUrl(document: MinimalNodeEntity) {
|
||||||
|
return this.getContentUrl(document) + '/thumbnails/doclib?c=queue&ph=true&lastModified=1&alf_ticket=' + this.getAlfrescoTicket();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get content URL for the given node.
|
||||||
|
* @param document Node to get URL for.
|
||||||
|
* @returns {string} URL address.
|
||||||
|
*/
|
||||||
|
getContentUrl(document: MinimalNodeEntity) {
|
||||||
|
return this._host +
|
||||||
|
'/alfresco/service/api/node/workspace/SpacesStore/' +
|
||||||
|
document.entry.id + '/content';
|
||||||
|
}
|
||||||
|
|
||||||
|
private handleError(error: Response) {
|
||||||
|
// in a real world app, we may send the error to some remote logging infrastructure
|
||||||
|
// instead of just logging it to the console
|
||||||
|
console.error(error);
|
||||||
|
return Observable.throw(error || 'Server error');
|
||||||
|
}
|
||||||
|
}
|
18
ng2-components/ng2-alfresco-search/tsconfig.json
Normal file
18
ng2-components/ng2-alfresco-search/tsconfig.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "es5",
|
||||||
|
"module": "system",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"emitDecoratorMetadata": true,
|
||||||
|
"experimentalDecorators": true,
|
||||||
|
"sourceMap": true,
|
||||||
|
"removeComments": true,
|
||||||
|
"declaration": true,
|
||||||
|
"outDir": "dist"
|
||||||
|
},
|
||||||
|
"exclude": [
|
||||||
|
"node_modules",
|
||||||
|
"typings/main",
|
||||||
|
"typings/main.d.ts"
|
||||||
|
]
|
||||||
|
}
|
119
ng2-components/ng2-alfresco-search/tslint.json
Normal file
119
ng2-components/ng2-alfresco-search/tslint.json
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
{
|
||||||
|
"rules": {
|
||||||
|
"align": [
|
||||||
|
true,
|
||||||
|
"parameters",
|
||||||
|
"statements"
|
||||||
|
],
|
||||||
|
"ban": false,
|
||||||
|
"class-name": true,
|
||||||
|
"comment-format": [
|
||||||
|
true,
|
||||||
|
"check-space"
|
||||||
|
],
|
||||||
|
"curly": true,
|
||||||
|
"eofline": true,
|
||||||
|
"forin": true,
|
||||||
|
"indent": [
|
||||||
|
true,
|
||||||
|
"spaces"
|
||||||
|
],
|
||||||
|
"interface-name": false,
|
||||||
|
"jsdoc-format": true,
|
||||||
|
"label-position": true,
|
||||||
|
"label-undefined": true,
|
||||||
|
"max-line-length": [
|
||||||
|
true,
|
||||||
|
140
|
||||||
|
],
|
||||||
|
"member-ordering": [
|
||||||
|
true,
|
||||||
|
"static-before-instance",
|
||||||
|
"variables-before-functions"
|
||||||
|
],
|
||||||
|
"no-any": false,
|
||||||
|
"no-arg": true,
|
||||||
|
"no-bitwise": false,
|
||||||
|
"no-conditional-assignment": true,
|
||||||
|
"no-consecutive-blank-lines": false,
|
||||||
|
"no-console": [
|
||||||
|
true,
|
||||||
|
"debug",
|
||||||
|
"info",
|
||||||
|
"time",
|
||||||
|
"timeEnd",
|
||||||
|
"trace"
|
||||||
|
],
|
||||||
|
"no-construct": true,
|
||||||
|
"no-constructor-vars": false,
|
||||||
|
"no-debugger": true,
|
||||||
|
"no-duplicate-key": true,
|
||||||
|
"no-duplicate-variable": true,
|
||||||
|
"no-empty": false,
|
||||||
|
"no-eval": true,
|
||||||
|
"no-inferrable-types": false,
|
||||||
|
"no-internal-module": true,
|
||||||
|
"no-require-imports": true,
|
||||||
|
"no-shadowed-variable": true,
|
||||||
|
"no-switch-case-fall-through": true,
|
||||||
|
"no-trailing-whitespace": true,
|
||||||
|
"no-unreachable": true,
|
||||||
|
"no-unused-expression": true,
|
||||||
|
"no-unused-variable": true,
|
||||||
|
"no-use-before-declare": true,
|
||||||
|
"no-var-keyword": true,
|
||||||
|
"no-var-requires": true,
|
||||||
|
"object-literal-sort-keys": false,
|
||||||
|
"one-line": [
|
||||||
|
true,
|
||||||
|
"check-open-brace",
|
||||||
|
"check-catch",
|
||||||
|
"check-else",
|
||||||
|
"check-whitespace"
|
||||||
|
],
|
||||||
|
"quotemark": [
|
||||||
|
true,
|
||||||
|
"single",
|
||||||
|
"avoid-escape"
|
||||||
|
],
|
||||||
|
"radix": true,
|
||||||
|
"semicolon": true,
|
||||||
|
"switch-default": true,
|
||||||
|
"trailing-comma": [
|
||||||
|
true,
|
||||||
|
{
|
||||||
|
"multiline": "never",
|
||||||
|
"singleline": "never"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"triple-equals": [
|
||||||
|
true,
|
||||||
|
"allow-null-check"
|
||||||
|
],
|
||||||
|
"typedef": false,
|
||||||
|
"typedef-whitespace": [
|
||||||
|
true,
|
||||||
|
{
|
||||||
|
"call-signature": "nospace",
|
||||||
|
"index-signature": "nospace",
|
||||||
|
"parameter": "nospace",
|
||||||
|
"property-declaration": "nospace",
|
||||||
|
"variable-declaration": "nospace"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"use-strict": false,
|
||||||
|
"variable-name": [
|
||||||
|
true,
|
||||||
|
"check-format",
|
||||||
|
"allow-leading-underscore",
|
||||||
|
"ban-keywords"
|
||||||
|
],
|
||||||
|
"whitespace": [
|
||||||
|
true,
|
||||||
|
"check-branch",
|
||||||
|
"check-decl",
|
||||||
|
"check-operator",
|
||||||
|
"check-separator"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
6
ng2-components/ng2-alfresco-search/typings.json
Normal file
6
ng2-components/ng2-alfresco-search/typings.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"ambientDependencies": {
|
||||||
|
"es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
|
||||||
|
"jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#5c182b9af717f73146399c2485f70f1e2ac0ff2b"
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user