Telerik Forums
Kendo UI for Vue Forum
8 answers
390 views

My Gantt config is like this:

 

<ganttdatasource ref="ganttdatasource1"
                        :transport-read="ganttRead"
                        :transport-update="ganttUpdate"
                        :transport-create="ganttCreate"
                        :transport-destroy="ganttDestroy"
                        :transport-parameter-map="parameterMap"                          
                        :transport-submit="ganttSubmit"
                        schema-model-id="id"
                        :schema-model-fields="fields"
>
</ganttdatasource>
 
<ganttdependencydatasource ref="ganttdependencydatasource1"
                        :transport-read="dependRead"
                        :transport-update="dependUpdate"
                        :transport-create="dependCreate"
                        :transport-destroy="dependDestroy"
                        :transport-parameter-map="parameterMap"
                        schema-model-id="id"
                        :schema-model-fields="dependencyFields"
>
</ganttdependencydatasource>
 
    <gantt
        ref="kendogantt"
        id="gantt"
        :height="500"
        :editable-create="true"        
        data-source-ref="ganttdatasource1"           
        dependencies-data-source-ref="ganttdependencydatasource1"
        :assignments="assignments"         
        :resources="resources"
    >
    </gantt>

 

Then methods:

methods: {
    dependRead: async function(options) {
        console.log("dependRead!", options)
        try {
 
            const links = await this.$axios.$get(................)
 
            options.success(links)
 
        } catch (ex) {
            options.error(ex)
        }          
    },

 

All works fine except that I get spurious calls to dependRead, in the console I see two or three logs for 'dependRead' every time the gantt loads.

If I remove the async/await code then I see only one call to dependRead as expected - so my question is, should I be using blocking or non-blocking handlers for this? async handlers are the correct approach by my thinking...

 

[Interestingly ganttRead uses exactly the same async mechanism but that is only ever called once]

Al
Top achievements
Rank 1
Iron
Iron
Iron
 answered on 29 Apr 2021
3 answers
479 views

I have some additional info that I want to capture when creating a new task for the Gantt eg. task owner, status etc. so obviously I will need a custom screen to capture the extra info, I was thinking along these lines:

- Have a custom 'add task button' & hide the built-in one

- The button will open my custom screen which mimics the builtin one, but with some additional fields

- On save, the screen directly updates that backend and then refresh the gantt

 

Is this the best way to do this and/or is there any flaw with this approach?

If ok, then how would I refresh the gannt? would I have to rebind it or is it better/possible to add the new task to the datasource and then sync?

Petar
Telerik team
 answered on 23 Apr 2021
2 answers
193 views

Hello,

I have a problem with the datePicker of recurrenceRule.

As you can see in the picture, the datetimepicker of "start" uses a custom date format as dd/MM/yyyy and the culture "fr-BE". 

If I understand correctly how the datepicker of recurrence rule works, this one picks the date of "start". But the problem is the datepicker doesn't understand the custom format so it shows me an error 

Uncaught TypeError: Cannot read property 'getFullYear' of null

If I delete the custom format and the culture, all works perfectly but if I set a custom format it doesn't work.

Is there a solution to set globally the format of a date ? or how can I set a custom date format to the datepicker of recurrence rule ?

 

Thank you for the help.

Petar
Telerik team
 answered on 22 Apr 2021
13 answers
491 views

Hello,

I would like to call a component that contains only the custom edit template (to create a new task or edit) for my scheduler.

I followed this solution but the edit window just displays "[Object object]"

The code of scheduler

<kendo-scheduler id="scheduler"
      :data-source="localDataSource"
      :event-template="eventTemplate"
      :editable="{template:editTemplate}"
    >

 

The code of the method editTemplate()

methods: {
    editTemplate: function(){
      return {
         template: Vue.component(CustomEditTemplate.name, CustomEditTemplate),
      
    }
},

 

The code of the component that contains the custom template

<template>
    <div class="k-edit-form-container">
        <p> Titre <input type="text" /> </p>
        <p>
            <span >Start <input data-role="datetimepicker" name="start" /> </span>
            <span >End <input data-role="datetimepicker" name="end" /> </span>
        </p>
    </div>
</template>
 
<script>
export default {
    name:"CustomEditTemplate",
}
</script>

 

I think the problem comes from the method editTemplate but I don't undestand why.

Anyone can help me ?

 

Thanks.

 

 

 

Petar
Telerik team
 answered on 12 Apr 2021
3 answers
129 views

I have config like this:

 

<ganttdatasource ref="ganttdatasource1"
                        :transport-read="ganttRead"
                        :transport-update="ganttUpdate"
                        :transport-create="ganttCreate"
                        :transport-destroy="ganttDestroy"
                        :transport-parameter-map="parameterMap"                          
                        :transport-submit="ganttSubmit"
                        schema-model-id="id"
                        :schema-model-fields="fields">
</ganttdatasource>

 

From what I can tell from the docs if transport-submit is defined then the create/update/destroy functions should not be fired and all should be batched up into a single call to transport-submit, but this does not happen: transport-submit is never called and transport-update etc. are all called as normal.

Is this a bug or do I misunderstand the operation?

Petar
Telerik team
 answered on 29 Mar 2021
3 answers
151 views

If possible, please point me to a working example of this using remote data source. My config as below:

    <ganttdatasource ref="ganttdatasource1"
                            :transport-read="ganttRead"
                            :transport-update="ganttUpdate"
                            :transport-create="ganttCreate"
                            :transport-destroy="ganttDestroy"
                            :transport-parameter-map="parameterMap"                           
                            :transport-batch="true" 
                            schema-model-id="id"
                            :schema-model-fields="fields">
    </ganttdatasource>

        <gantt
            ref="kendogantt"
            id="gantt"
            :height="500"
            :editable-create="true"         
            data-source-ref="ganttdatasource1"            
            :assignments="assignments"          
            :resources="resources"
        >
        </gantt>

 

 

I'm using the gantt with remote data with custom functions (I use axios, not Telerik gantt data source built-in features). When the gantt first loads it gets it's tasks from  'transport-read', task resource assignments from 'assignments' prop, and resources from 'resources' prop. All works just fine.

 

Now when a task's assignment is updated, it triggers my custom function 'ganttUpdate', it passes in a data object with all the task data + a .resources. property that has all the assignments for the task and I can update my backend ok.

What I don't understand is what I need to return from 'ganttUpdate' - I mean there are now two places where the task resource assignments are kept (1) on the task itself in the .resources property, and (2) on the gantt in the 'assignments' prop (which has all the assignments for all tasks). It is very confusing.

Petar
Telerik team
 answered on 23 Mar 2021
1 answer
240 views

As we are working vue3 with typescript, we are facing a lot of issues implementing the wrapper components as all the demos are available in JS.

Can anyone provide a sample demo of notification (using as a toaster) with typescript.

Find the attached SS of error.

Plamen
Telerik team
 answered on 19 Mar 2021
7 answers
150 views

I have a simple gantt linked to local datasource (there is no backend api), when adding a task I want to handle the onAdd event and mutate the local datasource.

It seems to work ok except that the id of the new task in onAdd is set to 0 (console.log(e.task) in on Add) - am I supposed to set this id value manually?

Petar
Telerik team
 answered on 17 Mar 2021
3 answers
324 views

We are trying to use native grid component and following the official demo documentation along with StackBlitz example.

In StackBlitz, it's throwing an Maximum call stack size exceeded. Please find the attachment.

Link: https://fmdsao--run.stackblitz.io/

Can anyone help us to resolve this issue as grid is our primary component to leverage.

 

 

Petar
Telerik team
 answered on 17 Mar 2021
3 answers
119 views

There is a way to block appointments in hours.

Example in the image

Petar
Telerik team
 answered on 15 Mar 2021
Narrow your results
Selected tags
Tags
Grid
General Discussions
DropDownList
DatePicker
Editor
Grid wrapper
Scheduler
DropDownTree wrapper
Spreadsheet wrapper
Input
MultiSelect
Calendar
NumericTextBox
DateInput
DateTimePicker
Editor wrapper
Styling / Themes
DataSource wrappers (package)
Scheduler wrapper
Chart wrappers (package)
Gantt wrapper
Localization
Chart
Checkbox
ComboBox
Window
Pager
Error
Upload
DropDownList wrapper
Popup
Form
Tooltip
TreeView
Dialog
MultiSelect wrapper
NumericTextBox wrapper
Slider
Toolbar wrapper
Upload wrapper
Validator wrapper
ColorPicker
Button
Accessibility
AutoComplete
AutoComplete wrapper
Button wrapper
ComboBox wrapper
ContextMenu wrapper
Licensing
ListBox wrapper
ListView wrapper
Map wrapper
MaskedTextBox
Menu wrapper
MultiColumnComboBox wrapper
Splitter wrapper
TabStrip wrapper
TimePicker
TreeView wrapper
TabStrip
Card
RadioButton
FloatingLabel
TextArea
Drawer
Stepper
DateRangePicker
Gauge
Splitter
PanelBar
Notification
RangeSlider
Menu
TreeList
Toolbar
ListView
FontIcon
SVGIcon
Animation
Barcode wrapper
ButtonGroup wrapper
Chat wrapper
ColorPicker wrapper
DateInput wrappers (package)
Diagram wrapper
Dialog wrapper
Gauges wrappers (package)
MaskedTextBox wrapper
MediaPlayer wrapper
Notification wrapper
Pager wrapper
PanelBar wrapper
PivotGrid wrapper
QRCode wrapper
RangeSlider wrapper
ScrollView wrapper
Security
Slider wrapper
Switch wrapper
Tooltip wrapper
TreeList wrapper
TreeMap wrapper
Window wrapper
Avatar
StockChart
Sparkline
RadioGroup
Hint
Loader
ProgressBar
Switch
Wizard
Skeleton
ScrollView
ColorGradient
ColorPalette
FlatColorPicker
ButtonGroup
TileLayout
ListBox
ExpansionPanel
BottomNavigation
AppBar
Signature
ChunkProgressBar
VS Code Extension
SpeechToTextButton
+? more
Top users last month
Jay
Top achievements
Rank 3
Iron
Iron
Iron
yw
Top achievements
Rank 2
Iron
Iron
Stefan
Top achievements
Rank 2
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Bohdan
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Jay
Top achievements
Rank 3
Iron
Iron
Iron
yw
Top achievements
Rank 2
Iron
Iron
Stefan
Top achievements
Rank 2
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Bohdan
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?