Telerik Forums
UI for ASP.NET AJAX Forum
2 answers
383 views
Hi,
I want to disable my custom "Clear Filter" header menu if there are no filters applied to the RadGrid.
But I am not able to know if filters are applied.

I have tried solutions mentioned in below link
http://stackoverflow.com/questions/8188990/how-to-know-when-filters-are-used-when-using-telerik-rad-grid
including 
sender.get_masterTableView().get_filterExpressions()
sender.get_masterTableView().get_filterExpressions().toOql()

But I am not able to get the filterExpressions successfully.

Can anyone please provide correct code?
Tushar
Top achievements
Rank 1
 answered on 07 Jul 2014
8 answers
161 views
Hi,
I am using RadGrid in my project. I have explicitly set width of all columns.
I have not set width of Grid because I want the Grid to cover all the width. Scrollbar is enabled.

    <div style="height:400px">
        <telerik:RadGrid id="RadGrid1" Height="90%" runat="server" ClientSettings-Scrolling-AllowScroll="true"
            autogeneratecolumns="false" onneeddatasource="RadGrid1_NeedDataSource" 
            enableheadercontextmenu="true" allowfilteringbycolumn="true">
            <HeaderContextMenu>
            </HeaderContextMenu>
            <MasterTableView TableLayout="Fixed">
                <Columns>
                    <telerik:GridBoundColumn DataField="ID" HeaderText="ID" UniqueName="ID" HeaderStyle-Width="100px" />
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name1" UniqueName="Name1" HeaderStyle-Width="200px" />
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name2" UniqueName="Name2" HeaderStyle-Width="100px" />
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name3" UniqueName="Name3" HeaderStyle-Width="200px" />
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name4" UniqueName="Name4" HeaderStyle-Width="100px" />
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name5" UniqueName="Name5" HeaderStyle-Width="200px" />
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name6" UniqueName="Name6" HeaderStyle-Width="200px" />
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name7" UniqueName="Name7" HeaderStyle-Width="100px" />
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name8" UniqueName="Name8" HeaderStyle-Width="200px" />
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name9" UniqueName="Name9" HeaderStyle-Width="100px" />
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name10" UniqueName="Name10" HeaderStyle-Width="200px" />
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name11" UniqueName="Name11" HeaderStyle-Width="100px" />
                    <telerik:GridBoundColumn DataField="Number" HeaderText="Number" UniqueName="Number" HeaderStyle-Width="150px" />
                </Columns>
            </MasterTableView>
        </telerik:RadGrid>
    </div>


In IE and Chrome, when I select less number of columns (2/3), column width is increased automatically to cover all available width.
But in Firefox, column width is not automatically increased. Instead whitespace is displayed on right. Please refer the attched snapshot.
IF I remove TableLayout=Fixed, it works fine in Firefox. But I do not want to remove it since I have explicitly specified each column width.
How can I fix the issue in Firefox?

Thanks in Advance!!

Tushar
Top achievements
Rank 1
 answered on 07 Jul 2014
9 answers
186 views
Hi
I am converting to a newest controls and I am getting the following warning:

Warning   2   'Public Overrides ReadOnly Property Calendar() As Telerik.Web.UI.RadCalendar' is obsolete: 'Please don't touch Calendar property'.

This is what it is objecting to:
<Calendar UseRowHeadersAsSelectors="False" UseColumnHeadersAsSelectors="False" ViewSelectorText="x">
</Calendar>

When I go to
http://www.telerik.com/help/aspnet-ajax/calendar-displaying-popup.html
It seems that the property is still in use (maybe the docs has not been updated).  So, how am I to get rid of the warning and keep the functionality.
Phil
Maria Ilieva
Telerik team
 answered on 07 Jul 2014
1 answer
141 views
I have jquery rating control which I put in RadGrid column. After postback JS and CSS doesn't load. All controls are in RadAjaxPanel. Example in attachment. 

Example
Maria Ilieva
Telerik team
 answered on 07 Jul 2014
3 answers
445 views
Hello Forum

Is there at way to retrieve clickresult from Radconfirm from within a javascriptfunction.

