mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-01-27 13:22:14 +00:00
Merge pull request #329 from QuickMythril/admin-action
Add ADMIN_ACTION to qortalRequest
This commit is contained in:
commit
bd9d74892b
@ -742,7 +742,8 @@
|
||||
"bchange51": "Um die Änderungen zu übermitteln, vergessen Sie nicht, auf ‚Profil aktualisieren‘ zu klicken",
|
||||
"bchange52": "Erteilen Sie dieser Anwendung die Berechtigung, Ihre Wallet-Informationen abzurufen?",
|
||||
"bchange53": "Erlaube immer, dass deine Freundesliste automatisch von allen Apps abgerufen wird",
|
||||
"bchange54": "Erteilen Sie dieser Anwendung die Berechtigung, auf Ihre Freundesliste zuzugreifen?"
|
||||
"bchange54": "Erteilen Sie dieser Anwendung die Berechtigung, auf Ihre Freundesliste zuzugreifen?",
|
||||
"bchange55": "Geben Sie dieser Anwendung die Erlaubnis, diesen Befehl zu senden?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Datenmanagement",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "Para enviar los cambios no olvides hacer clic en 'Actualizar perfil'",
|
||||
"bchange52": "¿Le das permiso a esta aplicación para obtener la información de tu billetera?",
|
||||
"bchange53": "Permitir siempre que todas las aplicaciones recuperen automáticamente tu lista de amigos",
|
||||
"bchange54": "¿Le das permiso a esta aplicación para acceder a tu lista de amigos?"
|
||||
"bchange54": "¿Le das permiso a esta aplicación para acceder a tu lista de amigos?",
|
||||
"bchange55": "¿Le das permiso a esta aplicación para enviar este comando?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Gestión de datos",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "Muudatuste esitamiseks ärge unustage klõpsata Uuenda profiili",
|
||||
"bchange52": "Kas annate sellele rakendusele loa oma rahakoti teabe hankimiseks?",
|
||||
"bchange53": "Luba alati oma sõprade loendit kõikidel rakendustel automaatselt laadida",
|
||||
"bchange54": "Kas annate sellele rakendusele loa juurdepääsuks oma sõbraloendile?"
|
||||
"bchange54": "Kas annate sellele rakendusele loa juurdepääsuks oma sõbraloendile?",
|
||||
"bchange55": "Kas annad sellele rakendusele loa selle käsu saatmiseks?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Andmete haldamine",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "Älä unohda napsauttaa Päivitä profiili lähettääksesi muutokset",
|
||||
"bchange52": "Sallitko tämän sovelluksen saada lompakkosi tiedot?",
|
||||
"bchange53": "Anna aina kaikkien sovellusten ladata ystäväluettelosi automaattisesti",
|
||||
"bchange54": "Sallitko tämän sovelluksen käyttää ystäväluetteloasi?"
|
||||
"bchange54": "Sallitko tämän sovelluksen käyttää ystäväluetteloasi?",
|
||||
"bchange55": "Sallitko tämän sovelluksen lähettää tämän komennon?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Tiedonhallinta",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "Pour soumettre les modifications n'oubliez pas de cliquer sur 'Mettre à jour le profil'",
|
||||
"bchange52": "Autorisez-vous cette application à obtenir les informations de votre portefeuille ?",
|
||||
"bchange53": "Toujours autoriser la récupération automatique de votre liste d'amis par toutes les applications",
|
||||
"bchange54": "Autorisez-vous cette application à accéder à votre liste d'amis ?"
|
||||
"bchange54": "Autorisez-vous cette application à accéder à votre liste d'amis ?",
|
||||
"bchange55": "Autorisez-vous cette application à envoyer cette commande ?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Gestion de données",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "परिवर्तन सबमिट करने के लिए 'अपडेट प्रोफ़ाइल' पर क्लिक करना न भूलें",
|
||||
"bchange52": "क्या आप इस एप्लिकेशन को अपने वॉलेट की जानकारी प्राप्त करने की अनुमति देते हैं?",
|
||||
"bchange53": "हमेशा अपनी मित्र सूची को सभी ऐप्स द्वारा स्वचालित रूप से पुनर्प्राप्त करने की अनुमति दें",
|
||||
"bchange54": "क्या आप इस एप्लिकेशन को अपनी मित्र सूची तक पहुंचने की अनुमति देते हैं?"
|
||||
"bchange54": "क्या आप इस एप्लिकेशन को अपनी मित्र सूची तक पहुंचने की अनुमति देते हैं?",
|
||||
"bchange55": "क्या आप इस एप्लिकेशन को यह कमांड भेजने की अनुमति देते हैं?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "डाटा प्रबंधन",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "Za slanje promjena ne zaboravite kliknuti 'Ažuriraj profil'",
|
||||
"bchange52": "Dajete li ovoj aplikaciji dopuštenje da dobije podatke o vašem novčaniku?",
|
||||
"bchange53": "Uvijek dopusti da sve aplikacije automatski dohvate tvoj popis prijatelja",
|
||||
"bchange54": "Dajete li ovoj aplikaciji dopuštenje za pristup vašem popisu prijatelja?"
|
||||
"bchange54": "Dajete li ovoj aplikaciji dopuštenje za pristup vašem popisu prijatelja?",
|
||||
"bchange55": "Dajete li ovoj aplikaciji dopuštenje da pošalje ovu naredbu?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Upravljanje podacima",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "A módosítások elküldéséhez ne felejtsen el a 'Profil frissítése' gombra kattintani",
|
||||
"bchange52": "Engedélyt ad ennek az alkalmazásnak a pénztárca adatainak lekérésére?",
|
||||
"bchange53": "Mindig engedélyezze, hogy az összes alkalmazás automatikusan lekérje a barátlistáját",
|
||||
"bchange54": "Engedélyt ad ennek az alkalmazásnak, hogy hozzáférjen a barátlistájához?"
|
||||
"bchange54": "Engedélyt ad ennek az alkalmazásnak, hogy hozzáférjen a barátlistájához?",
|
||||
"bchange55": "Engedélyt ad ennek az alkalmazásnak, hogy elküldje ezt a parancsot?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Adatkezelés",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "Per inviare le modifiche non dimenticare di fare clic su 'Aggiorna profilo'",
|
||||
"bchange52": "Concedi a questa applicazione il permesso di ottenere informazioni sul tuo portafoglio?",
|
||||
"bchange53": "Consenti sempre che la tua lista amici venga recuperata automaticamente da tutte le app",
|
||||
"bchange54": "Concedi a questa applicazione il permesso di accedere alla tua lista di amici?"
|
||||
"bchange54": "Concedi a questa applicazione il permesso di accedere alla tua lista di amici?",
|
||||
"bchange55": "Concedi a questa applicazione il permesso di inviare questo comando?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Gestione dati",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "変更を送信するには、[プロフィールを更新] をクリックすることを忘れないでください。",
|
||||
"bchange52": "ウォレット情報を取得する許可をこのアプリケーションに与えますか?",
|
||||
"bchange53": "すべてのアプリによる友達リストの自動取得を常に許可します",
|
||||
"bchange54": "このアプリケーションに友達リストへのアクセスを許可しますか?"
|
||||
"bchange54": "このアプリケーションに友達リストへのアクセスを許可しますか?",
|
||||
"bchange55": "このアプリケーションにこのコマンドを送信する許可を与えますか?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "データ管理",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "변경 사항을 제출하려면 '프로필 업데이트'를 클릭하는 것을 잊지 마세요.",
|
||||
"bchange52": "이 애플리케이션에 지갑 정보를 얻을 수 있는 권한을 부여하시겠습니까?",
|
||||
"bchange53": "항상 모든 앱에서 친구 목록을 자동으로 검색하도록 허용",
|
||||
"bchange54": "이 애플리케이션에 친구 목록에 접근할 수 있는 권한을 부여하시겠습니까?"
|
||||
"bchange54": "이 애플리케이션에 친구 목록에 접근할 수 있는 권한을 부여하시겠습니까?",
|
||||
"bchange55": "이 애플리케이션이 이 명령을 보내도록 허락하시겠습니까?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "데이터 관리",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "Vergeet niet te klikken op 'Profiel bijwerken' om de wijziging door te voeren.",
|
||||
"bchange52": "Geeft U deze applicatie toelating om uw portefeuille-info op te vragen?",
|
||||
"bchange53": "Maak de vriendenlijst automatisch opvraagbaar voor alle apps",
|
||||
"bchange54": "Geeft U deze applicatie toegang tot uw vriendenlijst?"
|
||||
"bchange54": "Geeft U deze applicatie toegang tot uw vriendenlijst?",
|
||||
"bchange55": "Geeft U deze applicatie toelating om dit commando te verzenden?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Data-beheer",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "For å sende inn endringene, ikke glem å klikke på 'Oppdater profil'",
|
||||
"bchange52": "Gir du dette programmet tillatelse til å få lommebokinformasjon?",
|
||||
"bchange53": "La alltid vennelisten din hentes automatisk av alle apper",
|
||||
"bchange54": "Gir du dette programmet tillatelse til å få tilgang til vennelisten din?"
|
||||
"bchange54": "Gir du dette programmet tillatelse til å få tilgang til vennelisten din?",
|
||||
"bchange55": "Gir du denne applikasjonen tillatelse til å sende denne kommandoen?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Data-administrasjon",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "Aby przesłać zmiany, nie zapomnij kliknąć 'Aktualizuj profil'",
|
||||
"bchange52": "Czy dajesz tej aplikacji pozwolenie na uzyskanie informacji o Twoim portfelu?",
|
||||
"bchange53": "Zawsze zezwalaj na automatyczne pobieranie listy znajomych przez wszystkie aplikacje",
|
||||
"bchange54": "Czy dajesz tej aplikacji uprawnienia dostępu do listy znajomych?"
|
||||
"bchange54": "Czy dajesz tej aplikacji uprawnienia dostępu do listy znajomych?",
|
||||
"bchange55": "Czy dajesz tej aplikacji pozwolenie na wysłanie tego polecenia?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Zarządzanie danymi",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "Para enviar as alterações não esqueça de clicar em 'Atualizar perfil'",
|
||||
"bchange52": "Você dá permissão a este aplicativo para obter informações da sua carteira?",
|
||||
"bchange53": "Sempre permita que sua lista de amigos seja recuperada automaticamente por todos os aplicativos",
|
||||
"bchange54": "Você dá permissão a este aplicativo para acessar sua lista de amigos?"
|
||||
"bchange54": "Você dá permissão a este aplicativo para acessar sua lista de amigos?",
|
||||
"bchange55": "Você dá permissão a este aplicativo para enviar este comando?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Gerenciamento de Dados",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "Pentru a trimite modificările nu uitați să faceți clic pe Actualizați profilul",
|
||||
"bchange52": "Dați această aplicație permisiunea de a obține informațiile despre portofel?",
|
||||
"bchange53": "Permiteți întotdeauna ca lista de prieteni să fie preluată automat de toate aplicațiile",
|
||||
"bchange54": "Acordați acestei aplicații permisiunea de a vă accesa lista de prieteni?"
|
||||
"bchange54": "Acordați acestei aplicații permisiunea de a vă accesa lista de prieteni?",
|
||||
"bchange55": "Oferiți acestei aplicații permisiunea de a trimite această comandă?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Gestionare date",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "Da biste podneli promene, ne zaboravite da kliknete na 'Ažuriraj profil'",
|
||||
"bchange52": "Da li ovoj aplikaciji dajete dozvolu da dobije informacije o vašem novčaniku?",
|
||||
"bchange53": "Uvek dozvoli da sve aplikacije automatski preuzimaju listu prijatelja",
|
||||
"bchange54": "Da li ovoj aplikaciji dajete dozvolu da pristupi vašoj listi prijatelja?"
|
||||
"bchange54": "Da li ovoj aplikaciji dajete dozvolu da pristupi vašoj listi prijatelja?",
|
||||
"bchange55": "Da li ovoj aplikaciji dajete dozvolu da pošalje ovu komandu?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Upravljanje podacima",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "Чтобы отправить изменения, не забудьте нажать Обновить профиль",
|
||||
"bchange52": "Разрешаете ли вы этому приложению получать информацию о вашем кошельке?",
|
||||
"bchange53": "Всегда разрешайте всем приложениям автоматически получать список друзей",
|
||||
"bchange54": "Разрешаете ли вы этому приложению доступ к вашему списку друзей?"
|
||||
"bchange54": "Разрешаете ли вы этому приложению доступ к вашему списку друзей?",
|
||||
"bchange55": "Даете ли вы этому приложению разрешение на отправку этой команды?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Управление данными",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "To submit the changes don't forget to click on 'Update profile'",
|
||||
"bchange52": "Do you give this application permission to get your wallet information?",
|
||||
"bchange53": "Always allow your friends list to be retrieved automatically by all apps",
|
||||
"bchange54": "Do you give this application permission to access your friends list?"
|
||||
"bchange54": "Do you give this application permission to access your friends list?",
|
||||
"bchange55": "Do you give this application permission to send this command?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Data Management",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "要提交更改,请不要忘记单击“更新个人资料”",
|
||||
"bchange52": "您是否授予此应用程序获取您的钱包信息的权限?",
|
||||
"bchange53": "始终允许所有应用自动检索您的好友列表",
|
||||
"bchange54": "您是否授予此应用程序访问您的好友列表的权限?"
|
||||
"bchange54": "您是否授予此应用程序访问您的好友列表的权限?",
|
||||
"bchange55": "您是否授予此应用程序发送此命令?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "资料管理",
|
||||
|
@ -742,7 +742,8 @@
|
||||
"bchange51": "要提交更改,請不要忘記點擊「更新個人資料」",
|
||||
"bchange52": "您是否授予此應用程式取得您的錢包資訊的權限?",
|
||||
"bchange53": "始終允許所有應用程式自動檢索您的好友清單",
|
||||
"bchange54": "您是否授予此應用程式存取您的好友清單的權限?"
|
||||
"bchange54": "您是否授予此應用程式存取您的好友清單的權限?",
|
||||
"bchange55": "您是否授予此應用程式發送此指令?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "資料管理",
|
||||
|
@ -111,3 +111,6 @@ export const GET_FRIENDS_LIST = 'GET_FRIENDS_LIST'
|
||||
|
||||
// OPEN_PROFILE
|
||||
export const OPEN_PROFILE = 'OPEN_PROFILE'
|
||||
|
||||
// ADMIN_ACTION
|
||||
export const ADMIN_ACTION = 'ADMIN_ACTION'
|
||||
|
@ -180,36 +180,36 @@ class WebBrowser extends LitElement {
|
||||
|
||||
render() {
|
||||
return html`
|
||||
<div id="websitesWrapper" style="width:auto; padding:10px; background: var(--white);">
|
||||
<div class="layout horizontal center">
|
||||
<div class="address-bar">
|
||||
<mwc-button @click=${() => this.goBack()} title="${translate('general.back')}" class="address-bar-button">
|
||||
<div id="websitesWrapper" style="width:auto; padding:10px; background: var(--white);">
|
||||
<div class="layout horizontal center">
|
||||
<div class="address-bar">
|
||||
<mwc-button @click=${() => this.goBack()} title="${translate('general.back')}" class="address-bar-button">
|
||||
<mwc-icon>arrow_back_ios</mwc-icon>
|
||||
</mwc-button>
|
||||
<mwc-button @click=${() => this.goForward()} title="${translate('browserpage.bchange1')}" class="address-bar-button">
|
||||
<mwc-button @click=${() => this.goForward()} title="${translate('browserpage.bchange1')}" class="address-bar-button">
|
||||
<mwc-icon>arrow_forward_ios</mwc-icon>
|
||||
</mwc-button>
|
||||
<mwc-button @click=${() => this.refresh()} title="${translate('browserpage.bchange2')}" class="address-bar-button">
|
||||
<mwc-button @click=${() => this.refresh()} title="${translate('browserpage.bchange2')}" class="address-bar-button">
|
||||
<mwc-icon>refresh</mwc-icon>
|
||||
</mwc-button>
|
||||
<mwc-button @click=${() => this.goBackToList()} title="${translate('browserpage.bchange3')}" class="address-bar-button">
|
||||
<mwc-button @click=${() => this.goBackToList()} title="${translate('browserpage.bchange3')}" class="address-bar-button">
|
||||
<mwc-icon>home</mwc-icon>
|
||||
</mwc-button>
|
||||
<input @keydown=${this._handleKeyDown} style="width: 550px; color: var(--black);" id="address" type="text" value="${this.displayUrl}"></input>
|
||||
${this.renderFullScreen()}
|
||||
<mwc-button @click=${() => this.delete()} title="${translate('browserpage.bchange4')} ${this.service} ${this.name} ${translate('browserpage.bchange5')}" class="address-bar-button float-right">
|
||||
<input @keydown=${this._handleKeyDown} style="width: 550px; color: var(--black);" id="address" type="text" value="${this.displayUrl}"></input>
|
||||
${this.renderFullScreen()}
|
||||
<mwc-button @click=${() => this.delete()} title="${translate('browserpage.bchange4')} ${this.service} ${this.name} ${translate('browserpage.bchange5')}" class="address-bar-button float-right">
|
||||
<mwc-icon>delete</mwc-icon>
|
||||
</mwc-button>
|
||||
${this.renderBlockUnblockButton()}
|
||||
${this.renderFollowUnfollowButton()}
|
||||
</div>
|
||||
<div class="iframe-container">
|
||||
<iframe id="browser-iframe" src="${this.url}" sandbox="allow-scripts allow-same-origin allow-forms allow-downloads allow-modals" allow="fullscreen">
|
||||
<span style="color: var(--black);">${translate('browserpage.bchange6')}</span>
|
||||
</iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
${this.renderBlockUnblockButton()}
|
||||
${this.renderFollowUnfollowButton()}
|
||||
</div>
|
||||
<div class="iframe-container">
|
||||
<iframe id="browser-iframe" src="${this.url}" sandbox="allow-scripts allow-same-origin allow-forms allow-downloads allow-modals" allow="fullscreen">
|
||||
<span style="color: var(--black);">${translate('browserpage.bchange6')}</span>
|
||||
</iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`
|
||||
}
|
||||
|
||||
@ -286,6 +286,52 @@ class WebBrowser extends LitElement {
|
||||
}
|
||||
}
|
||||
|
||||
case actions.ADMIN_ACTION: {
|
||||
let type = data.type;
|
||||
let res1 = await showModalAndWait(
|
||||
actions.ADMIN_ACTION,
|
||||
{
|
||||
service: this.service,
|
||||
name: this.name,
|
||||
type: type
|
||||
}
|
||||
);
|
||||
if (res1 && res1.action === 'accept') {
|
||||
try {
|
||||
// Determine the API endpoint based on the type
|
||||
let apiEndpoint = '';
|
||||
switch (type.toLowerCase()) {
|
||||
case 'stop':
|
||||
apiEndpoint = '/admin/stop';
|
||||
break;
|
||||
case 'restart':
|
||||
apiEndpoint = '/admin/restart';
|
||||
break;
|
||||
case 'bootstrap':
|
||||
apiEndpoint = '/admin/bootstrap';
|
||||
break;
|
||||
default:
|
||||
throw new Error(`Unknown admin action type: ${type}`);
|
||||
}
|
||||
// Send the API request
|
||||
let apiResponse = await parentEpml.request('apiCall', {
|
||||
type: 'api',
|
||||
url: `${apiEndpoint}?apiKey=${this.getApiKey()}`
|
||||
});
|
||||
response = JSON.stringify(apiResponse);
|
||||
} catch (error) {
|
||||
const data = {};
|
||||
data['error'] = `Error performing admin action: ${error.message}`;
|
||||
response = JSON.stringify(data);
|
||||
}
|
||||
} else {
|
||||
const data = {};
|
||||
data['error'] = `User declined admin action: ${type}`;
|
||||
response = JSON.stringify(data);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case actions.ENCRYPT_DATA: {
|
||||
try {
|
||||
let dataSentBack = {}
|
||||
@ -1898,13 +1944,13 @@ class WebBrowser extends LitElement {
|
||||
const requiredFields = ['coin','type']
|
||||
const missingFields = []
|
||||
|
||||
requiredFields.forEach((field) => {
|
||||
requiredFields.forEach((field) => {
|
||||
if (!data[field]) {
|
||||
missingFields.push(field)
|
||||
}
|
||||
})
|
||||
|
||||
if (missingFields.length > 0) {
|
||||
if (missingFields.length > 0) {
|
||||
const missingFieldsString = missingFields.join(', ')
|
||||
const errorMsg = `Missing fields: ${missingFieldsString}`
|
||||
let data = {}
|
||||
@ -3801,6 +3847,17 @@ async function showModalAndWait(type, data) {
|
||||
</div>
|
||||
` : ''}
|
||||
|
||||
${type === actions.ADMIN_ACTION ? `
|
||||
<div class="modal-subcontainer">
|
||||
<p class="modal-paragraph">
|
||||
${data.type === 'stop' ? get("nodepage.nchange31") : ''}
|
||||
${data.type === 'restart' ? get("nodepage.nchange33") : ''}
|
||||
${data.type === 'bootstrap' ? get("tour.tour18") : ''}
|
||||
</p>
|
||||
<p class="modal-paragraph">${get("browserpage.bchange55")}</p>
|
||||
</div>
|
||||
` : ''}
|
||||
|
||||
${type === actions.PUBLISH_MULTIPLE_QDN_RESOURCES ? `
|
||||
<div class="modal-subcontainer">
|
||||
<p class="modal-paragraph">${get("browserpage.bchange19")}</p>
|
||||
|
Loading…
Reference in New Issue
Block a user