Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
227 views
Hi guys,

I'm suddenly getting an error like this :

Resolution of the dependency failed, type = "Telerik.Sitefinity.Configuration.ConfigManager", name = "XmlConfigProvider".
Exception occurred while: Calling constructor Telerik.Sitefinity.Configuration.ConfigManager(System.String providerName).
Exception is: ResolutionFailedException - Resolution of the dependency failed, type = "Telerik.Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ExceptionManager", name = "(none)".
Exception occurred while: while resolving.
Exception is: InvalidOperationException - The type ExceptionManager cannot be constructed. You must configure the container to supply this value.
-----------------------------------------------
At the time of the exception, the container was:


  Resolving Telerik.Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ExceptionManager,(none)


-----------------------------------------------
At the time of the exception, the container was:


  Resolving Telerik.Sitefinity.Configuration.ConfigManager,XmlConfigProvider
  Calling constructor Telerik.Sitefinity.Configuration.ConfigManager(System.String providerName)


when trying to get the connection string, anyone else got the same error?
It used to work fine, but since this morning I've been getting this, I did not upgrade of anything.

The line where the code gives the error is:
Telerik.Sitefinity.Configuration.ConfigManager cfgManager = Config.GetManager();

I also tried :
string a = Config.Get<DataConfig>().ConnectionStrings[ "Sitefinity" ].ConnectionString;

Please help!!

Thanks in advanced!

Vlad
Telerik team
 answered on 27 May 2011
2 answers
216 views
Hi All,

Anyway I can remove this "300 items in 10 pages" text from the pager programatically (like I can for PageSizeComboBox etc)

Thanks,
Matt
Matt
Top achievements
Rank 1
 answered on 27 May 2011
3 answers
170 views

Index.aspx contains a RadtabStrip and RadMultiPage.  From Index.aspx, I am trying to call a JavaScript function found in selected PageView's content, which is another ASPX page.  My JavaScript in Index.aspx that is trying to make the call to Page VIew looks like this (saveData is the function in the child ASPX page):

 

 

 

 

var multiMain = $find("<%= mulMain.ClientID %>");

 

 

 

 

var pageToSave = multiMain.get_selectedPageView();

 

 

 

 

var pageContent = pageToSave.get_element();

 

 

pageContent.saveData()

 

;

Obviously, I can't get this to work.  I can see from the examples that you can change style information, among a number of other things, but it appears that I'm doing so for the immediate container of the child ASPX (an iframe), and not for the ASPX page itself.

Does anyone have any idea how to pull this off, how to call the JavaScript of an ASPX page contained within a Page View of RadMultiPage?

 

Bruce
Top achievements
Rank 1
 answered on 27 May 2011
1 answer
33 views

Good day,

I want to know if there is any way to post back to radWindow on maximize/minimize.

I am using RadChat in the radWindow and I need to resize it on maximize/minimize.

Thanks,

Regards

Svetlina Anati
Telerik team
 answered on 27 May 2011
4 answers
112 views
telerik:RadRotator ID="RadRotatorHorizontal"
The control above is showing null when I click forward or backward. Please assist if possible. I been on it for last 2 weeks.

Thanks



