jQuery UI Widgets › Forums › Vue › Theme does not apply in jqxScheduler (Vue)
Tagged: jqxScheduler, material, scheduler, Theme
This topic contains 1 reply, has 2 voices, and was last updated by Hristo 3 years, 5 months ago.
-
Author
-
Hi, so I tried to apply the material theme for the jqxScheduler but it does not want to work. Anyone know what I am doing wrong?
<template>
<div class=”container-fluid”>
<div class=”row”>
<div class=”col pt-5″>
<h1 class=”mt-5 mb-4 col-5″>{{exhibitor.name}}</h1>
<h3> {{this.conferenceData.db_name}} – {{this.conferenceData.description}} </h3>
</div>
<div class=”col pt-5″>
</div>
</div>
<hr />
<div class=”row”>
<div class=”col-6 d-flex justify-content-center”>
<JqxScheduler class=”offset-1″ ref=”myScheduler” :showLegend=”true” v-if=”dataAdapter && source” :key=”source.localdata”
:width=”width” :height=”600″ :source=”dataAdapter” :date=”date” :view=”‘weekView'” :resources=”resources”
:appointmentDataFields=”appointmentDataFields” :theme=”‘material'” :views=”views” :dayNameFormat=”‘abbr'”
:editDialogCreate=”editDialogCreate” :editDialogOpen=”editDialogOpen” :editDialog=”true”@appointmentDelete=”mySchedulerOnAppointmentDelete($event)”
@appointmentAdd=”mySchedulerOnAppointmentAdd($event)”
@appointmentDoubleClick=”mySchedulerOnAppointmentDoubleClick($event)”
@appointmentClick=”mySchedulerOnAppointmentClick($event)”
@appointmentChange=”mySchedulerOnAppointmentChange($event)”
@cellClick=”mySchedulerOnCellClick($event)”
@cellDoubleClick=”mySchedulerOnCellDoubleClick($event)”/>
</div>
<!———————–>
<div class=”col-6″>
<div>
<button type=”button” class=”btn btn-primary” @click=”openAuditorsModal()”>Manage Consultants</button>
<ConsultantsModal
v-if=”openModal == true”
v-on:modal=”closeAuditorsModal”
:exhibitorData=”exhibitor”
:consultantsData=”consultants”
>
</ConsultantsModal>
</div>
<div class =”offset-2 col-8 p-3 mt-5 bg-light shadow-sm text-left” > <h5> Appointment Requests </h5> </div>
<div class=”overflow-auto offset-2 col-8 shadow-sm” style=”height: 60%;”>
<table class=”table”>
<thead>
<tr><th scope=”col”>Subject</th>
<th scope=”col”>Requester Email</th>
<th scope=”col”>Consultant</th>
<th scope=”col”>Date</th>
<th scope=”col”>Info</th>
</tr>
</thead>
<tbody><tr v-for=”(appointmentRequest) in appointmentRequests” :key=”appointmentRequest.subject”>
<template v-if=”appointmentRequest.consultant.disabled!=true”>
<td >{{appointmentRequest.subject}}</td>
<td>{{appointmentRequest.requester_user_email}} </td>
<td>{{appointmentRequest.consultant.firstname}} {{appointmentRequest.consultant.lastname}}</td>
<td> {{getFormattedRequestDate(appointmentRequest.start_at)}}</td>
<td><button type=”button” class=”btn btn-success” @click=”openRequestModal(appointmentRequest)”> <font-awesome-icon :icon=”[‘fad’, ‘info’]” /></button></td>
</template>
</tr><tr class=”disabledConsultants” v-for=”appointmentRequest in appointmentRequests” :key=”appointmentRequest.id”>
<template v-if=”appointmentRequest.consultant.disabled==true”>
<td >{{appointmentRequest.subject}}</td>
<td>{{appointmentRequest.requester_user_id}}</td>
<td>{{appointmentRequest.consultant.firstname}} {{appointmentRequest.consultant.lastname}} <br> <p class=”smallText”> This Consultant is disabled. </p></td>
<td> {{getFormattedRequestDate(appointmentRequest.start_at)}}</td>
<td><button type=”button” class=”btn btn-success” @click=”openRequestModal(appointmentRequest)” disabled> <font-awesome-icon :icon=”[‘fad’, ‘info’]” /></button></td>
</template>
</tr></tbody>
</table>
<RequestModal
v-if=”openModalRequest == true”
v-on:modal2=”closeRequestModal”
:requestData=”this.openedAppointmentRequest”
:consultantsData=”this.consultantsIdArray”
:conferenceData=”this.conference”
>
</RequestModal>
</div></div>
<div class=”col-6 d-flex justify-content-center”>
<JsonCSV
class= “btn btn-secondary mt-4”
:data = “json_data”
:name = this.csvName>
Download for Google Calendar
</JsonCSV>
<div class=”col-1″> </div>
<button
v-on:click=”downloadICS()”
class= “btn btn-secondary mt-4”>
Download for iCalendar, Outlook
</button>
</div>
</div></div>
</template><style>
@import “/@/public/styles/jqx.base.css”;
@import “/@/public/styles/jqx.material.css”;
</style>
<script>import {mapMutations, mapGetters, mapActions } from ‘vuex’
import JqxScheduler from ‘jqwidgets-scripts/jqwidgets-vue/vue_jqxscheduler.vue’
import ConsultantsModal from “@/components/ConsultantsModal.vue”;
import RequestModal from “@/components/RequestModal.vue”;
import JsonCSV from ‘vue-json-csv’;import Vue from “vue”;
const API_URL = process.env.VUE_APP_API_URL;
const CONFERENCE_ID = process.env.VUE_APP_CONFERENCE_ID;
const VUE_APP_PSOVERVIEW_KEY = process.env.VUE_APP_PSOVERVIEW_KEY;export default {
components: {
JqxScheduler,
ConsultantsModal,
RequestModal,
JsonCSV},
data: function () {return {
csvName: null,
icsName: null,
json_data: [],
conferenceData: null,
consultantsIdArray: null,
currentDay: null,
currentMonth: null,
currentYear: null,
appointmentsInfo: {},
authUserData: null,
openModal: null,
openModalRequest: null,
userExhibitor: null,
conference: null,
width: 1000,
theme: “material”,openedAppointmentRequest: null,
// eslint-disable-next-line
date: new jqx.date(‘todayDate’),
//date: new jqx.date(parseInt(this.currentYear), parseInt(this.currentMonth), parseInt(this.currentDay)),
appointmentDataFields:
{
from: ‘start’,
to: ‘end’,
id: ‘id’,
hidden: ‘hidden’,
description: ‘description’,
location: ‘location’,
subject: ‘subject’,
//calendar: ‘calendar’,
resourceId: ‘calendar’,
//background: ‘background’,
draggable: ‘draggable’,
//borderColor: ‘borderColor’
},
resources:
{
colorScheme: ‘scheme05’,
dataField: ‘calendar’,
orientation: ‘horizontal’,
// eslint-disable-next-line
source: new jqx.dataAdapter(this.source)
},
views:
[
{ type: ‘dayView’, showWeekends: false },
{ type: ‘weekView’, workTime: { fromDayOfWeek: 1, toDayOfWeek: 5, fromHour: 7, toHour: 19 }, showWeekends: false },
{ type: ‘monthView’ }
],
// eslint-disable-next-line
dataAdapter: null,//new jqx.dataAdapter(this.source),exportSettings: {
characterSet: null,
fileName: “Conference Schedule”
},}
},
beforeCreate: function () {
this.source =
{
dataType: ‘array’,
dataFields: [
{ name: ‘id’, type: ‘string’ },
{ name: ‘description’, type: ‘string’ },
{ name: ‘location’, type: ‘string’ },
{ name: ‘subject’, type: ‘string’ },
{ name: ‘calendar’, type: ‘array’ },
{ name: ‘start’, type: ‘date’ },
{ name: ‘end’, type: ‘date’ },
{ name: ‘hidden’, type: ‘boolean’ }
],
id: ‘id’,
localdata:[]
};
// eslint-disable-next-line
this.dataAdapter = new jqx.dataAdapter(this.source);},
watch: {
source: function () {
// eslint-disable-next-line
//this.dataAdapter = new jqx.dataAdapter(val);},
consultants: function (val, o) {
if (val !== o) {
this.checkAppointments(val);
}},
},computed:{
…mapGetters(‘exhibitor’, [‘exhibitor’]),
…mapGetters(‘consultant’, [‘consultants’, ‘consultantsByName’]),
…mapGetters(‘appointment’, [‘appointments’, ‘appointmentRequests’]),
},methods: {
openRequestModal(data){
this.openModalRequest = true;
this.openedAppointmentRequest = data;
},
async closeRequestModal(acceptedAppointment){
this.openModalRequest = false;
if(acceptedAppointment){let startDate = acceptedAppointment.start_at.toString();
let endDate = acceptedAppointment.end_at.toString();let appointmentStartYear = parseInt(startDate.substring(0, 4));
let appointmentEndYear = parseInt(endDate.substring(0, 4));let appointmentStartMonth = parseInt(startDate.substring(6, 7))-1; //months start from 0 in this plugin, so we have to rest 1
let appointmentEndMonth = parseInt(endDate.substring(6, 7))-1;let appointmentStartDay = parseInt(startDate.substring(8, 10));
let appointmentEndDay = parseInt(endDate.substring(8, 10));let appointmentStartHour = parseInt(startDate.substring(11, 13));
let appointmentEndHour = parseInt(endDate.substring(11, 13));let appointmentStartMinute = parseInt(startDate.substring(14, 17));
let appointmentEndMinute = parseInt(endDate.substring(14, 17));let ownerConsultant = (await Vue.axios.get(API_URL + “consultants/”+ acceptedAppointment.consultant_id)).data;
let ownerNames= ownerConsultant.firstname+” “+ownerConsultant.lastname//I save the consultants name and lastname
let GenerateAppointment = {
id: acceptedAppointment.id,
description: acceptedAppointment.description,
location: acceptedAppointment.location,
subject: acceptedAppointment.subject,
calendar: ownerNames,
start: new Date(appointmentStartYear, appointmentStartMonth, appointmentStartDay, appointmentStartHour, appointmentStartMinute, 0), //year – month-1 – day – hour – min – sec
end: new Date(appointmentEndYear, appointmentEndMonth, appointmentEndDay, appointmentEndHour, appointmentEndMinute, 0),
draggable:false,
}
this.source.localdata.push(GenerateAppointment)
this.$refs.myScheduler.addAppointment(GenerateAppointment);}
},
getFormattedRequestDate(date){
date = date.slice(0, 16)
const regEx = new RegExp(‘-‘, “g”);
date = date.replace(regEx, ‘/’)
return date;
},checkAppointments: function(consultants){
setTimeout(()=>{
consultants.forEach(consultant=>{
if(consultant.disabled != true){
let appointments = this.source.localdata.filter(app=>app.calendar== consultant.firstname + ‘ ‘ + consultant.lastname)
if(appointments.length == 0){
//create hidden appointment
let GenerateAppointment = {
id: 999999,
description: ‘DUMMY’,
location: ‘DUMMY’,
subject: ‘DUMMY’,
calendar: consultant.firstname + ‘ ‘ + consultant.lastname,
start: new Date(), //year – month-1 – day – hour – min – sec
end: new Date(),
draggable:false,
hidden:true,
}this.source.localdata.push(GenerateAppointment)
this.source.localdata = this.source.localdata.filter(function( app ) {
return app.calendar !== “IMPOSSIBLENAME34272638476456783875437687865763587543”; // I do this so the source.localdata gets refreshed, because vue doesnt let me assign it to itself
});}
} else {
this.source.localdata = this.source.localdata.filter(function( app ) {
return app.calendar !== consultant.firstname + ‘ ‘ + consultant.lastname;
});
}
})
},500);},
excelExportClick: function () {
this.$refs.myScheduler.exportData(‘xls’);
},
csvExportClick: function () {
this.$refs.myScheduler.exportData(‘csv’);
},
pdfExportClick: function () {
this.$refs.myScheduler.exportData(‘pdf’);
},async downloadICS(){
this.$ics.download(this.icsName)
},
async createAppointments(){
for(let i = 0; i < this.appointments.length; i++){
let startDate = this.appointments[i].start_at.toString();
let endDate = this.appointments[i].end_at.toString();let appointmentStartYear = parseInt(startDate.substring(0, 4));
let appointmentEndYear = parseInt(endDate.substring(0, 4));let appointmentStartMonth = parseInt(startDate.substring(6, 7))-1; //months start from 0 in this plugin, so we have to rest 1
let appointmentEndMonth = parseInt(endDate.substring(6, 7))-1;let appointmentStartDay = parseInt(startDate.substring(8, 10));
let appointmentEndDay = parseInt(endDate.substring(8, 10));let appointmentStartHour = parseInt(startDate.substring(11, 13));
let appointmentEndHour = parseInt(endDate.substring(11, 13));let appointmentStartMinute = parseInt(startDate.substring(14, 17));
let appointmentEndMinute = parseInt(endDate.substring(14, 17));let ownerConsultant = (await Vue.axios.get(API_URL + “consultants/”+ this.appointments[i].consultant_id)).data;
let ownerNames= ownerConsultant.firstname+” “+ownerConsultant.lastname//I save the consultants name and lastname
let GenerateAppointment = {
id: this.appointments[i].id,
description: this.appointments[i].description,
location: this.appointments[i].location,
subject: this.appointments[i].subject,
calendar: ownerNames,
start: new Date(appointmentStartYear, appointmentStartMonth, appointmentStartDay, appointmentStartHour, appointmentStartMinute, 0), //year – month-1 – day – hour – min – sec
end: new Date(appointmentEndYear, appointmentEndMonth, appointmentEndDay, appointmentEndHour, appointmentEndMinute, 0),
draggable:false,
}this.source.localdata.push(GenerateAppointment)
}for(let i = 0; i < this.appointments.length; i++){
console.log(“iteracion”)
let ownerConsultantJSON = (await Vue.axios.get(API_URL + “consultants/”+ this.appointments[i].consultant_id)).data;let googleFormatStartDate = this.appointments[i].start_at.substring(5,7)+”/”+this.appointments[i].start_at.substring(8,10)+”/”+this.appointments[i].start_at.substring(0,4);
let googleFormatEndDate = this.appointments[i].end_at.substring(5,7)+”/”+this.appointments[i].end_at.substring(8,10)+”/”+this.appointments[i].end_at.substring(0,4);let googleFormatStartHour = this.appointments[i].start_at.substring(11,16);
let googleFormatEndHour = this.appointments[i].end_at.substring(11,16);let newJsonAppointment = {
‘Subject’: this.appointments[i].subject,
‘Description’: “Conference: “+ this.conferenceData.db_name+ ” “+this.appointments[i].description+” Requester: “+this.appointments[i].requester_user_email+” Consultant: “+ownerConsultantJSON.firstname+” “+ownerConsultantJSON.lastname,
‘Start Date’: googleFormatStartDate,//this.appointments[i].start_at,
‘End Date’: googleFormatEndDate,//this.appointments[i].end_at,
‘Start Time’: googleFormatStartHour, //this.appointments[i].start_at,
‘End Time’: googleFormatEndHour,//this.appointments[i].end_at,
‘Location’: this.conferenceData.db_name,//this.appointments[i].start_at
}
this.json_data.push(newJsonAppointment);
console.log(this.json_data)let subject = this.appointments[i].subject;
let description = this.appointments[i].description+” Requester: “+this.appointments[i].requester_user_email+” Consultant: “+ownerConsultantJSON.firstname+” “+ownerConsultantJSON.lastname;
let start = this.appointments[i].start_at;
let end = this.appointments[i].end_at;
let organizer = this.conferenceData.db_name;
console.log(subject,description,start,stop,organizer)//let now = new Date()
//begin = new Date(now.getFullYear(), now.getMonth() + 1, now.getDay(), now.getHours(), now.getMinutes(), 0, 0)
//end = new Date(now.getFullYear(), now.getMonth() + 1, now.getDay(), now.getHours() + 1, now.getMinutes(), 0, 0)this.$ics.addEvent(null,subject,description,this.conferenceData.db_name,start,end,”Link”,organizer,null)
}
},mySchedulerOnAppointmentAdd: async function (event) {
console.log(“adding appointment”)
const appointmentAdd = event.args.appointment;
console.log(appointmentAdd)
event.args.appointment.location = “ee” //MIRAR ESTO
this.source.localdata.push(appointmentAdd)
let createAppointment = {}createAppointment.description = appointmentAdd.description;
createAppointment.location = appointmentAdd.location;
createAppointment.subject = appointmentAdd.subject;const regEx = new RegExp(‘,’, “g”);
let startFormatDate = appointmentAdd.from.toString(“yyyy, MM, dd HH:mm:ss”)//
startFormatDate = startFormatDate.replace(regEx, ‘-‘)
startFormatDate = startFormatDate.replace(/\s/g, ”);
startFormatDate = [startFormatDate.slice(0, 10), ‘ ‘, startFormatDate.slice(10)].join(”);
startFormatDate = startFormatDate+”+00″
createAppointment.start_at = startFormatDate;let endFormatDate = appointmentAdd.to.toString(“yyyy, MM, dd HH:mm:ss”)//
endFormatDate = endFormatDate.replace(regEx, ‘-‘)
endFormatDate = endFormatDate.replace(/\s/g, ”);
endFormatDate = [endFormatDate.slice(0, 10), ‘ ‘, endFormatDate.slice(10)].join(”);
endFormatDate = endFormatDate+”+00″
createAppointment.end_at = endFormatDate;let completeName = appointmentAdd.resourceId.split(” “);
let appointmentsInfo = {‘FirstName’: completeName[0], ‘LastName’: completeName[1]};
await this.getConsultantsByName(appointmentsInfo)
createAppointment.consultant_id = this.consultantsByName[0].id;
createAppointment.requester_user_id = this.consultantsByName[0].id
createAppointment.requested = true;
createAppointment.accepted = true;
createAppointment.rejected = false;if(createAppointment.location == null){
createAppointment.location == this.conferenceData.db_name;
}if(createAppointment.subject == null || createAppointment.description == null){
alert(“Please add a Subject and a Description”)
}console.log(createAppointment)
await Vue.axios.post(API_URL+”appointments/”, createAppointment);
},
mySchedulerOnAppointmentDelete: async function (event) {
const appointment = event.args.appointment;await Vue.axios.delete(API_URL+”appointments/”+appointment.id);
console.log(“deleting appointment”);
},
mySchedulerOnCellDoubleClick: function (event) {
console.log(event)
this.$refs.myScheduler.editDialog=true;
},
mySchedulerOnAppointmentClick: function (event) {this.$refs.myScheduler.editDialog=true;
const appointment = event.args.appointment;
console.log(appointment)
},
mySchedulerOnAppointmentDoubleClick: function (event) {this.$refs.myScheduler.editDialog=true;
const appointment = event.args.appointment;
console.log(appointment)
},
mySchedulerOnAppointmentChange: async function (event) {
const appointment = event.args.appointment;
let updateAppointment = {}updateAppointment.description = appointment.description;
updateAppointment.location = appointment.location;
updateAppointment.subject = appointment.subject;const regEx = new RegExp(‘,’, “g”);
let startFormatDate = appointment.from.toString(“yyyy, MM, dd HH:mm:ss”)//
startFormatDate = startFormatDate.replace(regEx, ‘-‘)
startFormatDate = startFormatDate.replace(/\s/g, ”);
startFormatDate = [startFormatDate.slice(0, 10), ‘ ‘, startFormatDate.slice(10)].join(”);
startFormatDate = startFormatDate+”+00″
updateAppointment.start_at = startFormatDate;let endFormatDate = appointment.to.toString(“yyyy, MM, dd HH:mm:ss”)//
endFormatDate = endFormatDate.replace(regEx, ‘-‘)
endFormatDate = endFormatDate.replace(/\s/g, ”);
endFormatDate = [endFormatDate.slice(0, 10), ‘ ‘, endFormatDate.slice(10)].join(”);
endFormatDate = endFormatDate+”+00″
updateAppointment.end_at = endFormatDate;let completeName = appointment.resourceId.split(” “);
let appointmentsInfo = {‘FirstName’: completeName[0], ‘LastName’: completeName[1]};
await this.getConsultantsByName(appointmentsInfo)
updateAppointment.consultant_id = this.consultantsByName[0].id;await Vue.axios.put(API_URL+”appointments/”+appointment.id, updateAppointment);
},
mySchedulerOnCellClick: function (event) {
const cell = event.args.cell;
console.log(cell)
},
openAuditorsModal() {
this.openModal = true;
},
async closeAuditorsModal(updatedConsultant) {
if(updatedConsultant){
if(updatedConsultant.disabled==true){
let payload = {‘ConsultantId’: updatedConsultant.id};
let appByCons = (await Vue.axios.post(API_URL+”appointments/getbyconsultantId/”, payload)).data;
for(let i = 0; i<appByCons.length; i++){
let updateAppointment = {}
updateAppointment.accepted=false;
await Vue.axios.put(API_URL+”appointments/”+appByCons[i].id, updateAppointment);
}
}this.requestsInfo = {‘ConsultantArray’: this.consultantsIdArray, ‘Conference’: this.conference};
await this.getRequests(this.requestsInfo)}else{
this.openModal = false;
await this.getConsultantsByExhibitor(this.exhibitor.id);
}
},editDialogCreate: function (dialog,fields) {
console.log(dialog)
// hide repeat option
fields.repeatContainer.hide();
// hide repeat option
fields.repeat.hide();
// hide status option
fields.statusContainer.hide();
// hide timeZone option
fields.timeZoneContainer.hide();
// hide color option
fields.colorContainer.hide();
// hide allday option
fields.allDayContainer.hide();
// hide repeat label option
fields.repeatLabel.hide();},
editDialogOpen: function (editAppointment) {
if (!editAppointment && this.printButton) {
this.printButton.disabled = true;
}
else if (editAppointment && this.printButton) {
this.printButton.disabled = false;
}
},…mapMutations(‘exhibitor’, [‘setExhibitor’]),
…mapActions(‘exhibitor’,[‘getExhibitor’]),
…mapActions(‘consultant’,[‘getConsultantsByExhibitor’, ‘getConsultantsByName’]),
…mapActions(‘appointment’,[‘getAppointments’, ‘getRequests’]),
},async created(){
this.conference = CONFERENCE_ID;
this.authUserData = (await this.$store.dispatch(‘auth/GET_USERDATA’)).data;
this.conferenceData = (await Vue.axios.get(“https://coredev.api.documedias.systems/api/eventyears/”+ CONFERENCE_ID, { headers: { “x-api-key”: VUE_APP_PSOVERVIEW_KEY} })).data
let exhibitorsArray= (await Vue.axios.get(“https://mantel-api.mobile.documedias.systems/v2/conferences/”+CONFERENCE_ID+”/exhibitors”)).data //get all exs of conference
this.userExhibitor = exhibitorsArray.filter(ex=>ex.email == this.authUserData.emailBusiness) //filter exs by email
console.log(this.conferenceData)
this.setExhibitor(this.userExhibitor[0]) //call this to set the exhibitor in the storeawait this.getConsultantsByExhibitor(this.exhibitor.id);
let consultantsByExhibitorArray = this.consultants
this.consultantsIdArray = consultantsByExhibitorArray.map(a => a.id);this.appointmentsInfo = {‘ConsultantArray’: this.consultantsIdArray, ‘Conference’: CONFERENCE_ID, ‘Accepted’: true };
await this.getAppointments(this.appointmentsInfo)this.requestsInfo = {‘ConsultantArray’: this.consultantsIdArray, ‘Conference’: CONFERENCE_ID};
await this.getRequests(this.requestsInfo)await this.createAppointments();
this.csvName= this.conferenceData.db_name+” schedule.csv”,
this.icsName= this.conferenceData.db_name+” schedule”,
// eslint-disable-next-line
this.dataAdapter = new jqx.dataAdapter(this.source);} ,
}
</script>Thanks,
MarcHello Marc,
Did you include the
material
theme in your project?
Because I try this tutorial and it seems to work fine (it has included this theme by default).
Please, take a look at this example:<template> <JqxScheduler ref="myScheduler" :theme="'material'" :width="getWidth" :height="600" :source="dataAdapter" :date="date" :showLegend="true" :view="'weekView'" :appointmentDataFields="appointmentDataFields" :resources="resources" :views="views" /> </template> <script> /* eslint-disable */ import JqxScheduler from "jqwidgets-scripts/jqwidgets-vue/vue_jqxscheduler.vue"; export default { components: { JqxScheduler, }, data: function() { return { getWidth: 650, date: new jqx.date(2016, 11, 23), appointmentDataFields: { from: "start", to: "end", id: "id", description: "description", location: "location", subject: "subject", resourceId: "calendar", }, resources: { colorScheme: "scheme05", dataField: "calendar", source: new jqx.dataAdapter(this.source), }, views: ["dayView", "weekView", "monthView"], }; }, beforeCreate: function() { const generateAppointments = function() { const appointments = new Array(); const appointment1 = { id: "id1", description: "George brings projector for presentations.", location: "", subject: "Quarterly Project Review Meeting", calendar: "Room 1", start: new Date(2016, 10, 23, 9, 0, 0), end: new Date(2016, 10, 23, 16, 0, 0), }; const appointment2 = { id: "id2", description: "", location: "", subject: "IT Group Mtg.", calendar: "Room 2", start: new Date(2016, 10, 24, 10, 0, 0), end: new Date(2016, 10, 24, 15, 0, 0), }; const appointment3 = { id: "id3", description: "", location: "", subject: "Course Social Media", calendar: "Room 3", start: new Date(2016, 10, 27, 11, 0, 0), end: new Date(2016, 10, 27, 13, 0, 0), }; const appointment4 = { id: "id4", description: "", location: "", subject: "New Projects Planning", calendar: "Room 2", start: new Date(2016, 10, 23, 16, 0, 0), end: new Date(2016, 10, 23, 18, 0, 0), }; const appointment5 = { id: "id5", description: "", location: "", subject: "Interview with James", calendar: "Room 1", start: new Date(2016, 10, 25, 15, 0, 0), end: new Date(2016, 10, 25, 17, 0, 0), }; const appointment6 = { id: "id6", description: "", location: "", subject: "Interview with Nancy", calendar: "Room 4", start: new Date(2016, 10, 26, 14, 0, 0), end: new Date(2016, 10, 26, 16, 0, 0), }; appointments.push(appointment1); appointments.push(appointment2); appointments.push(appointment3); appointments.push(appointment4); appointments.push(appointment5); appointments.push(appointment6); return appointments; }; this.source = { dataType: "array", dataFields: [ { name: "id", type: "string" }, { name: "description", type: "string" }, { name: "location", type: "string" }, { name: "subject", type: "string" }, { name: "calendar", type: "string" }, { name: "start", type: "date" }, { name: "end", type: "date" }, ], id: "id", localData: generateAppointments(), }; this.dataAdapter = new jqx.dataAdapter(this.source); }, mounted: function() { this.$refs.myScheduler.ensureAppointmentVisible("id1"); } }; </script> <style src="./assets/styles/jqwidgets/jqx.base.css"></style> <style src="./assets/styles/jqwidgets/jqx.material-green.css"></style> <style src="./assets/styles/jqwidgets/jqx.material.css"></style>
Best Regards,
Hristo HristovjQWidgets team
https://www.jqwidgets.com -
AuthorPosts
You must be logged in to reply to this topic.