Telerik Forums
UI for ASP.NET AJAX Forum
2 answers
234 views
Hi!

In my page i want to check one condition and want to give one rad alert on page load.

on buttons click it works but on page load it does not.

How can i give rad alert on page load?

thanks in advance.
geetha priya
Top achievements
Rank 1
 answered on 11 Nov 2010
2 answers
115 views
Is it possible to show a list of paragraph styles rather than only font.

Or is that not possible in the Lite edition?

Thanks in advance.
Stanimir
Telerik team
 answered on 11 Nov 2010
3 answers
178 views
I'm trying to achieve a drag from a RadTreeNode(basically a task) to a RadSchedulerTimeSlot (hence creating an appointment for that task). Now the problem is that NodeDrop is not firing when I drag the TreeNode to the RadScheduler.

Here's what I have:-

RadTreeView:
<telerik:RadTreeView ID="radTreeView" runat="server" CssClass="treeView" EnableDragAndDrop="True"
    OnClientNodeDropping="rowDropping" OnNodeDrop="radTreeView_NodeDrop" Skin="Windows7">
    <Nodes>
        <telerik:RadTreeNode runat="server" Owner="radTreeView" Text="Test">
            <Nodes>
                <telerik:RadTreeNode runat="server" Owner="" Text="Test2">
                </telerik:RadTreeNode>
                <telerik:RadTreeNode runat="server" Owner="" Text="Test">
                </telerik:RadTreeNode>
            </Nodes>
        </telerik:RadTreeNode>
        <telerik:RadTreeNode runat="server" Owner="radTreeView" Text="Test2">
        </telerik:RadTreeNode>
    </Nodes>
</telerik:RadTreeView>

RadScheduler:
<telerik:RadScheduler ID="radScheduler" runat="server" DayEndTime="19:00:00" FirstDayOfWeek="Monday"
    LastDayOfWeek="Sunday" OverflowBehavior="Expand" SelectedView="WeekView" ShowAllDayRow="False"
    ShowFooter="False" Skin="Windows7" WorkDayEndTime="19:00:00" OnClientAppointmentClick="OnClientAppointmentClick"
    OnClientTimeSlotClick="OnClientTimeSlotClick" CssClass="scheduler" ShowViewTabs="False">
    <AdvancedForm Modal="True" />
    <TimelineView UserSelectable="False" />
    <MonthView UserSelectable="False" />
</telerik:RadScheduler>

rowDropping Javascript:
function rowDropping(sender, eventArgs) {
    // Fired when the user drops a grid row
    var htmlElement = eventArgs.get_htmlElement();
    var scheduler = $find('<%= radScheduler.ClientID %>');
 
    if (isPartOfSchedulerAppointmentArea(htmlElement)) {
        // The row was dropped over the scheduler appointment area
        // Find the exact time slot and save its unique index in the hidden field
        var timeSlot = scheduler._activeModel.getTimeSlotFromDomElement(htmlElement);
 
        // $get("TargetSlotHiddenField").value = timeSlot.get_index();
        $get('<%= TargetSlotHiddenField.ClientID %>').value = timeSlot.get_index();
 
        // The HTML needs to be set in order for the postback to execute normally
        eventArgs.set_htmlElement('<%= TargetSlotHiddenField.ClientID %>');
    }
    else {
        // The node was dropped elsewhere on the document
        eventArgs.set_cancel(true);
    }
}

HiddenTextbox:
<input type="hidden" runat="server" id="TargetSlotHiddenField" />

CodeBehind:
protected void radTreeView_NodeDrop(object sender, RadTreeNodeDragDropEventArgs e)
{
    RadTreeNode treeNode = e.DraggedNodes[0];
 
    string id = treeNode.Value;
    string subject = treeNode.Text;
    string targetSlotIndex = TargetSlotHiddenField.Value;
 
    if (targetSlotIndex != string.Empty)
    {
        HandleSchedulerDrop(id, subject, targetSlotIndex);
        TargetSlotHiddenField.Value = string.Empty;
    }
}
 
private void HandleSchedulerDrop(string id, string subject, string targetSlotIndex)
{
    radScheduler.Rebind();
 
    ISchedulerTimeSlot slot = radScheduler.GetTimeSlotFromIndex(targetSlotIndex);
 
    TimeSpan duration = TimeSpan.FromHours(1);
    if (slot.Duration == TimeSpan.FromDays(1))
    {
        duration = slot.Duration;
    }
 
    ScheduleTask(id, subject, slot.Start, slot.Start.Add(duration));
}


Most of it is stripped from your demos. If you need the rest of the code I'd be happy to supply the whole page and codebehind.

Thanks in advance.
Daryl
Nikolay Tsenkov
Telerik team
 answered on 11 Nov 2010
3 answers
226 views
Hi,

I have an issue where I need to RadGrid_ItemCommand from a seperate public method which in turn will be called by a different control.
Does anyone have any example of how this can be done?
Princy
Top achievements
Rank 2
 answered on 11 Nov 2010
1 answer
136 views
Hi,
     I'm create a HelpDesk project.In this i'm show all the ticket's according to status(Pending/Resolved).In one column im show ticket subject and Ticket Detail.when i'm click on any column for sorting then my gridview not show any data.but again when click on button then that is show the sorted data.It's also happens in paging.

       so please any one tell the way that i'm able to sort the ticket and also paging is work.I'm attached code please find...


using

 

System;

 

using

 

System.Collections;

 

using

 

System.Collections.Generic;

 

using

 

System.Linq;

 

using

 

System.Web;

 

using

 

System.Web.UI;

 

using

 

System.Web.UI.WebControls;

 

using

 

DotNetNuke.Entities.Modules;

 

using

 

DotNetNuke.Entities.Modules.Definitions;

 

using

 

DotNetNuke.Entities.Users;

 

using

 

DotNetNuke.Security.Permissions;

 

using

 

Mandeeps.HelpDesk.Base.Library.Data;

 

using

 

Telerik.Web.UI;

 

namespace

 

Mandeeps.DNN.Modules.HelpDesk

 

