polldozer
v1.0.5
Published
Lightweight Polldozer client to create and vote on polls with Polldozer API
Downloads
13
Readme
polldozer
Lightweight Polldozer client to create and vote on polls with Polldozer API
Install
$ npm install --save polldozer
Usage polldozer/vote
Renders a poll with "vote" or "analysis" layout based on the current state of the user (voted: yes / no) and the poll (expired: yes / no).
Below is a example of usage:
<div id="vote" data-poll-id="POLL_ID"></div>
var PolldozerVote = require('polldozer/vote');
var corsRequestFn = function(options) {
var ajax = function(url, type, data) {
return $.ajax({
url: url,
type: type,
crossDomain: true,
contentType: data ? 'application/json; charset=utf-8' : undefined,
dataType: 'json',
data: data ? JSON.stringify(data) : void 0,
success: options.onSuccess,
error: options.onFailure,
complete: options.onComplete
});
};
return {
get: function(url) {
return ajax(url, 'GET');
},
post: function(url, data) {
return ajax(url, 'POST', data);
}
};
};
new PolldozerVote({
element: document.getElementById('vote'),
apiUrl: 'https://polldozer.herokuapp.com/', // please host your own, this is a slow free tier heroku app
corsRequestFn: corsRequestFn
});
Options
new Instance(options)
element
type: Element
default: undefined
Element that will be used to render the poll
corsRequestFn
type: Function
default: undefined
A function that returns a object with get
and post
methods to handle ajax calls. See jQuery example from above.
apiUrl
type: String
default: undefined
URL to Polldozer API
pollData
(optional)
type: PlainObject
default: undefined
Bootstraped poll object
locale
(optional)
type: String
default: 'en'
de
also supported
onVote(poll)
(optional)
type: Function
default: undefined
Callback function that is called after a successful vote
Usage polldozer/create
Renders, validates and submits a poll create form.
Below is a example of usage:
<div id="poll_form"></div>
var PolldozerVote = require('polldozer/create');
var corsRequestFn = function(options) {
var ajax = function(url, type, data) {
return $.ajax({
url: url,
type: type,
crossDomain: true,
contentType: data ? 'application/json; charset=utf-8' : undefined,
dataType: 'json',
data: data ? JSON.stringify(data) : void 0,
success: options.onSuccess,
error: options.onFailure,
complete: options.onComplete
});
};
return {
get: function(url) {
return ajax(url, 'GET');
},
post: function(url, data) {
return ajax(url, 'POST', data);
}
};
};
new PolldozerCreate({
element: document.getElementById('poll_form'),
apiUrl: 'https://polldozer.herokuapp.com/', // please host your own, this is a slow free tier heroku app
corsRequestFn: corsRequestFn,
onCreate: function(poll) {
alert(poll._id);
}
});
Options
new Instance(options)
element
type: Element
default: undefined
Element that will be used to render the poll
corsRequestFn
type: Function
default: undefined
A function that returns a object with get
and post
methods to handle ajax calls. See jQuery example from above.
apiUrl
type: String
default: undefined
URL to Polldozer API
locale
(optional)
type: String
default: 'en'
de
also supported
onCreate(poll)
(optional)
type: Function
default: undefined
Callback function that is called after a poll was created successfully
pollData
(optional)
type: PlainObject
default: undefined
Poll object that will be used to populate the input field with it's values
Stylesheets
SASS required. To provide basic styling and display logic add stylesheets with:
@import './node_modules/polldozer/stylesheets/create.scss';
@import './node_modules/polldozer/stylesheets/vote.scss';
/* or include it with the ~ syntax if you are building with webpack and sass-loader */
@import '~polldozer/stylesheets/create.scss';
@import '~polldozer/stylesheets/vote.scss';