1
0
Fork 0
mirror of https://github.com/lrsjng/h5ai synced 2025-12-06 08:52:45 +01:00
This commit is contained in:
Fuan 2021-01-24 18:12:19 +01:00 committed by GitHub
commit 0326ce12d1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
42 changed files with 962 additions and 46 deletions

View file

@ -3,6 +3,7 @@
"dateFormat": "YYYY-MM-DD HH:mm", "dateFormat": "YYYY-MM-DD HH:mm",
"details": "besonderhede", "details": "besonderhede",
"displayAll": "Vertoon alles",
"download": "aflaai", "download": "aflaai",
"empty": "leeg", "empty": "leeg",
"files": "lêers", "files": "lêers",
@ -10,9 +11,18 @@
"folders": "gidse", "folders": "gidse",
"grid": "rooster", "grid": "rooster",
"icons": "ikone", "icons": "ikone",
"info": "Inligting",
"language": "Taal",
"lastModified": "Laas verander", "lastModified": "Laas verander",
"name": "Naam", "name": "Naam",
"noMatch": "geen resultaat", "noMatch": "geen resultaat",
"pagination": "Paginasie",
"pagInputBtn": "GO",
"pagInputTxt": "bladsy",
"parentDirectory": "Hoër Vlak", "parentDirectory": "Hoër Vlak",
"size": "Grootte" "perPage": "### per bladsy",
"search": "soek",
"size": "Grootte",
"tree": "boom",
"view": "geaardheid"
} }

View file

@ -4,15 +4,25 @@
"dateFormat": "DD-MM-YYYY HH:mm", "dateFormat": "DD-MM-YYYY HH:mm",
"details": "детайли", "details": "детайли",
"download": "изтегляне", "download": "изтегляне",
"displayAll": "Показване на ВСИЧКИ",
"empty": "празна", "empty": "празна",
"files": "файлове", "files": "файлове",
"filter": "филтър", "filter": "филтър",
"folders": "директории", "folders": "директории",
"grid": "мрежа", "grid": "мрежа",
"icons": "икони", "icons": "икони",
"info": "Информация",
"language": "език",
"lastModified": "Последна промяна", "lastModified": "Последна промяна",
"name": "Име", "name": "Име",
"noMatch": "няма съвпадение", "noMatch": "няма съвпадение",
"pagination": "Пагинация",
"pagInputBtn": "ОТИВАМ",
"pagInputTxt": "страница",
"parentDirectory": "Предходна директория", "parentDirectory": "Предходна директория",
"size": "Размер" "perPage": "### на страница",
"search": "търсене",
"size": "Размер",
"tree": "Дърво",
"view": "Разпореждане"
} }

View file

@ -1,18 +1,28 @@
{ {
"lang": "čeština", "lang": "čeština",
"dateFormat": "DD.MM.YYYY HH:mm", "DateFormat": "DD.MM.YYYY HH:mm",
"details": "Podrobnosti", "details": "Podrobnosti",
"download": "Stáhnout", "download": "Stáhnout",
"displayAll": "Zobrazit VŠE",
"empty": "Prázdná složka", "empty": "Prázdná složka",
"files": "souborů", "files": "souborů",
"filter": "Filtr", "filter": "Filtr",
"folders": "složek", "folders": "složek",
"grid": "Seznam", "grid": "Seznam",
"icons": "Velké ikony", "icons": "Velké ikony",
"info": "Informace",
"language": "Jazyk",
"lastModified": "Datum změny", "lastModified": "Datum změny",
"name": "Název", "name": "Název",
"noMatch": "Žádná shoda", "noMatch": "Žádná shoda",
"pagination": "Stránkování",
"pagInputBtn": "JÍT",
"pagInputTxt": "strana",
"parentDirectory": "Nadřazený adresář", "parentDirectory": "Nadřazený adresář",
"size": "Velikost" "perPage": "### na stránku",
"search": "vyhledávání",
"size": "Velikost",
"tree": "Strom",
"view": "Dispozice"
} }

View file

@ -4,15 +4,25 @@
"dateFormat": "DD-MM-YYYY HH:mm", "dateFormat": "DD-MM-YYYY HH:mm",
"details": "detaljer", "details": "detaljer",
"download": "download", "download": "download",
"displayAll": "Vis ALLE",
"empty": "tom", "empty": "tom",
"files": "filer", "files": "filer",
"filter": "filter", "filter": "filter",
"folders": "mapper", "folders": "mapper",
"grid": "grid", "grid": "grid",
"icons": "ikoner", "icons": "ikoner",
"info": "Oplysninger",
"language": "Sprog",
"lastModified": "Sidst ændret", "lastModified": "Sidst ændret",
"name": "Navn", "name": "Navn",
"noMatch": "ingen match", "noMatch": "ingen match",
"pagination": "Paginering",
"pagInputBtn": "GÅ",
"pagInputTxt": "side",
"parentDirectory": "Overordnet mappe", "parentDirectory": "Overordnet mappe",
"size": "Størrelse" "perPage": "### pr. Side",
"search": "søge",
"size": "Størrelse",
"tree": "Træ",
"view": "Disposition"
} }

View file

@ -4,17 +4,23 @@
"dateFormat": "DD.MM.YYYY HH:mm", "dateFormat": "DD.MM.YYYY HH:mm",
"details": "Details", "details": "Details",
"download": "Download", "download": "Download",
"displayAll": "ALLE anzeigen",
"empty": "leer", "empty": "leer",
"files": "Dateien", "files": "Dateien",
"filter": "filtern", "filter": "filtern",
"folders": "Ordner", "folders": "Ordner",
"grid": "Gitter", "grid": "Gitter",
"icons": "Icons", "icons": "Icons",
"info": "Informationen",
"language": "Sprache", "language": "Sprache",
"lastModified": "Geändert", "lastModified": "Geändert",
"name": "Name", "name": "Name",
"noMatch": "keine Treffer", "noMatch": "keine Treffer",
"pagination": "Seitennummerierung",
"pagInputBtn": "GEHEN",
"pagInputTxt": "Seite",
"parentDirectory": "Übergeordnetes Verzeichnis", "parentDirectory": "Übergeordnetes Verzeichnis",
"perPage": "### pro Seite",
"search": "suchen", "search": "suchen",
"size": "Größe", "size": "Größe",
"tree": "Baum", "tree": "Baum",

View file

@ -4,15 +4,25 @@
"dateFormat": "DD/MM/YYYY HH:mm", "dateFormat": "DD/MM/YYYY HH:mm",
"details": "λεπτομέρειες", "details": "λεπτομέρειες",
"download": "μεταμόρφωση", "download": "μεταμόρφωση",
"displayAll": "Εμφάνιση ΟΛΩΝ",
"empty": "κενό", "empty": "κενό",
"files": "αρχεία", "files": "αρχεία",
"filter": "φίλτρο", "filter": "φίλτρο",
"folders": "φάκελοι", "folders": "φάκελοι",
"grid": "πλέγμα", "grid": "πλέγμα",
"icons": "εικονίδια", "icons": "εικονίδια",
"info": "Πληροφορίες",
"language": "Γλώσσα",
"lastModified": "Τελευταία τροποποίηση", "lastModified": "Τελευταία τροποποίηση",
"name": "Όνομα", "name": "Όνομα",
"noMatch": "κανένα αποτέλεσμα", "noMatch": "κανένα αποτέλεσμα",
"pagination": "Σελιδοποίηση",
"pagInputBtn": "ΠΗΓΑΙΝΩ",
"pagInputTxt": "σελίδα",
"parentDirectory": "Προηγούμενος Κατάλογος", "parentDirectory": "Προηγούμενος Κατάλογος",
"size": "Μέγεθος" "perPage": "### ανά σελίδα",
"search": "ψάχνω",
"size": "Μέγεθος",
"tree": "Δέντρο",
"view": "Διάθεση"
} }

View file

