Telerik Forums
Kendo UI for jQuery Forum
1 answer
122 views
Hi guys,

think this example (http://docs.kendoui.com/api/framework/kendo) is wrong:

Instead of
kendo.format("MVVM - {1}", 12, 24); //12 - 24 
should there be
kendo.format("{0} - {1}", 12, 24); //12 - 24
Not very important but maybe a little bit confusing ....

Cu

Georg
Petur Subev
Telerik team
 answered on 26 Oct 2012
3 answers
419 views

Hello friends, I'm accessing an ASP.NET WebServices that return JSON. I can see the data correctly from the server to in FireBUG: (See Below)
 I am unable to fill my grid with my URL data returned.. What is my mistake?

var dataSource = new kendo.data.DataSource({
        transport: {
            read: {
                url: "WebService.asmx/getAllCustomerName",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataType: "json"
            }
        },
        schema: {
            data: function (data) {
                alert(data.d);   /*Data Return Successfully*/
                return data.d;
            }
        },
        error: function (e) {
            alert("Error");
        },
        change: function (e) {
            alert("Change");
        },
        requestStart: function (e) {
            alert("Request Start");
        }
    });


    $("#try").kendoGrid({
        dataSource: dataSource, //No data...
        pageable: true,
        sortable: true,
        height: 450,
        scrollable: { virtual: true },
        selectable: true,
        dataBound: function (e) {
            alert("DataBound");
        },
        columns: [
                    { field: "CustomerID", title: "CustomerID" },
                    { field: "FirstName", title: "FirstName" },
                    { field: "LastName", title: "LastName" },
                    { field: "BalancePoint", title: "BalancePoint" }
                ]
    });


My URL return data of json type:--

{"d":"[{\"BalancePoint\":\"2017.000\",\"CustomerID\":\"000\",\"FirstName\":\"AA\",\"LastName\":\"ZX\"},
{\"BalancePoint\":\"224.000\",\"CustomerID\":\"001\",\"FirstName\":\"AB\",\"LastName\":\"ZY\"},
{\"BalancePoint\":\"1094.000\",\"CustomerID\":\"002\",\"FirstName\":\"AC\",\"LastName\":\"ZZ\"}
]"}
Sky
Top achievements
Rank 1
 answered on 26 Oct 2012
0 answers
290 views
Hi currently I am trying to insert a global javascript object that I have into a template for a column in a grid using a datasource variable as the key.

For example: 

title: columnOfGrid,
template: '#= field1 #, #= field2 #' + jsObject[#= field3 #]

Lets say that field3 = "text"

jsObject = {
"text" : "hello"
};

Why doesn't this work? Is there any way that I can insert the field3 value into the jsObject key selector?

Thanks in advance.
Brian
Top achievements
Rank 1
 asked on 26 Oct 2012
1 answer
196 views
I am working with the following grid and running into an issue with the DetailTemplate:

<%: Html.Kendo().Grid<Thread.Data.Models.Model>()
        .Name("Grid")
        .Columns(columns =>
        {
           columns.Command(command => { command.Edit(); command.Destroy(); }).Width(190).HtmlAttributes(new { style = "text-align:center;" });
           columns.Bound(m => m.ModelID).Hidden();
           columns.Bound(m => m.ModelName).Width(140);
           columns.Bound(m => m.Company).Width(160).ClientTemplate("#= (typeof Company === 'undefined') ? ' ' : Company.CompanyName #").EditorTemplateName("CompanyDropDownList");
            columns.Bound(m => m.DocumentCount).Width(90).ClientTemplate("#= (DocumentCount === null) ? '0' : DocumentCount #");
            columns.Bound(m => m.AlertCount).Width(90).ClientTemplate("#= (AlertCount === null) ? '0' : AlertCount #");
            columns.Bound(m => m.ArticleCount).Width(90).ClientTemplate("#= (ArticleCount === null) ? '0' : ArticleCount #");
           })
        .ClientDetailTemplateId("jobDetailTemplate")
        .ToolBar(toolBar =>
        {
            toolBar.Create();
        })
        .Editable(editable => editable.Mode(Kendo.Mvc.UI.GridEditMode.InLine))
        .HtmlAttributes(new { style = "height: 500px" })
        .Pageable()
        .Sortable()
        .Scrollable()
        .Filterable()
        .Events(events => events.DataBound("dataBound"))
        .DataSource(dataSource => dataSource
            .Ajax()
            .ServerOperation(false)
            .PageSize(2)
            .Events(events => events.Error("error_handler"))
            .Model(model =>
            {
                model.Id(j => j.ModelID);
                model.Field(j => j.ModelID).Editable(false);
                model.Field(j => j.AlertCount).Editable(false);
                model.Field(j => j.ArticleCount).Editable(false);
                model.Field(j => j.DocumentCount).Editable(false);
            })
            .Read(read => read.Action("Model_Read", "Models"))
            .Update(update => update.Action("Model_Save", "Models"))
            .Create(create => create.Action("Model_Save", "Models"))
            .Destroy(destroy => destroy.Action("Model_Destroy", "Models"))
        )
    %>

From there I'm trying to create a DetailTemplate that contains 3 tabs, and in one of the tabs another grid.  So far so good, it loads rows and works fine.  But I want to be able to create/edit/delete the rows in the grid.  When I remove the comments from toolbar, editable, columns.Command in the code below I get this error on the line creating the grid.

 The model item passed into the dictionary is of type 'System.Int32', but this dictionary requires a model item of type 'System.String'.

items.Add().Text("Documents").Content(obj => Html.Kendo().Grid<Thread.Data.Models.Article>()

Is this possible to achieve, or am I missing an obvious error?  I saw it in a Telerik ASP.NET demo and wanted to try it here.

   
<script id="jobDetailTemplate" type="text/kendo-tmpl">
       <%: Html.Kendo().TabStrip()
            .Name("TabStrip_#=ModelID#")
            .SelectedIndex(0)
            .Items(items =>
            {
                items.Add().Text("Articles").Content(
                    "<div class='employee-details'>" +
                        "<ul>" +
                            "<li><label>Country:</label>test 1</li>" +
                            "<li><label>City:</label>test 2</li>" +
                            "<li><label>Address:</label>test 3</li>" +
                            "<li><label>Home Phone:</label>test 4</li>" +
                        "</ul>" +
                    "</div>"
                );  
                items.Add().Text("Alerts").Content(
                    "<div class='employee-details'>" +
                        "<ul>" +
                            "<li><label>Country:</label>another test</li>" +
                            "<li><label>City:</label>1</li>" +
                            "<li><label>Address:</label>2</li>" +
                            "<li><label>Home Phone:</label>2</li>" +
                        "</ul>" +
                    "</div>"
                );
                items.Add().Text("Documents").Content(obj => Html.Kendo().Grid<Thread.Data.Models.Article>()
                    .Name("Articles_#ModelID#")
                    //.Toolbar(toolbar => toolbar.Create())
                    //.Editable(editable => editable.Mode(Kendo.Mvc.UI.GridEditMode.InLine))
                    .Columns(columns =>
                    {
                        //columns.Command(command => { command.Edit(); command.Destroy(); }).Width(190).HtmlAttributes(new { style = "text-align:center;" });
                        columns.Bound(a => a.ArticleID).Width(101);
                        columns.Bound(a => a.ArticleName).Width(140);
                        columns.Bound(a => a.CompanyID).Width(200);
                    })
                    .DataSource(dataSource => dataSource
                        .Ajax()
                        .Read(read => read.Action("ModelArticles_Read", "Models", new { modelID = "#=ModelID#" }))
                        .Update(update => update.Action("Article_Save", "Models"))
                        .Create(create => create.Action("Article_Save", "Models"))
                        .Destroy(destroy => destroy.Action("Article_Destroy", "Models"))
                    )
                    .Pageable()
                    .Sortable()
                    .ToClientTemplate()
                );           
            })
            .ToClientTemplate()
            %>
    </script>

Thanks,
Matt
Matt
Top achievements
Rank 1
 answered on 26 Oct 2012
0 answers
177 views
Would it be possible to use something like this for excel exporting?

http://www.kunalbabre.com/projects/table2CSV.php

Im thinking you could change the paging to show all rows then export it then change the paging back to what it was
Sean
Top achievements
Rank 1
 asked on 25 Oct 2012
0 answers
115 views
Hi guys! I'm new here with kendo.  I've already post a similar problem with radcharts, and because i didn't get a solution there I'll try with kendo.

My question is...how can I draw the chart only with the json string ? I have a json response that i get from a webservice, that's not the problem. I only want to draw the BAR CHART with the values ( i don't know how many results will be ).

For example: if a group (G2) got 2 records on 17/08/2012, 0 on 18/08/2012 and 4 the 19/08/2012  I would like to show ONLY THOSE BARS.

The same will be for every GROUP. 


here is my json response (my code is in spanish and for language purposes the translation is: CUANTOS - QUANTITY ; Grupo - GROUP ; FechaCorta - ShortDateString )
[
  {
    "CUANTOS": 2,
    "Grupo": "G3",
    "FechaCorta": "17/08/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G2",
    "FechaCorta": "22/08/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G3",
    "FechaCorta": "22/08/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G1",
    "FechaCorta": "27/08/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G8",
    "FechaCorta": "28/08/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G4",
    "FechaCorta": "29/08/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G8",
    "FechaCorta": "29/08/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G7",
    "FechaCorta": "30/08/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G9",
    "FechaCorta": "31/08/2012 "
  },
  {
    "CUANTOS": 3,
    "Grupo": "G6",
    "FechaCorta": "01/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G1",
    "FechaCorta": "03/09/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G7",
    "FechaCorta": "03/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G5",
    "FechaCorta": "04/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G7",
    "FechaCorta": "04/09/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G9",
    "FechaCorta": "04/09/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G5",
    "FechaCorta": "05/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G7",
    "FechaCorta": "05/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G8",
    "FechaCorta": "05/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G6",
    "FechaCorta": "06/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G5",
    "FechaCorta": "07/09/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G6",
    "FechaCorta": "07/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G7",
    "FechaCorta": "07/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G9",
    "FechaCorta": "07/09/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G7",
    "FechaCorta": "10/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G4",
    "FechaCorta": "11/09/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G5",
    "FechaCorta": "11/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G7",
    "FechaCorta": "11/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G6",
    "FechaCorta": "12/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G8",
    "FechaCorta": "12/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G7",
    "FechaCorta": "13/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G9",
    "FechaCorta": "13/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G9",
    "FechaCorta": "14/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G1",
    "FechaCorta": "15/09/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G7",
    "FechaCorta": "18/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G5",
    "FechaCorta": "19/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G6",
    "FechaCorta": "19/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G7",
    "FechaCorta": "19/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G2",
    "FechaCorta": "20/09/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G4",
    "FechaCorta": "20/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G5",
    "FechaCorta": "20/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G9",
    "FechaCorta": "20/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G6",
    "FechaCorta": "21/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G8",
    "FechaCorta": "21/09/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G4",
    "FechaCorta": "29/09/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G6",
    "FechaCorta": "29/09/2012 "
  },
  {
    "CUANTOS": 3,
    "Grupo": "G3",
    "FechaCorta": "02/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G9",
    "FechaCorta": "02/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G2",
    "FechaCorta": "03/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G3",
    "FechaCorta": "03/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G6",
    "FechaCorta": "03/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G7",
    "FechaCorta": "03/10/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G8",
    "FechaCorta": "04/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G1",
    "FechaCorta": "05/10/2012 "
  },
  {
    "CUANTOS": 6,
    "Grupo": "G4",
    "FechaCorta": "05/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G6",
    "FechaCorta": "05/10/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G9",
    "FechaCorta": "05/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G4",
    "FechaCorta": "09/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G6",
    "FechaCorta": "09/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G8",
    "FechaCorta": "09/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G3",
    "FechaCorta": "10/10/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G4",
    "FechaCorta": "10/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G5",
    "FechaCorta": "10/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G8",
    "FechaCorta": "10/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G9",
    "FechaCorta": "10/10/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G6",
    "FechaCorta": "11/10/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G7",
    "FechaCorta": "11/10/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G8",
    "FechaCorta": "11/10/2012 "
  },
  {
    "CUANTOS": 3,
    "Grupo": "G8",
    "FechaCorta": "12/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G3",
    "FechaCorta": "13/10/2012 "
  },
  {
    "CUANTOS": 6,
    "Grupo": "G8",
    "FechaCorta": "13/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G5",
    "FechaCorta": "14/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G3",
    "FechaCorta": "15/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G4",
    "FechaCorta": "15/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G8",
    "FechaCorta": "15/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G5",
    "FechaCorta": "16/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G7",
    "FechaCorta": "16/10/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G8",
    "FechaCorta": "16/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G9",
    "FechaCorta": "16/10/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G7",
    "FechaCorta": "17/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G8",
    "FechaCorta": "17/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G3",
    "FechaCorta": "18/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G4",
    "FechaCorta": "18/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G6",
    "FechaCorta": "18/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G7",
    "FechaCorta": "18/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G7",
    "FechaCorta": "19/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G9",
    "FechaCorta": "19/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G3",
    "FechaCorta": "20/10/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G4",
    "FechaCorta": "20/10/2012 "
  },
  {
    "CUANTOS": 3,
    "Grupo": "G7",
    "FechaCorta": "20/10/2012 "
  },
  {
    "CUANTOS": 3,
    "Grupo": "G4",
    "FechaCorta": "21/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G4",
    "FechaCorta": "22/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G6",
    "FechaCorta": "22/10/2012 "
  },
  {
    "CUANTOS": 2,
    "Grupo": "G3",
    "FechaCorta": "23/10/2012 "
  },
  {
    "CUANTOS": 4,
    "Grupo": "G4",
    "FechaCorta": "23/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G7",
    "FechaCorta": "23/10/2012 "
  },
  {
    "CUANTOS": 1,
    "Grupo": "G8",
    "FechaCorta": "23/10/2012 "
  }
]
Arturo
Top achievements
Rank 1
 asked on 25 Oct 2012
2 answers
97 views
I have a k-grid with a column that contains an image which fires a k-window when clicked.

This event is removed when using the built-in grouping functionality. I just need to know what event(s) I need to hook in to in order to re-bind the image clicks.
Mike
Top achievements
Rank 1
 answered on 25 Oct 2012
1 answer
121 views
M using kendo ui editor in mvc3. its working fine in FF.But its not working in chrome. Here is my code:-

 @Html.TextAreaFor(model => model.OverView, new { @class = "pagetextSection" })

<script type="text/javascript">
    $(document).ready(function () {
        $('#drpCompany').kendoDropDownList();
        $(".pagetextSection").kendoEditor();
  });
</script>
Mo
Top achievements
Rank 1
 answered on 25 Oct 2012
0 answers
100 views
Is there any way possible to use these controls to databind a list of objects to a dropdown like ASP.NET AJAX controls work?

Also , should Kendo UI be used with Visual Studio 2008? I see very little written on that topic and am having trouble getting anything to work.

 
Andrew
Top achievements
Rank 1
 asked on 25 Oct 2012
0 answers
62 views
See attached...any idea what that would happen?

It's not a calculated property...I can browse to it in the firebug DOM tab and see it's value is 4

sitefinitysteve
Top achievements
Rank 2
Iron
Iron
Veteran
 asked on 25 Oct 2012
Narrow your results
Selected tags
Tags
Grid
General Discussions
Charts
Data Source
Scheduler
DropDownList
TreeView
MVVM
Editor
Window
DatePicker
Spreadsheet
Upload
ListView (Mobile)
ComboBox
TabStrip
MultiSelect
AutoComplete
ListView
Menu
Templates
Gantt
Validation
TreeList
Diagram
NumericTextBox
Splitter
PanelBar
Drag and Drop
Application
Map
ToolTip
Calendar
PivotGrid
ScrollView (Mobile)
Toolbar
TabStrip (Mobile)
Slider
Button (Mobile)
Filter
SPA
Drawing API
Drawer (Mobile)
Globalization
LinearGauge
Sortable
ModalView
Hierarchical Data Source
Button
FileManager
MaskedTextBox
View
Form
NavBar
Notification
Switch (Mobile)
SplitView
DropDownTree
ListBox
PDFViewer
Sparkline
ActionSheet
TileLayout
PopOver (Mobile)
TreeMap
ButtonGroup
ColorPicker
Pager
Styling
Chat
MultiColumnComboBox
Dialog
DateRangePicker
Checkbox
Timeline
Drawer
DateInput
ProgressBar
MediaPlayer
ImageEditor
TextBox
OrgChart
Accessibility
Effects
Licensing
PivotGridV2
ScrollView
Switch
TextArea
BulletChart
QRCode
ResponsivePanel
Wizard
CheckBoxGroup
Localization
Barcode
Breadcrumb
Collapsible
MultiViewCalendar
Touch
RadioButton
Stepper
Card
ExpansionPanel
Rating
RadioGroup
Badge
Captcha
Heatmap
AppBar
Loader
Security
TaskBoard
Popover
DockManager
TimePicker
FloatingActionButton
CircularGauge
ColorGradient
ColorPalette
DropDownButton
TimeDurationPicker
ToggleButton
BottomNavigation
Ripple
SkeletonContainer
Avatar
Circular ProgressBar
FlatColorPicker
SplitButton
Signature
Chip
ChipList
VS Code Extension
AIPrompt
PropertyGrid
Sankey
Chart Wizard
OTP Input
SpeechToTextButton
InlineAIPrompt
StockChart
ContextMenu
DateTimePicker
RadialGauge
ArcGauge
AICodingAssistant
SmartPasteButton
PromptBox
SegmentedControl
LLM Kit
+? more
Top users last month
Simon
Top achievements
Rank 2
Iron
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Marco
Top achievements
Rank 4
Iron
Iron
Iron
Grant
Top achievements
Rank 3
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Simon
Top achievements
Rank 2
Iron
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Marco
Top achievements
Rank 4
Iron
Iron
Iron
Grant
Top achievements
Rank 3
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?