Looking at the example below (for local data source)
https://www.telerik.com/kendo-vue-ui/components/gantt/data-binding/
Clicking 'Add Task' causes the child tasks to be duplicated + when choosing 'Add Child' the whole thing hangs.
I see the same behaviour in my own project - is there some other code required or is this a bug?
I have a Gantt connected to my backend, retrieving and writing data is working just fine but I am not sure that I am using the correct approach. For writes I am using the transport-update props like so:
:transport-update-url="serviceRoot + '/graphql'"
:transport-update-data="updategql"
transport-update-content-type="application/json"
transport-update-data-type="json"
transport-update-type="POST"
This is working ok in terms of calling the backend but there is no event that I am currently handling whereby I can check that the call to the backend was successful or not.
So I was wanted to know whether I should be using my current method along with some other code to check the callback result or if I should rather be using the Gantt events add/edit/remove etc. to process updates from the UI?
I have used some of the concepts from the link below to try to databind the Gantt Vue wrapper to a graphql datasource:
https://demos.telerik.com/kendo-ui/grid/graphql
I have got so close to making this work in that I can query the graphql service and return the correct data just fine, but I don't know how to bind to the result of the graphql. From REST the data might look as follows:
[{Gantt task data}, {Gantt task data}]
but from GQL the data looks like this:
{
"data"
:{
"projecttasks"
:[{Gantt task data}, {Gantt task data}] }}
ie. the datasource needs to be set to "data.projecttasks" - how to I do this?
This is what I have got so far:
<
template
>
<
div
>
<
ganttdatasource
ref
=
"ganttdatasource1"
:transport-read-url
=
"serviceRoot + '/graphql'"
:transport-read-data
=
"fetchgql"
transport-read-content-type
=
"application/json"
transport-read-data-type
=
"json"
transport-read-type
=
"POST"
:transport-parameter-map
=
"parameterMap"
schema-model-id
=
"id"
:schema-model-fields
=
"fields"
.........
>
</
ganttdatasource
>
</
div
>
</
template
>
<
script
>
import { GanttDataSource, GanttDependencyDataSource } from '@progress/kendo-datasource-vue-wrapper';
import { Gantt, GanttColumn, GanttView } from '@progress/kendo-gantt-vue-wrapper'
export default {
name: 'GanttView',
components: {
'gantt': Gantt,
'ganttdatasource': GanttDataSource,
},
methods: {
parameterMap: function(options, operation) {
return JSON.stringify(options);
}
},
computed: {
fetchgql: function() {
return {query: `
query {
projecttasks {
PRT_id
PRT_text
PRT_order
PRT_parent
PRT_end_date
PRT_start_date
PRT_progressperc
}
}
`
}
}
},
data: function() {
return {
serviceRoot: "http://localhost:4000",
fields: {
id: { from: 'PRT_id', type: 'number' },
parentId: { from: 'PRT_parent', type: 'number', defaultValue: null, validation: { required: true } },
start: { from: 'PRT_start_date', type: 'date' },
......................
}
}
}
}
</
script
>
I'm using the Menu widget but I guess this would apply to any of the Vue wrappers.
As per the docs, to access the clicked menu item it appears that $ is needed but I just get errors because $ is undefined. So my question is - do I need to manually include JQuery in order to access the item and/or is there no better way to do this?
onSelect:
function
(e) {
var
currentItemText = $(e.item.firstChild).text().trim();
console.log(currentItemText +
" clicked."
);
}
When using a template as below then the child items do not display:
<
template
>
<
kendo-menu
>
<
kendo-menu-item
text
=
"Baseball"
>
<
kendo-menu-item
text
=
"Top News"
></
kendo-menu-item
>
<
kendo-menu-item
text
=
"Radio Records"
></
kendo-menu-item
>
</
kendo-menu-item
>
<
kendo-menu-item
text
=
"Swimming"
>
<
kendo-menu-item
text
=
"Top News"
></
kendo-menu-item
>
<
kendo-menu-item
text
=
"Radio Records"
></
kendo-menu-item
>
</
kendo-menu-item
>
</
kendo-menu
>
</
template
>
The same problem can be seen in your docs under 'Basic Usage':
https://www.telerik.com/kendo-vue-ui/components/layout/menu/
Using 'ul' instead of 'MenuItem' it seems to work fine
Hi all,
i'm struggling to achive a simple task: double click on a row to call a method. How can i do that?
what i'm expecting is simple:
<
Grid
:data-items
=
"gridResult"
:columns
=
"columnsToDisplay"
:resizable
=
"true"
:pageable
=
"pageAble"
:pageSize
=
"pageSize"
@
dblclick
=
"callMyMethodForDoubleClick"
>
</
Grid
>
something like this
Hi everyone,
I have an issue using the KendoEditor with Vue.js. Here is my code :
HTML part :
<div id="vueapp" class="vue-app">
<form id="forme">
<input type='text' class="k-textbox" name='title' id="title" v-model="request.title" />
</form>
<kendo-editor :resizable-content="true"
:resizable-toolbar="true"
:value="request.desc"
style="height:280px"
rows="10"
cols="30">
</kendo-editor>
</div>
Script part for vue:
var vm = new Vue({
el: '#vueapp',
data: function() {
return {
request: {
title: "",
desc: "Write here..."
},
has_deadline: false
}
}, methods: {
test: function(){ alert(this.request.title + this.request.desc)}
}
});
Then, when I change the content of the input "title" (let's say I do "title1") and call the "test" method, an alert comes up with "title1 Write here...".
But when I change the content of the editor (for example, "description1"), the alert comes up with "title1 Write here..." instead of "title1 description1" !
Could someone explain me what I did wrong ? I can not find how to figure out.
Thanks for your help,
Louis
I see this error when I'm going to convert data of treeview's datasource to stringify.
I use kendo vue js like :
JSON.stringify( ....data(
"kendoTreeview"
).dataSource.data() )
Example usage of KendoUI Grid with Vuejs 3 and the composition API
https://stackblitz.com/edit/vwryht
It's a fork of the original sample: https://www.telerik.com/kendo-vue-ui/components/grid/sorting/