TB Scheduler
This is a scheduler library.
by Muhammad Dawood Awan
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<div id="scheduler"> </div>
<button class="btn btn-primary" id="logVal">Log</button>
JavaScript
(function ($) {
$.tbScheduler = function (element, options) {
var defaults = {
Repeat: ["None", "Per Minutes", "Hourly", "Daily", "Weekly", "Monthly", "Yearly"],
onFoo: function () { }
}
var plugin = this;
plugin.settings = {}
var $element = $(element);
plugin.init = function () {
plugin.settings = $.extend({}, defaults, options);
// code goes here
InitializeScheduler();
}
plugin.foo_public_method = function () {
// code goes here
}
var InitializeScheduler = function () {
var repeatDropdown = createRepeatDropdown();
var div4Col = $('<div/>', {
'class': 'col-md-4'
});
div4Col.html(repeatDropdown);
var div = $('<div/>', {
'class': 'row'
}).html(div4Col).append('<div class="col-md-4"><div class="everySection"></div></div>');
$element.append(div);
};
//private method
var createRepeatDropdown = function () {
var combo = $("<select></select>").change(function () { updateRepeatInputs($(this).val()); }).addClass('form-control');
$.each(defaults.Repeat, function (i, el) {
combo.append("<option>" + el + "</option>");
});
return combo;
};
var updateRepeatInputs = function (repeaterValue) {
var everySection = $element.find('.everySection');
switch (repeaterValue) {
case 'Per Minutes':
everySection.html('every <span>A</span>');
console.log('Minutes HTML');
break;
case 'Hourly':
console.log('Hourly HTML');
break;
case 'Weekly':
console.log('Weekly HTML');
break;
...