This might be a trivial question, im not sure, I have been starring me blind on solving this. :)

Here goes my last shot that didnt work, any hints are welcome:

 function MainFn() {

             var answer= confirmFn("OK CANCEL ?");              
              alert(answer);
              if (answer==false)
                  return false;  //Break here    
               
               //else  do something more....

               // return an end result
              return false;
                     
          } 


 function confirmFn(text) {
              var callBackFn = function (arg) {
                  if (arg) {                      
                      return true;
                  }
                  else {
                      return false;
                  }

              }
              radconfirm(text, callBackFn);
          } 



         
Mark
Top achievements
Rank 1
 answered on 07 Jul 2014
1 answer
79 views
I have 4 User controls which are loaded or refreshed on selecting a row from grid and the values for the controls on user controls are fetched dynamically as per the values in row selected. 

while debugging i can see that the controls on UC has correct values but the values on User control are not showing ..rather user control itself are not getting displayed.

note : there are no UCs on page load.

Please let me know the reason and solution for this.
Angel Petrov
Telerik team
 answered on 07 Jul 2014
1 answer
275 views
Hi,

I'm using the following code to change a value in a cell in the grid client side:

function ReAssignUser_UpdateGrid(NewUserText) {
   var grdFlowInstances = $find("<%=grdFlowInstances.ClientID%>");
   var masterTableView = grdFlowInstances.get_masterTableView();
   var dataItems = masterTableView.get_dataItems();
   for (var i = 0; i < dataItems.length; ++i) {
     var dataItem = dataItems[i];
     if (dataItem.getDataKeyValue("FlowInstanceID") == FlowInstanceID) {
       var lblAssignedTo = dataItem.findElement("lblAssignedTo");
       if (lblAssignedTo != null)
         lblAssignedTo.innerHTML = NewUserText;
       }
    }
}


This works great until I do something that causes a postback, then the value reverts to the prior value. I'm assuming this is because it's not getting updated in the viewstate. Is there any way to update the viewstate so that the change in the cell value persists between postbacks?

Thanks,
Erik
Kostadin
Telerik team
 answered on 07 Jul 2014
1 answer
82 views
I want to fixed the  number of group of ASP.NET AJAX TILE LIST dynamically. like i have 10 tiles and i want to set these 10 tiles into 3 group and that will be fixed we can't expand the number of group if i want to set it .
Marin Bratanov
Telerik team
 answered on 07 Jul 2014
10 answers
578 views
Hi,
was anyone already able to get the Telerik ASP.NET Ajax Controls get properly to work with VS2013 Preview?
Everything is working in my test project so far, except the Embedded Skins are not provided by WebResource.axd from
the assembly.
MasterPage Codebehind:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Optimization;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace TelerikVS2013
{
    public partial class SiteMaster : MasterPage
    {
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            radScriptManager.Scripts.Add(new ScriptReference { Name = "WebFormsBundle" });
            radScriptManager.Scripts.Add(new ScriptReference { Name = "bootstrap" });
            radScriptManager.Scripts.Add(new ScriptReference { Name = "jquery.ui.combined" });
            BundleResolver resolver = new BundleResolver(BundleTable.Bundles);
            foreach (Bundle bundle in BundleTable.Bundles)
            {
                if (bundle is ScriptBundle)
                {
                    foreach (string js in resolver.GetBundleContents(bundle.Path))
                    {
                        radScriptManager.Scripts.Add(new ScriptReference(js));
                    }
                }
            }
        }
    }
}
web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="Telerik.Skin" value="Office2010Black" />
    <add key="Telerik.ScriptManager.TelerikCdn" value="Disabled" />
    <add key="Telerik.StyleSheetManager.TelerikCdn" value="Disabled" />
    <add key="Telerik.Web.UI.RenderMode" value="lightweight" />
    <add key="Telerik.Web.UI.StyleSheetFolders" value="~/Content/;" />
    <add key="Telerik.Web.UI.EnableEmbeddedSkins" value="false"/>
    <add key="Telerik.Web.SkinsAssembly" value="Telerik.Web.UI.Skins"/>
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5" strict="false" explicit="true" >
    </compilation>
    <httpRuntime targetFramework="4.5" />
    <pages>
      <namespaces>
        <add namespace="System.Web.Optimization" />
      </namespaces>
      <controls>
        <add tagPrefix="telerik" namespace="Telerik.Web.UI" assembly="Telerik.Web.UI"/>
        <add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" />
      </controls>
    </pages>
    <httpHandlers>
      <add path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" validate="false" />
      <add path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" validate="false" />
      <add path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" validate="false" />
      <add path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" validate="false" />
      <add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false" />
    </httpHandlers>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
    </modules>
    <handlers>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
      <remove name="ChartImage_axd" />
      <add name="ChartImage_axd" path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" preCondition="integratedMode" />
      <remove name="Telerik_Web_UI_SpellCheckHandler_axd" />
      <add name="Telerik_Web_UI_SpellCheckHandler_axd" path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" preCondition="integratedMode" />
      <remove name="Telerik_Web_UI_DialogHandler_aspx" />
      <add name="Telerik_Web_UI_DialogHandler_aspx" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" preCondition="integratedMode" />
      <remove name="Telerik_RadUploadProgressHandler_ashx" />
      <add name="Telerik_RadUploadProgressHandler_ashx" path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" preCondition="integratedMode" />
      <remove name="Telerik_Web_UI_WebResource_axd" />
      <add name="Telerik_Web_UI_WebResource_axd" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" preCondition="integratedMode" />
    </handlers>
  </system.webServer>
</configuration>

Master Page Markup
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="TelerikVS2013.SiteMaster" %>
 
<!DOCTYPE html>
 
<html lang="en">
<head runat="server">
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title><%: Page.Title %> - My ASP.NET Application</title>
    <asp:PlaceHolder runat="server">
        <%: Scripts.Render("~/bundles/modernizr") %>
    </asp:PlaceHolder>
    <webopt:BundleReference runat="server" Path="~/Content/css" />
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <telerik:RadStyleSheetManager ID="radStyleSheetManager" runat="server">
        <StyleSheets>
        </StyleSheets>
    </telerik:RadStyleSheetManager>
</head>
<body>
    <form runat="server">
        <telerik:RadScriptManager ID="radScriptManager" runat="server" ScriptMode="Debug" AllowCustomErrorsRedirect="true" AsyncPostBackTimeout="600" EnablePartialRendering="true">
            <CompositeScript>
                <Scripts>
                    <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
                    <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
                    <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />
                </Scripts>
            </CompositeScript>
        </telerik:RadScriptManager>
        <telerik:RadAjaxManager runat="server" ID="radAjaxManager" />
        <header>
            <div class="navbar navbar-inverse navbar-fixed-top">
                <div class="navbar-inner">
                    <div class="container">
 
                        <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                        </button>
 
                        <a class="brand" runat="server" href="~/">Application name</a>
 
                        <div class="nav-collapse collapse">
                            <ul class="nav nav-pills nav-stacked">
                                <li><a runat="server" href="~/">Home</a></li>
                                <li><a runat="server" href="~/About">About</a></li>
                                <li><a runat="server" href="~/Contact">Contact</a></li>
                            </ul>
                        </div>
 
                    </div>
                </div>
            </div>
        </header>
        <div class="container">
            <asp:ContentPlaceHolder ID="MainContent" runat="server">
            </asp:ContentPlaceHolder>
            <hr />
            <footer>
                <p>© <%: DateTime.Now.Year %> - My ASP.NET Application</p>
            </footer>
        </div>
 
    </form>
</body>
</html>

Cheers Otto.
Marin Bratanov
Telerik team
 answered on 07 Jul 2014
1 answer
192 views
I use Telerik 2014.2.618.45 and have the problem with RadOrgChart.

When I bind data with only 2 or 3 nodes at the same level, it is shown collectedly. However, if there are a lot of nodes, the nodes on the right will be dropped to the new line. I also found this problem on your example about Drill Down.

I try to solve this problem by using the suggestion from Node Alignment Issue, but it didn't help since I didn't hide the RadOrgChart. I called it on Page_Load. In addition, I'm using this RadOrgChart Inside RadPageView (My OrgChart is showing on the first page)

<telerik:RadAjaxPanel ID="panOrganize" runat="server" LoadingPanelID="radAjaxLoadingPanel">
 
    <!-- TabStrip -->
    <telerik:RadTabStrip ID="rtabOrganize" runat="server" MultiPageID="rmpOrganize" SelectedIndex="0" Width="100%" CssClass="FontBold" OnTabClick="rtabOrganize_TabClick">
        <Tabs>
            <telerik:RadTab CssClass="FontBold" Text="Organize Chart" />
            <telerik:RadTab CssClass="FontBold" Text="User" Enabled="false" />
        </Tabs>
    </telerik:RadTabStrip>
    <!-- /TabStrip -->
 
    <telerik:RadMultiPage ID="rmpOrganize" runat="server" SelectedIndex="0" ScrollBars="Both">
 
        <!-- OrgChart -->
        <telerik:RadPageView ID="rpvOrgOrganize" runat="server" Width="100%">
            <telerik:RadOrgChart ID="radOrgChart" runat="server" Width="100%" CssClass="SpacingBottom20" LoadOnDemand="Nodes"
                DataFieldID="OrgID" DataFieldParentID="ParentID"
                DisableDefaultImage="true" EnableDrillDown="true" MaxDataBindDepth="10"
                OnNodeDrop="radOrgChart_NodeDrop" EnableDragAndDrop="true"
                OnNodeDataBound="radOrgChart_NodeDataBound">
                <ItemTemplate>
                    <asp:Panel ID="panNode" runat="server" CssClass="TemplateHolder">
                        <asp:Table ID="tbOrgChart" runat="server" Style="table-layout: fixed; width: 120px;" CellPadding="0" CellSpacing="0">
                            <asp:TableRow>
                                <asp:TableCell Width="100px">
                                    <asp:Label ID="lblTypeName" runat="server" Text='<%# Eval("OrganizationType.TypeName")%>' CssClass="FontBold" /> 
                                </asp:TableCell>
                                <asp:TableCell RowSpan="4" Width="15px">
                                    <asp:LinkButton ID="lbtnSearch" runat="server" BorderStyle="None" CssClass="fa fa-user"
                                        CommandArgument='<%# Eval("OrgID")%>' CommandName='<%# Eval("Name")%>' OnCommand="lbtnSearch_Command">
                                    </asp:LinkButton>
                                    <asp:LinkButton ID="lbtnAdd" runat="server" BorderStyle="None" class="fa fa-plus"
                                        CommandArgument='<%# Eval("OrgID")%>' CommandName="Add" OnCommand="lbtnAdd_Command">
                                    </asp:LinkButton>
                                    <asp:LinkButton ID="lbtnEdit" runat="server" BorderStyle="None" class="fa fa-pencil"
                                        CommandArgument='<%# Eval("OrgID")%>' CommandName="Edit" OnCommand="lbtnEdit_Command">
                                    </asp:LinkButton>
                                    <asp:LinkButton ID="lbtnDelete" runat="server" BorderStyle="None" class="fa fa-times"
                                        CommandArgument='<%# Eval("OrgID")%>' CommandName="Delete" OnCommand="lbtnDelete_Command">
                                    </asp:LinkButton>
                                </asp:TableCell>
                            </asp:TableRow>
                            <asp:TableRow>
                                <asp:TableCell RowSpan="3" VerticalAlign="Top" Wrap="true" Style="max-width: 100px; overflow-wrap: break-word;">
                                    <asp:Label ID="lblName" runat="server" Text='<%# Eval("Name")%>' />
                                    <br />
                                    <asp:Label ID="lblAbbreviation" runat="server" Text='<%#Eval("Abbreviation") != null && Eval("Abbreviation") != String.Empty ? "(" + Eval("Abbreviation") + ")" : String.Empty%>' />
                                </asp:TableCell>
                            </asp:TableRow>
                        </asp:Table>
                    </asp:Panel>
                </ItemTemplate>
            </telerik:RadOrgChart>
            <telerik:RadWindow ID="rwOrganize" runat="server" AutoSize="true" Modal="true" Behaviors="Close"
                Title="Organization" VisibleTitlebar="true" VisibleStatusbar="false" OnClientClose="onClientClose">
                <ContentTemplate>
                    <div class="row">
                        <div class="col-xs-12">
                            <asp:Table runat="server" ID="tbWindowOrganize" CellPadding="5" Width="100%" CellSpacing="3" Style="min-width: 300px;">
                                <asp:TableRow>
                                    <asp:TableCell ColumnSpan="3" />
                                </asp:TableRow>
                                <asp:TableRow>
                                    <asp:TableCell Width="25%" Style="max-width: 150px;">
                                        <asp:Label ID="lblOrgName" runat="server" Text="Name" />
                                    </asp:TableCell>
                                    <asp:TableCell Width="5px">
                                        <asp:Label runat="server" Text=":" />
                                    </asp:TableCell>
                                    <asp:TableCell>
                                        <telerik:RadTextBox ID="txtOrgName" runat="server" Width="100%" />
                                    </asp:TableCell>
                                </asp:TableRow>
                                <asp:TableRow>
                                    <asp:TableCell>
                                        <asp:Label ID="lblOrgAbbreviation" runat="server" Text="Abbreviation" />
                                    </asp:TableCell>
                                    <asp:TableCell>
                                        <asp:Label runat="server" Text=":" />
                                    </asp:TableCell>
                                    <asp:TableCell>
                                        <telerik:RadTextBox ID="txtOrgAbbreviation" runat="server" Width="100%" />
                                    </asp:TableCell>
                                </asp:TableRow>
                                <asp:TableRow>
                                    <asp:TableCell VerticalAlign="Top">
                                        <asp:Label ID="lblOrgDescription" runat="server" Text="Description" />
                                    </asp:TableCell>
                                    <asp:TableCell VerticalAlign="Top">
                                        <asp:Label runat="server" Text=":" />
                                    </asp:TableCell>
                                    <asp:TableCell>
                                        <telerik:RadTextBox ID="txtOrgDescription" runat="server" Width="100%" Height="70px" TextMode="MultiLine" Rows="3" />
                                    </asp:TableCell>
                                </asp:TableRow>
                                <asp:TableRow>
                                    <asp:TableCell>
                                        <asp:Label ID="lblOrgType" runat="server" Text="Lastname" />
                                    </asp:TableCell>
                                    <asp:TableCell>
                                        <asp:Label runat="server" Text=":" />
                                    </asp:TableCell>
                                    <asp:TableCell>
                                        <telerik:RadComboBox ID="ddlOrgType" runat="server" Width="100%" />
                                    </asp:TableCell>
                                </asp:TableRow>
                                <asp:TableRow>
                                    <asp:TableCell HorizontalAlign="Right" ColumnSpan="3">
                                        <asp:Button ID="btnOrganizeCancel" Text="Cancel" runat="server" CssClass="btn btn-inverse SpacingAll15" BorderStyle="None" OnClick="btnOrganizeCancel_Click" />
                                        <asp:Button ID="btnOrganizeSave" Text="Save" runat="server" CssClass="btn btn-success SpacingAll15" BorderStyle="None" OnClick="btnOrganizeSave_Click" />
                                    </asp:TableCell>
                                </asp:TableRow>
                            </asp:Table>
                        </div>
                    </div>
                </ContentTemplate>
            </telerik:RadWindow>
        </telerik:RadPageView>
    </telerik:RadMultiPage>
</telerik:RadAjaxPanel>

Boyan Dimitrov
Telerik team
 answered on 07 Jul 2014
Narrow your results
Selected tags
Tags
+? more
Top users last month
Hiba
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Max
Top achievements
Rank 1
Veteran
Iron
Alina
Top achievements
Rank 1
Rakhee
Top achievements
Rank 1
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Hiba
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Max
Top achievements
Rank 1
Veteran
Iron
Alina
Top achievements
Rank 1
Rakhee
Top achievements
Rank 1
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?