mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-16 13:32:44 +00:00
Optimize login user layout
This commit is contained in:
+129
-100
@@ -1,7 +1,6 @@
|
||||
//var TestData={"sequence_id":"0","command":"get_recent_projects","response":[{"path":"D:\\work\\Models\\Toy\\3d-puzzle-cube-model_files\\3d-puzzle-cube.3mf","time":"2022\/3\/24 20:33:10"},{"path":"D:\\work\\Models\\Art\\Carved Stone Vase - remeshed+drainage\\Carved Stone Vase.3mf","time":"2022\/3\/24 17:11:51"},{"path":"D:\\work\\Models\\Art\\Kity & Cat\\Cat.3mf","time":"2022\/3\/24 17:07:55"},{"path":"D:\\work\\Models\\Toy\\鐩村墤.3mf","time":"2022\/3\/24 17:06:02"},{"path":"D:\\work\\Models\\Toy\\minimalistic-dual-tone-whistle-model_files\\minimalistic-dual-tone-whistle.3mf","time":"2022\/3\/22 21:12:22"},{"path":"D:\\work\\Models\\Toy\\spiral-city-model_files\\spiral-city.3mf","time":"2022\/3\/22 18:58:37"},{"path":"D:\\work\\Models\\Toy\\impossible-dovetail-puzzle-box-model_files\\impossible-dovetail-puzzle-box.3mf","time":"2022\/3\/22 20:08:40"}]};
|
||||
|
||||
var m_HotModelList=null;
|
||||
var bambuSectionExpanded = false;
|
||||
|
||||
function OnInit()
|
||||
{
|
||||
@@ -12,6 +11,8 @@ function OnInit()
|
||||
SendMsg_GetBambuLoginInfo();
|
||||
SendMsg_GetRecentFile();
|
||||
SendMsg_GetStaffPick();
|
||||
|
||||
Set_AccountMenu_Event();
|
||||
}
|
||||
|
||||
//------最佳打开文件的右键菜单功能----------
|
||||
@@ -89,7 +90,7 @@ function HandleStudio( pVal )
|
||||
if (strCmd == "get_recent_projects") {
|
||||
ShowRecentFileList(pVal["response"]);
|
||||
} else if (strCmd == "orca_userlogin") {
|
||||
SetOrcaLoginInfo(pVal["data"]["avatar"], pVal["data"]["name"]);
|
||||
SetOrcaLoginInfo(pVal["data"]["avatar"], pVal["data"]["name"], pVal["data"]["account"]);
|
||||
} else if (strCmd == "orca_useroffline") {
|
||||
SetOrcaUserOffline();
|
||||
} else if (strCmd == "studio_bambu_userlogin") {
|
||||
@@ -118,21 +119,12 @@ function HandleStudio( pVal )
|
||||
$("#LeftBoard").hide();
|
||||
}
|
||||
} else if (strCmd == "network_plugin_installtip") {
|
||||
let nShow = pVal["show"] * 1;
|
||||
// Bambu Cloud is unreachable without the network plugin, so its row only carries the tip.
|
||||
let bMissing = pVal["show"] * 1 == 1;
|
||||
|
||||
if (nShow == 1) {
|
||||
// Auto-expand Bambu section to show the tip
|
||||
if (!bambuSectionExpanded) ToggleBambuSection();
|
||||
$("#BambuLogin1").hide();
|
||||
$("#NoPluginTip").show();
|
||||
$("#NoPluginTip").css("display", "flex");
|
||||
} else {
|
||||
$("#NoPluginTip").hide();
|
||||
// Only restore login button if not already logged in
|
||||
if ($("#BambuLogin2").is(":hidden")) {
|
||||
$("#BambuLogin1").show();
|
||||
}
|
||||
}
|
||||
$("#NoPluginTip").css("display", bMissing ? "block" : "none");
|
||||
$("#BambuAccount").toggleClass("Disabled", bMissing).attr("aria-disabled", bMissing ? "true" : null);
|
||||
if (bMissing) SetBambuSectionExpanded(true, false);
|
||||
} else if (strCmd == "modelmall_model_advise_get") {
|
||||
//alert('hot');
|
||||
if (m_HotModelList != null) {
|
||||
@@ -170,34 +162,128 @@ function GotoMenu( strMenu )
|
||||
}
|
||||
}
|
||||
|
||||
function SetOrcaLoginInfo( strAvatar, strName )
|
||||
{
|
||||
$("#OrcaLogin1").hide();
|
||||
$("#OrcaStatusText").hide();
|
||||
/*------Account rows------*/
|
||||
|
||||
$("#UserName").text(strName);
|
||||
/*----Everything that differs between the two cloud providers lives here----*/
|
||||
var AccountRows = {
|
||||
orca: { row: "#OrcaAccount", name: "#UserName", avatar: "#UserAvatarIcon", dot: null,
|
||||
loginCmd: "homepage_orca_login_or_register", logoutCmd: "homepage_orca_logout" },
|
||||
bambu: { row: "#BambuAccount", name: "#BambuUserName", avatar: "#BambuAvatarIcon", dot: "#BambuStatusDot",
|
||||
loginCmd: "homepage_bambu_login_or_register", logoutCmd: "homepage_bambu_logout" }
|
||||
};
|
||||
|
||||
let OriginAvatar=$("#UserAvatarIcon").prop("src");
|
||||
if(strAvatar != null && strAvatar.trim() !== '' && strAvatar!=OriginAvatar)
|
||||
$("#UserAvatarIcon").prop("src",strAvatar);
|
||||
else
|
||||
{
|
||||
//alert('Avatar is Same');
|
||||
}
|
||||
var BAMBU_FOLD_KEY = "OrcaHome_BambuCloudExpanded";
|
||||
|
||||
$("#OrcaLogin2").show();
|
||||
$("#OrcaLogin2").css("display","flex");
|
||||
var m_OpenAccountMenu = null;
|
||||
|
||||
function SetAccountAvatar(selector, strAvatar) {
|
||||
if (strAvatar != null && strAvatar.trim() !== '') {
|
||||
if ($(selector).attr("src") !== strAvatar) $(selector).attr("src", strAvatar);
|
||||
} else {
|
||||
$(selector).removeAttr("src");
|
||||
}
|
||||
}
|
||||
|
||||
function SetOrcaUserOffline()
|
||||
{
|
||||
$("#UserAvatarIcon").prop("src","img/c.jpg");
|
||||
$("#UserName").text('');
|
||||
$("#OrcaLogin2").hide();
|
||||
function OnAvatarLoadError(img) {
|
||||
img.removeAttribute("src"); // fall back to the placeholder glyph
|
||||
}
|
||||
|
||||
$("#OrcaLogin1").show();
|
||||
$("#OrcaLogin1").css("display","flex");
|
||||
$("#OrcaStatusText").show();
|
||||
function SetAccountSignedIn(strProvider, strAvatar, strName, strHandle) {
|
||||
var account = AccountRows[strProvider];
|
||||
|
||||
$(account.name).text(strName).attr("title", strName); /*----long names are ellipsized----*/
|
||||
SetAccountAvatar(account.avatar, strAvatar);
|
||||
/*----the handle is the one thing the row does not already show----*/
|
||||
$(account.row).addClass("SignedIn").data("handle", strHandle !== strName ? strHandle : null);
|
||||
$(account.dot).addClass("Online");
|
||||
|
||||
if (m_OpenAccountMenu === strProvider) OpenAccountMenu(strProvider);
|
||||
}
|
||||
|
||||
function SetAccountSignedOut(strProvider) {
|
||||
var account = AccountRows[strProvider];
|
||||
|
||||
if (m_OpenAccountMenu === strProvider) CloseAccountMenu();
|
||||
$(account.name).text('').removeAttr("title");
|
||||
SetAccountAvatar(account.avatar, null);
|
||||
$(account.row).removeClass("SignedIn").removeData("handle");
|
||||
$(account.dot).removeClass("Online");
|
||||
}
|
||||
|
||||
function OnAccountRowClick(strProvider) {
|
||||
var account = AccountRows[strProvider];
|
||||
var row = $(account.row);
|
||||
if (row.hasClass("Disabled")) return;
|
||||
|
||||
if (!row.hasClass("SignedIn")) {
|
||||
CloseAccountMenu();
|
||||
SendSimpleCommand(account.loginCmd);
|
||||
} else if (m_OpenAccountMenu === strProvider) {
|
||||
CloseAccountMenu();
|
||||
} else {
|
||||
OpenAccountMenu(strProvider);
|
||||
}
|
||||
}
|
||||
|
||||
function OpenAccountMenu(strProvider) {
|
||||
var account = AccountRows[strProvider];
|
||||
var row = $(account.row);
|
||||
var top = row[0].offsetTop + row[0].offsetHeight + 6; /*----read the geometry before writing----*/
|
||||
var strHandle = row.data("handle") || "";
|
||||
|
||||
$("#AccountMenuHandle").text(strHandle).css("display", strHandle === "" ? "none" : "block");
|
||||
$("#AccountMenu").css("top", top + "px").addClass("Open");
|
||||
$(".AccountRow").removeClass("MenuOpen").attr("aria-expanded", "false");
|
||||
row.addClass("MenuOpen").attr("aria-expanded", "true");
|
||||
m_OpenAccountMenu = strProvider;
|
||||
}
|
||||
|
||||
function CloseAccountMenu() {
|
||||
$("#AccountMenu").removeClass("Open");
|
||||
$(".AccountRow").removeClass("MenuOpen").attr("aria-expanded", "false");
|
||||
m_OpenAccountMenu = null;
|
||||
}
|
||||
|
||||
function OnAccountMenuLogout() {
|
||||
var account = AccountRows[m_OpenAccountMenu];
|
||||
CloseAccountMenu();
|
||||
if (account) SendSimpleCommand(account.logoutCmd);
|
||||
}
|
||||
|
||||
/*----Bambu Cloud is secondary, so its account folds away under the main one----*/
|
||||
function SetBambuSectionExpanded(bExpanded, bPersist) {
|
||||
$("#BambuCloudBody").toggleClass("Expanded", bExpanded);
|
||||
$("#BambuAccount").attr("tabindex", bExpanded ? "0" : "-1"); /*----keep the folded row out of the tab order----*/
|
||||
$("#BambuCloudHeader").toggleClass("Expanded", bExpanded).attr("aria-expanded", bExpanded ? "true" : "false");
|
||||
if (!bExpanded && m_OpenAccountMenu === "bambu") CloseAccountMenu();
|
||||
// Best effort: the fold is a per-machine convenience, not a synced preference.
|
||||
if (bPersist) { try { localStorage.setItem(BAMBU_FOLD_KEY, bExpanded ? "1" : "0"); } catch (e) {} }
|
||||
}
|
||||
|
||||
function ToggleBambuSection() {
|
||||
SetBambuSectionExpanded(!$("#BambuCloudBody").hasClass("Expanded"), true);
|
||||
}
|
||||
|
||||
function Set_AccountMenu_Event() {
|
||||
var bExpanded = false;
|
||||
try { bExpanded = localStorage.getItem(BAMBU_FOLD_KEY) === "1"; } catch (e) {}
|
||||
SetBambuSectionExpanded(bExpanded, false);
|
||||
|
||||
$(document).mousedown(function (e) {
|
||||
if (m_OpenAccountMenu === null) return;
|
||||
if ($(e.target).closest("#AccountMenu, .AccountRow").length === 0) CloseAccountMenu();
|
||||
});
|
||||
|
||||
$(document).keydown(function (e) {
|
||||
if (m_OpenAccountMenu !== null && e.key === "Escape") CloseAccountMenu();
|
||||
});
|
||||
|
||||
/*----Enter and Space activate the div-based buttons of this panel----*/
|
||||
$(document).on("keydown", "#LoginArea [role=button], #LoginArea [role=menuitem]", function (e) {
|
||||
if (e.key !== "Enter" && e.key !== " " && e.key !== "Spacebar") return;
|
||||
e.preventDefault();
|
||||
this.click();
|
||||
});
|
||||
}
|
||||
|
||||
function SetMallUrl( strUrl )
|
||||
@@ -279,8 +365,6 @@ function SendSimpleCommand(command) {
|
||||
SendWXMessage(JSON.stringify(tSend));
|
||||
}
|
||||
|
||||
function OnOrcaLoginOrRegister() { SendSimpleCommand("homepage_orca_login_or_register"); }
|
||||
function OnOrcaLogOut() { SendSimpleCommand("homepage_orca_logout"); }
|
||||
function SendMsg_GetOrcaLoginInfo() { SendSimpleCommand("get_orca_login_info"); }
|
||||
|
||||
|
||||
@@ -294,15 +378,6 @@ function SendMsg_GetRecentFile()
|
||||
}
|
||||
|
||||
|
||||
function OnLoginOrRegister()
|
||||
{
|
||||
var tSend={};
|
||||
tSend['sequence_id']=Math.round(new Date() / 1000);
|
||||
tSend['command']="homepage_login_or_register";
|
||||
|
||||
SendWXMessage( JSON.stringify(tSend) );
|
||||
}
|
||||
|
||||
function OnClickModelDepot()
|
||||
{
|
||||
var tSend={};
|
||||
@@ -405,59 +480,13 @@ function OnExploreRecentFile( )
|
||||
$("#recnet_context_menu").hide();
|
||||
}
|
||||
|
||||
function OnLogOut()
|
||||
{
|
||||
var tSend={};
|
||||
tSend['sequence_id']=Math.round(new Date() / 1000);
|
||||
tSend['command']="homepage_logout";
|
||||
// --- Cloud providers ---
|
||||
|
||||
SendWXMessage( JSON.stringify(tSend) );
|
||||
}
|
||||
function SetOrcaLoginInfo(strAvatar, strName, strAccount) { SetAccountSignedIn("orca", strAvatar, strName, strAccount); }
|
||||
function SetOrcaUserOffline() { SetAccountSignedOut("orca"); }
|
||||
function SetBambuLoginInfo(strAvatar, strName) { SetAccountSignedIn("bambu", strAvatar, strName, null); }
|
||||
function SetBambuUserOffline() { SetAccountSignedOut("bambu"); }
|
||||
|
||||
// --- Bambu Cloud Section ---
|
||||
|
||||
function ToggleBambuSection() {
|
||||
var body = document.getElementById('BambuCloudBody');
|
||||
var chevron = document.querySelector('.bambu-chevron');
|
||||
if (!body || !chevron) return;
|
||||
bambuSectionExpanded = !bambuSectionExpanded;
|
||||
if (bambuSectionExpanded) {
|
||||
body.classList.add('expanded');
|
||||
chevron.classList.add('expanded');
|
||||
} else {
|
||||
body.classList.remove('expanded');
|
||||
chevron.classList.remove('expanded');
|
||||
}
|
||||
}
|
||||
|
||||
function SetBambuLoginInfo(strAvatar, strName) {
|
||||
$("#BambuLogin1").hide();
|
||||
$("#BambuUserName").text(strName);
|
||||
if (strAvatar && strAvatar.trim() !== '') {
|
||||
$("#BambuAvatarIcon").prop("src", strAvatar);
|
||||
}
|
||||
$("#BambuLogin2").show();
|
||||
$("#BambuLogin2").css("display", "flex");
|
||||
$(".bambu-status-dot").addClass("online");
|
||||
$("#BambuStatusText").text("Connected");
|
||||
$("#BambuStatusText").attr("tid", "orca11");
|
||||
}
|
||||
|
||||
function SetBambuUserOffline() {
|
||||
$("#BambuAvatarIcon").prop("src", "img/c.jpg");
|
||||
$("#BambuUserName").text('');
|
||||
$("#BambuLogin2").hide();
|
||||
if ($("#NoPluginTip").is(":hidden")) {
|
||||
$("#BambuLogin1").show();
|
||||
$("#BambuLogin1").css("display", "flex");
|
||||
}
|
||||
$(".bambu-status-dot").removeClass("online");
|
||||
$("#BambuStatusText").text("Not connected");
|
||||
$("#BambuStatusText").attr("tid", "orca10");
|
||||
}
|
||||
|
||||
function OnBambuLoginOrRegister() { SendSimpleCommand("homepage_bambu_login_or_register"); }
|
||||
function OnBambuLogOut() { SendSimpleCommand("homepage_bambu_logout"); }
|
||||
function SendMsg_GetBambuLoginInfo() { SendSimpleCommand("get_bambu_login_info"); }
|
||||
|
||||
function BeginDownloadNetworkPlugin()
|
||||
|
||||
Reference in New Issue
Block a user