<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="News.Default" %>
 
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<head runat="server" >
    <title>Rotator Page</title>
    <style type="text/css">
        .itemTemplate
        {
            width: 250px;
            height: 40px;
        }
        .rotatatorLeftRightBack, .rotatatorUpDownBack
        {
            float: left;
            background-repeat: no-repeat;
            padding-left: 30px;
            padding-top: 20px;
            width: 407px;
            height: 43px;
        }
        .floatRotator
        {
            float: left;
            margin-top: -5px;
        }
        .start, .stop, .left, .right, .up, .down, .startSelected, .stopSelected
        {
            width: 20px;
            height: 20px;
            display: block;
            cursor: hand;
            outline: none;
        }
        #navigationHorizontal .start, #navigationHorizontal .stop, .left, .right, #navigationHorizontal .startSelected, #navigationHorizontal .stopSelected
        {
            background-image: url('IMAGES/HorizontalButtons.gif');
        }
        #navigationVertical .start, #navigationVertical .stop, .up, .down, #navigationVertical .stopSelected, #navigationVertical .startSelected
        {
            background-image: url('IMAGES/VerticalButtons.gif');
        }
        .start span, .stop span, .left span, .right span, .down span, .up span, .stopSelected span, .startSelected span
        {
            width: 20px;
            height: 20px;
            display: block;
            text-indent: -500000px;
        }
        .stopSelected
        {
            background-position: 0px -25px;
        }
        .startSelected
        {
            background-position: -25px -25px;
        }
        .stop
        {
            background-position: 0px 0px;
        }
        .start
        {
            background-position: -25px 0px;
        }
        .left
        {
            background-position: -50px 0px;
        }
        .right
        {
            background-position: -75px 0px;
        }
        .down
        {
            background-position: -50px 0px;
        }
        .up
        {
            background-position: -75px 0px;
        }
        /* Hovers */.stop:hover
        {
            background-position: 0px -25px;
        }
        .start:hover
        {
            background-position: -25px -25px;
        }
        .stop:hover
        {
            background-position: 0px -25px;
        }
        .left:hover
        {
            background-position: -50px -25px;
        }
        .right:hover
        {
            background-position: -75px -25px;
        }
        .down:hover
        {
            background-position: -50px -25px;
        }
        .up:hover
        {
            background-position: -75px -25px;
        }
        .commandsWrapper, .commandsWrapper li
        {
            float: left;
            margin: 0;
            padding: 0;
            border: 0;
            list-style: none;
            height: auto;
            display: block;
        }
         
        .commandsWrapper
        {
            width: 136px;
            height: 20px;
            padding: 2px 0 0 10px;
        }
        .commandsWrapper li
        {
            margin-right: 14px;
            _margin-right: 13px; /* START IE6 hack */
        }
        .commandsWrapper ul:after
        {
            content: "";
            display: block;
            height: 0;
            overflow: hidden;
            line-height: 0;
            font-size: 0;
            clear: both;
            visibility: hidden;
        }
        .title
        {
            font-size: 20px;
            margin-bottom: 15px;
        }
    </style>
   
