Skip to content

Commit 6666fac

Browse files
committed
frontend/frame-editor/symbols-bar: optionally show labels and slightly tweak margins/height
1 parent b8b3349 commit 6666fac

File tree

21 files changed

+316
-105
lines changed

21 files changed

+316
-105
lines changed

src/packages/frontend/account/other-settings.tsx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,21 @@ export function OtherSettings(props: Readonly<Props>): React.JSX.Element {
247247
);
248248
}
249249

250+
function render_show_symbol_bar_labels(): Rendered {
251+
return (
252+
<Checkbox
253+
checked={!!props.other_settings.get("show_symbol_bar_labels")}
254+
onChange={(e) => on_change("show_symbol_bar_labels", e.target.checked)}
255+
>
256+
<FormattedMessage
257+
id="account.other-settings.symbol_bar_labels"
258+
defaultMessage={`<strong>Show Symbol Bar Labels:</strong>
259+
show labels in the frame editor symbol bar`}
260+
/>
261+
</Checkbox>
262+
);
263+
}
264+
250265
function render_default_file_sort(): Rendered {
251266
return (
252267
<LabeledRow
@@ -666,6 +681,7 @@ export function OtherSettings(props: Readonly<Props>): React.JSX.Element {
666681
{render_hide_project_popovers()}
667682
{render_hide_file_popovers()}
668683
{render_hide_button_tooltips()}
684+
{render_show_symbol_bar_labels()}
669685
<Checkbox
670686
checked={!!props.other_settings.get("hide_navbar_balance")}
671687
onChange={(e) => on_change("hide_navbar_balance", e.target.checked)}

src/packages/frontend/account/store.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,10 @@ export class AccountStore extends Store<AccountState> {
143143
if (!tours) return false;
144144
return tours.includes(tour) || tours.includes("all");
145145
}
146+
147+
showSymbolBarLabels(): boolean {
148+
return this.getIn(["other_settings", "show_symbol_bar_labels"], false);
149+
}
146150
}
147151

148152
// A user is anonymous if they have not provided a way to sign

src/packages/frontend/account/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export interface AccountState {
5959
no_email_new_messages?: boolean;
6060
use_balance_toward_subscriptions?: boolean;
6161
[VBAR_LABELS]?: boolean; // whether to show labels on the vertical action bar
62+
show_symbol_bar_labels?: boolean; // whether to show labels on the menu buttons
6263
}>;
6364
stripe_customer?: TypedMap<{
6465
subscriptions: { data: Map<string, any> };

src/packages/frontend/frame-editors/frame-tree/commands/manage.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { Icon, IconName, isIconName } from "@cocalc/frontend/components/icon";
1515
import { IS_MOBILE } from "@cocalc/frontend/feature";
1616
import { IntlMessage, isIntlMessage } from "@cocalc/frontend/i18n";
1717
import { cmp, filename_extension, trunc_middle } from "@cocalc/util/misc";
18-
// import { FrameTitleBarProps } from "../title-bar";
18+
import { COLORS } from "@cocalc/util/theme";
1919
import { EditorDescription } from "../types";
2020
import { COMMANDS } from "./commands";
2121
import { APPLICATION_MENU, SEARCH_COMMANDS } from "./const";
@@ -26,8 +26,6 @@ const MAX_TITLE_WIDTH = 20;
2626
const MAX_SEARCH_RESULTS = 10;
2727
const ICON_WIDTH = "28px";
2828

29-
const BUTTON_LABELS = false;
30-
3129
export class ManageCommands {
3230
// TODO: setting this to FrameTitleBarProps causes type issues in frame-editors/jupyter-editor/editor.ts
3331
// So, there is probably a fundamental problem with that mapping into "AllActions"
@@ -445,6 +443,11 @@ export class ManageCommands {
445443
});
446444
};
447445

446+
showSymbolBarLabels = (): boolean => {
447+
const account = redux.getStore("account");
448+
return account.showSymbolBarLabels();
449+
};
450+
448451
commandToMenuItem = ({
449452
name = "",
450453
key,
@@ -482,11 +485,11 @@ export class ManageCommands {
482485
label = (
483486
<>
484487
{icon ?? <Icon name="square" />}
485-
{BUTTON_LABELS && (
488+
{this.showSymbolBarLabels() && (
486489
<div
487490
style={{
488491
fontSize: "11px",
489-
color: "#666",
492+
color: COLORS.GRAY_M,
490493
marginTop: "-10px",
491494
// special case: button='' explicitly means no label
492495
width: cmd.button === "" ? undefined : "50px",

src/packages/frontend/frame-editors/frame-tree/title-bar.tsx

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,10 @@ export function FrameTitleBar(props: FrameTitleBarProps) {
270270
const otherSettings = useRedux(["account", "other_settings"]);
271271
// const hideButtonTooltips = otherSettings.get("hide_button_tooltips");
272272
const darkMode = otherSettings.get("dark_mode");
273+
const showSymbolBarLabels = otherSettings.get(
274+
"show_symbol_bar_labels",
275+
false,
276+
);
273277
const disableTourRefs = useRef<boolean>(false);
274278
const tourRefs = useRef<{ [name: string]: { current: any } }>({});
275279
const getTourRef = (name: string) => {
@@ -707,8 +711,8 @@ export function FrameTitleBar(props: FrameTitleBarProps) {
707711
label === APPLICATION_MENU
708712
? manageCommands.applicationMenuTitle()
709713
: isIntlMessage(label)
710-
? intl.formatMessage(label)
711-
: label
714+
? intl.formatMessage(label)
715+
: label
712716
}
713717
items={v}
714718
/>
@@ -1057,6 +1061,13 @@ export function FrameTitleBar(props: FrameTitleBarProps) {
10571061
return null;
10581062
}
10591063
const { disabled, label, key, children, onClick } = item;
1064+
const style: CSS = {
1065+
color: "#333",
1066+
padding: showSymbolBarLabels ? "0" : "4px 0 0 0",
1067+
height: showSymbolBarLabels ? "36px" : "28px",
1068+
position: "relative",
1069+
top: showSymbolBarLabels ? "0" : "2px",
1070+
};
10601071
if (children != null) {
10611072
return (
10621073
<DropdownMenu
@@ -1065,7 +1076,7 @@ export function FrameTitleBar(props: FrameTitleBarProps) {
10651076
title={label}
10661077
items={children}
10671078
button={false}
1068-
style={{ color: "#333", padding: 0 }}
1079+
style={style}
10691080
/>
10701081
);
10711082
} else {
@@ -1076,7 +1087,7 @@ export function FrameTitleBar(props: FrameTitleBarProps) {
10761087
key={key}
10771088
disabled={disabled}
10781089
onClick={onClick}
1079-
style={{ color: "#333", padding: 0 }}
1090+
style={style}
10801091
>
10811092
{label}
10821093
</Button>
@@ -1107,7 +1118,7 @@ export function FrameTitleBar(props: FrameTitleBarProps) {
11071118
opacity: is_active ? undefined : 0.3,
11081119
}}
11091120
>
1110-
<div style={{ marginBottom: "-2px", paddingTop:'4px' }}>{v}</div>
1121+
<div style={{ marginBottom: "-1px", marginTop: "-1px" }}>{v}</div>
11111122
</div>
11121123
);
11131124
}

src/packages/frontend/i18n/trans/ar_EG.json

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
"account.other-settings.mask_files": "<strong>إخفاء الملفات:</strong> تظليل الملفات في عارض الملفات التي ربما لا تريد فتحها",
8282
"account.other-settings.project_popovers": "<strong>إخفاء النوافذ المنبثقة لعلامات التبويب في المشروع:</strong> لا تعرض النوافذ المنبثقة فوق علامات تبويب المشروع",
8383
"account.other-settings.standby_timeout": "مهلة الانتظار",
84+
"account.other-settings.symbol_bar_labels": "<strong>إظهار تسميات شريط الرموز:</strong> إظهار التسميات في شريط رموز محرر الإطار",
8485
"account.other-settings.theme": "السمة",
8586
"account.other-settings.theme.antd.animations": "<b>الرسوم المتحركة</b>: تحريك بعض العناصر بإيجاز، مثل الأزرار",
8687
"account.other-settings.theme.antd.color_scheme": "مخطط الألوان: استخدم ألوان العلامة التجارية بدلاً من الألوان الافتراضية",
@@ -93,7 +94,7 @@
9394
"account.other-settings.theme.dark_mode.grayscale": "درجات الرمادي",
9495
"account.other-settings.theme.dark_mode.sepia": "سيبيا",
9596
"account.other-settings.time_ago_absolute": "عرض <strong>الطوابع الزمنية كنقاط مطلقة في الوقت</strong> بدلاً من أن تكون نسبة إلى الوقت الحالي",
96-
"account.other-settings.vbar.title": "الشريط العمودي للمشروع",
97+
"account.other-settings.vbar.title": "شريط المشروع العمودي",
9798
"account.public-path.unpublish.title": "إلغاء نشر كل شيء",
9899
"account.public-paths.banner": "هذه نظرة عامة على ملفاتك العامة. <A>قم بزيارة هذه الصفحة لمزيد من التفاصيل...</A>",
99100
"account.public-paths.info": "الملفات التي تم نشرها في أي مشروع استخدمته بنشاط.",
@@ -1221,6 +1222,16 @@
12211222
"project.no-internet-modal.message": "لحل هذه المشكلة، <A1>تحتاج إلى تطبيق</A1> <A2>ترخيص صالح</A2> يوفر ترقيات أو <A3>شراء ترخيص</A3>.",
12221223
"project.no-internet-modal.title": "لا يوجد اتصال بالإنترنت",
12231224
"project.open_file.what": "افتح الملف \"{path}\"",
1225+
"project.page.activity-bar-layout.title": "تخطيط شريط النشاط",
1226+
"project.page.activity-bar.explanation": "هذه الميزة تعدل وظيفة شريط الأزرار في الجانب الأيسر من المشروع. بشكل افتراضي، تعرض الأزرار صفحات كاملة وعلامات صغيرة للوحات المنبثقة. عند اختيار خيار \"الصفحات الكاملة\"، يتم عرض الأزرار فقط، وتفتح الصفحات الكاملة عند النقر. وعلى العكس، عند اختيار وضع \"اللوحات المنبثقة\"، تتوسع اللوحات المنبثقة فقط عند النقر. في كلتا الحالتين الأخيرتين، يمكن عرض نوع اللوحة البديل بالنقر مع الضغط على مفتاح Shift على الزر المقابل.",
1227+
"project.page.activity-bar.hide.tooltip": "إخفاء شريط النشاط",
1228+
"project.page.activity-bar.option.both": "الصفحات الكاملة ولوحات الانبثاق",
1229+
"project.page.activity-bar.option.flyout": "الأزرار تبدل اللوحات المنبثقة",
1230+
"project.page.activity-bar.option.full": "الأزرار تظهر الصفحات الكاملة",
1231+
"project.page.activity-bar.show.tooltip": "إظهار شريط النشاط",
1232+
"project.page.activity-bar.title": "شريط النشاط",
1233+
"project.page.activity-bar.toggle-labels": "{show, select, true {إخفاء التسميات} other {إظهار التسميات}}",
1234+
"project.page.activity-bar.toggle-labels.description": "عرض الوصف على أزرار شريط النشاط العمودي",
12241235
"project.page.ai-generate-document.content.label": "قدم وصفًا مفصلًا لوثيقة {docName} التي تريد إنشاؤها:",
12251236
"project.page.ai-generate-document.content.placeholder": "وصف المحتوى...",
12261237
"project.page.ai-generate-document.create_document.what": "إنشاء مستند {docName} \"{path}\"",
@@ -1248,14 +1259,14 @@
12481259
"project.page.flyouts.new.header_location": "الموقع:",
12491260
"project.page.project-licenses.header": "الحصص و{upgrades}",
12501261
"project.page.project-licenses.intro": "التراخيص والترقيات حسب الاستخدام تغير الحصص والميزات المتاحة للمشروع",
1251-
"project.page.vbar.explanation": "هذه الميزة تعدل وظيفة شريط الأزرار في الجانب الأيسر من المشروع. بشكل افتراضي، تعرض الأزرار صفحات كاملة وعلامات صغيرة للوحات المنبثقة. عند اختيار خيار \"الصفحات الكاملة\"، يتم عرض الأزرار فقط، وتفتح الصفحات الكاملة عند النقر. وعلى العكس، عند اختيار وضع \"اللوحات المنبثقة\"، تتوسع اللوحات المنبثقة فقط عند النقر. في كلتا الحالتين الأخيرتين، يمكن عرض نوع اللوحة البديل بالنقر مع الضغط على مفتاح Shift على الزر المقابل.",
1252-
"project.page.vbar.option.both": "الصفحات الكاملة ولوحات الانبثاق",
1253-
"project.page.vbar.option.flyout": "الأزرار تبدل اللوحات المنبثقة",
1254-
"project.page.vbar.option.full": "الأزرار تظهر الصفحات الكاملة",
1262+
"project.page.vbar.explanation": "تقوم هذه الميزة بتعديل وظيفة شريط الأزرار الجانبي الأيسر للمشروع. بشكل افتراضي، تعرض الأزرار للصفحات الكاملة وعلامات صغيرة للجانبية المنبثقة. عند اختيار خيار \"الصفحات الكاملة\"، يتم عرض الأزرار فقط، وتفتح صفحات كاملة عند النقر عليها. وعلى العكس، عند اختيار وضع \"الجانبية المنبثقة\"، فإن الجانبية المنبثقة فقط تتوسع عند النقر عليها. في كلا الحالتين الأخيرتين، يمكن عرض نوع اللوحة البديل عن طريق الضغط على مفتاح Shift والنقر على الزر المقابل.",
1263+
"project.page.vbar.option.both": "صفحات كاملة ولوحات منبثقة",
1264+
"project.page.vbar.option.flyout": "أزرار تبدل النوافذ المنبثقة",
1265+
"project.page.vbar.option.full": "الأزرار تعرض الصفحات الكاملة",
12551266
"project.page.vertical-fixed-tabs.show-sidebar.tooltip": "عرض شريط الإجراءات",
1256-
"project.page.vertical-fixed-tabs.title": "تخطيط الشريط الرأسي",
1257-
"project.page.vertical-fixed-tabs.toggle-labels": "عرض التسميات",
1258-
"project.page.vertical-fixed-tabs.toggle-labels.description": "عرض الوصف على أزرار شريط الإجراءات العمودي",
1267+
"project.page.vertical-fixed-tabs.title": "تخطيط الشريط العمودي",
1268+
"project.page.vertical-fixed-tabs.toggle-labels": "{show, select, true {إخفاء التسميات} other {إظهار التسميات}}",
1269+
"project.page.vertical-fixed-tabs.toggle-labels.description": "اعرض الوصف على أزرار شريط الإجراءات العمودي",
12591270
"project.page.vertical-fixed-tabs.toggle-sidebar.tooltip": "إخفاء شريط الإجراءات",
12601271
"project.servers.project-servers.description": "يمكنك تشغيل خوادم دفتر ملاحظات مختلفة داخل هذا المشروع بنقرة واحدة. تعمل في نفس البيئة، وتصل إلى نفس الملفات، وتتوقف عندما يتوقف المشروع. يمكنك أيضًا <A>تشغيل خوادمك الخاصة</A>.",
12611272
"project.settings.about-box.description.label": "الوصف (ماركداون)",

src/packages/frontend/i18n/trans/de_DE.json

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
"account.other-settings.mask_files": "<strong>Dateien maskieren:</strong> Dateien im Dateibetrachter ausgrauen, die Sie wahrscheinlich nicht öffnen möchten",
8282
"account.other-settings.project_popovers": "<strong>Projekt-Tab-Popovers ausblenden:</strong> die Popovers über den Projekt-Tabs nicht anzeigen",
8383
"account.other-settings.standby_timeout": "Standby-Timeout",
84+
"account.other-settings.symbol_bar_labels": "<strong>Symbolleistensymbol-Beschriftungen anzeigen:</strong> Beschriftungen in der Symbolleiste des Rahmeneditors anzeigen",
8485
"account.other-settings.theme": "Thema",
8586
"account.other-settings.theme.antd.animations": "<b>Animationen</b>: einige Aspekte kurz animieren, z. B. Schaltflächen",
8687
"account.other-settings.theme.antd.color_scheme": "<b>Farbschema</b>: Verwenden Sie Markenfarben anstelle der Standardfarben",
@@ -1221,6 +1222,16 @@
12211222
"project.no-internet-modal.message": "Um dies zu beheben, müssen Sie eine <A2>gültige Lizenz</A2> anwenden, die Upgrades bereitstellt oder eine <A3>Lizenz kaufen</A3>.",
12221223
"project.no-internet-modal.title": "Kein Internetzugang",
12231224
"project.open_file.what": "öffne die Datei \"{path}\"",
1225+
"project.page.activity-bar-layout.title": "Layout der Aktivitätsleiste",
1226+
"project.page.activity-bar.explanation": "Diese Funktion ändert die Funktionalität der linken Seitenleiste des Projekts. Standardmäßig werden Schaltflächen für ganze Seiten und kleine Caret-Zeichen für Flyout-Panels angezeigt. Bei Auswahl der Option \"ganze Seiten\" werden nur Schaltflächen angezeigt, die beim Klicken ganze Seiten öffnen. Umgekehrt, wenn die Option \"Flyout-Panels\" gewählt wird, erweitern sich nur Flyout-Panels beim Klicken. In beiden letzteren Fällen kann der alternative Paneltyp durch Shift-Klicken auf die entsprechende Schaltfläche angezeigt werden.",
1227+
"project.page.activity-bar.hide.tooltip": "Aktivitätsleiste ausblenden",
1228+
"project.page.activity-bar.option.both": "Vollständige Seiten und Ausklapp-Panels",
1229+
"project.page.activity-bar.option.flyout": "Schaltflächen wechseln Flyouts",
1230+
"project.page.activity-bar.option.full": "Schaltflächen zeigen ganze Seiten",
1231+
"project.page.activity-bar.show.tooltip": "Aktivitätsleiste anzeigen",
1232+
"project.page.activity-bar.title": "Aktivitätsleiste",
1233+
"project.page.activity-bar.toggle-labels": "{show, select, true {Beschriftungen ausblenden} other {Beschriftungen anzeigen}}",
1234+
"project.page.activity-bar.toggle-labels.description": "Beschreibung auf den Schaltflächen der vertikalen Aktivitätsleiste anzeigen",
12241235
"project.page.ai-generate-document.content.label": "Geben Sie eine detaillierte Beschreibung des {docName}-Dokuments, das Sie erstellen möchten:",
12251236
"project.page.ai-generate-document.content.placeholder": "Inhalt beschreiben...",
12261237
"project.page.ai-generate-document.create_document.what": "erstelle das {docName} Dokument \"{path}\"",
@@ -1248,14 +1259,14 @@
12481259
"project.page.flyouts.new.header_location": "Verzeichnis:",
12491260
"project.page.project-licenses.header": "Quoten und {upgrades}",
12501261
"project.page.project-licenses.intro": "Lizenzen und Pay-as-you-go-Upgrades ändern die Quoten und Funktionen, die einem Projekt zur Verfügung stehen.",
1251-
"project.page.vbar.explanation": "Diese Funktion ändert die Funktionalität der linken Seitenleiste des Projekts. Standardmäßig werden Schaltflächen für ganze Seiten und kleine Caret-Zeichen für Flyout-Panels angezeigt. Bei Auswahl der Option \"ganze Seiten\" werden nur Schaltflächen angezeigt, die beim Klicken ganze Seiten öffnen. Umgekehrt, wenn die Option \"Flyout-Panels\" gewählt wird, erweitern sich nur Flyout-Panels beim Klicken. In beiden letzteren Fällen kann der alternative Paneltyp durch Shift-Klicken auf die entsprechende Schaltfläche angezeigt werden.",
1252-
"project.page.vbar.option.both": "Vollständige Seiten und Ausklapp-Panels",
1253-
"project.page.vbar.option.flyout": "Schaltflächen wechseln Flyouts",
1254-
"project.page.vbar.option.full": "Schaltflächen zeigen ganze Seiten",
1262+
"project.page.vbar.explanation": "Diese Funktion ändert die Funktionalität der linken Schaltflächenleiste des Projekts. Standardmäßig zeigt sie Schaltflächen für vollständige Seiten und kleine Caret-Zeichen für Flyout-Panels an. Bei Auswahl der Option \"Vollständige Seiten\" werden nur Schaltflächen angezeigt, die beim Klicken vollständige Seiten öffnen. Im Gegensatz dazu erweitern sich im Modus \"Flyout-Panels\" nur Flyout-Panels beim Klicken. In beiden der letztgenannten Fälle kann der alternative Paneltyp durch Shift-Klicken auf die entsprechende Schaltfläche angezeigt werden.",
1263+
"project.page.vbar.option.both": "Vollseiten und Flyout-Panels",
1264+
"project.page.vbar.option.flyout": "Schaltflächen blenden Flyouts ein/aus",
1265+
"project.page.vbar.option.full": "Schaltflächen zeigen vollständige Seiten",
12551266
"project.page.vertical-fixed-tabs.show-sidebar.tooltip": "Aktionsleiste anzeigen",
1256-
"project.page.vertical-fixed-tabs.title": "Layout des vertikalen Balken",
1257-
"project.page.vertical-fixed-tabs.toggle-labels": "Beschriftungen anzeigen",
1258-
"project.page.vertical-fixed-tabs.toggle-labels.description": "Zeige die Beschreibung auf den vertikalen Aktionsleisten-Buttons",
1267+
"project.page.vertical-fixed-tabs.title": "Layout der vertikalen Leiste",
1268+
"project.page.vertical-fixed-tabs.toggle-labels": "{show, select, true {Beschriftungen ausblenden} other {Beschriftungen anzeigen}}",
1269+
"project.page.vertical-fixed-tabs.toggle-labels.description": "Zeige die Beschreibung auf den vertikalen Aktionsleistenschaltflächen",
12591270
"project.page.vertical-fixed-tabs.toggle-sidebar.tooltip": "Aktionsleiste ausblenden",
12601271
"project.servers.project-servers.description": "Sie können verschiedene Notebook-Server in diesem Projekt mit einem Klick starten. Sie laufen in derselben Umgebung, haben Zugriff auf dieselben Dateien und stoppen, wenn das Projekt stoppt. Sie können auch <A>Ihren eigenen Server starten</A>.",
12611272
"project.settings.about-box.description.label": "Beschreibung (Markdown)",

0 commit comments

Comments
 (0)