Update from master

# Conflicts:
#	ng2-components/ng2-alfresco-datatable/package.json
#	ng2-components/ng2-alfresco-documentlist/package.json
This commit is contained in:
Denys Vuika 2016-07-05 12:56:04 +01:00
commit f54955b8eb
16 changed files with 195 additions and 33 deletions

View File

@ -17,6 +17,7 @@ before_install:
- export CHROME_BIN=/usr/bin/google-chrome - export CHROME_BIN=/usr/bin/google-chrome
- export DISPLAY=:99.0 - export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start - sh -e /etc/init.d/xvfb start
- cd ng2-components/ng2-alfresco-core; npm version patch; sed -i "s/0\\.0\\.0-PLACEHOLDER/^0.1.0/g" package.json; npm install; npm link
env: env:
matrix: matrix:
@ -29,7 +30,7 @@ env:
- MODULE=ng2-alfresco-viewer - MODULE=ng2-alfresco-viewer
before_script: before_script:
- cd ./ng2-components/$MODULE; npm install - cd ng2-components/$MODULE; npm version patch; sed -i "s/0\\.0\\.0-PLACEHOLDER/^0.1.0/g" package.json; npm install; npm link ng2-alfresco-core; npm run travis
- ls -ltrh ./node_modules/ - ls -ltrh ./node_modules/
script: npm run test script: npm run test
# Send coverage data to Coveralls # Send coverage data to Coveralls

View File

@ -76,13 +76,13 @@
"flag-icon-css": "2.3.0", "flag-icon-css": "2.3.0",
"alfresco-js-api": "^0.1.0", "alfresco-js-api": "^0.1.0",
"ng2-alfresco-core": "^0.1.36", "ng2-alfresco-core": "0.0.0-PLACEHOLDER",
"ng2-alfresco-datatable": "^0.1.12", "ng2-alfresco-datatable": "0.0.0-PLACEHOLDER",
"ng2-alfresco-documentlist": "^0.1.34", "ng2-alfresco-documentlist": "0.0.0-PLACEHOLDER",
"ng2-alfresco-login": "^0.1.29", "ng2-alfresco-login": "0.0.0-PLACEHOLDER",
"ng2-alfresco-search": "^0.1.21", "ng2-alfresco-search": "0.0.0-PLACEHOLDER",
"ng2-alfresco-upload": "^0.1.49", "ng2-alfresco-upload": "0.0.0-PLACEHOLDER",
"ng2-alfresco-viewer": "^0.1.32" "ng2-alfresco-viewer": "0.0.0-PLACEHOLDER"
}, },
"devDependencies": { "devDependencies": {
"browser-sync": "2.10.0", "browser-sync": "2.10.0",

View File

@ -1,7 +1,7 @@
{ {
"name": "ng2-alfresco-core", "name": "ng2-alfresco-core",
"description": "Alfresco Angular 2 Components core", "description": "Alfresco Angular 2 Components core",
"version": "0.1.39", "version": "0.0.0-PLACEHOLDER",
"author": "Alfresco Software, Ltd.", "author": "Alfresco Software, Ltd.",
"scripts": { "scripts": {
"clean": "rimraf dist node_modules typings", "clean": "rimraf dist node_modules typings",
@ -24,7 +24,8 @@
"test-browser": "karma start karma.conf.js --reporters kjhtml ", "test-browser": "karma start karma.conf.js --reporters kjhtml ",
"posttest": "node_modules/.bin/remap-istanbul -i coverage/report/coverage-final.json -o coverage/report -t html", "posttest": "node_modules/.bin/remap-istanbul -i coverage/report/coverage-final.json -o coverage/report -t html",
"coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report",
"prepublish": "npm run build" "prepublish": "npm run build",
"travis": "echo 'placeholder'"
}, },
"main": "./dist/index.js", "main": "./dist/index.js",
"typings": "./dist/index.d.ts", "typings": "./dist/index.d.ts",

View File

@ -1,7 +1,7 @@
{ {
"name": "ng2-alfresco-datatable", "name": "ng2-alfresco-datatable",
"description": "Alfresco Angular2 DataTable Component", "description": "Alfresco Angular2 DataTable Component",
"version": "0.1.17", "version": "0.0.0-PLACEHOLDER",
"author": "Alfresco Software, Ltd.", "author": "Alfresco Software, Ltd.",
"scripts": { "scripts": {
"clean": "rimraf dist node_modules typings", "clean": "rimraf dist node_modules typings",
@ -68,7 +68,7 @@
"rxjs": "5.0.0-beta.6", "rxjs": "5.0.0-beta.6",
"zone.js": "0.6.12", "zone.js": "0.6.12",
"rimraf": "2.5.2", "rimraf": "2.5.2",
"ng2-alfresco-core": "^0.1.35" "ng2-alfresco-core": "0.0.0-PLACEHOLDER"
}, },
"peerDependencies": { "peerDependencies": {
"material-design-icons": "^2.2.3", "material-design-icons": "^2.2.3",

View File

@ -1,7 +1,7 @@
{ {
"name": "ng2-alfresco-documentlist", "name": "ng2-alfresco-documentlist",
"description": "Alfresco Angular2 Document List Component", "description": "Alfresco Angular2 Document List Component",
"version": "0.1.37", "version": "0.0.0-PLACEHOLDER",
"author": "Alfresco Software, Ltd.", "author": "Alfresco Software, Ltd.",
"scripts": { "scripts": {
"clean": "rimraf dist node_modules typings", "clean": "rimraf dist node_modules typings",
@ -75,8 +75,8 @@
"rimraf": "2.5.2", "rimraf": "2.5.2",
"ng2-translate": "2.2.2", "ng2-translate": "2.2.2",
"alfresco-js-api": "^0.1.0", "alfresco-js-api": "^0.1.0",
"ng2-alfresco-core": "^0.1.35", "ng2-alfresco-core": "0.0.0-PLACEHOLDER",
"ng2-alfresco-datatable": "^0.1.17" "ng2-alfresco-datatable": "0.0.0-PLACEHOLDER"
}, },
"peerDependencies": { "peerDependencies": {
"material-design-icons": "^2.2.3", "material-design-icons": "^2.2.3",

View File

@ -1,7 +1,7 @@
{ {
"name": "ng2-alfresco-login", "name": "ng2-alfresco-login",
"description": "Alfresco Angular2 Login Component", "description": "Alfresco Angular2 Login Component",
"version": "0.1.32", "version": "0.0.0-PLACEHOLDER",
"author": "Alfresco Software, Ltd.", "author": "Alfresco Software, Ltd.",
"scripts": { "scripts": {
"clean": "rimraf dist node_modules typings", "clean": "rimraf dist node_modules typings",
@ -27,7 +27,8 @@
"test-browser": "concurrently \"karma start karma.conf.js --reporters kjhtml\" \"npm run watch-task\"", "test-browser": "concurrently \"karma start karma.conf.js --reporters kjhtml\" \"npm run watch-task\"",
"posttest": "node_modules/.bin/remap-istanbul -i coverage/report/coverage-final.json -o coverage/report -t html", "posttest": "node_modules/.bin/remap-istanbul -i coverage/report/coverage-final.json -o coverage/report -t html",
"coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report",
"prepublish": "npm run build" "prepublish": "npm run build",
"travis": "npm link ng2-alfresco-core"
}, },
"main": "./dist/index.js", "main": "./dist/index.js",
"typings": "./dist/index.d.ts", "typings": "./dist/index.d.ts",
@ -81,7 +82,7 @@
"zone.js": "0.6.12", "zone.js": "0.6.12",
"rimraf": "2.5.2", "rimraf": "2.5.2",
"ng2-translate": "2.2.2", "ng2-translate": "2.2.2",
"ng2-alfresco-core": "^0.1.35", "ng2-alfresco-core": "0.0.0-PLACEHOLDER",
"alfresco-js-api": "^0.1.0", "alfresco-js-api": "^0.1.0",
"coveralls": "^2.11.9" "coveralls": "^2.11.9"
}, },

View File

@ -1,7 +1,7 @@
{ {
"name": "ng2-alfresco-search", "name": "ng2-alfresco-search",
"description": "Alfresco Angular2 Search Component", "description": "Alfresco Angular2 Search Component",
"version": "0.1.25", "version": "0.0.0-PLACEHOLDER",
"author": "Alfresco Software, Ltd.", "author": "Alfresco Software, Ltd.",
"scripts": { "scripts": {
"clean": "rimraf dist node_modules typings", "clean": "rimraf dist node_modules typings",
@ -27,7 +27,8 @@
"test-browser": "concurrently \"karma start karma.conf.js --reporters kjhtml\" \"npm run watch-task\"", "test-browser": "concurrently \"karma start karma.conf.js --reporters kjhtml\" \"npm run watch-task\"",
"posttest": "node_modules/.bin/remap-istanbul -i coverage/report/coverage-final.json -o coverage/report -t html", "posttest": "node_modules/.bin/remap-istanbul -i coverage/report/coverage-final.json -o coverage/report -t html",
"coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report",
"prepublish": "npm run build" "prepublish": "npm run build",
"travis": "npm link ng2-alfresco-core"
}, },
"main": "./dist/index.js", "main": "./dist/index.js",
"typings": "./dist/index.d.ts", "typings": "./dist/index.d.ts",
@ -75,7 +76,7 @@
"ng2-translate": "2.2.2", "ng2-translate": "2.2.2",
"material-design-lite": "1.1.3", "material-design-lite": "1.1.3",
"alfresco-js-api": "^0.1.0", "alfresco-js-api": "^0.1.0",
"ng2-alfresco-core": "^0.1.35" "ng2-alfresco-core": "0.0.0-PLACEHOLDER"
}, },
"peerDependencies": { "peerDependencies": {
"material-design-icons": "^2.2.3", "material-design-icons": "^2.2.3",

View File

@ -1,7 +1,7 @@
{ {
"name": "ng2-alfresco-upload", "name": "ng2-alfresco-upload",
"description": "Alfresco Angular2 Upload Component", "description": "Alfresco Angular2 Upload Component",
"version": "0.1.55", "version": "0.0.0-PLACEHOLDER",
"author": "Alfresco Software, Ltd.", "author": "Alfresco Software, Ltd.",
"scripts": { "scripts": {
"clean": "rimraf dist node_modules typings", "clean": "rimraf dist node_modules typings",
@ -25,7 +25,8 @@
"test-browser": "concurrently \"karma start karma.conf.js --reporters kjhtml\" \"npm run watch-task\"", "test-browser": "concurrently \"karma start karma.conf.js --reporters kjhtml\" \"npm run watch-task\"",
"posttest": "node_modules/.bin/remap-istanbul -i coverage/report/coverage-final.json -o coverage/report -t html", "posttest": "node_modules/.bin/remap-istanbul -i coverage/report/coverage-final.json -o coverage/report -t html",
"coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report",
"prepublish": "npm run build" "prepublish": "npm run build",
"travis": "npm link ng2-alfresco-core"
}, },
"main": "./dist/index.js", "main": "./dist/index.js",
"typings": "./dist/index.d.ts", "typings": "./dist/index.d.ts",
@ -77,7 +78,7 @@
"rimraf": "2.5.2", "rimraf": "2.5.2",
"ng2-translate": "2.2.2", "ng2-translate": "2.2.2",
"alfresco-js-api": "^0.1.0", "alfresco-js-api": "^0.1.0",
"ng2-alfresco-core": "^0.1.35" "ng2-alfresco-core": "0.0.0-PLACEHOLDER"
}, },
"peerDependencies": { "peerDependencies": {
"material-design-icons": "^2.2.3", "material-design-icons": "^2.2.3",

View File

@ -1,8 +1,8 @@
{ {
"name": "ng2-alfresco-viewer", "name": "ng2-alfresco-viewer",
"description": "Alfresco documents viewer", "description": "Alfresco documents viewer",
"version": "0.1.35", "version": "0.0.0-PLACEHOLDER",
"author": "Eugenio Romano", "author": "Alfresco Software, Ltd.",
"scripts": { "scripts": {
"clean": "rimraf dist node_modules typings", "clean": "rimraf dist node_modules typings",
"typings": "typings install", "typings": "typings install",
@ -25,7 +25,8 @@
"test-browser": "concurrently \"karma start karma.conf.js --reporters kjhtml\" \"npm run watch-task\"", "test-browser": "concurrently \"karma start karma.conf.js --reporters kjhtml\" \"npm run watch-task\"",
"posttest": "node_modules/.bin/remap-istanbul -i coverage/report/coverage-final.json -o coverage/report -t html", "posttest": "node_modules/.bin/remap-istanbul -i coverage/report/coverage-final.json -o coverage/report -t html",
"coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report",
"prepublish": "npm run build" "prepublish": "npm run build",
"travis": "echo 'placeholder'"
}, },
"main": "./dist/index.js", "main": "./dist/index.js",
"typings": "./dist/index.d.ts", "typings": "./dist/index.d.ts",

View File

@ -28,15 +28,33 @@ export class PDFViewermock {
[{ [{
width: 793, width: 793,
scale: 1, scale: 1,
update: this.update update: this.update,
div: {
offsetTop: 400
},
viewport: {
height: 400
}
}, { }, {
width: 793, width: 793,
scale: 1, scale: 1,
update: this.update update: this.update,
div: {
offsetTop: 800
},
viewport: {
height: 400
}
}, { }, {
width: 793, width: 793,
scale: 1, scale: 1,
update: this.update update: this.update,
div: {
offsetTop: 1200
},
viewport: {
height: 400
}
}]; }];
_currentPageNumber: number = 0; _currentPageNumber: number = 0;

View File

@ -1,6 +1,6 @@
<!-- Start Pdf Canvas --> <!-- Start Pdf Canvas -->
<div id="viewer-pdf-container" class="viewer-pdf-container" (keypress)=eventHandler() (window:resize)="onResize($event)"> <div id="viewer-pdf-container" class="viewer-pdf-container" (keypress)=eventHandler() (window:resize)="onResize($event)">
<div id="viewer-viewerPdf" class="pdfViewer" > <div id="viewer-viewerPdf" class="pdfViewer">
<div id="loader-container" class="loader-container"> <div id="loader-container" class="loader-container">
<div class="loader-item"> <div class="loader-item">
<div id="loader-spin" class="mdl-progress mdl-js-progress mdl-progress__indeterminate"></div> <div id="loader-spin" class="mdl-progress mdl-js-progress mdl-progress__indeterminate"></div>

View File

@ -346,8 +346,7 @@ describe('PdfViewer', () => {
})); }));
}); });
describe('Rezize interaction', () => { describe('Resize interaction', () => {
it('resize event should trigger setScaleUpdatePages', inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { it('resize event should trigger setScaleUpdatePages', inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb return tcb
.createAsync(PdfViewerComponent) .createAsync(PdfViewerComponent)
@ -370,4 +369,33 @@ describe('PdfViewer', () => {
})); }));
}); });
describe('scroll interaction', () => {
it('scroll page should return the current page', inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(PdfViewerComponent)
.then((fixture) => {
let component = fixture.componentInstance;
spyOn(component, 'getPDFJS').and.returnValue(new PDFJSmock());
spyOn(component, 'initPDFViewer').and.callFake(() => {
component.pdfViewer = new PDFViewermock();
});
component.urlFile = 'fake-url-file';
component.ngOnChanges().then(() => {
fixture.detectChanges();
expect(component.displayPage).toBe(1);
component.inputPage('4');
fixture.detectChanges();
expect(component.displayPage).toBe(4);
component.watchScroll({scrollTop: 10000});
expect(component.displayPage).toBe(4);
}).catch((error) => {
expect(error).toBeUndefined();
});
});
}));
});
}); });

View File

@ -91,6 +91,10 @@ export class PdfViewerComponent {
let documentContainer = document.getElementById('viewer-pdf-container'); let documentContainer = document.getElementById('viewer-pdf-container');
let viewer: any = document.getElementById('viewer-viewerPdf'); let viewer: any = document.getElementById('viewer-viewerPdf');
window.document.addEventListener('scroll', (event) => {
this.watchScroll(event.target);
}, true);
this.pdfViewer = new PDFJS.PDFViewer({ this.pdfViewer = new PDFJS.PDFViewer({
container: documentContainer, container: documentContainer,
viewer: viewer viewer: viewer
@ -284,6 +288,50 @@ export class PdfViewerComponent {
} }
} }
/**
* Litener Scroll Event
*
* @param {any} target
*/
watchScroll(target) {
let outputPage = this.getVisibleElement(target);
if (outputPage) {
this.page = outputPage.id;
this.displayPage = this.page;
}
}
/**
* find out what elements are visible within a scroll pane
*
* @param {any} target
*
* @returns {Object} page
*/
getVisibleElement(target) {
return this.pdfViewer._pages.find((page) => {
return this.isOnScreen(page, target);
});
}
/**
* check if a page is visible
*
* @param {any} page
* @param {any} target
*
* @returns {boolean}
*/
isOnScreen(page: any, target: any) {
let viewport: any = {};
viewport.top = target.scrollTop;
viewport.bottom = viewport.top + target.scrollHeight;
let bounds: any = {};
bounds.top = page.div.offsetTop;
bounds.bottom = bounds.top + page.viewport.height;
return ((bounds.top <= viewport.bottom) && (bounds.bottom >= viewport.top));
};
/** /**
* Litener Keyboard Event * Litener Keyboard Event
* @param {KeyboardEvent} event * @param {KeyboardEvent} event

31
scripts/npm-link-demo-shell.sh Executable file
View File

@ -0,0 +1,31 @@
#!/usr/bin/env bash
for PACKAGE in \
ng2-alfresco-core \
ng2-alfresco-datatable \
ng2-alfresco-documentlist \
ng2-alfresco-login \
ng2-alfresco-search \
ng2-alfresco-upload \
ng2-alfresco-viewer
do
DESTDIR=././../ng2-components/${PACKAGE}
echo "====== linking component: ${DESTDIR} ====="
npm link ${DESTDIR} --access public
done
cd ./../demo-shell-ng2
for PACKAGE in \
ng2-alfresco-core \
ng2-alfresco-datatable \
ng2-alfresco-documentlist \
ng2-alfresco-login \
ng2-alfresco-search \
ng2-alfresco-upload \
ng2-alfresco-viewer
do
DESTDIR=././../ng2-components/${PACKAGE}
echo "====== demo shell linking: ${PACKAGE} ====="
npm link ${PACKAGE}
done

15
scripts/npm-publish.sh Executable file
View File

@ -0,0 +1,15 @@
#!/usr/bin/env bash
for PACKAGE in \
ng2-alfresco-core \
ng2-alfresco-datatable \
ng2-alfresco-documentlist \
ng2-alfresco-login \
ng2-alfresco-search \
ng2-alfresco-upload \
ng2-alfresco-viewer
do
DESTDIR=././../ng2-components/${PACKAGE}
echo "====== PUBLISHING: ${DESTDIR} ====="
npm publish ${DESTDIR}
done

16
scripts/update-version.sh Executable file
View File

@ -0,0 +1,16 @@
#!/usr/bin/env bash
set -ex
cd `dirname $0`
VERSION=$1
if [[ "${VERSION}" == "" ]]
then
echo "Version number required"
exit 1
fi
echo "====== RENAMING 0.0.0-PLACEHOLDER to N.N.N version ======"
find ././../ng2-components/ -type f -name package.json -print0 | xargs -0 sed -i '' "s/0\\.0\\.0-PLACEHOLDER/${VERSION}/g"