mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Improve UI
This commit is contained in:
parent
43d01146a2
commit
bf03a7ba57
7 changed files with 65 additions and 45 deletions
|
@ -11,25 +11,45 @@ define(['require', 'apphost', 'layoutManager', 'focusManager', 'globalize', 'loa
|
||||||
"Lookup": lookup
|
"Lookup": lookup
|
||||||
}
|
}
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
|
require(["toast"], function (toast) {
|
||||||
|
toast("Request authorized");
|
||||||
|
});
|
||||||
|
|
||||||
|
// prevent bubbling
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
QuickConnectSettings.prototype.list = function(argPage) {
|
QuickConnectSettings.prototype.list = function(argPage) {
|
||||||
ApiClient.getJSON("/QuickConnect/List").then(json => {
|
ApiClient.getJSON("/QuickConnect/List").then(json => {
|
||||||
|
let found = false;
|
||||||
var elem = $(argPage.querySelector("#quickConnectIncoming"));
|
var elem = $(argPage.querySelector("#quickConnectIncoming"));
|
||||||
elem.html("");
|
elem.text("No pending login requests");
|
||||||
for (var i = 0; i < json.length; i++) {
|
|
||||||
var current = json[i];
|
|
||||||
var html = "<li>" + current.Code + " - " + current.FriendlyName + " - ";
|
|
||||||
|
|
||||||
if (!current.Authenticated) {
|
for (var i = 0; i < json.length; i++) {
|
||||||
html += "<a href=\"#\" id=\"qc" + current.Lookup + "\">authorize</a>";
|
if (!found) {
|
||||||
} else {
|
elem.html("");
|
||||||
html += " (already authorized)";
|
found = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
html += "</li>";
|
var current = json[i];
|
||||||
|
|
||||||
|
let html = '<div class="listItem listItem-border" id="div' + current.Lookup + '"><div class="listItemBody three-line">';
|
||||||
|
html += '<div class="listItemBodyText"><code style="font-size:large">' + current.Code + '</code></div>';
|
||||||
|
html += '<div class="listItemBodyText secondary">' + current.FriendlyName + '</div>';
|
||||||
|
html += '<div class="listItemBodyText secondary listItemBodyText-nowrap">';
|
||||||
|
|
||||||
|
if (!current.Authenticated) {
|
||||||
|
html += '<a style="color:rgb(15,150,255)" href="#" id="qc' + current.Lookup + '">authorize</a>';
|
||||||
|
} else {
|
||||||
|
html += " (authorized)";
|
||||||
|
}
|
||||||
|
|
||||||
|
html += '</div></div></div>';
|
||||||
elem.append(html);
|
elem.append(html);
|
||||||
|
|
||||||
$("#qc" + current.Lookup).click({ lookup: current.Lookup }, authorizeRequest);
|
$("#qc" + current.Lookup).click({ lookup: current.Lookup }, authorizeRequest);
|
||||||
|
$("#div" + current.Lookup).click({ lookup: current.Lookup }, authorizeRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -60,8 +80,8 @@ define(['require', 'apphost', 'layoutManager', 'focusManager', 'globalize', 'loa
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Dashboard.alert({
|
require(["toast"], function (toast) {
|
||||||
message: "Successfully activated"
|
toast("Successfully activated");
|
||||||
});
|
});
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -152,7 +152,7 @@ define(["apphost", "appSettings", "dom", "connectionManager", "loading", "layout
|
||||||
|
|
||||||
function loginQuickConnect() {
|
function loginQuickConnect() {
|
||||||
var apiClient = getApiClient();
|
var apiClient = getApiClient();
|
||||||
var friendlyName = navigator.userAgent; // TODO: what should this be changed to?
|
var friendlyName = navigator.userAgent;
|
||||||
|
|
||||||
var url = apiClient.getUrl("/QuickConnect/Initiate?FriendlyName=" + friendlyName);
|
var url = apiClient.getUrl("/QuickConnect/Initiate?FriendlyName=" + friendlyName);
|
||||||
apiClient.getJSON(url)
|
apiClient.getJSON(url)
|
||||||
|
@ -174,25 +174,37 @@ define(["apphost", "appSettings", "dom", "connectionManager", "loading", "layout
|
||||||
loading.show();
|
loading.show();
|
||||||
|
|
||||||
var interval = setInterval(async function() {
|
var interval = setInterval(async function() {
|
||||||
let connectUrl = apiClient.getUrl('/QuickConnect/Connect?Secret=' + json.Secret);
|
try {
|
||||||
let data = await apiClient.getJSON(connectUrl);
|
let connectUrl = apiClient.getUrl('/QuickConnect/Connect?Secret=' + json.Secret);
|
||||||
if (data.Authenticated) {
|
let data = await apiClient.getJSON(connectUrl);
|
||||||
let result = await apiClient.quickConnect(data.Authentication);
|
if (data.Authenticated) {
|
||||||
var user = result.User;
|
let result = await apiClient.quickConnect(data.Authentication);
|
||||||
var serverId = getParameterByName("serverid");
|
var user = result.User;
|
||||||
var newUrl = "home.html";
|
var serverId = getParameterByName("serverid");
|
||||||
|
var newUrl = "home.html";
|
||||||
|
|
||||||
if (user.Policy.IsAdministrator && !serverId) {
|
if (user.Policy.IsAdministrator && !serverId) {
|
||||||
newUrl = "dashboard.html";
|
newUrl = "dashboard.html";
|
||||||
|
}
|
||||||
|
|
||||||
|
loading.hide();
|
||||||
|
Dashboard.onServerChanged(user.Id, result.AccessToken, apiClient);
|
||||||
|
Dashboard.navigate(newUrl);
|
||||||
|
clearInterval(interval);
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
} catch (e) {
|
||||||
|
Dashboard.alert({
|
||||||
|
message: "Quick connect was deactivated before the login request could be approved",
|
||||||
|
title: "Unexpected error"
|
||||||
|
});
|
||||||
|
|
||||||
loading.hide();
|
console.error("Unable to login with quick connect", e);
|
||||||
Dashboard.onServerChanged(user.Id, result.AccessToken, apiClient);
|
|
||||||
Dashboard.navigate(newUrl);
|
|
||||||
clearInterval(interval);
|
clearInterval(interval);
|
||||||
|
loading.hide();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}, 5000);
|
}, 5000);
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,10 @@ define(["jQuery", "loading", "fnchecked"], function ($, loading) {
|
||||||
|
|
||||||
var page;
|
var page;
|
||||||
function loadPage(status) {
|
function loadPage(status) {
|
||||||
var active = (status == "Active");
|
var available = status === "Available" || status === "Active";
|
||||||
var available = (status == "Available") || active;
|
|
||||||
|
|
||||||
page.querySelector("#quickConnectStatus").textContent = status.toLocaleLowerCase();
|
page.querySelector("#quickConnectStatus").textContent = status.toLocaleLowerCase();
|
||||||
page.querySelector("#chkQuickConnectAvailable").checked = available;
|
page.querySelector("#chkQuickConnectAvailable").checked = available;
|
||||||
page.querySelector("#chkQuickConnectActive").checked = active;
|
|
||||||
|
|
||||||
loading.hide();
|
loading.hide();
|
||||||
}
|
}
|
||||||
|
@ -17,9 +15,6 @@ define(["jQuery", "loading", "fnchecked"], function ($, loading) {
|
||||||
loading.show();
|
loading.show();
|
||||||
|
|
||||||
var newStatus = page.querySelector("#chkQuickConnectAvailable").checked ? "Available" : "Unavailable";
|
var newStatus = page.querySelector("#chkQuickConnectAvailable").checked ? "Available" : "Unavailable";
|
||||||
if (newStatus && page.querySelector("#chkQuickConnectActive").checked) {
|
|
||||||
newStatus = "Active";
|
|
||||||
}
|
|
||||||
|
|
||||||
var url = ApiClient.getUrl("/QuickConnect/Available");
|
var url = ApiClient.getUrl("/QuickConnect/Available");
|
||||||
|
|
||||||
|
@ -30,9 +25,8 @@ define(["jQuery", "loading", "fnchecked"], function ($, loading) {
|
||||||
},
|
},
|
||||||
url: url
|
url: url
|
||||||
}, true).then(() => {
|
}, true).then(() => {
|
||||||
Dashboard.alert({
|
require(["toast"], function (toast) {
|
||||||
message: "Settings saved",
|
toast("Settings saved");
|
||||||
title: "Saved"
|
|
||||||
});
|
});
|
||||||
|
|
||||||
setTimeout(updatePage, 500);
|
setTimeout(updatePage, 500);
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
|
|
||||||
<a is="emby-linkbutton" data-ripple="false" href="#" style="display:block;padding:0;margin:0;" class="lnkQuickConnectPreferences listItem-border">
|
<a is="emby-linkbutton" data-ripple="false" href="#" style="display:block;padding:0;margin:0;" class="lnkQuickConnectPreferences listItem-border">
|
||||||
<div class="listItem">
|
<div class="listItem">
|
||||||
<em class="material-icons listItemIcon listItemIcon-transparent"></em>
|
<em class="material-icons listItemIcon listItemIcon-transparent">tap_and_play</em>
|
||||||
<div class="listItemBody">
|
<div class="listItemBody">
|
||||||
<div class="listItemBodyText">Quick Connect</div>
|
<div class="listItemBodyText">Quick Connect</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3,10 +3,9 @@
|
||||||
<span>Activate</span>
|
<span>Activate</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
Incoming login requests:
|
|
||||||
<div class="quickConnectSettingsContainer padded-left padded-right padded-bottom-page">
|
<div class="quickConnectSettingsContainer padded-left padded-right padded-bottom-page">
|
||||||
<ul id="quickConnectIncoming">
|
<div id="quickConnectIncoming" class="paperList">
|
||||||
<li>Failed to load incoming requests</li>
|
<div>Failed to load incoming requests</div>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -14,11 +14,6 @@
|
||||||
<input type="checkbox" is="emby-checkbox" id="chkQuickConnectAvailable" />
|
<input type="checkbox" is="emby-checkbox" id="chkQuickConnectAvailable" />
|
||||||
<span>Enable quick connect on this server</span>
|
<span>Enable quick connect on this server</span>
|
||||||
</label>
|
</label>
|
||||||
<label>
|
|
||||||
<input type="checkbox" is="emby-checkbox" id="chkQuickConnectActive" />
|
|
||||||
<span>Make quick connect always active (always accept login requests)</span>
|
|
||||||
</label>
|
|
||||||
<div class="fieldDescription checkboxFieldDescription">If unchecked, users will have to click the Activate button in their profile before initiating a quick connect login.</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button is="emby-button" id="btnQuickConnectSubmit" type="submit" class="raised button-submit block">
|
<button is="emby-button" id="btnQuickConnectSubmit" type="submit" class="raised button-submit block">
|
||||||
|
|
|
@ -354,7 +354,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
||||||
name: "Quick Connect",
|
name: "Quick Connect",
|
||||||
href: "quickconnect.html",
|
href: "quickconnect.html",
|
||||||
pageIds: ["quickConnectPage", "quickConnectPage"],
|
pageIds: ["quickConnectPage", "quickConnectPage"],
|
||||||
icon: "devices"
|
icon: "tap_and_play"
|
||||||
});
|
});
|
||||||
links.push({
|
links.push({
|
||||||
name: globalize.translate("HeaderActivity"),
|
name: globalize.translate("HeaderActivity"),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue