added metadata editor sidebar
|
@ -507,16 +507,6 @@ a.itemTag:hover {
|
|||
.noBackdrop .lnkSibling {
|
||||
bottom: 205px;
|
||||
}
|
||||
|
||||
.metadataFormFields {
|
||||
float: left;
|
||||
width: 75%;
|
||||
}
|
||||
|
||||
.metadataFormButtons {
|
||||
float: right;
|
||||
width: 23%;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 650px) {
|
||||
|
|
34
dashboard-ui/css/metadataeditor.css
Normal file
|
@ -0,0 +1,34 @@
|
|||
.editPageContent {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.editPageInnerContent {
|
||||
padding: 0 15px 15px;
|
||||
}
|
||||
|
||||
.editPageName {
|
||||
margin: .5em 0 0;
|
||||
}
|
||||
|
||||
.editPageSidebar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media all and (min-width: 600px) {
|
||||
|
||||
.editPageSidebar {
|
||||
position: fixed;
|
||||
top: 36px;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 27.5%;
|
||||
overflow-y: scroll;
|
||||
overflow-x: auto!important;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.editPageInnerContent {
|
||||
float: right;
|
||||
width: 70%;
|
||||
}
|
||||
}
|
|
@ -117,8 +117,29 @@
|
|||
width: 18px;
|
||||
}
|
||||
|
||||
@media all and (min-width: 600px) {
|
||||
@media all and (min-width: 540px) {
|
||||
|
||||
.tileItem {
|
||||
display: inline-block;
|
||||
margin-left: 3px;
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.backdropTileItem {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.posterTileItem, .squareTileItem {
|
||||
width: 45%;
|
||||
}
|
||||
|
||||
.posterTileItem .tileImage {
|
||||
height: 120px;
|
||||
}
|
||||
|
||||
.squareTileItem .tileImage {
|
||||
height: 115px;
|
||||
}
|
||||
|
||||
.smallPosterTileItem {
|
||||
width: 210px;
|
||||
|
@ -128,16 +149,14 @@
|
|||
}
|
||||
|
||||
@media all and (min-width: 750px) {
|
||||
.tileItem {
|
||||
display: inline-block;
|
||||
margin-left: 3px;
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.smallBackdropTileItem {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.backdropTileItem {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
|
||||
.backdropTileItem, .posterTileItem, .squareTileItem {
|
||||
width: 46%;
|
||||
|
|
|
@ -4,21 +4,25 @@
|
|||
<title>Media Browser</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="editItemImagesPage" data-role="page" class="page libraryPage" data-theme="a">
|
||||
<div class="ui-bar-c parentName" style="display: none;">
|
||||
<div id="editItemImagesPage" data-role="page" class="page libraryPage metadataEditorPage" data-theme="a">
|
||||
<div data-role="content editPageContent">
|
||||
<div class="editPageSidebar">
|
||||
<div class="libraryTree">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div data-role="content">
|
||||
|
||||
<div class="ehsContent">
|
||||
<h1 class="itemName detailPageName"></h1>
|
||||
<div class="editPageInnerContent">
|
||||
<h1 class="itemName detailPageName editPageName"> </h1>
|
||||
<br />
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="#" data-role="button" onclick="Dashboard.navigate('edititemmetadata.html', true);">Metadata</a>
|
||||
<a id="peopleTab" style="display: none;" href="#" data-role="button" onclick="Dashboard.navigate('edititempeople.html', true);">People</a>
|
||||
<a href="#" data-role="button" id="btnEditMetadata">Metadata</a>
|
||||
<a href="#" data-role="button" id="btnEditPeople">People</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">Images</a>
|
||||
</div>
|
||||
|
||||
<div style="text-align: center; margin: -25px 0 1em;">
|
||||
<div style="margin: -25px 0 1em;">
|
||||
<a href="#popupUpload" data-rel="popup" data-role="button" data-inline="true" data-icon="plus" data-mini="true" data-transition="pop">Upload Image</a>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,25 +4,44 @@
|
|||
<title>Media Browser</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="editItemMetadataPage" data-role="page" class="page libraryPage" data-theme="a">
|
||||
<div class="ui-bar-c parentName" style="display: none;">
|
||||
<div id="editItemMetadataPage" data-role="page" class="page libraryPage metadataEditorPage" data-theme="a">
|
||||
<div data-role="content editPageContent">
|
||||
<div class="editPageSidebar">
|
||||
<div class="libraryTree">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
<div data-role="content">
|
||||
<div class="ehsContent">
|
||||
<h1 class="itemName detailPageName"></h1>
|
||||
</div>
|
||||
<div class="editPageInnerContent">
|
||||
<h1 class="itemName detailPageName editPageName"> </h1>
|
||||
<br />
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="#" data-role="button" class="ui-btn-active">Metadata</a>
|
||||
<a id="peopleTab" style="display: none;" href="#" data-role="button" onclick="Dashboard.navigate('edititempeople.html', true);">People</a>
|
||||
<a href="#" data-role="button" onclick="Dashboard.navigate('edititemimages.html', true);">Images</a>
|
||||
<a id="btnEditPeople" style="display: none;" href="#" data-role="button">People</a>
|
||||
<a href="#" data-role="button" id="btnEditImages">Images</a>
|
||||
</div>
|
||||
|
||||
<form id="editItemMetadataForm" class="editMetadataForm">
|
||||
<form id="editItemMetadataForm" class="editMetadataForm" style="margin-top: -20px;">
|
||||
<div class="metadataFormFields">
|
||||
|
||||
<div data-role="collapsible" data-collapsed="false">
|
||||
<h3>Basics</h3>
|
||||
<div>
|
||||
<div id="refreshLoading" style="display: none;">
|
||||
<div class="circle"></div>
|
||||
<div class="circle1"></div>
|
||||
<div style="margin-top: -15px;"></div>
|
||||
</div>
|
||||
|
||||
<button id="btnRefresh" type="button" data-icon="refresh" data-mini="true" data-theme="b" data-inline="true">Refresh</button>
|
||||
<div style="display: inline-block;vertical-align:bottom;">
|
||||
<label for="chkForceRefresh">Force refresh</label>
|
||||
<input type="checkbox" id="chkForceRefresh" name="chkForceRefresh" data-mini="true" checked="checked" data-inline="true" />
|
||||
</div>
|
||||
<div style="margin: .5em 0 1em;">
|
||||
<div class="fieldDescription">A force refresh will cause internet metadata to be re-downloaded (if enabled, and dependent on metadata settings).</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="padding: 10px 15px;">
|
||||
<div data-role="fieldcontain">
|
||||
<label for="txtName">Name:</label>
|
||||
<input type="text" id="txtName" name="txtName" required="required" data-mini="true" />
|
||||
|
@ -158,7 +177,6 @@
|
|||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div data-role="collapsible" id="genresCollapsible" style="display: none;">
|
||||
<h3>Genres</h3>
|
||||
<div data-role="editableListviewContainer">
|
||||
|
@ -238,7 +256,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<button type="submit" data-theme="b" data-icon="ok">
|
||||
|
@ -247,32 +264,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="metadataFormButtons">
|
||||
|
||||
<div data-role="collapsible" data-content-theme="a" data-collapsed="false">
|
||||
<h3>Refresh Metadata</h3>
|
||||
<div>
|
||||
<div id="refreshLoading" style="display: none;">
|
||||
<div class="circle"></div>
|
||||
<div class="circle1"></div>
|
||||
<div style="margin-top: -15px;"></div>
|
||||
</div>
|
||||
<p id="fldRecursive" style="display: none;">
|
||||
<label for="chkRecursive">Refresh child items</label>
|
||||
<input type="checkbox" id="chkRecursive" name="chkRecursive" data-mini="true" />
|
||||
</p>
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="chkForceRefresh">Force refresh</label>
|
||||
<input type="checkbox" id="chkForceRefresh" name="chkForceRefresh" data-mini="true" checked="checked" />
|
||||
<div class="fieldDescription">A force refresh will cause internet metadata to be re-downloaded (if enabled, and dependent on metadata settings).</div>
|
||||
</div>
|
||||
<p>
|
||||
<button id="btnRefresh" type="button" data-icon="refresh" data-mini="true" data-theme="b">Refresh</button>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -4,21 +4,25 @@
|
|||
<title>Media Browser</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="editItemPeoplePage" data-role="page" class="page libraryPage" data-theme="a">
|
||||
<div class="ui-bar-c parentName" style="display: none;">
|
||||
<div id="editItemPeoplePage" data-role="page" class="page libraryPage metadataEditorPage" data-theme="a">
|
||||
<div data-role="content editPageContent">
|
||||
<div class="editPageSidebar">
|
||||
<div class="libraryTree">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
<div data-role="content">
|
||||
<div class="ehsContent">
|
||||
<h1 class="itemName detailPageName"></h1>
|
||||
</div>
|
||||
<div class="editPageInnerContent">
|
||||
<h1 class="itemName detailPageName editPageName"> </h1>
|
||||
<br />
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="#" data-role="button" onclick="Dashboard.navigate('edititemmetadata.html', true);">Metadata</a>
|
||||
<a href="#" data-role="button" id="btnEditMetadata">Metadata</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">People</a>
|
||||
<a href="#" data-role="button" onclick="Dashboard.navigate('edititemimages.html', true);">Images</a>
|
||||
<a href="#" data-role="button" id="btnEditImages">Images</a>
|
||||
</div>
|
||||
<button type="button" data-icon="plus" data-inline="true" onclick="EditItemPeoplePage.addPerson();">Add Person</button>
|
||||
<div class="itemsContainer" id="peopleContainer" style="text-align: left;"></div>
|
||||
</div>
|
||||
<div class="itemsContainer" id="peopleContainer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,65 +3,30 @@
|
|||
var currentItem;
|
||||
var currentFile;
|
||||
|
||||
function getPromise() {
|
||||
function updateTabs(page, item) {
|
||||
|
||||
var name = getParameterByName('person');
|
||||
var query = MetadataEditor.getEditQueryString(item);
|
||||
|
||||
if (name) {
|
||||
return ApiClient.getPerson(name, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
name = getParameterByName('studio');
|
||||
|
||||
if (name) {
|
||||
|
||||
return ApiClient.getStudio(name, Dashboard.getCurrentUserId());
|
||||
|
||||
}
|
||||
|
||||
name = getParameterByName('genre');
|
||||
|
||||
if (name) {
|
||||
return ApiClient.getGenre(name, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
name = getParameterByName('musicgenre');
|
||||
|
||||
if (name) {
|
||||
return ApiClient.getMusicGenre(name, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
name = getParameterByName('gamegenre');
|
||||
|
||||
if (name) {
|
||||
return ApiClient.getGameGenre(name, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
name = getParameterByName('artist');
|
||||
|
||||
if (name) {
|
||||
return ApiClient.getArtist(name, Dashboard.getCurrentUserId());
|
||||
}
|
||||
else {
|
||||
return ApiClient.getItem(Dashboard.getCurrentUserId(), getParameterByName('id'));
|
||||
}
|
||||
$('#btnEditPeople', page).attr('href', 'edititempeople.html?' + query);
|
||||
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
|
||||
}
|
||||
|
||||
function reload(page) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
getPromise().done(function (item) {
|
||||
MetadataEditor.getItemPromise().done(function (item) {
|
||||
|
||||
currentItem = item;
|
||||
|
||||
LibraryBrowser.renderName(item, $('.itemName', page), true);
|
||||
LibraryBrowser.renderParentName(item, $('.parentName', page));
|
||||
|
||||
updateTabs(page, item);
|
||||
|
||||
if (item.Type == "Person" || item.Type == "Studio" || item.Type == "MusicGenre" || item.Type == "Genre" || item.Type == "Artist" || item.Type == "GameGenre") {
|
||||
$('#peopleTab', page).hide();
|
||||
$('#btnEditPeople', page).hide();
|
||||
} else {
|
||||
$('#peopleTab', page).show();
|
||||
$('#btnEditPeople', page).show();
|
||||
}
|
||||
|
||||
ApiClient.getItemImageInfos(currentItem.Id).done(function (imageInfos) {
|
||||
|
@ -305,6 +270,22 @@
|
|||
var page = this;
|
||||
|
||||
|
||||
$('.libraryTree', page).on('itemclicked', function (event, data) {
|
||||
|
||||
if (data.id != currentItem.Id) {
|
||||
|
||||
MetadataEditor.currentItemId = data.id;
|
||||
MetadataEditor.currentItemName = data.itemName;
|
||||
MetadataEditor.currentItemType = data.itemType;
|
||||
//Dashboard.navigate('edititemmetadata.html?id=' + data.id);
|
||||
|
||||
$.mobile.urlHistory.ignoreNextHashChange = true;
|
||||
window.location.hash = 'editItemImagesPage?id=' + data.id;
|
||||
|
||||
reload(page);
|
||||
}
|
||||
});
|
||||
|
||||
}).on('pageshow', "#editItemImagesPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
|
|
@ -1,62 +1,303 @@
|
|||
(function ($, document, window) {
|
||||
|
||||
function getNode(item, folderState) {
|
||||
|
||||
var state = item.IsFolder ? folderState : '';
|
||||
|
||||
var name = item.Name;
|
||||
|
||||
if (item.IndexNumber != null && item.Type != "Season") {
|
||||
name = item.IndexNumber + " - " + name;
|
||||
}
|
||||
var rel = item.IsFolder ? 'folder' : 'default';
|
||||
|
||||
return { attr: { id: item.Id, rel: rel, itemtype: item.Type }, data: name, state: state };
|
||||
}
|
||||
|
||||
function loadNode(page, node, openItems, selectedId, callback) {
|
||||
|
||||
if (node == '-1') {
|
||||
|
||||
ApiClient.getRootFolder(Dashboard.getCurrentUserId()).done(function (folder) {
|
||||
|
||||
callback(getNode(folder, 'open'));
|
||||
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
ApiClient.getItems(Dashboard.getCurrentUserId(), {
|
||||
|
||||
ParentId: node.attr("id"),
|
||||
SortBy: 'SortName'
|
||||
|
||||
}).done(function (result) {
|
||||
|
||||
var nodes = result.Items.map(function (i) {
|
||||
|
||||
var state = openItems.indexOf(i.Id) == -1 ? 'closed' : 'open';
|
||||
|
||||
return getNode(i, state);
|
||||
|
||||
});
|
||||
|
||||
callback(nodes);
|
||||
|
||||
if (selectedId && result.Items.filter(function (f) {
|
||||
|
||||
return f.Id == selectedId;
|
||||
|
||||
}).length) {
|
||||
|
||||
selectNode(page, selectedId);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function selectNode(page, id) {
|
||||
|
||||
var elem = $('#' + id, page)[0];
|
||||
|
||||
$.jstree._reference(".libraryTree", page).select_node(elem);
|
||||
|
||||
if (elem) {
|
||||
elem.scrollIntoView();
|
||||
|
||||
var sidebar = $('.editPageSidebar', page);
|
||||
sidebar.scrollTop(sidebar.scrollTop() - sidebar.height() / 3);
|
||||
}
|
||||
|
||||
$(document).scrollTop(0);
|
||||
}
|
||||
|
||||
function initializeTree(page, openItems, selectedId) {
|
||||
|
||||
$('.libraryTree', page).jstree({
|
||||
|
||||
"plugins": ["themes", "ui", "json_data"],
|
||||
|
||||
data: function (node, callback) {
|
||||
loadNode(page, node, openItems, selectedId, callback);
|
||||
},
|
||||
|
||||
json_data: {
|
||||
|
||||
data: function (node, callback) {
|
||||
loadNode(page, node, openItems, selectedId, callback);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
core: { initially_open: [], load_open: true },
|
||||
ui: { initially_select: [] },
|
||||
|
||||
themes: {
|
||||
theme: 'mb3',
|
||||
url: 'thirdparty/jstree1.0fix2/themes/mb3/style.css?v=' + Dashboard.initialServerVersion
|
||||
}
|
||||
|
||||
}).off('select_node.jstree').on('select_node.jstree', function (event, data) {
|
||||
|
||||
var eventData = {
|
||||
id: data.rslt.obj.attr("id"),
|
||||
itemType: data.rslt.obj.attr("itemtype")
|
||||
};
|
||||
|
||||
$(this).trigger('itemclicked', [eventData]);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
$(document).on('pagebeforeshow', ".metadataEditorPage", function () {
|
||||
|
||||
window.MetadataEditor = new metadataEditor();
|
||||
|
||||
var page = this;
|
||||
|
||||
var id = MetadataEditor.currentItemId;
|
||||
|
||||
if (id) {
|
||||
|
||||
$.getJSON(ApiClient.getUrl("Items/" + id + "/Ancestors", {
|
||||
userId: Dashboard.getCurrentUserId()
|
||||
|
||||
})).done(function (ancestors) {
|
||||
|
||||
var ids = ancestors.map(function (i) {
|
||||
return i.Id;
|
||||
});
|
||||
|
||||
initializeTree(page, ids, id);
|
||||
});
|
||||
|
||||
} else {
|
||||
initializeTree(page, []);
|
||||
}
|
||||
|
||||
}).on('pagebeforehide', ".metadataEditorPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
$('.libraryTree', page).off('select_node.jstree');
|
||||
|
||||
});
|
||||
|
||||
function metadataEditor() {
|
||||
|
||||
var self = this;
|
||||
|
||||
function ensureInitialValues() {
|
||||
|
||||
if (self.currentItemType || self.currentItemName || self.currentItemId) {
|
||||
return;
|
||||
}
|
||||
|
||||
var url = window.location.hash || window.location.toString();
|
||||
|
||||
var name = getParameterByName('person', url);
|
||||
|
||||
if (name) {
|
||||
self.currentItemType = "Person";
|
||||
self.currentItemName = name;
|
||||
return;
|
||||
}
|
||||
|
||||
name = getParameterByName('studio', url);
|
||||
|
||||
if (name) {
|
||||
self.currentItemType = "Studio";
|
||||
self.currentItemName = name;
|
||||
return;
|
||||
}
|
||||
|
||||
name = getParameterByName('genre', url);
|
||||
|
||||
if (name) {
|
||||
self.currentItemType = "Genre";
|
||||
self.currentItemName = name;
|
||||
return;
|
||||
}
|
||||
|
||||
name = getParameterByName('musicgenre', url);
|
||||
|
||||
if (name) {
|
||||
self.currentItemType = "MusicGenre";
|
||||
self.currentItemName = name;
|
||||
return;
|
||||
}
|
||||
|
||||
name = getParameterByName('gamegenre', url);
|
||||
|
||||
if (name) {
|
||||
self.currentItemType = "GameGenre";
|
||||
self.currentItemName = name;
|
||||
return;
|
||||
}
|
||||
|
||||
name = getParameterByName('artist', url);
|
||||
|
||||
if (name) {
|
||||
self.currentItemType = "Artist";
|
||||
self.currentItemName = name;
|
||||
return;
|
||||
}
|
||||
|
||||
var id = getParameterByName('id', url);
|
||||
|
||||
if (id) {
|
||||
self.currentItemId = id;
|
||||
self.currentItemType = null;
|
||||
}
|
||||
};
|
||||
|
||||
self.getItemPromise = function () {
|
||||
|
||||
var currentItemType = self.currentItemType;
|
||||
var currentItemName = self.currentItemName;
|
||||
var currentItemId = self.currentItemId;
|
||||
|
||||
if (currentItemType == "Person") {
|
||||
return ApiClient.getPerson(currentItemName, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
if (currentItemType == "Studio") {
|
||||
return ApiClient.getStudio(currentItemName, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
if (currentItemType == "Genre") {
|
||||
return ApiClient.getGenre(currentItemName, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
if (currentItemType == "MusicGenre") {
|
||||
return ApiClient.getMusicGenre(currentItemName, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
if (currentItemType == "GameGenre") {
|
||||
return ApiClient.getGameGenre(currentItemName, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
if (currentItemType == "Artist") {
|
||||
return ApiClient.getArtist(currentItemName, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
if (currentItemId) {
|
||||
return ApiClient.getItem(Dashboard.getCurrentUserId(), currentItemId);
|
||||
}
|
||||
|
||||
return ApiClient.getRootFolder(Dashboard.getCurrentUserId());
|
||||
};
|
||||
|
||||
self.getEditQueryString = function (item) {
|
||||
|
||||
var query;
|
||||
|
||||
if (item.Type == "Person" ||
|
||||
item.Type == "Studio" ||
|
||||
item.Type == "Genre" ||
|
||||
item.Type == "MusicGenre" ||
|
||||
item.Type == "GameGenre" ||
|
||||
item.Type == "Artist") {
|
||||
query = item.Type + "=" + ApiClient.encodeName(item.Name);
|
||||
|
||||
} else {
|
||||
query = "id=" + item.Id;
|
||||
}
|
||||
|
||||
var context = getParameterByName('context');
|
||||
|
||||
if (context) {
|
||||
query += "&context=" + context;
|
||||
}
|
||||
|
||||
return query;
|
||||
};
|
||||
|
||||
ensureInitialValues();
|
||||
}
|
||||
|
||||
|
||||
})(jQuery, document, window);
|
||||
|
||||
(function ($, document, window) {
|
||||
|
||||
var currentItem;
|
||||
|
||||
function getPromise() {
|
||||
function updateTabs(page, item) {
|
||||
|
||||
var name = getParameterByName('person');
|
||||
var query = MetadataEditor.getEditQueryString(item);
|
||||
|
||||
if (name) {
|
||||
return ApiClient.getPerson(name, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
name = getParameterByName('studio');
|
||||
|
||||
if (name) {
|
||||
|
||||
return ApiClient.getStudio(name, Dashboard.getCurrentUserId());
|
||||
|
||||
}
|
||||
|
||||
name = getParameterByName('genre');
|
||||
|
||||
if (name) {
|
||||
return ApiClient.getGenre(name, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
name = getParameterByName('musicgenre');
|
||||
|
||||
if (name) {
|
||||
return ApiClient.getMusicGenre(name, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
name = getParameterByName('gamegenre');
|
||||
|
||||
if (name) {
|
||||
return ApiClient.getGameGenre(name, Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
name = getParameterByName('artist');
|
||||
|
||||
if (name) {
|
||||
return ApiClient.getArtist(name, Dashboard.getCurrentUserId());
|
||||
}
|
||||
else {
|
||||
return ApiClient.getItem(Dashboard.getCurrentUserId(), getParameterByName('id'));
|
||||
}
|
||||
$('#btnEditPeople', page).attr('href', 'edititempeople.html?' + query);
|
||||
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
|
||||
}
|
||||
|
||||
function reload(page) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
getPromise().done(function (item) {
|
||||
|
||||
if (item.IsFolder) {
|
||||
$('#fldRecursive', page).show();
|
||||
} else {
|
||||
$('#fldRecursive', page).hide();
|
||||
}
|
||||
MetadataEditor.getItemPromise().done(function (item) {
|
||||
|
||||
$('#btnRefresh', page).button('enable');
|
||||
|
||||
|
@ -65,15 +306,16 @@
|
|||
currentItem = item;
|
||||
|
||||
LibraryBrowser.renderName(item, $('.itemName', page), true);
|
||||
LibraryBrowser.renderParentName(item, $('.parentName', page));
|
||||
|
||||
updateTabs(page, item);
|
||||
|
||||
setFieldVisibilities(page, item);
|
||||
fillItemInfo(page, item);
|
||||
|
||||
if (item.Type == "Person" || item.Type == "Studio" || item.Type == "MusicGenre" || item.Type == "Genre" || item.Type == "Artist") {
|
||||
$('#peopleTab', page).hide();
|
||||
$('#btnEditPeople', page).hide();
|
||||
} else {
|
||||
$('#peopleTab', page).show();
|
||||
$('#btnEditPeople', page).show();
|
||||
}
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
@ -523,7 +765,7 @@
|
|||
var form = this;
|
||||
|
||||
var item = {
|
||||
Id: getParameterByName('id'),
|
||||
Id: currentItem.Id,
|
||||
Name: $('#txtName', form).val(),
|
||||
SortName: $('#txtSortName', form).val(),
|
||||
DisplayMediaType: $('#txtDisplayMediaType', form).val(),
|
||||
|
@ -548,7 +790,7 @@
|
|||
Studios: editableListViewValues($("#listStudios", form)).map(function (element) { return { Name: element }; }),
|
||||
|
||||
PremiereDate: $('#txtPremiereDate', form).val() || null,
|
||||
EndDate: $('#txtEndDate', form).val() || null ,
|
||||
EndDate: $('#txtEndDate', form).val() || null,
|
||||
ProductionYear: $('#txtProductionYear', form).val(),
|
||||
AspectRatio: $('#txtOriginalAspectRatio', form).val(),
|
||||
Video3DFormat: $('#select3dFormat', form).val(),
|
||||
|
@ -654,7 +896,6 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
|
||||
$('#btnRefresh', this).on('click', function () {
|
||||
|
||||
$(this).button('disable');
|
||||
|
@ -684,7 +925,7 @@
|
|||
refreshPromise = ApiClient.refreshStudio(currentItem.Name, force);
|
||||
}
|
||||
else {
|
||||
refreshPromise = ApiClient.refreshItem(currentItem.Id, force, $('#chkRecursive', page).checked());
|
||||
refreshPromise = ApiClient.refreshItem(currentItem.Id, force, false);
|
||||
}
|
||||
|
||||
refreshPromise.done(function () {
|
||||
|
@ -694,17 +935,29 @@
|
|||
});
|
||||
});
|
||||
|
||||
}).on('pageshow', "#editItemMetadataPage", function () {
|
||||
$('.libraryTree', page).on('itemclicked', function (event, data) {
|
||||
|
||||
if (data.id != currentItem.Id) {
|
||||
|
||||
MetadataEditor.currentItemId = data.id;
|
||||
MetadataEditor.currentItemName = data.itemName;
|
||||
MetadataEditor.currentItemType = data.itemType;
|
||||
//Dashboard.navigate('edititemmetadata.html?id=' + data.id);
|
||||
|
||||
$.mobile.urlHistory.ignoreNextHashChange = true;
|
||||
window.location.hash = 'editItemMetadataPage?id=' + data.id;
|
||||
|
||||
reload(page);
|
||||
}
|
||||
});
|
||||
|
||||
}).on('pagebeforeshow', "#editItemMetadataPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
reload(page);
|
||||
|
||||
}).on('pagehide', "#editItemMetadataPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
currentItem = null;
|
||||
});
|
||||
|
||||
})(jQuery, document, window);
|
||||
|
||||
|
|
|
@ -2,28 +2,30 @@
|
|||
|
||||
var currentItem;
|
||||
|
||||
function reload(page) {
|
||||
function updateTabs(page, item) {
|
||||
|
||||
var id = getParameterByName('id');
|
||||
var query = MetadataEditor.getEditQueryString(item);
|
||||
|
||||
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
|
||||
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
|
||||
}
|
||||
|
||||
function reload(page) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
ApiClient.getItem(Dashboard.getCurrentUserId(), id).done(function (item) {
|
||||
|
||||
if (item.IsFolder) {
|
||||
$('#fldRecursive', page).show();
|
||||
} else {
|
||||
$('#fldRecursive', page).hide();
|
||||
}
|
||||
MetadataEditor.getItemPromise().done(function (item) {
|
||||
|
||||
$('#btnRefresh', page).button('enable');
|
||||
|
||||
$('#refreshLoading', page).hide();
|
||||
|
||||
currentItem = item;
|
||||
|
||||
LibraryBrowser.renderName(item, $('.itemName', page), true);
|
||||
LibraryBrowser.renderParentName(item, $('.parentName', page));
|
||||
fillPeopleContainer(item.People,$('#peopleContainer',page));
|
||||
updateTabs(page, item);
|
||||
|
||||
fillPeopleContainer(item.People, $('#peopleContainer', page));
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
}
|
||||
|
@ -57,27 +59,27 @@
|
|||
|
||||
imgUrl = "css/images/items/list/person.png";
|
||||
}
|
||||
html += '<div class="tileImage" style="background-image: url(\''+imgUrl+'\');"></div>';
|
||||
html += '<div class="tileImage" style="background-image: url(\'' + imgUrl + '\');"></div>';
|
||||
html += '<div class="tileContent">';
|
||||
html += '<div data-role="fieldcontain">';
|
||||
html += '<input type="hidden" name="originalName" value="' + name + '">';
|
||||
html += '<input type="hidden" name="originalRole" value="' + role + '">';
|
||||
html += '<input type="hidden" name="originalType" value="' + type + '">';
|
||||
html += '<label for="txtName">Name:</label>';
|
||||
html += '<span class="read" style="font-size: 16px;line-height: 1.4;"> ' + (name) + '</span><span style="display:none;" class="edit">';
|
||||
html += '<span class="read"> ' + (name) + '</span><span style="display:none;" class="edit">';
|
||||
html += '<input type="text" name="txtName" required="required" data-mini="true" value="' + (name) + '"/>';
|
||||
html += '</span>';
|
||||
html += '</div>';
|
||||
html += '<div data-role="fieldcontain">';
|
||||
html += '<label for="txtRole">Role:</label>';
|
||||
html += '<span class="read" style="font-size: 16px;line-height: 1.4;"> ' + (role) + '</span><span style="display:none;" class="edit">';
|
||||
html += '<span class="read"> ' + (role) + '</span><span style="display:none;" class="edit">';
|
||||
html += '<input type="text" name="txtRole" required="required" data-mini="true" value="' + (role) + '"/>';
|
||||
html += '</span>';
|
||||
html += '</div>';
|
||||
html += '<div data-role="fieldcontain">';
|
||||
html += '<label for="selectType">Type:</label>';
|
||||
html += '<span class="read" style="font-size: 16px;line-height: 1.4;"> ' + (type) + '</span><span style="display:none;" class="edit">';
|
||||
html += '<select name="selectType">';
|
||||
html += '<span class="read"> ' + (type) + '</span><span style="display:none;" class="edit">';
|
||||
html += '<select name="selectType" data-inline="true" data-mini="true">';
|
||||
html += generateTypes(type);
|
||||
html += '</select>';
|
||||
html += '</span>';
|
||||
|
@ -88,7 +90,7 @@
|
|||
html += '</span><span style="display:none;" class="edit">';
|
||||
html += '<button type="button" data-mini="true" data-inline="true" onclick="EditItemPeoplePage.hideEdit(this)">Cancel</button>';
|
||||
html += '<button type="button" data-icon="check" data-mini="true" data-inline="true" data-theme="b" onclick="EditItemPeoplePage.savePerson(this)">Save</button>';
|
||||
html += '<button type="button" data-icon="delete" data-mini="true" data-inline="true" data-iconpos="notext" onclick="EditItemPeoplePage.removePerson(this)">Delete</button>';
|
||||
html += '<button type="button" data-icon="delete" data-mini="true" data-inline="true" onclick="EditItemPeoplePage.removePerson(this)">Delete</button>';
|
||||
html += '</span>';
|
||||
html += '</p>';
|
||||
html += '</div>';
|
||||
|
@ -147,7 +149,7 @@
|
|||
}
|
||||
});
|
||||
};
|
||||
self.savePerson = function(source) {
|
||||
self.savePerson = function (source) {
|
||||
|
||||
var page = $.mobile.activePage;
|
||||
|
||||
|
@ -163,7 +165,7 @@
|
|||
currentItem.People[i].Name = item.find('input[name="txtName"]').val();
|
||||
currentItem.People[i].Role = item.find('input[name="txtRole"]').val();
|
||||
currentItem.People[i].Type = item.find('select[name="selectType"]').val();
|
||||
ApiClient.updateItem(currentItem).done(function() {
|
||||
ApiClient.updateItem(currentItem).done(function () {
|
||||
reload(page);
|
||||
});
|
||||
break;
|
||||
|
@ -171,7 +173,7 @@
|
|||
}
|
||||
};
|
||||
|
||||
self.addPerson = function() {
|
||||
self.addPerson = function () {
|
||||
var page = $.mobile.activePage;
|
||||
|
||||
var html = '<div data-role="popup" id="popupCreatePerson" class="ui-corner-all popup" style=" width: 270px;" >';
|
||||
|
@ -186,7 +188,7 @@
|
|||
html += '<input type="text" id="txtPersonName" name="txtPersonName" required="required"/>';
|
||||
|
||||
html += '<label for="txtPersonRole">Role:</label>';
|
||||
html += '<input type="text" id="txtPersonRole" name="txtPersonRole" style="font-weight:bold;" />';
|
||||
html += '<input type="text" id="txtPersonRole" name="txtPersonRole" />';
|
||||
|
||||
html += '<label for="selectPersonType">Type:</label>';
|
||||
html += '<select id="selectPersonType" name="selectPersonType">';
|
||||
|
@ -203,9 +205,9 @@
|
|||
|
||||
$(page).append(html);
|
||||
|
||||
var popup = $('#popupCreatePerson').popup().trigger('create').on("popupafteropen", function() {
|
||||
var popup = $('#popupCreatePerson').popup().trigger('create').on("popupafteropen", function () {
|
||||
$('#popupCreatePerson input:first', this).focus();
|
||||
}).popup("open").on("popupafterclose", function() {
|
||||
}).popup("open").on("popupafterclose", function () {
|
||||
|
||||
$('form', this).off("submit");
|
||||
$(this).off("click").off("popupafterclose").remove();
|
||||
|
@ -216,7 +218,7 @@
|
|||
|
||||
var form = $(this);
|
||||
|
||||
var name = $('#txtPersonName',form).val();
|
||||
var name = $('#txtPersonName', form).val();
|
||||
if (name != '') {
|
||||
var role = $('#txtPersonRole', form).val();
|
||||
var type = $('#selectPersonType', form).val();
|
||||
|
@ -237,6 +239,21 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
$('.libraryTree', page).on('itemclicked', function (event, data) {
|
||||
|
||||
if (data.id != currentItem.Id) {
|
||||
MetadataEditor.currentItemId = data.id;
|
||||
MetadataEditor.currentItemName = data.itemName;
|
||||
MetadataEditor.currentItemType = data.itemType;
|
||||
//Dashboard.navigate('edititemmetadata.html?id=' + data.id);
|
||||
|
||||
$.mobile.urlHistory.ignoreNextHashChange = true;
|
||||
window.location.hash = 'editItemPeoplePage?id=' + data.id;
|
||||
|
||||
reload(page);
|
||||
}
|
||||
});
|
||||
|
||||
}).on('pageshow', "#editItemPeoplePage", function () {
|
||||
|
||||
var page = this;
|
||||
|
|
|
@ -1522,10 +1522,6 @@
|
|||
miscInfo.push(item.OfficialRating);
|
||||
}
|
||||
|
||||
if (item.MediaType && item.DisplayMediaType && item.DisplayMediaType != item.Type) {
|
||||
miscInfo.push(item.DisplayMediaType);
|
||||
}
|
||||
|
||||
if (item.Video3DFormat) {
|
||||
miscInfo.push("3D");
|
||||
}
|
||||
|
|
4564
dashboard-ui/thirdparty/jstree1.0fix2/jquery.jstree.js
vendored
Normal file
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/apple/bg.jpg
vendored
Normal file
After Width: | Height: | Size: 331 B |
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/apple/d.png
vendored
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/apple/dot_for_ie.gif
vendored
Normal file
After Width: | Height: | Size: 43 B |
61
dashboard-ui/thirdparty/jstree1.0fix2/themes/apple/style.css
vendored
Normal file
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* jsTree apple theme 1.0
|
||||
* Supported features: dots/no-dots, icons/no-icons, focused, loading
|
||||
* Supported plugins: ui (hovered, clicked), checkbox, contextmenu, search
|
||||
*/
|
||||
|
||||
.jstree-apple > ul { background:url("bg.jpg") left top repeat; }
|
||||
.jstree-apple li,
|
||||
.jstree-apple ins { background-image:url("d.png"); background-repeat:no-repeat; background-color:transparent; }
|
||||
.jstree-apple li { background-position:-90px 0; background-repeat:repeat-y; }
|
||||
.jstree-apple li.jstree-last { background:transparent; }
|
||||
.jstree-apple .jstree-open > ins { background-position:-72px 0; }
|
||||
.jstree-apple .jstree-closed > ins { background-position:-54px 0; }
|
||||
.jstree-apple .jstree-leaf > ins { background-position:-36px 0; }
|
||||
|
||||
.jstree-apple a { border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px; text-shadow:1px 1px 1px white; }
|
||||
.jstree-apple .jstree-hovered { background:#e7f4f9; border:1px solid #d8f0fa; padding:0 3px 0 1px; text-shadow:1px 1px 1px silver; }
|
||||
.jstree-apple .jstree-clicked { background:#beebff; border:1px solid #99defd; padding:0 3px 0 1px; }
|
||||
.jstree-apple a .jstree-icon { background-position:-56px -20px; }
|
||||
.jstree-apple a.jstree-loading .jstree-icon { background:url("throbber.gif") center center no-repeat !important; }
|
||||
|
||||
.jstree-apple.jstree-focused { background:white; }
|
||||
|
||||
.jstree-apple .jstree-no-dots li,
|
||||
.jstree-apple .jstree-no-dots .jstree-leaf > ins { background:transparent; }
|
||||
.jstree-apple .jstree-no-dots .jstree-open > ins { background-position:-18px 0; }
|
||||
.jstree-apple .jstree-no-dots .jstree-closed > ins { background-position:0 0; }
|
||||
|
||||
.jstree-apple .jstree-no-icons a .jstree-icon { display:none; }
|
||||
|
||||
.jstree-apple .jstree-search { font-style:italic; }
|
||||
|
||||
.jstree-apple .jstree-no-icons .jstree-checkbox { display:inline-block; }
|
||||
.jstree-apple .jstree-no-checkboxes .jstree-checkbox { display:none !important; }
|
||||
.jstree-apple .jstree-checked > a > .jstree-checkbox { background-position:-38px -19px; }
|
||||
.jstree-apple .jstree-unchecked > a > .jstree-checkbox { background-position:-2px -19px; }
|
||||
.jstree-apple .jstree-undetermined > a > .jstree-checkbox { background-position:-20px -19px; }
|
||||
.jstree-apple .jstree-checked > a > .checkbox:hover { background-position:-38px -37px; }
|
||||
.jstree-apple .jstree-unchecked > a > .jstree-checkbox:hover { background-position:-2px -37px; }
|
||||
.jstree-apple .jstree-undetermined > a > .jstree-checkbox:hover { background-position:-20px -37px; }
|
||||
|
||||
#vakata-dragged.jstree-apple ins { background:transparent !important; }
|
||||
#vakata-dragged.jstree-apple .jstree-ok { background:url("d.png") -2px -53px no-repeat !important; }
|
||||
#vakata-dragged.jstree-apple .jstree-invalid { background:url("d.png") -18px -53px no-repeat !important; }
|
||||
#jstree-marker.jstree-apple { background:url("d.png") -41px -57px no-repeat !important; text-indent:-100px; }
|
||||
|
||||
.jstree-apple a.jstree-search { color:aqua; }
|
||||
.jstree-apple .jstree-locked a { color:silver; cursor:default; }
|
||||
|
||||
#vakata-contextmenu.jstree-apple-context,
|
||||
#vakata-contextmenu.jstree-apple-context li ul { background:#f0f0f0; border:1px solid #979797; -moz-box-shadow: 1px 1px 2px #999; -webkit-box-shadow: 1px 1px 2px #999; box-shadow: 1px 1px 2px #999; }
|
||||
#vakata-contextmenu.jstree-apple-context li { }
|
||||
#vakata-contextmenu.jstree-apple-context a { color:black; }
|
||||
#vakata-contextmenu.jstree-apple-context a:hover,
|
||||
#vakata-contextmenu.jstree-apple-context .vakata-hover > a { padding:0 5px; background:#e8eff7; border:1px solid #aecff7; color:black; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
|
||||
#vakata-contextmenu.jstree-apple-context li.jstree-contextmenu-disabled a,
|
||||
#vakata-contextmenu.jstree-apple-context li.jstree-contextmenu-disabled a:hover { color:silver; background:transparent; border:0; padding:1px 4px; }
|
||||
#vakata-contextmenu.jstree-apple-context li.vakata-separator { background:white; border-top:1px solid #e0e0e0; margin:0; }
|
||||
#vakata-contextmenu.jstree-apple-context li ul { margin-left:-4px; }
|
||||
|
||||
/* TODO: IE6 support - the `>` selectors */
|
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/apple/throbber.gif
vendored
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/classic/d.gif
vendored
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/classic/d.png
vendored
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/classic/dot_for_ie.gif
vendored
Normal file
After Width: | Height: | Size: 43 B |
77
dashboard-ui/thirdparty/jstree1.0fix2/themes/classic/style.css
vendored
Normal file
|
@ -0,0 +1,77 @@
|
|||
/*
|
||||
* jsTree classic theme 1.0
|
||||
* Supported features: dots/no-dots, icons/no-icons, focused, loading
|
||||
* Supported plugins: ui (hovered, clicked), checkbox, contextmenu, search
|
||||
*/
|
||||
|
||||
.jstree-classic li,
|
||||
.jstree-classic ins { background-image:url("d.png"); background-repeat:no-repeat; background-color:transparent; }
|
||||
.jstree-classic li { background-position:-90px 0; background-repeat:repeat-y; }
|
||||
.jstree-classic li.jstree-last { background:transparent; }
|
||||
.jstree-classic .jstree-open > ins { background-position:-72px 0; }
|
||||
.jstree-classic .jstree-closed > ins { background-position:-54px 0; }
|
||||
.jstree-classic .jstree-leaf > ins { background-position:-36px 0; }
|
||||
|
||||
.jstree-classic .jstree-hovered { background:#e7f4f9; border:1px solid #e7f4f9; padding:0 2px 0 1px; }
|
||||
.jstree-classic .jstree-clicked { background:navy; border:1px solid navy; padding:0 2px 0 1px; color:white; }
|
||||
.jstree-classic a .jstree-icon { background-position:-56px -19px; }
|
||||
.jstree-classic .jstree-open > a .jstree-icon { background-position:-56px -36px; }
|
||||
.jstree-classic a.jstree-loading .jstree-icon { background:url("throbber.gif") center center no-repeat !important; }
|
||||
|
||||
.jstree-classic.jstree-focused { background:white; }
|
||||
|
||||
.jstree-classic .jstree-no-dots li,
|
||||
.jstree-classic .jstree-no-dots .jstree-leaf > ins { background:transparent; }
|
||||
.jstree-classic .jstree-no-dots .jstree-open > ins { background-position:-18px 0; }
|
||||
.jstree-classic .jstree-no-dots .jstree-closed > ins { background-position:0 0; }
|
||||
|
||||
.jstree-classic .jstree-no-icons a .jstree-icon { display:none; }
|
||||
|
||||
.jstree-classic .jstree-search { font-style:italic; }
|
||||
|
||||
.jstree-classic .jstree-no-icons .jstree-checkbox { display:inline-block; }
|
||||
.jstree-classic .jstree-no-checkboxes .jstree-checkbox { display:none !important; }
|
||||
.jstree-classic .jstree-checked > a > .jstree-checkbox { background-position:-38px -19px; }
|
||||
.jstree-classic .jstree-unchecked > a > .jstree-checkbox { background-position:-2px -19px; }
|
||||
.jstree-classic .jstree-undetermined > a > .jstree-checkbox { background-position:-20px -19px; }
|
||||
.jstree-classic .jstree-checked > a > .jstree-checkbox:hover { background-position:-38px -37px; }
|
||||
.jstree-classic .jstree-unchecked > a > .jstree-checkbox:hover { background-position:-2px -37px; }
|
||||
.jstree-classic .jstree-undetermined > a > .jstree-checkbox:hover { background-position:-20px -37px; }
|
||||
|
||||
#vakata-dragged.jstree-classic ins { background:transparent !important; }
|
||||
#vakata-dragged.jstree-classic .jstree-ok { background:url("d.png") -2px -53px no-repeat !important; }
|
||||
#vakata-dragged.jstree-classic .jstree-invalid { background:url("d.png") -18px -53px no-repeat !important; }
|
||||
#jstree-marker.jstree-classic { background:url("d.png") -41px -57px no-repeat !important; text-indent:-100px; }
|
||||
|
||||
.jstree-classic a.jstree-search { color:aqua; }
|
||||
.jstree-classic .jstree-locked a { color:silver; cursor:default; }
|
||||
|
||||
#vakata-contextmenu.jstree-classic-context,
|
||||
#vakata-contextmenu.jstree-classic-context li ul { background:#f0f0f0; border:1px solid #979797; -moz-box-shadow: 1px 1px 2px #999; -webkit-box-shadow: 1px 1px 2px #999; box-shadow: 1px 1px 2px #999; }
|
||||
#vakata-contextmenu.jstree-classic-context li { }
|
||||
#vakata-contextmenu.jstree-classic-context a { color:black; }
|
||||
#vakata-contextmenu.jstree-classic-context a:hover,
|
||||
#vakata-contextmenu.jstree-classic-context .vakata-hover > a { padding:0 5px; background:#e8eff7; border:1px solid #aecff7; color:black; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
|
||||
#vakata-contextmenu.jstree-classic-context li.jstree-contextmenu-disabled a,
|
||||
#vakata-contextmenu.jstree-classic-context li.jstree-contextmenu-disabled a:hover { color:silver; background:transparent; border:0; padding:1px 4px; }
|
||||
#vakata-contextmenu.jstree-classic-context li.vakata-separator { background:white; border-top:1px solid #e0e0e0; margin:0; }
|
||||
#vakata-contextmenu.jstree-classic-context li ul { margin-left:-4px; }
|
||||
|
||||
/* IE6 BEGIN */
|
||||
.jstree-classic li,
|
||||
.jstree-classic ins,
|
||||
#vakata-dragged.jstree-classic .jstree-invalid,
|
||||
#vakata-dragged.jstree-classic .jstree-ok,
|
||||
#jstree-marker.jstree-classic { _background-image:url("d.gif"); }
|
||||
.jstree-classic .jstree-open ins { _background-position:-72px 0; }
|
||||
.jstree-classic .jstree-closed ins { _background-position:-54px 0; }
|
||||
.jstree-classic .jstree-leaf ins { _background-position:-36px 0; }
|
||||
.jstree-classic .jstree-open a ins.jstree-icon { _background-position:-56px -36px; }
|
||||
.jstree-classic .jstree-closed a ins.jstree-icon { _background-position:-56px -19px; }
|
||||
.jstree-classic .jstree-leaf a ins.jstree-icon { _background-position:-56px -19px; }
|
||||
#vakata-contextmenu.jstree-classic-context ins { _display:none; }
|
||||
#vakata-contextmenu.jstree-classic-context li { _zoom:1; }
|
||||
.jstree-classic .jstree-undetermined a .jstree-checkbox { _background-position:-20px -19px; }
|
||||
.jstree-classic .jstree-checked a .jstree-checkbox { _background-position:-38px -19px; }
|
||||
.jstree-classic .jstree-unchecked a .jstree-checkbox { _background-position:-2px -19px; }
|
||||
/* IE6 END */
|
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/classic/throbber.gif
vendored
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/default-rtl/d.gif
vendored
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/default-rtl/d.png
vendored
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/default-rtl/dots.gif
vendored
Normal file
After Width: | Height: | Size: 132 B |
84
dashboard-ui/thirdparty/jstree1.0fix2/themes/default-rtl/style.css
vendored
Normal file
|
@ -0,0 +1,84 @@
|
|||
/*
|
||||
* jsTree default-rtl theme 1.0
|
||||
* Supported features: dots/no-dots, icons/no-icons, focused, loading
|
||||
* Supported plugins: ui (hovered, clicked), checkbox, contextmenu, search
|
||||
*/
|
||||
|
||||
.jstree-default-rtl li,
|
||||
.jstree-default-rtl ins { background-image:url("d.png"); background-repeat:no-repeat; background-color:transparent; }
|
||||
.jstree-default-rtl li { background-position:-90px 0; background-repeat:repeat-y; }
|
||||
.jstree-default-rtl li.jstree-last { background:transparent; }
|
||||
.jstree-default-rtl .jstree-open > ins { background-position:-72px 0; }
|
||||
.jstree-default-rtl .jstree-closed > ins { background-position:-54px 0; }
|
||||
.jstree-default-rtl .jstree-leaf > ins { background-position:-36px 0; }
|
||||
|
||||
.jstree-default-rtl .jstree-hovered { background:#e7f4f9; border:1px solid #d8f0fa; padding:0 2px 0 1px; }
|
||||
.jstree-default-rtl .jstree-clicked { background:#beebff; border:1px solid #99defd; padding:0 2px 0 1px; }
|
||||
.jstree-default-rtl a .jstree-icon { background-position:-56px -19px; }
|
||||
.jstree-default-rtl a.jstree-loading .jstree-icon { background:url("throbber.gif") center center no-repeat !important; }
|
||||
|
||||
.jstree-default-rtl.jstree-focused { background:#ffffee; }
|
||||
|
||||
.jstree-default-rtl .jstree-no-dots li,
|
||||
.jstree-default-rtl .jstree-no-dots .jstree-leaf > ins { background:transparent; }
|
||||
.jstree-default-rtl .jstree-no-dots .jstree-open > ins { background-position:-18px 0; }
|
||||
.jstree-default-rtl .jstree-no-dots .jstree-closed > ins { background-position:0 0; }
|
||||
|
||||
.jstree-default-rtl .jstree-no-icons a .jstree-icon { display:none; }
|
||||
|
||||
.jstree-default-rtl .jstree-search { font-style:italic; }
|
||||
|
||||
.jstree-default-rtl .jstree-no-icons .jstree-checkbox { display:inline-block; }
|
||||
.jstree-default-rtl .jstree-no-checkboxes .jstree-checkbox { display:none !important; }
|
||||
.jstree-default-rtl .jstree-checked > a > .jstree-checkbox { background-position:-38px -19px; }
|
||||
.jstree-default-rtl .jstree-unchecked > a > .jstree-checkbox { background-position:-2px -19px; }
|
||||
.jstree-default-rtl .jstree-undetermined > a > .jstree-checkbox { background-position:-20px -19px; }
|
||||
.jstree-default-rtl .jstree-checked > a > .jstree-checkbox:hover { background-position:-38px -37px; }
|
||||
.jstree-default-rtl .jstree-unchecked > a > .jstree-checkbox:hover { background-position:-2px -37px; }
|
||||
.jstree-default-rtl .jstree-undetermined > a > .jstree-checkbox:hover { background-position:-20px -37px; }
|
||||
|
||||
#vakata-dragged.jstree-default-rtl ins { background:transparent !important; }
|
||||
#vakata-dragged.jstree-default-rtl .jstree-ok { background:url("d.png") -2px -53px no-repeat !important; }
|
||||
#vakata-dragged.jstree-default-rtl .jstree-invalid { background:url("d.png") -18px -53px no-repeat !important; }
|
||||
#jstree-marker.jstree-default-rtl { background:url("d.png") -41px -57px no-repeat !important; text-indent:-100px; }
|
||||
|
||||
.jstree-default-rtl a.jstree-search { color:aqua; }
|
||||
.jstree-default-rtl .jstree-locked a { color:silver; cursor:default; }
|
||||
|
||||
#vakata-contextmenu.jstree-default-rtl-context,
|
||||
#vakata-contextmenu.jstree-default-rtl-context li ul { background:#f0f0f0; border:1px solid #979797; -moz-box-shadow: 1px 1px 2px #999; -webkit-box-shadow: 1px 1px 2px #999; box-shadow: 1px 1px 2px #999; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context li { }
|
||||
#vakata-contextmenu.jstree-default-rtl-context a { color:black; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context a:hover,
|
||||
#vakata-contextmenu.jstree-default-rtl-context .vakata-hover > a { padding:0 5px; background:#e8eff7; border:1px solid #aecff7; color:black; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context li.jstree-contextmenu-disabled a,
|
||||
#vakata-contextmenu.jstree-default-rtl-context li.jstree-contextmenu-disabled a:hover { color:silver; background:transparent; border:0; padding:1px 4px; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context li.vakata-separator { background:white; border-top:1px solid #e0e0e0; margin:0; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context li ul { margin-left:-4px; }
|
||||
|
||||
/* IE6 BEGIN */
|
||||
.jstree-default-rtl li,
|
||||
.jstree-default-rtl ins,
|
||||
#vakata-dragged.jstree-default-rtl .jstree-invalid,
|
||||
#vakata-dragged.jstree-default-rtl .jstree-ok,
|
||||
#jstree-marker.jstree-default-rtl { _background-image:url("d.gif"); }
|
||||
.jstree-default-rtl .jstree-open ins { _background-position:-72px 0; }
|
||||
.jstree-default-rtl .jstree-closed ins { _background-position:-54px 0; }
|
||||
.jstree-default-rtl .jstree-leaf ins { _background-position:-36px 0; }
|
||||
.jstree-default-rtl a ins.jstree-icon { _background-position:-56px -19px; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context ins { _display:none; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context li { _zoom:1; }
|
||||
.jstree-default-rtl .jstree-undetermined a .jstree-checkbox { _background-position:-18px -19px; }
|
||||
.jstree-default-rtl .jstree-checked a .jstree-checkbox { _background-position:-36px -19px; }
|
||||
.jstree-default-rtl .jstree-unchecked a .jstree-checkbox { _background-position:0px -19px; }
|
||||
/* IE6 END */
|
||||
|
||||
/* RTL part */
|
||||
.jstree-default-rtl .jstree-hovered, .jstree-default-rtl .jstree-clicked { padding:0 1px 0 2px; }
|
||||
.jstree-default-rtl li { background-image:url("dots.gif"); background-position: 100% 0px; }
|
||||
.jstree-default-rtl .jstree-checked > a > .jstree-checkbox { background-position:-36px -19px; margin-left:2px; }
|
||||
.jstree-default-rtl .jstree-unchecked > a > .jstree-checkbox { background-position:0px -19px; margin-left:2px; }
|
||||
.jstree-default-rtl .jstree-undetermined > a > .jstree-checkbox { background-position:-18px -19px; margin-left:2px; }
|
||||
.jstree-default-rtl .jstree-checked > a > .jstree-checkbox:hover { background-position:-36px -37px; }
|
||||
.jstree-default-rtl .jstree-unchecked > a > .jstree-checkbox:hover { background-position:0px -37px; }
|
||||
.jstree-default-rtl .jstree-undetermined > a > .jstree-checkbox:hover { background-position:-18px -37px; }
|
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/default-rtl/throbber.gif
vendored
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/default/d.gif
vendored
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/default/d.png
vendored
Normal file
After Width: | Height: | Size: 7.5 KiB |
74
dashboard-ui/thirdparty/jstree1.0fix2/themes/default/style.css
vendored
Normal file
|
@ -0,0 +1,74 @@
|
|||
/*
|
||||
* jsTree default theme 1.0
|
||||
* Supported features: dots/no-dots, icons/no-icons, focused, loading
|
||||
* Supported plugins: ui (hovered, clicked), checkbox, contextmenu, search
|
||||
*/
|
||||
|
||||
.jstree-default li,
|
||||
.jstree-default ins { background-image:url("d.png"); background-repeat:no-repeat; background-color:transparent; }
|
||||
.jstree-default li { background-position:-90px 0; background-repeat:repeat-y; }
|
||||
.jstree-default li.jstree-last { background:transparent; }
|
||||
.jstree-default .jstree-open > ins { background-position:-72px 0; }
|
||||
.jstree-default .jstree-closed > ins { background-position:-54px 0; }
|
||||
.jstree-default .jstree-leaf > ins { background-position:-36px 0; }
|
||||
|
||||
.jstree-default .jstree-hovered { background:#e7f4f9; border:1px solid #d8f0fa; padding:0 2px 0 1px; }
|
||||
.jstree-default .jstree-clicked { background:#beebff; border:1px solid #99defd; padding:0 2px 0 1px; }
|
||||
.jstree-default a .jstree-icon { background-position:-56px -19px; }
|
||||
.jstree-default a.jstree-loading .jstree-icon { background:url("throbber.gif") center center no-repeat !important; }
|
||||
|
||||
.jstree-default.jstree-focused { background:#ffffee; }
|
||||
|
||||
.jstree-default .jstree-no-dots li,
|
||||
.jstree-default .jstree-no-dots .jstree-leaf > ins { background:transparent; }
|
||||
.jstree-default .jstree-no-dots .jstree-open > ins { background-position:-18px 0; }
|
||||
.jstree-default .jstree-no-dots .jstree-closed > ins { background-position:0 0; }
|
||||
|
||||
.jstree-default .jstree-no-icons a .jstree-icon { display:none; }
|
||||
|
||||
.jstree-default .jstree-search { font-style:italic; }
|
||||
|
||||
.jstree-default .jstree-no-icons .jstree-checkbox { display:inline-block; }
|
||||
.jstree-default .jstree-no-checkboxes .jstree-checkbox { display:none !important; }
|
||||
.jstree-default .jstree-checked > a > .jstree-checkbox { background-position:-38px -19px; }
|
||||
.jstree-default .jstree-unchecked > a > .jstree-checkbox { background-position:-2px -19px; }
|
||||
.jstree-default .jstree-undetermined > a > .jstree-checkbox { background-position:-20px -19px; }
|
||||
.jstree-default .jstree-checked > a > .jstree-checkbox:hover { background-position:-38px -37px; }
|
||||
.jstree-default .jstree-unchecked > a > .jstree-checkbox:hover { background-position:-2px -37px; }
|
||||
.jstree-default .jstree-undetermined > a > .jstree-checkbox:hover { background-position:-20px -37px; }
|
||||
|
||||
#vakata-dragged.jstree-default ins { background:transparent !important; }
|
||||
#vakata-dragged.jstree-default .jstree-ok { background:url("d.png") -2px -53px no-repeat !important; }
|
||||
#vakata-dragged.jstree-default .jstree-invalid { background:url("d.png") -18px -53px no-repeat !important; }
|
||||
#jstree-marker.jstree-default { background:url("d.png") -41px -57px no-repeat !important; text-indent:-100px; }
|
||||
|
||||
.jstree-default a.jstree-search { color:aqua; }
|
||||
.jstree-default .jstree-locked a { color:silver; cursor:default; }
|
||||
|
||||
#vakata-contextmenu.jstree-default-context,
|
||||
#vakata-contextmenu.jstree-default-context li ul { background:#f0f0f0; border:1px solid #979797; -moz-box-shadow: 1px 1px 2px #999; -webkit-box-shadow: 1px 1px 2px #999; box-shadow: 1px 1px 2px #999; }
|
||||
#vakata-contextmenu.jstree-default-context li { }
|
||||
#vakata-contextmenu.jstree-default-context a { color:black; }
|
||||
#vakata-contextmenu.jstree-default-context a:hover,
|
||||
#vakata-contextmenu.jstree-default-context .vakata-hover > a { padding:0 5px; background:#e8eff7; border:1px solid #aecff7; color:black; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
|
||||
#vakata-contextmenu.jstree-default-context li.jstree-contextmenu-disabled a,
|
||||
#vakata-contextmenu.jstree-default-context li.jstree-contextmenu-disabled a:hover { color:silver; background:transparent; border:0; padding:1px 4px; }
|
||||
#vakata-contextmenu.jstree-default-context li.vakata-separator { background:white; border-top:1px solid #e0e0e0; margin:0; }
|
||||
#vakata-contextmenu.jstree-default-context li ul { margin-left:-4px; }
|
||||
|
||||
/* IE6 BEGIN */
|
||||
.jstree-default li,
|
||||
.jstree-default ins,
|
||||
#vakata-dragged.jstree-default .jstree-invalid,
|
||||
#vakata-dragged.jstree-default .jstree-ok,
|
||||
#jstree-marker.jstree-default { _background-image:url("d.gif"); }
|
||||
.jstree-default .jstree-open ins { _background-position:-72px 0; }
|
||||
.jstree-default .jstree-closed ins { _background-position:-54px 0; }
|
||||
.jstree-default .jstree-leaf ins { _background-position:-36px 0; }
|
||||
.jstree-default a ins.jstree-icon { _background-position:-56px -19px; }
|
||||
#vakata-contextmenu.jstree-default-context ins { _display:none; }
|
||||
#vakata-contextmenu.jstree-default-context li { _zoom:1; }
|
||||
.jstree-default .jstree-undetermined a .jstree-checkbox { _background-position:-20px -19px; }
|
||||
.jstree-default .jstree-checked a .jstree-checkbox { _background-position:-38px -19px; }
|
||||
.jstree-default .jstree-unchecked a .jstree-checkbox { _background-position:-2px -19px; }
|
||||
/* IE6 END */
|
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/default/throbber.gif
vendored
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/mb3/d.gif
vendored
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/mb3/d.png
vendored
Normal file
After Width: | Height: | Size: 7.3 KiB |
80
dashboard-ui/thirdparty/jstree1.0fix2/themes/mb3/style.css
vendored
Normal file
|
@ -0,0 +1,80 @@
|
|||
/*
|
||||
* jsTree default theme 1.0
|
||||
* Supported features: dots/no-dots, icons/no-icons, focused, loading
|
||||
* Supported plugins: ui (hovered, clicked), checkbox, contextmenu, search
|
||||
*/
|
||||
|
||||
.jstree-mb3 li,
|
||||
.jstree-mb3 ins { background-image:url("d.png"); background-repeat:no-repeat; background-color:transparent; }
|
||||
.jstree-mb3 li { background-position:-90px 0; background-repeat:repeat-y; }
|
||||
.jstree-mb3 li.jstree-last { background:transparent; }
|
||||
.jstree-mb3 .jstree-open > ins { background-position:-72px 0; }
|
||||
.jstree-mb3 .jstree-closed > ins { background-position:-54px 0; }
|
||||
.jstree-mb3 .jstree-leaf > ins { background-position:-36px 0; }
|
||||
|
||||
.jstree-mb3 .jstree-hovered { background:#666; border:1px solid transparent; padding:0 2px 0 1px; }
|
||||
.jstree-mb3 .jstree-clicked { background:#4d90fe; border:1px solid transparent; padding:0 2px 0 1px; }
|
||||
|
||||
.jstree-mb3 a .jstree-icon { background-position:-56px -19px; }
|
||||
.jstree-mb3 a.jstree-loading .jstree-icon { background:url("throbber.gif") center center no-repeat !important; }
|
||||
|
||||
.jstree-mb3.jstree-focused { background: transparent !important; }
|
||||
|
||||
.jstree-mb3 .jstree-no-dots li,
|
||||
.jstree-mb3 .jstree-no-dots .jstree-leaf > ins { background:transparent; }
|
||||
.jstree-mb3 .jstree-no-dots .jstree-open > ins { background-position:-18px 0; }
|
||||
.jstree-mb3 .jstree-no-dots .jstree-closed > ins { background-position:0 0; }
|
||||
|
||||
.jstree-mb3 .jstree-no-icons a .jstree-icon { display:none; }
|
||||
|
||||
.jstree-mb3 .jstree-search { font-style:italic; }
|
||||
|
||||
.jstree-mb3 .jstree-no-icons .jstree-checkbox { display:inline-block; }
|
||||
.jstree-mb3 .jstree-no-checkboxes .jstree-checkbox { display:none !important; }
|
||||
.jstree-mb3 .jstree-checked > a > .jstree-checkbox { background-position:-38px -19px; }
|
||||
.jstree-mb3 .jstree-unchecked > a > .jstree-checkbox { background-position:-2px -19px; }
|
||||
.jstree-mb3 .jstree-undetermined > a > .jstree-checkbox { background-position:-20px -19px; }
|
||||
.jstree-mb3 .jstree-checked > a > .jstree-checkbox:hover { background-position:-38px -37px; }
|
||||
.jstree-mb3 .jstree-unchecked > a > .jstree-checkbox:hover { background-position:-2px -37px; }
|
||||
.jstree-mb3 .jstree-undetermined > a > .jstree-checkbox:hover { background-position:-20px -37px; }
|
||||
|
||||
#vakata-dragged.jstree-mb3 ins { background:transparent !important; }
|
||||
#vakata-dragged.jstree-mb3 .jstree-ok { background:url("d.png") -2px -53px no-repeat !important; }
|
||||
#vakata-dragged.jstree-mb3 .jstree-invalid { background:url("d.png") -18px -53px no-repeat !important; }
|
||||
#jstree-marker.jstree-mb3 { background:url("d.png") -41px -57px no-repeat !important; text-indent:-100px; }
|
||||
|
||||
.jstree-mb3 a.jstree-search { color:aqua; }
|
||||
.jstree-mb3 .jstree-locked a { color:silver; cursor:default; }
|
||||
|
||||
#vakata-contextmenu.jstree-mb3-context,
|
||||
#vakata-contextmenu.jstree-mb3-context li ul { background:#f0f0f0; border:1px solid #979797; -moz-box-shadow: 1px 1px 2px #999; -webkit-box-shadow: 1px 1px 2px #999; box-shadow: 1px 1px 2px #999; }
|
||||
#vakata-contextmenu.jstree-mb3-context li { }
|
||||
#vakata-contextmenu.jstree-mb3-context a { color:white; }
|
||||
#vakata-contextmenu.jstree-mb3-context a:hover,
|
||||
#vakata-contextmenu.jstree-mb3-context .vakata-hover > a { padding:0 5px; background:#e8eff7; border:1px solid #aecff7; color:white; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
|
||||
#vakata-contextmenu.jstree-mb3-context li.jstree-contextmenu-disabled a,
|
||||
#vakata-contextmenu.jstree-mb3-context li.jstree-contextmenu-disabled a:hover { color:silver; background:transparent; border:0; padding:1px 4px; }
|
||||
#vakata-contextmenu.jstree-mb3-context li.vakata-separator { background:white; border-top:1px solid #e0e0e0; margin:0; }
|
||||
#vakata-contextmenu.jstree-mb3-context li ul { margin-left:-4px; }
|
||||
|
||||
.jstree a {
|
||||
color: #fff!important;
|
||||
}
|
||||
|
||||
.jstree a ins {
|
||||
display: none!important;
|
||||
}
|
||||
|
||||
.jstree li {
|
||||
margin-left: 8px;
|
||||
min-width: 8px;
|
||||
border-bottom: 1px solid #555;
|
||||
}
|
||||
|
||||
.jstree li:last-child {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.jstree li { min-height:28px; line-height:28px; }
|
||||
.jstree a { line-height:28px; height:28px; }
|
||||
.jstree a ins { height:28px; width:28px; }
|
BIN
dashboard-ui/thirdparty/jstree1.0fix2/themes/mb3/throbber.gif
vendored
Normal file
After Width: | Height: | Size: 1.8 KiB |