Telerik Forums
UI for ASP.NET AJAX Forum
6 answers
183 views
Strange problem in IE11 all work around and finally here.

Problem on first attempt dropdown, works well on second attempt.

Check the screen shot:

Html

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
            <telerik:RadComboBox ID="cmbRole" runat="server" EnableAutomaticLoadOnDemand="true" DataValueField="RoleId" DataTextField="RoleName" DataSourceID="sqlcmbRole">
            </telerik:RadComboBox>
            <asp:SqlDataSource runat="server" ID="sqlcmbRole" ConnectionString='<%$ ConnectionStrings:ConnectionString %>' SelectCommand="SELECT [RoleId], [RoleName],Status FROM [vw_Display_Roles]">
            </asp:SqlDataSource>
        </div>
    </form>
</body>
</html>
Mats
Top achievements
Rank 1
 answered on 11 Apr 2014
13 answers
684 views
Hi,

I've got a problem in a solution that is also reproduced using your demo web page. The setup is as follows:
1. Skin: sunset.
2. Dropdown: height - maximum, 220px.
3. Load on Demand: custom, Enable 'Show More Results' box.
Browser: ie11.

Steps to reproduce:
0. Leave the drop down tab open.
1. Click on the input box - the dropdown is shown.
2. Enter letter 'a' - the content is filtered to all items starting with 'a'.
3. Close the dropdown by clicking the arrow.
4. Use backspace or delete key to remove the 'a' letter - the input text is changed - the dropdown is shown again, this time it has layout rendering problems: items that go beyond the combobox height have transparent background and the text is thus scribbled. Also, the "More Results" box is not shown.

The same issue can be reproduced in "silk" skin - but only with "More results" box not showing - that's because it defines white background for .rcbList element.
Workaround is to close/open dropdown - then it is rendered correctly.

Could you please advise on whether there is better workaround or any estimation of whether issue will be fixed or when.

Thanks!
Best regards,
Vasile.


Mats
Top achievements
Rank 1
 answered on 11 Apr 2014
2 answers
225 views
Hi,

    I have RadEditor with document manager which allows users to upload files. Code is shown below
 
<telerik:RadEditor ID="rdEdObjectives" Skin="WebBlue" Width="800px" EditModes="Design" Height="200px" runat="server">
<CssFiles>
<telerik:EditorCssFile Value="~/EditorContentArea.css" />
</CssFiles>
<Tools>
<telerik:EditorToolGroup>
<telerik:EditorTool Name="Cut" />
<telerik:EditorTool Name="Copy" />
<telerik:EditorTool Name="Paste" />
<telerik:EditorTool Name="Undo" />
<telerik:EditorTool Name="Redo" />
<telerik:EditorTool Name="FontName" />
<telerik:EditorTool Name="RealFontSize" />
<telerik:EditorTool Name="Bold" />
<telerik:EditorTool Name="Italic" />
<telerik:EditorTool Name="Underline" />
<telerik:EditorTool Name="JustifyLeft" />
<telerik:EditorTool Name="JustifyCenter" />
<telerik:EditorTool Name="JustifyRight" />
<telerik:EditorTool Name="JustifyFull" />
<telerik:EditorTool Name="Indent" />
<telerik:EditorTool Name="Outdent" />
<telerik:EditorTool Name ="InsertUnorderedList" />
<telerik:EditorTool Name="InsertOrderedList" />
<telerik:EditorTool Name="ForeColor" />
<telerik:EditorTool Name="BackColor" />
<telerik:EditorTool Name="InsertSymbol" />
<telerik:EditorTool Name="InsertTable" />
<telerik:EditorTool Name="LinkManager" />
<telerik:EditorTool Name="DocumentManager" />
</telerik:EditorToolGroup>
</Tools>
<DocumentManager ViewPaths="~/AttachmentDocs" UploadPaths="~/AttachmentDocs" DeletePaths="~/AttachmentDocs,~/AttachmentDocs" MaxUploadFileSize="10240000" />
</telerik:RadEditor> 

A wiered issue that i am facing is that everyting is working fine on my local and QA environment. But when I upload files to Production it shows files uploaded to Prod and I can also create a link out it and embed it to my editor. When I click on this link from a live website I can access the file. So far so good. 

But when I check my Prod folder ("~/AttachmentDocs) where I am uploading the folder is empty!  But when I verify the Link it shows the correct path.  Why can't I see the files on Prod that I am uploading.

What am I missing here. It works on QA and local.
 

Ianko
Telerik team
 answered on 11 Apr 2014
1 answer
133 views
Hi everyone...i've created a webpart containing a a mask for file uploads, i've not used RadAsyncUpload because RadUpload is more suitable for my purpose....that's my code:

my .aspx:

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Assembly Name="Telerik.Web.UI, Version=2014.1.225.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI, Version=2014.1.225.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="FileUploadWebPartUserControl.ascx.cs" Inherits="FileUpload.FileUploadWebPart.FileUploadWebPartUserControl" %>

<style type="text/css">

.submitArea
{
     padding-top: 20px;
     padding-bottom: 20px;
}

</style>
<script type="text/javascript">

    function pageLoad() { }

    var prm = Sys.WebForms.PageRequestManager.getInstance();
    var originalClientSubmit;

    if (!originalClientSubmit)
        originalClientSubmit = Telerik.Web.UI.RadProgressManager.prototype._clientSubmitHandler;

    Telerik.Web.UI.RadProgressManager.prototype._clientSubmitHandler = function (e) {
        if (!prm._postBackSettings.async)
            originalClientSubmit.apply(this, [e]);
    }

</script>
<telerik:RadFormDecorator ID="QsfFromDecorator" runat="server" DecoratedControls="All" EnableRoundedCorners="false" />
<telerik:RadProgressManager ID="Radprogressmanager1" runat="server"></telerik:RadProgressManager>
<table>
    <tr>
        <td>
            <telerik:RadUpload ID="RadUpload1" runat="server"></telerik:RadUpload>
        </td>
        <td>
            <div>
                <asp:Repeater ID="repeaterResults" runat="server" Visible="False">
                    <HeaderTemplate>
                        <div class="title">File caricati:</div>           
                        <br />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <%#DataBinder.Eval(Container.DataItem, "FileName")%> 
                        <br />
                        <%#DataBinder.Eval(Container.DataItem, "ContentLength").ToString() + " bytes"%>
                        <br />
                        <br />
                    </ItemTemplate>
                </asp:Repeater>
                <asp:Label ID="labelNoResults" runat="server" Visible="True">Nessun file caricato</asp:Label>
            </div>
        </td>
    </tr>
</table>
<div class="submitArea">
    <asp:Button ID="SubmitButton" runat="server" Text="Upload files" OnClick="SubmitButton_Click"></asp:Button>
</div>
<telerik:RadProgressArea ID="ProgressArea1" EnableAjaxSkinRendering="false" runat="server">
</telerik:RadProgressArea>

my .aspx.cs:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Telerik.Web.UI;

namespace FileUpload.FileUploadWebPart
{
    public partial class FileUploadWebPartUserControl : UserControl
    {

        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);
            if (scriptManager == null)
            {
                scriptManager = new RadScriptManager();
                this.Page.Form.Controls.AddAt(0, scriptManager);
            }
        }

        protected override void OnLoad(EventArgs e)
        {
            string[] allowedFileExtensions = new string[3] { ".xls", ".xlsx", ".xml" };
            RadUpload1.AllowedFileExtensions = allowedFileExtensions;
            RadUpload1.MaxFileInputsCount = 3 - RadUpload1.UploadedFiles.Count;
            RadUpload1.InitialFileInputsCount = 3 - RadUpload1.UploadedFiles.Count;
        }
        
        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            if (RadUpload1.UploadedFiles.Count > 0)
            {
                repeaterResults.DataSource = RadUpload1.UploadedFiles;
                repeaterResults.DataBind();
                labelNoResults.Visible = false;
                repeaterResults.Visible = true;
            }
            else
            {
                labelNoResults.Visible = true;
                repeaterResults.Visible = false;
            }
        }

    }
}

I've two little problems i want to ask for help:

1 - on the SubmitButton_Click (Upload Files), i receive a message error that you can see in file attached "Immagine 1"; the file is correctly uploaded as i can see in debug (RadUpload1.UploadedFiles contains the element i've uploaded) but i don't want to see anymore this message error; i've just watched following posts about this matter: http://www.telerik.com/forums/277270-radupload-ajax-callback-error-source-url-returned-invalid-content - http://www.telerik.com/forums/radupload-ajax-callback-erro-source-url-returned-invalid-content but neither help me to solve the problem.

2 - the "Remove" button is not styled correctly as you can see in file attached "Immagine 2", how can i modify its style?

Thanks in advance,

Regards, Carla
Plamen
Telerik team
 answered on 11 Apr 2014
1 answer
135 views
Hi,

we want to place 4 orgchart controls on the same page and only the 2 first appears.
The strange thing is that html tags are here but there is a visibility problem on the div with "rocViewPort" class.

Does anybody has already had this problem ?

Here is our code :

<telerik:RadOrgChart runat="server" ID="RadOrgChart1" GroupColumnCount="1" />
<telerik:RadOrgChart runat="server" ID="RadOrgChart2" GroupColumnCount="1" />
<telerik:RadOrgChart runat="server" ID="RadOrgChart3" GroupColumnCount="1" />
<telerik:RadOrgChart runat="server" ID="RadOrgChart4" GroupColumnCount="2" />
 
<asp:SqlDataSource id="SqlDataSource1" Runat="server" SelectCommand="SELECT id, idGroupe, nom, prenom, poste FROM INT_OrgEmployes" ConnectionString="<%$ ConnectionStrings:Intranet %>" ProviderName="<%$ ConnectionStrings:Intranet.ProviderName %>" /> 
<asp:SqlDataSource id="SqlDataSource5" Runat="server" SelectCommand="SELECT id, idParent, nom FROM INT_OrgGroupes WHERE idOrg=1" ConnectionString="<%$ ConnectionStrings:Intranet %>" ProviderName="<%$ ConnectionStrings:Intranet.ProviderName %>" />
<asp:SqlDataSource id="SqlDataSource6" Runat="server" SelectCommand="SELECT id, idParent, nom FROM INT_OrgGroupes WHERE idOrg=2" ConnectionString="<%$ ConnectionStrings:Intranet %>" ProviderName="<%$ ConnectionStrings:Intranet.ProviderName %>" />
<asp:SqlDataSource id="SqlDataSource7" Runat="server" SelectCommand="SELECT id, idParent, nom FROM INT_OrgGroupes WHERE idOrg=3" ConnectionString="<%$ ConnectionStrings:Intranet %>" ProviderName="<%$ ConnectionStrings:Intranet.ProviderName %>" />
<asp:SqlDataSource id="SqlDataSource8" Runat="server" SelectCommand="SELECT id, idParent, nom FROM INT_OrgGroupes WHERE idOrg=4" ConnectionString="<%$ ConnectionStrings:Intranet %>" ProviderName="<%$ ConnectionStrings:Intranet.ProviderName %>" />

ArrayList listOrg = new ArrayList();
 
listOrg.Add(RadOrgChart1);
listOrg.Add(RadOrgChart2);
listOrg.Add(RadOrgChart3);
listOrg.Add(RadOrgChart4);
 
foreach (RadOrgChart unOrg in listOrg)
{
    unOrg.GroupEnabledBinding.GroupItemBindingSettings.DataFieldID = "id";
    unOrg.GroupEnabledBinding.GroupItemBindingSettings.DataFieldNodeID = "idGroupe";
    unOrg.GroupEnabledBinding.GroupItemBindingSettings.DataTextField = "nom";
    unOrg.RenderedFields.ItemFields.Add(new Telerik.Web.UI.OrgChartRenderedField() { DataField = "poste" });
    unOrg.GroupEnabledBinding.GroupItemBindingSettings.DataSource = SqlDataSource1;
}
 
RadOrgChart1.GroupEnabledBinding.NodeBindingSettings.DataFieldID = "id";
RadOrgChart1.GroupEnabledBinding.NodeBindingSettings.DataFieldParentID = "idParent";
RadOrgChart1.RenderedFields.NodeFields.Add(new Telerik.Web.UI.OrgChartRenderedField() { DataField = "nom" });
RadOrgChart1.GroupEnabledBinding.NodeBindingSettings.DataSource = SqlDataSource5;
RadOrgChart1.DataBind();
 
RadOrgChart2.GroupEnabledBinding.NodeBindingSettings.DataFieldID = "id";
RadOrgChart2.GroupEnabledBinding.NodeBindingSettings.DataFieldParentID = "idParent";
RadOrgChart2.RenderedFields.NodeFields.Add(new Telerik.Web.UI.OrgChartRenderedField() { DataField = "nom" });
RadOrgChart2.GroupEnabledBinding.NodeBindingSettings.DataSource = SqlDataSource6;
RadOrgChart2.DataBind();
 
RadOrgChart3.GroupEnabledBinding.NodeBindingSettings.DataFieldID = "id";
RadOrgChart3.GroupEnabledBinding.NodeBindingSettings.DataFieldParentID = "idParent";
RadOrgChart3.RenderedFields.NodeFields.Add(new Telerik.Web.UI.OrgChartRenderedField() { DataField = "nom" });
RadOrgChart3.GroupEnabledBinding.NodeBindingSettings.DataSource = SqlDataSource7;
RadOrgChart3.DataBind();
 
RadOrgChart4.GroupEnabledBinding.NodeBindingSettings.DataFieldID = "id";
RadOrgChart4.GroupEnabledBinding.NodeBindingSettings.DataFieldParentID = "idParent";
RadOrgChart4.RenderedFields.NodeFields.Add(new Telerik.Web.UI.OrgChartRenderedField() { DataField = "nom" });
RadOrgChart4.GroupEnabledBinding.NodeBindingSettings.DataSource = SqlDataSource8;
RadOrgChart4.DataBind();







Peter Filipov
Telerik team
 answered on 11 Apr 2014
1 answer
92 views
Hello,

We are using a radscheduler and allow users to drag and drop appointments.  This triggers the server side OnAppointmentUpdate method just fine.

Protected Sub RadScheduler1_OnAppointmentUpdate(ByVal sender As Object, ByVal e As AppointmentUpdateEventArgs) Handles RadScheduler1.AppointmentUpdate

We currently update the modified date and move on. 
However we now need to display the form we use to add or edit an appointment. 

We currently are using the two methods on new or double click edit. 
Protected Sub RadScheduler1_FormCreating(ByVal sender As Object, ByVal e As SchedulerFormCreatingEventArgs)
Protected Sub RadScheduler1_FormCreated(ByVal sender As Object, ByVal e As SchedulerFormCreatedEventArgs) Handles RadScheduler1.FormCreated

This ideally would occur server side and we use VB.

From our OnAppointmentUpdate method can I either trigger the FormCreating method or do I need to call an intermediary method first.

Thank you


Plamen
Telerik team
 answered on 11 Apr 2014
1 answer
92 views
Hello,

I am having an issue where I've set up the row and group fields for an OLAP data source.  When the grid is displayed, the totals row is the only row that is displayed in the grid.

In the configuration panel, I can see the fields are in the "Row Fields" listbox, but they are not displaying in the grid.  If I drag the field from the Row Fields list box to the All Fields listbox and then back to the Row Fields listbox, the row(s) for the field then appears in the grid.

Any ideas on why they are not initially appearing?

Regards,
Scott
Pavlina
Telerik team
 answered on 11 Apr 2014
2 answers
799 views
Hello,

On my page I have a ComboBox where the user can choose a name and I also have a TextBox where the user can enter one or more values. I am trying to figure out how to take the value from the ComboBox (w/ @Name parameter) and the value(s) from the TextBox (w/ @ProductNum parameter(s))
and  use those as Parameters  together (@Name, @ProductNum) in a Procedure that I have created when I click the Generate Template button.

I am stuck and I am not sure what my next step should be. Any help would be appreciated.

aspx
<%@ Page Title="Product Template" Language="C#" MasterPageFile="~/MasterPages/M.Master" AutoEventWireup="true" CodeBehind="ProductTemplate.aspx.cs" Inherits="ProductTemplate" Theme="Default" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server" ViewStateMode="Inherit">
 
<style>
.addButton
{
    float: right;
    display: block;
}
 
</style>
 
 
    <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" Height="300px" Width="450px">
  
     <table>
        <tr>
            <td>
                <asp:Label ID="NameLbl" runat="server" Text="Name: " Width="120px" ></asp:Label>
            </td>
            <td>
                <telerik:RadComboBox ID="NameRCB" runat="server" AutoPostBack="True" DataSourceID="dllDataSource"
                    DataTextField="Customer_Name" DataValueField="Customer_Name" Width="200px"
                    AppendDataBoundItems="true">
                    <Items>
                        <telerik:RadComboBoxItem Text="- Name -" Value="0" Selected="true"></telerik:RadComboBoxItem>
                    </Items>
                </telerik:RadComboBox>
            </td>
            <td></td>
            <td>
                <asp:Label ID="ProductLbl" runat="server" Text="Product: "></asp:Label>
            </td>
            <td>
                <telerik:RadTextBox ID="ProductTB" runat="server">
                </telerik:RadTextBox>
            </td>
            <td></td>
            <td>
                <asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator1" Display="None"
                    ControlToValidate="ProductTB" ErrorMessage="Enter a Product Number"></asp:RequiredFieldValidator>
                <telerik:RadButton ID="RbSelect" runat="server" Text=" Select "
                    onclick="RbSelect_Click" />
            </td>
        </tr>
    </table><br />
 
 
    <!-- list -->
 
        <telerik:RadListBox ID="RadListBox1" runat="server" Height="250px">
        </telerik:RadListBox>
 
        <telerik:RadTextBox ID="RadTextBox1" runat="server" TextMode="MultiLine" Height="250px" Width="200px" >
        </telerik:RadTextBox>
    </telerik:RadAjaxPanel>
 
 
    <br />
 
    <telerik:RadButton ID="RbGenerate" runat="server" Text="Generate Template" style="margin-left: 150px" onclick="RbGenerate_Click">
    </telerik:RadButton>
     
    <br />
    <br />
 
    <asp:ValidationSummary runat="server" ShowMessageBox="false" ID="ValidationSummary1">
    </asp:ValidationSummary>
 
    <!-- datasource for RadComboBox -->
    <asp:SqlDataSource ID="dllDataSource" runat="server"
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
        SelectCommand="dbo.DropDownPROC" SelectCommandType="StoredProcedure" >
    </asp:SqlDataSource>
    <!-- datasource for grid -->
 
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" EnableAJAX="true" DefaultLoadingPanelID="RadAjaxLoadingPanel1">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="NameRCB">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="OrdersGrid" LoadingPanelID="RadAjaxLoadingPanel1">
                    </telerik:AjaxUpdatedControl>
                    <telerik:AjaxUpdatedControl ControlID="NameRCB"></telerik:AjaxUpdatedControl>
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default">
    </telerik:RadAjaxLoadingPanel>
 
</asp:Content>


.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using System.Data.SqlClient;
using System.Data;
 
namespace EE.Intranet.Purchasing
{
    public partial class ProductTemplate : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
 
        protected void RbSelect_Click(object sender, EventArgs e)
        {
             
            RadTextBox1.Text = ProductTB.Text;
            RadListBox1.Items.Add(new RadListBoxItem(HttpUtility.HtmlEncode(ProductTB.Text.Trim())));
            ProductTB.Text = string.Empty;
        }
 
        protected void RbGenerate_Click(object sender, EventArgs e)
        {
 
            /*using (SqlConnection conn = new SqlConnection("connection1"))
            {
                conn.Open();
 
                SqlCommand comm = new SqlCommand("dbo.sp_Proccccc", conn);
                comm.CommandType = CommandType.StoredProcedure;
                comm.Parameters.Add(new SqlParameter("@Name", Name));
                comm.Parameters.Add(new SqlParameter("@ProductNum", ProductNumber));
                comm.ExecuteNonQuery();
 
                conn.Close();
            }*/
        }
    }
}



I have also attached a pic of what  my current page looks like.

Thank you,

Brett
Danail Vasilev
Telerik team
 answered on 11 Apr 2014
2 answers
212 views
I have a file explorer on a screen and it loads the treeview, but it always shows the right arrow next to every folder regardless if it has files or not.  How do you set it to not show that arrow if the folder is empty
Vessy
Telerik team
 answered on 11 Apr 2014
1 answer
307 views

 protected void GridsettSave_Click(object sender, EventArgs e)
        {
 foreach (GridDataItem item in RadGridCommonSetting.Items)
            {
                RadSkinManager Skin = item.FindControl("Skin") as RadSkinManager;
                DropDownList CellSelectionMode = item.FindControl("CellSelectionMode") as DropDownList;
          }
       }
but this code shows Null every time
Princy
Top achievements
Rank 2
 answered on 11 Apr 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?