#import sickbeard
#import os.path
#import datetime
#import re
#from sickbeard import history
#from sickbeard import providers
#from sickbeard import sbdatetime
#from sickbeard.providers import generic
#from sickbeard.common import *
#set global $title="History"
#set global $header="History"
#set global $sbPath=".."
#set global $topmenu="history"#
#set $layout = $sickbeard.HISTORY_LAYOUT

#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_top.tmpl")

<style type="text/css">
.sort_data {display:none}
</style>

<script type="text/javascript">
<!--

\$.tablesorter.addParser({
    id: 'cDate',
    is: function(s) {
        return false;
    },
    format: function(s) {
        return s;
    },
    type: 'numeric'
});

\$(document).ready(function() 
{ 
    \$("#historyTable:has(tbody tr)").tablesorter({
        widgets: ['zebra', 'filter'],
        sortList: [[0,1]],
      textExtraction: {
	    #if ( $layout == 'detailed'):
	    	0: function(node) { return \$(node).find("span").text().toLowerCase(); },
	    	4: function(node) { return \$(node).find("span").text().toLowerCase(); }
	    #else
	    	0: function(node) { return \$(node).find("span").text().toLowerCase(); },
	    	1: function(node) { return \$(node).find("span").text().toLowerCase(); },
	    	2: function(node) { return \$(node).attr("provider").toLowerCase(); },
	    	5: function(node) { return \$(node).attr("quality").toLowerCase(); }
	    #end if
      },
        headers: {
        #if ( $layout == 'detailed'):
          0: { sorter: 'cDate' },
          4: { sorter: 'quality' }
        #else
          0: { sorter: 'cDate' },
          4: { sorter: false },
          5: { sorter: 'quality' }
        #end if
      }
        
    });
    \$('#limit').change(function(){
        url = '$sbRoot/history/?limit='+\$(this).val()
        window.location.href = url
    });

    #set $fuzzydate = 'airdate'
    #if $sickbeard.FUZZY_DATING:
    fuzzyMoment({
        containerClass : '.${fuzzydate}',
        dateHasTime : true,
        dateFormat : '${sickbeard.DATE_PRESET}',
        timeFormat : '${sickbeard.TIME_PRESET_W_SECONDS}',
        trimZero : #if $sickbeard.TRIM_ZERO then "true" else "false"#,
        dtGlue : ', ',
    });
    #end if

});
//-->
</script>
#if $varExists('header') 
  <h1 class="header">$header</h1>
#else 
  <h1 class="title">$title</h1>
#end if
<div class="h2footer align-right"><b>Limit:</b> 
    <select name="limit" id="limit">
        <option value="100" #if $limit == "100" then "selected=\"selected\"" else ""#>100</option>
        <option value="250" #if $limit == "250" then "selected=\"selected\"" else ""#>250</option>
        <option value="500" #if $limit == "500" then "selected=\"selected\"" else ""#>500</option>
        <option value="0" #if $limit == "0" then "selected=\"selected\"" else ""#>All</option>
    </select>
</div>

<div id="HistoryLayout" style="float: right; margin-top: 2px;">
  <span><b>Layout:</b>
    <a class="inner" href="$sbRoot/setHistoryLayout/?layout=compact" style="font-size: 12px;">Compact</a> &middot;
    <a class="inner" href="$sbRoot/setHistoryLayout/?layout=detailed" style="font-size: 12px;">Detailed</a>
  </span>
</div>

#if $layout == "detailed"
  <table id="historyTable" class="sickbeardTable tablesorter" cellspacing="1" border="0" cellpadding="0">
    <thead><tr><th class="nowrap">Time</th><th>Episode</th><th>Action</th><th>Provider</th><th>Quality</th></tr></thead>
    <tbody>
  #for $hItem in $historyResults:
  #set $curStatus, $curQuality = $Quality.splitCompositeStatus(int($hItem["action"]))
    <tr>
      #set $curdatetime = $datetime.datetime.strptime(str($hItem["date"]), $history.dateFormat)
      <td class="nowrap"><div class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdatetime($curdatetime, show_seconds=True)</div><span class="sort_data">$time.mktime($curdatetime.timetuple())</span></td>
      <td width="35%"><a style="color: #000000; text-align: center;" href="$sbRoot/home/displayShow?show=$hItem["showid"]#season-$hItem["season"]">$hItem["show_name"] - <%=str(hItem["season"]) +"x"+ "%02i" % int(hItem["episode"]) %>#if "proper" in $hItem["resource"].lower or "repack" in $hItem["resource"].lower then ' <span class="quality Proper">Proper</span>' else ""#</a></td>
      <td align="center" #if $curStatus == SUBTITLED then 'class="subtitles_column"' else ''#><span style="cursor: help;" title="$os.path.basename($hItem["resource"])">$statusStrings[$curStatus]</span>
        #if $curStatus == SUBTITLED:
          <img width="16" height="11" src="$sbRoot/images/flags/<%= hItem["resource"][len(hItem["resource"])-6:len(hItem["resource"])-4]+'.png'%>">
      #end if    
      </td>
      <td align="center">
      #if $curStatus == DOWNLOADED:
        #set $match = $re.search("\-(\w+)\.\w{3}\Z", $os.path.basename($hItem["resource"]))
        #if $match
            #if $match.group(1).upper() in ("X264", "720P"):
              #set $match = $re.search("(\w+)\-.*\-"+$match.group(1)+"\.\w{3}\Z", $os.path.basename($hItem["resource"]), re.IGNORECASE)
              #if $match
                <i>$match.group(1).upper()</i>
              #end if
            #else:
              <i>$match.group(1).upper()</i>
            #end if
        #end if
      #else
        #if $hItem["provider"] > 0
          #if $curStatus in [SNATCHED, FAILED]:
            #set $provider = $providers.getProviderClass($generic.GenericProvider.makeID($hItem["provider"]))
            #if $provider != None: 
              <img src="$sbRoot/images/providers/<%=provider.imageName()%>" width="16" height="16" alt="$provider.name" title="$provider.name"/>
            #else:
              <img src="$sbRoot/images/providers/missing.png" width="16" height="16" alt="missing provider" title="missing provider"/>
            #end if
      #else:
          <img src="$sbRoot/images/subtitles/<%=hItem["provider"]+'.png' %>" width="16" height="16" alt="$hItem["provider"]" title="<%=hItem["provider"].capitalize()%>"/>
          #end if
      #end if
      #end if
      </td>
    <span style="display: none;">$curQuality</span>
      <td align="center"><span class="quality $Quality.qualityStrings[$curQuality].replace("720p","HD720p").replace("1080p","HD1080p").replace("RawHD TV", "RawHD").replace("HD TV", "HD720p")">$Quality.qualityStrings[$curQuality]</span></td>
    </tr>
  #end for
    </tbody>
  </table>

#else:

  <table id="historyTable" class="sickbeardTable tablesorter" cellspacing="1" border="0" cellpadding="0">
    <thead><tr><th class="nowrap">Time</th><th>Episode</th><th>Snatched</th><th>Downloaded</th>#if sickbeard.USE_SUBTITLES then "<th>Subtitled</th>" else ""#<th>Quality</th></tr></thead>
    <tbody>
    #for $hItem in $compactResults:
    <tr>
      #set $curdatetime = $datetime.datetime.strptime(str($hItem["actions"][0]["time"]), $history.dateFormat)
      <td class="nowrap">$sbdatetime.sbdatetime.sbfdatetime($curdatetime, show_seconds=True)<span class="sort_data">$time.mktime($curdatetime.timetuple())</span></td>
      <td width="25%">
        <span style="display: none;">$hItem["show_name"]</span>
      <a href="$sbRoot/home/displayShow?show=$hItem["show_id"]#season-$hItem["season"]">
          <div style="display:inline-block; overflow:hidden;">
          <img style="width: 200px; height: 37.1px; border-radius: 4px 0px 0px 4px; border-width: 3px 0 3px 3px ; border-style: solid; border-color: #B7B7B7;" src="$sbRoot/showPoster/?show=$hItem["show_id"]&amp;which=banner" class="banner" alt="$hItem["show_id"]" title="$hItem["show_name"] - <%=str(hItem["season"]) +"x"+ "%02i" % int(hItem["episode"]) %>"/>
        </div>
        <div class="vertical"><span><%=str(hItem["season"])%></br></span><span>x</span></br><span><%= "%02i" % int(hItem["episode"])%></span> </div>
      </a>
    </td>
    <td align="center" provider="<%=str(sorted(hItem["actions"])[0]["provider"])%>">
      #for $action in sorted($hItem["actions"]):
        #set $curStatus, $curQuality = $Quality.splitCompositeStatus(int($action["action"]))
          #if $curStatus in [SNATCHED, FAILED]:
          #set $provider = $providers.getProviderClass($generic.GenericProvider.makeID($action["provider"]))
            #if $provider != None: 
              <img src="$sbRoot/images/providers/<%=provider.imageName()%>" width="16" height="16" alt="$provider.name" style="cursor: help;" title="$provider.name: $os.path.basename($action["resource"])"/>
            #else:
              <img src="$sbRoot/images/providers/missing.png" width="16" height="16" alt="missing provider" title="missing provider"/>
            #end if
        #end if    
      #end for
    </td> 
    <td align="center">
      #for $action in sorted($hItem["actions"]):
        #set $curStatus, $curQuality = $Quality.splitCompositeStatus(int($action["action"]))
          #if $curStatus == DOWNLOADED:
            #set $match = $re.search("\-(\w+)\.\w{3}\Z", $os.path.basename($action["resource"]))
            #if $match
              #if $match.group(1).upper() in ("X264", "720P"):
                  #set $match = $re.search("(\w+)\-.*\-"+$match.group(1)+"\.\w{3}\Z", $os.path.basename($hItem["resource"]), re.IGNORECASE)
                  #if $match
                      <span style="cursor: help;" title="$os.path.basename($action["resource"])">
                        <i>$match.group(1).upper()</i>
                      </span>
                  #end if
            #else:
                <span style="cursor: help;" title="$os.path.basename($action["resource"])">
                    <i>$match.group(1).upper()</i>
                  </span>
              #end if
            #end if
          #end if
      #end for
    </td>
	#if sickbeard.USE_SUBTITLES:
    <td align="center">
      #for $action in sorted($hItem["actions"]):
        #set $curStatus, $curQuality = $Quality.splitCompositeStatus(int($action["action"]))
          #if $curStatus == SUBTITLED:
            <img src="$sbRoot/images/subtitles/<%=action["provider"]+'.png' %>" width="16" height="16" alt="$action["provider"]" title="<%=action["provider"].capitalize()%>: $os.path.basename($action["resource"])"/>
            / 
            <img width="16" height="11" src="$sbRoot/images/flags/<%= action["resource"][len(action["resource"])-6:len(action["resource"])-4]+'.png'%>" style="vertical-align: middle !important;">
          &nbsp;
        #end if    
      #end for
    </td>
    #end if
      <td align="center" width="14%" quality="$curQuality"><span class="quality $Quality.qualityStrings[$curQuality].replace("720p","HD720p").replace("1080p","HD1080p").replace("RawHD TV", "RawHD").replace("HD TV", "HD720p")">$Quality.qualityStrings[$curQuality]</span></td>
    </tr>
    #end for
    </tbody>
  </table>

#end if

#include $os.path.join($sickbeard.PROG_DIR,"gui/slick/interfaces/default/inc_bottom.tmpl")
