mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
9d8a2e03ae
8 changed files with 202 additions and 92 deletions
|
@ -489,7 +489,6 @@ a.itemTag:hover {
|
|||
box-shadow: 0px 0 20px #000;
|
||||
border: solid 1px #222;
|
||||
margin-top: -20px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.noBackdrop .itemDetailImage {
|
||||
|
@ -585,6 +584,14 @@ a.itemTag:hover {
|
|||
overflow: hidden;
|
||||
}
|
||||
|
||||
.lblDetailTab {
|
||||
font-size: 16px!important;
|
||||
font-weight: 400!important;
|
||||
font-family: 'Open Sans';
|
||||
padding: .5em 1.2em;
|
||||
border-color: #1f1f1f !important;
|
||||
}
|
||||
|
||||
.editMetadataForm {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
@ -638,7 +645,7 @@ a.itemTag:hover {
|
|||
|
||||
.detailImageProgressContainer {
|
||||
position: absolute;
|
||||
bottom: 7px;
|
||||
bottom: 3px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
text-align: center;
|
||||
|
@ -767,7 +774,7 @@ a.itemTag:hover {
|
|||
display: block;
|
||||
}
|
||||
|
||||
.itemBackdrop {
|
||||
.itemBackdrop:not(.noBackdrop) {
|
||||
border-bottom: 1px solid #111;
|
||||
}
|
||||
}
|
||||
|
@ -852,12 +859,15 @@ a.itemTag:hover {
|
|||
}
|
||||
|
||||
.mediaInfoStream {
|
||||
margin: 1em 0;
|
||||
margin: 1em 2em 1em 0;
|
||||
display: inline-block;
|
||||
color: #bbb;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.mediaInfoStreamType {
|
||||
margin-right: 1em;
|
||||
display: block;
|
||||
font-size: 16px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
@ -866,8 +876,8 @@ a.itemTag:hover {
|
|||
}
|
||||
|
||||
.mediaInfoLabel {
|
||||
color: #bbb;
|
||||
margin-right: 3px;
|
||||
color: #aaa;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
.posterRibbon {
|
||||
|
@ -1068,7 +1078,7 @@ a.itemTag:hover {
|
|||
.alphabetPicker {
|
||||
position: fixed;
|
||||
right: 2px;
|
||||
bottom: 10px;
|
||||
bottom: 5px;
|
||||
width: 27px;
|
||||
z-index: 1000;
|
||||
text-align: center;
|
||||
|
|
|
@ -14,13 +14,6 @@
|
|||
transition: all 500ms ease;
|
||||
}
|
||||
|
||||
/*.posterItemOverlayTarget {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
z-index: 999;
|
||||
}*/
|
||||
|
||||
.posterItemOverlayTarget {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
|
@ -206,6 +199,14 @@
|
|||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 1200px) {
|
||||
|
||||
.portraitPosterItem .posterItemOverlayInner {
|
||||
padding-left: 7px;
|
||||
padding-right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 540px) {
|
||||
|
||||
.backdropPosterItem {
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
<div class="viewControls" data-role="controlgroup" data-type="horizontal">
|
||||
<button data-mini="true" data-icon="sort" data-inline="true" data-iconpos="notext" title="Sort" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
||||
<button data-mini="true" data-icon="filter" data-inline="true" data-iconpos="notext" title="Filter" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||
<button data-mini="true" data-icon="check" data-inline="true" data-iconpos="notext" title="Select" class="btnToggleSelections">Select</button>
|
||||
<!-- <button data-mini="true" data-icon="check" data-inline="true" data-iconpos="notext" title="Select" class="btnToggleSelections">Select</button>-->
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
|
|
|
@ -112,58 +112,75 @@
|
|||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="detailButtonsContainer">
|
||||
<span id="missingIndicator" style="margin-left: .5em; display: none;">
|
||||
<span style="background: #cc3333; padding: 5px 1em; border-radius: 5px;">MISSING</span>
|
||||
</span>
|
||||
<span id="offlineIndicator" style="margin-left: .5em; display: none;">
|
||||
<span style="background: #cc3333; padding: 5px 1em; border-radius: 5px;">OFFLINE</span>
|
||||
</span>
|
||||
<span id="playButtonContainer" style="display: none;">
|
||||
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">Play</button>
|
||||
</span>
|
||||
<span id="trailerButtonContainer" style="display: none;">
|
||||
<button id="btnPlayTrailer" type="button" data-icon="video" data-inline="true" data-mini="true">Trailer</button>
|
||||
</span>
|
||||
<span id="externalTrailerButtonContainer" style="display: none;">
|
||||
<a id="btnPlayExternalTrailer" data-role="button" data-icon="video" data-inline="true" data-mini="true" href="#" target="_blank">Trailer</a>
|
||||
</span>
|
||||
<span id="playExternalButtonContainer" style="display: none;">
|
||||
<a id="btnPlayExternal" data-role="button" data-icon="play" data-inline="true" data-mini="true" href="#" target="_blank">Play</a>
|
||||
</span>
|
||||
<span id="remoteButtonContainer" style="display: none;">
|
||||
<button id="btnRemote" type="button" data-icon="wireless" data-inline="true" data-mini="true">Remote</button>
|
||||
</span>
|
||||
<span id="editButtonContainer" style="display: none;">
|
||||
<a id="btnEdit" data-role="button" data-icon="edit" data-inline="true" data-mini="true" href="#">Edit</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#" id="lnkPreviousItem" class="lnkPreviousItem lnkSibling hide" data-role="button" title="Previous" data-icon="carat-l" data-mini="true" data-inline="true" data-iconpos="notext">Previous</a>
|
||||
<a href="#" id="lnkNextItem" class="lnkNextItem lnkSibling hide" data-role="button" title="Next" data-icon="carat-r" data-mini="true" data-inline="true" data-iconpos="notext">Next</a>
|
||||
<p class="itemGenres mobileGenres"></p>
|
||||
<p class="itemOverview mobileOverview"></p>
|
||||
</div>
|
||||
<div class="detailButtonsContainer">
|
||||
<span id="missingIndicator" style="margin-left: .5em; display: none;">
|
||||
<span style="background: #cc3333; padding: 5px 1em; border-radius: 5px;">MISSING</span>
|
||||
</span>
|
||||
<span id="offlineIndicator" style="margin-left: .5em; display: none;">
|
||||
<span style="background: #cc3333; padding: 5px 1em; border-radius: 5px;">OFFLINE</span>
|
||||
</span>
|
||||
<span id="playButtonContainer" style="display: none;">
|
||||
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">Play</button>
|
||||
</span>
|
||||
<span id="trailerButtonContainer" style="display: none;">
|
||||
<button id="btnPlayTrailer" type="button" data-icon="video" data-inline="true" data-mini="true">Trailer</button>
|
||||
</span>
|
||||
<span id="externalTrailerButtonContainer" style="display: none;">
|
||||
<a id="btnPlayExternalTrailer" data-role="button" data-icon="video" data-inline="true" data-mini="true" href="#" target="_blank">Trailer</a>
|
||||
</span>
|
||||
<span id="playExternalButtonContainer" style="display: none;">
|
||||
<a id="btnPlayExternal" data-role="button" data-icon="play" data-inline="true" data-mini="true" href="#" target="_blank">Play</a>
|
||||
</span>
|
||||
<span id="remoteButtonContainer" style="display: none;">
|
||||
<button id="btnRemote" type="button" data-icon="wireless" data-inline="true" data-mini="true">Remote</button>
|
||||
</span>
|
||||
<span id="editButtonContainer" style="display: none;">
|
||||
<a id="btnEdit" data-role="button" data-icon="edit" data-inline="true" data-mini="true" href="#">Edit</a>
|
||||
</span>
|
||||
</div>
|
||||
<div data-role="content">
|
||||
<div class="detailPageContent">
|
||||
|
||||
<div id="detailsSection" class="detailSection hide">
|
||||
<div class="detailSectionHeader" style="margin-top: 0;">
|
||||
Details
|
||||
</div>
|
||||
<div class="detailSectionContent" style="padding: 0 1em;">
|
||||
|
||||
<div id="mediaInfoContent"></div>
|
||||
<p id="players"></p>
|
||||
<p id="seriesAirTime"></p>
|
||||
<p id="itemPremiereDate"></p>
|
||||
<p id="itemBudget"></p>
|
||||
<p id="itemRevenue"></p>
|
||||
<p class="itemStudios"></p>
|
||||
<p class="itemExternalLinks"></p>
|
||||
<p class="itemTags"></p>
|
||||
<br />
|
||||
<div class="tabButtons"></div>
|
||||
|
||||
<div class="detailSectionContent" style="padding: 0 .7em;">
|
||||
|
||||
<div class="detailTab tabDetails">
|
||||
<p id="players"></p>
|
||||
<p id="seriesAirTime"></p>
|
||||
<p id="itemPremiereDate"></p>
|
||||
<p id="itemBudget"></p>
|
||||
<p id="itemRevenue"></p>
|
||||
<p class="itemExternalLinks"></p>
|
||||
</div>
|
||||
<div class="detailTab tabMediaInfo">
|
||||
<div id="mediaInfoContent"></div>
|
||||
|
||||
<div id="alternateVersionsCollapsible" class="detailSection hide">
|
||||
<div class="detailSectionHeader" style="position: relative;">
|
||||
Media Versions
|
||||
<button type="button" class="btnSplitVersions" style="position: absolute; right: 0; top: 6px; margin-top: 0; margin-bottom: 0; display: none;" data-mini="true" data-inline="true" data-icon="delete" data-iconpos="notext" title="Split Versions Apart">Split Versions Apart</button>
|
||||
</div>
|
||||
<div id="alternateVersionsContent" class="detailSectionContent"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="detailTab tabTags">
|
||||
<p class="itemStudios"></p>
|
||||
<p class="itemKeywords"></p>
|
||||
<p class="itemTags"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="collectionItems"></div>
|
||||
<div id="childrenCollapsible" class="hide detailSection">
|
||||
<div class="detailSectionHeader">
|
||||
|
@ -171,13 +188,6 @@
|
|||
</div>
|
||||
<div id="childrenContent" class="detailSectionContent"></div>
|
||||
</div>
|
||||
<div id="alternateVersionsCollapsible" class="detailSection hide">
|
||||
<div class="detailSectionHeader" style="position: relative;">
|
||||
Media Versions
|
||||
<button type="button" class="btnSplitVersions" style="position: absolute; right: 0; top: 6px; margin-top: 0; margin-bottom: 0; display: none;" data-mini="true" data-inline="true" data-icon="delete" data-iconpos="notext" title="Split Versions Apart">Split Versions Apart</button>
|
||||
</div>
|
||||
<div id="alternateVersionsContent" class="detailSectionContent"></div>
|
||||
</div>
|
||||
<div id="additionalPartsCollapsible" class="detailSection hide">
|
||||
<div class="detailSectionHeader">
|
||||
Additional Parts
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<div class="viewControls" data-role="controlgroup" data-type="horizontal">
|
||||
<button data-mini="true" data-icon="sort" data-inline="true" data-iconpos="notext" title="Sort" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
||||
<button data-mini="true" data-icon="filter" data-inline="true" data-iconpos="notext" title="Filter" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||
<button data-mini="true" data-icon="check" data-inline="true" data-iconpos="notext" title="Select" class="btnToggleSelections">Select</button>
|
||||
<!-- <button data-mini="true" data-icon="check" data-inline="true" data-iconpos="notext" title="Select" class="btnToggleSelections">Select</button>-->
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
|
|
|
@ -312,6 +312,7 @@
|
|||
}
|
||||
|
||||
renderTags(page, item);
|
||||
renderKeywords(page, item);
|
||||
|
||||
renderSeriesAirTime(page, item, context);
|
||||
|
||||
|
@ -327,15 +328,67 @@
|
|||
$('#artist', page).hide();
|
||||
}
|
||||
|
||||
var detailsSection = $('#detailsSection', page);
|
||||
var elem = $('.detailSectionContent', detailsSection)[0];
|
||||
renderTabButtons(page, item);
|
||||
}
|
||||
|
||||
function renderTabButtons(page, item) {
|
||||
|
||||
var tabsHtml = '';
|
||||
|
||||
var elem = $('.tabDetails', page)[0];
|
||||
var text = elem.textContent || elem.innerText;
|
||||
|
||||
if (!text.trim()) {
|
||||
detailsSection.addClass('hide');
|
||||
} else {
|
||||
detailsSection.removeClass('hide');
|
||||
if (text.trim()) {
|
||||
tabsHtml += '<input type="radio" name="radioDetailTab" class="radioDetailTab" id="radioDetails" value="tabDetails">';
|
||||
tabsHtml += '<label for="radioDetails" class="lblDetailTab">Details</label>';
|
||||
}
|
||||
|
||||
if (item.MediaType == "Audio" || item.MediaType == "Video") {
|
||||
tabsHtml += '<input type="radio" name="radioDetailTab" class="radioDetailTab" id="radioMediaInfo" value="tabMediaInfo">';
|
||||
tabsHtml += '<label for="radioMediaInfo" class="lblDetailTab">Media Info</label>';
|
||||
}
|
||||
|
||||
elem = $('.tabTags', page)[0];
|
||||
text = elem.textContent || elem.innerText;
|
||||
|
||||
if (text.trim()) {
|
||||
tabsHtml += '<input type="radio" name="radioDetailTab" class="radioDetailTab" id="radioTags" value="tabTags">';
|
||||
tabsHtml += '<label for="radioTags" class="lblDetailTab">Tags</label>';
|
||||
}
|
||||
|
||||
if (tabsHtml) {
|
||||
|
||||
tabsHtml = '<div data-role="controlgroup" data-type="horizontal" data-mini="true" class="detailTabs">' + tabsHtml;
|
||||
tabsHtml += '</div>';
|
||||
|
||||
$('.tabButtons', page).html(tabsHtml).trigger('create');
|
||||
|
||||
$('#detailsSection', page).removeClass('hide');
|
||||
|
||||
|
||||
var elems = $('.radioDetailTab', page).on('change', function () {
|
||||
|
||||
$('.detailTab', page).hide();
|
||||
$('.' + this.value, page).show();
|
||||
});
|
||||
|
||||
elems[0].click();
|
||||
$(elems[0]).trigger('change');
|
||||
|
||||
} else {
|
||||
$('#detailsSection', page).addClass('hide');
|
||||
|
||||
$('.tabButtons', page).empty();
|
||||
}
|
||||
|
||||
//var elem = $('.detailSectionContent', detailsSection)[0];
|
||||
//var text = elem.textContent || elem.innerText;
|
||||
|
||||
//if (!text.trim()) {
|
||||
// detailsSection.addClass('hide');
|
||||
//} else {
|
||||
// detailsSection.removeClass('hide');
|
||||
//}
|
||||
}
|
||||
|
||||
function getArtistLinksHtml(artists) {
|
||||
|
@ -451,7 +504,7 @@
|
|||
|
||||
var options = {
|
||||
userId: Dashboard.getCurrentUserId(),
|
||||
limit: item.Type == "MusicAlbum" ? 4 : 5,
|
||||
limit: item.Type == "MusicAlbum" ? 4 : 6,
|
||||
fields: "PrimaryImageAspectRatio,UserData"
|
||||
};
|
||||
|
||||
|
@ -538,7 +591,7 @@
|
|||
if (item.Tags && item.Tags.length) {
|
||||
|
||||
var html = '';
|
||||
|
||||
html += '<p>Tags</p>';
|
||||
for (var i = 0, length = item.Tags.length; i < length; i++) {
|
||||
|
||||
html += '<div class="itemTag">' + item.Tags[i] + '</div>';
|
||||
|
@ -552,6 +605,25 @@
|
|||
}
|
||||
}
|
||||
|
||||
function renderKeywords(page, item) {
|
||||
|
||||
if (item.Keywords && item.Keywords.length) {
|
||||
|
||||
var html = '';
|
||||
html += '<p>Plot Keywords</p>';
|
||||
for (var i = 0, length = item.Keywords.length; i < length; i++) {
|
||||
|
||||
html += '<div class="itemTag">' + item.Keywords[i] + '</div>';
|
||||
|
||||
}
|
||||
|
||||
$('.itemKeywords', page).show().html(html);
|
||||
|
||||
} else {
|
||||
$('.itemKeywords', page).hide();
|
||||
}
|
||||
}
|
||||
|
||||
function renderChildren(page, item, user) {
|
||||
|
||||
var fields = "ItemCounts,AudioInfo,PrimaryImageAspectRatio";
|
||||
|
@ -1016,52 +1088,69 @@
|
|||
|
||||
html += '<div class="mediaInfoStream">';
|
||||
|
||||
html += '<span class="mediaInfoStreamType">' + type + ':</span>';
|
||||
html += '<span class="mediaInfoStreamType">' + type + '</span>';
|
||||
|
||||
var attributes = [];
|
||||
|
||||
if (stream.Language && stream.Type != "Video") {
|
||||
attributes.push('<span class="mediaInfoAttribute">' + stream.Language + '</span>');
|
||||
attributes.push('<span class="mediaInfoLabel">Language</span><span class="mediaInfoAttribute">' + stream.Language + '</span>');
|
||||
}
|
||||
|
||||
if (stream.Codec && stream.Codec != "dca") {
|
||||
attributes.push('<span class="mediaInfoAttribute">' + stream.Codec.toUpperCase() + '</span>');
|
||||
attributes.push('<span class="mediaInfoLabel">Codec</span><span class="mediaInfoAttribute">' + stream.Codec.toUpperCase() + '</span>');
|
||||
}
|
||||
|
||||
if (stream.Profile && stream.Codec == "dca") {
|
||||
attributes.push('<span class="mediaInfoAttribute">' + stream.Profile.toUpperCase() + '</span>');
|
||||
attributes.push('<span class="mediaInfoLabel">Codec</span><span class="mediaInfoAttribute">' + stream.Profile.toUpperCase() + '</span>');
|
||||
}
|
||||
else if (stream.Profile) {
|
||||
attributes.push('<span class="mediaInfoLabel">Profile</span><span class="mediaInfoAttribute">' + stream.Profile + '</span>');
|
||||
}
|
||||
|
||||
if (stream.Level) {
|
||||
attributes.push('<span class="mediaInfoLabel">Level</span><span class="mediaInfoAttribute">' + stream.Level + '</span>');
|
||||
}
|
||||
|
||||
if (stream.Width || stream.Height) {
|
||||
attributes.push('<span class="mediaInfoAttribute">' + stream.Width + 'x' + stream.Height + '</span>');
|
||||
attributes.push('<span class="mediaInfoLabel">Resolution</span><span class="mediaInfoAttribute">' + stream.Width + 'x' + stream.Height + '</span>');
|
||||
}
|
||||
|
||||
if (stream.AspectRatio && stream.Codec != "mjpeg") {
|
||||
attributes.push('<span class="mediaInfoAttribute">' + stream.AspectRatio + '</span>');
|
||||
attributes.push('<span class="mediaInfoLabel">Aspect Ratio</span><span class="mediaInfoAttribute">' + stream.AspectRatio + '</span>');
|
||||
}
|
||||
|
||||
if (type == "Video") {
|
||||
attributes.push('<span class="mediaInfoLabel">Interlaced</span><span class="mediaInfoAttribute">' + (stream.IsInterlaced ? 'Yes' : 'No') + '</span>');
|
||||
}
|
||||
|
||||
if (stream.AverageFrameRate || stream.RealFrameRate) {
|
||||
attributes.push('<span class="mediaInfoLabel">Framerate</span><span class="mediaInfoAttribute">' + (stream.AverageFrameRate || stream.RealFrameRate) + '</span>');
|
||||
}
|
||||
|
||||
if (stream.ChannelLayout) {
|
||||
attributes.push('<span class="mediaInfoAttribute">' + stream.ChannelLayout + '</span>');
|
||||
attributes.push('<span class="mediaInfoLabel">Layout</span><span class="mediaInfoAttribute">' + stream.ChannelLayout + '</span>');
|
||||
}
|
||||
else if (stream.Channels) {
|
||||
attributes.push('<span class="mediaInfoAttribute">' + stream.Channels + ' ch</span>');
|
||||
attributes.push('<span class="mediaInfoLabel">Channels</span><span class="mediaInfoAttribute">' + stream.Channels + ' ch</span>');
|
||||
}
|
||||
|
||||
if (stream.BitRate && stream.Codec != "mjpeg") {
|
||||
attributes.push('<span class="mediaInfoAttribute">' + (parseInt(stream.BitRate / 1000)) + ' kbps</span>');
|
||||
attributes.push('<span class="mediaInfoLabel">Bitrate</span><span class="mediaInfoAttribute">' + (parseInt(stream.BitRate / 1000)) + ' kbps</span>');
|
||||
}
|
||||
|
||||
if (stream.IsDefault && stream.Type != "Video") {
|
||||
attributes.push('<span class="mediaInfoAttribute">Default</span>');
|
||||
}
|
||||
if (stream.IsForced) {
|
||||
attributes.push('<span class="mediaInfoAttribute">Forced</span>');
|
||||
}
|
||||
if (stream.IsExternal) {
|
||||
attributes.push('<span class="mediaInfoAttribute">External</span>');
|
||||
if (stream.SampleRate) {
|
||||
attributes.push('<span class="mediaInfoLabel">Sample Rate</span><span class="mediaInfoAttribute">' + stream.SampleRate + ' khz</span>');
|
||||
}
|
||||
|
||||
html += attributes.join(' • ');
|
||||
if (stream.Type != "Video") {
|
||||
attributes.push('<span class="mediaInfoLabel">Default</span><span class="mediaInfoAttribute">' + (stream.IsDefault ? 'Yes' : 'No') + '</span>');
|
||||
}
|
||||
if (stream.Type == "Subtitle") {
|
||||
attributes.push('<span class="mediaInfoLabel">Forced</span><span class="mediaInfoAttribute">' + (stream.IsForced ? 'Yes' : 'No') + '</span>');
|
||||
attributes.push('<span class="mediaInfoLabel">External</span><span class="mediaInfoAttribute">' + (stream.IsExternal ? 'Yes' : 'No') + '</span>');
|
||||
}
|
||||
|
||||
html += attributes.join('<br/>');
|
||||
|
||||
html += '</div>';
|
||||
}
|
||||
|
@ -1201,7 +1290,7 @@
|
|||
}
|
||||
|
||||
if (limit && casts.length > limit) {
|
||||
html += '<p style="margin: .5em 0 0;padding-left: .5em;"><button class="morePeople" data-inline="true" data-mini="true">More ...</button></p>';
|
||||
html += '<p style="margin: 0;padding-left: .5em;"><button class="morePeople" data-inline="true" data-mini="true">More ...</button></p>';
|
||||
}
|
||||
|
||||
$('#castContent', page).html(html).trigger('create');
|
||||
|
|
|
@ -350,7 +350,7 @@
|
|||
if (selection.length < 2) {
|
||||
|
||||
Dashboard.alert({
|
||||
message: "Please select two or more items to combine.",
|
||||
message: "Please select two or more items to group together.",
|
||||
title: "Error"
|
||||
});
|
||||
|
||||
|
|
|
@ -138,7 +138,7 @@
|
|||
var deferred = $.Deferred();
|
||||
|
||||
deferred.resolveWith(null, [{
|
||||
Configuration: {}
|
||||
Configuration: { IsAdministrator: true }
|
||||
}]);
|
||||
|
||||
promise1 = deferred.promise();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue