Angular directive wrapping TimelineJS.
To use the angular-timelinejs directive you can simply install it using Bower:
$ bower install angular-timelinejs
Load the Javascript and CSS files in appropriate places:
<link rel="stylesheet" href="bower_components/TimelineJS/build/css/timeline.css" />
<link rel="stylesheet" href="bower_components/TimelineJS/build/css/themes/font/Rancho-Gudea.css">
<script src="bower_components/TimelineJS/build/js/timeline.js"></script>
<script src="bower_components/angular-timelinejs/build/angular-timelinejs.js"></script>
and make sure you inject it in your application (i.e. app.js):
angular.module('myModule', ['pippTimelineDirectives']);
then simply include the following somewhere into your HTML (i.e. view).
<pipp-timeline-j-s source="timelineData"
height="600"
width="98%"
start-zoom-adjust="0"
start-at-end="false"
start-at-slide="0"
hash-bookmark="false"
lang="en"
debug="false"></pipp-timeline-j-s>
and in a controller you would have your data which you can pull from services and manipulate as you wish.
$scope.timelineData = {
"timeline":
{
"headline":"The Main Timeline Headline Goes here",
"type":"default",
"text":"<p>Intro body text goes here, some HTML is ok</p>",
"asset": {
"media":"http://yourdomain_or_socialmedialink_goes_here.jpg",
"credit":"Credit Name Goes Here",
"caption":"Caption text goes here"
},
"date": [
{
"startDate":"2011,12,10",
"endDate":"2011,12,11",
"headline":"Headline Goes Here",
"text":"<p>Body text goes here, some HTML is OK</p>",
"tag":"This is Optional",
"classname":"optionaluniqueclassnamecanbeaddedhere",
"asset": {
"media":"http://twitter.com/ArjunaSoriano/status/164181156147900416",
"thumbnail":"optional-32x32px.jpg",
"credit":"Credit Name Goes Here",
"caption":"Caption text goes here"
}
}
],
"era": [
{
"startDate":"2011,12,10",
"endDate":"2011,12,11",
"headline":"Headline Goes Here",
"text":"<p>Body text goes here, some HTML is OK</p>",
"tag":"This is Optional"
}
]
}
};
The demo directory contains two web applications: one using TimelineJS with Angular and one using Angular through this directive. This is mainly to help observe difference during development.
To see the examples you can simply cd
into the example directory and execute grunt serve
to start a development web server. Then access the example at http://localhost:9002
or http://localhost:9003
depending on which one you started.
These requirements are to work on the directive (see Contributing below) and not the requirements to use the directive (see Installation above).
- NodeJS - Used to run test, deploy distributables, run development web server
- npm - Manage Javascript packages on the server (i.e. development machine)
- Grunt - Automated tasks runner (testing, deploying, running web server...)
- Bower - Manage packages on the frontend
- Karma - Run tests
All those should be installed if you need to do work on the directive itself; it is not needed if you simply desire to use the directive as it is offered.
- Namespacing - the pipp prefix on directive names is the namespace portion as this was initially developed within a project at the Pacific Insitute of Public Policy (PiPP).
- Versioning - should follow the Semantic Versioning formal specifications as described in http://semver.org/.
- Committing Dependencies - dependencies are not committed but only declared in package.json and bower.json.
Only bugs and feature request should be included in Github's Issues.
Contributing to this project is welcome. The process to do so is outlined below:
- Create a fork of the project
- Work on whatever bug or feature you wish
- Include at least basic tests for your work
- Ensure all tests still pass
- Add a example usage in the demo
- Create a pull request (PR)
We won't guarranty that we will merge all PRs but we will evaluate them all.
See LICENSE.