Telerik Forums
UI for ASP.NET AJAX Forum
6 answers
175 views
Hi

I have created a some Rad Sliding Panels.  I have a sliding pane on the left and right and a normal pane in the middle.

The left pane contains a RadPanelBar
The middle pane contains a RadDockLayout control which is being constructed in code.  The zones are being laid out in a ASP.NET Table.
The right pane contains a ASP.NET Table.

The left sliding panel works correctly.
When I expand the right Pane it appears over the RadDockZones in the RadDockLayout control.  But when  I pin the control the Sliding panel is overlayed by the Zones.

It works fine in Firefox, this is only happening in IE

Any ideas ?

Thanks
Michael
Top achievements
Rank 1
 answered on 17 Oct 2008
1 answer
173 views
Hello,

    I am using telerik control of version 2008.2.723.20.& charting dll version is
2.0.3.0.
Here we are creating chartseries items manually in code behind,not through database.& binding these fields to x & y axis but the field which we are binding on x-axis  can be datetime,string,numeric ..facing problem while binding these fields with x-axis.



thanx in advance.
Vladimir Milev
Telerik team
 answered on 17 Oct 2008
1 answer
123 views
I am using 6 Docks on my Web page.
If i allow to resize one of the dock its look is strange.& it disturbs all the formatting setting of the page & other docks are varying proportionally.
And even  pinned & collapsed status does not working i guess
Obi-Wan Kenobi
Top achievements
Rank 1
 answered on 17 Oct 2008
1 answer
55 views
Hi
I want to open a window at the mouse location when a user clicks on a chart.  Is there a way to get teh location of the item clicked on to display the window in the correct position?

thanks
Giuseppe
Telerik team
 answered on 17 Oct 2008
1 answer
231 views

We are using RadGrid (2008.2.1001) and are having quite a bit of difficulty getting a form template to work within the grid.

We tried both the form template and user control method, but apparently the user control method doesn't work with a LinqDataSource.

We also found that even when we used the NeedDataSource event to ensure data was continuously available, the grid would disappear if we attempted to sort for instance (or even pressed a command button within a form template.)

So we ended up adding a LinqDataSource and at least the grid stopped disappearing.

We've checked the forums, we've looked at the code, but we are a bit stumped. It seems that the Insert/Upate commands are not being fired. We click the buttons and the grid form simply closes. Using trace commands or even debugging seems like the commands aren't being fired for some reason.

We tried using a SqlDataSource just in case it may be the LinqDataSource but the results were the same.

It may be worth noting that the grid is in a user control in our case, which is in an Aspx page that utilizes a master page if that makes any difference. The ScriptManager is on the Aspx page.

Here is the applicable section of our ASCX page:

    <div class="form">  
        <div class="innerForm">  
            <p>This optional tab allows you to add a list of rooms or room types and specify the rates and conditions for each.</p> 
            <asp:ValidationSummary ID="ValidationSummary1" ValidationGroup="Config" runat="server" HeaderText="<strong>Form Errors:</strong>" DisplayMode="List" /><asp:Literal ID="FormMessage" runat="server" /> 
                <telerik:RadGrid ID="RadGrid1" Skin="Hay" AllowFilteringByColumn="false" ShowStatusBar="true" 
                AllowPaging="true" AllowSorting="true" runat="server" AutoGenerateColumns="false" 
                 DataSourceID="SqlDataSource1" AllowAutomaticDeletes="true" AllowAutomaticInserts="true"   
                AllowAutomaticUpdates="true" OnItemCommand="RadGrid1_ItemCommand" 
                 OnItemInserted="RadGrid1_ItemInserted" OnItemUpdated="RadGrid1_ItemUpdated"   
                oninsertcommand="RadGrid1_InsertCommand">  
                    <PagerStyle Mode="NextPrevAndNumeric" /> 
                    <MasterTableView CommandItemDisplay="Top" DataSourceID="SqlDataSource1" DataKeyNames="RoomRateId">  
                        <Columns> 
                            <telerik:GridEditCommandColumn ButtonType="LinkButton" EditText="Edit" UniqueName="EditCommandColumn1" /> 
                            <telerik:GridBoundColumn DataField="RoomName" HeaderText="Room Name" 
                                SortExpression="RoomName" UniqueName="RoomName">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="Rate1Persons" HeaderText="Persons" UniqueName="Rate1Persons" 
                                SortExpression="Rate1Persons">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="Rate1Amount" HeaderText="Rate1 Amount" UniqueName="Rate1Amount" 
                                SortExpression="Rate1Amount">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="Rate2Amount" HeaderText="Rate2 Amount" UniqueName="Rate2Amount" 
                                SortExpression="Rate2Amount">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridCheckBoxColumn DataField="Active" HeaderText="Active" UniqueName="Active" SortExpression="Active">  
                            </telerik:GridCheckBoxColumn> 
                            <telerik:GridCheckBoxColumn DataField="SelectedOffer" HeaderText="Selected" UniqueName="SelectedOffer" 
                                SortExpression="SelectedOffer">  
                            </telerik:GridCheckBoxColumn> 
                        <telerik:GridButtonColumn UniqueName="DeleteColumn" Text="Delete" CommandName="Delete" /> 
                        </Columns> 
                        <EditFormSettings EditFormType="Template">  
                            <FormTemplate> 
                                    <p><label class="req" style="width:93px; margin-left:5px;"><asp:Literal ID="litRoomNameLabel" runat="server" Text="Room Name:" EnableViewState="true" /></label><small class="note">Ex: Standard (non-smoking)</small> 
                                    <asp:TextBox ID="txtRoomName" Text='<%# Bind( "RoomName" ) %>' CssClass="input-text" runat="server" MaxLength="50"></asp:TextBox></p>  
                                    <p><label style="width:93px; margin-left:5px;"><asp:Literal ID="Literal1" runat="server" Text="Description:" EnableViewState="true" /></label><small class="note">Ex: Standard (non-smoking)</small> 
                                    <asp:TextBox ID="txtDescription" Text='<%# Bind( "Description" ) %>' CssClass="input-text" runat="server" MaxLength="50"></asp:TextBox></p>  
                                    <p><label style="width:93px; margin-left:5px;" class="req"><asp:Literal ID="Literal2" runat="server" Text="Persons:" EnableViewState="true" /></label>  
                                    <asp:TextBox ID="txtRate1Persons" Text='<%# Bind( "Rate1Persons" ) %>' CssClass="input-text" runat="server" MaxLength="50"></asp:TextBox></p>  
                                    <p><label style="width:93px; margin-left:5px;" class="req"><asp:Literal ID="litRate1AmountLabel" runat="server" Text="Rate1Amount:" EnableViewState="true" /></label><small class="note">Ex: 79.95</small> 
                                    <asp:TextBox ID="txtRate1Amount" Text='<%# Bind( "Rate1Amount" ) %>' CssClass="input-text" runat="server" MaxLength="50"></asp:TextBox></p>  
                                    <p><label style="width:93px; margin-left:5px;"><asp:Literal ID="litRate2AmountLabel" runat="server" Text="Rate2Amount:" EnableViewState="true" /></label><small class="note">Ex: 79.95</small> 
                                    <asp:TextBox ID="txtRate2Amount" Text='<%# Bind( "Rate2Amount" ) %>' CssClass="input-text" runat="server" MaxLength="50"></asp:TextBox></p>  
                                    <p><label style="width:93px; margin-left:5px;"><asp:Literal ID="litReservationURL" runat="server" Text="ReservationURL:" EnableViewState="true" /></label><small class="note">Ex: http://myhotel.com</small> 
                                    <asp:TextBox ID="txtReservationURL" Text='<%# Bind( "ReservationURL" ) %>' CssClass="input-text" runat="server" MaxLength="50"></asp:TextBox></p>  
                                    <p><label style="width:93px; margin-left:5px;">Selected:</label> 
                                    <asp:CheckBox ID="chkIsSelected" Checked='<%# Bind( "SelectedOffer" ) %>' CssClass="input-text" runat="server"></asp:CheckBox></p>  
                                    <p><label style="width:93px; margin-left:5px;">Activate:</label> 
                                    <asp:CheckBox ID="chkIsActive" Checked='<%# Bind( "Active" ) %>' CssClass="input-text" runat="server"></asp:CheckBox></p>  
                                    <div class="buttons">  
                                        <asp:ImageButton id="btnCancel" CssClass="input-button" style="margin-right:10px" ImageUrl="~/images/btn-admin-cancel.gif" text="Cancel" runat="server" causesvalidation="false" commandname="Cancel"></asp:ImageButton> 
                                        <asp:ImageButton id="btnUpdate" CssClass="input-button"   
                                            style="margin-right:10px" ImageUrl="~/images/btn-admin-update.gif"   
                                            text="Update" ValidationGroup="AddEditFormGroup" runat="server"   
                                            CommandName="Update"   
                                            Visible='<%# !(Container is GridEditFormInsertItem) %>'></asp:ImageButton> 
                                        <asp:ImageButton id="btnInsert" CssClass="input-button" style="margin-right:10px" ImageUrl="~/images/btn-admin-submit.gif" text="Insert" ValidationGroup="AddEditFormGroup" runat="server" CommandName="PerformInsert" Visible='<%# (Container is GridEditFormInsertItem) %>'></asp:ImageButton> 
                                    </div> 
                            </FormTemplate> 
                        </EditFormSettings> 
                    </MasterTableView> 
                </telerik:RadGrid> 
        </div> 
    </div> 
      