@ -5,17 +5,23 @@
"dateFormat": "YYYY-MM-DD HH:mm", "dateFormat": "YYYY-MM-DD HH:mm",
"details": "details", "details": "details",
"download": "download", "download": "download",
"displayAll": "Display ALL",
"empty": "empty", "empty": "empty",
"files": "files", "files": "files",
"filter": "filter", "filter": "filter",
"folders": "folders", "folders": "folders",
"grid": "grid", "grid": "grid",
"icons": "icons", "icons": "icons",
"info": "Informations",
"language": "Language", "language": "Language",
"lastModified": "Last modified", "lastModified": "Last modified",
"name": "Name", "name": "Name",
"noMatch": "no match", "noMatch": "no match",
"pagination": "Pagination",
"pagInputBtn": "GO",
"pagInputTxt": "page",
"parentDirectory": "Parent Directory", "parentDirectory": "Parent Directory",
"perPage": "### per page",
"search": "search", "search": "search",
"size": "Size", "size": "Size",
"tree": "Tree", "tree": "Tree",

View file

@ -4,19 +4,25 @@
"dateFormat": "DD/MM/YYYY HH:mm", "dateFormat": "DD/MM/YYYY HH:mm",
"details": "Detalles", "details": "Detalles",
"download": "Descargar", "download": "Descargar",
"displayAll": "Mostrar TODO",
"empty": "vacío", "empty": "vacío",
"files": "Archivos", "files": "Archivos",
"filter": "Filtrar", "filter": "Filtrar",
"folders": "Directorios", "folders": "Directorios",
"grid": "Cuadrícula", "grid": "Cuadrícula",
"icons": "Íconos", "icons": "Íconos",
"info": "Informaciones",
"language": "Idioma", "language": "Idioma",
"lastModified": "Última modificación", "lastModified": "Última modificación",
"name": "Nombre", "name": "Nombre",
"noMatch": "Sin coincidencias", "noMatch": "Sin coincidencias",
"pagination": "Paginación",
"pagInputBtn": "ANDA",
"pagInputTxt": "página",
"parentDirectory": "Directorio superior", "parentDirectory": "Directorio superior",
"perPage": "### por página",
"search": "buscar", "search": "buscar",
"size": "Tamaño", "size": "Tamaño",
"tree": "Arbol", "tree": "Arbol",
"view": "Vista" "view": "Disposición"
} }

View file

@ -4,19 +4,25 @@
"dateFormat": "DD-MM-YYYY HH.mm", "dateFormat": "DD-MM-YYYY HH.mm",
"details": "täpsem info", "details": "täpsem info",
"download": "laadi alla", "download": "laadi alla",
"displayAll": "Kuva KÕIK",
"empty": "tühi", "empty": "tühi",
"files": "failid", "files": "failid",
"filter": "filter", "filter": "filter",
"folders": "kataloogid", "folders": "kataloogid",
"grid": "võre", "grid": "võre",
"icons": "ikoonid", "icons": "ikoonid",
"info": "Teave",
"language": "Keel", "language": "Keel",
"lastModified": "Viimati muudetud", "lastModified": "Viimati muudetud",
"name": "Nimi", "name": "Nimi",
"noMatch": "ei leitud sobivat", "noMatch": "ei leitud sobivat",
"pagination": "Lehekülgede otsimine",
"pagInputBtn": "SAADA",
"pagInputTxt": "lehele",
"parentDirectory": "Emakataloog", "parentDirectory": "Emakataloog",
"perPage": "### lehe kohta",
"search": "otsi", "search": "otsi",
"size": "Suurus", "size": "Suurus",
"tree": "Puu", "tree": "Puu",
"view": "Vaade" "view": "Dispositsioon"
} }

View file

@ -4,15 +4,25 @@
"dateFormat": "DD.MM.YYYY HH:mm", "dateFormat": "DD.MM.YYYY HH:mm",
"details": "tiedot", "details": "tiedot",
"download": "lataa", "download": "lataa",
"displayAll": "Näytä KAIKKI",
"empty": "tyhjä", "empty": "tyhjä",
"files": "tiedostoa", "files": "tiedostoa",
"filter": "suodata", "filter": "suodata",
"folders": "hakemistoa", "folders": "hakemistoa",
"grid": "ruudukko", "grid": "ruudukko",
"icons": "ikonit", "icons": "ikonit",
"info": "Tiedot",
"language": "Kieli",
"lastModified": "Viimeksi muokattu", "lastModified": "Viimeksi muokattu",
"name": "Nimi", "name": "Nimi",
"noMatch": "ei osumia", "noMatch": "ei osumia",
"pagination": "Sivunumerointi",
"pagInputBtn": "MENNÄ",
"pagInputTxt": "sivu",
"parentDirectory": "Ylähakemisto", "parentDirectory": "Ylähakemisto",
"size": "Koko" "perPage": "### per sivu",
"search": "etsintä",
"size": "Koko",
"tree": "Puu",
"view": "Hävittäminen"
} }

View file

@ -3,6 +3,7 @@
"dateFormat": "DD/MM/YYYY HH:mm", "dateFormat": "DD/MM/YYYY HH:mm",
"details": "détails", "details": "détails",
"displayAll": "Afficher tout",
"download": "télécharger", "download": "télécharger",
"empty": "vide", "empty": "vide",
"files": "Fichiers", "files": "Fichiers",
@ -10,11 +11,16 @@
"folders": "Répertoires", "folders": "Répertoires",
"grid": "grille", "grid": "grille",
"icons": "icônes", "icons": "icônes",
"info": "Informations",
"language": "Langue", "language": "Langue",
"lastModified": "Dernière modification", "lastModified": "Dernière modification",
"name": "Nom", "name": "Nom",
"noMatch": "rien trouvé", "noMatch": "rien trouvé",
"pagination": "Pagination",
"pagInputBtn": "GO",
"pagInputTxt": "page",
"parentDirectory": "Dossier parent", "parentDirectory": "Dossier parent",
"perPage": "### par page",
"search": "rechercher", "search": "rechercher",
"size": "Taille", "size": "Taille",
"tree": "Arborescence", "tree": "Arborescence",

View file

@ -4,14 +4,25 @@
"dateFormat": "DD.MM.YYYY HH:mm", "dateFormat": "DD.MM.YYYY HH:mm",
"details": "פרטים", "details": "פרטים",
"download": "הורדה", "download": "הורדה",
"displayAll": "הצג הכל",
"empty": "ריק", "empty": "ריק",
"files": "קבצים", "files": "קבצים",
"filter": "סינון", "filter": "סינון",
"folders": "תיקיות", "folders": "תיקיות",
"grid": "רֶשֶׁת",
"icons": "צלמיות", "icons": "צלמיות",
"info": "מידע",
"language": "שפה",
"lastModified": "שינוי אחרון", "lastModified": "שינוי אחרון",
"name": "שם", "name": "שם",
"noMatch": "אין תוצאות", "noMatch": "אין תוצאות",
"pagination": "דִפּוּף",
"pagInputBtn": "ללכת",
"pagInputTxt": "עמוד",
"parentDirectory": "תיקיית הורה", "parentDirectory": "תיקיית הורה",
"size": "גודל" "perPage": "לעמוד ###",
"search": "לחפש",
"size": "גודל",
"tree": "עֵץ",
"view": "מֶזֶג"
} }

View file

@ -4,15 +4,25 @@
"dateFormat": "DD.MM.YYYY HH:mm", "dateFormat": "DD.MM.YYYY HH:mm",
"details": "विस्तार", "details": "विस्तार",
"download": "डाउनलोड", "download": "डाउनलोड",
"displayAll": "सभी प्रदर्शित करें",
"empty": "खाली", "empty": "खाली",
"files": "फ़ाइलें", "files": "फ़ाइलें",
"filter": "फ़िल्टर", "filter": "फ़िल्टर",
"folders": "फोल्डर", "folders": "फोल्डर",
"grid": "ग्रिड", "grid": "ग्रिड",
"icons": "आइकॉन", "icons": "आइकॉन",
"info": "जानकारियां",
"language": "भाषा",
"lastModified": "पिछला परिवर्तन", "lastModified": "पिछला परिवर्तन",
"name": "नाम", "name": "नाम",
"noMatch": "कोई समानता नहीं", "noMatch": "कोई समानता नहीं",
"pagination": "पृष्ठ पर अंक लगाना",
"pagInputBtn": "जाओ",
"pagInputTxt": "पृष्ठ",
"parentDirectory": "मूल डायरेक्टरी", "parentDirectory": "मूल डायरेक्टरी",
"size": "माप" "perPage": "### प्रति पेज।",
"search": "खोज",
"size": "माप",
"tree": "पेड़",
"view": "स्वभाव"
} }