{

 

public partial class DnnHelpDesk : PortalModuleBase

 

{

Mandeeps.HelpDesk.Base.Library.

HelpDesk lhd;

 

 

ModuleSecurity ms;

 

 

protected void Page_Load(object sender, EventArgs e)

 

{

ms =

new ModuleSecurity(this.ModuleConfiguration);

 

InitModulePermissions();

 

Mandeeps.DNN.Modules.HelpDesk.Data.

HelpdeskSettingDataContext context = new Modules.HelpDesk.Data.HelpdeskSettingDataContext(DotNetNuke.Common.Utilities.Config.GetConnectionString());

 

 

 

foreach (Mandeeps.DNN.Modules.HelpDesk.Data.HelpdeskSetting h in context.HelpdeskSettings)

 

{

lhd =

new Mandeeps.HelpDesk.Base.Library.HelpDesk(DotNetNuke.Common.Utilities.Config.GetConnectionString());

 

lhd.Pop3 =

new Mandeeps.HelpDesk.Base.Library.Mail.Pop3(h.Pop3LicenseKey, h.Pop3Server, h.Pop3Username, h.Pop3Password);

 

lhd.Smtp =

new Mandeeps.HelpDesk.Base.Library.Mail.Smtp(h.SmtpLicenseKey, h.SmtpServer, h.SmtpUsername, h.SmtpPassword);

 

lhd.Smtp.ServerPort = 2525;

lhd.PortalId = PortalId;

}

 

if(!IsPostBack)

 

Initilize();

}

 

public void Initilize()

 

{

 

List<Ticket> tic=null;

 

 

if(ms.IsOperator)

 

{

rtbSetting.Visible =

false;

 

rtbView.Items[0].Text =

"UnAssigned Tickets";

 

rtbView.Items[0].ToolTip =

"Click here for show UnAssigned Ticket's";

 

rtbView.Items[2].Text =

"My Tickets";

 

rtbView.Items[2].ToolTip =

"Click here for show Self Assigned Ticket's";

 

rtbView.Items[3].Visible =

true;

 

rtbView.Items[4].Visible =

true;

 

rgTicket.Columns[3].Visible =

true;

 

tic = lhd.GetAllOpenTickets(

null, UserId);

 

 

if (tic.Count == 0)

 

{

tic = lhd.GetAllUnassignedTickets();

((rtbView.Items[0])

as RadToolBarButton).Checked = true;

 

}

 

else

 

((rtbView.Items[2])

as RadToolBarButton).Checked = true;

 

}

 

else

 

tic = lhd.GetAllOpenTickets(UserId);

 

rgTicket.DataSource = tic;

rgTicket.DataBind();

}

 

protected void rtbSetting_ButtonClick(object sender, RadToolBarEventArgs e)

 

{

 

if (e.Item.Text == "Add New Ticket")

 

Response.Redirect(EditUrl(

"AddNewTicket"));

 

}

 

protected void rtbView_ButtonClick(object sender, RadToolBarEventArgs e)

 

{

 

List<Ticket> ticket = new List<Ticket>();

 

 

switch (e.Item.Text)

 

{

 

case "Pending":

 

{

rgTicket.Columns[6].Visible =

false;

 

ticket = lhd.GetAllOpenTickets(UserId);

 

break;

 

}

 

case "Resolved":

 

{

rgTicket.Columns[6].Visible =

true;

 

ticket = lhd.GetAllCloseTickets(UserId);

 

break;

 

}

 

case "UnAssigned Tickets":

 

{

rgTicket.Columns[4].Visible =

false;

 

rgTicket.Columns[6].Visible =

false;

 

ticket = lhd.GetAllUnassignedTickets();

 

break;

 

}

 

case "My Tickets":

 

{

rgTicket.Columns[4].Visible =

false;

 

rgTicket.Columns[6].Visible =

false;

 

ticket = lhd.GetAllOpenTickets(

null,UserId);

 

 

break;

 

}

 

case "All Tickets":

 

{

rgTicket.Columns[4].Visible =

true;

 

rgTicket.Columns[6].Visible =

false;

 

ticket = lhd.GetAllOpenTickets();

 

break;

 

}

}

 

rgTicket.DataSource = ticket;

rgTicket.DataBind();

}

 

protected void rgTicket_ItemDataBound(object sender, GridItemEventArgs e)

 

{

 

if (e.Item is GridDataItem)

 

{

 

GridDataItem item = e.Item as GridDataItem;

 

 

TableCell title = item["Title"];

 

 

if (title != null)

 

{

 

Control ctl = title.FindControl("hlTicketDetails");

 

 

if (ctl != null)

 

{

 

HyperLink ticketDetails = ctl as HyperLink;

 

 

Label ticketId = title.FindControl("lTicketDetails") as Label;

 

Mandeeps.HelpDesk.Base.Library.Data.

Ticket t = item.DataItem as Mandeeps.HelpDesk.Base.Library.Data.Ticket;

 

ticketId.Text =

"#" + t.TicketID.ToString();

 

 

if (t.Title.Length > 25)

 

ticketDetails.Text = t.Title.Substring(0, 25)+

"...";

 

 

else

 

ticketDetails.Text = t.Title;

ticketDetails.NavigateUrl = EditUrl(

"", "", "ViewTicketDetail", "TicketID=" + t.TicketID.ToString());

 

}

}

}

}

 

public string ConcatColumns(object objText)

 

{

 

if (objText.ToString().Length > 50)

 

 

return objText.ToString().Substring(0, 50)+ "...";

 

 

 

else

 

 

return objText.ToString();

 

}

 

public string CategoryName(object objText)

 

{

 

if (int.Parse(objText.ToString()) == 0)

 

 

return "";

 

 

else

 

 

return lhd.GetCategoryName(int.Parse(objText.ToString()));

 

}

 

public string AssignedToName(object objText)

 

{

 

if (int.Parse(objText.ToString()) == -1)

 

 

return "";

 

 

else

 

{

 

UserController uC = new UserController();

 

 

UserInfo user = uC.GetUser(PortalId, int.Parse(objText.ToString()));

 

 

return user.DisplayName;

 

}

}

 

}

 

protected void rgTicket_SortCommand(object sender, GridSortCommandEventArgs e)

 

{

}

}

}















<%

@ Control Language="C#" AutoEventWireup="true" CodeBehind="DnnHelpDesk.ascx.cs" Inherits="Mandeeps.DNN.Modules.HelpDesk.DnnHelpDesk" %>

 

<%

@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>

 

 

<

 

telerik:RadToolBar ID="rtbSetting" runat="server" onbuttonclick="rtbSetting_ButtonClick" style="float:left">

 

 

