redmine_apijs 6.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +2 -0
- data/LICENSE +339 -0
- data/README +74 -0
- data/app/controllers/apijs_controller.rb +326 -0
- data/app/views/application/_browser.html.erb +45 -0
- data/app/views/attachments/_links.html.erb +146 -0
- data/app/views/settings/_apijs.html.erb +256 -0
- data/assets/fonts/apijs/config.json +130 -0
- data/assets/fonts/apijs/fontello.woff +0 -0
- data/assets/fonts/apijs/fontello.woff2 +0 -0
- data/assets/images/apijs/player-black-200.png +0 -0
- data/assets/images/apijs/player-black-400.png +0 -0
- data/assets/images/apijs/player-white-200.png +0 -0
- data/assets/images/apijs/player-white-400.png +0 -0
- data/assets/images/apijs/tv.gif +0 -0
- data/assets/javascripts/apijs-redmine.min.js +7 -0
- data/assets/javascripts/apijs.min.js +7 -0
- data/assets/javascripts/app.js +224 -0
- data/assets/stylesheets/apijs-print.min.css +8 -0
- data/assets/stylesheets/apijs-redmine-rtl.min.css +8 -0
- data/assets/stylesheets/apijs-redmine.min.css +8 -0
- data/assets/stylesheets/apijs-screen-rtl.min.css +8 -0
- data/assets/stylesheets/apijs-screen.min.css +8 -0
- data/assets/stylesheets/styles.css +73 -0
- data/config/locales/cs.yml +30 -0
- data/config/locales/de.yml +30 -0
- data/config/locales/en.yml +30 -0
- data/config/locales/es.yml +30 -0
- data/config/locales/fr.yml +30 -0
- data/config/locales/it.yml +30 -0
- data/config/locales/ja.yml +30 -0
- data/config/locales/nl.yml +30 -0
- data/config/locales/pl.yml +30 -0
- data/config/locales/pt-BR.yml +30 -0
- data/config/locales/pt.yml +30 -0
- data/config/locales/ru.yml +30 -0
- data/config/locales/sk.yml +30 -0
- data/config/locales/tr.yml +30 -0
- data/config/locales/zh.yml +30 -0
- data/config/routes.rb +86 -0
- data/init.rb +69 -0
- data/lib/apijs_attachment.rb +252 -0
- data/lib/apijs_const.rb +35 -0
- data/lib/apijs_files.rb +55 -0
- data/lib/image.py +201 -0
- data/lib/redmine_apijs.rb +46 -0
- data/lib/useragentparser.rb +175 -0
- data/lib/video.py +78 -0
- data/redmine_apijs.gemspec +69 -0
- metadata +94 -0
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,7 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
3
|
+
* https://www.luigifab.fr/redmine/apijs
|
4
|
+
* This program is free software, you can redistribute it or modify
|
5
|
+
* it under the terms of the GNU General Public License (GPL).
|
6
|
+
*/
|
7
|
+
var apijsRedmine=new function(){"use strict";this.start=function(){var e=apijs.i18n.data;e.cs[252]="Chyba",e.de[250]="Eine Datei löschen",e.de[251]="Sind Sie sicher, dass Sie diese Datei löschen möchten?[br]Achtung, diese Aktion ist unrückgängig.",e.de[252]="Fehler",e.de[253]="Sie verfügen nicht über die notwendigen Rechte um diese Operation durchzuführen, bitte [a §]aktualisieren Sie die Seite[/a].",e.de[254]="Es tut uns leid, diese Datei existiert nicht mehr, bitte [a §]aktualisieren Sie die Seite[/a].",e.de[255]="Eine Beschreibung bearbeiten",e.de[256]="Bitte geben Sie weiter unten die neue Beschreibung für diese Datei an. Um die Beschreibung zu löschen lassen Sie das Feld leer.",e.en[250]="Remove a file",e.en[251]="Are you sure you want to remove this file?[br]Be careful, you can't cancel this operation.",e.en[252]="Error",e.en[253]="You are not authorized to perform this operation, please [a §]refresh the page[/a].",e.en[254]="Sorry, the file no longer exists, please [a §]refresh the page[/a].",e.en[255]="Edit a description",e.en[256]="Enter below the new description for the file. To remove the description, leave the field empty.",e.es[250]="Borrar un archivo",e.es[251]="¿Está usted seguro-a de que desea eliminar este archivo?[br]Atención, pues no podrá cancelar esta operación.",e.es[253]="No está autorizado-a para llevar a cabo esta operación, por favor [a §]actualice la página[/a].",e.es[254]="Disculpe, pero el archivo ya no existe, por favor [a §]actualice la página[/a].",e.es[255]="Editar una descripción",e.es[256]="Introduzca a continuación la nueva descripción para el archivo. Para eliminar la descripción, deje el campo en blanco.",e.fr[250]="Supprimer un fichier",e.fr[251]="Êtes-vous certain(e) de vouloir supprimer ce fichier ?[br]Attention, cette opération n'est pas annulable.",e.fr[252]="Erreur",e.fr[253]="Vous n'êtes pas autorisé(e) à effectuer cette opération, veuillez [a §]actualiser la page[/a].",e.fr[254]="Désolé, le fichier n'existe plus, veuillez [a §]actualiser la page[/a].",e.fr[255]="Modifier une description",e.fr[256]="Saisissez ci-dessous la nouvelle description pour ce fichier. Pour supprimer la description, laissez le champ vide.",e.it[250]="Eliminare un file",e.it[251]="Sicuri di voler eliminare il file?[br]Attenzione, questa operazione non può essere annullata.",e.it[252]="Errore",e.it[253]="Non siete autorizzati a eseguire questa operazione, vi preghiamo di [a §]ricaricare la pagina[/a].",e.it[254]="Spiacenti, il file non esiste più, vi preghiamo di [a §]ricaricare la pagina[/a].",e.it[255]="Modificare una descrizione",e.it[256]="Inserire qui sotto la nuova descrizione del file. Per cancellare la descrizione, lasciate lo spazio vuoto.",e.ja[250]="ファイルを削除",e.ja[252]="エラー",e.nl[252]="Fout",e.pl[252]="Błąd",e.pt[250]="Suprimir um ficheiro",e.pt[251]="Tem certeza de que quer suprimir este ficheiro?[br]Atenção, não pode cancelar esta operação.",e.pt[252]="Erro",e.pt[253]="Não é autorizado(a) para efetuar esta operação, por favor [a §]atualize a página[/a].",e.pt[254]="Lamento, o ficheiro já não existe, por favor [a §]atualize a página[/a].",e.pt[255]="Modificar uma descrição",e.pt[256]="Digite abaixo a nova descrição para este ficheiro. Para suprimir a descrição, deixe o campo vazio.",e.ru[250]="Удалить файл",e.ru[251]="Вы уверены, что хотите удалить этот файл?[br]Осторожно, вы не сможете отменить эту операцию.",e.ru[252]="Ошибка",e.ru[253]="Вы не авторизованы для выполнения этой операции, пожалуйста [a §]обновите страницу[/a].",e.ru[254]="Извините, но файл не существует, пожалуйста [a §]обновите страницу[/a].",e.ru[255]="Редактировать описание",e.ru[256]="Ниже введите новое описание файла. Оставьте поле пустым, чтобы удалить описание.",e.tr[252]="Hata",e.zh[252]="错误信息"},this.error=function(e){"string"==typeof e||e.indexOf("<!DOCTYPE")<0?apijs.dialog.dialogInformation(apijs.i18n.translate(252),e,"error"):(apijs.dialog.remove("lock"),self.location.reload())},this.editAttachment=function(e,t,i){var a=apijs.i18n.translate(255),r=document.getElementById("attachmentId"+e).querySelector("span.description")?document.getElementById("attachmentId"+e).querySelector("span.description").firstChild.nodeValue.trim():((r=document.createElement("span")).setAttribute("class","description"),r.appendChild(document.createTextNode("")),document.getElementById("attachmentId"+e).querySelector("dd").appendChild(r),""),n='[p][label for="apijsRedText"]'+apijs.i18n.translate(256)+'[/label][/p][input type="text" name="description" value="'+r+'" spellcheck="true" id="apijsRedText"]';apijs.dialog.dialogFormOptions(a,n,t,apijsRedmine.actionEditAttachment,[e,t,i],"editattachment"),apijs.dialog.t1.querySelector("input").select()},this.actionEditAttachment=function(e,t){if("boolean"==typeof e)return!0;var a;"string"==typeof e&&((a=new XMLHttpRequest).open("POST",t[1]+"?id="+t[0]+"&isAjax=true",!0),a.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),a.setRequestHeader("X-CSRF-Token",t[2]),a.onreadystatechange=function(){var e,t,i;4===a.readyState&&([0,200].has(a.status)?0===a.responseText.indexOf("attachmentId")?(e=a.responseText.slice(0,a.responseText.indexOf(":")),t=a.responseText.slice(a.responseText.indexOf(":")+1),(i=document.getElementById(e).querySelector("span.description").firstChild).replaceData(0,i.length,t),(i=document.getElementById(e).querySelector("input"))&&(i.value=i.value.slice(0,i.value.lastIndexOf("|")+1)+t),(i=document.getElementById(e).querySelector("img"))&&i.setAttribute("alt",t),apijs.dialog.actionClose()):apijsRedmine.error(a.responseText):apijsRedmine.error(a.status))},a.send("description="+encodeURIComponent(document.getElementById("apijsRedText").value)))},this.removeAttachment=function(e,t,i){apijs.dialog.dialogConfirmation(apijs.i18n.translate(250),apijs.i18n.translate(251),apijsRedmine.actionRemoveAttachment,[e,t,i])},this.actionRemoveAttachment=function(e){var a=new XMLHttpRequest;a.open("GET",e[1]+"?id="+e[0]+"&isAjax=true",!0),a.setRequestHeader("X-CSRF-Token",e[2]),a.onreadystatechange=function(){var e,t,i;4===a.readyState&&([0,200].has(a.status)?0===a.responseText.indexOf("attachmentId")?(t=(e=document.getElementById(a.responseText)).parentNode,i=0,t.removeChild(e),t.querySelectorAll("dl, li").length<1?t.parentNode.removeChild(t):t.querySelectorAll("a[id][type]").forEach(function(e){e.setAttribute("id",e.getAttribute("id").slice(0,e.getAttribute("id").lastIndexOf(".")+1)+i++)}),apijs.dialog.actionClose()):apijsRedmine.error(a.responseText):apijsRedmine.error(a.status))},a.send()}};"function"==typeof self.addEventListener&&self.addEventListener("apijsload",apijsRedmine.start.bind(apijsRedmine));
|
@@ -0,0 +1,7 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright 2008-2020 | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
3
|
+
* https://www.luigifab.fr/apijs - 6.3.0
|
4
|
+
* This program is free software, you can redistribute it or modify
|
5
|
+
* it under the terms of the GNU General Public License (GPL).
|
6
|
+
*/
|
7
|
+
Array.prototype.has||(Array.prototype.has=function(t,e){if(t instanceof Array){for(e in t)if(t.hasOwnProperty(e)&&this.has(t[e]))return!0}else for(e in this)if(this.hasOwnProperty(e)&&this[e]===t)return!0;return!1}),window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=function(t,e,i){for(e=e||window,i=0;i<this.length;i++)t.call(e,this[i],i,this)});var apijs=new function(){"use strict";this.core={},this.version=630,this.config={lang:"auto",debug:!1,dialog:{closeOnClick:!1,restrictNavigation:!0,player:!0},slideshow:{ids:"slideshow",anchor:!0},upload:{tokenName:"X-CSRF-Token",tokenValue:null}},this.start=function(){var t;if(console.info("APIJS "+this.version.toString().split("").join(".")+" - hello - 1 MB/Mo = 1024 kB/ko"),document.getElementById("oldBrowser"))throw new Error("APIJS canceled, #oldBrowser detected!");(t=document.querySelector('link[href*="apijs/fontello.woff2"]'))&&t.getAttribute("href").indexOf("?a3ab5acff3")<0&&console.error("APIJS warning invalid cachekey for link:fontello.woff2?x, it must be ?a3ab5acff3"),(t=document.querySelector('script[src*="apijs.min.js?v="]'))&&t.getAttribute("src").indexOf("?v="+this.version)<0&&console.error("APIJS warning invalid cachekey for script:apijs.min.js?x, it must be ?v="+this.version),this.i18n=new this.core.i18n,this.player=null,this.dialog=new this.core.dialog,this.upload=new this.core.upload,this.slideshow=new this.core.slideshow,self.dispatchEvent(new CustomEvent("apijsbeforeload")),this.i18n.init(),this.slideshow.init(),self.addEventListener("popstate",apijs.slideshow.onPopState),self.addEventListener("hashchange",apijs.slideshow.onPopState),this.config.debug&&(console.info("APIJS available languages: "+Object.keys(this.i18n.data).join(" ")),console.info("APIJS language loaded: "+this.config.lang),console.info("APIJS successfully started")),self.dispatchEvent(new CustomEvent("apijsload"))},this.formatNumber=function(e,t){var i,s="number"==typeof t?t:!1===t?0:2;try{i=new Intl.NumberFormat(this.config.lang,{minimumFractionDigits:s,maximumFractionDigits:s}).format(e)}catch(t){i=e.toFixed(s)}return"number"==typeof t?i:i.replace(/[.,]00$/,"")},this.toArray=function(t){return Array.prototype.slice.call(t,0)},this.log=function(t){this.config.debug&&console.info("APIJS "+t)},this.openTab=function(t){t.preventDefault(),0<this.href.length&&self.open(this.href)},this.html=function(t){return 0===t.indexOf("#")||0===t.indexOf(this.config.slideshow.ids)?document.getElementById(t.replace("#","apijs")):this.dialog.t1?this.dialog.t1.querySelector(t):null},this.serialize=function(t,i){var s=[];return i="string"==typeof i?i:"",Array.prototype.forEach.call(t.elements,function(t){if(t.name&&!t.disabled&&!["file","reset","submit","button"].has(t.type)&&0===t.name.indexOf(i))if("select-multiple"===t.type)for(var e=0;e<t.options.length;e++)t.options[e].selected&&s.push(encodeURIComponent(t.name)+"="+encodeURIComponent(t.options[e].value));else["checkbox","radio"].has(t.type)&&!t.checked||s.push(encodeURIComponent(t.name)+"="+encodeURIComponent(t.value))}),s.join("&")}};"function"==typeof self.addEventListener&&self.addEventListener("load",apijs.start.bind(apijs)),apijs.core.i18n=function(){"use strict";this.data={cs:{103:"Zrušit",104:"Potvrzení",105:"Zavřít",106:"Předchozí",107:"Další",142:"předchozí/další"},de:{103:"Abbrechen",104:"Bestätigen",105:"Schließen",106:"Zurück",107:"Weiter",108:"Datei wählen",109:"Dateien wählen",124:"Verarbeitung läuft...",141:"anfang/ende",142:"zurück/weiter",143:"wiedergabe/pause",144:"rückwärts/vorwärts",145:"leiser/lauter",146:"stumm",147:"vollbild",148:"beenden",149:"Ende",150:"Esc",161:"Alle Dateien wurden akzeptiert.",162:"Akzeptiertes Dateiformat: §.",163:"Akzeptiertes Dateiformate: § und §.",164:"Maximale Größe: § MB.",167:"Unerlaubtes Format",168:"Format zu gross",169:"Leere Datei",181:"§% - § kB/s - Noch § Minuten",182:"§% - § kB/s - Noch § Minute",183:"§% - § kB/s - Noch § Sekunden",185:"§% - bis § kB/s in § Minuten",186:"§% - bis § kB/s in § Minute",187:"§% - bis § kB/s in § Sekunden",188:"§% - bis § kB/s",191:"Abbrechen",192:"Sind Sie sicher? [span]Ja[/span] - Nein",193:"Es ist ein unerwarteter Fehler aufgetreten... Bitte versuchen Sie es noch einmal.",194:"Es ist ein Fehler beim Senden.",195:"Es ist ein Fehler bei der Verarbeitung.",196:"Wir laden Sie ein es erneut zu [a §]versuchen[/a]."},en:{102:"Ok",103:"Cancel",104:"Confirm",105:"Close",106:"Previous",107:"Next",108:"Choose a file",109:"Choose one or multiple files",124:"Operation in progress...",125:"Upload in progress...",126:"Processing file in progress...",131:"video",132:"video track",133:"audio track",134:"subtitles",135:"off",141:"start/end",142:"previous/next",143:"play/pause",144:"backward/forward",145:"decrease/increase the volume",146:"mute",147:"full screen",148:"quit",149:"End",150:"Escape",161:"All files are accepted.",162:"Accepted file format: §.",163:"Accepted file formats: § and §.",164:"Maximum size: § MB.",165:"Maximum size by file: § MB.|Total maximum size: § MB.",166:"§ MB",167:"Format not allowed",168:"Size too large",169:"File empty",181:"§% - § kB/s - § minutes left",182:"§% - § kB/s - § minute left",183:"§% - § kB/s - § seconds left",184:"§% - § kB/s",185:"§% - at § kB/s in § minutes",186:"§% - at § kB/s in § minute",187:"§% - at § kB/s in § seconds",188:"§% - at § kB/s",191:"Interrupt",192:"Are you sure? [span]Yes[/span] - No",193:"It seems that an unlikely mistake just happened... Please try again.",194:"An error occurred while sending.",195:"An error occurred while processing.",196:"We invite you to [a §]try again[/a]."},es:{102:"Aceptar",103:"Cancelar",104:"Confirmar",105:"Cerrar",106:"Anterior",107:"Siguiente",108:"Elegir un fichero",109:"Elegir uno o varios ficheros",124:"Operación en curso...",125:"Envío en progreso...",126:"Tratamiento en curso...",132:"pista video",133:"pista audio",134:"subtítulos",141:"inicio/fin",142:"anterior/siguiente",143:"reproducir/pausa",144:"retroceder/avanzar",145:"bajar/subir el volumen",146:"silenciar",147:"pantalla completa",148:"salir",149:"Fin",150:"Esc",161:"Se aceptan todos los archivos.",162:"Formato de archivo aceptado: §.",163:"Formatos de archivos aceptados: § y §.",164:"Tamaño máximo: § MB.",165:"Tamaño máximo por fichero: § Mo.|Tamaño máximo total: § Mo.",167:"Formato no autorizado",168:"Tamaño demasiado importante",169:"Fichero vacío",181:"§% - § kB/s - § minutos restantes",182:"§% - § kB/s - § minuto restantes",183:"§% - § kB/s - § segundos restantes",185:"§% - a § kB/s en § minutos",186:"§% - a § kB/s en § minuto",187:"§% - a § kB/s en § segundos",188:"§% - a § kB/s",191:"Interrumpir",192:"¿Está seguro(a)? [span]Sí[/span] - No",193:"Parece que un error improbable acabo de ocurrir... Por favor, inténtelo de nuevo.",194:"Se produjo un error durante el envío.",195:"Se produjo un error durante el procesamiento.",196:"Le invitamos a [a §]intentar de nuevo[/a]."},fr:{103:"Annuler",104:"Valider",105:"Fermer",106:"Précédent",107:"Suivant",108:"Choisir un fichier",109:"Choisir un ou plusieurs fichiers",124:"Opération en cours...",125:"Envoi en cours...",126:"Traitement en cours...",131:"vidéo",132:"piste vidéo",133:"piste audio",134:"sous-titres",141:"début/fin",142:"précédent/suivant",143:"lecture/pause",144:"reculer/avancer",145:"baisser/augmenter le volume",146:"couper le son",147:"plein écran",148:"quitter",149:"Fin",150:"Échap",161:"Tous les fichiers sont acceptés.",162:"Format de fichier accepté : §.",163:"Formats de fichier acceptés : § et §.",164:"Taille maximale : § Mo.",165:"Taille maximale par fichier : § Mo.|Taille maximale total : § Mo.",166:"§ Mo",167:"Format non autorisé",168:"Taille trop importante",169:"Fichier vide",181:"§% - § ko/s - § minutes restantes",182:"§% - § ko/s - § minute restante",183:"§% - § ko/s - § secondes restantes",184:"§% - § ko/s",185:"§% - à § ko/s en § minutes",186:"§% - à § ko/s en § minute",187:"§% - à § ko/s en § secondes",188:"§% - à § ko/s",191:"Interrompre",192:"Êtes-vous sûr(e) ? [span]Oui[/span] - Non",193:"Il semblerait qu'une erreur improbable vient de se produire... Veuillez réessayer.",194:"Une erreur est survenue lors de l'envoi.",195:"Une erreur est survenue lors du traitement.",196:"Nous vous invitons à [a §]réessayer[/a]."},it:{103:"Annulla",104:"Conferma",105:"Chiudi",106:"Precedente",107:"Successivo",108:"Scegli un file",109:"Scegli uno o più file",124:"Operazione in corso...",125:"Invio in corso...",126:"Trattamento in corso...",141:"inizio/fine",142:"precedente/successivo",143:"riproduci/pausa",144:"indietro/avanti",145:"abbassare/aumentare il volume",146:"muto",147:"schermo intero",148:"esci",149:"Fine",150:"Esc",161:"Tutti i file sono accettati.",162:"Formato del file accettato: §.",163:"Formati accettati: § et §.",164:"Dimensione massima: § MB.",167:"Formato non autorizzato",168:"Dimensione troppo importante",169:"File vuoto",181:"§% - § kB/s - § minuti rimanenti",182:"§% - § kB/s - § minuto rimanente",183:"§% - § kB/s - § secondi rimanenti",185:"§% - a § kB/s in § minuti",186:"§% - a § kB/s in § minuto",187:"§% - a § kB/s in § secondi",188:"§% - a § kB/s",191:"Interrompere",192:"Sei sicuro? [span]Si[/span] - No",193:"Sembra che un errore inaspettato si sia verificato... Riprova.",194:"Un errore si è verificato durante l'invio.",195:"Un errore si è verificato durante il trattamento.",196:"Vi invitiamo a [a §]riprovare[/a]."},ja:{103:"キャンセル",104:"承認",105:"閉じる",106:"前へ",107:"次へ",142:"前へ/次へ",166:"§ Mo",184:"§% - § Ko/s",192:"よろしいですか?[span]はい[/span] - いいえ"},nl:{103:"Annuleren",104:"Bevestigen",105:"Sluiten",106:"Vorige",107:"Volgende",142:"vorige/volgende"},pl:{103:"Anuluj",104:"Potwierdź",105:"Zamknij",106:"Poprzedni",107:"Następne",142:"poprzedni/następne"},pt:{103:"Cancelar",104:"Confirmar",105:"Fechar",106:"Anterior",107:"Seguinte",108:"Escolher um ficheiro",109:"Escolher um ou vários ficheiros",124:"Operação em processo...",125:"Envio em processo...",126:"Tratamento em processo...",131:"vídeo",141:"início/fim",142:"anterior/seguinte",143:"reprodução/pausa",144:"recuar/avançar",145:"subir/baixar o volume",146:"silenciar",147:"ecrã completo",148:"sair",149:"Fim",150:"Esc",161:"Todos os ficheiros foram aceites.",162:"Formato do ficheiro aceite: §.",163:"Formatos de ficheiro aceites: § e §.",164:"Tamanho máximo: § MB.",181:"§% - § kB/s - § minutos restantes",182:"§% - § kB/s - § minuto restantes",183:"§% - § kB/s - § segundos restantes",185:"§% - § kB/s em § minutos",186:"§% - § kB/s em § minuto",187:"§% - § kB/s em § segundos",188:"§% - § kB/s",192:"Tem a certeza? [span]Sim[/span] - Não",193:"Parece ter acontecido um erro imprevisto. Por favor, tente novamente.",194:"Ocorreu um erro ao enviar.",195:"Ocorreu um erro ao processar.",196:"Convidamo-lo a [a §]tentar novamente[/a]."},ptbr:{107:"Próximo",124:"Operação em andamento...",125:"Envio em andamento...",126:"Tratamento em andamento...",142:"anterior/próximo"},ru:{102:"Ок",103:"Отмена",104:"Подтвердить",105:"Закрыть",106:"Предыдущий",107:"Следующий",108:"Выберите файл",124:"Операция в процессе...",141:"начало/конец",142:"предыдущий/следующий",143:"воспроизведение/пауза",144:"назад/вперед",145:"понизить/повысить громкость",146:"отключить звук",147:"на весь экран",148:"выйти",161:"Все файлы приняты.",162:"Формат файла: §.",163:"Форматы файлов: § и §.",164:"Максимальный размер: § MB.",181:"§% - § kB/s - осталось § минут",182:"§% - § kB/s - осталось § минут",183:"§% - § kB/s - осталось § секунд",185:"§% - § kB/s за § минут",186:"§% - § kB/s за § минут",187:"§% - § kB/s за § секунд",188:"§% - § kB/s",192:"Вы уверены? [span]Да[/span] - нет",193:"Кажется произошла не предусмотренная ошибка... Попробуйте еще раз.",194:"Возникла ошибка при отправке файла.",195:"Возникла ошибка при обработке файла."},sk:{103:"Zrušiť",105:"Zavrieť",106:"Predchádzajúci",107:"Ďalší",142:"predchádzajúci/ďalší"},tr:{103:"İptal",104:"Onayla",105:"Kapat",106:"Önceki",107:"Sonraki",142:"önceki/sonraki",192:"Emin misiniz ? [span]Evet[/span] - Hayır"},zh:{103:"取消",104:"确认",105:"关闭",106:"前页",107:"下一步",142:"前页/下一步",192:"您确定吗?[span]是[/span] - 否"}},this.init=function(){var t,e=apijs.config.lang,i=document.querySelector("html");-1<e.indexOf("auto")&&(i.getAttribute("xml:lang")?t=i.getAttribute("xml:lang").slice(0,2):i.getAttribute("lang")&&(t=i.getAttribute("lang").slice(0,2)),"string"==typeof t&&this.data.hasOwnProperty(t)&&(apijs.config.lang=t)),this.data.hasOwnProperty(apijs.config.lang)||(apijs.config.lang="en")},this.translate=function(t){var e=apijs.config.lang,i=1,s="";if("string"!=typeof this.data[e][t])if(3<e.length&&"string"==typeof this.data[e.slice(0,2)][t])e=e.slice(0,2);else{if("en"===e||"string"!=typeof this.data.en[t])return t;e="en"}return 1<arguments.length?(this.data[e][t].split("§").forEach(function(t){s+=i<this.length?t+this[i++]:t},arguments),s):this.data[e][t]},this.translateNode=function(){return document.createTextNode(this.translate.apply(this,arguments))},this.changeLang=function(t){if("string"==typeof t){if(this.data.hasOwnProperty(t))return apijs.config.lang=t,!0;if(-1<t.indexOf("auto"))return apijs.config.lang=t,this.init(),!0}return!1}},apijs.core.select=function(){"use strict";this.init=function(){}},apijs.core.player=function(){"use strict";this.root=null,this.video=null,this.stalled=!1,this.subload=!1,this.init=function(t,e,i){var s,a;if(this.root=t,(this.video=e).removeAttribute("controls"),e.onloadedmetadata=function(t){if(this.stalled=!1,this.onTimeupdate(t),this.onProgress(t),"object"==typeof this.video.videoTracks){if(1<(a=this.video.videoTracks).length){for(s=0;s<a.length;s++)this.createOption("videotrack",s,""===a[s].label?a[s].language:a[s].language+" - "+a[s].label);this.updateSelect("videotrack",a.length,0)}this.html(".tracks.videotrack select").selectedIndex=0}if("object"==typeof this.video.audioTracks){if(1<(a=this.video.audioTracks).length){for(s=0;s<a.length;s++)this.createOption("audiotrack",s,""===a[s].label?a[s].language:a[s].language+" - "+a[s].label);this.updateSelect("audiotrack",a.length,0)}this.html(".tracks.audiotrack select").selectedIndex=0}}.bind(this),e.onstalled=function(t){this.stalled=!0,this.onWaiting(t)}.bind(this),e.onplaying=apijs.player.onPlay.bind(this),e.onpause=apijs.player.onPlay.bind(this),e.onended=apijs.player.onEnded.bind(this),e.onprogress=apijs.player.onProgress.bind(this),e.ontimeupdate=apijs.player.onTimeupdate.bind(this),e.onseeking=apijs.player.onTimeupdate.bind(this),e.onseeked=apijs.player.onWaiting.bind(this),e.onwaiting=apijs.player.onWaiting.bind(this),e.onloadstart=apijs.player.onWaiting.bind(this),e.oncanplay=apijs.player.onWaiting.bind(this),e.onvolumechange=apijs.player.actionVolume.bind(this),i.indexOf("m3u")<0)return this.createTags([i]);var n=new XMLHttpRequest;return n.open("GET",i,!0),n.onreadystatechange=function(){4===n.readyState&&(self.dispatchEvent(new CustomEvent("apijsajaxresponse",{detail:{from:"apijs.player.init",xhr:n}})),[0,200].has(n.status)?apijs.player.createTags(n.responseText.trim().split("\n")):apijs.dialog.onMediaLoad({type:"error"}))},n.send(),this},this.createTags=function(t){var e,i,s;if(!(0<this.video.childNodes.length)){for(this.vv=0,this.tt=0;"string"==typeof(e=t.shift());)0===e.indexOf("#APIJS#attr")?(i=e.split("|"),this.video.setAttribute(i[1],i[2])):0===e.indexOf("#APIJS#track|subtitles")?(i=e.split("|"),this.createOption("text",this.tt++,i[3]+" - "+i[2]),(s=document.createElement("track")).setAttribute("kind",i[1]),s.setAttribute("label",i[2]),s.setAttribute("srclang",i[3]),s.setAttribute("src",i[4]),s.onload=function(t){"showing"===t.target.track.mode&&(apijs.log("player:track:onload"),this.onWaiting(t),this.subload=!1)}.bind(this),s.onerror=function(t){"showing"===t.target.track.mode&&(apijs.log("player:track:onerror"),this.onWaiting(t),this.subload=!1)}.bind(this),this.video.appendChild(s)):0===e.indexOf("#EXTINF")?i=e.replace(/#EXTINF:[0-9]+,/,""):5<e.length&&"#"!==e[0]&&(this.createOption("video",this.vv++,"string"==typeof i?i:this.vv),(s=document.createElement("source")).setAttribute("src",e),s.onerror=apijs.dialog.onMediaLoad,this.video.appendChild(s));return this.updateSelect("video",this.vv,0),"object"==typeof this.video.textTracks&&this.updateSelect("text",this.tt,1,!0),this}},this.createOption=function(t,e,i){var s=document.createElement("option");s.setAttribute("value",e),s.appendChild(document.createTextNode(i)),this.html(".tracks."+t+" select").appendChild(s)},this.updateSelect=function(t,e,i,s){(!0===s?0:1)<e?(this.html(".tracks."+t).removeAttribute("style"),this.html(".tracks."+t+" em").textContent="("+e+")",this.html(".tracks."+t+" select").setAttribute("size",e<10?e+i:10)):(this.html(".tracks."+t).setAttribute("style","display:none;"),this.html(".tracks."+t+" select").innerHTML="")},this.html=function(t){return this.root.querySelector(t)},this.onTimeupdate=function(t){var e,i,s,a,n="00:00",o=this.video.currentTime;0<o&&(e=Math.floor(o/3600),i=Math.floor(o%3600/60),(s=Math.floor(o%60))<10&&(s="0"+s),i<10&&(i="0"+i),n=(e=0<e?e+":":"")+i+":"+s),(a=this.video.duration)===1/0||isNaN(a)||(e=Math.floor(a/3600),i=Math.floor(a%3600/60),(s=Math.floor(a%60))<10&&(s="0"+s),i<10&&(i="0"+i),n+=" / "+(e=0<e?e+":":"")+i+":"+s,this.html("svg.bar rect").style.width=o/a*100+"%"),this.html("span.time").textContent=n,this.stalled&&!this.subload&&(this.stalled=!1,this.onWaiting(t))},this.onProgress=function(){var t,e,i=this.html("svg.bar"),s=this.video,a=s.buffered.length;if(0<a&&s.duration!==1/0&&!isNaN(s.duration))for(i.querySelectorAll(".buffer").forEach(function(t){t.parentNode.removeChild(t)});0<a--;)(t=document.createElement("rect")).setAttribute("class","buffer"),99.8<(e=(s.buffered.end(a)-s.buffered.start(a))/s.duration*100)?t.setAttribute("style","left:0%; width:100%;"):t.setAttribute("style","left:"+s.buffered.start(a)/s.duration*100+"%; width:"+e+"%;"),i.appendChild(t)},this.onPlay=function(){this.video.paused?(this.html("span.play").textContent="",apijs.dialog.remove("playing")):(this.html("span.play").textContent="",apijs.dialog.add("playing"))},this.onEnded=function(){this.html("span.play").textContent="⟲"},this.onWaiting=function(t){apijs.log("player:onWaiting:"+t.type+" stalled:"+this.stalled+"/subload:"+this.subload),apijs.dialog[["loadstart","waiting","seeking","stalled"].has(t.type)?"add":"remove"]("loading")},this.actionVolume=function(t){var e=this.html("svg.vol"),i=e.offsetWidth,s=0,a=this.video;if(3!==a.networkState){if("object"==typeof t&&!isNaN(t.clientX)){for(;s+=e.offsetLeft,e=e.offsetParent;);s=(s=100*(t.clientX-s)/i/100)<=.1?0:.92<s?1:s,a.volume=s,a.muted=!1}this.html("svg.vol rect").style.width=a.muted?0:100*a.volume+"%"}},this.actionPosition=function(t){var e=this.html("svg.bar"),i=e.offsetWidth,s=0,a=this.video;if(3!==a.networkState&&"object"==typeof t&&a.duration!==1/0&&!isNaN(a.duration)){for(;s+=e.offsetLeft,e=e.offsetParent;);s=(s=a.duration*(t.clientX-s)*100/i/100)<=1?0:s,a.currentTime=s}},this.actionVideo=function(t){this.html("svg.bar rect").style.width="0",this.html("svg.bar").querySelectorAll(".buffer").forEach(function(t){t.parentNode.removeChild(t)}),this.html("span.play").textContent="",this.updateSelect("videotrack",0,0),this.updateSelect("audiotrack",0,0),this.video.src=this.video.querySelectorAll("source")[t.value].src,t.blur()},this.actionVideotrack=function(t){for(var e=this.video.videoTracks,i=0;i<e.length;i++)e[i].enabled=i==t.value;t.blur()},this.actionAudiotrack=function(t){for(var e=this.video.audioTracks,i=0;i<e.length;i++)e[i].enabled=i==t.value;t.blur()},this.actionText=function(t){for(var e=this.video.textTracks,i=0;i<e.length;i++)e[i].mode=i==t.value?"showing":"hidden";t.blur(),this.subload=!0}},apijs.core.dialog=function(){"use strict";this.klass=[],this.height=0,this.scroll=0,this.callback=null,this.args=null,this.xhr=null,this.ft=/information|confirmation|options|upload|progress|waiting|photo|video|iframe|ajax|start|ready|end|reduce|mobile|tiny|fullscreen/g,this.ti="a,area,button,input,textarea,select,object,iframe",this.ns="http://www.w3.org/2000/svg",this.media=null,this.t0=null,this.t1=null,this.t2=null,this.a=null,this.b=null,this.c=null,this.d=null,this.dialogInformation=function(t,e,i){return"string"==typeof t&&"string"==typeof e?this.init("information",i).htmlParent().htmlContent(t,e).htmlBtnOk().show("button.confirm"):(console.error("apijs.dialog.dialogInformation invalid arguments",apijs.toArray(arguments)),!1)},this.dialogConfirmation=function(t,e,i,s,a){return"string"==typeof t&&"string"==typeof e&&"function"==typeof i?(this.callback=i,this.args=s,this.init("confirmation",a).htmlParent().htmlContent(t,e).htmlBtnConfirm("button","apijs.dialog.actionConfirm();").show("button.confirm")):(console.error("apijs.dialog.dialogConfirmation invalid arguments",apijs.toArray(arguments)),!1)},this.dialogFormOptions=function(t,e,i,s,a,n){return"string"==typeof t&&"string"==typeof e&&"string"==typeof i&&"function"==typeof s?(this.callback=s,this.args=a,this.init("options",n).htmlParent(i,"apijs.dialog.actionConfirm();").htmlContent(t,e).htmlBtnConfirm("submit").show(!0)):(console.error("apijs.dialog.dialogFormOptions invalid arguments",apijs.toArray(arguments)),!1)},this.dialogFormUpload=function(t,e,i,s,a,n){return"string"==typeof t&&"string"==typeof e&&"string"==typeof i&&"string"==typeof s?this.init("upload",n).htmlParent(i,"apijs.upload.actionConfirm();").htmlContent(t,e).htmlUpload(s,"boolean"==typeof a&&a).htmlBtnConfirm("submit").show("button.browse"):(console.error("apijs.dialog.dialogFormUpload invalid arguments",apijs.toArray(arguments)),!1)},this.dialogProgress=function(t,e,i){return"string"==typeof t&&"string"==typeof e?this.init("progress",i).htmlParent().htmlContent(t,e).htmlSvgProgress().show():(console.error("apijs.dialog.dialogProgress invalid arguments",apijs.toArray(arguments)),!1)},this.dialogWaiting=function(t,e,i){return"string"==typeof t&&"string"==typeof e?this.init("waiting",i).htmlParent().htmlContent(t,e).htmlSvgLoader(!1).show():(console.error("apijs.dialog.dialogWaiting invalid arguments",apijs.toArray(arguments)),!1)},this.dialogPhoto=function(t,e,i,s,a){var n="string"==typeof a;return a=n?"notransition slideshow loading "+a:"notransition loading","string"==typeof t&&"string"==typeof e&&"string"==typeof i&&"string"==typeof s?this.init("photo",a).htmlParent().htmlMedia(t,e,i,s).htmlHelp(n,!1).htmlBtnClose().htmlBtnNavigation().htmlSvgLoader().show():(console.error("apijs.dialog.dialogPhoto invalid arguments",apijs.toArray(arguments)),!1)},this.dialogVideo=function(t,e,i,s,a){var n="string"==typeof a;return a=n?"notransition slideshow loading "+a:"notransition loading","string"==typeof t&&"string"==typeof e&&"string"==typeof i&&"string"==typeof s?this.init("video",a).htmlParent().htmlMedia(t,e,i,s).htmlHelp(n,t.indexOf("iframe")<0).htmlBtnClose().htmlBtnNavigation().htmlSvgLoader().show():(console.error("apijs.dialog.dialogVideo invalid arguments",apijs.toArray(arguments)),!1)},this.dialogIframe=function(t,e,i){return"string"==typeof t&&"boolean"==typeof e?this.init("iframe","string"==typeof i?i+" loading":"loading",!e).htmlParent().htmlIframe(t).htmlBtnClose(e).htmlSvgLoader(!1).show():(console.error("apijs.dialog.dialogIframe invalid arguments",apijs.toArray(arguments)),!1)},this.dialogAjax=function(t,e,i,s,a){if("string"!=typeof t||"boolean"!=typeof e||"function"!=typeof i)return console.error("apijs.dialog.dialogAjax invalid arguments",apijs.toArray(arguments)),!1;this.callback=i,this.args=s;var n=this.init("ajax","string"==typeof a?a+" loading":"loading",!e).htmlParent().htmlBtnClose(e).htmlSvgLoader(!1).show();return this.xhr=new XMLHttpRequest,this.xhr.open("GET",t,!0),this.xhr.onreadystatechange=function(){4===this.xhr.readyState&&"function"==typeof this.callback&&(this.callback(this.xhr,this.args),this.remove("loading"))}.bind(apijs.dialog),this.xhr.send(),n},this.update=function(){return this.has("start","ready","end")&&(apijs.dialog.t1&&apijs.dialog.t1.setAttribute("class",this.klass.join(" ")),apijs.dialog.t2&&apijs.dialog.t2.setAttribute("class",this.klass.join(" "))),this},this.add=function(){return Array.prototype.forEach.call(arguments,function(t){"string"!=typeof t&&console.error("apijs.dialog.add argument is not a string",t),this.klass.indexOf(t)<0&&this.klass.push(t)},this),this.update()},this.remove=function(){return Array.prototype.forEach.call(arguments,function(t){"string"!=typeof t&&console.error("apijs.dialog.remove argument is not a string",t),-1<this.klass.indexOf(t)&&this.klass.splice(this.klass.indexOf(t),1)},this),this.update()},this.toggle=function(t,e){return"string"==typeof t&&"string"==typeof e||console.error("apijs.dialog.toggle argument is not a string",t,e),this.has(t)&&this.remove(t),this.has(e)||this.add(e),this.update()},this.has=function(){return this.klass.has(apijs.toArray(arguments))},this.actionClose=function(t){new RegExp("#("+apijs.config.slideshow.ids+"[-\\.]\\d+[-\\.]\\d+)").test(self.location.href)&&apijs.config.slideshow.anchor&&"function"==typeof history.pushState&&history.pushState({},"",self.location.href.slice(0,self.location.href.indexOf("#"))),"object"==typeof t?"apijsDialog"!==t.target.getAttribute("id")||apijs.dialog.has("photo","video","progress","waiting","lock")||apijs.dialog.clear(!0):this.t1&&this.clear(!0)},this.onCloseBrowser=function(t){if(apijs.dialog.has("progress","waiting","lock"))return t.preventDefault(),t.stopPropagation(),t.m=apijs.i18n.translate(124),t.returnValue=t.m,t.m},this.onResizeBrowser=function(){var t=document.querySelector("body").clientWidth<=(apijs.dialog.has("photo","video")?900:460);apijs.dialog[t?"add":"remove"]("mobile"),t=document.querySelector("body").clientWidth<=300,apijs.dialog[t?"add":"remove"]("tiny")},this.onScrollBrowser=function(t){var e=t.target,i=!1;if(apijs.dialog.has("slideshow")&&!apijs.dialog.has("playing")&&!["OPTION","SELECT"].has(e.nodeName)&&["DOMMouseScroll","mousewheel","panleft","panright"].has(t.type))e=(new Date).getTime()/1e3,(apijs.dialog.scroll<1||e>1+apijs.dialog.scroll)&&(apijs.dialog.scroll=e,i=0<t.detail||t.wheelDelta<0,apijs.slideshow["panleft"===t.type||i?"actionNext":"actionPrev"]());else{if("OPTION"===e.nodeName)e=e.parentNode;else if(!["TEXTAREA","SELECT"].has(e.nodeName))for(;!0!==i&&"HTML"!==e.nodeName;)e.classList.contains("scrollable")?i=!0:e=e.parentNode;if("HTML"!==e.nodeName&&((i=0<t.detail||t.wheelDelta<0)&&e.scrollTop<e.scrollHeight-e.offsetHeight||!i&&0<e.scrollTop))return}apijs.dialog.stopScroll(t)},this.onScrollIframe=function(t){for(var e,i=t.target;i.parentNode;)i=i.parentNode;((e=0<t.detail||t.wheelDelta<0)&&i.defaultView.innerHeight+i.defaultView.pageYOffset>i.body.offsetHeight||!e&&i.defaultView.pageYOffset<=0)&&apijs.dialog.stopScroll(t)},this.onKey=function(t){var e=apijs.dialog,i=e.media,s=e.t1;isNaN(t)||(t={keyCode:t,ctrlKey:!1,altKey:!1,preventDefault:function(){}}),e.has("progress","waiting","lock")?(t.ctrlKey&&[81,87,82,115,116].has(t.keyCode)||t.altKey&&115===t.keyCode||[27,116].has(t.keyCode))&&t.preventDefault():e.has("photo","video")&&122===t.keyCode?(t.preventDefault(),document.webkitFullscreenElement?document.webkitCancelFullScreen():document.mozFullScreenElement?document.mozCancelFullScreen():document.fullscreenElement?document.cancelFullScreen():s.webkitRequestFullscreen?s.webkitRequestFullscreen():s.requestFullscreen?s.requestFullscreen():s.mozRequestFullScreen&&s.mozRequestFullScreen()):e.has("slideshow")?27===t.keyCode?(t.preventDefault(),e.actionClose()):35===t.keyCode?(t.preventDefault(),apijs.slideshow.actionLast()):36===t.keyCode?(t.preventDefault(),apijs.slideshow.actionFirst()):37===t.keyCode?(t.preventDefault(),apijs.slideshow.actionPrev()):39===t.keyCode&&(t.preventDefault(),apijs.slideshow.actionNext()):27===t.keyCode&&(t.preventDefault(),e.actionClose()),e.has("video")&&(32===t.keyCode||80===t.keyCode?(t.preventDefault(),3!==i.networkState&&(i.ended||i.paused?i.play():i.pause())):38===t.keyCode||33===t.keyCode?(t.preventDefault(),3!==i.networkState&&i.duration!==1/0&&i.currentTime<i.duration-10&&(i.currentTime+=10)):40===t.keyCode||34===t.keyCode?(t.preventDefault(),3!==i.networkState&&i.duration!==1/0&&(10<i.currentTime?i.currentTime-=10:i.currentTime=0)):107===t.keyCode?(t.preventDefault(),3!==i.networkState&&(i.muted&&(i.muted=!1),i.volume<.8?i.volume+=.2:i.volume=1)):109===t.keyCode?(t.preventDefault(),3!==i.networkState&&(i.muted&&(i.muted=!1),.21<i.volume?i.volume-=.2:i.volume=0)):77===t.keyCode&&(t.preventDefault(),3!==i.networkState&&(i.muted=!i.muted))),[32,33,34,35,36,38,40].has(t.keyCode)&&(t.target&&["INPUT","TEXTAREA","OPTION","SELECT"].has(t.target.nodeName)||e.stopScroll(t))},this.stopScroll=function(t){t.preventDefault(),"function"==typeof t.stopPropagation&&t.stopPropagation()},this.actionConfirm=function(){return this.has("options")&&!0!==this.callback(!1,this.args)||(this.add("lock","loading"),this.htmlSvgLoader(!1),apijs.html("div.btns").style.visibility="hidden",apijs.html("div.bbcode").style.visibility="hidden",self.setTimeout(function(){this.t2&&"FORM"===this.t2.nodeName?this.callback(this.t2.getAttribute("action"),this.args):this.t2&&this.callback(this.args)}.bind(this),12)),!1},this.onIframeLoad=function(t){t.removeAttribute("class"),apijs.dialog.remove("loading"),t.contentWindow.addEventListener("DOMMouseScroll",window.parent.apijs.dialog.onScrollIframe,{passive:!1}),t.contentWindow.addEventListener("mousewheel",window.parent.apijs.dialog.onScrollIframe,{passive:!1}),t.contentWindow.addEventListener("touchmove",window.parent.apijs.dialog.onScrollIframe,{passive:!1})},this.onMediaLoad=function(t){var e,i,s,a=apijs.dialog,n=a.media;t&&t.target&&(e=t.target.currentSrc||t.target.src,apijs.log("dialog:onMediaLoad:"+t.type+" "+(e?e.slice(e.lastIndexOf("/")+1):""))),n&&["load","durationchange"].has(t.type)?(a.remove("loading","error"),n.style.visibility="visible",n.hasAttribute("src")||"IMG"!==n.nodeName||n.setAttribute("src",n.imageLoader.src)):n&&"error"===t.type&&(a.toggle("loading","error"),n.removeAttribute("style"),(i=apijs.html(".tracks.video select"))&&t&&t.target&&0<(s=i.querySelectorAll("option")).length&&0<i.value.length&&(s[i.value].setAttribute("disabled","disabled"),i.selectedIndex+=1,"VIDEO"===t.target.nodeName&&""!==i.value&&apijs.player.actionVideo(i)))},this.onFullscreen=function(t){var e=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement;t&&apijs.log("dialog:onFullscreen:"+(e?"in":"out")),apijs.dialog[e?"add":"remove"]("fullscreen")},this.init=function(t,e,i){return"string"==typeof e?e=0<(e=e.replace(this.ft,"").trim()).length?!0===i?e+" lock":e:!0===i?"lock":null:!0===i&&(e="lock"),this.t0&&this.clear(!1),this.klass.push("start"),this.klass.push(t),self.matchMedia("prefers-reduced-motion:reduce").matches&&this.klass.push("reduce"),"string"==typeof e&&(this.klass=this.klass.concat(e.split(" "))),this.t0=document.createDocumentFragment(),document.addEventListener("keydown",apijs.dialog.onKey),self.addEventListener("beforeunload",apijs.dialog.onCloseBrowser),self.addEventListener("DOMMouseScroll",apijs.dialog.onScrollBrowser,{passive:!1}),self.addEventListener("mousewheel",apijs.dialog.onScrollBrowser,{passive:!1}),self.addEventListener("touchmove",apijs.dialog.onScrollBrowser,{passive:!1}),self.addEventListener("resize",apijs.dialog.onResizeBrowser),apijs.config.dialog.restrictNavigation&&document.querySelectorAll(this.ti).forEach(function(t){t.setAttribute("tabindex","-1")}),this},this.show=function(t){return this.onResizeBrowser(),this.onFullscreen(),0<this.height&&!this.has("photo","video")&&(this.t2.style.minHeight=this.height+"px"),apijs.html("#Dialog")?(this.toggle("start","ready"),this.t1=apijs.html("#Dialog"),this.t1.appendChild(this.t0.firstChild.firstChild),this.t1.setAttribute("class",this.t2.getAttribute("class"))):this.has("notransition")?(this.toggle("start","ready"),document.querySelector("body").appendChild(this.t0)):(document.querySelector("body").appendChild(this.t0),self.setTimeout(function(){apijs.dialog.toggle("start","ready")},12)),apijs.config.dialog.closeOnClick&&!this.has("progress","waiting","lock")&&document.addEventListener("click",apijs.dialog.actionClose),this.has("photo","video")&&(document.webkitFullscreenEnabled?document.addEventListener("webkitfullscreenchange",apijs.dialog.onFullscreen):document.fullscreenEnabled?document.addEventListener("fullscreenchange",apijs.dialog.onFullscreen):document.mozFullScreenEnabled&&document.addEventListener("mozfullscreenchange",apijs.dialog.onFullscreen)),!0===t?self.setTimeout(function(){apijs.html("input:not([readonly]),textarea:not([readonly]),select:not([disabled])").focus()},12):"string"==typeof t&&apijs.html(t).focus(),!0},this.clear=function(t){return t&&this.xhr&&(this.callback=null,this.xhr.abort()),document.removeEventListener("keydown",apijs.dialog.onKey),self.removeEventListener("beforeunload",apijs.dialog.onCloseBrowser),self.removeEventListener("DOMMouseScroll",apijs.dialog.onScrollBrowser,{passive:!1}),self.removeEventListener("mousewheel",apijs.dialog.onScrollBrowser,{passive:!1}),self.removeEventListener("touchmove",apijs.dialog.onScrollBrowser,{passive:!1}),self.removeEventListener("resize",apijs.dialog.onResizeBrowser),apijs.config.dialog.restrictNavigation&&document.querySelectorAll(this.ti).forEach(function(t){t.removeAttribute("tabindex")}),apijs.config.dialog.closeOnClick&&document.removeEventListener("click",apijs.dialog.actionClose),this.has("photo","video")&&(document.webkitFullscreenEnabled?document.removeEventListener("webkitfullscreenchange",apijs.dialog.onFullscreen):document.fullscreenEnabled?document.removeEventListener("fullscreenchange",apijs.dialog.onFullscreen):document.mozFullScreenEnabled&&document.removeEventListener("mozfullscreenchange",apijs.dialog.onFullscreen)),this.has("video")&&(this.media.ondurationchange=null,this.media.onerror=null),this.has("photo","video")||(this.height=parseFloat(self.getComputedStyle(this.t2).height)),t?(this.toggle("ready","end"),document.querySelector("body").removeChild(this.t1)):this.t1.removeChild(this.t2),this.klass=[],t&&(this.height=0,this.scroll=0,this.callback=null,this.args=null,this.xhr=null),this.media=null,this.t0=null,this.t1=null,this.t2=null,this.a=null,this.b=null,this.c=null,!(this.d=null)},this.htmlParent=function(t,e){return this.t1=document.createElement("div"),this.t1.setAttribute("id","apijsDialog"),"string"==typeof t?(this.t2=document.createElement("form"),this.t2.setAttribute("action",t),this.t2.setAttribute("method","post"),this.t2.setAttribute("enctype","multipart/form-data"),this.t2.setAttribute("onsubmit","return "+e)):this.t2=document.createElement("div"),this.t2.setAttribute("id","apijsBox"),this.t1.appendChild(this.t2),this.t0.appendChild(this.t1),this},this.htmlContent=function(t,e){return 0<t.length&&(this.a=document.createElement("h1"),this.a.innerHTML=t.replace(/</g,"<").replace(/>/g,">").replace(/\[/g,"<").replace(/]/g,">"),this.t2.appendChild(this.a)),0<e.length&&(this.a=document.createElement("div"),this.a.setAttribute("class","bbcode"),"["!==e[0]&&(e="[p]"+e+"[/p]"),this.a.innerHTML=e.replace(/</g,"<").replace(/>/g,">").replace(/\[/g,"<").replace(/]/g,">"),this.a.querySelectorAll("a.popup").forEach(function(t){t.addEventListener("click",apijs.openTab)}),this.t2.appendChild(this.a)),this},this.htmlBtnOk=function(){return this.a=document.createElement("div"),this.a.setAttribute("class","btns"),this.b=document.createElement("button"),this.b.setAttribute("type","button"),this.b.setAttribute("class","confirm"),this.b.setAttribute("onclick","apijs.dialog.actionClose();"),this.c=document.createElement("span"),this.c.appendChild(apijs.i18n.translateNode(102)),this.b.appendChild(this.c),this.a.appendChild(this.b),this.t2.appendChild(this.a),this},this.htmlBtnConfirm=function(t,e){return this.a=document.createElement("div"),this.a.setAttribute("class","btns"),this.b=document.createElement("button"),this.b.setAttribute("type",t),this.b.setAttribute("class","confirm"),"submit"!==t&&this.b.setAttribute("onclick",e),this.c=document.createElement("span"),this.c.appendChild(apijs.i18n.translateNode(104)),this.b.appendChild(this.c),this.a.appendChild(this.b),this.b=document.createElement("button"),this.b.setAttribute("type","button"),this.b.setAttribute("class","cancel"),this.b.setAttribute("onclick","apijs.dialog.actionClose();"),this.c=document.createElement("span"),this.c.appendChild(apijs.i18n.translateNode(103)),this.b.appendChild(this.c),this.a.appendChild(this.b),this.t2.appendChild(this.a),this},this.htmlBtnNavigation=function(){return this.a=document.createElement("div"),this.a.setAttribute("class","navigation noplaying"),this.b=document.createElement("button"),this.b.setAttribute("type","button"),this.b.setAttribute("disabled","disabled"),this.b.setAttribute("class","prev"),this.b.setAttribute("id","apijsPrev"),this.b.setAttribute("onclick","apijs.slideshow.actionPrev();"),this.c=document.createElement("span"),this.b.appendChild(this.c),this.a.appendChild(this.b),this.b=document.createElement("button"),this.b.setAttribute("type","button"),this.b.setAttribute("disabled","disabled"),this.b.setAttribute("class","next"),this.b.setAttribute("id","apijsNext"),this.b.setAttribute("onclick","apijs.slideshow.actionNext();"),this.c=document.createElement("span"),this.b.appendChild(this.c),this.a.appendChild(this.b),this.t2.appendChild(this.a),this},this.htmlBtnClose=function(t){return!1===t||(this.a=document.createElement("div"),this.a.setAttribute("class","close noplaying"),this.b=document.createElement("button"),this.b.setAttribute("type","button"),this.b.setAttribute("class","close"),this.b.setAttribute("onclick","apijs.dialog.actionClose();"),this.c=document.createElement("span"),this.c.appendChild(apijs.i18n.translateNode(105)),this.b.appendChild(this.c),this.a.appendChild(this.b),this.t2.appendChild(this.a)),this},this.htmlUpload=function(t,e){return this.a=document.createElement("div"),this.a.setAttribute("class","btns upload"),this.b=document.createElement("input"),this.b.setAttribute("type","file"),this.b.setAttribute("name",t),this.b.setAttribute("id","apijsFile"),e&&this.b.setAttribute("multiple","multiple"),this.b.setAttribute("onchange","apijs.upload.actionChoose(this);"),this.a.appendChild(this.b),this.b=document.createElement("button"),this.b.setAttribute("type","button"),this.b.setAttribute("class","browse"),this.b.setAttribute("onclick","this.previousSibling.click();"),this.c=document.createElement("span"),this.c.appendChild(apijs.i18n.translateNode(e?109:108)),this.b.appendChild(this.c),this.a.appendChild(this.b),this.b=document.createElement("div"),this.b.setAttribute("class","filenames"),this.a.appendChild(this.b),this.t2.appendChild(this.a),this},this.htmlSvgProgress=function(){return this.a=document.createElement("span"),this.a.setAttribute("class","info"),this.t2.appendChild(this.a),this.a=document.createElement("svg"),this.a.setAttribute("id","apijsProgress"),this.b=document.createElement("rect"),this.b.setAttribute("class","auto"),this.a.appendChild(this.b),this.t2.appendChild(this.a),this},this.htmlSvgLoader=function(t){return this.a=document.createElementNS(this.ns,"svg"),this.a.setAttribute("class","loader"),this.b=document.createElementNS(this.ns,"path"),!1!==t&&this.b.setAttribute("style","opacity:0;"),this.b.setAttribute("d","M75.4 126.63a11.43 11.43 0 0 1-2.1-22.65 40.9 40.9 0 0 0 30.5-30.6 11.4 11.4 0 1 1 22.27 4.87h.02a63.77 63.77 0 0 1-47.8 48.05v-.02a11.38 11.38 0 0 1-2.93.37z"),this.c=document.createElementNS(this.ns,"animateTransform"),this.c.setAttribute("attributeName","transform"),this.c.setAttribute("type","rotate"),this.c.setAttribute("from","0 64 64"),this.c.setAttribute("to","360 64 64"),this.c.setAttribute("dur","5s"),this.c.setAttribute("repeatCount","indefinite"),this.b.appendChild(this.c),this.c=document.createElementNS(this.ns,"animate"),this.c.setAttribute("attributeName","opacity"),this.c.setAttribute("to","1"),this.c.setAttribute("dur","0.01s"),this.c.setAttribute("begin","1s"),this.c.setAttribute("fill","freeze"),!1!==t&&this.b.appendChild(this.c),this.a.appendChild(this.b),this.t2.appendChild(this.a),this},this.htmlSvgPlayer=function(t){return this.a=document.createElement("span"),this.a.setAttribute("class","player noplaying"),this.b=document.createElement("span"),this.b.setAttribute("class","btn play fnt"),this.b.setAttribute("onclick","apijs.dialog.onKey(80);"),this.b.appendChild(document.createTextNode("")),this.a.appendChild(this.b),this.b=document.createElement("span"),this.b.setAttribute("class","svg bar"),this.c=document.createElement("svg"),this.c.setAttribute("class","bar"),this.c.setAttribute("onclick","apijs.player.actionPosition(event);"),this.d=document.createElement("rect"),this.c.appendChild(this.d),this.b.appendChild(this.c),this.a.appendChild(this.b),this.b=document.createElement("span"),this.b.setAttribute("class","time"),this.b.appendChild(document.createTextNode("00:00 / 00:00")),this.a.appendChild(this.b),this.b=document.createElement("span"),this.b.setAttribute("class","svg vol nomobile"),this.c=document.createElement("svg"),this.c.setAttribute("class","vol"),this.c.setAttribute("onclick","apijs.player.actionVolume(event);"),this.d=document.createElement("rect"),this.c.appendChild(this.d),this.b.appendChild(this.c),this.a.appendChild(this.b),this.b=document.createElement("label"),this.b.setAttribute("class","tracks audiotrack"),this.b.setAttribute("style","display:none;"),this.b.appendChild(apijs.i18n.translateNode(133)),this.c=document.createElement("em"),this.c.setAttribute("class","nomobile"),this.b.appendChild(this.c),this.c=document.createElement("select"),this.c.setAttribute("lang","mul"),this.c.setAttribute("onchange","apijs.player.actionAudiotrack(this);"),this.b.appendChild(this.c),this.a.appendChild(this.b),this.b=document.createElement("label"),this.b.setAttribute("class","tracks videotrack"),this.b.setAttribute("style","display:none;"),this.b.appendChild(apijs.i18n.translateNode(132)),this.c=document.createElement("em"),this.c.setAttribute("class","nomobile"),this.b.appendChild(this.c),this.c=document.createElement("select"),this.c.setAttribute("lang","mul"),this.c.setAttribute("onchange","apijs.player.actionVideotrack(this);"),this.b.appendChild(this.c),this.a.appendChild(this.b),this.b=document.createElement("label"),this.b.setAttribute("class","tracks video"),this.b.setAttribute("style","display:none;"),this.b.appendChild(apijs.i18n.translateNode(131)),this.c=document.createElement("em"),this.c.setAttribute("class","nomobile"),this.b.appendChild(this.c),this.c=document.createElement("select"),this.c.setAttribute("lang","mul"),this.c.setAttribute("onchange","apijs.player.actionVideo(this);"),this.b.appendChild(this.c),this.a.appendChild(this.b),this.b=document.createElement("label"),this.b.setAttribute("class","tracks text"),this.b.setAttribute("style","display:none;"),this.b.appendChild(apijs.i18n.translateNode(134)),this.c=document.createElement("em"),this.c.setAttribute("class","nomobile"),this.b.appendChild(this.c),this.c=document.createElement("select"),this.c.setAttribute("lang","mul"),this.c.setAttribute("onchange","apijs.player.actionText(this);"),this.d=document.createElement("option"),this.d.appendChild(apijs.i18n.translateNode(135)),this.c.appendChild(this.d),this.b.appendChild(this.c),this.a.appendChild(this.b),this.b=document.createElement("span"),this.b.setAttribute("class","btn full fnt nomobile"),this.b.setAttribute("onclick","apijs.dialog.onKey(122);"),this.b.appendChild(document.createTextNode("")),this.a.appendChild(this.b),t.appendChild(this.a),this},this.htmlMedia=function(t,e,i,s){var a;return this.a=document.createElement("dl"),this.a.setAttribute("class","media"),this.b=document.createElement("dt"),this.has("photo")?(this.media=document.createElement("img"),this.media.setAttribute("alt",s.replace('"',""))):0<t.indexOf("iframe")?(this.media=document.createElement("iframe"),this.media.setAttribute("type","text/html"),this.media.setAttribute("scrolling","no"),this.media.setAttribute("src",t)):(this.media=document.createElement("video"),this.media.setAttribute("controls","controls"),this.media.setAttribute("preload","metadata"),this.media.setAttribute("onclick","apijs.dialog.onKey(80);")),this.media.setAttribute("id","apijsMedia"),this.b.appendChild(this.media),this.a.appendChild(this.b),this.b=document.createElement("dd"),this.b.setAttribute("class","nomobile noplaying"),"false"===e&&"false"===i||(a=t.slice(t.lastIndexOf("/")+1),this.c=document.createElement("span"),"false"!==e&&"auto"!==e&&"false"!==i?this.c.appendChild(document.createTextNode(e+" ("+i+") ")):"false"!==e&&"auto"!==e?this.c.appendChild(document.createTextNode(e+" ")):"auto"===e&&"false"!==i?this.c.appendChild(document.createTextNode(a+" ("+i+") ")):"auto"===e?this.c.appendChild(document.createTextNode(a+" ")):"false"!==i&&this.c.appendChild(document.createTextNode("("+i+") ")),this.b.appendChild(this.c)),this.b.appendChild(document.createTextNode(s)),this.a.appendChild(this.b),this.t2.appendChild(this.a),this.has("photo")?(this.media.imageLoader=new Image,this.media.imageLoader.src=t,this.media.imageLoader.onload=apijs.dialog.onMediaLoad,this.media.imageLoader.onerror=apijs.dialog.onMediaLoad):0<t.indexOf("iframe")?this.media.onload=apijs.dialog.onMediaLoad:!0===apijs.config.dialog.player?(this.media.setAttribute("class","player"),this.htmlSvgPlayer(this.media.parentNode),apijs.player=new apijs.core.player,apijs.player.init(this.media.parentNode,this.media,t),this.media.ondurationchange=apijs.dialog.onMediaLoad,this.media.onerror=apijs.dialog.onMediaLoad):"function"==typeof apijs.config.dialog.player?apijs.config.dialog.player(this.media,t):(this.c=document.createElement("source"),this.c.setAttribute("src",t),this.c.onerror=apijs.dialog.onMediaLoad,this.media.appendChild(this.c),this.media.ondurationchange=apijs.dialog.onMediaLoad,this.media.onerror=apijs.dialog.onMediaLoad),this},this.htmlHelp=function(t,e){var i,s,a=[t?["start",149,141]:[],t?["left","right",142]:[],e?["bottom","topk",144]:[],e?["minus","plus",145]:[],e?["M",146]:[],e?["P",143]:[],["F11",147],[150,148]];for(this.a=document.createElement("ul"),this.a.setAttribute("class","kbd nomobile nofullscreen");i=a.shift();)if(0<i.length){for(this.b=document.createElement("li");s=i.shift();)0<i.length?(this.c=document.createElement("kbd"),["M","P","F11"].has(s)?this.c.appendChild(document.createTextNode(s)):"string"==typeof s?this.c.setAttribute("class",s):this.c.appendChild(apijs.i18n.translateNode(s)),this.b.appendChild(this.c)):this.b.appendChild(apijs.i18n.translateNode(s));this.a.appendChild(this.b)}return this.t2.appendChild(this.a),this},this.htmlIframe=function(t){return this.a=document.createElement("iframe"),this.a.setAttribute("src",t),this.a.setAttribute("class","loading"),this.a.setAttribute("onload","apijs.dialog.onIframeLoad(this);"),this.t2.appendChild(this.a),this}},apijs.core.slideshow=function(){"use strict";this.current=null,this.init=function(){for(var t,e,i,s=apijs.config.slideshow.ids,a=0;e=apijs.html(s+"."+a);a++){for(i=e.classList.contains("hoverload"),t=0;e=apijs.html(s+"."+a+"."+t);t++)e.addEventListener("click",apijs.slideshow.show),i&&e.addEventListener("mouseover",apijs.slideshow.show);(e=apijs.html(s+"."+a+".99999"))&&e.addEventListener("click",apijs.slideshow.show)}this.onPopState()},this.onPopState=function(){var t;new RegExp("#("+apijs.config.slideshow.ids+"[-\\.]\\d+[-\\.]\\d+)").test(self.location.href)?(t=RegExp.$1.replace(/-/g,"."),apijs.html(t)&&!apijs.dialog.has("slideshow")&&apijs.slideshow.show(t,!1)):apijs.slideshow.current&&apijs.dialog.actionClose()},this.show=function(t,e){var i,s,a,n,o,r,l,h=!1,d={};if("string"==typeof t)h=!0,i=apijs.html(t),d.id=t;else{for(t.preventDefault(),i=t.target;"A"!==i.nodeName;)i=i.parentNode;if("mouseover"===t.type&&i.classList.contains("current"))return!1;d.id=i.getAttribute("id")}return d.prefix=apijs.config.slideshow.ids+"."+d.id.split(".")[1],d.number=parseInt(d.id.split(".")[2],10),d.gallery=apijs.html(d.prefix+".99999"),99999!==d.number&&(r=apijs.html(d.prefix).querySelectorAll("a[id][type]"),l=apijs.html(d.prefix).querySelectorAll("dl"),d.gallery||r.length!==l.length?(r.forEach(function(t){t.classList.remove("current")}),i.setAttribute("class","current")):(l.forEach(function(t){t.classList.remove("current")}),i.parentNode.parentNode.setAttribute("class","current"))),d.gallery?(99999===d.number&&(h=!0,i=d.gallery.hasAttribute("class")?d.gallery.getAttribute("class"):d.prefix+".0",i=apijs.html(i),d.number=parseInt(i.getAttribute("id").split(".")[2],10),d.id=d.id.replace(99999,d.number)),d.config=i.querySelector("input").getAttribute("value").split("|"),0<(s=d.config.shift()).indexOf(";")&&(a=(s=s.split(";"))[1].trim(),s=s[0].trim()),d.gallery.setAttribute("href",i.getAttribute("href")),d.gallery.querySelector("img").setAttribute("src",s),d.gallery.querySelector("img").setAttribute("srcset",a||""),d.gallery.querySelector("img").setAttribute("alt",i.querySelector("img").getAttribute("alt")),d.gallery.setAttribute("class",d.id)):(h=!0,d.config=i.querySelector("input").getAttribute("value").split("|")),d.url=i.getAttribute("href"),d.type=i.getAttribute("type").substr(0,5).replace("image","dialogPhoto").replace("video","dialogVideo"),d.type=0===d.type.indexOf("dialog")?d.type:"dialogPhoto",d.styles=apijs.html(d.prefix).getAttribute("class").replace(/gallery|album/g,"").trim(),h&&(apijs.dialog[d.type](d.url,d.config[0],d.config[1],d.config[2],d.styles),n=apijs.html(d.prefix).querySelectorAll("a[id][type]").length-(d.gallery?2:1),apijs.slideshow.current={number:d.number,first:d.prefix+".0",prev:0<d.number?d.prefix+"."+(d.number-1):null,next:d.number<n?d.prefix+"."+(d.number+1):null,last:d.prefix+"."+n,total:n},apijs.slideshow.current.prev&&apijs.html("#Prev").removeAttribute("disabled"),apijs.slideshow.current.next&&apijs.html("#Next").removeAttribute("disabled"),apijs.config.slideshow.anchor&&"function"==typeof history.pushState&&("boolean"!=typeof e||e)&&(o=0<(o=self.location.href).indexOf("#")?o.slice(0,o.indexOf("#")):o,o+="#"+(d.prefix+"."+(99999===d.number?0:d.number)).replace(/\./g,"-"),history.pushState({},"",o))),h},this.actionFirst=function(){return!!(this.current&&0<this.current.number&&this.current.number<=this.current.total)&&this.show(this.current.first)},this.actionPrev=function(){return!!(this.current&&this.current.prev&&0<this.current.number)&&this.show(this.current.prev)},this.actionNext=function(){return!!(this.current&&this.current.next&&this.current.number<this.current.total)&&this.show(this.current.next)},this.actionLast=function(){return!!(this.current&&0<=this.current.number&&this.current.number<this.current.total)&&this.show(this.current.last)}},apijs.core.upload=function(){"use strict";this.title=null,this.action=null,this.input=null,this.onemax=0,this.allmax=0,this.exts=null,this.callback=null,this.args=null,this.icon=null,this.files=[],this.start=0,this.end=0,this.sendFile=function(t,e,i,s,a,n,o,r){var l=this.sendFiles(t,e,i,s,0,a,n,o,r);return l||console.error("apijs.upload.sendFile invalid arguments",apijs.toArray(arguments)),l},this.sendFiles=function(t,e,i,s,a,n,o,r,l){if(this.files=[],!0!==t&&(this.title=t,this.action=e,this.input=i,this.onemax=s,this.allmax=a,this.exts="string"==typeof n?n.split(","):["*"],this.callback=o,this.args=r,this.icon=l),"string"!=typeof this.title||"string"!=typeof this.action||"string"!=typeof this.input||"number"!=typeof this.onemax||"number"!=typeof this.allmax||"function"!=typeof this.callback)return("number"!=typeof this.allmax||0<this.allmax)&&console.error("apijs.upload.sendFiles invalid arguments",apijs.toArray(arguments)),!1;var h=0<this.allmax,d="*"===this.exts.join()?apijs.i18n.translate(161):1===this.exts.length?apijs.i18n.translate(162,this.exts.join()):apijs.i18n.translate(163,this.exts.slice(0,-1).join(", "),this.exts.slice(-1));return d+="[br]"+apijs.i18n.translate(h?165:164,apijs.formatNumber(this.onemax),h?apijs.formatNumber(this.allmax):"").replace("|","[br]"),apijs.dialog.dialogFormUpload(this.title,d,this.action,this.input,h,this.icon)},this.actionChoose=function(t){var e,i=[],s=0;this.files=[],this.exts&&(Array.prototype.forEach.call(t.files,function(t){e=t.name+' <span class="sz">'+apijs.i18n.translate(166,apijs.formatNumber(t.size/1048576))+"</span>","*"===this.exts.join()||this.exts.has(t.name.slice(t.name.lastIndexOf(".")+1).toLowerCase())?t.size>1048576*this.onemax?e+=' <span class="ee">'+apijs.i18n.translate(168)+"</span>":t.size<=0?e+=' <span class="ee">'+apijs.i18n.translate(169)+"</span>":this.files.push(t):e+=' <span class="ee">'+apijs.i18n.translate(167)+"</span>",i.push("<div>"+e+"</div>"),s+=t.size/1048576},this),0<this.allmax&&s>=this.allmax&&i.push('<div class="tt"> = <span class="sz">'+apijs.i18n.translate(166,apijs.formatNumber(s))+'</span> <span class="ee">'+apijs.i18n.translate(168)+"</span></div>"),this.files.length===t.files.length?(apijs.html("button.confirm").removeAttribute("disabled"),apijs.html("button.confirm").focus()):apijs.html("button.confirm").setAttribute("disabled","disabled"),apijs.html("div.filenames").innerHTML=i.join(" "))},this.actionConfirm=function(){var s,e;return 0<this.files.length?(s=new FormData,(e=new XMLHttpRequest).open("POST",this.action+(0<this.action.indexOf("?")?"&isAjax=true":"?isAjax=true"),!0),"string"==typeof apijs.config.upload.tokenValue&&(e.setRequestHeader(apijs.config.upload.tokenName,apijs.config.upload.tokenValue),s.append(apijs.config.upload.tokenName,apijs.config.upload.tokenValue)),this.files.forEach(function(t,e,i){s.append(1<i.length&&this.input.indexOf("[")<0?this.input+"_"+e:this.input,t)},this),e.onreadystatechange=function(t){4===e.readyState&&(t=e.responseText.trim(),[0,200].has(e.status)?(self.dispatchEvent(new CustomEvent("apijsajaxresponse",{detail:{from:"apijs.upload.send",xhr:e}})),apijs.log("upload:onreadystatechange status:200 message:"+t),0===t.indexOf("success-")?(apijs.upload.updateTitle(),apijs.upload.callback(t.slice(8),apijs.upload.args)):apijs.upload.onError(195,t)):(apijs.log("upload:onreadystatechange status:"+e.status+" message: "+t),apijs.upload.onError(194,e.status)))},e.upload.onloadstart=apijs.upload.onStart.bind(this),e.upload.onprogress=apijs.upload.onProgress.bind(this),e.upload.onload=apijs.upload.onProgress.bind(this),e.upload.onerror=apijs.upload.onError.bind(this),e.send(s)):apijs.html("button.browse").focus(),!1},this.onStart=function(){this.start=this.end=Math.round((new Date).getTime()/1e3),apijs.dialog.dialogProgress(this.title,apijs.i18n.translate(125),this.icon)},this.onError=function(t,e){this.updateTitle(),"number"==typeof t?e="[p]"+apijs.i18n.translate(t)+"[/p] "+e:"string"!=typeof e&&(e="[p]"+apijs.i18n.translate(193)+"[/p]"),e+="[p]"+apijs.i18n.translate(196,'href="apijs://restart" onclick="apijs.upload.sendFile(true); return false;"')+"[/p]",apijs.dialog.dialogInformation(this.title,e,"string"==typeof this.icon?"upload error "+this.icon:"upload error")},this.onProgress=function(t){var e,i,s,a,n,o,r,l=Math.round((new Date).getTime()/1e3);t.lengthComputable&&"progress"===t.type&&l>=this.end+2?(this.end=l,0<(e=Math.floor(100*t.loaded/t.total))&&e<100&&(this.updateTitle(e),o=100*(n=l-this.start)/e+10,24<n&&(a=Math.round(o-n),a=10*Math.ceil(a/10),r=Math.ceil(a/60),s=Math.round(t.loaded/n/1024),n<40||o<90?(i=184,a=null):1<r?(i=181,a=r):50<a?(i=182,a=1):i=183),this.updateProgress(e,i,s,a))):"load"===t.type&&(a=Math.round((new Date).getTime()/1e3)-this.start,r=Math.ceil(a/60),0<(s=Math.round(t.loaded/a/1024))&&s!==1/0?1<r?(i=185,a=r):50<a?(i=186,a=1):20<a?i=187:(i=188,a=null):a=s=null,this.updateTitle(100),this.updateProgress(100,i,s,a))},this.updateProgress=function(t,e,i,s){var a,n=apijs.html("rect"),o=apijs.html("span.info");99<t?(a="100%",n.setAttribute("class","end"),n.style.width="",apijs.html("p").textContent=apijs.i18n.translate(126)):(n.style.width=a=t+"%",n.hasAttribute("class")&&n.removeAttribute("class")),"number"==typeof e&&"number"==typeof i&&"number"==typeof s?a=apijs.i18n.translate(e,t,apijs.formatNumber(i,!1),s):"number"==typeof e&&"number"==typeof i&&(a=apijs.i18n.translate(e,t,apijs.formatNumber(i,!1))),o.textContent=a},this.updateTitle=function(t){"number"==typeof t?document.title=/^\d{1,3}% - /.test(document.title)?t+"% - "+document.title.slice(document.title.indexOf(" - ")+3):t+"% - "+document.title:/^\d{1,3}% - /.test(document.title)&&(document.title=document.title.slice(document.title.indexOf(" - ")+3))}};
|
@@ -0,0 +1,224 @@
|
|
1
|
+
/**
|
2
|
+
* Created D/15/12/2013
|
3
|
+
* Updated L/06/07/2020
|
4
|
+
*
|
5
|
+
* Copyright 2008-2020 | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
6
|
+
* https://www.luigifab.fr/redmine/apijs
|
7
|
+
*
|
8
|
+
* This program is free software, you can redistribute it or modify
|
9
|
+
* it under the terms of the GNU General Public License (GPL) as published
|
10
|
+
* by the free software foundation, either version 2 of the license, or
|
11
|
+
* (at your option) any later version.
|
12
|
+
*
|
13
|
+
* This program is distributed in the hope that it will be useful,
|
14
|
+
* but without any warranty, without even the implied warranty of
|
15
|
+
* merchantability or fitness for a particular purpose. See the
|
16
|
+
* GNU General Public License (GPL) for more details.
|
17
|
+
*/
|
18
|
+
|
19
|
+
var apijsRedmine = new (function () {
|
20
|
+
|
21
|
+
"use strict";
|
22
|
+
|
23
|
+
this.start = function () {
|
24
|
+
|
25
|
+
var d = apijs.i18n.data;
|
26
|
+
// https://docs.google.com/spreadsheets/d/1UUpKZ-YAAlcfvGHYwt6aUM9io390j0-fIL0vMRh1pW0/edit?usp=sharing
|
27
|
+
// auto start
|
28
|
+
d.cs[252] = "Chyba";
|
29
|
+
d.de[250] = "Eine Datei löschen";
|
30
|
+
d.de[251] = "Sind Sie sicher, dass Sie diese Datei löschen möchten?[br]Achtung, diese Aktion ist unrückgängig.";
|
31
|
+
d.de[252] = "Fehler";
|
32
|
+
d.de[253] = "Sie verfügen nicht über die notwendigen Rechte um diese Operation durchzuführen, bitte [a §]aktualisieren Sie die Seite[/a].";
|
33
|
+
d.de[254] = "Es tut uns leid, diese Datei existiert nicht mehr, bitte [a §]aktualisieren Sie die Seite[/a].";
|
34
|
+
d.de[255] = "Eine Beschreibung bearbeiten";
|
35
|
+
d.de[256] = "Bitte geben Sie weiter unten die neue Beschreibung für diese Datei an. Um die Beschreibung zu löschen lassen Sie das Feld leer.";
|
36
|
+
d.en[250] = "Remove a file";
|
37
|
+
d.en[251] = "Are you sure you want to remove this file?[br]Be careful, you can't cancel this operation.";
|
38
|
+
d.en[252] = "Error";
|
39
|
+
d.en[253] = "You are not authorized to perform this operation, please [a §]refresh the page[/a].";
|
40
|
+
d.en[254] = "Sorry, the file no longer exists, please [a §]refresh the page[/a].";
|
41
|
+
d.en[255] = "Edit a description";
|
42
|
+
d.en[256] = "Enter below the new description for the file. To remove the description, leave the field empty.";
|
43
|
+
d.es[250] = "Borrar un archivo";
|
44
|
+
d.es[251] = "¿Está usted seguro-a de que desea eliminar este archivo?[br]Atención, pues no podrá cancelar esta operación.";
|
45
|
+
d.es[253] = "No está autorizado-a para llevar a cabo esta operación, por favor [a §]actualice la página[/a].";
|
46
|
+
d.es[254] = "Disculpe, pero el archivo ya no existe, por favor [a §]actualice la página[/a].";
|
47
|
+
d.es[255] = "Editar una descripción";
|
48
|
+
d.es[256] = "Introduzca a continuación la nueva descripción para el archivo. Para eliminar la descripción, deje el campo en blanco.";
|
49
|
+
d.fr[250] = "Supprimer un fichier";
|
50
|
+
d.fr[251] = "Êtes-vous certain(e) de vouloir supprimer ce fichier ?[br]Attention, cette opération n'est pas annulable.";
|
51
|
+
d.fr[252] = "Erreur";
|
52
|
+
d.fr[253] = "Vous n'êtes pas autorisé(e) à effectuer cette opération, veuillez [a §]actualiser la page[/a].";
|
53
|
+
d.fr[254] = "Désolé, le fichier n'existe plus, veuillez [a §]actualiser la page[/a].";
|
54
|
+
d.fr[255] = "Modifier une description";
|
55
|
+
d.fr[256] = "Saisissez ci-dessous la nouvelle description pour ce fichier. Pour supprimer la description, laissez le champ vide.";
|
56
|
+
d.it[250] = "Eliminare un file";
|
57
|
+
d.it[251] = "Sicuri di voler eliminare il file?[br]Attenzione, questa operazione non può essere annullata.";
|
58
|
+
d.it[252] = "Errore";
|
59
|
+
d.it[253] = "Non siete autorizzati a eseguire questa operazione, vi preghiamo di [a §]ricaricare la pagina[/a].";
|
60
|
+
d.it[254] = "Spiacenti, il file non esiste più, vi preghiamo di [a §]ricaricare la pagina[/a].";
|
61
|
+
d.it[255] = "Modificare una descrizione";
|
62
|
+
d.it[256] = "Inserire qui sotto la nuova descrizione del file. Per cancellare la descrizione, lasciate lo spazio vuoto.";
|
63
|
+
d.ja[250] = "ファイルを削除";
|
64
|
+
d.ja[252] = "エラー";
|
65
|
+
d.nl[252] = "Fout";
|
66
|
+
d.pl[252] = "Błąd";
|
67
|
+
d.pt[250] = "Suprimir um ficheiro";
|
68
|
+
d.pt[251] = "Tem certeza de que quer suprimir este ficheiro?[br]Atenção, não pode cancelar esta operação.";
|
69
|
+
d.pt[252] = "Erro";
|
70
|
+
d.pt[253] = "Não é autorizado(a) para efetuar esta operação, por favor [a §]atualize a página[/a].";
|
71
|
+
d.pt[254] = "Lamento, o ficheiro já não existe, por favor [a §]atualize a página[/a].";
|
72
|
+
d.pt[255] = "Modificar uma descrição";
|
73
|
+
d.pt[256] = "Digite abaixo a nova descrição para este ficheiro. Para suprimir a descrição, deixe o campo vazio.";
|
74
|
+
d.ru[250] = "Удалить файл";
|
75
|
+
d.ru[251] = "Вы уверены, что хотите удалить этот файл?[br]Осторожно, вы не сможете отменить эту операцию.";
|
76
|
+
d.ru[252] = "Ошибка";
|
77
|
+
d.ru[253] = "Вы не авторизованы для выполнения этой операции, пожалуйста [a §]обновите страницу[/a].";
|
78
|
+
d.ru[254] = "Извините, но файл не существует, пожалуйста [a §]обновите страницу[/a].";
|
79
|
+
d.ru[255] = "Редактировать описание";
|
80
|
+
d.ru[256] = "Ниже введите новое описание файла. Оставьте поле пустым, чтобы удалить описание.";
|
81
|
+
d.tr[252] = "Hata";
|
82
|
+
d.zh[252] = "错误信息";
|
83
|
+
// auto end
|
84
|
+
};
|
85
|
+
|
86
|
+
this.error = function (data) {
|
87
|
+
|
88
|
+
if ((typeof data == 'string') || (data.indexOf('<!DOCTYPE') < 0)) {
|
89
|
+
apijs.dialog.dialogInformation(apijs.i18n.translate(252), data, 'error');
|
90
|
+
}
|
91
|
+
else {
|
92
|
+
apijs.dialog.remove('lock'); // obligatoire sinon demande de confirmation de quitter la page
|
93
|
+
self.location.reload();
|
94
|
+
}
|
95
|
+
};
|
96
|
+
|
97
|
+
this.editAttachment = function (id, action, token) {
|
98
|
+
|
99
|
+
var desc, text, title = apijs.i18n.translate(255);
|
100
|
+
if (document.getElementById('attachmentId' + id).querySelector('span.description')) {
|
101
|
+
desc = document.getElementById('attachmentId' + id).querySelector('span.description').firstChild.nodeValue.trim();
|
102
|
+
}
|
103
|
+
else {
|
104
|
+
desc = document.createElement('span');
|
105
|
+
desc.setAttribute('class', 'description');
|
106
|
+
desc.appendChild(document.createTextNode(''));
|
107
|
+
document.getElementById('attachmentId' + id).querySelector('dd').appendChild(desc);
|
108
|
+
desc = '';
|
109
|
+
}
|
110
|
+
|
111
|
+
text = '[p][label for="apijsRedText"]' + apijs.i18n.translate(256) + '[/label][/p]' +
|
112
|
+
'[input type="text" name="description" value="' + desc + '" spellcheck="true" id="apijsRedText"]';
|
113
|
+
|
114
|
+
apijs.dialog.dialogFormOptions(title, text, action, apijsRedmine.actionEditAttachment, [id, action, token], 'editattachment');
|
115
|
+
apijs.dialog.t1.querySelector('input').select();
|
116
|
+
};
|
117
|
+
|
118
|
+
this.actionEditAttachment = function (action, args) {
|
119
|
+
|
120
|
+
// vérification de la nouvelle description
|
121
|
+
if (typeof action == 'boolean') {
|
122
|
+
return true;
|
123
|
+
}
|
124
|
+
// sauvegarde de la nouvelle description
|
125
|
+
else if (typeof action == 'string') {
|
126
|
+
|
127
|
+
// args = [id, action, token]
|
128
|
+
var xhr = new XMLHttpRequest();
|
129
|
+
xhr.open('POST', args[1] + '?id=' + args[0] + '&isAjax=true', true);
|
130
|
+
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
131
|
+
xhr.setRequestHeader('X-CSRF-Token', args[2]);
|
132
|
+
|
133
|
+
xhr.onreadystatechange = function () {
|
134
|
+
|
135
|
+
if (xhr.readyState === 4) {
|
136
|
+
if ([0, 200].has(xhr.status)) {
|
137
|
+
if (xhr.responseText.indexOf('attachmentId') === 0) {
|
138
|
+
|
139
|
+
// extrait l'id et la description du fichier enregistré
|
140
|
+
var elem, id, text;
|
141
|
+
id = xhr.responseText.slice(0, xhr.responseText.indexOf(':'));
|
142
|
+
text = xhr.responseText.slice(xhr.responseText.indexOf(':') + 1);
|
143
|
+
|
144
|
+
// légende
|
145
|
+
elem = document.getElementById(id).querySelector('span.description').firstChild;
|
146
|
+
elem.replaceData(0, elem.length, text);
|
147
|
+
|
148
|
+
// input type hidden
|
149
|
+
elem = document.getElementById(id).querySelector('input');
|
150
|
+
if (elem)
|
151
|
+
elem.value = elem.value.slice(0, elem.value.lastIndexOf('|') + 1) + text;
|
152
|
+
|
153
|
+
// image
|
154
|
+
elem = document.getElementById(id).querySelector('img');
|
155
|
+
if (elem)
|
156
|
+
elem.setAttribute('alt', text);
|
157
|
+
|
158
|
+
apijs.dialog.actionClose();
|
159
|
+
}
|
160
|
+
else {
|
161
|
+
apijsRedmine.error(xhr.responseText);
|
162
|
+
}
|
163
|
+
}
|
164
|
+
else {
|
165
|
+
apijsRedmine.error(xhr.status);
|
166
|
+
}
|
167
|
+
}
|
168
|
+
};
|
169
|
+
|
170
|
+
xhr.send('description=' + encodeURIComponent(document.getElementById('apijsRedText').value));
|
171
|
+
}
|
172
|
+
};
|
173
|
+
|
174
|
+
this.removeAttachment = function (id, action, token) {
|
175
|
+
apijs.dialog.dialogConfirmation(apijs.i18n.translate(250), apijs.i18n.translate(251), apijsRedmine.actionRemoveAttachment, [id, action, token]);
|
176
|
+
};
|
177
|
+
|
178
|
+
this.actionRemoveAttachment = function (args) {
|
179
|
+
|
180
|
+
// args = [id, action, token]
|
181
|
+
var xhr = new XMLHttpRequest();
|
182
|
+
xhr.open('GET', args[1] + '?id=' + args[0] + '&isAjax=true', true);
|
183
|
+
xhr.setRequestHeader('X-CSRF-Token', args[2]);
|
184
|
+
|
185
|
+
xhr.onreadystatechange = function () {
|
186
|
+
|
187
|
+
if (xhr.readyState === 4) {
|
188
|
+
if ([0, 200].has(xhr.status)) {
|
189
|
+
if (xhr.responseText.indexOf('attachmentId') === 0) {
|
190
|
+
|
191
|
+
// supprime le fichier de la page grâce à son id
|
192
|
+
var attachment = document.getElementById(xhr.responseText), album = attachment.parentNode, i = 0;
|
193
|
+
album.removeChild(attachment);
|
194
|
+
|
195
|
+
if (album.querySelectorAll('dl, li').length < 1) {
|
196
|
+
// supprime la liste des fichiers
|
197
|
+
album.parentNode.removeChild(album);
|
198
|
+
}
|
199
|
+
else {
|
200
|
+
// réattribue les ids du diaporama (pas de réinitialisation, on remet juste les ids en place)
|
201
|
+
album.querySelectorAll('a[id][type]').forEach(function (elem) {
|
202
|
+
elem.setAttribute('id', elem.getAttribute('id').slice(0, elem.getAttribute('id').lastIndexOf('.') + 1) + i++);
|
203
|
+
});
|
204
|
+
}
|
205
|
+
|
206
|
+
apijs.dialog.actionClose();
|
207
|
+
}
|
208
|
+
else {
|
209
|
+
apijsRedmine.error(xhr.responseText);
|
210
|
+
}
|
211
|
+
}
|
212
|
+
else {
|
213
|
+
apijsRedmine.error(xhr.status);
|
214
|
+
}
|
215
|
+
}
|
216
|
+
};
|
217
|
+
|
218
|
+
xhr.send();
|
219
|
+
};
|
220
|
+
|
221
|
+
})();
|
222
|
+
|
223
|
+
if (typeof self.addEventListener == 'function')
|
224
|
+
self.addEventListener('apijsload', apijsRedmine.start.bind(apijsRedmine));
|
@@ -0,0 +1,8 @@
|
|
1
|
+
@charset "utf-8";
|
2
|
+
/**
|
3
|
+
* Copyright 2008-2020 | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
4
|
+
* https://www.luigifab.fr/apijs - 6.3.0
|
5
|
+
* This program is free software, you can redistribute it or modify
|
6
|
+
* it under the terms of the GNU General Public License (GPL).
|
7
|
+
*/
|
8
|
+
div.album,div.gallery{font-size:.85em}div.album img,div.gallery img{display:block;margin:auto;overflow:hidden;color:transparent}div.album a:after,div.album a:before,div.gallery a:after,div.gallery a:before{display:none}div.gallery{display:inline-block}div.gallery a{display:inline-block;text-decoration:none}div.gallery ul{margin:0;padding:0;list-style:none}div.gallery li{display:inline-block;margin:0;padding:0;vertical-align:middle}div.gallery li a{display:block;margin:.2em}div.gallery li a.current{border-color:gray}div.album{text-align:center}div.album dl{display:inline-block;margin:.5em .4em;vertical-align:top}div.album dt a{display:block;text-decoration:none}div.album dd{margin:.4em 0 0}#apijsDialog{display:none}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
@charset "utf-8";
|
2
|
+
/**
|
3
|
+
* Copyright | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
4
|
+
* https://www.luigifab.fr/redmine/apijs
|
5
|
+
* This program is free software, you can redistribute it or modify
|
6
|
+
* it under the terms of the GNU General Public License (GPL).
|
7
|
+
*/
|
8
|
+
#apijsDialog{margin:0}#apijsBox{font-size:.8rem;border:0}#apijsBox a{color:#00f}#apijsBox.options.editattachment input[type=text]{display:block;padding:.3em;width:calc(100% - 4px - .6em);border:1px solid #888;background-color:#eee}body div.attachments.album{margin:1em 0;text-align:right}body div.attachments.album dd{position:relative;margin:.5em .15em 0 0;min-height:1.8em}body div.attachments.album dd.big{min-height:5em}body div.attachments.album dd div{float:left}body div.attachments.album dd span{display:block;line-height:16px;overflow:hidden;font-size:inherit;color:inherit;white-space:nowrap;text-overflow:ellipsis}body div.attachments.album dd span:first-child{margin-left:60px}body ul.attachments{margin:1em 0;padding:0;list-style:none}body ul.attachments li{padding:.25em .5em;transition:background-color .3s}body ul.attachments li:hover{background-color:#efefef}body ul.attachments li a{vertical-align:middle}body ul.attachments li strong{padding:0 .3em}body ul.attachments li span{padding:0 .1em}body ul.attachments li span.size{color:gray}body ul.attachments li span.date{color:gray}body button.attachment,body ul.attachments a[id^=slideshow]{display:inline-block;padding:0;width:16px;height:16px;vertical-align:middle;text-decoration:none!important;border:0;background-color:transparent;cursor:pointer;opacity:.75}body button.attachment.show,body ul.attachments a[id^=slideshow]{background-image:url(../../../images/magnifier.png)}body button.attachment.download{background-image:url(../../../images/attachment.png)}body button.attachment.delete{background-image:url(../../../images/delete.png)}body button.attachment.edit{background-image:url(../../../images/edit.png)}body fieldset.apijs.tabular.settings{margin:1em;padding:.5em;border:1px solid #ccc}body fieldset.apijs.tabular.settings p span.cmd{white-space:pre-wrap}body fieldset.apijs.tabular.settings p em.info{margin:.2em 0;line-height:140%}body fieldset.apijs.tabular.settings p a+em.info{margin:0}body fieldset.apijs.tabular.settings p label.bis{margin-right:1px;margin-left:.7em;width:auto;min-width:5.5em;text-align:right}body fieldset.apijs.tabular.settings p label.bis input{margin:0}body .flash.error.apijs{margin:0;border:0;border-radius:0;font-size:11px}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
@charset "utf-8";
|
2
|
+
/**
|
3
|
+
* Copyright | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
4
|
+
* https://www.luigifab.fr/redmine/apijs
|
5
|
+
* This program is free software, you can redistribute it or modify
|
6
|
+
* it under the terms of the GNU General Public License (GPL).
|
7
|
+
*/
|
8
|
+
#apijsDialog{margin:0}#apijsBox{font-size:.8rem;border:0}#apijsBox a{color:#00f}#apijsBox.options.editattachment input[type=text]{display:block;padding:.3em;width:calc(100% - 4px - .6em);border:1px solid #888;background-color:#eee}body div.attachments.album{margin:1em 0;text-align:left}body div.attachments.album dd{position:relative;margin:.5em 0 0 .15em;min-height:1.8em}body div.attachments.album dd.big{min-height:5em}body div.attachments.album dd div{float:right}body div.attachments.album dd span{display:block;line-height:16px;overflow:hidden;font-size:inherit;color:inherit;white-space:nowrap;text-overflow:ellipsis}body div.attachments.album dd span:first-child{margin-right:60px}body ul.attachments{margin:1em 0;padding:0;list-style:none}body ul.attachments li{padding:.25em .5em;transition:background-color .3s}body ul.attachments li:hover{background-color:#efefef}body ul.attachments li a{vertical-align:middle}body ul.attachments li strong{padding:0 .3em}body ul.attachments li span{padding:0 .1em}body ul.attachments li span.size{color:gray}body ul.attachments li span.date{color:gray}body button.attachment,body ul.attachments a[id^=slideshow]{display:inline-block;padding:0;width:16px;height:16px;vertical-align:middle;text-decoration:none!important;border:0;background-color:transparent;cursor:pointer;opacity:.75}body button.attachment.show,body ul.attachments a[id^=slideshow]{background-image:url(../../../images/magnifier.png)}body button.attachment.download{background-image:url(../../../images/attachment.png)}body button.attachment.delete{background-image:url(../../../images/delete.png)}body button.attachment.edit{background-image:url(../../../images/edit.png)}body fieldset.apijs.tabular.settings{margin:1em;padding:.5em;border:1px solid #ccc}body fieldset.apijs.tabular.settings p span.cmd{white-space:pre-wrap}body fieldset.apijs.tabular.settings p em.info{margin:.2em 0;line-height:140%}body fieldset.apijs.tabular.settings p a+em.info{margin:0}body fieldset.apijs.tabular.settings p label.bis{margin-left:1px;margin-right:.7em;width:auto;min-width:5.5em;text-align:left}body fieldset.apijs.tabular.settings p label.bis input{margin:0}body .flash.error.apijs{margin:0;border:0;border-radius:0;font-size:11px}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
@charset "utf-8";
|
2
|
+
/**
|
3
|
+
* Copyright 2008-2020 | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
4
|
+
* https://www.luigifab.fr/apijs - 6.3.0
|
5
|
+
* This program is free software, you can redistribute it or modify
|
6
|
+
* it under the terms of the GNU General Public License (GPL).
|
7
|
+
*/
|
8
|
+
div.album img,div.gallery img{display:block;margin:auto;overflow:hidden;color:transparent;background-color:#efefef;transition:background-color .3s}div.album a:after,div.album a:before,div.gallery a:after,div.gallery a:before{display:none;content:""}div.gallery{display:inline-flex;flex-direction:column;padding:.5em;vertical-align:top}div.gallery a{display:block;text-decoration:none;border:1px solid transparent}div.gallery ul{display:flex;flex-wrap:wrap;justify-content:space-around;margin:.3em 0 0;padding:0;list-style:none}div.gallery li{margin:.1em 0;padding:0}div.gallery li a{opacity:.7}div.gallery li a.current{border:1px solid #fff;opacity:1}div.album{padding:.4em;text-align:center}div.album dl{display:inline-block;margin:.3em .1em;padding:.5em .5em .45em;vertical-align:top;border:1px solid #efefef;border-radius:.6em;background-color:transparent;transition:border-color .3s,background-color .3s}div.album dl.current{border:1px solid #fff;background-color:#efefef}div.album dt a{display:block;text-decoration:none;border:1px solid transparent}div.album dd{margin:.5em .5em 0;overflow:hidden;font-size:.8em;white-space:nowrap;text-overflow:ellipsis;transition:color .3s}div.album dl:hover{border-color:#ccc;background-color:#efefef}div.album dl.current img,div.album dl:hover img{background-color:#fff}#apijsDialog *{margin:0;padding:0}#apijsDialog button,#apijsDialog label{cursor:pointer}#apijsDialog{position:fixed;top:0;left:0;bottom:0;right:0;width:100%;height:100%;text-align:center;direction:rtl;z-index:99000;transition:background-color .5s,opacity .25s;opacity:0;user-select:none;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none}#apijsDialog.ready{background-color:rgba(0,0,0,.65);opacity:1}#apijsDialog.loading,#apijsDialog.progress,#apijsDialog.waiting{cursor:progress}#apijsBox{position:relative;top:21%;display:inline-block;padding:.6em .8em 2.4em;width:26rem;max-width:26rem;min-height:9em;overflow:hidden;text-align:right;color:#000;border-radius:.8em;background-color:#fff;box-shadow:0 0 2.5em #111}#apijsBox.photo,#apijsBox.video{display:flex;flex-direction:column;position:absolute;top:0;left:0;bottom:0;right:0;padding:0;width:auto;max-width:inherit;min-height:inherit;text-align:center;border-radius:0;background-color:rgba(0,0,0,.8);box-shadow:none}#apijsBox.photo.error,#apijsBox.video.error{background-image:url(../images/apijs/tv.gif?b0e0fdb895);background-repeat:repeat}#apijsBox.options,#apijsBox.progress,#apijsBox.upload{min-height:15em}#apijsBox.ajax,#apijsBox.iframe{padding:2.5em .8em 1em}#apijsBox div.bbcode{user-select:text;-ms-user-select:text;-moz-user-select:text;-webkit-user-select:text}#apijsBox h1{margin:.15em 0 .7em;height:32px;line-height:32px;font-size:1.49em;font-weight:700}#apijsBox pre{margin:1em auto;line-height:1.42857143;font-size:.7rem;white-space:pre-wrap}#apijsBox p{margin:1em auto;line-height:1.42857143;font-size:1em}#apijsBox ul{margin:-.4em auto 1em}#apijsBox iframe{display:block;width:100%;border:0}#apijsBox.progress span.info{position:absolute;left:1em;bottom:.8em}#apijsBox.progress svg{position:relative;display:block;margin:18px auto;width:80%;height:20px;overflow:hidden;outline:1px solid #333;background-color:#aaa}#apijsBox.progress rect{position:absolute;top:0;bottom:0;right:0;display:block;background:#03ff00 repeating-linear-gradient(45deg,#03ff00 0,#03ff00 10px,#00ef00 10px,#00ef00 20px);background-size:28px 100%}#apijsBox.progress rect.auto{width:20%;-webkit-animation:apijsProgress 10s infinite linear;animation:apijsProgress 10s infinite linear}#apijsBox.progress rect.end{width:100%;-webkit-animation:apijsProgress 10s infinite 3s linear;animation:apijsProgress 10s infinite 3s linear}#apijsBox svg.loader{position:absolute;display:none;margin:auto;width:128px;height:128px;pointer-events:none}#apijsBox svg.loader path{fill:gray}#apijsBox.loading svg.loader,#apijsBox.waiting svg.loader{display:block;left:-40px;bottom:-40px;transform:scale(.2);-webkit-transform:scale(.2)}#apijsBox.photo svg.loader,#apijsBox.video svg.loader{left:0;bottom:calc(50% - 64px);right:0;transform:none;-webkit-transform:none}#apijsBox.ajax svg.loader,#apijsBox.iframe svg.loader{left:0;bottom:calc(50% - 64px);right:0}#apijsBox button{font-size:.85em;text-decoration:none;border:0;transition:color .4s,border-color .4s,background-color .4s,opacity .4s}#apijsBox button::-moz-focus-inner{padding:0;outline:0;border:0}#apijsBox button:active,#apijsBox button:focus,#apijsBox button:hover{outline:0}#apijsBox div.btns{position:absolute;left:.8em;bottom:.6em}#apijsBox div.btns.upload{position:relative;left:inherit;right:inherit}#apijsBox div.btns.upload input{display:none}#apijsBox div.btns.upload div.filenames{white-space:nowrap}#apijsBox div.btns.upload span.sz{color:#676767}#apijsBox div.btns.upload span.ee{color:#e41101}#apijsBox div.btns button{padding:0 .7em;height:auto;line-height:24px;color:#000;border:1px solid #bbb;border-radius:.4em;background-color:#e2e2e2}#apijsBox div.btns button:disabled{opacity:.5}#apijsBox div.btns button.cancel{float:right;margin:0 .5em}#apijsBox div.btns button.browse{display:inline-block;margin:.5em 0}#apijsBox div.btns button:active,#apijsBox div.btns button:focus,#apijsBox div.btns button:hover{border-color:#555;background-color:#f4f4f4}#apijsBox div.btns button:focus:not(:hover){-webkit-animation:apijsFocus 1s infinite;animation:apijsFocus 1s infinite}#apijsBox dl.media{display:flex;flex-direction:column-reverse;flex:1;overflow:hidden;color:#fff}#apijsBox dl.media dt{display:flex;flex-direction:column;flex:1;overflow:hidden}#apijsBox dl.media dt iframe,#apijsBox dl.media dt img,#apijsBox dl.media dt video{flex:1 1 auto;height:100%;visibility:hidden}#apijsBox dl.media dt img{image-rendering:optimizeQuality;image-rendering:-moz-crisp-edges;object-fit:scale-down}#apijsBox dl.media dt video{outline:0;background-color:#000;cursor:pointer}#apijsBox dl.media dd{line-height:1.5rem;font-size:.85em;background-color:#666}#apijsBox dl.media dd span{margin:0 .6em;font-size:.9em;font-style:italic}#apijsBox div.close{position:absolute;top:-2px;left:-2px;padding:0 3em 3em 0;z-index:99600}#apijsBox div.close button{padding:0 1.4em;line-height:2.6em;font-size:.8em;font-weight:700;text-transform:uppercase;color:#fff;border:2px solid #fff;border-radius:0 0 .8em 0;background-color:#000;opacity:.8}#apijsBox div.close button:active,#apijsBox div.close button:focus,#apijsBox div.close button:hover{opacity:1}#apijsBox div.navigation button{position:absolute;top:20%;bottom:20%;padding:0 2em;background-color:transparent;opacity:.5}#apijsBox div.navigation button:active,#apijsBox div.navigation button:focus,#apijsBox div.navigation button:hover{opacity:1}#apijsBox div.navigation button:disabled{opacity:0;cursor:default}#apijsBox div.navigation button span{display:block;width:2em;height:2em;border-top:2px solid #fff;border-right:2px solid #fff}#apijsBox div.navigation button.prev{right:0}#apijsBox div.navigation button.prev span{transform:rotate(45deg);-webkit-transform:rotate(45deg)}#apijsBox div.navigation button.next{left:0}#apijsBox div.navigation button.next span{transform:rotate(225deg);-webkit-transform:rotate(225deg)}#apijsBox ul.kbd{display:flex;justify-content:center;margin:0;text-align:center;font-size:.8em;white-space:nowrap;list-style:none;background-color:#666}#apijsBox ul.kbd li{margin:0 .5em;line-height:1.2rem}#apijsBox ul.kbd li kbd:last-child{margin-left:.4em}#apijsBox kbd{margin-left:.2em;padding:0 .21em;font-size:inherit;font-weight:700;text-transform:uppercase;border:0;background-color:#888}#apijsBox dl.media dt video.player{height:calc(100% - 1.8rem)}#apijsBox span.player{position:relative;display:flex;align-items:center;z-index:99600;margin-top:-10vh;padding-top:10vh;height:1.8rem;line-height:1.8rem;font-size:.85em;color:#fff;direction:ltr}#apijsBox span.player span{padding:0 .4em;height:1.8rem;background-color:#070707}#apijsBox span.player span.btn{padding:0;min-width:2.6em;cursor:pointer}#apijsBox span.player span.svg{display:flex;align-items:center;height:100%}#apijsBox span.player span.bar{flex:1}#apijsBox span.player span.vol{width:7em}#apijsBox span.player label{position:relative;padding:0 .4em;background-color:#070707}#apijsBox span.player label option{padding:.2em .4em}#apijsBox span.player label option:checked{font-weight:700}#apijsBox span.player label option:disabled{font-style:italic;color:#aaa}#apijsBox span.player label em{padding-left:.25em;font-style:normal}#apijsBox span.player label select{display:none;position:absolute;right:0;bottom:1.8rem;min-width:20em;color:#000;outline:0;border:0;background-color:#fff;appearance:none;-moz-appearance:none;-webkit-appearance:none}#apijsBox span.player label:hover,#apijsBox span.player span.btn:hover{color:#000;background-color:#fff}#apijsBox span.player label:hover select{display:block}#apijsBox span.player svg{position:relative;flex:1;height:30%;overflow:hidden;border-radius:.4em;background-color:#222;cursor:pointer}#apijsBox span.player rect{position:absolute;top:0;bottom:0;left:0;display:block;z-index:99460;background-color:#00b6f0}#apijsBox span.player rect.buffer{z-index:99440;background-color:#515151}#apijsBox span.player svg.vol rect{width:100%;background-color:#fff}#apijsBox span.player label{direction:rtl}#apijsDialog.reduce *{transition:none!important}#apijsBox.fullscreen .nofullscreen{display:none!important}#apijsBox.fullscreen.playing video{cursor:none}#apijsBox.mobile:not(.photo):not(.video){position:absolute;top:1.5em;right:.5em;left:.5em;width:auto;min-height:inherit}#apijsBox.mobile .nomobile{display:none!important}#apijsBox.fullscreen.playing .noplaying,#apijsBox.mobile.playing .noplaying{transition:opacity .5s;opacity:0}#apijsBox.fullscreen.playing .noplaying:hover,#apijsBox.mobile.playing .noplaying:hover{opacity:1!important}#apijsBox.tiny span.player label{position:initial}#apijsBox.tiny span.player label select{right:0;left:0;width:100%}#apijsBox.tiny div.navigation button{padding:0 1em}@font-face{src:url(../fonts/apijs/fontello.woff2?a3ab5acff3) format("woff2"),url(../fonts/apijs/fontello.woff?f0ebfafe83) format("woff");font-family:apijsFontello;font-weight:400;font-style:normal}#apijsBox div.btns button span:before,#apijsBox h1:before,#apijsBox kbd:before,#apijsBox span.player span.fnt{font-family:apijsFontello;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-decoration:inherit;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}#apijsBox h1:before{float:right;width:1.3em;text-align:center;font-size:1.5em}#apijsBox.information h1:before{content:"\E80B\0000A0"}#apijsBox.confirmation h1:before{content:"\E80C\0000A0"}#apijsBox.options h1:before{content:"\E80E\0000A0"}#apijsBox.upload h1:before{content:"\F15B\0000A0"}#apijsBox.progress h1:before{content:"\F1D8\0000A0"}#apijsBox.waiting h1:before{content:"\F1D8\0000A0"}#apijsBox.download h1:before{content:"\F15B\0000A0"}#apijsBox.print h1:before{content:"\E80D\0000A0"}#apijsBox.error h1:before{content:"\E80A\0000A0"}#apijsBox.warning h1:before{content:"\E80A\0000A0"}#apijsBox div.btns button span:before{float:right}#apijsBox div.btns button.cancel span:before{content:"\E801\0000A0"}#apijsBox div.btns button.confirm span:before{content:"\E800\0000A0"}#apijsBox div.btns button.browse span:before{content:"\E802\0000A0"}#apijsBox kbd.start:before{content:"\E807";display:inline-block;transform:rotate(45deg);-webkit-transform:rotate(45deg)}#apijsBox kbd.bottom:before{content:"\E804"}#apijsBox kbd.left:before{content:"\E805"}#apijsBox kbd.right:before{content:"\E806"}#apijsBox kbd.topk:before{content:"\E807"}#apijsBox kbd.plus:before{content:"\E809"}#apijsBox kbd.minus:before{content:"\E808"}@keyframes apijsProgress{0%{width:20%}50%{transform:translate(-400%,0)}100%{width:20%}}@-webkit-keyframes apijsProgress{0%{width:20%}50%{right:80%}100%{width:20%}}@keyframes apijsFocus{50%{border-color:#bbb}}@-webkit-keyframes apijsFocus{50%{border-color:#bbb}}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
@charset "utf-8";
|
2
|
+
/**
|
3
|
+
* Copyright 2008-2020 | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
4
|
+
* https://www.luigifab.fr/apijs - 6.3.0
|
5
|
+
* This program is free software, you can redistribute it or modify
|
6
|
+
* it under the terms of the GNU General Public License (GPL).
|
7
|
+
*/
|
8
|
+
div.album img,div.gallery img{display:block;margin:auto;overflow:hidden;color:transparent;background-color:#efefef;transition:background-color .3s}div.album a:after,div.album a:before,div.gallery a:after,div.gallery a:before{display:none;content:""}div.gallery{display:inline-flex;flex-direction:column;padding:.5em;vertical-align:top}div.gallery a{display:block;text-decoration:none;border:1px solid transparent}div.gallery ul{display:flex;flex-wrap:wrap;justify-content:space-around;margin:.3em 0 0;padding:0;list-style:none}div.gallery li{margin:.1em 0;padding:0}div.gallery li a{opacity:.7}div.gallery li a.current{border:1px solid #fff;opacity:1}div.album{padding:.4em;text-align:center}div.album dl{display:inline-block;margin:.3em .1em;padding:.5em .5em .45em;vertical-align:top;border:1px solid #efefef;border-radius:.6em;background-color:transparent;transition:border-color .3s,background-color .3s}div.album dl.current{border:1px solid #fff;background-color:#efefef}div.album dt a{display:block;text-decoration:none;border:1px solid transparent}div.album dd{margin:.5em .5em 0;overflow:hidden;font-size:.8em;white-space:nowrap;text-overflow:ellipsis;transition:color .3s}div.album dl:hover{border-color:#ccc;background-color:#efefef}div.album dl.current img,div.album dl:hover img{background-color:#fff}#apijsDialog *{margin:0;padding:0}#apijsDialog button,#apijsDialog label{cursor:pointer}#apijsDialog{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;text-align:center;direction:ltr;z-index:99000;transition:background-color .5s,opacity .25s;opacity:0;user-select:none;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none}#apijsDialog.ready{background-color:rgba(0,0,0,.65);opacity:1}#apijsDialog.loading,#apijsDialog.progress,#apijsDialog.waiting{cursor:progress}#apijsBox{position:relative;top:21%;display:inline-block;padding:.6em .8em 2.4em;width:26rem;max-width:26rem;min-height:9em;overflow:hidden;text-align:left;color:#000;border-radius:.8em;background-color:#fff;box-shadow:0 0 2.5em #111}#apijsBox.photo,#apijsBox.video{display:flex;flex-direction:column;position:absolute;top:0;right:0;bottom:0;left:0;padding:0;width:auto;max-width:inherit;min-height:inherit;text-align:center;border-radius:0;background-color:rgba(0,0,0,.8);box-shadow:none}#apijsBox.photo.error,#apijsBox.video.error{background-image:url(../images/apijs/tv.gif?b0e0fdb895);background-repeat:repeat}#apijsBox.options,#apijsBox.progress,#apijsBox.upload{min-height:15em}#apijsBox.ajax,#apijsBox.iframe{padding:2.5em .8em 1em}#apijsBox div.bbcode{user-select:text;-ms-user-select:text;-moz-user-select:text;-webkit-user-select:text}#apijsBox h1{margin:.15em 0 .7em;height:32px;line-height:32px;font-size:1.49em;font-weight:700}#apijsBox pre{margin:1em auto;line-height:1.42857143;font-size:.7rem;white-space:pre-wrap}#apijsBox p{margin:1em auto;line-height:1.42857143;font-size:1em}#apijsBox ul{margin:-.4em auto 1em}#apijsBox iframe{display:block;width:100%;border:0}#apijsBox.progress span.info{position:absolute;right:1em;bottom:.8em}#apijsBox.progress svg{position:relative;display:block;margin:18px auto;width:80%;height:20px;overflow:hidden;outline:1px solid #333;background-color:#aaa}#apijsBox.progress rect{position:absolute;top:0;bottom:0;left:0;display:block;background:#03ff00 repeating-linear-gradient(-45deg,#03ff00 0,#03ff00 10px,#00ef00 10px,#00ef00 20px);background-size:28px 100%}#apijsBox.progress rect.auto{width:20%;-webkit-animation:apijsProgress 10s infinite linear;animation:apijsProgress 10s infinite linear}#apijsBox.progress rect.end{width:100%;-webkit-animation:apijsProgress 10s infinite 3s linear;animation:apijsProgress 10s infinite 3s linear}#apijsBox svg.loader{position:absolute;display:none;margin:auto;width:128px;height:128px;pointer-events:none}#apijsBox svg.loader path{fill:gray}#apijsBox.loading svg.loader,#apijsBox.waiting svg.loader{display:block;right:-40px;bottom:-40px;transform:scale(.2);-webkit-transform:scale(.2)}#apijsBox.photo svg.loader,#apijsBox.video svg.loader{right:0;bottom:calc(50% - 64px);left:0;transform:none;-webkit-transform:none}#apijsBox.ajax svg.loader,#apijsBox.iframe svg.loader{right:0;bottom:calc(50% - 64px);left:0}#apijsBox button{font-size:.85em;text-decoration:none;border:0;transition:color .4s,border-color .4s,background-color .4s,opacity .4s}#apijsBox button::-moz-focus-inner{padding:0;outline:0;border:0}#apijsBox button:active,#apijsBox button:focus,#apijsBox button:hover{outline:0}#apijsBox div.btns{position:absolute;right:.8em;bottom:.6em}#apijsBox div.btns.upload{position:relative;right:inherit;left:inherit}#apijsBox div.btns.upload input{display:none}#apijsBox div.btns.upload div.filenames{white-space:nowrap}#apijsBox div.btns.upload span.sz{color:#676767}#apijsBox div.btns.upload span.ee{color:#e41101}#apijsBox div.btns button{padding:0 .7em;height:auto;line-height:24px;color:#000;border:1px solid #bbb;border-radius:.4em;background-color:#e2e2e2}#apijsBox div.btns button:disabled{opacity:.5}#apijsBox div.btns button.cancel{float:left;margin:0 .5em}#apijsBox div.btns button.browse{display:inline-block;margin:.5em 0}#apijsBox div.btns button:active,#apijsBox div.btns button:focus,#apijsBox div.btns button:hover{border-color:#555;background-color:#f4f4f4}#apijsBox div.btns button:focus:not(:hover){-webkit-animation:apijsFocus 1s infinite;animation:apijsFocus 1s infinite}#apijsBox dl.media{display:flex;flex-direction:column-reverse;flex:1;overflow:hidden;color:#fff}#apijsBox dl.media dt{display:flex;flex-direction:column;flex:1;overflow:hidden}#apijsBox dl.media dt iframe,#apijsBox dl.media dt img,#apijsBox dl.media dt video{flex:1 1 auto;height:100%;visibility:hidden}#apijsBox dl.media dt img{image-rendering:optimizeQuality;image-rendering:-moz-crisp-edges;object-fit:scale-down}#apijsBox dl.media dt video{outline:0;background-color:#000;cursor:pointer}#apijsBox dl.media dd{line-height:1.5rem;font-size:.85em;background-color:#666}#apijsBox dl.media dd span{margin:0 .6em;font-size:.9em;font-style:italic}#apijsBox div.close{position:absolute;top:-2px;right:-2px;padding:0 0 3em 3em;z-index:99600}#apijsBox div.close button{padding:0 1.4em;line-height:2.6em;font-size:.8em;font-weight:700;text-transform:uppercase;color:#fff;border:2px solid #fff;border-radius:0 0 0 .8em;background-color:#000;opacity:.8}#apijsBox div.close button:active,#apijsBox div.close button:focus,#apijsBox div.close button:hover{opacity:1}#apijsBox div.navigation button{position:absolute;top:20%;bottom:20%;padding:0 2em;background-color:transparent;opacity:.5}#apijsBox div.navigation button:active,#apijsBox div.navigation button:focus,#apijsBox div.navigation button:hover{opacity:1}#apijsBox div.navigation button:disabled{opacity:0;cursor:default}#apijsBox div.navigation button span{display:block;width:2em;height:2em;border-top:2px solid #fff;border-left:2px solid #fff}#apijsBox div.navigation button.prev{left:0}#apijsBox div.navigation button.prev span{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}#apijsBox div.navigation button.next{right:0}#apijsBox div.navigation button.next span{transform:rotate(-225deg);-webkit-transform:rotate(-225deg)}#apijsBox ul.kbd{display:flex;justify-content:center;margin:0;text-align:center;font-size:.8em;white-space:nowrap;list-style:none;background-color:#666}#apijsBox ul.kbd li{margin:0 .5em;line-height:1.2rem}#apijsBox ul.kbd li kbd:last-child{margin-right:.4em}#apijsBox kbd{margin-right:.2em;padding:0 .21em;font-size:inherit;font-weight:700;text-transform:uppercase;border:0;background-color:#888}#apijsBox dl.media dt video.player{height:calc(100% - 1.8rem)}#apijsBox span.player{position:relative;display:flex;align-items:center;z-index:99600;margin-top:-10vh;padding-top:10vh;height:1.8rem;line-height:1.8rem;font-size:.85em;color:#fff;direction:ltr}#apijsBox span.player span{padding:0 .4em;height:1.8rem;background-color:#070707}#apijsBox span.player span.btn{padding:0;min-width:2.6em;cursor:pointer}#apijsBox span.player span.svg{display:flex;align-items:center;height:100%}#apijsBox span.player span.bar{flex:1}#apijsBox span.player span.vol{width:7em}#apijsBox span.player label{position:relative;padding:0 .4em;background-color:#070707}#apijsBox span.player label option{padding:.2em .4em}#apijsBox span.player label option:checked{font-weight:700}#apijsBox span.player label option:disabled{font-style:italic;color:#aaa}#apijsBox span.player label em{padding-left:.25em;font-style:normal}#apijsBox span.player label select{display:none;position:absolute;right:0;bottom:1.8rem;min-width:20em;color:#000;outline:0;border:0;background-color:#fff;appearance:none;-moz-appearance:none;-webkit-appearance:none}#apijsBox span.player label:hover,#apijsBox span.player span.btn:hover{color:#000;background-color:#fff}#apijsBox span.player label:hover select{display:block}#apijsBox span.player svg{position:relative;flex:1;height:30%;overflow:hidden;border-radius:.4em;background-color:#222;cursor:pointer}#apijsBox span.player rect{position:absolute;top:0;bottom:0;left:0;display:block;z-index:99460;background-color:#00b6f0}#apijsBox span.player rect.buffer{z-index:99440;background-color:#515151}#apijsBox span.player svg.vol rect{width:100%;background-color:#fff}#apijsDialog.reduce *{transition:none!important}#apijsBox.fullscreen .nofullscreen{display:none!important}#apijsBox.fullscreen.playing video{cursor:none}#apijsBox.mobile:not(.photo):not(.video){position:absolute;top:1.5em;left:.5em;right:.5em;width:auto;min-height:inherit}#apijsBox.mobile .nomobile{display:none!important}#apijsBox.fullscreen.playing .noplaying,#apijsBox.mobile.playing .noplaying{transition:opacity .5s;opacity:0}#apijsBox.fullscreen.playing .noplaying:hover,#apijsBox.mobile.playing .noplaying:hover{opacity:1!important}#apijsBox.tiny span.player label{position:initial}#apijsBox.tiny span.player label select{left:0;right:0;width:100%}#apijsBox.tiny div.navigation button{padding:0 1em}@font-face{src:url(../fonts/apijs/fontello.woff2?a3ab5acff3) format("woff2"),url(../fonts/apijs/fontello.woff?f0ebfafe83) format("woff");font-family:apijsFontello;font-weight:400;font-style:normal}#apijsBox div.btns button span:before,#apijsBox h1:before,#apijsBox kbd:before,#apijsBox span.player span.fnt{font-family:apijsFontello;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-decoration:inherit;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}#apijsBox h1:before{float:left;width:1.3em;text-align:center;font-size:1.5em}#apijsBox.information h1:before{content:"\E80B\0000A0"}#apijsBox.confirmation h1:before{content:"\E80C\0000A0"}#apijsBox.options h1:before{content:"\E80E\0000A0"}#apijsBox.upload h1:before{content:"\F15B\0000A0"}#apijsBox.progress h1:before{content:"\F1D8\0000A0"}#apijsBox.waiting h1:before{content:"\F1D8\0000A0"}#apijsBox.download h1:before{content:"\F15B\0000A0"}#apijsBox.print h1:before{content:"\E80D\0000A0"}#apijsBox.error h1:before{content:"\E80A\0000A0"}#apijsBox.warning h1:before{content:"\E80A\0000A0"}#apijsBox div.btns button span:before{float:left}#apijsBox div.btns button.cancel span:before{content:"\E801\0000A0"}#apijsBox div.btns button.confirm span:before{content:"\E800\0000A0"}#apijsBox div.btns button.browse span:before{content:"\E802\0000A0"}#apijsBox kbd.start:before{content:"\E807";display:inline-block;transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}#apijsBox kbd.bottom:before{content:"\E804"}#apijsBox kbd.left:before{content:"\E805"}#apijsBox kbd.right:before{content:"\E806"}#apijsBox kbd.topk:before{content:"\E807"}#apijsBox kbd.plus:before{content:"\E809"}#apijsBox kbd.minus:before{content:"\E808"}@keyframes apijsProgress{0%{width:20%}50%{transform:translate(400%,0)}100%{width:20%}}@-webkit-keyframes apijsProgress{0%{width:20%}50%{left:80%}100%{width:20%}}@keyframes apijsFocus{50%{border-color:#bbb}}@-webkit-keyframes apijsFocus{50%{border-color:#bbb}}
|
@@ -0,0 +1,73 @@
|
|
1
|
+
/**
|
2
|
+
* Created D/15/12/2013
|
3
|
+
* Updated L/18/05/2020
|
4
|
+
*
|
5
|
+
* Copyright 2008-2020 | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
6
|
+
* https://www.luigifab.fr/redmine/apijs
|
7
|
+
*
|
8
|
+
* This program is free software, you can redistribute it or modify
|
9
|
+
* it under the terms of the GNU General Public License (GPL) as published
|
10
|
+
* by the free software foundation, either version 2 of the license, or
|
11
|
+
* (at your option) any later version.
|
12
|
+
*
|
13
|
+
* This program is distributed in the hope that it will be useful,
|
14
|
+
* but without any warranty, without even the implied warranty of
|
15
|
+
* merchantability or fitness for a particular purpose. See the
|
16
|
+
* GNU General Public License (GPL) for more details.
|
17
|
+
*/
|
18
|
+
|
19
|
+
/* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& dialogues &&& */
|
20
|
+
#apijsDialog { margin:0; }
|
21
|
+
|
22
|
+
#apijsBox { font-size:0.8rem; border:0; }
|
23
|
+
#apijsBox a { color:blue; }
|
24
|
+
|
25
|
+
#apijsBox.options.editattachment input[type="text"] {
|
26
|
+
display:block; padding:0.3em; width:calc(100% - 4px - 0.6em);
|
27
|
+
border:1px solid #888; background-color:#EEE;
|
28
|
+
}
|
29
|
+
|
30
|
+
/* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& albums et listes &&& */
|
31
|
+
body div.attachments.album { margin:1em 0; text-align:left; }
|
32
|
+
body div.attachments.album dd { position:relative; margin:0.5em 0 0 0.15em; min-height:1.8em; }
|
33
|
+
body div.attachments.album dd.big { min-height:5em; }
|
34
|
+
body div.attachments.album dd div { float:right; }
|
35
|
+
|
36
|
+
body div.attachments.album dd span {
|
37
|
+
display:block; line-height:16px; overflow:hidden;
|
38
|
+
font-size:inherit; color:inherit; white-space:nowrap; text-overflow:ellipsis;
|
39
|
+
}
|
40
|
+
|
41
|
+
body div.attachments.album dd span:first-child { margin-right:60px; }
|
42
|
+
|
43
|
+
body ul.attachments { margin:1em 0; padding:0; list-style:none; }
|
44
|
+
body ul.attachments li { padding:0.25em 0.5em; transition:background-color 0.3s; }
|
45
|
+
body ul.attachments li:hover { background-color:#EFEFEF; }
|
46
|
+
|
47
|
+
body ul.attachments li a { vertical-align:middle; }
|
48
|
+
body ul.attachments li strong { padding:0 0.3em; }
|
49
|
+
body ul.attachments li span { padding:0 0.1em; }
|
50
|
+
body ul.attachments li span.size { color:gray; }
|
51
|
+
body ul.attachments li span.date { color:gray; }
|
52
|
+
|
53
|
+
/* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& boutons &&& */
|
54
|
+
body button.attachment, body ul.attachments a[id^="slideshow"] {
|
55
|
+
display:inline-block; padding:0; width:16px; height:16px; vertical-align:middle;
|
56
|
+
text-decoration:none !important; border:0; background-color:transparent; cursor:pointer; opacity:0.75;
|
57
|
+
}
|
58
|
+
|
59
|
+
body button.attachment.show, body ul.attachments a[id^="slideshow"] { background-image:url("../../../images/magnifier.png"); }
|
60
|
+
body button.attachment.download { background-image:url("../../../images/attachment.png"); }
|
61
|
+
body button.attachment.delete { background-image:url("../../../images/delete.png"); }
|
62
|
+
body button.attachment.edit { background-image:url("../../../images/edit.png"); }
|
63
|
+
|
64
|
+
/* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& configuration &&& */
|
65
|
+
body fieldset.apijs.tabular.settings { margin:1em; padding:0.5em; border:1px solid #CCC; }
|
66
|
+
body fieldset.apijs.tabular.settings p span.cmd { white-space:pre-wrap; }
|
67
|
+
body fieldset.apijs.tabular.settings p em.info { margin:0.2em 0; line-height:140%; }
|
68
|
+
body fieldset.apijs.tabular.settings p a + em.info { margin:0; }
|
69
|
+
body fieldset.apijs.tabular.settings p label.bis { margin-left:1px; margin-right:0.7em; width:auto; min-width:5.5em; text-align:left; }
|
70
|
+
body fieldset.apijs.tabular.settings p label.bis input { margin:0; }
|
71
|
+
|
72
|
+
/* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& navigateur &&& */
|
73
|
+
body .flash.error.apijs { margin:0; border:0; border-radius:0; font-size:11px; }
|
@@ -0,0 +1,30 @@
|
|
1
|
+
cs:
|
2
|
+
apijs_browser_warning: "<strong>Warning:</strong> your browser <strong>%{n} %{v}</strong> is outdated, please <a %{l}>upgrade your browser</a>."
|
3
|
+
apijs_title_album: "Photo gallery"
|
4
|
+
apijs_title_download: "Stáhnout (%{v})"
|
5
|
+
apijs_title_files: "Files list"
|
6
|
+
apijs_config_apijs: "Obecné"
|
7
|
+
apijs_config_enable: "Enable apijs"
|
8
|
+
apijs_example1_title: "PHP manual"
|
9
|
+
apijs_example1_text: "It is important to note that just because the mail was accepted for delivery, it doesn't mean the mail will actually reach the intended destination."
|
10
|
+
apijs_example: "Například %{v}"
|
11
|
+
apijs_example2_title: "Surprise!"
|
12
|
+
apijs_example2_text: "You are watching this video without proprietary extension thanks to the new [em]video[/em] tag included in the [strong]HTML 5[/strong] language."
|
13
|
+
apijs_example2_link: "Webové stránky: %{v}"
|
14
|
+
apijs_config_sort_order: "Sort files alphabetically"
|
15
|
+
apijs_config_browser: "Check browser version"
|
16
|
+
apijs_config_browser_help: "Firefox 36+, Chrome 31+, Opera 19+, Edge 16+, Safari 9+ (checks even if the apijs is disabled)."
|
17
|
+
permission_edit_attachments: "(apijs) Edit files description"
|
18
|
+
permission_delete_attachments: "(apijs) Remove files"
|
19
|
+
apijs_config_directories: "Directories size"
|
20
|
+
apijs_config_album: "Photo albums"
|
21
|
+
apijs_config_show_album: "Display albums"
|
22
|
+
apijs_config_show_album_infos: "Display all information"
|
23
|
+
apijs_config_show_filename: "Display the name in the slide show"
|
24
|
+
apijs_config_show_exifdate: "Display the date in the slide show"
|
25
|
+
apijs_config_mimetypes: "Use the following files"
|
26
|
+
apijs_config_album_exclude_name: "Exclude photos from album<br />whose name begins with"
|
27
|
+
apijs_config_album_exclude_desc: "Exclude photos from album<br />whose description begins with"
|
28
|
+
apijs_config_create_all: "Generate the three images"
|
29
|
+
apijs_config_create_all_info: "Generates thumbnails and image preview at the same time, it slows the first display, but accelerates the first display of the slide show."
|
30
|
+
apijs_config_programs: "Programs version"
|
@@ -0,0 +1,30 @@
|
|
1
|
+
de:
|
2
|
+
apijs_browser_warning: "<strong>Achtung:</strong> Ihr Browser <strong>%{n} %{v}</strong> ist veraltet. Bitte <a %{l}>laden Sie eine neue Version Ihres Browser runter</a>."
|
3
|
+
apijs_title_album: "Fotogalerie"
|
4
|
+
apijs_title_download: "Download (%{v})"
|
5
|
+
apijs_title_files: "Liste der Dateien"
|
6
|
+
apijs_config_apijs: "Allgemein"
|
7
|
+
apijs_config_enable: "Apijs aktivieren"
|
8
|
+
apijs_example1_title: "PHP-Handbuch"
|
9
|
+
apijs_example1_text: "Dass eine E-Mail für den Versand akzeptiert wurde, bedeutet nicht, dass sie auch wirklich den gewünschten Empfänger erreichen wird."
|
10
|
+
apijs_example: "Beispiel %{v}"
|
11
|
+
apijs_example2_title: "Überraschung!"
|
12
|
+
apijs_example2_text: "Sie sehen dieses Video ohne Erweiterung dank dem neuen [em]video[/em] Tag welches im Standard [strong]HTML 5[/strong] integriert ist."
|
13
|
+
apijs_example2_link: "Website: %{v}"
|
14
|
+
apijs_config_sort_order: "Dateien alphabetisch sortieren"
|
15
|
+
apijs_config_browser: "Browser Version überprüfen"
|
16
|
+
apijs_config_browser_help: "Firefox 36+, Chrome 31+, Opera 19+, Edge 16+, Safari 9+ (überprüft ebenfalls ob apijs aktiviert ist)."
|
17
|
+
permission_edit_attachments: "(apijs) Beschreibung der Datei bearbeiten"
|
18
|
+
permission_delete_attachments: "(apijs) Datei löschen"
|
19
|
+
apijs_config_directories: "Größe des Ordners"
|
20
|
+
apijs_config_album: "Fotoalbum"
|
21
|
+
apijs_config_show_album: "Alben anzeigen"
|
22
|
+
apijs_config_show_album_infos: "Alle Informationen anzeigen"
|
23
|
+
apijs_config_show_filename: "Name in der Diashow anzeigen"
|
24
|
+
apijs_config_show_exifdate: "Datum in der Diashow anzeigen"
|
25
|
+
apijs_config_mimetypes: "Folgende Dateien verwenden"
|
26
|
+
apijs_config_album_exclude_name: "Fotoalben ausschliessen die<br />mit folgendem Namen beginnen"
|
27
|
+
apijs_config_album_exclude_desc: "Fotoalben ausschliessen deren Beschreibung<br />mit folgendem Term beginnt"
|
28
|
+
apijs_config_create_all: "Generate the three images"
|
29
|
+
apijs_config_create_all_info: "Generiert Thumbnail und Vorschaubild gleichzeitig, dies verlangsamt das Anzeigen der Seite beim ersten mal, es ermöglicht jedoch eine schnellere Anzeige der Diashow."
|
30
|
+
apijs_config_programs: "Version des Programms"
|
@@ -0,0 +1,30 @@
|
|
1
|
+
en:
|
2
|
+
apijs_browser_warning: "<strong>Warning:</strong> your browser <strong>%{n} %{v}</strong> is outdated, please <a %{l}>upgrade your browser</a>."
|
3
|
+
apijs_title_album: "Photo gallery"
|
4
|
+
apijs_title_download: "Download (%{v})"
|
5
|
+
apijs_title_files: "Files list"
|
6
|
+
apijs_config_apijs: "General"
|
7
|
+
apijs_config_enable: "Enable apijs"
|
8
|
+
apijs_example1_title: "PHP manual"
|
9
|
+
apijs_example1_text: "It is important to note that just because the mail was accepted for delivery, it doesn't mean the mail will actually reach the intended destination."
|
10
|
+
apijs_example: "Example %{v}"
|
11
|
+
apijs_example2_title: "Surprise!"
|
12
|
+
apijs_example2_text: "You are watching this video without proprietary extension thanks to the new [em]video[/em] tag included in the [strong]HTML 5[/strong] language."
|
13
|
+
apijs_example2_link: "Website: %{v}"
|
14
|
+
apijs_config_sort_order: "Sort files alphabetically"
|
15
|
+
apijs_config_browser: "Check browser version"
|
16
|
+
apijs_config_browser_help: "Firefox 36+, Chrome 31+, Opera 19+, Edge 16+, Safari 9+ (checks even if the apijs is disabled)."
|
17
|
+
permission_edit_attachments: "(apijs) Edit files description"
|
18
|
+
permission_delete_attachments: "(apijs) Remove files"
|
19
|
+
apijs_config_directories: "Directories size"
|
20
|
+
apijs_config_album: "Photo albums"
|
21
|
+
apijs_config_show_album: "Display albums"
|
22
|
+
apijs_config_show_album_infos: "Display all information"
|
23
|
+
apijs_config_show_filename: "Display the name in the slide show"
|
24
|
+
apijs_config_show_exifdate: "Display the date in the slide show"
|
25
|
+
apijs_config_mimetypes: "Use the following files"
|
26
|
+
apijs_config_album_exclude_name: "Exclude photos from album<br />whose name begins with"
|
27
|
+
apijs_config_album_exclude_desc: "Exclude photos from album<br />whose description begins with"
|
28
|
+
apijs_config_create_all: "Generate the three images"
|
29
|
+
apijs_config_create_all_info: "Generates thumbnails and image preview at the same time, it slows the first display, but accelerates the first display of the slide show."
|
30
|
+
apijs_config_programs: "Programs version"
|