Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

iobroker.telegram-menu

Package Overview
Dependencies
Maintainers
2
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

iobroker.telegram-menu - npm Package Compare versions

Comparing version 0.5.1 to 0.6.0

admin/css/color.css

6

admin/i18n/de/translations.json

@@ -5,2 +5,3 @@ {

"Active": "Aktiv",
"Active Menu:": "Aktives Menü:",
"Add": "hinzufügen",

@@ -12,2 +13,3 @@ "Add && as a placeholder for the value in the text": "Fügen Sie && als Platzhalter für den Wert im Text hinzu",

"Add new Groupname": "Neuen Gruppennamen hinzufügen",
"Add new Menu Name": "Neuen Menünamen hinzufügen",
"Add new Navigation": "Neue Navigation hinzufügen",

@@ -25,4 +27,6 @@ "Add new User": "Neuen Benutzer hinzufügen",

"Confirm set value": "Eingestellten Wert bestätigen",
"Copy Elements from other Menus": "Elemente aus anderen Menüs kopieren",
"Delay": "Verzögerung",
"Delay (ms)": "Verzögerung (ms)",
"Delete Menu": "Menü löschen",
"Delete User": "Benutzer löschen",

@@ -32,2 +36,3 @@ "Directory": "Verzeichnis",

"Each entry may only occur once in the complete navigation": "Jeder Eintrag darf in der gesamten Navigation nur einmal vorkommen",
"Edit Menu": "Menü bearbeiten",
"Edit Username": "Benutzernamen bearbeiten",

@@ -51,2 +56,3 @@ "Entry not found!": "Eintrag nicht gefunden!",

"Users for this Group, seperate with": "Benutzer für diese Gruppe, trennen Sie mit",
"Users from Telegram": "Benutzer von Telegram",
"Value": "Wert",

@@ -53,0 +59,0 @@ "What is to do?": "Was ist zu tun?",

@@ -5,2 +5,3 @@ {

"Active": "Active",
"Active Menu:": "Active Menu:",
"Add": "add",

@@ -12,2 +13,3 @@ "Add && as a placeholder for the value in the text": "Add && as a placeholder for the value in the text",

"Add new Groupname": "Add new Groupname",
"Add new Menu Name": "Add new Menu Name",
"Add new Navigation": "Add new Navigation",

@@ -25,4 +27,6 @@ "Add new User": "Add new User",

"Confirm set value": "Confirm set value",
"Copy Elements from other Menus": "Copy Elements from other Menus",
"Delay": "Delay",
"Delay (ms)": "Delay (ms)",
"Delete Menu": "Delete Menu",
"Delete User": "Delete User",

@@ -32,2 +36,3 @@ "Directory": "Directory",

"Each entry may only occur once in the complete navigation": "Each entry may only occur once in the complete navigation",
"Edit Menu": "Edit Menu",
"Edit Username": "Edit Username",

@@ -51,2 +56,3 @@ "Entry not found!": "Entry not found!",

"Users for this Group, seperate with": "Users for this Group, seperate with",
"Users from Telegram": "Users from Telegram",
"Value": "Value",

@@ -53,0 +59,0 @@ "What is to do?": "What is to do?",

@@ -5,2 +5,3 @@ {

"Active": "Activo",
"Active Menu:": "Menú Activo:",
"Add": "agregar",

@@ -12,2 +13,3 @@ "Add && as a placeholder for the value in the text": "Agregue && como marcador de posición para el valor en el texto",

"Add new Groupname": "Agregar nuevo nombre de grupo",
"Add new Menu Name": "Agregar nuevo nombre de menú",
"Add new Navigation": "Agregar nueva navegación",

@@ -25,4 +27,6 @@ "Add new User": "Añadir nuevo usuario",

"Confirm set value": "Confirmar valor establecido",
"Copy Elements from other Menus": "Copiar elementos de otros menús",
"Delay": "Demora",
"Delay (ms)": "Retardo (ms)",
"Delete Menu": "Borrar Menú",
"Delete User": "Borrar usuario",

@@ -32,2 +36,3 @@ "Directory": "Directorio",

"Each entry may only occur once in the complete navigation": "Cada entrada solo puede ocurrir una vez en la navegación completa",
"Edit Menu": "Menú de edición",
"Edit Username": "Editar nombre de usuario",

@@ -51,2 +56,3 @@ "Entry not found!": "¡Entrada no encontrada!",

"Users for this Group, seperate with": "Usuarios para este Grupo, separe con",
"Users from Telegram": "Usuarios de Telegram",
"Value": "Valor",

@@ -53,0 +59,0 @@ "What is to do?": "¿Qué hay que hacer?",

@@ -5,2 +5,3 @@ {

"Active": "Actif",
"Active Menu:": "Menu Actif :",
"Add": "ajouter",

@@ -12,2 +13,3 @@ "Add && as a placeholder for the value in the text": "Ajouter && comme espace réservé pour la valeur dans le texte",

"Add new Groupname": "Ajouter un nouveau nom de groupe",
"Add new Menu Name": "Ajouter un nouveau nom de menu",
"Add new Navigation": "Ajouter une nouvelle navigation",

@@ -25,4 +27,6 @@ "Add new User": "Ajouter un nouvel utilisateur",

"Confirm set value": "Confirmer la valeur définie",
"Copy Elements from other Menus": "Copier des éléments d'autres menus",
"Delay": "Retard",
"Delay (ms)": "Délai (ms)",
"Delete Menu": "Supprimer le menu",
"Delete User": "Supprimer l'utilisateur",

@@ -32,2 +36,3 @@ "Directory": "Annuaire",

"Each entry may only occur once in the complete navigation": "Chaque entrée ne peut apparaître qu'une seule fois dans la navigation complète",
"Edit Menu": "Modifier le menu",
"Edit Username": "Modifier le nom d'utilisateur",

@@ -51,2 +56,3 @@ "Entry not found!": "Entrée introuvable !",

"Users for this Group, seperate with": "Utilisateurs pour ce groupe, séparés par",
"Users from Telegram": "Utilisateurs de Telegram",
"Value": "Valeur",

@@ -53,0 +59,0 @@ "What is to do?": "Que faire ?",

@@ -5,2 +5,3 @@ {

"Active": "Attivo",
"Active Menu:": "Menù attivo:",
"Add": "aggiungere",

@@ -12,2 +13,3 @@ "Add && as a placeholder for the value in the text": "Aggiungi && come segnaposto per il valore nel testo",

"Add new Groupname": "Aggiungi nuovo nome gruppo",
"Add new Menu Name": "Aggiungi un nuovo nome di menu",
"Add new Navigation": "Aggiungi nuova navigazione",

@@ -25,4 +27,6 @@ "Add new User": "Aggiungi nuovo utente",

"Confirm set value": "Conferma il valore impostato",
"Copy Elements from other Menus": "Copia elementi da altri menu",
"Delay": "Ritardo",
"Delay (ms)": "Ritardo (ms)",
"Delete Menu": "Elimina Menù",
"Delete User": "Elimina utente",

@@ -32,2 +36,3 @@ "Directory": "Direttorio",

"Each entry may only occur once in the complete navigation": "Ogni voce può comparire una sola volta nella navigazione completa",
"Edit Menu": "Menù Modifica",
"Edit Username": "Modifica nome utente",

@@ -51,2 +56,3 @@ "Entry not found!": "Voce non trovata!",

"Users for this Group, seperate with": "Utenti per questo gruppo, separati da",
"Users from Telegram": "Utenti di Telegram",
"Value": "Valore",

@@ -53,0 +59,0 @@ "What is to do?": "Cosa fare?",

@@ -5,2 +5,3 @@ {

"Active": "Actief",
"Active Menu:": "Actief menu:",
"Add": "toevoegen",

@@ -12,2 +13,3 @@ "Add && as a placeholder for the value in the text": "Voeg && toe als tijdelijke aanduiding voor de waarde in de tekst",

"Add new Groupname": "Nieuwe groepsnaam toevoegen",
"Add new Menu Name": "Voeg een nieuwe menunaam toe",
"Add new Navigation": "Nieuwe navigatie toevoegen",

@@ -25,4 +27,6 @@ "Add new User": "Voeg een nieuwe gebruiker toe",

"Confirm set value": "Bevestig ingestelde waarde",
"Copy Elements from other Menus": "Kopieer elementen uit andere menu's",
"Delay": "Vertraging",
"Delay (ms)": "Vertraging (ms)",
"Delete Menu": "Menu verwijderen",
"Delete User": "Verwijder gebruiker",

@@ -32,2 +36,3 @@ "Directory": "Gids",

"Each entry may only occur once in the complete navigation": "Elke invoer mag slechts één keer voorkomen in de volledige navigatie",
"Edit Menu": "Menu bewerken",
"Edit Username": "Gebruikersnaam bewerken",

@@ -51,2 +56,3 @@ "Entry not found!": "Invoer niet gevonden!",

"Users for this Group, seperate with": "Gebruikers voor deze groep, scheid met",
"Users from Telegram": "Gebruikers van Telegram",
"Value": "Waarde",

@@ -53,0 +59,0 @@ "What is to do?": "Wat is er te doen?",

@@ -5,2 +5,3 @@ {

"Active": "Aktywny",
"Active Menu:": "aktywne menu:",
"Add": "dodać",

@@ -12,2 +13,3 @@ "Add && as a placeholder for the value in the text": "Dodaj && jako symbol zastępczy wartości w tekście",

"Add new Groupname": "Dodaj nową nazwę grupy",
"Add new Menu Name": "Dodaj nową nazwę menu",
"Add new Navigation": "Dodaj nową Nawigację",

@@ -25,4 +27,6 @@ "Add new User": "Dodaj nowego użytkownika",

"Confirm set value": "Potwierdź ustawioną wartość",
"Copy Elements from other Menus": "Kopiuj elementy z innych menu",
"Delay": "Opóźnienie",
"Delay (ms)": "Opóźnienie (ms)",
"Delete Menu": "Usuń menu",
"Delete User": "Usuń użytkownika",

@@ -32,2 +36,3 @@ "Directory": "Informator",

"Each entry may only occur once in the complete navigation": "Każdy wpis może wystąpić tylko raz w całej nawigacji",
"Edit Menu": "Edytuj menu",
"Edit Username": "Edytuj nazwę użytkownika",

@@ -51,2 +56,3 @@ "Entry not found!": "Nie znaleziono wpisu!",

"Users for this Group, seperate with": "Użytkownicy dla tej grupy, oddzielni od",
"Users from Telegram": "Użytkownicy Telegrama",
"Value": "Wartość",

@@ -53,0 +59,0 @@ "What is to do?": "Co robić?",

@@ -5,2 +5,3 @@ {

"Active": "Ativo",
"Active Menu:": "Menu ativo:",
"Add": "adicionar",

@@ -12,2 +13,3 @@ "Add && as a placeholder for the value in the text": "Adicionar && como espaço reservado para o valor no texto",

"Add new Groupname": "Adicionar novo nome de grupo",
"Add new Menu Name": "Adicionar novo nome de menu",
"Add new Navigation": "Adicionar nova navegação",

@@ -25,4 +27,6 @@ "Add new User": "Adicionar novo usuário",

"Confirm set value": "Confirme o valor definido",
"Copy Elements from other Menus": "Copiar elementos de outros menus",
"Delay": "Atraso",
"Delay (ms)": "Atraso (ms)",
"Delete Menu": "Apagar Menu",
"Delete User": "Deletar usuário",

@@ -32,2 +36,3 @@ "Directory": "Diretório",

"Each entry may only occur once in the complete navigation": "Cada entrada só pode ocorrer uma vez na navegação completa",
"Edit Menu": "Editar menu",
"Edit Username": "Editar nome de usuário",

@@ -51,2 +56,3 @@ "Entry not found!": "Entrada não encontrada!",

"Users for this Group, seperate with": "Usuários deste Grupo, separados por",
"Users from Telegram": "Usuários do Telegram",
"Value": "Valor",

@@ -53,0 +59,0 @@ "What is to do?": "O que fazer?",

@@ -5,2 +5,3 @@ {

"Active": "Активный",
"Active Menu:": "Активное меню:",
"Add": "добавлять",

@@ -12,2 +13,3 @@ "Add && as a placeholder for the value in the text": "Добавьте && в качестве заполнителя для значения в тексте",

"Add new Groupname": "Добавить новое имя группы",
"Add new Menu Name": "Добавить новое название меню",
"Add new Navigation": "Добавить новую навигацию",

@@ -25,4 +27,6 @@ "Add new User": "Добавить нового пользователя",

"Confirm set value": "Подтвердить установленное значение",
"Copy Elements from other Menus": "Копировать элементы из других меню",
"Delay": "Задерживать",
"Delay (ms)": "Задержка (мс)",
"Delete Menu": "Удалить меню",
"Delete User": "Удалить пользователя",

@@ -32,2 +36,3 @@ "Directory": "Каталог",

"Each entry may only occur once in the complete navigation": "Каждая запись может встречаться только один раз за всю навигацию.",
"Edit Menu": "Меню редактирования",
"Edit Username": "Изменить имя пользователя",

@@ -51,2 +56,3 @@ "Entry not found!": "Запись не найдена!",

"Users for this Group, seperate with": "Пользователи для этой группы, отдельно с",
"Users from Telegram": "Пользователи из Telegram",
"Value": "Ценить",

@@ -53,0 +59,0 @@ "What is to do?": "Что делать?",

@@ -5,2 +5,3 @@ {

"Active": "Активний",
"Active Menu:": "Активне меню:",
"Add": "додати",

@@ -12,2 +13,3 @@ "Add && as a placeholder for the value in the text": "Додайте && як заповнювач для значення в тексті",

"Add new Groupname": "Додайте нову назву групи",
"Add new Menu Name": "Додайте нову назву меню",
"Add new Navigation": "Додати нову навігацію",

@@ -25,4 +27,6 @@ "Add new User": "Додати нового користувача",

"Confirm set value": "Підтвердьте встановлене значення",
"Copy Elements from other Menus": "Копіювати елементи з інших меню",
"Delay": "Затримка",
"Delay (ms)": "Затримка (мс)",
"Delete Menu": "Видалити меню",
"Delete User": "Видалити користувача",

@@ -32,2 +36,3 @@ "Directory": "Довідник",

"Each entry may only occur once in the complete navigation": "Кожен запис може з’являтися лише один раз у повній навігації",
"Edit Menu": "Меню редагування",
"Edit Username": "Редагувати ім'я користувача",

@@ -51,2 +56,3 @@ "Entry not found!": "Запис не знайдено!",

"Users for this Group, seperate with": "Користувачі для цієї групи, окремо від",
"Users from Telegram": "Користувачі з Telegram",
"Value": "Значення",

@@ -53,0 +59,0 @@ "What is to do?": "Що робити?",

@@ -5,2 +5,3 @@ {

"Active": "积极的",
"Active Menu:": "活动菜单:",
"Add": "添加",

@@ -12,2 +13,3 @@ "Add && as a placeholder for the value in the text": "添加 && 作为文本中值的占位符",

"Add new Groupname": "添加新组名",
"Add new Menu Name": "添加新菜单名称",
"Add new Navigation": "添加新导航",

@@ -25,4 +27,6 @@ "Add new User": "添加新用户",

"Confirm set value": "确认设定值",
"Copy Elements from other Menus": "从其他菜单复制元素",
"Delay": "延迟",
"Delay (ms)": "延迟(毫秒)",
"Delete Menu": "删除菜单",
"Delete User": "删除用户",

@@ -32,2 +36,3 @@ "Directory": "目录",

"Each entry may only occur once in the complete navigation": "每个条目在完整导航中只能出现一次",
"Edit Menu": "编辑菜单",
"Edit Username": "修改用户名",

@@ -51,2 +56,3 @@ "Entry not found!": "找不到条目!",

"Users for this Group, seperate with": "该组的用户,与",
"Users from Telegram": "来自 Telegram 的用户",
"Value": "价值",

@@ -53,0 +59,0 @@ "What is to do?": "怎么办?",

36

admin/js/component.js

@@ -0,12 +1,20 @@

/*global $*/
/*eslint no-unused-vars: ["error", { "varsIgnorePattern": "e" }]*/
// Navigation----------------------------------------------------
function groupUserInput(user, val) {
return /*html*/ `<div class="${user}">
<label >
<input name="${user}" spellcheck="false" type="text" value="${val}" class="isString" >
//FIXME - Remove
function groupUserInput(menu, val) {
return /*html*/ `<div data-name="group" data-menu="${menu}" class="${menu} ">
<!-- <label >
<input name="${menu}" spellcheck="false" type="text" value="${val}" class="isString" >
<span class="translate">Users for this Group, seperate with</span><span> ",".</span>
</label>
</label> -->
</div>`;
}
function userSelectionTelegram(user, menu) {
$(`#group_UserInput .${menu}`)
.append(/*html*/ `<div data-name="${user}"><p>${user}</p><label><input data-menu="${user}" type="checkbox" class="filled-in userSelection" /><span></span></label></div>
`);
}
/**

@@ -27,2 +35,3 @@ * Nav Component & Startrow in Nav

<td></td>
<td><a class="btn-floating btn-small waves-effect waves-light green btn_add_row"><i class="material-icons">add</i></a></td>
</tr>

@@ -56,2 +65,3 @@ </tbody>`;

<td><a class="btn-floating btn-small waves-effect waves-light blue btn_up"><i class="material-icons" name="up">arrow_upward</i></a></td>
<td><a class="btn-floating btn-small waves-effect waves-light green btn_add_row"><i class="material-icons">add</i></a></td>
</tr>`;

@@ -66,3 +76,3 @@ }

function newUserBtn(user) {
return /*html*/ `<li class="tab col s2 bg-nav-user"><a name="${user}" class="click_user" href="#">${user}</a></li>`;
return /*html*/ `<li class="tab bg-nav-user"><a name="${user}" class="click_user" href="#">${user}</a></li>`;
}

@@ -72,6 +82,7 @@ function userActivCheckbox(user, val) {

if (val || val == "") checked = "checked";
return /*html*/ `<div class="${user}" style="display:none"><input type="checkbox" class="filled-in userActiveCheckbox" ${checked} data-name="${user}"/>
return /*html*/ `<div class="${user}" style="display:none"><label> <input type="checkbox" class="filled-in userActiveCheckbox" ${checked} data-name="${user}"/>
<span class="marginTop">${user} <span> </span><span class="translate">active</span>
</span></div> `;
</span></label></div> `;
}
//SECTION - - Trigger

@@ -81,3 +92,2 @@ function createSelectTrigger(list) {

list.forEach(function (e) {
if (e.includes("menu:")) e = e.split(":")[2];
const dynamicChild = `<option value="${e}" >${e}</option>`;

@@ -124,5 +134,5 @@ element += dynamicChild;

return /*html*/ `<div class="row user_${user}">
<div class="col s12">
<div class="col s12 table_wrapper action">
<div >
<p class="showHideMenu" style="width: 100%; background: #64b5f6"><i class="material-icons">chevron_right</i>GetState</p>
<p class="showHideMenu name" style="width: 100%; background: #64b5f6"><i class="material-icons">chevron_right</i>GetState</p>
<table style="display: none;" class="text-small saveTable">

@@ -148,3 +158,3 @@ <thead>

<div >
<p class="showHideMenu" style="width: 100%; background: #64b5f6"><i class="material-icons">chevron_right</i>SetState</p>
<p class="showHideMenu name" style="width: 100%; background: #64b5f6"><i class="material-icons">chevron_right</i>SetState</p>
<table style="display: none;" class="text-small saveTable">

@@ -171,3 +181,3 @@ <thead>

<div>
<p class="showHideMenu" style="width: 100%; background: #64b5f6"><i class="material-icons">chevron_right</i>Send Picture</p>
<p class="showHideMenu name" style="width: 100%; background: #64b5f6"><i class="material-icons">chevron_right</i>Send Picture</p>
<table style="display: none;" class="text-small saveTable">

@@ -174,0 +184,0 @@ <thead>

@@ -1,2 +0,2 @@

/*global newUserBtn ,navElement ,actionElement,createSelectTrigger,newTableRow_Action,newTableRow_Action,newTrInAction, newSelectInstanceRow,userActivCheckbox,$, groupUserInput*/
/*global newUserBtn, ,navElement, userSelectionTelegram ,actionElement,createSelectTrigger,newTableRow_Action,newTableRow_Action,newTrInAction,userActivCheckbox,$, groupUserInput*/
/*eslint no-unused-vars: ["error", { "varsIgnorePattern": "disableEnableInputField|isStringEmty|generate|create|set|fill|reset|add|show|ins|table|get|new|show|checkValueModal|disable|checkUpAndDownArrowBtn|"}]*/

@@ -81,24 +81,54 @@

* @param {string} id Where to create
* @param {Array} users Array of Users
* @param {Array} menu Array of Menus
*/
function createGroup(id, users, activeGroup, userActiveCheckbox, usersInGroup) {
users.forEach((user) => {
function createGroup(id, menu, activeGroup, userActiveCheckbox, usersInGroup) {
menu.forEach((menu) => {
// @ts-ignore
$(id).append(newUserBtn(user));
$(id).append(newUserBtn(menu));
// @ts-ignore
$("#table_nav").append(navElement(user));
$("#table_nav").append(navElement(menu));
// @ts-ignore
$("#tab-action").append(actionElement(user));
$("#tab-action").append(actionElement(menu));
let val;
if (userActiveCheckbox && userActiveCheckbox[user] != undefined) val = userActiveCheckbox[user];
if (userActiveCheckbox && userActiveCheckbox[menu] != undefined) val = userActiveCheckbox[menu];
else val = "";
// @ts-ignore
$("#group_active_checkbox").append(userActivCheckbox(user, val));
if (usersInGroup && usersInGroup[user] != undefined) val = usersInGroup[user];
$("#group_active_checkbox").append(userActivCheckbox(menu, val));
if (usersInGroup && usersInGroup[menu] != undefined) val = usersInGroup[menu];
else val = "";
// @ts-ignore
$("#group_UserInput").append(groupUserInput(user, val));
$("#group_UserInput").append(groupUserInput(menu, val));
});
if (activeGroup) $(`#group_active_checkbox div.${activeGroup}`).show();
}
//ANCHOR - User von Telegram mit Checkbox
function buildUserSelection(state, menus, userinGroup) {
console.log("test");
const usersInTelegram = JSON.parse(state.val);
const userListe = [];
console.log(state);
console.log(menus);
for (const user in usersInTelegram) {
userListe.push(usersInTelegram[user]["firstName"]);
}
$(menus).each(function (key, menu) {
$(userListe).each(function (key, user) {
console.log(user, menu);
// @ts-ignore
userSelectionTelegram(user, menu);
});
checkCheckbox(menu, userListe, userinGroup);
});
}
//TODO - Function checkbox User Telegram
function checkCheckbox(menu, userList, userinGroup) {
console.log(userinGroup);
$(userList).each(function (index, user) {
if (userinGroup[menu].includes(user)) {
$(`#group_UserInput div.${menu} div[data-name="${user}"] input`).prop("checked", true);
}
});
}
//SECTION - Save 5 Save to Object

@@ -195,3 +225,3 @@ // @ts-ignore

$("#tab-action>div").hide();
$("#group_UserInput div").hide();
$("#group_UserInput div[data-name='group'").hide();
$(`tbody.table_switch_user.user_${activeGroup}`).show();

@@ -231,3 +261,2 @@ $(`#tab-action>div.user_${activeGroup}`).show();

//ANCHOR - Trigger erstellen
//TODO -
// @ts-ignore

@@ -238,2 +267,3 @@ function generateSelectTrigger(activeGroup) {

list = deleteDoubleEntrysInArray(list);
list = deleteUnnessesaryElements(list);
list = sortArray(list);

@@ -243,2 +273,3 @@ // HTML Elemente löschen und neu aufbauen

$("#select_trigger").empty().append(createSelectTrigger(list));
$("select").select();
}

@@ -249,5 +280,16 @@

}
function deleteUnnessesaryElements(list) {
const newlist = [];
list.forEach(function (e) {
if (e != "menu:back" && e != "-") {
if (e.includes("menu:")) e = e.split(":")[2];
newlist.push(e);
}
});
return newlist;
}
/**
*
* @param {[]} arr
* @param {any[]} arr
* @returns Sorted Array

@@ -266,3 +308,2 @@ */

});
return arr;

@@ -451,46 +492,9 @@ }

/**
*
* @param {*} socket
* @returns
*/
// @ts-ignore
function getAllTelegramInstances(socket, _this) {
const id = [];
try {
socket.emit(
"getObjectView",
"system",
"instance",
{ startkey: "system.adapter.", endkey: "system.adapter.\u9999" },
function (err, doc) {
if (!err && doc.rows.length) {
for (let i = 0; i < doc.rows.length; i++) {
if (
doc.rows[i].value &&
doc.rows[i].value.common &&
doc.rows[i].value.common.titleLang &&
doc.rows[i].value.common.titleLang.en &&
doc.rows[i].value.common.titleLang.en == "Telegram"
// doc.rows[i].value.common.title == "Telegram"
) {
id.push(doc.rows[i].id.replace(/^system\.adapter\./, ""));
}
if (i == doc.rows.length - 1) {
id.forEach((id) => {
// @ts-ignore
$("#select_instance").append(newSelectInstanceRow(id));
});
}
}
}
},
);
} catch (err) {
_this.log.debug("Error getAllTelegramInstance: " + JSON.stringify(err));
}
function menuToSpan(activeGroup) {
$("#activMenuOutput").text(activeGroup);
}
// @ts-ignore
function showUser(activeGroup, showHideUserCheckbox) {
showHideUserEntry(activeGroup);
menuToSpan(activeGroup);

@@ -497,0 +501,0 @@ $("#group_list li a").each(function () {

@@ -13,2 +13,3 @@ /*global systemDictionary:true */

"Action": { "en": "Action", "de": "Aktion", "ru": "Действие", "pt": "Ação", "nl": "Actie", "fr": "Action", "it": "Azione", "es": "Acción", "pl": "Działanie", "uk": "Дія", "zh-cn": "行动"},
"Active": { "en": "Active", "de": "Aktiv", "ru": "Активный", "pt": "Ativo", "nl": "Actief", "fr": "Actif", "it": "Attivo", "es": "Activo", "pl": "Aktywny", "uk": "Активний", "zh-cn": "积极的"},
"Add": { "en": "add", "de": "hinzufügen", "ru": "добавлять", "pt": "adicionar", "nl": "toevoegen", "fr": "ajouter", "it": "aggiungere", "es": "agregar", "pl": "dodać", "uk": "додати", "zh-cn": "添加"},

@@ -20,2 +21,3 @@ "Add && as a placeholder for the value in the text": {"en": "Add && as a placeholder for the value in the text", "de": "Fügen Sie && als Platzhalter für den Wert im Text hinzu", "ru": "Добавьте && в качестве заполнителя для значения в тексте", "pt": "Adicionar && como espaço reservado para o valor no texto", "nl": "Voeg && toe als tijdelijke aanduiding voor de waarde in de tekst", "fr": "Ajouter && comme espace réservé pour la valeur dans le texte", "it": "Aggiungi && come segnaposto per il valore nel testo", "es": "Agregue && como marcador de posición para el valor en el texto", "pl": "Dodaj && jako symbol zastępczy wartości w tekście", "uk": "Додайте && як заповнювач для значення в тексті", "zh-cn": "添加 && 作为文本中值的占位符"},

"Add new Groupname": { "en": "Add new Groupname", "de": "Neuen Gruppennamen hinzufügen", "ru": "Добавить новое имя группы", "pt": "Adicionar novo nome de grupo", "nl": "Nieuwe groepsnaam toevoegen", "fr": "Ajouter un nouveau nom de groupe", "it": "Aggiungi nuovo nome gruppo", "es": "Agregar nuevo nombre de grupo", "pl": "Dodaj nową nazwę grupy", "uk": "Додайте нову назву групи", "zh-cn": "添加新组名"},
"Add new Menu Name": { "en": "Add new Menu Name", "de": "Neuen Menünamen hinzufügen", "ru": "Добавить новое название меню", "pt": "Adicionar novo nome de menu", "nl": "Voeg een nieuwe menunaam toe", "fr": "Ajouter un nouveau nom de menu", "it": "Aggiungi un nuovo nome di menu", "es": "Agregar nuevo nombre de menú", "pl": "Dodaj nową nazwę menu", "uk": "Додайте нову назву меню", "zh-cn": "添加新菜单名称"},
"Add new Navigation": { "en": "Add new Navigation", "de": "Neue Navigation hinzufügen", "ru": "Добавить новую навигацию", "pt": "Adicionar nova navegação", "nl": "Nieuwe navigatie toevoegen", "fr": "Ajouter une nouvelle navigation", "it": "Aggiungi nuova navigazione", "es": "Agregar nueva navegación", "pl": "Dodaj nową Nawigację", "uk": "Додати нову навігацію", "zh-cn": "添加新导航"},

@@ -33,4 +35,6 @@ "Add new User": { "en": "Add new User", "de": "Neuen Benutzer hinzufügen", "ru": "Добавить нового пользователя", "pt": "Adicionar novo usuário", "nl": "Voeg een nieuwe gebruiker toe", "fr": "Ajouter un nouvel utilisateur", "it": "Aggiungi nuovo utente", "es": "Añadir nuevo usuario", "pl": "Dodaj nowego użytkownika", "uk": "Додати нового користувача", "zh-cn": "添加新用户"},

"Confirm set value": { "en": "Confirm set value", "de": "Eingestellten Wert bestätigen", "ru": "Подтвердить установленное значение", "pt": "Confirme o valor definido", "nl": "Bevestig ingestelde waarde", "fr": "Confirmer la valeur définie", "it": "Conferma il valore impostato", "es": "Confirmar valor establecido", "pl": "Potwierdź ustawioną wartość", "uk": "Підтвердьте встановлене значення", "zh-cn": "确认设定值"},
"Copy Elements from other Menus": { "en": "Copy Elements from other Menus", "de": "Elemente aus anderen Menüs kopieren", "ru": "Копировать элементы из других меню", "pt": "Copiar elementos de outros menus", "nl": "Kopieer elementen uit andere menu's", "fr": "Copier des éléments d'autres menus", "it": "Copia elementi da altri menu", "es": "Copiar elementos de otros menús", "pl": "Kopiuj elementy z innych menu", "uk": "Копіювати елементи з інших меню", "zh-cn": "从其他菜单复制元素"},
"Delay": { "en": "Delay", "de": "Verzögerung", "ru": "Задерживать", "pt": "Atraso", "nl": "Vertraging", "fr": "Retard", "it": "Ritardo", "es": "Demora", "pl": "Opóźnienie", "uk": "Затримка", "zh-cn": "延迟"},
"Delay (ms)": { "en": "Delay (ms)", "de": "Verzögerung (ms)", "ru": "Задержка (мс)", "pt": "Atraso (ms)", "nl": "Vertraging (ms)", "fr": "Délai (ms)", "it": "Ritardo (ms)", "es": "Retardo (ms)", "pl": "Opóźnienie (ms)", "uk": "Затримка (мс)", "zh-cn": "延迟(毫秒)"},
"Delete Menu": { "en": "Delete Menu", "de": "Menü löschen", "ru": "Удалить меню", "pt": "Apagar Menu", "nl": "Menu verwijderen", "fr": "Supprimer le menu", "it": "Elimina Menù", "es": "Borrar Menú", "pl": "Usuń menu", "uk": "Видалити меню", "zh-cn": "删除菜单"},
"Delete User": { "en": "Delete User", "de": "Benutzer löschen", "ru": "Удалить пользователя", "pt": "Deletar usuário", "nl": "Verwijder gebruiker", "fr": "Supprimer l'utilisateur", "it": "Elimina utente", "es": "Borrar usuario", "pl": "Usuń użytkownika", "uk": "Видалити користувача", "zh-cn": "删除用户"},

@@ -40,2 +44,3 @@ "Directory": { "en": "Directory", "de": "Verzeichnis", "ru": "Каталог", "pt": "Diretório", "nl": "Gids", "fr": "Annuaire", "it": "Direttorio", "es": "Directorio", "pl": "Informator", "uk": "Довідник", "zh-cn": "目录"},

"Each entry may only occur once in the complete navigation": {"en": "Each entry may only occur once in the complete navigation", "de": "Jeder Eintrag darf in der gesamten Navigation nur einmal vorkommen", "ru": "Каждая запись может встречаться только один раз за всю навигацию.", "pt": "Cada entrada só pode ocorrer uma vez na navegação completa", "nl": "Elke invoer mag slechts één keer voorkomen in de volledige navigatie", "fr": "Chaque entrée ne peut apparaître qu'une seule fois dans la navigation complète", "it": "Ogni voce può comparire una sola volta nella navigazione completa", "es": "Cada entrada solo puede ocurrir una vez en la navegación completa", "pl": "Każdy wpis może wystąpić tylko raz w całej nawigacji", "uk": "Кожен запис може з’являтися лише один раз у повній навігації", "zh-cn": "每个条目在完整导航中只能出现一次"},
"Edit Menu": { "en": "Edit Menu", "de": "Menü bearbeiten", "ru": "Меню редактирования", "pt": "Editar menu", "nl": "Menu bewerken", "fr": "Modifier le menu", "it": "Menù Modifica", "es": "Menú de edición", "pl": "Edytuj menu", "uk": "Меню редагування", "zh-cn": "编辑菜单"},
"Edit Username": { "en": "Edit Username", "de": "Benutzernamen bearbeiten", "ru": "Изменить имя пользователя", "pt": "Editar nome de usuário", "nl": "Gebruikersnaam bewerken", "fr": "Modifier le nom d'utilisateur", "it": "Modifica nome utente", "es": "Editar nombre de usuario", "pl": "Edytuj nazwę użytkownika", "uk": "Редагувати ім'я користувача", "zh-cn": "修改用户名"},

@@ -63,3 +68,4 @@ "Entry not found!": { "en": "Entry not found!", "de": "Eintrag nicht gefunden!", "ru": "Запись не найдена!", "pt": "Entrada não encontrada!", "nl": "Invoer niet gevonden!", "fr": "Entrée introuvable !", "it": "Voce non trovata!", "es": "¡Entrada no encontrada!", "pl": "Nie znaleziono wpisu!", "uk": "Запис не знайдено!", "zh-cn": "找不到条目!"},

"telegram-menu adapter settings": { "en": "Adapter settings for telegram-menu", "de": "Adaptereinstellungen für Telegram-Menü", "ru": "Настройки адаптера для телеграм-меню", "pt": "Configurações do adaptador para menu de telegrama", "nl": "Adapterinstellingen voor telegrammenu", "fr": "Paramètres de l'adaptateur pour le menu télégramme", "it": "Impostazioni dell'adattatore per il menu del telegramma", "es": "Configuración del adaptador para el menú de telegramas", "pl": "Ustawienia adaptera dla menu telegramu", "uk": "Налаштування адаптера для telegram-меню", "zh-cn": "电报菜单的适配器设置"},
"Active": { "en": "Active", "de": "Aktiv", "ru": "Активный", "pt": "Ativo", "nl": "Actief", "fr": "Actif", "it": "Attivo", "es": "Activo", "pl": "Aktywny", "uk": "Активний", "zh-cn": "积极的"},
"Users from Telegram": { "en": "Users from Telegram", "de": "Benutzer von Telegram", "ru": "Пользователи из Telegram", "pt": "Usuários do Telegram", "nl": "Gebruikers van Telegram", "fr": "Utilisateurs de Telegram", "it": "Utenti di Telegram", "es": "Usuarios de Telegram", "pl": "Użytkownicy Telegrama", "uk": "Користувачі з Telegram", "zh-cn": "来自 Telegram 的用户"},
"Active Menu:": { "en": "Active Menu:", "de": "Aktives Menü:", "ru": "Активное меню:", "pt": "Menu ativo:", "nl": "Actief menu:", "fr": "Menu Actif :", "it": "Menù attivo:", "es": "Menú Activo:", "pl": "aktywne menu:", "uk": "Активне меню:", "zh-cn": "活动菜单:"},
};
{
"common": {
"name": "telegram-menu",
"version": "0.5.1",
"version": "0.6.0",
"news": {
"0.6.0": {
"en": "checkbox for Telegram Users\nstyling\nsmall fixes\nAdd Row Button in Nav for every Row\nMore Groups with the same User\nTrigger generates without saving",
"de": "checkbox für Telegram-Benutzer\nstyling\nkleine fixierungen\nFügen Sie Row Button in Nav für jede Row\nWeitere Gruppen mit demselben Benutzer\nTrigger erzeugt ohne Speicher",
"ru": "checkbox для пользователей Telegram\nстайлинг\nнебольшие исправления\nДобавьте Row Button в Nav для каждого Row\nБольше групп с тем же пользователем\nTrigger генерирует без экономии",
"pt": "caixa de seleção para Usuários de Telegram\nestilo\npequenas correções\nAdicionar botão de linha em Nav para cada linha\nMais Grupos com o mesmo Usuário\nTrigger gera sem salvar",
"nl": "controlebox van Telegram Users\nstyling\nkleine fixes\nAdd Row Button voor elke Row\nMeer groepen met dezelfde User\nTrigger genereert zonder spaargeld",
"fr": "case à cocher pour les utilisateurs de télégramme\nstyling\npetites corrections\nAjouter Row Button en Nav pour chaque Row\nPlus de groupes avec le même Utilisateur\nTrigger génère sans sauver",
"it": "casella di controllo per utenti Telegram\nstile\npiccole correzioni\nAggiungi pulsante di riga in Nav per ogni riga\nAltri gruppi con lo stesso utente\nTrigger genera senza salvare",
"es": "checkbox for Telegram Users\nstyling\npequeños accesorios\nAñadir Row Button en Nav para cada fila\nMás Grupos con el mismo Usuario\nTrigger genera sin salvar",
"pl": "okładka\nstylistyka\ndrobne rozwiązanie\nAdd Row Button (ang.)\nWięcej grup z tymi samymi grupami User\nTrigger generuje bez oszczędzania",
"uk": "поштова скринька для користувачів Telegram\nстрахування\nмаленькі кріплення\nДодати кнопку Row в Nav для кожного рядка\nБільше груп з тим самим Користувачем\nТригер генерує без збереження",
"zh-cn": "电报用户检查箱\n处理\n小型配件\n增加纳维州的Row Button\n与同一用户的更多集团\n不节约的漏洞"
},
"0.5.1": {

@@ -83,15 +96,2 @@ "en": "sent to the wrong instance, fixed",

"zh-cn": "增加包装滞后\n印本 使用器操作器"
},
"0.2.0": {
"en": "rename button\ncreate groups with users",
"de": "rename taste\ngruppen mit benutzern erstellen",
"ru": "переименовать кнопку\nсоздавать группы с пользователями",
"pt": "botão de renome\ncriar grupos com usuários",
"nl": "knoop\nvertaling:",
"fr": "renommer le bouton\ncréer des groupes avec des utilisateurs",
"it": "rinominare il pulsante\ncreare gruppi con utenti",
"es": "botón de renombre\ncrear grupos con usuarios",
"pl": "rename\ntworzenie grup dla użytkowników",
"uk": "кнопка перейменування\nстворювати групи з користувачами",
"zh-cn": "重新命名\n与用户建立团体"
}

@@ -98,0 +98,0 @@ },

@@ -140,19 +140,2 @@ const sendToTelegram = require("./telegram").sendToTelegram;

/**
* Werte aus Datenpunkte an Telegramm senden
* @param {string} user Username
* @param {String} id ID des Datenpunkts
* @param {string} textVorVal Text vor Value
* @param {string} textNachVal Text nach Value
*/
const wertUebermitteln = async (_this, user, id, textVorVal, textNachVal) => {
try {
const value = await _this.getStateAsync(id);
if (value && value.val && typeof value.val == "string") {
sendToTelegram(this, user, `${textVorVal} ${value.val} ${textNachVal}`);
}
} catch (e) {
_this.log.debug("Error " + JSON.stringify(e));
}
};
/**
*

@@ -255,3 +238,2 @@ * @param {*} _this

idBySelector,
wertUebermitteln,
generateNewObjectStructure,

@@ -258,0 +240,0 @@ generateActions,

@@ -25,4 +25,2 @@ "use strict";

const sendToTelegramSubmenu = require("./lib/js/telegram").sendToTelegramSubmenu;
// const lichtAn = require("./lib/js/action").lichtAn;
// const wertUebermitteln = require("./lib/js/action").wertUebermitteln;

@@ -67,3 +65,3 @@ let timeouts = [];

const checkboxNoEntryFound = checkbox["checkboxNoValueFound"];
const userList = this.config.users;
const listofGroups = this.config.users;
const startsides = this.config.startsides;

@@ -125,7 +123,8 @@ let token = this.config.tokenGrafana;

try {
this.log.debug("GroupList: " + JSON.stringify(userList));
userList.forEach((group) => {
this.log.debug("GroupList: " + JSON.stringify(listofGroups));
listofGroups.forEach((group) => {
this.log.debug("Group: " + JSON.stringify(group));
const startside = [startsides[group]].toString();
if (userActiveCheckbox[group])
if (userActiveCheckbox[group] && startside != "-") {
this.log.debug("Startseite: " + JSON.stringify(startside));
groupsWithUsers[group].forEach((user) => {

@@ -143,2 +142,3 @@ backMenuFuc(this, startside, null, user);

});
}
});

@@ -166,90 +166,26 @@ } catch (error) {

userToSend = user;
const groupWithUser = Object.keys(groupsWithUsers).find((key) =>
groupsWithUsers[key].includes(user),
);
this.log.debug("Group with User " + JSON.stringify(groupWithUser));
const groupData = menu.data[groupWithUser];
this.log.debug("Nav " + JSON.stringify(groupData));
this.log.debug("Menu " + JSON.stringify(menu.data));
if (
groupData[calledValue] &&
userToSend &&
groupWithUser &&
userActiveCheckbox[groupWithUser]
) {
const part = groupData[calledValue];
// Navigation
if (part.nav) {
this.log.debug("Menu to Send: " + JSON.stringify(part.nav));
backMenuFuc(this, calledValue, part.nav, userToSend);
if (JSON.stringify(part.nav).includes("menu")) {
callSubMenu(this, part.nav, groupData, userToSend);
} else {
if (userToSend) {
this.log.debug("Send Nav to Telegram");
sendToTelegram(
this,
userToSend,
part.text,
part.nav,
instanceTelegram,
resize_keyboard,
one_time_keyboard,
);
}
}
const groups = [];
for (const key in groupsWithUsers) {
this.log.debug("key " + JSON.stringify(key));
if (groupsWithUsers[key].includes(user)) {
groups.push(key);
}
// Schalten
else if (part.switch) {
setStateIdsToListenTo = setstate(_this, part, userToSend);
} else if (part.getData) {
getstate(_this, part, userToSend, instanceTelegram);
} else if (part.sendPic) {
try {
this.log.debug("Send Picture");
}
this.log.debug("Groups with User " + JSON.stringify(groups));
let dataFound = false;
for (const group of groups) {
const groupData = menu.data[group];
this.log.debug("Nav " + JSON.stringify(groupData));
this.log.debug("Menu " + JSON.stringify(menu.data));
this.log.debug("group " + JSON.stringify(group));
part.sendPic.forEach((element) => {
// this.log.debug("Element " + JSON.stringify(element));
token = token.trim();
const url = element.id;
const newUrl = url.replace(/&amp;/g, "&");
exec(
`curl -H "Authorisation: Bearer ${token}" "${newUrl}" > ${directoryPicture}${element.fileName}`,
);
this.log.debug(
"url " +
`curl -H "Authorisation: Bearer ${token}" "${newUrl}" > ${directoryPicture}${element.fileName}`,
);
timeoutKey += 1;
const path = `${directoryPicture}${element.fileName}`;
const timeout = this.setTimeout(async () => {
this.log.debug("Send Pic to Telegram");
sendToTelegram(
_this,
userToSend,
path,
undefined,
instanceTelegram,
);
if (processData(this, groupData, calledValue, userToSend, group)) {
dataFound = true;
break;
} else continue;
}
if (!dataFound && checkboxNoEntryFound) {
sendToTelegram(this, userToSend, textNoEntryFound, undefined, instanceTelegram);
}
let timeoutToClear = {};
timeoutToClear = timeouts.filter((item) => item.key == timeoutKey);
clearTimeout(timeoutToClear.timeout);
timeouts = timeouts.filter((item) => item.key !== timeoutKey);
}, element.delay);
timeouts.push({ key: timeoutKey, timeout: timeout });
});
} catch (e) {
this.log.error("Error :" + JSON.stringify(e));
}
}
} else if (calledValue.startsWith("menu") || calledValue.startsWith("submenu")) {
callSubMenu(this, calledValue, groupData, userToSend);
} else {
if (typeof userToSend == "string") this.log.debug("Send No Entry to Telegram");
if (checkboxNoEntryFound)
sendToTelegram(this, userToSend, textNoEntryFound, undefined, instanceTelegram);
}
// Auf Setstate reagieren und Wert schicken

@@ -322,3 +258,88 @@ } else if (

});
function processData(_this, groupData, calledValue, userToSend, groupWithUser) {
if (groupData[calledValue] && userToSend && groupWithUser && userActiveCheckbox[groupWithUser]) {
const part = groupData[calledValue];
// Navigation
if (part.nav) {
_this.log.debug("Menu to Send: " + JSON.stringify(part.nav));
backMenuFuc(_this, calledValue, part.nav, userToSend);
if (JSON.stringify(part.nav).includes("menu")) {
callSubMenu(_this, part.nav, groupData, userToSend);
} else {
if (userToSend) {
_this.log.debug("Send Nav to Telegram");
sendToTelegram(
_this,
userToSend,
part.text,
part.nav,
instanceTelegram,
resize_keyboard,
one_time_keyboard,
);
return true;
}
}
}
// Schalten
else if (part.switch) {
setStateIdsToListenTo = setstate(_this, part, userToSend);
return true;
} else if (part.getData) {
getstate(_this, part, userToSend, instanceTelegram);
return true;
} else if (part.sendPic) {
try {
_this.log.debug("Send Picture");
part.sendPic.forEach((element) => {
// this.log.debug("Element " + JSON.stringify(element));
token = token.trim();
const url = element.id;
const newUrl = url.replace(/&amp;/g, "&");
exec(
`curl -H "Authorisation: Bearer ${token}" "${newUrl}" > ${directoryPicture}${element.fileName}`,
(error, stdout, stderr) => {
if (stdout) {
_this.log.debug("Stdout: " + JSON.stringify(stdout));
}
if (stderr) {
_this.log.debug("Stderr: " + JSON.stringify(stderr));
}
if (error) {
_this.log.error("Ein Fehler ist aufgetreten: " + JSON.stringify(error));
return;
}
},
);
_this.log.debug(
"url " +
`curl -H "Authorisation: Bearer ${token}" "${newUrl}" > ${directoryPicture}${element.fileName}`,
);
timeoutKey += 1;
const path = `${directoryPicture}${element.fileName}`;
const timeout = _this.setTimeout(async () => {
_this.log.debug("Send Pic to Telegram");
sendToTelegram(_this, userToSend, path, undefined, instanceTelegram);
let timeoutToClear = {};
timeoutToClear = timeouts.filter((item) => item.key == timeoutKey);
clearTimeout(timeoutToClear.timeout);
timeouts = timeouts.filter((item) => item.key !== timeoutKey);
}, element.delay);
timeouts.push({ key: timeoutKey, timeout: timeout });
});
return true;
} catch (e) {
_this.log.error("Error :" + JSON.stringify(e));
}
}
} else if (calledValue.startsWith("menu") || calledValue.startsWith("submenu")) {
callSubMenu(_this, calledValue, groupData, userToSend);
return true;
} else {
return false;
}
}
/**

@@ -325,0 +346,0 @@ *

{
"name": "iobroker.telegram-menu",
"version": "0.5.1",
"version": "0.6.0",
"description": "Easily create Telegram Menus",

@@ -72,3 +72,4 @@ "author": {

"translate": "translate-adapter",
"release": "release-script"
"release": "release-script",
"lint:fix": "eslint . --fix"
},

@@ -75,0 +76,0 @@ "bugs": {

@@ -36,2 +36,11 @@ ![Logo](admin/telegram-menu.png)

-->
### 0.6.0 (2023-08-13)
- checkbox for Telegram Users
- styling
- small fixes
- Add Row Button in Nav for every Row
- More Groups with the same User
- Trigger generates without saving
### 0.5.1 (2023-08-05)

@@ -38,0 +47,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc