Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
155 views
Hi

I'm creating a web page with radgrid on it and have a few columns with radtimepicker controls in an  itemtemplate section. Each column has two radtimepicker controls where I am selecting start and end time. I am trying to validate the time so the start time is always before the end time and the end time is always after the start time. I'm trying to get the row index on a client side event so I can get the value of the end time. Please can someone suggest me how to get the row index?

I tried various options but they don't seem to work.

Many thanks!
Jayesh Goyani
Top achievements
Rank 2
 answered on 31 Jan 2014
1 answer
214 views
Currently have 2 dropdown lists (month & year) that I would like to validate they are not blank and verify that they aren't for a future date.  I am unable to get the value via jquery.  Suggestions?

<script type=
"text/javascript">
    var oWnd;
    //<![CDATA[
    function daysInMonth(month, year) {
        return new Date(year, month, 0).getDate();
    }
 
    function openRadWin(InMode) {
        //Removes the scroll bars from the Parent Window
        removeScrollbars();
 
        var MonthInput = $find("<%= _NewMonth.ClientID %>");
        var YearInput = $find("<%= _newYear.ClientID %>");
        var newVal = $('#_newYear').val();
        var dropFind = $find("<%= _NewMonth.ClientID %>");
        var valueFind = dropFind.get_value();
 
        alert(valueFind);
}
</script>




New statement cycle date <strong>(mm/dd/yyyy)</strong>:
<telerik:RadDropDownList ID="_NewMonth" runat="server" DefaultMessage="Select a Month">
    <Items>
        <telerik:DropDownListItem runat="server" Selected="false" Text="January" Value="1" />
        <telerik:DropDownListItem runat="server" Selected="false" Text="February" Value="2" />
        <telerik:DropDownListItem runat="server" Selected="false" Text="March" Value="3" />
        <telerik:DropDownListItem runat="server" Selected="false" Text="April" Value="4" />
        <telerik:DropDownListItem runat="server" Selected="false" Text="May" Value="5" />
        <telerik:DropDownListItem runat="server" Selected="false" Text="June" Value="6" />
        <telerik:DropDownListItem runat="server" Selected="false" Text="July" Value="7" />
        <telerik:DropDownListItem runat="server" Selected="false" Text="August" Value="8" />
        <telerik:DropDownListItem runat="server" Selected="false" Text="September" Value="9" />
        <telerik:DropDownListItem runat="server" Selected="false" Text="October" Value="10" />
        <telerik:DropDownListItem runat="server" Selected="false" Text="November" Value="11" />
        <telerik:DropDownListItem runat="server" Selected="false" Text="December" Value="12" />
    </Items>
</telerik:RadDropDownList>
<telerik:RadDropDownList ID="_NewYear" runat="server">
</telerik:RadDropDownList>
Shinu
Top achievements
Rank 2
 answered on 31 Jan 2014
5 answers
145 views
I have a radEditor that does not seem to post new / changed content when used with ie10. Chrome seems to work fine. We just upgraded to the latest internal build and have not changed anthing else within the project. The editor is located in a user control and inside an update panel. the buttons we are using to call the serverside function that saves the content are image buttons. With the previous versions of the dll we had no issues with this setup. I have put breakpoints at the page_load and other events but the value never seems to get changed. I have also used the textbox technique described in another post and the text box value is updating fine but the radEditor is not. 

Additionally, the radTooltip does not seem to show the tooltip on the hover event under ie10. works in chrome. same scenerio as above, no change in project, just the telerik upgrade.

Thanks,
Scott
Daniel
Top achievements
Rank 1
Iron
Iron
Iron
 answered on 31 Jan 2014
0 answers
69 views
I am using Telerik.Web.Mvc Chart control and want to replace the text in the category axis with images such as .png or .jpeg files. Please let me know how this can be achieved? Is this supported in Telerik.Web.Mvc Chart. If not, what will be the work around to load images?  --Sridhar Thirumal
Sridhar
Top achievements
Rank 1
 asked on 30 Jan 2014
2 answers
248 views
Please Help,

I have a Grid placed inside a nested multipage.  The Multipage is affected by tabs.  Ill try to explain below.