</head>
<body class="BODY">
    <form id="Form1" method="post" runat="server">
    <telerik:RadScriptManager ID="ScriptManager1" runat="server"> </telerik:RadScriptManager
    <script type="text/javascript">
        //<![CDATA[
        function GetRotator() {
            //return $find('<%#RadRotatorHorizontal.ClientID %>');
            return document.getElementById(RadRotatorHorizontal);
        }
         //]]> 
    </script>
    <script type="text/javascript">
 
        //<![CDATA[
        function startRotator(clickedButton, rotator, direction) {
            if (!rotator.autoIntervalID) {
                refreshButtonsState(clickedButton, rotator);
                rotator.autoIntervalID = window.setInterval(function () {
                    rotator.showNext(direction);
                }, rotator.get_frameDuration());
            }
        }
 
        function stopRotator(clickedButton, rotator) {
            if (rotator.autoIntervalID) {
                refreshButtonsState(clickedButton, rotator)
                window.clearInterval(rotator.autoIntervalID);
                rotator.autoIntervalID = null;
            }
        }
 
        function showNextItem(clickedButton, rotator, direction) {
            rotator.showNext(direction);
            refreshButtonsState(clickedButton, rotator);
        }
 
        // Refreshes the Stop and Start buttons
        function refreshButtonsState(clickedButton, rotator) {
            var jQueryObject = $telerik.$;
            var className = jQueryObject(clickedButton).attr("class");
 
            switch (className) {
                case "start":
                    {// Start button is clicked
 
                        jQueryObject(clickedButton).removeClass();
                        jQueryObject(clickedButton).addClass("startSelected");
 
                        // Find the stop button. stopButton is a jQuery object
                        var stopButton = findSiblingButtonByClassName(clickedButton, "stopSelected");
 
                        if (stopButton) {// Changes the image of the stop button
                            stopButton.removeClass();
                            stopButton.addClass("stop");
                        }
 
                    } break;
                case "stop":
                    {// Stop button is clicked
 
                        jQueryObject(clickedButton).removeClass();
                        jQueryObject(clickedButton).addClass("stopSelected");
 
                        // Find the start button. startButton is a jQuery object
                        var startButton = findSiblingButtonByClassName(clickedButton, "startSelected");
                        if (startButton) {// Changes the image of the start button
                            startButton.removeClass();
                            startButton.addClass("start");
                        }
 
                    } break;
            }
        }
 
        // Finds a button by its className. Returns a jQuery object
        function findSiblingButtonByClassName(buttonInstance, className) {
            var jQuery = $telerik.$;
            var ulElement = jQuery(buttonInstance).parent().parent(); // get the UL element
            var allLiElements = jQuery("li", ulElement); // jQuery selector to find all LI elements
 
            for (var i = 0; i < allLiElements.length; i++) {
                var currentLi = allLiElements[i];
                var currentAnchor = jQuery("A:first", currentLi); // Find the Anchor tag
 
                if (currentAnchor.hasClass(className)) {
                    return currentAnchor;
                }
            }
        }
        //]]>
    </script>
 
       <table>
       <tr>
       <td class="style1">
        
                <div class="rotatatorLeftRightBack">
                    <telerik:RadRotator ID="RadRotatorHorizontal" runat="server" ScrollDuration="50"
                        RegisterWithScriptManager="true" Height="250px" Width="490px" RotatorType="FromCode"
                        ScrollDirection="Left" CssClass="floatRotator">
                        <ItemTemplate>
                            <div class="itemTemplate">
                                <%# XPath("Title") %>
                            </div>
                        </ItemTemplate>
                    </telerik:RadRotator>
 
                    <button onclick="$find('<%#RadRotatorHorizontal.ClientID%>').showNext(Telerik.Web.UI.RotatorScrollDirection.Left);"
                        type="button" class="left">
                    </button>
                    <button onclick="$find('<%#RadRotatorHorizontal.ClientID%>').showNext(Telerik.Web.UI.RotatorScrollDirection.Right);"
                        type="button" class="right">
                    </button>
 <a onclick='javascript:alert(getRotator());'>Testing</a>                      
 <a onclick='javascript:alert($find("RadRotatorHorizontal_ClientState"));'>jstest</a>;
 
  <ul id="navigationHorizontal" class="commandsWrapper">
  
                    <li><a href="#" onclick="stopRotator(this, $find('<%#RadRotatorHorizontal.ClientID%>')); return false;"
                        class="stopSelected" title="Stop"><span>Stop</span></a></li>
                    <li><a href="#" onclick="startRotator(this, $find('<%#RadRotatorHorizontal.ClientID%>'), Telerik.Web.UI.RotatorScrollDirection.Left); return false;"
                        class="start" title="Start"><span>Start</span></a></li>
                    <li><a href="#" onclick="showNextItem(this, $find('<%#RadRotatorHorizontal.ClientID%>'), Telerik.Web.UI.RotatorScrollDirection.Left); return false;"
                        class="left" title="Left"><span>Up</span></a></li>
                    <li><a href="#" onclick="showNextItem(this, $find('<%#RadRotatorHorizontal.ClientID%>'), Telerik.Web.UI.RotatorScrollDirection.Right); return false;"
                        class="right" title="Right"><span>Down</span></a></li>
                </ul>
                    </div>
 
        
       </td
       </tr>
       </table>
  
    </form>
 
     
</body>
</html>
Amber
Top achievements
Rank 1
 answered on 27 May 2011
3 answers
122 views
Hi,

I am using RadEditor version 2010.1.519.35 its working fine in Fire-Fox but I am unable to write anything in Google chrome 11.0.696.71 as the editor is not enabled for writing.Is there any solution for this?
Rumen
Telerik team
 answered on 27 May 2011
0 answers
33 views
Hi I'm new using telerik rad controls an asp development and I need some help. I have a radGrid wich is populated with data when a button is pressed, I found a solution here in the forum for selecting a row of the radGrid and taking the values of each cell, but now I want to know how to save this values into my database using entity framework. What I've been trying is to put the values into strings and then in my saving method call the strings, but when I execute the program I add two breakpoints, one in the method that selects the row and take the values and other in the saving method, whe see the results of the breakpoints in the first method which takes the value of the selected row each string contains the data corresponding to the cell in the radGrid, but in my saving method the strings appears empty, How can I solve this problem?
Hope you could help me.
Here's my two methods for selecting
protected void RgSolic_SelectedIndexChanged(object sender, EventArgs e)
       {
           foreach (GridDataItem selectedItem in rgSolic.SelectedItems)
           {
               strNom = selectedItem["NombreCompleto"].Text;
               strPuesto = selectedItem["nom_pue"].Text;
               strCveAdscripcion = selectedItem["cve_adscripcion"].Text;
               strArea = selectedItem["nom_area"].Text;
                
           
       }
       protected void btnRegistra_Click(object sender, EventArgs e)
       {
           //BD_SSEGUAEntities sseguaRegistro = new BD_SSEGUAEntities();
           //sseguaRegistro.spRegistraSolicitud1();
           //Valida Datos del Menor
           using (var dbContext = new BD_SSEGUAEntities())
           {
               var ResultSet = new Menor();
               var ResultSol = new Solicitud();
               var ResulBitacora = new Bitacora();
               if (chkMasc.Checked)
               {
                   sexo = "M";
               }
               if (chkFem.Checked)
               {
                   sexo = "F";
               }
               if (rdTxtAPatMen.Text != "" && rdTxtAMatMen.Text != "" && rdTxtNomMen.Text != "" && RadDatePicker1.SelectedDate != null && sexo != "" && rdCmbEdificio.SelectedValue != "" && rdTxtDomicilio.Text != "" && rdTxtHEnt.Text != "" && rdTxtHSal.Text != "" && rdTxtTelOfic.Text != "" && rdTxtExt.Text != "" && rdTxtPart.Text != "" && rdTxtCorreoE.Text != "" && rdTxtDomPart.Text != "" && rdTxtNHijos.Text != "" && rdCmbTEmbzo.SelectedValue != "0")
               {
                   try
                   {
                         
                       System.DateTime.Now.Year.ToString();
                       //ResultSol.fcCvePuesto = rgSolic.Columns.FindByUniqueName("nom_pue").ToString();
                       //ResultSol.fcCveAdsc = rgSolic.Columns.FindByDataField("cve_adscripcion").ToString();
                       ResultSol.fcNomEmpleado = strNom;

                                ResultSol.fcCveAdsc = strCveAdscripcion;

                       ResultSol.fcCvePuesto = strPuesto;
                       ResultSol.fcDomLabora = rdTxtDomicilio.Text;
                       ResultSol.fiHorEntLab = (Byte)rdTxtHEnt.Value;
                       ResultSol.fiHorSalLab = (Byte)rdTxtHSal.Value;
                       ResultSol.fiTelOfna = rdTxtTelOfic.Text;
                       ResultSol.fiExtTel = rdTxtExt.Text;
                       ResultSol.fiTelPart = rdTxtPart.Text;
                       ResultSol.fcCorreoE = rdTxtCorreoE.Text;
                       ResultSol.fcDomPart = rdTxtDomPart.Text;
                       ResultSol.fiNumHijos = (Byte)rdTxtNHijos.Value;
                         
                       foreach (var menor in listaMenores)
                       {
                           ResultSol.Menor.Add(menor);
                       }
                       dbContext.AddToSolicitud(ResultSol);
                       dbContext.SaveChanges();
                       //ResultSet.fcPatMenor = rdTxtAPatMen.Text;
                       //ResultSet.fcMatMenor = rdTxtAMatMen.Text;
                       //ResultSet.fcNomMenor = rdTxtNomMen.Text;
                       //ResultSet.fdFchNacMenor = (DateTime)RadDatePicker1.SelectedDate;
                       //ResultSet.fiAnosMenor = (Byte)rdTxtAnio.Value;
                       //ResultSet.fiMesesMenor = (Byte)rdTxtMeses.Value;
                       //ResultSet.fiSexoMenor = sexo;
                       //ResultSet.fdFchRegMenor = DateTime.Today;
                       //dbContext.Menores.AddObject(ResultSet);
                       //dbContext.SaveChanges();
                       //RgMenor.DataSource = ResultSet;
                       //RgMenor.Rebind();
                   }
                   catch (Exception ex)
                   {
                       Alerta(ex.Message);
                   }
               }
               else
               {
                   Alerta("Captura todos lo datos del Menor");
               }
           }
       }
Cristian
Top achievements
Rank 1
 asked on 27 May 2011
1 answer
130 views
If I take StoredProcedure as SqlDataSource for Combobox "RadCombobox2", I can not select a value(see Att.1). If I configure sqldatasource3(see Att.2) when I put manuelly the field entry, I get errors:

The DataSourceID of 'cbDays' must be the ID of a control of type IDataSource.  A control with ID 'SqlDataSource3' could not be found.

If I take instead of StoredProcedure  a Select.. define - no problem.

       <div class="class_1" style="width:512px">
           <telerik:RadGrid ID="RadGrid1" runat="server" CellSpacing="0"
               DataSourceID="SqlDataSource1" GridLines="None">
<MasterTableView AutoGenerateColumns="False" DataKeyNames="DokId"
                   DataSourceID="SqlDataSource1">
<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
 
<RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>
 
<ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
<HeaderStyle Width="20px"></HeaderStyle>
</ExpandCollapseColumn>
 
    <Columns>
        <telerik:GridTemplateColumn DataField="DokuType"
            FilterControlAltText="Filter column column" HeaderText="Materials"
            UniqueName="DokuType">
            <EditItemTemplate>
                <telerik:RadComboBox runat="server">
                </telerik:RadComboBox>
            </EditItemTemplate>
            <ItemTemplate>
                <telerik:RadComboBox ID="RadComboBox1" Runat="server">
                    <Items>
                        <telerik:RadComboBoxItem runat="server" Text="Documentation"
                            Value="Tagungsunterlagen" />
                        <telerik:RadComboBoxItem runat="server" Text="Books" Value="Bücher" />
                        <telerik:RadComboBoxItem runat="server" Text="Other" Value="Sonstiges" />
                    </Items>
                </telerik:RadComboBox>
            </ItemTemplate>
        </telerik:GridTemplateColumn>
        <telerik:GridTemplateColumn DataField="VAday"
            FilterControlAltText="Filter column1 column" HeaderText="Days"
            UniqueName="VAday">
            <EditItemTemplate>
                <telerik:RadComboBox runat="server">
                </telerik:RadComboBox>
            </EditItemTemplate>
            <ItemTemplate>
                <telerik:RadComboBox ID="RadComboBox2" Runat="server"
                    DataSourceID="SqlDataSource3" SelectedValue='<%# Bind("VAday") %>'>
                </telerik:RadComboBox>
            </ItemTemplate>
        </telerik:GridTemplateColumn>
        <telerik:GridTemplateColumn FilterControlAltText="Filter Delegates column"
            HeaderText="Delegates" UniqueName="Delegates">
        </telerik:GridTemplateColumn>
        <telerik:GridTemplateColumn DataField="Menge" DataType="System.Int16"
            FilterControlAltText="Filter Menge column" HeaderText="Additional Amount"
            UniqueName="Menge">
        </telerik:GridTemplateColumn>
        <telerik:GridTemplateColumn DataField="Price"
            FilterControlAltText="Filter DokuType column" HeaderText="Unit Price"
            UniqueName="Price">
            <EditItemTemplate>
                <asp:TextBox ID="DokuTypeTextBox" runat="server" Text='<%# Bind("DokuType") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="DokuTypeLabel" runat="server" Text='<%# Eval("DokuType") %>'></asp:Label>
            </ItemTemplate>
        </telerik:GridTemplateColumn>
    </Columns>
 
<EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn>
</EditFormSettings>
</MasterTableView>
 
<FilterMenu EnableImageSprites="False"></FilterMenu>
 
<HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"></HeaderContextMenu>
           </telerik:RadGrid>
           <asp:SqlDataSource ID="SqlDataSource1" runat="server"
               ConnectionString="<%$ ConnectionStrings:webzeus %>"
               SelectCommand="SELECT * FROM [Dokus] WHERE ([Number] = @Number)">
               <SelectParameters>
                   <asp:SessionParameter  Name="Number" SessionField="curNumber"
                       Type="Int32" />
               </SelectParameters>
           </asp:SqlDataSource>
           <asp:SqlDataSource ID="SqlDataSource3" runat="server"
               ConnectionString="<%$ ConnectionStrings:webzeus %>"
               SelectCommand="pr_TNproTag" SelectCommandType="StoredProcedure">
               <SelectParameters>
                   <asp:SessionParameter DefaultValue="12814" Name="curNumber"
                       SessionField="curNumber" Type="Int32" />
                   <asp:Parameter DefaultValue="Dokus" Name="curPar" Type="String" />
               </SelectParameters>
           </asp:SqlDataSource>
       </div>
 
</div>



Cat Cheshire
Top achievements
Rank 1
 answered on 27 May 2011
14 answers
235 views
Hi Telerik Team
I´m using Radwindow and when IE did their last update to version 9 the Radwindow fails to open. I have not written the code so I don´t know why it fails. The page works like a charm in IE7,8 and firefox.

Here is example code.

 

<telerik:RadWindow ID="RadWindow1" VisibleOnPageLoad="false" Title="Visa tid" IconUrl="~/App_Themes/Classic/Images/MenuItems/book.png"

 

 

runat="server" Modal="false" Top="0px" Left="0px" VisibleStatusbar="false" VisibleTitlebar="true"

 

 

AutoSize="false" Width="640px" Height="340px" ShowContentDuringLoad="false" OnClientBeforeClose="window_beforeClose"

 

 

Behavior="Close" Style="z-index: 10000">

 

 

</telerik:RadWindow>

 

 

 

var currentBookingId = 0;

 

 

 

 

function openSlot(slotId, bookingId) {

 

 

 

 

if (cancelPopup) { cancelPopup = false;return; }

 

 

 

 

if (currentBookingId > 0) $("#b" + currentBookingId).removeClass("selected");

 

 

currentBookingId = bookingId;

 

$(

 

"#b" + currentBookingId).addClass("selected");

 

 

 

 

var url = "EditSlot.aspx?standalone=true&Id=" + slotId;

 

 

 

 

var oWnd = $find("<%=RadWindow1.ClientID%>");

 

 

oWnd.set_title(

 

"Laddar...");

 

 

oWnd.setUrl(url);

 

oWnd.show();

 

}

Mvh
/Emil Eriksson

Emil Eriksson
Top achievements
Rank 1
 answered on 27 May 2011
3 answers
846 views
Hi
I have following code for a GridBoundColumn (Zip Code) 
<telerik:GridBoundColumn HeaderText="Zip Code" UniqueName="ZipCode" DataField="ZipCode"
     ItemStyle-Wrap="true" AllowSorting="false" HeaderStyle-Font-Bold="true" HeaderStyle-HorizontalAlign="Left"
                   HeaderStyle-Width="9%"  ItemStyle-HorizontalAlign="Left" ItemStyle-Width="9%" DataFormatString="{0:#####-####}">                                                                                               
                           </telerik:GridBoundColumn>

but the DataFormatString property doesn't work properly........
let me know any solution..
Thanks in advance..
Vasil
Telerik team
 answered on 27 May 2011
Narrow your results
Selected tags
Tags
+? more
Top users last month
Anislav
Top achievements
Rank 6
Silver
Bronze
Bronze
Jianxian
Top achievements
Rank 1
Iron
Marco
Top achievements
Rank 3
Iron
Iron
Iron
Jim
Top achievements
Rank 2
Iron
Iron
Nurik
Top achievements
Rank 2
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Anislav
Top achievements
Rank 6
Silver
Bronze
Bronze
Jianxian
Top achievements
Rank 1
Iron
Marco
Top achievements
Rank 3
Iron
Iron
Iron
Jim
Top achievements
Rank 2
Iron
Iron
Nurik
Top achievements
Rank 2
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?