View file

@ -4,15 +4,25 @@
"dateFormat": "YYYY-MM-DD HH:mm", "dateFormat": "YYYY-MM-DD HH:mm",
"details": "detalji", "details": "detalji",
"download": "preuzmi", "download": "preuzmi",
"displayAll": "Prikaži SVE",
"empty": "prazno", "empty": "prazno",
"files": "datoteka", "files": "datoteka",
"filter": "filter", "filter": "filter",
"folders": "direktorij(a)", "folders": "direktorij(a)",
"grid": "mreža", "grid": "mreža",
"icons": "ikone", "icons": "ikone",
"info": "Informacije",
"language": "Jezik",
"lastModified": "Posljednja izmjena", "lastModified": "Posljednja izmjena",
"name": "Naziv", "name": "Naziv",
"noMatch": "nema rezultata", "noMatch": "nema rezultata",
"pagination": "Paginacija",
"pagInputBtn": "IĆI",
"pagInputTxt": "stranica",
"parentDirectory": "Natrag", "parentDirectory": "Natrag",
"size": "Veličina" "perPage": "### po stranici",
"search": "traženje",
"size": "Veličina",
"tree": "Drvorez",
"view": "Dispozicija"
} }

View file

@ -4,13 +4,25 @@
"dateFormat": "YYYY-MM-DD HH:mm", "dateFormat": "YYYY-MM-DD HH:mm",
"details": "részletek", "details": "részletek",
"download": "letöltés", "download": "letöltés",
"displayAll": "Összes megjelenítése",
"empty": "üres", "empty": "üres",
"files": "fájlok", "files": "fájlok",
"filter": "szűrő",
"folders": "mappák", "folders": "mappák",
"grid": "rács",
"icons": "ikonok", "icons": "ikonok",
"info": "Információk",
"language": "Nyelv",
"lastModified": "Utoljára módosítva", "lastModified": "Utoljára módosítva",
"name": "Név", "name": "Név",
"noMatch": "nincs találat", "noMatch": "nincs találat",
"pagination": "Lapszámozás",
"pagInputBtn": "MEGY",
"pagInputTxt": "oldal",
"parentDirectory": "Szülő könyvtár", "parentDirectory": "Szülő könyvtár",
"size": "Méret" "perPage": "### oldalanként",
"search": "keresés",
"size": "Méret",
"tree": "Fa szerkezete",
"view": "Diszpozíció"
} }

View file

@ -4,17 +4,23 @@
"dateFormat": "DD-MM-YYYY HH:mm", "dateFormat": "DD-MM-YYYY HH:mm",
"details": "rincian", "details": "rincian",
"download": "unduh", "download": "unduh",
"displayAll": "Tampilkan SEMUA",
"empty": "kosong", "empty": "kosong",
"files": "berkas", "files": "berkas",
"filter": "saring", "filter": "saring",
"folders": "pelipat", "folders": "pelipat",
"grid": "jaring", "grid": "jaring",
"icons": "ikon", "icons": "ikon",
"info": "Informasi",
"language": "Bahasa", "language": "Bahasa",
"lastModified": "Di modifikasi", "lastModified": "Di modifikasi",
"name": "Nama", "name": "Nama",
"noMatch": "tidak cocok", "noMatch": "tidak cocok",
"pagination": "Penomoran halaman",
"pagInputBtn": "PERGI",
"pagInputTxt": "halaman",
"parentDirectory": "Direktori induk", "parentDirectory": "Direktori induk",
"perPage": "### per halaman",
"search": "cari", "search": "cari",
"size": "Ukuran", "size": "Ukuran",
"tree": "Pohon", "tree": "Pohon",

View file

@ -4,19 +4,25 @@
"dateFormat": "DD-MM-YYYY HH:mm", "dateFormat": "DD-MM-YYYY HH:mm",
"details": "dettagli", "details": "dettagli",
"download": "download", "download": "download",
"displayAll": "Visualizza TUTTO",
"empty": "vuota", "empty": "vuota",
"files": "file", "files": "file",
"filter": "filtra", "filter": "filtra",
"folders": "cartelle", "folders": "cartelle",
"grid": "griglia", "grid": "griglia",
"icons": "icone", "icons": "icone",
"language": "Linugua", "info": "Informazioni",
"language": "Lingua",
"lastModified": "Ultima modifica", "lastModified": "Ultima modifica",
"name": "Nome", "name": "Nome",
"noMatch": "nessun risultato", "noMatch": "nessun risultato",
"pagination": "Paginatura",
"pagInputBtn": "GO",
"pagInputTxt": "pagina",
"parentDirectory": "Cartella Superiore", "parentDirectory": "Cartella Superiore",
"perPage": "### per pagina",
"search": "cerca", "search": "cerca",
"size": "Dimensione", "size": "Dimensione",
"tree": "Albero", "tree": "Arborescenza",
"view": "Vista" "view": "Disposizione"
} }

View file

@ -4,17 +4,25 @@
"dateFormat": "YYYY-MM-DD HH:mm", "dateFormat": "YYYY-MM-DD HH:mm",
"details": "詳細", "details": "詳細",
"download": "ダウンロード", "download": "ダウンロード",
"displayAll": "すべてを表示",
"empty": "(空)", "empty": "(空)",
"files": "ファイル", "files": "ファイル",
"filter": "フィルター", "filter": "フィルター",
"folders": "フォルダー", "folders": "フォルダー",
"grid": "グリッド", "grid": "グリッド",
"icons": "アイコン", "icons": "アイコン",
"info": "情報",
"language": "言語", "language": "言語",
"lastModified": "最終変更日時", "lastModified": "最終変更日時",
"name": "名前", "name": "名前",
"noMatch": "一致する項目が見つかりません", "noMatch": "一致する項目が見つかりません",
"pagination": "ページネーション",
"pagInputBtn": "取得",
"pagInputTxt": "ページ",
"parentDirectory": "親ディレクトリへ", "parentDirectory": "親ディレクトリへ",
"perPage": "ページあたり###",
"search": "探索",
"size": "サイズ", "size": "サイズ",
"view": "ビュー" "tree": "ツリー",
"view": "配置"
} }

View file

@ -4,19 +4,25 @@
"dateFormat": "YYYY-MM-DD HH:mm", "dateFormat": "YYYY-MM-DD HH:mm",
"details": "자세히", "details": "자세히",
"download": "다운로드", "download": "다운로드",
"displayAll": "모두 표시",
"empty": "빈 폴더", "empty": "빈 폴더",
"files": "파일", "files": "파일",
"filter": "필터", "filter": "필터",
"folders": "폴더", "folders": "폴더",
"grid": "그리드", "grid": "그리드",
"icons": "아이콘", "icons": "아이콘",
"info": "정보",
"language": "언어", "language": "언어",
"lastModified": "최근 수정일", "lastModified": "최근 수정일",
"name": "파일명", "name": "파일명",
"noMatch": "해당파일이 없습니다.", "noMatch": "해당파일이 없습니다.",
"pagination": "쪽수 매기기",
"pagInputBtn": "이동",
"pagInputTxt": "페이지",
"parentDirectory": "상위폴더", "parentDirectory": "상위폴더",
"perPage": "페이지 당 ### 개",
"search": "검색", "search": "검색",
"size": "크기", "size": "크기",
"tree": "트리", "tree": "트리",
"view": "보기" "view": "처분"
} }

View file

@ -4,19 +4,25 @@
"dateFormat": "YYYY-MM-DD HH:mm", "dateFormat": "YYYY-MM-DD HH:mm",
"details": "detaļas", "details": "detaļas",
"download": "lejupielādēt", "download": "lejupielādēt",
"displayAll": "Parādīt VISU",
"empty": "tukšs", "empty": "tukšs",
"files": "faili", "files": "faili",
"filter": "filtrēt", "filter": "filtrēt",
"folders": "mapes", "folders": "mapes",
"grid": "režģis", "grid": "režģis",
"icons": "ikonas", "icons": "ikonas",
"info": "Informācija",
"language": "Valoda", "language": "Valoda",
"lastModified": "Pēdējoreiz modificēts", "lastModified": "Pēdējoreiz modificēts",
"name": "Nosaukums", "name": "Nosaukums",
"noMatch": "nav sakritības", "noMatch": "nav sakritības",
"pagination": "Lapošana",
"pagInputBtn": "IET",
"pagInputTxt": "lapa",
"parentDirectory": "Vecākdirektorijs", "parentDirectory": "Vecākdirektorijs",
"perPage": "### vienā lappusē",
"search": "meklēt", "search": "meklēt",
"size": "Izmērs", "size": "Izmērs",
"tree": "Koks", "tree": "Koks",
"view": "Skats" "view": "Dispozīcija"
} }

View file

@ -1,15 +1,28 @@
{ {
"lang": "norwegian", "lang": "norwegian",
"dateFormat": "YYYY-MM-DD HH:mm",
"details": "detaljer", "details": "detaljer",
"download": "last ned", "download": "last ned",
"displayAll": "Vis ALLE",
"empty": "tom", "empty": "tom",
"files": "filer", "files": "filer",
"filter": "filter",
"folders": "mapper", "folders": "mapper",
"grid": "nett",
"icons": "ikoner", "icons": "ikoner",
"info": "Informasjon",
"language": "Språk",
"lastModified": "Sist endret", "lastModified": "Sist endret",
"name": "Navn", "name": "Navn",
"noMatch": "ingen treff", "noMatch": "ingen treff",
"pagination": "Paginering",
"pagInputBtn": "GÅ",
"pagInputTxt": "side",
"parentDirectory": "Overordnet mappe", "parentDirectory": "Overordnet mappe",
"size": "Størrelse" "perPage": "### per side",
"search": "søk",
"size": "Størrelse",
"tree": "Tre",
"view": "Disposisjon"
} }

View file

@ -4,19 +4,25 @@
"dateFormat": "YYYY-MM-DD HH:mm", "dateFormat": "YYYY-MM-DD HH:mm",
"details": "details", "details": "details",
"download": "download", "download": "download",
"displayAll": "Alles weergeven",
"empty": "leeg", "empty": "leeg",
"files": "bestanden", "files": "bestanden",
"filter": "filter", "filter": "filter",
"folders": "mappen", "folders": "mappen",
"grid": "grid", "grid": "grid",
"icons": "iconen", "icons": "iconen",
"info": "Informatie",
"language": "Taal", "language": "Taal",
"lastModified": "Laatste wijziging", "lastModified": "Laatste wijziging",
"name": "Naam", "name": "Naam",
"noMatch": "geen overeenkomst", "noMatch": "geen overeenkomst",
"pagination": "Paginering",
"pagInputBtn": "GO",
"pagInputTxt": "pagina",
"parentDirectory": "Bovenliggende map", "parentDirectory": "Bovenliggende map",
"perPage": "### per pagina",
"search": "zoeken", "search": "zoeken",
"size": "Grootte", "size": "Grootte",
"tree": "Boom", "tree": "Boom",
"view": "Bekijk" "view": "Dispositie"
} }

View file

@ -4,19 +4,25 @@
"dateFormat": "YYYY-MM-DD HH:mm", "dateFormat": "YYYY-MM-DD HH:mm",
"details": "szczegóły", "details": "szczegóły",
"download": "pobierz", "download": "pobierz",
"displayAll": "Wyświetl WSZYSTKIE",
"empty": "pusty", "empty": "pusty",
"files": "plików", "files": "plików",
"filter": "filtr", "filter": "filtr",
"folders": "folderów", "folders": "folderów",
"grid": "kafelki", "grid": "kafelki",
"icons": "ikony", "icons": "ikony",
"info": "Informacje",
"language": "Język", "language": "Język",
"lastModified": "Ostatnia modyfikacja", "lastModified": "Ostatnia modyfikacja",
"name": "Nazwa", "name": "Nazwa",
"noMatch": "nie znaleziono", "noMatch": "nie znaleziono",
"pagination": "Paginacja",
"pagInputBtn": "IŚĆ",
"pagInputTxt": "strona",
"parentDirectory": "Katalog nadrzędny", "parentDirectory": "Katalog nadrzędny",
"perPage": "### na stronę",
"search": "szukaj", "search": "szukaj",
"size": "Rozmiar", "size": "Rozmiar",
"tree": "Drzewo", "tree": "Drzewo",
"view": "Układ" "view": "Usposobienie"
} }

View file

@ -4,19 +4,25 @@
"dateFormat": "DD-MM-YYYY HH:mm", "dateFormat": "DD-MM-YYYY HH:mm",
"details": "detalhes", "details": "detalhes",
"download": "download", "download": "download",
"displayAll": "Exibir TODOS",
"empty": "vazio", "empty": "vazio",
"files": "arquivos", "files": "arquivos",
"filter": "filtro", "filter": "filtro",
"folders": "pastas", "folders": "pastas",
"grid": "grade", "grid": "grade",
"icons": "ícones", "icons": "ícones",
"info": "Informações",
"language": "Idioma", "language": "Idioma",
"lastModified": "Última modificação", "lastModified": "Última modificação",
"name": "Nome", "name": "Nome",
"noMatch": "sem resultados", "noMatch": "sem resultados",
"pagination": "Paginação",
"pagInputBtn": "IR",
"pagInputTxt": "pagina",
"parentDirectory": "Diretório acima", "parentDirectory": "Diretório acima",
"perPage": "### por pagina",
"search": "pesquisa", "search": "pesquisa",
"size": "Tamanho", "size": "Tamanho",
"tree": "Árvore", "tree": "Árvore",
"view": "Visualização" "view": "Disposição"
} }

View file

@ -4,19 +4,25 @@
"dateFormat": "DD-MM-YYYY HH:mm", "dateFormat": "DD-MM-YYYY HH:mm",
"details": "detalhes", "details": "detalhes",
"download": "descarregar", "download": "descarregar",
"displayAll": "Exibir TODOS",
"empty": "vazio", "empty": "vazio",
"files": "arquivos", "files": "arquivos",
"filter": "filtro", "filter": "filtro",
"folders": "pastas", "folders": "pastas",
"grid": "grelha", "grid": "grelha",
"icons": "ícones", "icons": "ícones",
"info": "Informações",
"language": "Idioma", "language": "Idioma",
"lastModified": "última modificação", "lastModified": "última modificação",
"name": "Nome", "name": "Nome",
"noMatch": "sem resultados", "noMatch": "sem resultados",
"pagination": "Paginação",
"pagInputBtn": "IR",
"pagInputTxt": "página",
"parentDirectory": "Diretório acima", "parentDirectory": "Diretório acima",
"perPage": "### por página",
"search": "pesquisa", "search": "pesquisa",
"size": "Tamanho", "size": "Tamanho",
"tree": "Árvore", "tree": "Árvore",
"view": "Visualização" "view": "Disposição"
} }

View file

@ -3,13 +3,24 @@
"details": "detalii", "details": "detalii",
"download": "descarcă", "download": "descarcă",
"displayAll": "Afișați TOATE",
"empty": "gol", "empty": "gol",
"files": "fişiere", "files": "fişiere",
"filter": "filtru",
"folders": "dosar", "folders": "dosar",
"icons": "pictograme", "icons": "icoane",
"info": "informație",
"language": "Limba",
"lastModified": "ultima modificare", "lastModified": "ultima modificare",
"name": "nume", "name": "nume",
"noMatch": "0 rezultate", "noMatch": "0 rezultate",
"pagination": "Paginare",
"pagInputBtn": "MERGE",
"pagInputTxt": "pagină",
"parentDirectory": "dosar părinte", "parentDirectory": "dosar părinte",
"size": "mărime" "perPage": "### pe pagină",
"search": "căutare",
"size": "mărime",
"tree": "Arborele",
"view": "Dispoziţie"
} }

View file

@ -4,17 +4,25 @@
"dateFormat": "YYYY-MM-DD HH:mm", "dateFormat": "YYYY-MM-DD HH:mm",
"details": "Детали", "details": "Детали",
"download": "Скачать", "download": "Скачать",
"displayAll": "Показать ВСЕ",
"empty": "Пусто", "empty": "Пусто",
"files": "Файлы", "files": "Файлы",
"filter": "Фильтр", "filter": "Фильтр",
"folders": "Папки", "folders": "Папки",
"grid": "Сетка", "grid": "Сетка",
"icons": "Иконки", "icons": "Иконки",
"info": "Информация",
"language": "Язык", "language": "Язык",
"lastModified": "Последние изменения", "lastModified": "Последние изменения",
"name": "Имя", "name": "Имя",
"noMatch": "Нет совпадений", "noMatch": "Нет совпадений",
"pagination": "Пагинация",
"pagInputBtn": "ИДТИ",
"pagInputTxt": "страница",
"parentDirectory": "Главная директория", "parentDirectory": "Главная директория",
"perPage": "### на странице",
"search": "поиск",
"size": "Размер", "size": "Размер",
"view": "Вид" "tree": "Древесие",
"view": "Диспозиция"
} }

View file

@ -2,12 +2,26 @@
"lang": "slovenčina", "lang": "slovenčina",
"details": "podrobnosti", "details": "podrobnosti",
"download": "prenesi",
"displayAll": "Prikaži VSE",
"empty": "prázdny", "empty": "prázdny",
"files": "súborov", "files": "súborov",
"filter": "filtrirati",
"folders": "priečinkov", "folders": "priečinkov",
"grid": "mreža",
"icons": "ikony", "icons": "ikony",
"info": "Informácie",
"language": "Jezik",
"lastModified": "Upravené", "lastModified": "Upravené",
"name": "Názov", "name": "Názov",
"noMatch": "ni ujemanj",
"pagination": "Paginacija",
"pagInputBtn": "POJDI",
"pagInputTxt": "strani",
"parentDirectory": "Nadriadený priečinok", "parentDirectory": "Nadriadený priečinok",
"size": "Velkosť" "perPage": "### na stran",
"search": "iskanje",
"size": "Velkosť",
"tree": "Drevo",
"view": "Dispozicija"
} }

View file

@ -4,15 +4,25 @@
"dateFormat": "DD. MM. YYYY HH:mm", "dateFormat": "DD. MM. YYYY HH:mm",
"details": "podrobnosti", "details": "podrobnosti",
"download": "prenesi", "download": "prenesi",
"displayAll": "Prikaži VSE",
"empty": "prazno", "empty": "prazno",
"files": "datoteke", "files": "datoteke",
"filter": "filter", "filter": "filter",
"folders": "mape", "folders": "mape",
"grid": "mreža", "grid": "mreža",
"icons": "ikone", "icons": "ikone",
"info": "Informacije",
"language": "Jezik",
"lastModified": "Zadnja sprememba", "lastModified": "Zadnja sprememba",
"name": "Ime", "name": "Ime",
"noMatch": "ni zadetkov", "noMatch": "ni zadetkov",
"pagination": "Paginacija",
"pagInputBtn": "POJDI",
"pagInputTxt": "strani",
"parentDirectory": "Nadrejena mapa", "parentDirectory": "Nadrejena mapa",
"size": "Velikost" "perPage": "### na stran",
"search": "iskanje",
"size": "Velikost",
"tree": "Drevo",
"view": "Dispozicija"
} }

View file

@ -3,13 +3,25 @@
"details": "detalji", "details": "detalji",
"download": "download", "download": "download",
"displayAll": "Prikažite SVE",
"empty": "prazno", "empty": "prazno",
"files": "fajlovi", "files": "fajlovi",
"filter": "filtrate",
"folders": "direktorijum", "folders": "direktorijum",
"grid": "mreža",
"icons": "ikone", "icons": "ikone",
"info": "Информације",
"language": "Jezik",
"lastModified": "Poslednja modifikacija", "lastModified": "Poslednja modifikacija",
"name": "Ime", "name": "Ime",
"noMatch": "bez poklapanja", "noMatch": "bez poklapanja",
"pagination": "Paginacija",
"pagInputBtn": "GO",
"pagInputTxt": "stranica",
"parentDirectory": "Roditeljski direktorijum", "parentDirectory": "Roditeljski direktorijum",
"size": "Veličina" "perPage": "### po stranici",
"search": "pretraga",
"size": "Veličina",
"tree": "Mapa",
"view": "Dispozicija"
} }

View file

@ -3,14 +3,25 @@
"details": "detaljerad", "details": "detaljerad",
"download": "ladda ner", "download": "ladda ner",
"displayAll": "Visa ALLA",
"empty": "tom", "empty": "tom",
"files": "filer", "files": "filer",
"filter": "filtrera",
"folders": "kataloger", "folders": "kataloger",
"grid": "rutnät", "grid": "rutnät",
"icons": "ikoner", "icons": "ikoner",
"info": "Information",
"language": "Språk",
"lastModified": "Senast ändrad", "lastModified": "Senast ändrad",
"name": "Filnamn", "name": "Filnamn",
"noMatch": "ingen matchning", "noMatch": "ingen matchning",
"pagination": "Paginering",
"pagInputBtn": "GÅ",
"pagInputTxt": "sida",
"parentDirectory": "Till överordnad mapp", "parentDirectory": "Till överordnad mapp",
"size": "Filstorlek" "perPage": "### per sida",
"search": "sök",
"size": "Filstorlek",
"tree": "Trädstruktur",
"view": "Arrangemang"
} }

View file

@ -3,12 +3,25 @@
"details": "detaylar", "details": "detaylar",
"download": "indir", "download": "indir",
"displayAll": "TÜMÜNÜ Görüntüle",
"empty": "boş", "empty": "boş",
"files": "dosyalar", "files": "dosyalar",
"filter": "filtre",
"folders": "klasörler", "folders": "klasörler",
"grid": "ızgara",
"icons": "ikonlar", "icons": "ikonlar",
"info": "Bilgi",
"language": "Dil",
"lastModified": "Son Düzenleme", "lastModified": "Son Düzenleme",
"name": "İsim", "name": "İsim",
"noMatch": "eşleşme yok",
"pagination": "Sayfalandırma",
"pagInputBtn": "GİT",
"pagInputTxt": "sayfa",
"parentDirectory": "Üst Dizin", "parentDirectory": "Üst Dizin",
"size": "Boyut" "perPage": "Sayfa başına ###",
"search": "arama",
"size": "Boyut",
"tree": "Ağaçlanma",
"view": "Yerleşim"
} }

View file

@ -4,15 +4,25 @@
"dateFormat": "YYYY-MM-DD HH:mm", "dateFormat": "YYYY-MM-DD HH:mm",
"details": "Деталі", "details": "Деталі",
"download": "Завантажити", "download": "Завантажити",
"displayAll": "Відобразити ВСЕ",
"empty": "Порожньо", "empty": "Порожньо",
"files": "Файли(ів)", "files": "Файли(ів)",
"filter": "Фільтр", "filter": "Фільтр",
"folders": "Тек(и)", "folders": "Тек(и)",
"grid": "Гратка", "grid": "Гратка",
"icons": "Піктограми", "icons": "Піктограми",
"info": "Інформація",
"language": "Мова",
"lastModified": "Останні зміни", "lastModified": "Останні зміни",
"name": "Ім'я", "name": "Ім'я",
"noMatch": "Немає співпадінь", "noMatch": "Немає співпадінь",
"pagination": "Пагінація",
"pagInputBtn": "піти",
"pagInputTxt": "сторінки",
"parentDirectory": "Головна тека", "parentDirectory": "Головна тека",
"size": "Розмір" "perPage": "### на сторінку",
"search": "пошук",
"size": "Розмір",
"tree": "Дрівобережжя",
"view": "Диспозиція"
} }

View file