-outer Multipage
    -PageView: Contains Tabs and Related MultiPage
        -inner MultiPage: Contains Tab Pages which contain the Grids in question
    -PageView: Contains FormView to display the details of the item selected in the other Grids.

So what is happening is that when I wanted to Tabs to postback when selected I set the autopostback to true and then added to the RadAjax manager below
<telerik:AjaxSetting AjaxControlID="Tabs">
    <UpdatedControls>
        <telerik:AjaxUpdatedControl ControlID="Tabs" />
        <telerik:AjaxUpdatedControl ControlID="OuterMultiPage" />
    </UpdatedControls>
</telerik:AjaxSetting>
When the tab is selected it changes the OuterMultiPage to show the Page with the Grids Multipage.  That part works but the GridData section of the grid is set to 10px for the height.  I have no Idea why.  I tried to create a GridCreated client event to set the height back to 100% but then I lose my scrollbars and when I resize the page it goes right back to 10%.

Any Ideas.

Thanks for any help in advance.
Sameer
Top achievements
Rank 1
 answered on 30 Jan 2014
1 answer
145 views
I am using Telerik version 2013.3.1015.40 and working with Visual Studio 2010.
I recently migrated my code to VS 2010 from VS 2008.

In 2010 I don't see the border and the dropdown image for my combobox. I am using custom skin.
Below is my combobox declaration and my custom skin:

<telerik:RadComboBox ID="rcbPlans" runat="server" DataSourceID="_dataSrcPlans" DataTextField="PlanName" EnableEmbeddedSkins="false" Skin="MBen"  OnDataBound="rcbPlans_DataBound" DataValueField="PlanInfo" OnSelectedIndexChanged="rcbPlans_SelectedIndexChanged"  AutoPostBack="true" Width="250px">
</telerik:RadComboBox>

.RadComboBox_MBen {
  color: black;
  font: normal 12px Verdana, Arial, Helvetica, sans-serif; }
  .RadComboBox_MBen .rcbInputCell,
  .RadComboBox_MBen .rcbArrowCell {
    background-image: url('Common/radFormSprite.png');
    _background-image: url('Common/radFormSpriteIE6.png'); }
  .RadComboBox_MBen .rcbInputCellLeft {
    background-position: 0 0; }
  .RadComboBox_MBen .rcbInputCellRight {
    background-position: 100% 0; }
  .RadComboBox_MBen .rcbInput {
    color: black;
    font: normal 12px Verdana, Arial, Helvetica, sans-serif;
    line-height: 16px; }
  .RadComboBox_MBen .rcbEmptyMessage {
    color: #a7a7a7;
    font-style: italic; }
  .RadComboBox_MBen .rcbArrowCellLeft {
    background-position: 0 -176px; }
  .RadComboBox_MBen .rcbArrowCellRight {
    background-position: -18px -176px; }
  .RadComboBox_MBen .rcbArrowCellLeft.rcbArrowCellHidden {
    background-position: 0 0; }
  .RadComboBox_MBen .rcbArrowCellRight.rcbArrowCellHidden {
    background-position: 100% 0; }
  .RadComboBox_MBen .rcbHovered .rcbInputCellLeft {
    background-position: 0 -22px; }
  .RadComboBox_MBen .rcbHovered .rcbInputCellRight {
    background-position: 100% -22px; }
  .RadComboBox_MBen .rcbHovered .rcbInput {
    color: black; }
  .RadComboBox_MBen .rcbHovered .rcbArrowCellLeft {
    background-position: -36px -176px; }
  .RadComboBox_MBen .rcbHovered .rcbArrowCellRight {
    background-position: -54px -176px; }
  .RadComboBox_MBen .rcbHovered .rcbArrowCellLeft.rcbArrowCellHidden {
    background-position: 0 -22px; }
  .RadComboBox_MBen .rcbHovered .rcbArrowCellRight.rcbArrowCellHidden {
    background-position: 100% -22px; }
  .RadComboBox_MBen .rcbFocused .rcbInputCellLeft {
    background-position: 0 -44px; }
  .RadComboBox_MBen .rcbFocused .rcbInputCellRight {
    background-position: 100% -44px; }
  .RadComboBox_MBen .rcbFocused .rcbInput {
    color: black; }
  .RadComboBox_MBen .rcbFocused .rcbArrowCellLeft {
    background-position: -72px -176px; }
  .RadComboBox_MBen .rcbFocused .rcbArrowCellRight {
    background-position: -90px -176px; }
  .RadComboBox_MBen .rcbFocused .rcbArrowCellLeft.rcbArrowCellHidden {
    background-position: 0 -44px; }
  .RadComboBox_MBen .rcbFocused .rcbArrowCellRight.rcbArrowCellHidden {
    background-position: 100% -44px; }
  .RadComboBox_MBen .rcbDisabled .rcbInputCellLeft {
    background-position: 0 -66px; }
  .RadComboBox_MBen .rcbDisabled .rcbInputCellRight {
    background-position: 100% -66px; }
  .RadComboBox_MBen .rcbDisabled .rcbInput {
    color: #a7a7a7; }
  .RadComboBox_MBen .rcbDisabled .rcbArrowCellLeft {
    background-position: -108px -176px; }
  .RadComboBox_MBen .rcbDisabled .rcbArrowCellRight {
    background-position: -126px -176px; }
  .RadComboBox_MBen .rcbDisabled .rcbArrowCellLeft.rcbArrowCellHidden {
    background-position: 0 -66px; }
  .RadComboBox_MBen .rcbDisabled .rcbArrowCellRight.rcbArrowCellHidden {
    background-position: 100% -66px; }
  .RadComboBox_MBen .rcbReadOnly .rcbInputCellLeft {
    background-position: 0 -88px; }
  .RadComboBox_MBen .rcbReadOnly .rcbInputCellRight {
    background-position: 100% -88px; }
  .RadComboBox_MBen .rcbReadOnly .rcbInput {
    color: #1e395b; }
  .RadComboBox_MBen .rcbReadOnly .rcbArrowCellLeft {
    background-position: -144px -176px; }
  .RadComboBox_MBen .rcbReadOnly .rcbArrowCellRight {
    background-position: -162px -176px; }
  .RadComboBox_MBen .rcbReadOnly .rcbArrowCellLeft.rcbArrowCellHidden {
    background-position: 0 -88px; }
  .RadComboBox_MBen .rcbReadOnly .rcbArrowCellRight.rcbArrowCellHidden {
    background-position: 100% -88px; }
  .RadComboBox_MBen .rcbHovered .rcbReadOnly .rcbInputCellLeft {
    background-position: 0 -110px; }
  .RadComboBox_MBen .rcbHovered .rcbReadOnly .rcbInputCellRight {
    background-position: 100% -110px; }
  .RadComboBox_MBen .rcbHovered .rcbReadOnly .rcbInput {
    color: #1e395b; }
  .RadComboBox_MBen .rcbHovered .rcbReadOnly .rcbArrowCellLeft {
    background-position: -180px -176px; }
  .RadComboBox_MBen .rcbHovered .rcbReadOnly .rcbArrowCellRight {
    background-position: -198px -176px; }
  .RadComboBox_MBen .rcbHovered .rcbReadOnly .rcbArrowCellLeft.rcbArrowCellHidden {
    background-position: 0 -110px; }
  .RadComboBox_MBen .rcbHovered .rcbReadOnly .rcbArrowCellRight.rcbArrowCellHidden {
    background-position: 100% -110px; }
  .RadComboBox_MBen .rcbFocused .rcbReadOnly .rcbInputCellLeft {
    background-position: 0 -132px; }
  .RadComboBox_MBen .rcbFocused .rcbReadOnly .rcbInputCellRight {
    background-position: 100% -132px; }
  .RadComboBox_MBen .rcbFocused .rcbReadOnly .rcbInput {
    color: #1e395b; }
  .RadComboBox_MBen .rcbFocused .rcbReadOnly .rcbArrowCellLeft {
    background-position: -216px -176px; }
  .RadComboBox_MBen .rcbFocused .rcbReadOnly .rcbArrowCellRight {
    background-position: -234px -176px; }
  .RadComboBox_MBen .rcbFocused .rcbReadOnly .rcbArrowCellLeft.rcbArrowCellHidden {
    background-position: 0 -132px; }
  .RadComboBox_MBen .rcbFocused .rcbReadOnly .rcbArrowCellRight.rcbArrowCellHidden {
    background-position: 100% -132px; }
  .RadComboBox_MBen .rcbDisabled .rcbReadOnly .rcbInputCellLeft {
    background-position: 0 -154px; }
  .RadComboBox_MBen .rcbDisabled .rcbReadOnly .rcbInputCellRight {
    background-position: 100% -154px; }
  .RadComboBox_MBen .rcbDisabled .rcbReadOnly .rcbInput {
    color: #a7a7a7; }
  .RadComboBox_MBen .rcbDisabled .rcbReadOnly .rcbArrowCellLeft {
    background-position: -252px -176px; }
  .RadComboBox_MBen .rcbDisabled .rcbReadOnly .rcbArrowCellRight {
    background-position: -270px -176px; }
  .RadComboBox_MBen .rcbDisabled .rcbReadOnly .rcbArrowCellLeft.rcbArrowCellHidden {
    background-position: 0 -154px; }
  .RadComboBox_MBen .rcbDisabled .rcbReadOnly .rcbArrowCellRight.rcbArrowCellHidden {
    background-position: 100% -154px; }
 
.RadComboBoxDropDown_MBen {
  border-color: #c1dbfc;
  color: black;
  background: white;
  font: normal 12px/16px "Segoe UI", Arial, Helvetica, sans-serif; }
  .RadComboBoxDropDown_MBen .rcbHeader,
  .RadComboBoxDropDown_MBen .rcbFooter {
    color: black;
    background-color: #f1f5fb; }
  .RadComboBoxDropDown_MBen .rcbHeader {
    border-bottom-color: #c1dbfc; }
  .RadComboBoxDropDown_MBen .rcbFooter {
    border-top-color: #c1dbfc; }
  .RadComboBoxDropDown_MBen .rcbHovered {
    color: #1e395b;
    background: #eef6ff; }
  .RadComboBoxDropDown_MBen .rcbDisabled {
    color: #a7a7a7;
    background-color: transparent; }
  .RadComboBoxDropDown_MBen .rcbLoading {
    color: #1e395b;
    background: #eef6ff; }
  .RadComboBoxDropDown_MBen .rcbItem em,
  .RadComboBoxDropDown_MBen .rcbHovered em {
    color: #1e395b;
    background: #eef6ff; }
  .RadComboBoxDropDown_MBen .rcbCheckAllItems {
    color: black;
    background-color: #f1f5fb; }
  .RadComboBoxDropDown_MBen .rcbCheckAllItemsHovered {
    color: black;
    background-color: #f1f5fb; }
  .RadComboBoxDropDown_MBen .rcbMoreResults {
    border-top-color: #b8cbde;
    color: black;
    background-color: #f1f5fb; }
    .RadComboBoxDropDown_MBen .rcbMoreResults a {
      background-image: url('Common/radFormSprite.png');
      _background-image: url('Common/radFormSpriteIE6.png');
      background-position: -308px -181px; }
  .RadComboBoxDropDown_MBen .rcbSeparator {
    color: #ffffff;
    background: #8a8a8a; }

Please help.
MBEN
Top achievements
Rank 2
Veteran
 answered on 30 Jan 2014
1 answer
108 views
Dear all

I create Entity Framework then I insert my table to it (Employee)

I can retrieve all data in Employee table using the following :

public class WcfDataService : DataService<CRMSEntities>
{
    // This method is called only once to initialize service-wide policies.
    public static void InitializeService(DataServiceConfiguration config)
    {

        config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
        config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
    }
    [WebGet]
    public int GetCount(string where)
    {
        return  String.IsNullOrEmpty(where) ? CurrentDataSource.Employee.Count() :
          CurrentDataSource.Employee.Where(where).Count();
    }
}


Aspx code

<ClientSettings>
       <DataBinding Location="../WcfDataService.svc"  SelectCountMethod="GetCount">
                    <DataService TableName="Employee"/>
       </DataBinding>
</ClientSettings>


My question is if i want to retrieve employee by id or by name How can i do that?

also if this method of client side is fast way to retrieve data from DB or there is another methods?

Thanks
Jayesh Goyani
Top achievements
Rank 2
 answered on 30 Jan 2014
3 answers
60 views
Hi,

I tried to install TelerikControlPanelSetup_2013_4_1327.exe and get following error.

Could you help?

Thanks,

Dyanko
Telerik team
 answered on 30 Jan 2014
1 answer
111 views
hello all,

I have searched the forums and have not found a similar problem. There are issues listed, but the solution is to set the flag to false or true - NOT have the flag set to false, as I want it, and it just does not work.   The funny thing is that the telerik control that we use to display the same data in a flex app works great.  (That property is named slightly differently - baseAtZero, I think.)  

Any thoughts on what I should look at?  Is this a fixed bug in the latest version of the Telerik controls?

Thanks.



Danail Vasilev
Telerik team
 answered on 30 Jan 2014
1 answer
229 views
If I export to Excel or PDF, it works fine.  If I export to CSV or Pipe Delimited, the file only contains the header.  I've been through what is available online and none of those solutions want to work.

Here is my Grid Code

<telerik:RadGrid ID="gvStaffExport" 
                    AllowPaging="false"
                    AllowSorting="false"
                    AutoGenerateColumns="false"
                    CellPadding="0"
                    CellSpacing="0"
                    Width="100%"
                    PageSize="99999"
                    ShowFooter="false" 
                    runat="server">
    <ExportSettings IgnorePaging="true" OpenInNewWindow="true" ExportOnlyData="false">
        <Pdf PageWidth="297mm" PageHeight="210mm" DefaultFontFamily="Arial Unicode MS" PageTopMargin=".5in" BorderStyle="Thin" BorderColor="#666666" AllowPrinting="true" />
        <Excel FileExtension="xls" />
        <Csv ColumnDelimiter="Comma" FileExtension="csv" EncloseDataWithQuotes="true" RowDelimiter="NewLine"/>
    </ExportSettings>
    <MasterTableView AllowMultiColumnSorting="false" TableLayout="Fixed" ShowFooter="false">
        <Columns>
<telerik:GridBoundColumn DataField="username"
HeaderText="<%$ Resources: Resource, Username %>" HeaderStyle-BorderWidth="0" ItemStyle-BorderWidth="0">
<HeaderStyle
Font-Size="Smaller"
/>

                <ItemStyle Font-Size="Smaller"
/>

            </telerik:GridBoundColumn>

           
<telerik:GridBoundColumn DataField="userID"
Headertext="<%$ Resources: Admin_Common, strT_UserIdentifier %>" >

               
<HeaderStyle
Font-Size="Smaller"
/>

                <ItemStyle Font-Size="Smaller"
/>

            </telerik:GridBoundColumn>

           
<telerik:GridBoundColumn DataField="firstname"
HeaderText="<%$ Resources: Admin_Common, strT_FirstName %>" >

               
<HeaderStyle
Font-Size="Smaller"
/>

                <ItemStyle Font-Size="Smaller"
/>

            </telerik:GridBoundColumn>

           
<telerik:GridBoundColumn DataField="lastname"
HeaderText="<%$ Resources: Admin_Common, strT_LastName %>" >

               
<HeaderStyle
Font-Size="Smaller"
/>

                <ItemStyle Font-Size="Smaller"
/>

            </telerik:GridBoundColumn>

           
<telerik:GridBoundColumn DataField="Agency"
HeaderText="<%$ Resources: Admin_Common, strT_DefaultOffice %>" >

               
<HeaderStyle
Font-Size="Smaller"
/>

                <ItemStyle Font-Size="Smaller"
/>

            </telerik:GridBoundColumn>

           
<telerik:GridBoundColumn DataField="LastLogin"
HeaderText="<%$ Resources: strT_LastLogin %>"
>

               
<HeaderStyle
Font-Size="Smaller"
/>

                <ItemStyle Font-Size="Smaller"
/>

            </telerik:GridBoundColumn>

           
<telerik:GridTemplateColumn>

               
<ItemTemplate>

                   
<asp:Literal ID="litSelected"
runat="server"
/>

               
</ItemTemplate>

           
</telerik:GridTemplateColumn>

        </Columns>

    </MasterTableView>

</telerik:RadGrid>

 
Protected Sub gvStaffExport_NeedDataSource(sender As Object, e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles gvStaffExport.NeedDataSource

        If IsPostBack AndAlso IsNumeric(Me.txtDaysSinceLastLoggedIn.Text) AndAlso Me.hidGridLoaded.Value = "0" Then
                Dim dtResults As New DataTable
                Dim StaffSearchDTOList As New List(Of StaffSearchDTO)
                Dim sLWIA As String = Me.ddlLWIA.SelectedValue.Trim
                If sLWIA = "0" Then sLWIA = ""
                Dim iDays As Integer = CInt(Me.txtDaysSinceLastLoggedIn.Text)
                StaffSearchDTOList = StaffSearchManager.GetListByLastLoginDate(iDays, sLWIA)
                dtResults = StaffSearchDTOList.ToDataTable
                gvStaffExport.DataSource = dtResults
                Me.hidGridLoaded.Value = "1"
                _IsGridLoaded = True
        End If

End Sub

Protected Sub btnExcelImage_Command(ByVal sender As Object, ByVal e As System.EventArgs)
       Export("E")
End Sub

Protected Sub lnkbExcel_Command(sender As Object, e As System.EventArgs)
        Export("E")
End Sub

Protected Sub btnCSVImage_Command(ByVal sender As Object, ByVal e As System.EventArgs)
       Export("C")
End Sub

Protected Sub lnkbCSV_Command(sender As Object, e As System.EventArgs)
        Export("C")
End Sub

Protected Sub btnPipeDelImage_Command(ByVal sender As Object, ByVal e As System.EventArgs)
      Export("I")
End Sub

Protected Sub lnkbPipeDel_Command(sender As Object, e As System.EventArgs)
        Export("I")
End Sub

Protected Sub lnkbPDF_Command(sender As Object, e As System.EventArgs)
       Export("P")
End Sub

Protected Sub btnPDFImage_Command(ByVal sender As Object, ByVal e As System.EventArgs)
       Export("P")
End Sub

Protected Sub Export(sType As String)

        gvStaffExport.ExportSettings.IgnorePaging = True
        gvStaffExport.ExportSettings.UseItemStyles = False
        gvStaffExport.ExportSettings.OpenInNewWindow = True

        Select Case sType
        Case "P"
               gvStaffExport.ExportSettings.UseItemStyles = True
               gvStaffExport.ExportSettings.Pdf.BorderType = GridPdfSettings.GridPdfBorderType.NoBorder
               gvStaffExport.ExportSettings.Pdf.ContentFilter = GridPdfFilter.NoFilter
               gvStaffExport.ExportSettings.Pdf.PageHeader.MiddleCell.TextAlign = GridPdfPageHeaderFooterCell.CellTextAlign.Left
               gvStaffExport.ExportSettings.Pdf.PageHeader.LeftCell.TextAlign = GridPdfPageHeaderFooterCell.CellTextAlign.Left
               gvStaffExport.ExportSettings.Pdf.FontType = Telerik.Web.Apoc.Render.Pdf.FontType.Embed
               gvStaffExport.MasterTableView.ExportToPdf()
        Case "C"
               gvStaffExport.ExportSettings.ExportOnlyData = False
               gvStaffExport.ExportSettings.Csv.ColumnDelimiter = GridCsvDelimiter.Comma
               gvStaffExport.MasterTableView.ExportToCSV()
        Case "E"
               gvStaffExport.ExportSettings.UseItemStyles = True
               gvStaffExport.MasterTableView.ExportToExcel()
         Case "I"
               gvStaffExport.ExportSettings.Csv.ColumnDelimiter = GridCsvDelimiter.VerticalBar
               gvStaffExport.ExportSettings.Csv.FileExtension = "txt"
               gvStaffExport.MasterTableView.ExportToCSV()
        End Select
End Sub


Konstantin Dikov
Telerik team
 answered on 30 Jan 2014
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?