Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 49 additions & 1 deletion _locales/de/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,26 @@
"message": "Label:",
"description": "Label für das Eingabefeld des Webhook-Labels."
},
"optionsEmojiLabel": {
"message": "Emoji (optional):",
"description": "Beschriftung für das Emoji-Eingabefeld."
},
"optionsEmojiPlaceholder": {
"message": "Emoji wählen, z. B. 🔔",
"description": "Platzhalter für das Emoji-Eingabefeld."
},
"optionsEmojiChooseButton": {
"message": "Emoji auswählen",
"description": "Schaltflächentext zum Öffnen des Emoji-Pickers."
},
"optionsEmojiClearButton": {
"message": "Leeren",
"description": "Schaltflächentext zum Leeren des Emoji-Feldes."
},
"optionsEmojiSearchPlaceholder": {
"message": "Emoji suchen...",
"description": "Platzhalter für das Emoji-Suchfeld."
},
"optionsLabelInputPlaceholder": {
"message": "z.B. 'An Slack senden'",
"description": "Platzhalter für die Eingabe des Webhook-Labels."
Expand Down Expand Up @@ -242,7 +262,7 @@
"description": "Hinweistext neben dem Import-Button."
},
"optionsTestButton": {
"message": "Testen",
"message": "🧪 Testen",
"description": "Text für den Test-Button."
},
"optionsTestSuccess": {
Expand All @@ -252,5 +272,33 @@
"optionsTestError": {
"message": "Fehler beim Senden des Test-Webhooks: ",
"description": "Fehlermeldung für den Test-Webhook."
},
"optionsAppearanceHeader": {
"message": "Erscheinungsbild",
"description": "Überschrift für den Bereich Erscheinungsbild."
},
"optionsThemeLabel": {
"message": "Theme",
"description": "Beschriftung für die Theme-Auswahl."
},
"optionsThemeSystem": {
"message": "Systemstandard",
"description": "Option für das systemweite Standard-Theme."
},
"optionsThemeLight": {
"message": "Hell",
"description": "Option für das helle Theme."
},
"optionsThemeDark": {
"message": "Dunkel",
"description": "Option für das dunkle Theme."
},
"optionsManageAppearanceButton": {
"message": "Erscheinungsbild",
"description": "Schaltfläche zum Öffnen des Erscheinungsbild-Dialogs."
},
"optionsCloseAppearanceButton": {
"message": "Schließen",
"description": "Schaltfläche zum Schließen des Erscheinungsbild-Dialogs."
}
}
51 changes: 50 additions & 1 deletion _locales/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,26 @@
"message": "Label:",
"description": "Label for the webhook label input field."
},
"optionsEmojiLabel": {
"message": "Emoji (optional):",
"description": "Label for the webhook emoji input field."
},
"optionsEmojiPlaceholder": {
"message": "Pick an emoji, e.g. 🔔",
"description": "Placeholder for the webhook emoji input."
},
"optionsEmojiChooseButton": {
"message": "Choose Emoji",
"description": "Button text to open the emoji picker."
},
"optionsEmojiClearButton": {
"message": "Clear",
"description": "Button text to clear the emoji."
},
"optionsEmojiSearchPlaceholder": {
"message": "Search emoji...",
"description": "Placeholder for the emoji search input."
},
"optionsLabelInputPlaceholder": {
"message": "e.g. 'Send to Slack'",
"description": "Placeholder for the webhook label input."
Expand Down Expand Up @@ -242,7 +262,7 @@
"description": "Information text shown next to the import button."
},
"optionsTestButton": {
"message": "Test",
"message": "🧪 Test",
"description": "Text for the test button."
},
"optionsTestSuccess": {
Expand All @@ -253,4 +273,33 @@
"message": "Error sending test webhook: ",
"description": "Error message for the test webhook."
}
,
"optionsAppearanceHeader": {
"message": "Appearance",
"description": "Header for the appearance section."
},
"optionsThemeLabel": {
"message": "Theme",
"description": "Label for the theme selector."
},
"optionsThemeSystem": {
"message": "System default",
"description": "System default theme option."
},
"optionsThemeLight": {
"message": "Light",
"description": "Light theme option."
},
"optionsThemeDark": {
"message": "Dark",
"description": "Dark theme option."
},
"optionsManageAppearanceButton": {
"message": "Appearance",
"description": "Button to open the appearance modal."
},
"optionsCloseAppearanceButton": {
"message": "Close",
"description": "Button to close the appearance modal."
}
}
85 changes: 83 additions & 2 deletions options/options.css
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,46 @@ button:hover {
display: none !important;
}

/* Emoji picker */
.emoji-input-row {
display: flex;
align-items: center;
gap: 8px;
}

.emoji-picker {
margin-top: 8px;
border: 1px solid #d1d5db;
border-radius: 8px;
padding: 12px;
background: #fff;
}

.emoji-picker input[type="text"] {
margin-bottom: 8px;
}

.emoji-grid {
display: grid;
grid-template-columns: repeat(8, 1fr);
gap: 6px;
}

.emoji-item {
font-size: 20px;
line-height: 1;
padding: 6px;
border: 1px solid transparent;
border-radius: 6px;
background: #f9fafb;
cursor: pointer;
}

.emoji-item:hover {
background: #eef2ff;
border-color: #c7d2fe;
}

#no-webhooks-message {
color: #6b7280;
padding: 20px;
Expand Down Expand Up @@ -410,7 +450,7 @@ button:hover {
position: relative;
}

.close, .close-manage-groups {
.close, .close-manage-groups, .close-manage-appearance {
position: absolute;
right: 15px;
top: 15px;
Expand All @@ -420,7 +460,7 @@ button:hover {
color: #6b7280;
}

.close:hover, .close-manage-groups:hover {
.close:hover, .close-manage-groups:hover, .close-manage-appearance:hover {
color: #1f2937;
}

Expand Down Expand Up @@ -520,3 +560,44 @@ button:hover {
.delete-group:hover {
background-color: #dc2626;
}

/* Emoji icons for options buttons (non-intrusive: does not change textContent) */
#add-new-webhook-btn::before,
#manage-groups-btn::before,
#manage-appearance-btn::before,
#cancel-edit-btn::before,
#close-manage-groups-btn::before,
#close-manage-appearance-btn::before,
#add-webhook-form button[type="submit"]::before,
#add-header-btn::before,
#add-group-btn::before,
#export-webhooks-btn::before,
#import-webhooks-btn::before,
.edit-btn::before,
.duplicate-btn::before,
.delete-btn::before,
.remove-header-btn::before,
.save-group-name::before,
.delete-group::before,
.edit-group-btn::before {
display: inline-block;
margin-right: 6px;
}

#add-new-webhook-btn::before { content: "➕"; }
#manage-groups-btn::before { content: "🗂️"; }
#add-header-btn::before { content: "➕"; }
#add-group-btn::before { content: "➕"; }
#export-webhooks-btn::before { content: "📤"; }
#import-webhooks-btn::before { content: "📥"; }
#manage-appearance-btn::before { content: "🌓"; }
#add-webhook-form button[type="submit"]::before { content: "💾"; }
#cancel-edit-btn::before { content: "↩️"; }
#close-manage-groups-btn::before, #close-manage-appearance-btn::before { content: "✖️"; }
.edit-btn::before { content: "✏️"; }
.duplicate-btn::before { content: "📄"; }
.delete-btn::before { content: "🗑️"; }
.remove-header-btn::before { content: "❌"; }
.save-group-name::before { content: "💾"; }
.delete-group::before { content: "🗑️"; }
.edit-group-btn::before { content: "✏️"; }
39 changes: 39 additions & 0 deletions options/options.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="color-scheme" content="light dark" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>__MSG_optionsTitle__</title>
<link rel="stylesheet" href="options.css" />
Expand All @@ -10,6 +11,8 @@
<div class="container">
<h1>__MSG_optionsPageHeader__</h1>
<p>__MSG_optionsPageDescription__</p>

<button type="button" id="manage-appearance-btn">__MSG_optionsManageAppearanceButton__</button>
<button type="button" id="add-new-webhook-btn">
__MSG_optionsAddNewWebhookButton__
</button>
Expand All @@ -28,6 +31,23 @@ <h2>__MSG_optionsAddWebhookHeader__</h2>
required
/>
</div>
<div class="form-group">
<label for="webhook-emoji">__MSG_optionsEmojiLabel__</label>
<div class="emoji-input-row">
<input
type="text"
id="webhook-emoji"
placeholder="__MSG_optionsEmojiPlaceholder__"
maxlength="4"
style="max-width: 140px; display: inline-block; margin-right: 8px;"
/>
<button type="button" id="open-emoji-picker-btn">__MSG_optionsEmojiChooseButton__</button>
<button type="button" id="clear-emoji-btn" style="margin-left: 8px; background-color: #6b7280;">__MSG_optionsEmojiClearButton__</button>
</div>
<div id="emoji-picker" class="emoji-picker hidden">
<div id="emoji-grid" class="emoji-grid"></div>
</div>
</div>
<div class="form-group">
<label for="webhook-group">__MSG_optionsGroupLabel__</label>
<select id="webhook-group">
Expand Down Expand Up @@ -171,6 +191,25 @@ <h3>__MSG_optionsExistingGroupsHeader__</h3>
</div>
</div>

<!-- Appearance Management Modal -->
<div id="manage-appearance-modal" class="modal hidden">
<div class="modal-content">
<span class="close-manage-appearance">&times;</span>
<h2>__MSG_optionsAppearanceHeader__</h2>
<div class="form-group">
<label for="theme-select">__MSG_optionsThemeLabel__</label>
<select id="theme-select">
<option value="system">__MSG_optionsThemeSystem__</option>
<option value="light">__MSG_optionsThemeLight__</option>
<option value="dark">__MSG_optionsThemeDark__</option>
</select>
</div>
<div class="modal-actions">
<button type="button" id="close-manage-appearance-btn">__MSG_optionsCloseAppearanceButton__</button>
</div>
</div>
</div>

<script src="../utils/browser-polyfill.js"></script>
<script src="../utils/utils.js"></script>
<script src="options.js"></script>
Expand Down
Loading