<asp:LinqDataSource ID="LinqData" runat="server" EnableDelete="true" 
EnableInsert="true" EnableUpdate="true" 
ContextTypeName="contextinfowashere"   
TableName="RoomRates" /> 
 
<asp:SqlDataSource ID="SqlDataSource1" runat="server"   
    ConnectionString="Data Source=connectionstringwashere"   
    DeleteCommand="DELETE FROM [RoomRate] WHERE [RoomRateId] = @RoomRateId"   
    InsertCommand="INSERT INTO [RoomRate] ([RoomName], [Description], [Rate1Persons], [Rate1Amount], [Rate2Persons], [Rate2Amount], [ReservationURL], [SelectedOffer], [Active], [ListingId], [Version]) VALUES (@RoomName, @Description, @Rate1Persons, @Rate1Amount, @Rate2Persons, @Rate2Amount, @ReservationURL, @SelectedOffer, @Active, @ListingId, @Version)"   
    ProviderName="System.Data.SqlClient"   
    SelectCommand="SELECT * FROM [RoomRate] WHERE ([ListingId] = @ListingId)"   
    UpdateCommand="UPDATE [RoomRate] SET [RoomName] = @RoomName, [Description] = @Description, [Rate1Persons] = @Rate1Persons, [Rate1Amount] = @Rate1Amount, [Rate2Persons] = @Rate2Persons, [Rate2Amount] = @Rate2Amount, [ReservationURL] = @ReservationURL, [SelectedOffer] = @SelectedOffer, [Active] = @Active, [ListingId] = @ListingId, [Version] = @Version WHERE [RoomRateId] = @RoomRateId">  
    <SelectParameters> 
        <asp:QueryStringParameter Name="ListingId" QueryStringField="id" Type="Int32" /> 
    </SelectParameters> 
    <DeleteParameters> 
        <asp:Parameter Name="RoomRateId" Type="Int32" /> 
    </DeleteParameters> 
    <UpdateParameters> 
        <asp:Parameter Name="RoomName" Type="String" /> 
        <asp:Parameter Name="Description" Type="String" /> 
        <asp:Parameter Name="Rate1Persons" Type="String" /> 
        <asp:Parameter Name="Rate1Amount" Type="Decimal" /> 
        <asp:Parameter Name="Rate2Persons" Type="String" /> 
        <asp:Parameter Name="Rate2Amount" Type="Decimal" /> 
        <asp:Parameter Name="ReservationURL" Type="String" /> 
        <asp:Parameter Name="SelectedOffer" Type="Boolean" /> 
        <asp:Parameter Name="Active" Type="Boolean" /> 
        <asp:Parameter Name="ListingId" Type="Int32" /> 
        <asp:Parameter Name="Version" Type="Object" /> 
        <asp:Parameter Name="RoomRateId" Type="Int32" /> 
    </UpdateParameters> 
    <InsertParameters> 
        <asp:Parameter Name="RoomName" Type="String" /> 
        <asp:Parameter Name="Description" Type="String" /> 
        <asp:Parameter Name="Rate1Persons" Type="String" /> 
        <asp:Parameter Name="Rate1Amount" Type="Decimal" /> 
        <asp:Parameter Name="Rate2Persons" Type="String" /> 
        <asp:Parameter Name="Rate2Amount" Type="Decimal" /> 
        <asp:Parameter Name="ReservationURL" Type="String" /> 
        <asp:Parameter Name="SelectedOffer" Type="Boolean" /> 
        <asp:Parameter Name="Active" Type="Boolean" /> 
        <asp:Parameter Name="ListingId" Type="Int32" /> 
        <asp:Parameter Name="Version" Type="Object" /> 
    </InsertParameters> 
</asp:SqlDataSource> 
 

Here is the relevant portion of the codebehind file:

    protected void RadGrid1_ItemUpdated(object source, Telerik.Web.UI.GridUpdatedEventArgs e)  
    {  
        if (e.Exception != null)  
        {  
            e.KeepInEditMode = true;  
            e.ExceptionHandled = true;  
            AddMessage("RoomRate " + e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["RoomRateId"] + " cannot be updated. Reason: " + e.Exception.Message, FormMessage);  
        }  
        else 
        {  
            AddMessage("RoomRate " + e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["RoomRateId"] + " updated", FormMessage, false);  
        }  
    }  
 
    protected void RadGrid1_ItemInserted(object source, GridInsertedEventArgs e)  
    {  
        Trace.Warn("ItemInserted""We made it!");  
        if (e.Exception != null)  
        {  
            e.ExceptionHandled = true;  
            e.KeepInInsertMode = true;  
            AddMessage("Error: " + e.Exception.Message, FormMessage);  
        }  
        else 
        {  
            AddMessage("RoomRate " + e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["RoomRateId"] + " inserted", FormMessage, false);  
        }  
    }  
 
    protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)  
    {  
        if (e.CommandName == RadGrid.InitInsertCommandName) //"Add new" button clicked  
        {  
           Trace.Write("ItemCommand""Add New button was clicked");  
            e.Canceled = true;  
 
            //Prepare an IDictionary with the predefined values  
            System.Collections.Specialized.ListDictionary newValues = new System.Collections.Specialized.ListDictionary();  
 
            //set default checked state for the checkbox inside the EditItemTemplate  
            newValues["SelectedOffer"] = false;  
            newValues["Active"] = true;  
 
            //Insert the item and rebind  
            e.Item.OwnerTableView.InsertItem(newValues);  
        }  
        else if (e.CommandName == RadGrid.RebindGridCommandName && e.Item.OwnerTableView.IsItemInserted)  
        {  
            e.Canceled = true;  
        }  
        else 
        {  
               Trace.Write("ItemCommand""Edit button was clicked");  
        }  
    }  
 
    protected void RadGrid1_InsertCommand(object source, GridCommandEventArgs e)  
    {  
        Trace.Write("InsertCommand""Attempting to insert");  
    } 

Any insight, advice or solutions would be greatly appreciated.
Nikolay Rusev
Telerik team
 answered on 17 Oct 2008
2 answers
157 views
Hi,

I'm having problems with overlapping points in the point chart. I tried to use IntelligentLabelsEnabled="true" but that is not enough because then you can't tell to which point the label belongs to if there are many points near each other. So my question is that is it possible to customize the labels so that if there is overlapping points then those points label values are concatenated somehow to one label and are for e.g. separetad with commas like val2,val2,val3

Thanks & regards,
Pete

Vladimir Milev
Telerik team
 answered on 17 Oct 2008
1 answer
99 views

Hi,

For some reason i've suddenly got these Visual Studio 2005 errors:

Element 'csv' is not supported
Type 'Telerik.Web.UI.GridExportSettings' does not have a public property named 'CSV'.

when i build my project. It's been working fine for ages, and I can't see anything that has changed since the last good build.
It seems that the CSV exporting functionality has disappeared. What could have done this?
I usualy validate against XHTML 1.0 Transitional, but none of the others work either. I've re-registered the controls and relaunched VS.
This error seems to appear in all the .aspx files that use the grid. Also, intellisense doesn't see the <csv>, but it DOES see the <pdf> & <Excel>
Can  anyone suggest what i can do?

My markup is:

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

<telerik:RadGrid ID="gridUsers" runat="server" AllowPaging="True" AllowSorting="True"
        AutoGenerateColumns="False" GridLines="None" OnPageIndexChanged="gridUsers_PageIndexChanged"
        OnNeedDataSource="gridUsers_NeedDataSource">
        <PagerStyle Mode="NextPrevAndNumeric" NextPageText="Next" PrevPageText="Prev" />
        <ExportSettings>
            <Pdf FontType="Subset" PaperSize="Letter" />
            <Excel Format="Html" />
            <Csv ColumnDelimiter="Comma" RowDelimiter="NewLine" />  <- FAILING HERE!!!
        </ExportSettings>
        <MasterTableView ClientDataKeyNames="Login" CommandItemDisplay="Top" CurrentResetPageIndexAction="SetPageIndexToFirst"
            DataKeyNames="Login" Dir="LTR" Frame="Border" TableLayout="Auto">
            <CommandItemTemplate>
  ...
            </CommandItemTemplate>
            <Columns>
  ...
            </Columns>
            <ExpandCollapseColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType"
                Resizable="False" Visible="False">
                <HeaderStyle Width="20px" />
            </ExpandCollapseColumn>
            <RowIndicatorColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType"
                Visible="False">
                <HeaderStyle Width="20px" />
            </RowIndicatorColumn>
            <EditFormSettings>
                <EditColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType">
                </EditColumn>
            </EditFormSettings>
        </MasterTableView>
        <ClientSettings>
            <Selecting AllowRowSelect="True" />
            <ClientEvents OnRowDblClick="gridUsers_OnRowDblClick" OnRowSelected="RowSelected" />
        </ClientSettings>
</telerik:RadGrid>

thanks

Daniel
Telerik team
 answered on 17 Oct 2008
1 answer
99 views
Hello....

I have a a login page which works as follows:

When the user clicks on the login button, the system verifies the username and password and upon successful login, a new radWindow is called.
In this radWindow, the user gets has to select additional options related to his login, for example timeout session.
However on clicking the "Cancel" button, all fields and errors are cleared, without any page reload (Ajax needed here)


I am getting problems to call javascript functions to load the radWindow once I add a radAjax panel onto the page.
I tried the different solutions found in your forum, but still none of them worked.

<telerik:RadAjaxPanel ID="RadAjaxPanelLogin" runat="server" EnableEmbeddedScripts="true" EnableOutsideScripts="true" >
</telerik:RadAjaxPanel>


I even created the radWindow dynamically(C#), but it is no more displayed once ajax is enabled..
[The generation of the radWindow doesn't necessarily be done at run time.]

    private void OpenRadWindow()
    {
        RadWindow newWindow = new RadWindow();
        newWindow.NavigateUrl = Constants.PAGE_CONNEXION_TYPE;
        newWindow.Title = AppConstants.ConnectionChooseType;
        newWindow.Modal = true;
        newWindow.Width = Unit.Pixel(390);
        newWindow.Height = Unit.Pixel(315);
        newWindow.Behaviors = Telerik.Web.UI.WindowBehaviors.None;

        newWindow.Visible = true;
        newWindow.VisibleOnPageLoad = true;
        form1.Controls.Add(newWindow);
    }

I even tried to call a javascript function to open a radWindow, but again on enabling ajax on the form, nothing appears.
string scriptString = @"<script type='text/javascript'>OpenRadWindowJS();</script>";
LiteralControl script = new LiteralControl(scriptString);
RadAjaxPanelLogin.Controls.Add(script);

In brief, by setting the  EnableAJAX="False" on the RadAjaxPanel, everything works, except that the page is no more ajaxed
<telerik:RadAjaxPanel ID="RadAjaxPanelLogin" runat="server" EnableAJAX="False" EnableEmbeddedScripts="true" EnableOutsideScripts="true" >


Could you please provide an example of something done similarly ?
Thanks in advance!
Maria Ilieva
Telerik team
 answered on 17 Oct 2008
1 answer
199 views
Is the calling RaisePostBackEvent on the serverside the same thing as calling ajaxRequest on the client side? Do they both do the call via ajax?

Kirk Quinbar
Zywave, Inc.
Iana Tsolova
Telerik team
 answered on 17 Oct 2008
1 answer
95 views
Hello,

We were trying to upgrade to a Telerik Dll version 2008.2.1001.20.

However we are facing strange issues. I was able to track one to a simple aspx file, that contains RadAjaxPanel, button, hyperlink and a tooltip inside of that panel. Tooltip is shown when you click on hyperlink.

Another one requirement is IE6.

So in the scenario that we have, if you simply click on a button, everything seems fine, but if you open and close a tooltip and then click the button, IE catches a JavaScript exception somewhere inside of destroyTree, while trying to redraw the panel. 

As a result no more javascripts are working and the content of the update panel is not refreshed.

The test page is included. Please help.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" ValidateRequest="true" %> 
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server">  
    <title>Untitled Page</title> 
</head> 
<body> 
    <form id="form1" runat="server">  
    <div> 
      
        <asp:ScriptManager ID="ScriptManager" runat="server"></asp:ScriptManager> 
        <telerik:RadAjaxManager id="RadAjaxManager1" runat="server"></telerik:RadAjaxManager> 
      
        <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" EnableEmbeddedScripts="true" LoadingPanelID="LoadingPanel1" Width="100%">  
 
            <asp:Button ID="btn1" runat="server" Text="btn1" /> 
 
            <href="javascript:void();" id="lnkDocName" class="normal" runat="server" >blah-blah</a> 
 
            <telerik:RadToolTip   
                id="toolTip"   
                runat="server"   
                RelativeTo="Element"   
                ShowEvent="OnClick"   
                ShowCallout="false"   
                ManualClose="true" 
                Width="400" 
                ShowDelay="0" 
                Animation="Fade" 
                TargetControlID="lnkDocName" 
                > 
 
                <asp:Button ID="btn2" runat="server" Text="btn2" /> 
 
            </telerik:RadToolTip> 
 
        </telerik:RadAjaxPanel> 
 
        <telerik:RadAjaxLoadingPanel runat="Server" ID="LoadingPanel1" InitialDelayTime="0" Transparency="30" BackColor="#E0E0E0">  
            <asp:Image id="Image1" runat="server" AlternateText="Loading..." BorderWidth="0px" ImageUrl="~/RadControls/AJAX/Skins/Default/loading.gif" style="margin-top:100px;"></asp:Image> 
        </telerik:RadAjaxLoadingPanel> 
    </div> 
    </form> 
</body> 
</html> 
 


Thank you,
Konstantin
Pavel
Telerik team
 answered on 17 Oct 2008
Narrow your results
Selected tags
Tags
+? more
Top users last month
Shiori
Top achievements
Rank 2
Iron
Tien
Top achievements
Rank 1
Iron
Robert
Top achievements
Rank 1
Rob
Top achievements
Rank 4
Bronze
Bronze
Iron
Geoff
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Shiori
Top achievements
Rank 2
Iron
Tien
Top achievements
Rank 1
Iron
Robert
Top achievements
Rank 1
Rob
Top achievements
Rank 4
Bronze
Bronze
Iron
Geoff
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?