Advertisement
Guest User

Untitled

a guest
Aug 31st, 2016
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 4.75 KB | None | 0 0
  1. <html xmlns:mso="urn:schemas-microsoft-com:office:office" xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
  2. <head>
  3. <title>Contains Multi-value Refinement Item</title>
  4.  
  5. <!--[if gte mso 9]><xml>
  6. <mso:CustomDocumentProperties>
  7. <mso:CompatibleManagedProperties msdt:dt="string"></mso:CompatibleManagedProperties>
  8. <mso:TemplateHidden msdt:dt="string">0</mso:TemplateHidden>
  9. <mso:CompatibleSearchDataTypes msdt:dt="string"></mso:CompatibleSearchDataTypes>
  10. <mso:MasterPageDescription msdt:dt="string"></mso:MasterPageDescription>
  11. <mso:ContentTypeId msdt:dt="string">0x0101002039C03B61C64EC4A04F5361F385106604</mso:ContentTypeId>
  12. <mso:TargetControlType msdt:dt="string">;#Refinement;#</mso:TargetControlType>
  13. <mso:HtmlDesignAssociated msdt:dt="string">1</mso:HtmlDesignAssociated>
  14. </mso:CustomDocumentProperties></xml><![endif]-->
  15. </head>
  16. <body>
  17. <script>
  18.     $includeScript("", "~sitecollection/_catalogs/masterpage/Display Templates/Filters/Filter_MultiValue_Body.js");
  19. </script>
  20. <div id="Filter_Contains_MultiValue">
  21. <!--#_
  22. var Options = {
  23.    ShowCounts: false
  24. };
  25.  
  26. var listData = ctx.ListData;
  27. var hasControl = !$isNull(ctx.RefinementControl) && !$isNull(ctx.ClientControl);
  28.  
  29. if(hasControl) {
  30.    var hasNoListData = ($isEmptyArray(listData));
  31.  
  32.     var delimiter = ', ';
  33.    var propertyName = ctx.RefinementControl.propertyName;
  34.    var displayTitle = Srch.Refinement.getRefinementTitle(ctx.RefinementControl);
  35.    var isExpanded = Srch.Refinement.getExpanded(ctx.RefinementControl.propertyName);
  36.    var useContains = true;
  37.    var useKQL = false;
  38.    var refiners = [];
  39.  
  40.    var currentRefinementCategory = ctx.ClientControl.getCurrentRefinementCategory(ctx.RefinementControl.propertyName);
  41.    var hasAnyFilterTokens = (!$isNull(currentRefinementCategory) && currentRefinementCategory.get_tokenCount() > 0);
  42.    var renderEmptyContainer = hasControl && (hasNoListData && !hasAnyFilterTokens);
  43.    if(!renderEmptyContainer) {
  44.        var listDataTokenToDisplayMap = {};
  45.        var listDataTokenToCountMap = {};
  46.        if(!hasNoListData) {
  47.            for (var i = 0; i < listData.length; i++) {
  48.                var filter = listData[i];
  49.                if(!$isNull(filter)) {
  50.                
  51.                     var originalRefinementName = filter.RefinementName.split(delimiter);
  52.                     for (var j = 0; j < originalRefinementName.length; j++){                       
  53.                        var refinementToken = (originalRefinementName[j].indexOf('\\') > -1) ? originalRefinementName[j] : '"' + originalRefinementName[j] + '"';
  54.                         if (typeof listDataTokenToDisplayMap[refinementToken] == 'undefined') {
  55.                             listDataTokenToDisplayMap[refinementToken] = originalRefinementName[j];
  56.                             listDataTokenToCountMap[refinementToken] = filter.RefinementCount;
  57.                             if(!hasAnyFilterTokens && !$isEmptyString(originalRefinementName[j]) && !$isEmptyString(refinementToken)) {
  58.                                 refiners.push(
  59.                                 {  
  60.                                     RefinementName: originalRefinementName[j],
  61.                                     RefinementToken: refinementToken,
  62.                                     RefinementCount: filter.RefinementCount,
  63.                                     IsSelected: false
  64.                                 });
  65.                             }
  66.                         }
  67.                     }
  68.                    
  69.                }
  70.            }
  71.        }
  72.        if(hasAnyFilterTokens) {
  73.            for(var j = 0; j < currentRefinementCategory.get_tokenCount(); j++) {
  74.                var token = currentRefinementCategory.t[j];
  75.                var displayValue = listDataTokenToDisplayMap[token];
  76.                if($isEmptyString(displayValue) && !$isNull(currentRefinementCategory.m)) {
  77.                    displayValue = currentRefinementCategory.m[token];
  78.                }
  79.                if(!$isEmptyString(displayValue) && !$isEmptyString(token))
  80.                {
  81.                    refiners.push(
  82.                    {  
  83.                        RefinementName: displayValue,
  84.                        RefinementToken: token,
  85.                        RefinementCount: !$isNull(listDataTokenToCountMap[token]) ? listDataTokenToCountMap[token] : 0,
  86.                        IsSelected: true
  87.                    });
  88.                }
  89.            }
  90.        }
  91.    }
  92.    ctx["DisplayTemplateData"]["BodyTemplateId"] = "~sitecollection/_catalogs/masterpage/Display Templates/Filters/Filter_MultiValue_Body.js";
  93.    ctx.RefinementControl["csr_propertyName"] = propertyName;
  94.    ctx.RefinementControl["csr_displayTitle"] = displayTitle;
  95.    ctx.RefinementControl["csr_filters"] = refiners;
  96.    ctx.RefinementControl["csr_isExpanded"] = isExpanded;
  97.    ctx.RefinementControl["csr_renderEmptyContainer"] = renderEmptyContainer;
  98.    ctx.RefinementControl["csr_useContains"] = useContains;
  99.    ctx.RefinementControl["csr_useKQL"] = useKQL;
  100.    ctx.RefinementControl["csr_showCounts"] = Options.ShowCounts;
  101. _#-->
  102.         _#= ctx.RenderBody(ctx) =#_
  103. <!--#_
  104. }
  105. _#-->
  106.     </div>
  107. </body>
  108. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement