Telerik Forums
Kendo UI for jQuery Forum
0 answers
266 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
162 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
145 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
84 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
67 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
84 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
78 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
28 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
4 answers
538 views
i have a custom editor for a column in a grid which is a multi select dropdownlist. unfortunately i am unable to access the drop down list data during the transport update. how do i structure the controls to provide access during update?

the custom editor code looks much like this.
function CustomDropDownEditor(container, options) {
$('<input " />')
.appendTo(container)
.kendoDropDownList({
autoBind: false,
dataSource: {
type: "json",
transport: {
read: "/controller path/GetSomeData"
}
}
});
}

When i click update on the row, it appears that the last selected value is bound to the input control. since i want to iterate over the entire drop down list during the transport update via a function to get the selected items to pass to the controller, i need to access the dropdownlist - which is most likely out of scope.

i have tried creating the dropdownlist outside of the custom editor function with global scope but when i reference it as
var ddl = $("#AlertSourcesDropDown").data("kendoDropDownList");
 
ddl is null - which is not what i expected.

i have tried naming <input> for finding but as expected it comes up undefined.

of course a more elegant approach would be to declare the model item as a collection type but i am sure that is not possible and it would not know which items to select even if collections were possible.

so, how do i structure the controls for access during update? i am sure that this is a general programming / jquery problem, but the latter is a weak spot for me.

PS
through additional testing i found out that i was successfully creating a dropdownlist with proper scope such that DDL is accessible in other parts of the javascript. so having created this, how can i make it the dropdownlist used in the custom editor defined above? the goal is to select the checked check boxes during update/save. the various syntax experiments with appendTo have failed. creating a new dropdownlist within the function limits scope and loses data.
var DDL = $('#MyDropDownList').kendoDropDownList({
        dataTextField: "Name",
        template: $("#CheckboxTemplate").html(),
        dataValueField: "Name",
        dataSource: { type: "json",
            transport: { read: '/path/GetData' }
        }
    });

PPS
after further work, i have confirmed that scope is the issue - so i need to append an existing dropdownlist in the custom editor - not create a new one. another approach is to process a change / check event - ie when a selection has been made - to store the state of the selections in a variable. or figure out how to use a list/collection/array as the binding target for the column's data. my first option should be trivial but it is not (for me). of course the first option assumes that i can get the state of each of the associated check boxes.
tony
Top achievements
Rank 1
 answered on 25 Oct 2012
1 answer
101 views
I'm working on a application that generates mobile view dynamically in js.  I have been using V2012.1.503 for most of the development. I updated to V2012.2.803 today and I now get the following error when I try to load the first page:

Error: No root view found. Make sure that the kendo mobile application element directly contains one or more elements with data-role='view' attribute set.

I've tried setting the "initial" property on the application creation, but I still get the same error.  I'm creating kendo.mobile.Application after the page has loaded.  Was there a reason for the change in behavior that is now causing this?

I just tried with the latest commercial build (V2012.2.710) and get the following error with the same application code:

TypeError: 'undefined' is not an object (evaluating 'd.getAttribute')

Sean

Bill
Top achievements
Rank 1
 answered on 25 Oct 2012
Narrow your results
Selected tags
Tags
Grid
General Discussions
Charts
Data Source
Scheduler
DropDownList
TreeView
MVVM
Editor
Window
Date/Time Pickers
Spreadsheet
Upload
ListView (Mobile)
ComboBox
TabStrip
MultiSelect
AutoComplete
ListView
Menu
Templates
Gantt
Validation
TreeList
Diagram
NumericTextBox
Splitter
PanelBar
Application
Map
Drag and Drop
ToolTip
Calendar
PivotGrid
ScrollView (Mobile)
Toolbar
TabStrip (Mobile)
Slider
Button (Mobile)
SPA
Filter
Drawing API
Drawer (Mobile)
Globalization
Gauges
Sortable
ModalView
Hierarchical Data Source
Button
FileManager
MaskedTextBox
View
Form
NavBar
Notification
Switch (Mobile)
SplitView
ListBox
DropDownTree
PDFViewer
Sparkline
ActionSheet
TileLayout
PopOver (Mobile)
TreeMap
ButtonGroup
ColorPicker
Pager
Styling
MultiColumnComboBox
Chat
DateRangePicker
Dialog
Checkbox
Timeline
Drawer
DateInput
ProgressBar
MediaPlayer
ImageEditor
OrgChart
TextBox
Effects
Accessibility
ScrollView
PivotGridV2
BulletChart
Licensing
QRCode
ResponsivePanel
Switch
Wizard
CheckBoxGroup
TextArea
Barcode
Breadcrumb
Collapsible
Localization
MultiViewCalendar
Touch
RadioButton
Stepper
Card
ExpansionPanel
Rating
RadioGroup
Badge
Captcha
Heatmap
AppBar
Loader
Security
Popover
DockManager
FloatingActionButton
TaskBoard
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
+? 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?