<Items>

 

 

<telerik:RadToolBarButton runat="server" Text="Add New Ticket" ToolTip="Click here for Add New Ticket"/>

 

 

</Items>

 

</

 

telerik:RadToolBar>

 

<

 

telerik:RadToolBar ID="rtbView" runat="server" onbuttonclick="rtbView_ButtonClick" EnableShadows="True" style="float:right">

 

 

<Items>

 

 

<telerik:RadToolBarButton runat="server" Text="Pending" ToolTip="Click here for show Pending Ticket's" CheckOnClick="true" AllowSelfUnCheck="true" />

 

 

<telerik:RadToolBarButton runat="server" Text="Button 2" IsSeparator="True"/>

 

 

<telerik:RadToolBarButton runat="server" Text="Resolved" ToolTip="Click here for show Resolved Ticket's" CheckOnClick="true" AllowSelfUnCheck="true"/>

 

 

<telerik:RadToolBarButton runat="server" Text="Button 3" IsSeparator="True" Visible="false"/>

 

 

<telerik:RadToolBarButton runat="server" Text="All Tickets" ToolTip="Click here for show All Ticket's" Visible="false" CheckOnClick="true" AllowSelfUnCheck="true"/>

 

 

</Items>

 

</

 

telerik:RadToolBar><br style="clear:both;"/>

 

 

<

 

telerik:RadGrid ID="rgTicket" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" GridLines="None"

 

 

PageSize="4" onitemdatabound="rgTicket_ItemDataBound" Skin="Outlook" onsortcommand="rgTicket_SortCommand">

 

 

 

<MasterTableView>

 

 

<CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings>

 

 

<RowIndicatorColumn>

 

 

<HeaderStyle Width="20px"/>

 

 

</RowIndicatorColumn>

 

 

<ExpandCollapseColumn>

 

 

<HeaderStyle Width="20px"/>

 

 

</ExpandCollapseColumn>

 

 

<Columns>

 

 

<telerik:GridBoundColumn DataField="TicketID" HeaderText="TicketID" SortExpression="TicketID" UniqueName="TicketID" Visible="False"/>

 

 

 

<telerik:GridTemplateColumn HeaderText="Ticket Detail" UniqueName="Title">

 

 

<ItemTemplate>

 

 

<asp:HyperLink ID="hlTicketDetails" runat="server" Text="Subject Appears Here" Font-Size="Small" ForeColor="#0000ff"/>

 

 

<asp:Label ID="lTicketDetails" runat="server" Font-Size="Smaller" style="float:right"/><br/>

 

 

<div>

 

 

<asp:Label id="Label1" runat="server" Text='<%#ConcatColumns(DataBinder.Eval(Container.DataItem,"Description")) %>' ForeColor="#6699ff"/></div>

 

 

</ItemTemplate>

 

 

</telerik:GridTemplateColumn>

 

 

<telerik:GridTemplateColumn HeaderText="Category" UniqueName="Title">

 

 

<ItemTemplate>

 

 

<asp:Label id="lcategory" runat="server" Text='<%#CategoryName(DataBinder.Eval(Container.DataItem,"CategoryId")) %>'/>

 

 

</ItemTemplate>

 

 

</telerik:GridTemplateColumn>

 

 

<telerik:GridBoundColumn DataField="Email" HeaderText="From" SortExpression="Email" UniqueName="Email" Visible="false"/>

 

 

<telerik:GridTemplateColumn HeaderText="Assigned To" UniqueName="Title" Visible="false">

 

 

<ItemTemplate>

 

 

<asp:Label id="lAssignedTo" runat="server" Text='<%#AssignedToName(DataBinder.Eval(Container.DataItem,"AssignedTo")) %>'/>

 

 

</ItemTemplate>

 

 

</telerik:GridTemplateColumn>

 

 

<telerik:GridBoundColumn DataField="OpenDateTime" HeaderText="Created On" SortExpression="OpenDateTime" UniqueName="OpenDateTime"/>

 

 

<telerik:GridBoundColumn DataField="CloseDateTime" HeaderText="Date Close" SortExpression="CloseDateTime" UniqueName="CloseDateTime" Visible="false"/>

 

 

</Columns>

 

 

</MasterTableView>

 

</

 

telerik:RadGrid>

 

Radoslav
Telerik team
 answered on 11 Nov 2010
5 answers
383 views
I need to put the file upload folder outside my website folder, so I implement RadFileExplorer with physical and shared folder's paths according to the following post. The RadFileExplorer control is loaded, but all function buttons (New folder, delete and upload...) are not clickable (greyed out). Is it related to folder permissions? Can you help? Thanks.

http://www.telerik.com/support/kb/aspnet-ajax/fileexplorer/physical-paths-and-different-content-types.aspx
Fiko
Telerik team
 answered on 11 Nov 2010
8 answers
326 views
Stream theStream = FileUpload1.PostedFile.InputStream;
               int size = Convert.ToInt32(FileUpload1.PostedFile.InputStream.Length + 1);
               Byte[] rtf = new Byte[FileUpload1.PostedFile.InputStream.Length+1];
               theStream.Read(rtf, 0, size);
               string s = System.Text.Encoding.Default.GetString(rtf);
               RadEditor1.LoadRtfContent(s);

when i try to import a rtf file and load it i get the following error,,
a text cannot appear on root level, must be child of a group: ''

pls help me out ..

Warm Regards
Gokoulane Ravi
TTCPL
Dobromir
Telerik team
 answered on 11 Nov 2010
1 answer
47 views
Hello
I have a screen with a RadListBox where users are able to search through the list with a button and a search button below. The user enters the search value and fact find.
I am able to find the right items with my search button and using the following method "FindItem" of control.

My problem is that if I have a scrollbar because I have a lot of information in the list find the item is in the bottom of the list, the control does not set the list to see who is selected by programming .

If it is not clear, I have an example I can send you.
Genady Sergeev
Telerik team
 answered on 11 Nov 2010
1 answer
136 views
Hi, I've been working in an application with Q2 of Telerik Ajax for some time without problems, but now I've installed new version of Telerik ASP.Net Ajax controls (Q3) and now when I run my application I received the next error after clicking in Login link:

The style property 'CssClass' cannot be used while RenderOuterTable is disabled on the Login control with ID 'LoginUser'.

This has been the only change to my application.
Any idea?
Regards
Jose

Update: If I remove my RadFormDecorator from my Master Page all works fine again:

        <telerik:RadFormDecorator ID="QuasarRadFormDecorator" runat="server" DecoratedControls="All" />
Lini
Telerik team
 answered on 11 Nov 2010
4 answers
246 views
Hello all.

I'm using nested grids to add, edit and delete data.  It was working fine, and I've AJAX'd it up.  Then the requirements changed and a RadioButtonList (StudyPeriodID) was required in the FormTemplate for the top level of data.  This has thrown up a problem for adding a new record, as it errors out with:

'StudyPeriodID' has a SelectedValue which is invalid because it does not exist in the list of items.

As the edit and add new use the same FormTemplate, the code to display an existing record (with a StudyPeriodID value) doesn't work for showing a blank form to add a new record.

Code below:

<telerik:RadGrid ID="grdProfileIntakes" AutoGenerateColumns="False" ItemStyle-VerticalAlign="Top"
      OnNeedDataSource="grdProfileIntakes_NeedDataSource" ShowStatusBar="true"
    GridLines="None" OnItemDataBound="grdProfileIntakes_ItemDataBound"
           OnDetailTableDataBind="grdProfileIntakes_DetailDataBind" runat="server" >