@ -4,20 +4,25 @@
"dateFormat": "YYYY-MM-DD HH:mm", "dateFormat": "YYYY-MM-DD HH:mm",
"details": "详情", "details": "详情",
"download": "下载", "download": "下载",
"displayAll": "显示全部",
"empty": "空文件夹", "empty": "空文件夹",
"files": "文件", "files": "文件",
"filter": "过滤", "filter": "过滤",
"folders": "文件夹", "folders": "文件夹",
"grid": "网格", "grid": "网格",
"icons": "图标", "icons": "图标",
"info": "信息",
"language": "语言", "language": "语言",
"lastModified": "修改时间", "lastModified": "修改时间",
"name": "文件名", "name": "文件名",
"noMatch": "无匹配项", "noMatch": "无匹配项",
"pagination": "分页",
"pagInputBtn": "得到",
"pagInputTxt": "页",
"parentDirectory": "父文件夹", "parentDirectory": "父文件夹",
"perPage": "每页10条",
"search": "搜索", "search": "搜索",
"size": "大小", "size": "大小",
"tree": "树形目录", "tree": "树形目录",
"view": "视图", "view": "视图"
"info": "信息"
} }

View file

@ -4,20 +4,25 @@
"dateFormat": "YYYY-MM-DD HH:mm", "dateFormat": "YYYY-MM-DD HH:mm",
"details": "詳細資料", "details": "詳細資料",
"download": "下載", "download": "下載",
"displayAll": "顯示全部",
"empty": "空資料夾", "empty": "空資料夾",
"files": "檔案", "files": "檔案",
"filter": "過濾", "filter": "過濾",
"folders": "資料夾", "folders": "資料夾",
"grid": "網格", "grid": "網格",
"icons": "圖示", "icons": "圖示",
"info": "資訊",
"language": "語言", "language": "語言",
"lastModified": "上次修改", "lastModified": "上次修改",
"name": "檔名", "name": "檔名",
"noMatch": "沒有符合的檔案", "noMatch": "沒有符合的檔案",
"pagination": "分頁",
"pagInputBtn": "得到",
"pagInputTxt": "頁",
"parentDirectory": "上層目錄", "parentDirectory": "上層目錄",
"perPage": "每頁###條",
"search": "搜尋", "search": "搜尋",
"size": "大小", "size": "大小",
"tree": "樹形目錄", "tree": "樹形目錄",
"view": "檢視", "view": "檢視"
"info": "資訊"
} }

View file

@ -48,6 +48,13 @@
The user selected view mode is also stored local in modern browsers The user selected view mode is also stored local in modern browsers
so that it will be persistent. so that it will be persistent.
- modeToggle: boolean, show a view mode toggle in the toolbar, or "next" - modeToggle: boolean, show a view mode toggle in the toolbar, or "next"
- paginationItems: array of numbers
user selectable amounts of items to display at once until pagination occurs.
The first value will be selected as the default. Values are then sorted automatically.
Value "0" means display ALL items at once, no pagination needed (as an option).
It is recommended to place this value (if desired at all) at the end of the array.
The user selected amount is also stored local in modern browsers
so that is will be persistent.
- setParentFolderLabels: boolean, set parent folder labels to real folder names - setParentFolderLabels: boolean, set parent folder labels to real folder names
- sizes: array of numbers - sizes: array of numbers
the first value indicates the default view size. If only one value the first value indicates the default view size. If only one value
@ -72,6 +79,7 @@
"maxIconSize": 40, "maxIconSize": 40,
"modes": ["details", "grid", "icons"], "modes": ["details", "grid", "icons"],
"modeToggle": false, "modeToggle": false,
"paginationItems": [100, 50, 200, 300, 400, 500, 0],
"setParentFolderLabels": true, "setParentFolderLabels": true,
"sizes": [20, 40, 60, 80, 100, 140, 180, 220, 260, 300], "sizes": [20, 40, 60, 80, 100, 140, 180, 220, 260, 300],
"theme": "comity", "theme": "comity",

View file

@ -0,0 +1,103 @@
// @minWidth: 30px;
// @height: 28px;
// @lineHeight: @height;
// @activeHeight: @height + 2;
@inputWidth: 35px;
@inputHeight: 28px;
@buttonMinWidth: 40px;
@buttonHeight: 30px;
@buttonLineHeight: @buttonHeight - 2;
@buttonPadding: 0 8px;
// @navHeight: @activeHeight;
@col-hover-green: #44EEAA;
@col-placeholder-grey: rgb(170, 170, 170);
#pagination_btm {
position: -webkit-sticky; /* Safari */
position: sticky;
bottom: 0;
.nav_buttons {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
position: -webkit-sticky; /* Safari */
position: sticky;
bottom: 0;
}
.nav_buttons button {
width: @buttonMinWidth; // 20px;
height: @buttonHeight; // 30px;
appearance: none;
border: none;
outline: none;
cursor: pointer;
padding: 0;
background-color: @col-link;
margin: 5px;
transition: 0.4s;
color: @col-back;
font-size: @font-size;
text-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);
box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);
&:hover {
background-color: @col-hover-green
}
&:disabled {
background-color: @col-text-disabled-black;
box-shadow: inset 0px 0px 4px rgb(0, 0, 0);
cursor: default;
}
}
.page_input {
display: flex;
align-content: flex-end;
float: left;
margin-left: 5px;
margin-right: 5px;
font-size: @font-size;
> input[type="text"]{
width: @inputWidth;
height: @inputHeight;
background: @col-back;
border-radius: 3px;
border: 1px solid @col-divider-black;
padding: @buttonPadding;
text-align: center;
vertical-align: baseline;
outline: none;
box-shadow: none;
box-sizing: initial;
&::placeholder {
color: @col-placeholder-grey;
opacity: 1; /* Firefox */
}
&:focus::placeholder {
color: transparent;
}
}
> input[type="button"]{
min-width: @buttonMinWidth;
height: @buttonHeight;
line-height: @buttonLineHeight;
background: @col-back;
border-radius: 3px;
border: 1px solid @col-divider-black;
text-align: center;
padding: @buttonPadding;
vertical-align: baseline;
outline: none;
box-shadow: none;
color: @col-text;
cursor: pointer;
&:hover{
background-color: @col-hover-green;
}
}
}
}

View file

