added IHasImages and IHasUserData

This commit is contained in:
Luke Pulverenti 2013-12-19 16:51:32 -05:00
parent b0d84e5046
commit 736a8233a3
23 changed files with 121 additions and 89 deletions

View File

@ -11,7 +11,7 @@
<p>
<a data-role="button" data-icon="arrow-left" data-inline="true" data-mini="true" data-theme="b" href="plugincatalog.html">Plugin Catalog</a>
</p>
<form id="addPluginForm">
<form class="addPluginForm">
<p id="tagline" style="font-style: italic;"></p>
<p id="pPreviewImage" style="text-align: center; margin: 2em 0;"></p>
@ -105,7 +105,7 @@
</div>
</div>
<script type="text/javascript">
$('#addPluginForm').on('submit', AddPluginPage.onSubmit);
$('.addPluginForm').off('submit', AddPluginPage.onSubmit).on('submit', AddPluginPage.onSubmit);
</script>
</div>
</body>

View File

@ -21,12 +21,12 @@
<li>
<input type="checkbox" id="chkEnableTmdbPersonUpdates" name="chkEnableTmdbPersonUpdates" data-mini="true" />
<label for="chkEnableTmdbPersonUpdates">Enable automatic updates from TheMovieDB.org</label>
<div class="fieldDescription">If enabled, movies and people will be updated automatically as they are updated on the TheMovieDB.org.</div>
<div class="fieldDescription">If enabled, movies and people will be updated automatically as they are updated on the TheMovieDB.org. This may replace some existing metadata.</div>
</li>
<li>
<input type="checkbox" id="chkEnableTvdbUpdates" name="chkEnableTvdbUpdates" data-mini="true" />
<label for="chkEnableTvdbUpdates">Enable automatic updates from TheTVDB.com</label>
<div class="fieldDescription">If enabled, tv series and episodes will be updated automatically as they are updated on the TheTVDB.com.</div>
<div class="fieldDescription">If enabled, tv series and episodes will be updated automatically as they are updated on the TheTVDB.com. This may replace some existing metadata.</div>
</li>
<li>
<button type="submit" data-theme="b" data-icon="ok" data-mini="true">

View File

@ -17,7 +17,7 @@
<ul data-role="listview" class="ulForm">
<li>
<input type="checkbox" id="chkEnableCustomIBNPath" name="chkEnableCustomIBNPath" />
<input type="checkbox" id="chkEnableCustomIBNPath" name="chkEnableCustomIBNPath" data-mini="true" />
<label for="chkEnableCustomIBNPath">Use custom images by name path</label>
<div class="fieldDescription">
This folder contains actor, artist, genre and studio images.
@ -26,7 +26,7 @@
<li id="fieldEnterIBNPath" style="display: none;">
<label for="txtItemsByNamePath">Images by name path: </label>
<div style="display: inline-block; width: 92%;">
<input type="text" id="txtItemsByNamePath" name="txtItemsByNamePath" />
<input type="text" id="txtItemsByNamePath" name="txtItemsByNamePath" data-mini="true" />
</div>
<button id="btnSelectIBNPath" type="button" data-icon="folder-close" data-iconpos="notext" data-inline="true">Select Directory</button>
<div class="fieldDescription">
@ -35,13 +35,13 @@
</li>
<li>
<label for="txtSeasonZeroName">Season 0 display name: </label>
<input type="text" id="txtSeasonZeroName" name="txtSeasonZeroName" required="required" />
<input type="text" id="txtSeasonZeroName" name="txtSeasonZeroName" required="required" data-mini="true" />
</li>
<li>
<button type="submit" data-theme="b" data-icon="ok">
<button type="submit" data-theme="b" data-icon="ok" data-mini="true">
Save
</button>
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete">
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete" data-mini="true">
Cancel
</button>
</li>

View File

@ -9,8 +9,8 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html" class="ui-btn-active">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Upcoming Recordings</a>
<a href="livetvseriestimers.html">Series Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div id="itemBackdrop" class="itemBackdrop noBackdrop">
<div class="itemBackdropContent">

View File

@ -9,8 +9,8 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html" class="ui-btn-active">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Upcoming Recordings</a>
<a href="livetvseriestimers.html">Series Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div data-role="content">
<div class="viewSettings">

View File

@ -9,8 +9,8 @@
<a href="livetvguide.html" class="ui-btn-active">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Upcoming Recordings</a>
<a href="livetvseriestimers.html">Series Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div data-role="content">
</div>

View File

@ -9,11 +9,11 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html" class="ui-btn-active">Recordings</a>
<a href="livetvtimers.html">Upcoming Recordings</a>
<a href="livetvseriestimers.html">Series Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div data-role="content">
<form id="liveTvNewRecordingForm" style="margin: 0 auto;">
<form class="liveTvNewRecordingForm" style="margin: 0 auto;">
<p><span class="itemName inlineItemName"></span><span class="itemMiscInfo" style="display: inline;"></span></p>
<p class="itemEpisodeName"></p>
<p>
@ -80,8 +80,8 @@
<br />
<ul data-role="listview" class="ulForm">
<li>
<label for="txtPrePaddingSeconds">Pre-padding seconds: </label>
<input type="number" id="txtPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" />
<label for="txtPrePaddingSeconds">Pre-padding minutes: </label>
<input type="number" id="txtPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" max="5" step=".5" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPrePaddingRequired" />
@ -91,8 +91,8 @@
<div style="height: .5em;"></div>
</li>
<li>
<label for="txtPostPaddingSeconds">Post-padding seconds: </label>
<input type="number" id="txtPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" />
<label for="txtPostPaddingSeconds">Post-padding minutes: </label>
<input type="number" id="txtPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" max="5" step=".5" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPostPaddingRequired" />
@ -116,7 +116,7 @@
</form>
</div>
<script type="text/javascript">
$('#liveTvNewRecordingForm').on('submit', LiveTvNewRecordingPage.onSubmit);
$('.liveTvNewRecordingForm').off('submit', LiveTvNewRecordingPage.onSubmit).on('submit', LiveTvNewRecordingPage.onSubmit);
</script>
</div>
</body>

View File

@ -9,8 +9,8 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html" class="ui-btn-active">Recordings</a>
<a href="livetvtimers.html">Upcoming Recordings</a>
<a href="livetvseriestimers.html">Series Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div id="itemBackdrop" class="itemBackdrop noBackdrop">
<div class="itemBackdropContent">

View File

@ -9,8 +9,8 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html" class="ui-btn-active">Recordings</a>
<a href="livetvtimers.html">Upcoming Recordings</a>
<a href="livetvseriestimers.html">Series Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div data-role="content">
<div class="itemsContainer">

View File

@ -9,8 +9,8 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Upcoming Recordings</a>
<a href="livetvseriestimers.html" class="ui-btn-active">Series Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvseriestimers.html" class="ui-btn-active">Series</a>
</div>
<div data-role="content">
<form id="liveTvSeriesTimerForm" style="margin: 0 auto;">
@ -73,7 +73,7 @@
<ul data-role="listview" class="ulForm">
<li>
<label for="txtPrePaddingSeconds">Pre-padding seconds: </label>
<input type="number" id="txtPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" />
<input type="number" id="txtPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" max="5" step=".5" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPrePaddingRequired" />
@ -83,8 +83,8 @@
<div style="height: .5em;"></div>
</li>
<li>
<label for="txtPostPaddingSeconds">Post-padding seconds: </label>
<input type="number" id="txtPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" />
<label for="txtPostPaddingSeconds">Post-padding minutes: </label>
<input type="number" id="txtPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" max="5" step=".5" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPostPaddingRequired" />

View File

@ -9,8 +9,8 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Upcoming Recordings</a>
<a href="livetvseriestimers.html" class="ui-btn-active">Series Recordings</a>
<a href="livetvtimers.html">Schedule</a>
<a href="livetvseriestimers.html" class="ui-btn-active">Series</a>
</div>
<div data-role="content">
<br />

View File

@ -9,19 +9,23 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html" class="ui-btn-active">Upcoming Recordings</a>
<a href="livetvseriestimers.html">Series Recordings</a>
<a href="livetvtimers.html" class="ui-btn-active">Schedule</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div data-role="content">
<form id="liveTvTimerForm" style="margin: 0 auto;">
<p><span class="itemName inlineItemName program"></span><span class="itemMiscInfo" style="display: inline;"></span></p>
<p class="channel"></p>
<p class="overview"></p>
<p><span class="itemName inlineItemName"></span><span class="itemMiscInfo" style="display: inline;"></span></p>
<p class="itemEpisodeName"></p>
<p>
<span class="itemCommunityRating"></span>
</p>
<p class="itemChannelNumber"></p>
<p class="itemGenres"></p>
<p class="itemOverview"></p>
<p style="margin-top: 2em;">
<span class="status"></span>
<a id="btnCancelTimer" href="#" style="margin-left: 2em;">Cancel Timer</a>
<a id="btnCancelTimer" href="#" style="margin-left: 2em;">Cancel Recording</a>
<span class="seriesTimerLink" style="margin-left: 2em;"></span>
</p>
@ -34,7 +38,7 @@
<ul data-role="listview" class="ulForm">
<li>
<label for="txtPrePaddingSeconds">Pre-padding seconds: </label>
<input type="number" id="txtPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" />
<input type="number" id="txtPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" max="5" step=".5" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPrePaddingRequired" />
@ -44,8 +48,8 @@
<div style="height: .5em;"></div>
</li>
<li>
<label for="txtPostPaddingSeconds">Post-padding seconds: </label>
<input type="number" id="txtPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" />
<label for="txtPostPaddingSeconds">Post-padding minutes: </label>
<input type="number" id="txtPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" max="5" step=".5" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPostPaddingRequired" />

View File

@ -9,8 +9,8 @@
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html" class="ui-btn-active">Upcoming Recordings</a>
<a href="livetvseriestimers.html">Series Recordings</a>
<a href="livetvtimers.html" class="ui-btn-active">Schedule</a>
<a href="livetvseriestimers.html">Series</a>
</div>
<div data-role="content">
<br />

View File

@ -41,10 +41,10 @@
</div>
</li>
<li>
<button type="submit" data-theme="b" data-icon="ok">
<button type="submit" data-theme="b" data-icon="ok" data-mini="true">
Save
</button>
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete">
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete" data-mini="true">
Cancel
</button>
</li>

View File

@ -135,10 +135,10 @@
<br />
<ul data-role="listview" class="ulForm">
<li>
<button type="submit" data-theme="b" data-icon="ok">
<button type="submit" data-theme="b" data-icon="ok" data-mini="true">
Save
</button>
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete">
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete" data-mini="true">
Cancel
</button>
</li>

View File

