Friday 31 October 2014

CSS for High Contrast Mode (HCM) Friendly Images

Whenever user switch web site in High Contrast mode.
It makes the css background images invisible.

To solve this issue.

There are two ways
1) <img> tag
2) CSS using :before psuedo code

1) <img> tag

Replace backgound-image css with <img> tag . It will display in HCM

2) CSS using :before psuedo code

Use following css to display in HCM.

classname:before {
content: url(image path);
}



Monday 22 September 2014

ServiceDefinition(.csdef) Transformation in Azure project

Create the ServiceDefinition environment wise files in azure project
Format: ServiceDefinition.$(Configuration).csdef

Add following line of code 
in Project .ccproj file

      <ItemGroup>
             <EnvironmentDefinition Include="ServiceDefinition.Debug.csdef">
                    <BaseConfiguration>ServiceDefinition.csdef</BaseConfiguration>
               </EnvironmentDefinition>
               <EnvironmentDefinition Include="ServiceDefinition.Production.csdef">
                    <BaseConfiguration>ServiceDefinition.csdef</BaseConfiguration>
               </EnvironmentDefinition>
               <EnvironmentDefinition Include="ServiceDefinition.Int.csdef">
                     <BaseConfiguration>ServiceDefinition.csdef</BaseConfiguration>
                </EnvironmentDefinition>
               <EnvironmentDefinition Include="ServiceDefinition.Dev.csdef">
                    <BaseConfiguration>ServiceDefinition.csdef</BaseConfiguration>
               </EnvironmentDefinition>
               <EnvironmentDefinition Include="ServiceDefinition.Cloud.csdef">
                    <BaseConfiguration>ServiceDefinition.csdef</BaseConfiguration>
               </EnvironmentDefinition>
               <None Include="@(EnvironmentDefinition)" />
      </ItemGroup>

And then  add

  <Target Name="ValidateServiceFiles" Inputs="@(EnvironmentDefinition);@(EnvironmentDefinition->'%(BaseConfiguration)')" Outputs="@(EnvironmentDefinition->'%(Identity).transformed.csdef')">
          <Message Text="ValidateServiceFiles: Transforming %(EnvironmentDefinition.BaseConfiguration) to %(EnvironmentDefinition.Identity).tmp via %(EnvironmentDefinition.Identity)" Importance="High" />
          <TransformXml Source="%(EnvironmentDefinition.BaseConfiguration)" Transform="%(EnvironmentDefinition.Identity)" Destination="%(EnvironmentDefinition.Identity).tmp" />
          <Message Text="ValidateServiceFiles: Transformation complete; starting validation" Importance="High" />
          <ValidateServiceFiles ServiceDefinitionFile="%(EnvironmentDefinition.Identity).tmp" ServiceConfigurationFile="ServiceConfiguration.$(Configuration).cscfg" />
          <Message Text="ValidateServiceFiles: Validation complete; renaming temporary file" Importance="High" />
          <Move SourceFiles="%(EnvironmentDefinition.Identity).tmp" DestinationFiles="%(EnvironmentDefinition.Identity).transformed.csdef" />
 </Target>

<Target Name="MoveTransformedEnvironmentConfigurationXml" AfterTargets="AfterPackageComputeService">
           <Copy SourceFiles="ServiceDefinition.$(Configuration).csdef.transformed.csdef" DestinationFiles="$(OutDir)ServiceDefinition.csdef" />
</Target>


Thursday 18 September 2014

JQuery: Abort the previous inprocess ajax call before calling new request

 $(document).ready(function () {
            var currentRequest = null;
            $('#label').click(function () {
                var text = jQuery(this).val();
                if (currentRequest != null) {
                    currentRequest.abort();
                }
                currentRequest = $.ajax({
                    type: 'POST',
                    data: 'name:xyz',
                    url: 'call.ashx/',
                    success: function (data) {
                        $('#label').html(data);
                    }
                });
            });
        });