@ -18,6 +18,7 @@ const defaultTranslations = {
dateFormat: 'YYYY-MM-DD HH:mm', dateFormat: 'YYYY-MM-DD HH:mm',
details: 'details', details: 'details',
displayAll: "Display ALL",
download: 'download', download: 'download',
empty: 'empty', empty: 'empty',
files: 'files', files: 'files',
@ -25,11 +26,16 @@ const defaultTranslations = {
folders: 'folders', folders: 'folders',
grid: 'grid', grid: 'grid',
icons: 'icons', icons: 'icons',
info: 'Informations',
language: 'Language', language: 'Language',
lastModified: 'Last modified', lastModified: 'Last modified',
name: 'Name', name: 'Name',
noMatch: 'no match', noMatch: 'no match',
pagination: "Pagination",
pagInputBtn: "GO",
pagInputTxt: "page",
parentDirectory: 'Parent Directory', parentDirectory: 'Parent Directory',
perPage: "### per page",
search: 'search', search: 'search',
size: 'Size', size: 'Size',
tree: 'Tree', tree: 'Tree',
@ -62,6 +68,9 @@ const update = lang => {
each(currentLang, (value, key) => { each(currentLang, (value, key) => {
dom('.l10n-' + key).text(value); dom('.l10n-' + key).text(value);
dom('.l10n_ph-' + key).attr('placeholder', value); dom('.l10n_ph-' + key).attr('placeholder', value);
replace(dom('.l10n_rp-' + key), value);
dom('.l10n_val-' + key).val(value);
dom('.l10n_title-' + key).prop('title', value)
}); });
format.setDefaultDateFormat(currentLang.dateFormat); format.setDefaultDateFormat(currentLang.dateFormat);
@ -70,6 +79,15 @@ const update = lang => {
}); });
}; };
const replace = (elem, value) => {
if (!elem.length) {
return;
}
each(elem, el => {
el.text = value.replace('###', el.value);
});
};
const loadLanguage = isoCode => { const loadLanguage = isoCode => {
if (loaded[isoCode]) { if (loaded[isoCode]) {
return Promise.resolve(loaded[isoCode]); return Promise.resolve(loaded[isoCode]);

View file

@ -193,7 +193,7 @@ const init = () => {
if (settings.clickndrag) { if (settings.clickndrag) {
$selectionRect.hide().appTo('#content'); $selectionRect.hide().appTo('#content');
dom('#content') dom('#view')
.on('mousedown', selectionStart) .on('mousedown', selectionStart)
.on('drag', ev => ev.preventDefault()) .on('drag', ev => ev.preventDefault())
.on('dragstart', ev => ev.preventDefault()); .on('dragstart', ev => ev.preventDefault());

View file

@ -3,6 +3,7 @@ const event = require('../core/event');
const resource = require('../core/resource'); const resource = require('../core/resource');
const allsettings = require('../core/settings'); const allsettings = require('../core/settings');
const store = require('../core/store'); const store = require('../core/store');
const pagination = require('../view/pagination');
const settings = Object.assign({ const settings = Object.assign({
enabled: false, enabled: false,
@ -22,8 +23,8 @@ const columnClasses = {0: 'label', 1: 'date', 2: 'size'};
const cmpFn = (prop, reverse, ignorecase, natural) => { const cmpFn = (prop, reverse, ignorecase, natural) => {
return (el1, el2) => { return (el1, el2) => {
const item1 = el1._item; const item1 = el1._item === undefined ? el1 : el1._item;
const item2 = el2._item; const item2 = el2._item === undefined ? el2 : el2._item;
let res = getTypeOrder(item1) - getTypeOrder(item2); let res = getTypeOrder(item1) - getTypeOrder(item2);
if (res !== 0) { if (res !== 0) {
@ -58,16 +59,32 @@ const sortItems = (column, reverse) => {
$headers.rmCls('ascending').rmCls('descending'); $headers.rmCls('ascending').rmCls('descending');
$header.addCls(reverse ? 'descending' : 'ascending'); $header.addCls(reverse ? 'descending' : 'ascending');
if (pagination.isSortHandled(fn)) {
return;
}
dom(toArray(dom('#items .item:not(.folder-parent)')).sort(fn)).appTo('#items'); dom(toArray(dom('#items .item:not(.folder-parent)')).sort(fn)).appTo('#items');
}; };
const onContentChanged = () => { const onContentChanged = () => {
if (pagination.isActive()){
return;
}
let {column, reverse} = getSortOrder();
sortItems(column, reverse);
};
const getSortOrder = () => {
const order = store.get(storekey); const order = store.get(storekey);
const column = order && order.column || settings.column; const column = order && order.column || settings.column;
const reverse = order && order.reverse || settings.reverse; const reverse = order && order.reverse || settings.reverse;
return {column, reverse};
}
sortItems(column, reverse); const getSortFunc = () => {
}; let {column, reverse} = getSortOrder();
return cmpFn(columnProps[column], reverse, settings.ignorecase, settings.natural);
}
const addToggles = () => { const addToggles = () => {
const $header = dom('#items li.header'); const $header = dom('#items li.header');
@ -94,3 +111,7 @@ const init = () => {
init(); init();
module.exports = {
getSortFunc
}

View file

@ -0,0 +1,437 @@
const {each, includes, dom, values} = require('../util');
const event = require('../core/event');
const store = require('../core/store');
const allsettings = require('../core/settings');
const base = require('./base');
const paginationItems = [100, 0, 50, 250, 500];
const settings = Object.assign({
paginationItems,
hideParentFolder: false,
}, allsettings.view);
const defaultSize = settings.paginationItems.length ? settings.paginationItems[0] : 0;
const sortedSizes = [...new Set(settings.paginationItems)].sort((a, b) => a - b)
const storekey = 'pagination';
const paginationTpl =
`<div id="pagination_btm" class="pagination">
<div id="nav_btm" class="nav_buttons"></div>
</div>`;
const selectorTpl =
`<div id="pag_sidebar" class="block">
<h1 class="l10n-pagination">Pagination</h1>
<form id="pag_form">
<select id="pag_select" name='Pagination size'>
</select>
<noscript><input type="submit" value="Submit"></noscript>
</form>
</div>`;
const $pagination = dom(paginationTpl);
const btn_cls = {
'btn_first': '<<',
'btn_prev': '<',
'btn_next': '>',
'btn_last': '>>'
};
let pag_active = false;
let pag_buttons = [];
let pag_current_page = 1;
let pag_items;
let pag_payload;
let pag_view;
let pag_count = 0;
let pag_parent_folder;
let pag_rows_pref;
let sortfn;
const setup = (items) => {
updateItems(items);
pag_current_page = 1;
pag_buttons = [];
let $pagination_els = base.$content.find('.nav_buttons');
setupNavigation($pagination_els);
pag_active = true;
updateSortFunc();
sort(sortfn());
setCurrentPage(1);
}
const updateSortFunc = () => {
// Lazy load because sort module needs us loaded beforehand
sortfn = require('../ext/sort').getSortFunc;
}
const updateItems = (items) => {
if (!items){
return; // use cached items instead
}
pag_items = items;
popParentFolder(pag_items);
totalPages();
return;
}
const clear = () => {
if (pag_active){
pag_buttons.forEach(e => e.remove());
pag_buttons = [];
}
pag_active = false;
}
const isActive = () => {
return pag_active;
}
const totalPages = () => {
if (pag_rows_pref == 0){ // ALL
return pag_count = 1;
}
pag_count = Math.ceil(pag_items.length / pag_rows_pref);
return pag_count;
}
const popParentFolder = (items) => {
if (items.length > 0 && !settings.hideParentFolder){
pag_parent_folder = items.shift();
return;
}
pag_parent_folder = undefined;
}
const pushParentFolder = (items) => {
if (pag_parent_folder && items[0] !== pag_parent_folder) {
items.unshift(pag_parent_folder);
}
}
const setCurrentPage = (page) => {
if (!page) {
page = (pag_current_page <= pag_count) ? pag_current_page : pag_count;
}
pag_current_page = page;
const paginatedItems = computeSlice(pag_items, page, pag_rows_pref);
pushParentFolder(paginatedItems);
updateButtons();
if (pag_count <= 1) {
base.$content.find('.nav_buttons').addCls('hidden');
pag_active = false;
} else {
base.$content.find('.nav_buttons').rmCls('hidden');
pag_active = true;
}
pag_view.doSetItems(paginatedItems);
}
const computeSlice = (items, page, rows_per_page) => {
if (!rows_per_page) { // ALL
return items;
}
page--;
const start = rows_per_page * page;
const end = start + rows_per_page;
return items.slice(start, end);
}
const sort = (fn) => {
// We don't need parent folder item, so we don't filterPayload()
pag_items = values(pag_payload.content).sort(fn);
}
const setupNavigation = (container) => {
each(container, key => {
key.innerHTML = "";
});
each(container, el => {
for (let key in btn_cls) {
const btn = paginationButton(key, btn_cls[key]);
el.appendChild(btn);
pag_buttons.push(btn);
}
});
each(container, key => {
// Page status numbers
let div = updatePageStatus(null);
key.insertBefore(div, key.childNodes[2]);
pag_buttons.push(div);
// Manual page number selection
div = document.createElement('div');
div.classList.add('page_input');
let {input_field, input_btn} = pageInputForm();
div.appendChild(input_field);
div.appendChild(input_btn);
key.appendChild(div);
pag_buttons.push(input_field);
pag_buttons.push(input_btn);
});
}
const paginationButton = (classname, arrow) => {
const button = document.createElement('button');
button.innerText = arrow;
button.classList.add('nav_button');
button.id = classname;
switch (classname) {
case 'btn_prev':
button.req_page = () => pag_current_page - 1;
button.disabled = true;
break;
case 'btn_next':
button.req_page = () => pag_current_page + 1;
button.disabled = false;
break;
case 'btn_last':
button.req_page = () => pag_count;
button.disabled = false;
break;
default: // 'btn_first'
button.req_page = () => 1;
button.disabled = true;
}
button.addEventListener('click', function() {
setCurrentPage(this.req_page());
});
return button;
};
const updateButtons = () => {
const prev_buttons = dom('#btn_first, #btn_prev');
const next_buttons = dom('#btn_next, #btn_last');
if (pag_current_page <= 1) {
each(prev_buttons, button => button.disabled = true);
each(next_buttons, button => button.disabled = false);
} else if (pag_current_page >= pag_count && pag_current_page > 1) {
each(next_buttons, button => button.disabled = true);
each(prev_buttons, button => button.disabled = false);
} else {
const nav_buttons = dom('#btn_first, #btn_prev, #btn_next, #btn_last');
each(nav_buttons, button => button.disabled = false);
}
const pag_pos = dom('.pag_pos');
each(pag_pos, el => updatePageStatus(el));
}
const updatePageStatus = (div) => {
const status = pag_current_page.toString().concat('/', pag_count.toString());
if (!div) {
const div = document.createElement('div');
div.appendChild(document.createTextNode(status));
div.classList.add('pag_pos');
return div;
}
return div.innerText = status;
}
const pageInputForm = () => {
const input_field = document.createElement('input');
input_field.type = 'text';
// Use title instead of placeholder due to some translations not fitting in
input_field.classList.add('l10n_title-pagInputTxt'); // input_field.title = 'page';
input_field.placeholder = '...';
const input_btn = document.createElement('input');
input_btn.type = 'button';
input_btn.classList.add('l10n_val-pagInputBtn'); // input_btn.value = 'GO';
input_btn.addEventListener('click', () => {
if (input_field.value !== '' && input_field.value !== pag_current_page) {
let parsed = parseInt(input_field.value, 10);
if (!isNaN(parsed)) {
setCurrentPage(parsed);
}
}
input_field.value = "";
input_field.focus();
});
input_field.addEventListener('keydown', (e) => {
if (e.key === 'Enter' && input_field.value && /[^\s]/.test(input_field.value)) {
if (input_field.value !== pag_current_page) {
e.preventDefault();
let parsed = parseInt(input_field.value, 10);
if (!isNaN(parsed) && parsed !== pag_current_page) {
setCurrentPage(parsed);
}
}
input_field.value = "";
input_field.focus();
};
});
// Only allow digits, new line and max page, no leading zero or spaces
setInputFilter(input_field, (value) => {
return /^[^0\s][\d]*$/.test(value) && value <= pag_count;
});
return {input_field, input_btn};
}
// Restricts input for the given textbox to the given inputFilter function.
// In the future we could use beforeinput instead.
function setInputFilter(textbox, inputFilter) {
["input", "keydown", "keyup", "mousedown", "mouseup", "select",
"contextmenu", "drop"].forEach(function(event) {
textbox.addEventListener(event, function(e) {
if (this.value === '') {
this.oldValue = this.value;
}
if (inputFilter(this.value)) {
this.oldValue = this.value;
this.oldSelectionStart = this.selectionStart;
this.oldSelectionEnd = this.selectionEnd;
} else if (this.hasOwnProperty("oldValue")) {
this.value = this.oldValue;
this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
} else {
this.value = "";
}
});
});
}
const initPagSelector = () => {
if (settings.paginationItems.length > 0) {
dom(selectorTpl).appTo('#sidebar');
document.querySelector('#pag_select')
.addEventListener('change', onSelect);
for (let option of addOptions(getCachedPref())) {
option.appTo('#pag_select');
}
}
};
function onSelect() {
setPref(parseInt(this.value, 10));
onPagPrefUpdated();
}
const addOptions = (cached_pref) => {
const options = [];
let set_default = false;
for (let size of sortedSizes) {
let element;
if (size === cached_pref && !set_default) {
element = dom(`<option selected value="${size}"></option>`);
set_default = true;
} else {
element = dom(`<option value="${size}"></option>`);
}
element.addCls((size === 0) ? 'l10n-displayAll' : 'l10n_rp-perPage');
options.push(element);
}
return options;
}
const onLocationChanged = () => {
// Workaround to append this to the sidebar at the last position
// since the view module includes us before the other extensions
if (dom('#pag_select').length === 0) {
initPagSelector();
}
}
const setPayload = (payload) => {
// Not a copy, but we probably won't alter it anyway.
pag_payload = payload;
}
const getCachedPref = () => {
if (pag_rows_pref === undefined)
return defaultSize;
return pag_rows_pref;
};
// The module won't work if a view is not set first. We need to reuse some funcs
const setView = (view) => {
pag_view = view;
}
const canHandle = (items) => {
clear();
if (items.length > getCachedPref()) {
// Probably won't alter it, so we don't make a copy to save memory.
setup(items);
return true;
}
return false;
}
const isSortHandled = (fn) => {
if (!pag_active) {
return false;
}
sort(fn);
setCurrentPage();
return true;
}
const onPagPrefUpdated = () => {
if (pag_active) {
totalPages();
setCurrentPage();
return;
}
const pref = getCachedPref();
if (values(pag_payload.content).length > pref && pref != 0) {
setup(pag_view.filterPayload(pag_payload));
}
}
const isRefreshHandled = (item) => {
setPayload(item);
// Block if pagination is active
if (values(item.content).length > getCachedPref()) {
if (pag_active){
updateItems(pag_view.filterPayload(item));
sort(sortfn()); // initial sort
setCurrentPage();
return true;
}
setup(pag_view.filterPayload(item));
return true;
}
// No need for pagination, recreate the items, hide & pass to default logic
if (pag_active){
updateItems(pag_view.filterPayload(item));
setCurrentPage(1);
clear();
return true;
}
// We are not interested in handling the items
return false;
}
const setPref = (size) => {
const stored = store.get(storekey);
size = (size !== undefined) ? size : stored ? stored : defaultSize;
size = includes(settings.paginationItems, size) ? size : defaultSize;
store.put(storekey, size);
pag_rows_pref = size;
}
const init = () => {
setPref();
event.sub('location.changed', onLocationChanged);
};
init();
module.exports = {
$el: $pagination,
canHandle,
isActive,
isRefreshHandled,
isSortHandled,
setPayload,
setView
}

View file

@ -6,6 +6,7 @@ const resource = require('../core/resource');
const store = require('../core/store'); const store = require('../core/store');
const allsettings = require('../core/settings'); const allsettings = require('../core/settings');
const base = require('./base'); const base = require('./base');
const pagination = require('./pagination');
const modes = ['details', 'grid', 'icons']; const modes = ['details', 'grid', 'icons'];
const sizes = [20, 40, 60, 80, 100, 150, 200, 250, 300, 350, 400]; const sizes = [20, 40, 60, 80, 100, 150, 200, 250, 300, 350, 400];
@ -183,6 +184,12 @@ const checkHint = () => {
}; };
const setItems = items => { const setItems = items => {
if (!pagination.canHandle(items)) {
doSetItems(items);
}
};
const doSetItems = items => {
const removed = map($items.find('.item'), el => el._item); const removed = map($items.find('.item'), el => el._item);
$items.find('.item').rm(); $items.find('.item').rm();
@ -218,6 +225,15 @@ const onLocationChanged = item => {
item = location.getItem(); item = location.getItem();
} }
pagination.setPayload(item);
const items = filterPayload(item);
setHint('empty');
setItems(items);
};
const filterPayload = item => {
const items = []; const items = [];
if (item.parent && !settings.hideParentFolder) { if (item.parent && !settings.hideParentFolder) {
@ -229,12 +245,18 @@ const onLocationChanged = item => {
items.push(child); items.push(child);
} }
}); });
return items;
setHint('empty'); }
setItems(items);
};
const onLocationRefreshed = (item, added, removed) => { const onLocationRefreshed = (item, added, removed) => {
if (added.length === 0 && removed.length === 0){
return;
}
if (pagination.isRefreshHandled(item)) {
return;
}
const add = []; const add = [];
each(added, child => { each(added, child => {
@ -263,6 +285,7 @@ const init = () => {
set(); set();
$view.appTo(base.$content); $view.appTo(base.$content);
pagination.$el.appTo(base.$content);
$hint.hide(); $hint.hide();
format.setDefaultMetric(settings.binaryPrefix); format.setDefaultMetric(settings.binaryPrefix);
@ -277,7 +300,9 @@ init();
module.exports = { module.exports = {
$el: $view, $el: $view,
filterPayload,
setItems, setItems,
doSetItems,
changeItems, changeItems,
setLocation: onLocationChanged, setLocation: onLocationChanged,
setHint, setHint,
@ -288,3 +313,6 @@ module.exports = {
getSize, getSize,
setSize setSize
}; };
// For code reuse purposes
pagination.setView(module.exports);