@ -1724,6 +1724,20 @@
type: "Primary"
});
}
else if (item.Type == "Recording") {
url = ApiClient.getUrl("LiveTV/Recordings/" + item.Id + "/Images/Primary", {
maxheight: imageHeight,
tag: imageTags.Primary,
type: "Primary"
});
}
else if (item.Type == "Program") {
url = ApiClient.getUrl("LiveTV/Programs/" + item.Id + "/Images/Primary", {
maxheight: imageHeight,
tag: imageTags.Primary,
type: "Primary"
});
}
else if (item.Type == "Person") {
url = ApiClient.getPersonImageUrl(item.Name, {
maxheight: imageHeight,

View File

@ -32,8 +32,8 @@
$('#chkAllChannels', page).checked(defaultTimer.RecordAnyChannel).checkboxradio('refresh');
$('#chkAnyTime', page).checked(defaultTimer.RecordAnyTime).checkboxradio('refresh');
$('#txtPrePaddingSeconds', page).val(defaultTimer.PrePaddingSeconds);
$('#txtPostPaddingSeconds', page).val(defaultTimer.PostPaddingSeconds);
$('#txtPrePaddingSeconds', page).val(defaultTimer.PrePaddingSeconds / 60);
$('#txtPostPaddingSeconds', page).val(defaultTimer.PostPaddingSeconds / 60);
$('#chkPrePaddingRequired', page).checked(defaultTimer.IsPrePaddingRequired).checkboxradio('refresh');
$('#chkPostPaddingRequired', page).checked(defaultTimer.IsPostPaddingRequired).checkboxradio('refresh');
@ -105,10 +105,12 @@
var form = this;
apiClient.getNewLiveTvTimerDefaults({ programId: currentProgram.Id }).done(function (item) {
var programId = getParameterByName('programid');
item.PrePaddingSeconds = $('#txtPrePaddingSeconds', form).val();
item.PostPaddingSeconds = $('#txtPostPaddingSeconds', form).val();
apiClient.getNewLiveTvTimerDefaults({ programId: programId }).done(function (item) {
item.PrePaddingSeconds = $('#txtPrePaddingSeconds', form).val() * 60;
item.PostPaddingSeconds = $('#txtPostPaddingSeconds', form).val() * 60;
item.IsPrePaddingRequired = $('#chkPrePaddingRequired', form).checked();
item.IsPostPaddingRequired = $('#chkPostPaddingRequired', form).checked();
@ -142,15 +144,11 @@
return false;
}
function liveTvNewRecordingPage() {
window.LiveTvNewRecordingPage = {
onSubmit: onSubmit
var self = this;
self.onSubmit = onSubmit;
}
window.LiveTvNewRecordingPage = new liveTvNewRecordingPage();
};
$(document).on('pageinit', "#liveTvNewRecordingPage", function () {
@ -165,7 +163,7 @@
}
});
$('#btnCancel', page).on('click', function () {
Dashboard.navigate('livetvchannel.html?id=' + currentProgram.ChannelId);

View File

@ -35,7 +35,7 @@
html += '<td>';
html += '<a href="livetvrecording.html?id=' + recording.Id + '">';
html += recording.Name;
html += recording.Name || '(blank)';
html += '</a>';
html += '</td>';

View File

@ -4,7 +4,7 @@
function deleteTimer(page, id) {
Dashboard.confirm("Are you sure you wish to cancel this series?", "Confirm Series Timer Cancellation", function (result) {
Dashboard.confirm("Are you sure you wish to cancel this series?", "Confirm Series Cancellation", function (result) {
if (result) {
@ -12,7 +12,7 @@
ApiClient.cancelLiveTvSeriesTimer(id).done(function () {
Dashboard.alert('Timer cancelled.');
Dashboard.alert('Series cancelled.');
reload(page);
});
@ -28,8 +28,8 @@
$('.itemName', page).html(item.Name);
$('.overview', page).html(item.Overview || '');
$('#txtPrePaddingSeconds', page).val(item.PrePaddingSeconds);
$('#txtPostPaddingSeconds', page).val(item.PostPaddingSeconds);
$('#txtPrePaddingSeconds', page).val(item.PrePaddingSeconds / 60);
$('#txtPostPaddingSeconds', page).val(item.PostPaddingSeconds / 60);
$('#chkPrePaddingRequired', page).checked(item.IsPrePaddingRequired).checkboxradio('refresh');
$('#chkPostPaddingRequired', page).checked(item.IsPostPaddingRequired).checkboxradio('refresh');
@ -97,8 +97,8 @@
apiClient.getLiveTvSeriesTimer(currentItem.Id).done(function (item) {
item.PrePaddingSeconds = $('#txtPrePaddingSeconds', form).val();
item.PostPaddingSeconds = $('#txtPostPaddingSeconds', form).val();
item.PrePaddingSeconds = $('#txtPrePaddingSeconds', form).val() * 60;
item.PostPaddingSeconds = $('#txtPostPaddingSeconds', form).val() * 60;
item.IsPrePaddingRequired = $('#chkPrePaddingRequired', form).checked();
item.IsPostPaddingRequired = $('#chkPostPaddingRequired', form).checked();

View File

@ -2,7 +2,7 @@
function deleteTimer(page, id) {
Dashboard.confirm("Are you sure you wish to cancel this series?", "Confirm Series Timer Cancellation", function (result) {
Dashboard.confirm("Are you sure you wish to cancel this series?", "Confirm Series Cancellation", function (result) {
if (result) {
@ -10,7 +10,7 @@
ApiClient.cancelLiveTvSeriesTimer(id).done(function () {
Dashboard.alert('Series Timer deleted');
Dashboard.alert('Series cancelled.');
reload(page);
});

View File

@ -4,7 +4,7 @@
function deleteTimer(page, id) {
Dashboard.confirm("Are you sure you wish to cancel this timer?", "Confirm Timer Cancellation", function (result) {
Dashboard.confirm("Are you sure you wish to cancel this recording?", "Confirm Recording Cancellation", function (result) {
if (result) {
@ -12,7 +12,7 @@
ApiClient.cancelLiveTvTimer(id).done(function () {
Dashboard.alert('Timer cancelled.');
Dashboard.alert('Recording cancelled.');
reload(page);
});
@ -23,18 +23,34 @@
function renderTimer(page, item) {
var context = 'livetv';
currentItem = item;
$('.program', page).html(item.Name);
$('.channel', page).html('<a href="livetvchannel.html?id=' + item.ChannelId + '">' + item.ChannelName + '</a>').trigger('create');
$('.overview', page).html(item.Overview || '');
$('.itemName', page).html(item.Name);
$('.itemChannelNumber', page).html('Channel:&nbsp;&nbsp;&nbsp;<a href="livetvchannel.html?id=' + item.ChannelId + '">' + item.ChannelName + '</a>').trigger('create');
$('#txtPrePaddingSeconds', page).val(item.PrePaddingSeconds);
$('#txtPostPaddingSeconds', page).val(item.PostPaddingSeconds);
if (item.EpisodeTitle) {
$('.itemEpisodeName', page).html('Episode:&nbsp;&nbsp;&nbsp;' + item.EpisodeTitle);
} else {
$('.itemEpisodeName', page).html('');
}
if (item.CommunityRating) {
$('.itemCommunityRating', page).html(LibraryBrowser.getRatingHtml(item)).show();
} else {
$('.itemCommunityRating', page).hide();
}
LibraryBrowser.renderGenres($('.itemGenres', page), item, context);
LibraryBrowser.renderOverview($('.itemOverview', page), item);
$('.itemMiscInfo', page).html(LibraryBrowser.getMiscInfoHtml(item));
$('#txtPrePaddingSeconds', page).val(item.PrePaddingSeconds / 60);
$('#txtPostPaddingSeconds', page).val(item.PostPaddingSeconds / 60);
$('#chkPrePaddingRequired', page).checked(item.IsPrePaddingRequired).checkboxradio('refresh');
$('#chkPostPaddingRequired', page).checked(item.IsPostPaddingRequired).checkboxradio('refresh');
$('.itemMiscInfo', page).html(LibraryBrowser.getMiscInfoHtml(item));
$('.status', page).html('Status:&nbsp;&nbsp;&nbsp;' + item.Status);
if (item.SeriesTimerId) {
@ -56,8 +72,8 @@
apiClient.getLiveTvTimer(currentItem.Id).done(function (item) {
item.PrePaddingSeconds = $('#txtPrePaddingSeconds', form).val();
item.PostPaddingSeconds = $('#txtPostPaddingSeconds', form).val();
item.PrePaddingSeconds = $('#txtPrePaddingSeconds', form).val() * 60;
item.PostPaddingSeconds = $('#txtPostPaddingSeconds', form).val() * 60;
item.IsPrePaddingRequired = $('#chkPrePaddingRequired', form).checked();
item.IsPostPaddingRequired = $('#chkPostPaddingRequired', form).checked();

View File

@ -2,7 +2,7 @@
function deleteTimer(page, id) {
Dashboard.confirm("Are you sure you wish to cancel this timer?", "Confirm Timer Cancellation", function (result) {
Dashboard.confirm("Are you sure you wish to cancel this recording?", "Confirm Recording Cancellation", function (result) {
if (result) {
@ -10,7 +10,7 @@
ApiClient.cancelLiveTvTimer(id).done(function () {
Dashboard.alert('Timer deleted');
Dashboard.alert('Recording cancelled.');
reload(page);
});

View File

@ -35,16 +35,16 @@
var options = PluginUpdatesPage.getHtmlOptions(["Off", "On"], (plugin.EnableAutoUpdate ? "On" : "Off"));
html += "<td>";
html += "<select data-id='" + plugin.Id + "' onchange='PluginUpdatesPage.setAutoUpdate(this);' data-role='slider' id='" + fieldId + "' name='" + fieldId + "'>" + options + "</select>";
html += "<td style='vertical-align:middle;text-align:left;'>";
html += "<select data-mini='true' data-id='" + plugin.Id + "' onchange='PluginUpdatesPage.setAutoUpdate(this);' data-role='slider' id='" + fieldId + "' name='" + fieldId + "'>" + options + "</select>";
html += "</td>";
fieldId = "liPluginUpdateFieldb" + fieldIndex;
options = PluginUpdatesPage.getHtmlOptions(["Release", "Beta", "Dev"], plugin.UpdateClass);
html += "<td>";
html += "<select data-id='" + plugin.Id + "' onchange='PluginUpdatesPage.setUpdateClass(this);' data-inline='true' id='" + fieldId + "' name='" + fieldId + "'>" + options + "</select>";
html += "<td style='vertical-align:middle;text-align:left;'>";
html += "<select data-mini='true' data-id='" + plugin.Id + "' onchange='PluginUpdatesPage.setUpdateClass(this);' data-inline='true' id='" + fieldId + "' name='" + fieldId + "'>" + options + "</select>";
html += "</td>";
html += "</tr>";