I have a datasource which I display in a listview and am using a template. I want to be able to shorten the text of one of the datasource fields on page load and am struggling with how to do this. Can any one point me in the right direction? Below is what I have so far.
<
div
data-role
=
"view"
data-title
=
"Control Panel - Mobile"
id
=
"listmessages"
data-init
=
"listMessagesInit"
>
<
h2
>Customer Messages</
h2
>
<
p
><?
php
echo $unread_messages . ' - unread messages'; ?></
p
> <
a
data-align
=
"right"
data-role
=
"button"
id
=
"markasread"
>Mark as read</
a
><
a
data-align
=
"right"
data-role
=
"button"
id
=
"delete"
>Delete</
a
>
<
ul
id
=
"message_list"
></
ul
>
</
div
>
<
script
id
=
"message_list_template"
type
=
"text/x-kendo-template"
>
<
li
class
=
"isnew_#= isnew #"
id
=
"#= id #"
><
a
href
=
"/messages/view/#= id #"
>
<
div
style
=
"float:left; width:150px; height: 50px"
>#= customer_name #<
br
/>#= created #</
div
>
<
div
style
=
"height: 50px"
id
=
"message_#= id #"
data-bind
=
"value:short_text(message_#= id #, #= message #)"
>#= message #</
div
>
</
a
></
li
>
</
script
>
<
script
>
function listMessagesInit(){
function short_text(id, message){
if (message.length > 100){
var shortText = jQuery.trim(message).substring(0, 100).split(" ").slice(0, -1).join(" ") + "...";
} else {
var shortText = message;
}
$(id).text(shortText);
}
function listMessagesInit(){
var messageDataSource = new kendo.data.DataSource({
transport: {
read: "/messages/data",
dataType: "json",
update:function(id, isnew) {
url: "/messages/markasread/" + id + "/" + isnew ; //how should these vars be passed? like this
type: "POST"
},
destroy: {
url: function(id, isnew) {
return "/messages/delete/" + id ; //or like this?
},
// url: "/messages/delete/210643",
type: "DELETE"
},
parameterMap: function(options, operation) { //not sure what this does or if I even need it
if (operation !== "read" && options.models) {
return {models: kendo.stringify(options.models)};
}
}
},
error: function(e) {
alert(e.responseText);
},
schema: {
model: {
id: "id",
fields: {
created: { type: "string" },
message: { type: "string" },
customer_name: { type: "string" },
isnew: { type: "string" }
}
}
},
});
$("#message_list").kendoMobileListView({
dataSource: messageDataSource,
//pullToRefresh: true,
//appendOnRefresh: true,
style: "inset",
template: $("#message_list_template").text()
});
}