<MasterTableView
    DataKeyNames="IntakeId" CommandItemDisplay="TopAndBottom"
    NoMasterRecordsText="No Intakes to display."
    Height="100%" Width="100%" ItemStyle-VerticalAlign="Top">
    <RowIndicatorColumn Visible="True" />
 
    <CommandItemSettings AddNewRecordText="Add new intake" />
    <ExpandCollapseColumn Visible="True" />
    <Columns>
        <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="btnEditIntake" />
        <telerik:GridBoundColumn DataField="IntakeTitle"
            HeaderText="Title" SortExpression="IntakeTitle"
            UniqueName="IntakeTitle" />
        <telerik:GridBoundColumn DataField="StudyPeriodLabel"
            HeaderText="Study Period" SortExpression="StudyPeriodLabel"
            UniqueName="StudyPeriodLabel" />
    </Columns>
     
    <EditFormSettings EditFormType="Template">
        <EditColumn UniqueName="IntakeEditColumn"></EditColumn>
        <FormTemplate>
            <table border="0" cellpadding="2" width="500px">
                    <tr>
                        <td width="50px"><asp:Label ID="Label5" AssociatedControlID="IntakeTitle" runat="server">Title:</asp:Label></td>
                        <td width="200px">
                            <asp:TextBox ID="IntakeTitle" Width="150px"
                              Text='<%# Bind("IntakeTitle") %>' TextMode="SingleLine" runat="server"
                                MaxLength="20" />
                        </td>
                    </tr>
                    <tr>
                        <td width="50"><asp:Label ID="Label1" AssociatedControlID="StudyPeriodID" runat="server">Study Period:</asp:Label></td>
                        <td width="200px">
                            <asp:RadioButtonList ID="StudyPeriodID" DataSourceID="odsStudyPeriods" SelectedValue='<%# GetRadioValue(Eval("StudyPeriodId")) %>' DataTextField="StudyPeriodLabel" DataValueField="StudyPeriodID" AppendDataBoundItems="true" runat="server" />
                        </td>
                    </tr>
           
</table>
                                     
            <asp:Button ID="btnIntakeUpdate" CommandName="Update" CommandArgument="Intake"
                Text="Save" runat="server" CausesValidation="true"/>
            <asp:Button ID="btnIntakeCancel" CommandName="Cancel"
                Text="Cancel" runat="server" CausesValidation="false"/>
            <asp:Button ID="btnIntakeDelete" CommandName="Delete" CommandArgument="Intake" OnClientClick="if(!confirm('Delete this Intake from the profile?')) return false;"
                Text="Delete" runat="server" CausesValidation="false"/>
        </FormTemplate>
    </EditFormSettings>
 
</MasterTableView>
</telerik:RadGrid>

I have removed the sub-level grid, and a bunch of irrelevant columns and suchlike for brevity.

The problem is with the StudyPeriodID RadioButtonList.  How do I get it to ignore SelectedValue when creating a new record, but use it when editing an existing record?  I have tried:

1. Using ItemDataBound to catch the event and avoid the binding.  Unfortunately I couldn't see how to detect the Add New event.  All the documentation I found was for editing.  Hence this code:
protected void grdProfileIntakes_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if ((e.Item is GridEditFormItem) && (!e.Item.IsInEditMode))
            {
                GridEditFormItem editFormItem = (GridEditFormItem)e.Item;
                RadioButtonList studyPeriod = (RadioButtonList)editFormItem.FindControl("StudyPeriodID");
                if (studyPeriod != null)
                {
                    studyPeriod.ClearSelection();
                }
            }
        }
doesn't work because e.Item is not a GridEditFormItem, and IsInEditMode is false.

2. I tried using a custom function on the binding.  So in the ASPX file you see
<asp:RadioButtonList ID="StudyPeriodID" DataSourceID="odsStudyPeriods" SelectedValue='<%# GetRadioValue(Eval("StudyPeriodId")) %>' DataTextField="StudyPeriodLabel" DataValueField="StudyPeriodID" AppendDataBoundItems="true" runat="server" />
where GetRadioValue is
protected int GetRadioValue(object val)
        {
            if (val.ToString() == string.Empty)
            {
                return -1;
            }
            else
            {
                return CommonFunctions.IntOr0(val.ToString());
            }
        }
but this isn't working either.

Am I going about this the wrong way?

Thanks in advance

Kit
Kit
Top achievements
Rank 1
 answered on 11 Nov 2010
Narrow your results
Selected tags
Tags
+? more
Top users last month
Jake
Top achievements
Rank 1
RBarnes
Top achievements
Rank 1
Iron
Iron
Rami
Top achievements
Rank 1
Iron
Veteran
Nathan
Top achievements
Rank 1
Kumeri
Top achievements
Rank 1
Iron
Veteran
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Jake
Top achievements
Rank 1
RBarnes
Top achievements
Rank 1
Iron
Iron
Rami
Top achievements
Rank 1
Iron
Veteran
Nathan
Top achievements
Rank 1
Kumeri
Top achievements
Rank 1
Iron
Veteran
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?