• Stars
    star
    141
  • Rank 259,971 (Top 6 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 10 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

jquery and html schedule calendar

jq.Schedule

npm version Build Status License: MIT

jquery and html schedule calendar

  • Drag and Drop Support
  • Resize Schedule
  • Ajax Get Data

install

package

npm i jq.schedule --save

Demo

Try Demo

How to use

append head css

<link rel="stylesheet" type="text/css" href="./jquery.schedule/dist/css/style.min.css" />

insert body

<div id="schedule"></div>
<script type="text/javascript" src="./jquery.schedule/dist/js/jq.schedule.min.js"></script>
<script type="text/javascript">
    $(function(){
        var $sc = $("#schedule").timeSchedule({
            startTime: "07:00", // schedule start time(HH:ii)
            endTime: "21:00",   // schedule end time(HH:ii)
            widthTime:60 * 10,  // cell timestamp example 10 minutes
            timeLineY:60,       // height(px)
            verticalScrollbar:20,   // scrollbar (px)
            timeLineBorder:2,   // border(top and bottom)
            bundleMoveWidth:6,  // width to move all schedules to the right of the clicked time line cell
            rows : {
                '0' : {
                    title : 'Title Area',
                    subtitle : 'Description',
                    schedule:[
                        {
                            start:'09:00',
                            end:'12:00',
                            text:'Text Area',
                            data:{
                            }
                        },
                        {
                            start:'11:00',
                            end:'14:00',
                            text:'Text Area',
                            data:{
                            }
                        }
                    ]
                },
                '1' : {
                    title : 'Title Area',
                    schedule:[
                        {
                            start:'16:00',
                            end:'17:00',
                            text:'Text Area',
                            data:{
                            }
                        }
                    ]
                }
            },
            onChange: function(node, data){
                addLog('onChange', data);
            },
            onInitRow: function(node, data){
                addLog('onInitRow', data);
            },
            onClick: function(node, data){
                addLog('onClick', data);
            },
            onAppendRow: function(node, data){
                addLog('onAppendRow', data);
            },
            onAppendSchedule: function(node, data){
                addLog('onAppendSchedule', data);
            },
            onScheduleClick: function(node, time, timeline){
                addLog('onScheduleClick', time + ' ' + timeline);
            }
        });
    });
</script>

Options

Paramaters

Key Value Description
className jq-schedule add elemnt class(default jq.schedule)
startTime 07:00 schedule start time(HH:ii)
endTime 21:00 schedule end time(HH:ii)
widthTime 600 cell timestamp example 10 minutes
timeLineY 60 height(px)
verticalScrollbar 20 scrollbar (px)
timeLineBorder 2 border(top and bottom)
bundleMoveWidth 6 width to move all schedules to the right of the clicked time line cell
rows {object} schedule data
draggable {boolean} enable draggable(default true)
resizable {boolean} enable resizable(default true)
resizableLeft {boolean} enable left handle resizable(default false)

Schedule Data

Key Type Description
title string Schedule Row Title
subtitle string Schedule Row Description
schedule object[] schedule row of array

Schedule Data in Object

Key Type Description
start string HH:ii
end string HH:ii
text string Bar Title
data object bind data

Callback Methods

onChange(node: Element, data: Object)

on change schedule bar callback

onInitRow(node: Element, data: Object)

initialize data

onClick(node: Element, data: Object)

on click bar callback

onAppendRow(node: Element, data: Object)

on add schedule row callback

onSppendSchedule(node: Element, data: Object)

on add schedule bar callback

onScheduleClick(node: Element, time: string, data: Object)

on click schedule row callback

Methods

get row data

var data = $("#schedule").timeSchedule('timelineData');

get schedule data

var data = $("#schedule").timeSchedule('scheduleData');

clear all data

$("#schedule").timeSchedule('resetData');

clear all data and row

$("#schedule").timeSchedule('resetRowData');

add row

$("#schedule").timeSchedule('addRow', timeline, {
    title : 'Title Area',
    schedule:[
        {
            start:'09:00',
            end:'12:00',
            text:'Text Area',
            data:{
            }
        }
    ]
});

add data

$("#schedule").timeSchedule('addSchedule', timeline, {
    start: start,
    end: end,
    text:'Insert Schedule',
    data:{}
});

switch setting

$("#schedule").timeSchedule('setDraggable', true or false);
$("#schedule").timeSchedule('setResizable', true or false);

For Development

run server browser-sync

npm run serve