Added Lists to this work-in-progress
|
@ -1,3 +1,12 @@
|
|||
[submodule "themes/adidoks"]
|
||||
path = themes/adidoks
|
||||
url = https://github.com/aaranxu/adidoks.git
|
||||
[submodule "static/csv-lists"]
|
||||
path = static/csv-lists
|
||||
url = https://framagit.org/linuxphoneapps/csv-lists.git
|
||||
[submodule "apps"]
|
||||
path = apps
|
||||
url = https://framagit.org/linuxphoneapps/apps.git
|
||||
[submodule "content/apps"]
|
||||
path = content/apps
|
||||
url = https://framagit.org/linuxphoneapps/apps.git
|
||||
|
|
23
config.toml
|
@ -1,6 +1,6 @@
|
|||
# The URL the site will be built for
|
||||
base_url = "https://linuxphoneapps.frama.io"
|
||||
title = "LinuxPhoneApps.org α"
|
||||
title = "LinuxPhoneApps"
|
||||
description = "An App Directory for PinePhone, Librem 5 and other mainline Linux phones."
|
||||
|
||||
# The default language; used in feeds and search index
|
||||
|
@ -29,6 +29,7 @@ taxonomies = [
|
|||
{name = "build_systems"},
|
||||
{name = "programming_languages"},
|
||||
{name = "state"},
|
||||
{name = "authors"},
|
||||
]
|
||||
# Whether to build a search index to be used later on by a JavaScript library
|
||||
build_search_index = true
|
||||
|
@ -49,7 +50,7 @@ highlight_code = true
|
|||
[extra]
|
||||
# Put all your custom variables here
|
||||
author = "LinuxPhoneApps Contributors"
|
||||
github = "https://github.com/linuxphoneappsorg"
|
||||
github = "https://framagit.org/linuxphoneapps"
|
||||
twitter = "https://twitter.com/linuxphoneapps"
|
||||
email = "mail@linuxphoneapps.org"
|
||||
|
||||
|
@ -73,7 +74,9 @@ timezone = "Europe/Copenhagen"
|
|||
|
||||
# Edit page on reposity or not
|
||||
edit_page = true
|
||||
docs_repo = "https://github.com/linuxphoneapps/linuxphoneapps.org"
|
||||
docs_repo = "https://framagit.org/linuxphoneapps/linuxphoneapps.frama.io"
|
||||
apps_repo = "https://framagit.org/linuxphoneapps/apps"
|
||||
games_repo = "https://framagit.org/linuxphoneapps/games"
|
||||
repo_branch = "main"
|
||||
|
||||
## Math settings
|
||||
|
@ -106,12 +109,18 @@ site_links_search_box = true
|
|||
# Menu items
|
||||
[[extra.menu.main]]
|
||||
name = "Apps"
|
||||
section = "apps"
|
||||
url = "/apps/"
|
||||
weight = 10
|
||||
section = "lists"
|
||||
url = "/lists/apps"
|
||||
weight = 20
|
||||
|
||||
[[extra.menu.main]]
|
||||
name = "Docs "
|
||||
name = "Games"
|
||||
section = "lists"
|
||||
url = "/lists/games/"
|
||||
weight = 20
|
||||
|
||||
[[extra.menu.main]]
|
||||
name = "Docs "
|
||||
section = "docs"
|
||||
url = "/docs/"
|
||||
weight = 20
|
||||
|
|
|
@ -4,12 +4,14 @@ title = "LinuxPhoneApps"
|
|||
|
||||
# The homepage contents
|
||||
[extra]
|
||||
lead = '<b>LinuxPhoneApps.org</b> is <em>going to be</em> an App Directory that lists apps for Linux Phones like the PinePhone or Librem 5, that run Linux distributions which do not have a proper (de)centralized app store yet. For now, head over to LINMOBapps.frama.io for the catalog that is going to land here.'
|
||||
url = "https://linmobapps.frama.io"
|
||||
url_button = "Go to LINMOBapps"
|
||||
lead = '<b>LinuxPhoneApps.org</b> is <em>going to be</em> an App Directory that lists apps for Linux Phones like the PinePhone or Librem 5, that run Linux distributions which do not have a proper (de)centralized app store yet. For now, this page is mostly serves the app and game lists that were previously hosted at LINMOBapps.frama.io.'
|
||||
url = "lists/apps"
|
||||
url_button = "Apps"
|
||||
url_games = "lists/games"
|
||||
url_button_games = "Games"
|
||||
repo_license = "Theme and Code: MIT. Content: CC-BY-SA 4.0"
|
||||
repo_url = "https://github.com/linuxphoneapps/linuxphoneapps.org"
|
||||
repo_version = "alpha"
|
||||
repo_url = "https://framagit/linuxphoneapps/linuxphoneapps.org"
|
||||
repo_version = "beta"
|
||||
|
||||
[[extra.list]]
|
||||
title = "For Users"
|
||||
|
@ -25,10 +27,10 @@ content = "Help developers to find efforts for similar apps, to join a project,
|
|||
|
||||
[[extra.list]]
|
||||
title = "Get involved"
|
||||
content = 'Join our <a href="https://github.com/linuxphoneapps/">GitHub organization</a>, the <a href="https://matrix.to/#/#linuxphoneapps:matrix.org">Matrix Chat</a> and start coding, chatting, contributing!'
|
||||
content = 'Join our <a href="https://framagit.org/linuxphoneapps/">Framagit organization</a>, the <a href="https://matrix.to/#/#linuxphoneapps:matrix.org">Matrix Chat</a> and start coding, chatting, contributing!'
|
||||
|
||||
[[extra.list]]
|
||||
title = "Follow us on twitter!"
|
||||
content = 'Get informed about project progress and added apps: <a href="https://twitter.com/linuxphoneapps">@LinuxPhoneApps</a>'
|
||||
|
||||
+++
|
||||
+++
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Subproject commit bcee6ab3b9e9ed13886c77156286ab441e54ce73
|
|
@ -1,10 +0,0 @@
|
|||
+++
|
||||
title = "Apps"
|
||||
description = "A list of apps."
|
||||
date = 2025-05-01T08:00:00+00:00
|
||||
updated = 2021-05-01T08:00:00+00:00
|
||||
sort_by = "title"
|
||||
template = "apps/section.html"
|
||||
in_search_index = true
|
||||
generate_feed = true
|
||||
+++
|
Before Width: | Height: | Size: 126 KiB |
Before Width: | Height: | Size: 252 KiB |
Before Width: | Height: | Size: 347 KiB |
Before Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 93 KiB |
|
@ -1,40 +0,0 @@
|
|||
+++
|
||||
title = "KDeltaChat"
|
||||
description = "DeltaChat client built with Kirigami"
|
||||
date = "2021-09-04"
|
||||
updated = "2021-09-11"
|
||||
author = "1peter10" # Original reporter
|
||||
template = "apps/page.html"
|
||||
[taxonomies]
|
||||
mobile_compatibilities = ["5"]
|
||||
frameworks = ["Kirigami"]
|
||||
project_licenses = ["GPL-3.0-or-later"] # SPDX 3-0 identifier
|
||||
services = ["deltachat"]
|
||||
backends = ["libdeltachat"]
|
||||
categories = ["messenger"]
|
||||
freedesktop_categories = ["Qt","KDE","Network","Chat",]
|
||||
build_systems = ["cmake"]
|
||||
programming_languages = ["C++","QML",]
|
||||
state = ["WIP"]
|
||||
[extra]
|
||||
### URLs
|
||||
repository = "https://git.sr.ht/~link2xt/kdeltachat"
|
||||
homepage = ""
|
||||
bugtracker = ""
|
||||
donation = ""
|
||||
translate = ""
|
||||
repology = ["kdeltachat"] # array
|
||||
flathub = ""
|
||||
flatpak_json_url = "" # not used yet, fill anyway please
|
||||
app_id = "chat.delta.KDeltaChat"
|
||||
# summary variable is in page.description (below title) for technical reasons (https://github.com/linuxphoneapps/linuxphoneapps.org/issues)
|
||||
summary_source_url = "https://git.sr.ht/~link2xt/kdeltachat"
|
||||
# description is below in page content
|
||||
description_source_url = "" # Don't fill if editorial
|
||||
icon_url = "" # not used yet, fill anyway please
|
||||
notice = "No release yet, but works for simple, encrypted text conversations. Sending attachments (images etc.) is not implemented yet, received images aren't scaling properly. Adding an account works via importing a backup or the add account screen. <br> Compiling the necessary libdeltachat library takes a long time and requires more than 3GBs of RAM (at 4 threads) - doing this on device (PinePhone, Librem 5) is not recommended." # can be markdown, use <br> for line breaks
|
||||
scale-to-fit = "" # Only fill where necessary
|
||||
license_url = "https://git.sr.ht/~link2xt/kdeltachat/tree/master/item/LICENSE"
|
||||
appstream_xml_url = ""
|
||||
listing_contributors = [""] # Further contributors (array)
|
||||
+++
|
|
@ -1,41 +0,0 @@
|
|||
+++
|
||||
title = "Gtkeddit"
|
||||
description = "A GTK4 Reddit client written in C++"
|
||||
date = "2021-08-24"
|
||||
updated = "2021-09-01"
|
||||
author = "1peter10" # Original reporter
|
||||
template = "apps/page.html"
|
||||
[taxonomies]
|
||||
mobile_compatibilities = ["5"]
|
||||
frameworks = ["GTK4", "libadwaita",]
|
||||
metadata_licenses = ["FSFAP"]
|
||||
project_licenses = ["GPL-3.0-or-later"] # SPDX 3-0 identifier
|
||||
# services =
|
||||
# backends =
|
||||
categories = ["social media"]
|
||||
freedesktop_categories = ["GTK","Network","News","Feed",]
|
||||
build_systems = ["cmake"]
|
||||
programming_languages = ["C++"]
|
||||
state = ["early"]
|
||||
[extra]
|
||||
repository = "https://gitlab.com/caveman250/Gtkeddit"
|
||||
homepage = ""
|
||||
bugtracker = "https://gitlab.com/caveman250/Gtkeddit/-/issues"
|
||||
donation = ""
|
||||
translate = ""
|
||||
repology = ["gtkeddit",] # array
|
||||
flathub = "https://flathub.org/apps/details/io.gitlab.caveman250.gtkeddit"
|
||||
flatpak_json_url = "https://gitlab.com/caveman250/Gtkeddit/-/raw/master/flatpak/io.gitlab.caveman250.gtkeddit.json" # not used yet, fill anyway please
|
||||
app_id = "io.gitlab.caveman250.gtkeddit"
|
||||
# summary variable is in page.description (below title) for technical reasons (https://github.com/linuxphoneapps/linuxphoneapps.org/issues)
|
||||
summary_source_url = "https://gitlab.com/caveman250/Gtkeddit"
|
||||
# description is below in page content
|
||||
description_source_url = "https://gitlab.com/caveman250/Gtkeddit/-/raw/master/io.gitlab.caveman250.gtkeddit.metainfo.xml" # Don't fill if editorial
|
||||
icon_url = "https://gitlab.com/caveman250/Gtkeddit/-/raw/master/gtkeddit.png" # not used yet, fill anyway please
|
||||
notice = ""
|
||||
scale-to-fit = "" # Only fill where necessary
|
||||
license_url = "https://gitlab.com/caveman250/Gtkeddit/-/raw/master/LICENSE"
|
||||
appstream_xml_url = "https://gitlab.com/caveman250/Gtkeddit/-/raw/master/io.gitlab.caveman250.gtkeddit.metainfo.xml"
|
||||
listing_contributors = [""] # Further contributors (array)
|
||||
+++
|
||||
Gtkeddit is a GTK4 Reddit client written in C++, designed for use with Linux phones such as the Pinephone.
|
Before Width: | Height: | Size: 286 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 194 KiB |
|
@ -1,44 +0,0 @@
|
|||
|
||||
+++
|
||||
# Remove this line before commiting
|
||||
draft = true
|
||||
title = "" # Name of the app
|
||||
description = "" # Summary describing the app
|
||||
date = "2019-02-01" # Date when the app was added
|
||||
# updated = "" # Empty at first, filled on updates
|
||||
author = "" # Original reporter
|
||||
template = "apps/page.html"
|
||||
[taxonomies]
|
||||
mobile_compatibilities = ["5"]
|
||||
frameworks = [""]
|
||||
metadata_licenses = [""] # License of project metadata
|
||||
project_licenses = [""] # SPDX 3-0 identifier
|
||||
# services =
|
||||
# backends =
|
||||
categories = ["file manager"]
|
||||
freedesktop_categories = ["Qt","KDE","System","FileTools","FileManager",]
|
||||
build_systems = ["cmake"]
|
||||
programming_languages = ["C++","QML",]
|
||||
state = ["mature"]
|
||||
[extra]
|
||||
repository = "https://invent.kde.org/maui/index-fm"
|
||||
homepage = "https://mauikit.org/"
|
||||
bugtracker = "https://invent.kde.org/maui/index-fm/-/issues"
|
||||
donation = "https://www.kde.org/community/donations"
|
||||
translate = ""
|
||||
repology = ["index-fm"] # array
|
||||
flathub = "https://flathub.org/apps/details/org.kde.index"
|
||||
flatpak_json_url = "" # not used yet, fill anyway please
|
||||
app_id = "org.kde.index"
|
||||
# summary variable is in page.description (below title) for technical reasons (https://github.com/linuxphoneapps/linuxphoneapps.org/issues)
|
||||
summary_source_url = "https://invent.kde.org/maui/index-fm"
|
||||
# description is below in page content
|
||||
description_source_url = "https://invent.kde.org/maui/index-fm" # Don't fill if editorial
|
||||
icon_url = "https://invent.kde.org/maui/index-fm/-/raw/master/logo.png" # not used yet, fill anyway please
|
||||
notice = "" # can be markdown or html, use <br> for line breaks
|
||||
scale-to-fit = "" # Only fill where necessary
|
||||
license_url = "https://invent.kde.org/maui/index-fm/-/blob/master/LICENSES/GPL-3.0-or-later.txt"
|
||||
appstream_xml_url = "https://invent.kde.org/maui/index-fm/-/raw/master/org.kde.index.appdata.xml"
|
||||
listing_contributors = ["1peter10"] # Further contributors (array)
|
||||
+++
|
||||
This is where the description goes. Feel free to use markdown formatting.
|
|
@ -1,44 +0,0 @@
|
|||
+++
|
||||
title = "Index"
|
||||
description = "Multi-platform file manager"
|
||||
date = "2019-02-01"
|
||||
updated = "2021-08-24"
|
||||
author = "cahfofpai" # Original reporter
|
||||
template = "apps/page.html"
|
||||
[taxonomies]
|
||||
mobile_compatibilities = ["5"]
|
||||
frameworks = ["MauiKit", "Kirigami"]
|
||||
metadata_licenses = ["CC0-1.0"]
|
||||
project_licenses = ["LGPL-3.0-or-later"] # SPDX 3-0 identifier
|
||||
# services =
|
||||
# backends =
|
||||
categories = ["file manager"]
|
||||
freedesktop_categories = ["Qt","KDE","System","FileTools","FileManager",]
|
||||
build_systems = ["cmake"]
|
||||
programming_languages = ["C++","QML",]
|
||||
state = ["mature"]
|
||||
[extra]
|
||||
repository = "https://invent.kde.org/maui/index-fm"
|
||||
homepage = "https://mauikit.org/"
|
||||
bugtracker = "https://invent.kde.org/maui/index-fm/-/issues"
|
||||
donation = "https://www.kde.org/community/donations"
|
||||
translate = ""
|
||||
repology = ["index-fm"] # array
|
||||
flathub = "https://flathub.org/apps/details/org.kde.index"
|
||||
flatpak_json_url = "" # not used yet, fill anyway please
|
||||
app_id = "org.kde.index"
|
||||
# summary variable is in page.description (below title) for technical reasons (https://github.com/linuxphoneapps/linuxphoneapps.org/issues)
|
||||
summary_source_url = "https://invent.kde.org/maui/index-fm"
|
||||
# description is below in page content
|
||||
description_source_url = "https://invent.kde.org/maui/index-fm" # Don't fill if editorial
|
||||
icon_url = "https://invent.kde.org/maui/index-fm/-/raw/master/logo.png" # not used yet, fill anyway please
|
||||
notice = "" # can be markdown or html, use <br> for line breaks
|
||||
moreinformation =[
|
||||
{url = "https://medium.com/@temisclopeolimac/index-overview-b2ddcb16534f", name = "Camilo Higuita: Index — overview (Nov 2018)"},
|
||||
]
|
||||
scale-to-fit = "" # Only fill where necessary
|
||||
license_url = "https://invent.kde.org/maui/index-fm/-/blob/master/LICENSES/GPL-3.0-or-later.txt"
|
||||
appstream_xml_url = "https://invent.kde.org/maui/index-fm/-/raw/master/org.kde.index.appdata.xml"
|
||||
listing_contributors = ["1peter10"] # Further contributors (array)
|
||||
+++
|
||||
Index is a file manager that works on desktops, Android and Plasma Mobile. Index lets you browse your system files and applications and preview your music, text, image and video files and share them with external applications.
|
Before Width: | Height: | Size: 159 KiB |
Before Width: | Height: | Size: 209 KiB |
Before Width: | Height: | Size: 191 KiB |
Before Width: | Height: | Size: 350 KiB |
|
@ -1,40 +0,0 @@
|
|||
+++
|
||||
title = "Telly Skout"
|
||||
description = "Convergent EPG based on Kirigami"
|
||||
date = "2021-08-14"
|
||||
updated = "2021-08-25"
|
||||
author = "1peter10" # Original reporter
|
||||
template = "apps/page.html"
|
||||
[taxonomies]
|
||||
mobile_compatibilities = ["5"]
|
||||
frameworks = ["Kirigami"]
|
||||
metadata_licenses = ["FSFAP"]
|
||||
project_licenses = ["GPL-2.0-or-later"] # SPDX 3-0 identifier
|
||||
services = ["xmltv.se"]
|
||||
# backends =
|
||||
categories = ["tv guide"]
|
||||
freedesktop_categories = ["Qt","KDE","Utility",]
|
||||
build_systems = ["cmake"]
|
||||
programming_languages = ["C++","QML",]
|
||||
state = ["WIP"]
|
||||
[extra]
|
||||
repository = "https://github.com/plata/telly-skout"
|
||||
homepage = ""
|
||||
bugtracker = "https://github.com/plata/telly-skout/issues"
|
||||
donation = ""
|
||||
translate = ""
|
||||
repology = ["telly-skout"]
|
||||
flathub = "" # not used yet, fill anyway please
|
||||
flatpak_json_url = "" # not used yet, fill anyway please
|
||||
app_id = "org.kde.telly-skout"
|
||||
# summary variable is in page.description (below title) for technical reasons (https://github.com/linuxphoneapps/linuxphoneapps.org/issues)
|
||||
summary_source_url = "https://github.com/plata/telly-skout"
|
||||
# description is below in page content
|
||||
description_source_url = "" # Don't fill if editorial
|
||||
icon_url = "" # not used yet, fill anyway please
|
||||
notice = "WIP - somewhat works, supports many European TV channels. Originally called Telly Scout." # can be markdown or html, use <br> for line breaks
|
||||
scale-to-fit = "" # Only fill where necessary
|
||||
license_url = "https://github.com/plata/telly-skout/tree/main/LICENSES"
|
||||
appstream_xml_url = "https://github.com/plata/telly-skout/raw/main/org.kde.telly-skout.appdata.xml"
|
||||
listing_contributors = [""] # Further contributors (array)
|
||||
+++
|
Before Width: | Height: | Size: 145 KiB |
Before Width: | Height: | Size: 143 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 158 KiB |
|
@ -1,40 +0,0 @@
|
|||
+++
|
||||
title = "Vvave"
|
||||
description = "Multi-platform media player"
|
||||
date = "2019-02-01"
|
||||
updated = "2021-08-04"
|
||||
author = "cahfofpai"
|
||||
template = "apps/page.html"
|
||||
[taxonomies]
|
||||
mobile_compatibilities = ["5"]
|
||||
frameworks = ["MauiKit", "Kirigami"]
|
||||
metadata_licenses = ["CC0-1.0"]
|
||||
project_licenses = ["LGPL-3.0-or-later"] # SPDX 3-0 identifier
|
||||
# services =
|
||||
# backends =
|
||||
categories = ["music"]
|
||||
freedesktop_categories = ["Qt","Audio","Player",]
|
||||
build_systems = ["cmake"]
|
||||
programming_languages = ["C++","QML",]
|
||||
state = ["mature"]
|
||||
[extra]
|
||||
repository = "https://invent.kde.org/maui/vvave"
|
||||
homepage = "https://vvave.kde.org/"
|
||||
bugtracker = "https://invent.kde.org/maui/vvave/-/issues"
|
||||
donation = "https://www.kde.org/community/donations"
|
||||
translate = ""
|
||||
repology = ["vvave"] # array
|
||||
flathub = "https://flathub.org/apps/details/org.kde.vvave"
|
||||
flatpak_json_url = "" # not used yet, fill anyway please
|
||||
app_id = "org.kde.vvave"
|
||||
# summary variable is in page.description (below title) for technical reasons (https://github.com/linuxphoneapps/linuxphoneapps.org/issues)
|
||||
summary_source_url = "https://invent.kde.org/maui/vvave"
|
||||
# description is below in page content
|
||||
description_source_url = "" # Don't fill if editorial
|
||||
icon_url = "https://invent.kde.org/maui/vvave/-/raw/master/logo.png" # not used yet, fill anyway please
|
||||
notice = "" # can be markdown or html, e.g. use <br> for line breaks
|
||||
scale-to-fit = "" # Only fill where necessary
|
||||
license_url = "https://invent.kde.org/maui/vvave/-/blob/master/LICENSE"
|
||||
appstream_xml_url = "https://invent.kde.org/maui/vvave/-/raw/master/org.kde.vvave.appdata.xml"
|
||||
listing_contributors = ["1peter10"] # Further contributors (array)
|
||||
+++
|
|
@ -0,0 +1,18 @@
|
|||
+++
|
||||
title = "Authors"
|
||||
description = "The authurs of the blog articles."
|
||||
date = 2021-04-01T08:00:00+00:00
|
||||
updated = 2021-04-01T08:00:00+00:00
|
||||
draft = false
|
||||
|
||||
# If add a new author page in this section, please add a new item,
|
||||
# and the format is as follows:
|
||||
#
|
||||
# "author-name-in-url" = "the-full-path-of-the-author-page"
|
||||
#
|
||||
# Note: We use quoted keys here.
|
||||
[extra.author_pages]
|
||||
"aaran-xu" = "authors/aaran-xu.md"
|
||||
+++
|
||||
|
||||
The authors of the blog articles.
|
|
@ -0,0 +1,11 @@
|
|||
+++
|
||||
title = "Aaran Xu"
|
||||
description = "Creator of AdiDoks."
|
||||
date = 2021-04-01T08:50:45+00:00
|
||||
updated = 2021-04-01T08:50:45+00:00
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Creator of **AdiDoks**.
|
||||
|
||||
[@aaranxu](https://github.com/aaranxu)
|
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Lists"
|
||||
description = "The home the various lists"
|
||||
sort_by = "date"
|
||||
paginate_by = 2
|
||||
template = "lists/section.html"
|
||||
+++
|
|
@ -0,0 +1,69 @@
|
|||
+++
|
||||
title = "Apps"
|
||||
description = "A list of apps that work on Linux Phones like the PinePhone or Librem 5."
|
||||
date = 2021-12-28T07:00:00+00:00
|
||||
template = "lists/apps.html"
|
||||
draft = false
|
||||
|
||||
[extra]
|
||||
lead = 'The LINMOBapps Apps list'
|
||||
images = []
|
||||
+++
|
||||
|
||||
[Get .csv](https://framagit.org/linuxphoneapps/csv-lists/-/raw/master/apps.csv)
|
||||
|
||||
* If you want to revive unmaintained apps, check the [Archive](../archive/)!
|
||||
* If you want to help test apps or see what's likely to be added soon, check out [apps-to-be-added.csv](https://framagit.org/linuxphoneapps/csv-lists/-/blob/master/todo/apps-to-be-added.md)
|
||||
|
||||
### Legend/Field Explaination
|
||||
|
||||
* **name:** name of the app
|
||||
* **category:** App category (one or two words)
|
||||
* **summary:** one or two sentences about the app - normally a quote from the project site
|
||||
* **mobile compatibility:** a number between 5 (best) and 0 (worst) to name the mobile compatibility of the app (this is different from MGLApps to be closer to the ratings in [Mobian Wiki](https://wiki.mobian-project.org/doku.php?id=apps); category 3 may be redefined, as it includes apps that apparently have not been tested on mobile GNU/Linux or postmarketOS)
|
||||
* 5 = perfect - nothing left to be done
|
||||
* 4 = almost perfect, works fine with tweaks for scaling, like `scale-to-fit´ on Phosh
|
||||
* 3 = some parts of the app are not usable with touch input on small screens
|
||||
* 2 = many parts of the app are not usable with touch input on small screens
|
||||
* 1 = app is unusable with touch input on small screens – why is this app in the LINMOBapps app list?
|
||||
* A = mobile compatibility could be perfect because the app was ported to other mobile platforms (e.g. Android)
|
||||
* **repository:** link to the code repository
|
||||
* **framework:** UI frameworks which are used by the app
|
||||
* **screenshots:** links to sites providing screenshots of the application
|
||||
* **website:** link to the project‘s website
|
||||
* **license:** license of the project
|
||||
* **appid:** AppStream ID in the form {tld}.{vendor}.{product} (e.g. org.kde.itinerary)
|
||||
* **appstream link:** AppStream link for automated install with software like Discover or GNOME Software (experimental)
|
||||
* **scale-to-fit:** AppID to scale the app properly in Phosh (with `scale-to-fit AppID on`). To find out these IDs, put the following lines somewhere, e.g. into a file called `~/.local/bin/get-app-id.sh`:
|
||||
`#!/bin/bash
|
||||
WAYLAND_DEBUG=1 $1 |& grep 'xdg_toplevel@[0-9]\+\.set_app_id'`
|
||||
See also this post on [linmob.net](https://linmob.net/2020/07/27/pinephone-daily-driver-challenge-part2-flatpak-and-scaling-in-phosh.html#manual-scaling-in-phosh)
|
||||
* **flatpak:** link to the Flathub page (if available) or another location the app could be installed from as flatpak. For help with installing Flatpaks see [linmob.net](https://linmob.net/2020/07/27/pinephone-daily-driver-challenge-part2-flatpak-and-scaling-in-phosh.html#flatpaks-across-pinephone-distributions)
|
||||
* **aur:** name of the corresponding package build in the [Arch User Repository](https://aur.archlinux.org). For help with the AUR see [linmob.net](https://linmob.net/2020/09/05/pinephone-building-plasma-mobile-apps-from-the-aur.html#preparations)
|
||||
* **postmarketos:** name of the corresponding package in the postmarketOS/Alpine repositories _(definitely incomplete, contributions welcome!)_
|
||||
* **debian:** name of the corresponding debian package _(definitely incomplete, contributions welcome!)_
|
||||
* **notice:** additional information about develpment stage, mobile compatibility or what else is important to know
|
||||
* **more information:** links to sites providing more information about the app
|
||||
* **backend:** backends which are used by the app
|
||||
* **service:** services the app includes and makes use of
|
||||
* **description:** more detailed text about the app - normally a quote from the project site
|
||||
* **description source:** if 'description' is a quote, this provides the source
|
||||
* **summary source:** if 'summary' is a quote, this provides the source
|
||||
* **freedesktop (sub)categories:** good old ancient [freedesktop categories](https://specifications.freedesktop.org/menu-spec/latest/apas02.html).
|
||||
* **main languages:** main programming languages the project is realized with
|
||||
* **build system:** build system to build the app. More documentation in our [Docs](docs/build-systems).
|
||||
* **original reporter:** person that originally added the app to the list.
|
||||
|
||||
### Credits and Liability
|
||||
|
||||
LinuxPhoneApps.org is, just like its origins, the LINMOBapps app list and MGLApps app list, licensed under [CC BY-SA 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||
|
||||
Built with ♥ and amazing free and open source software:
|
||||
* [Pivot.js](http://rwjblue.github.io/pivot.js/),
|
||||
* [Datatables](https://www.datatables.net/),
|
||||
* [Linkify](https://soapbox.github.io/linkifyjs/),
|
||||
* [Bulma](http://bulma.io/),
|
||||
* [Bulma-Extensions](https://wikiki.github.io) and
|
||||
* [jQuery](https://jquery.com/)
|
||||
|
||||
The LinuxPhoneApps.org contributors do not take any warranty for the correctness of any information on this page. If you want to be sure, please visit the mentioned and linked project sites and check the information. The fields "summary" and "description" are quotations from the sites mentioned in the fields "summary source" and "description source".
|
|
@ -0,0 +1,67 @@
|
|||
+++
|
||||
title = "Archive"
|
||||
description = "A list of apps that work on Linux Phones like the PinePhone or Librem 5."
|
||||
date = 2021-12-27T07:00:00+00:00
|
||||
template = "lists/archive.html"
|
||||
draft = false
|
||||
|
||||
[extra]
|
||||
lead = 'The LINMOBapps Archive'
|
||||
images = []
|
||||
+++
|
||||
|
||||
[Get .csv](https://framagit.org/linuxphoneapps/csv-lists/-/raw/master/archive.csv)
|
||||
|
||||
|
||||
### Legend/Field Explaination
|
||||
|
||||
* **name:** name of the app
|
||||
* **category:** App category (one or two words)
|
||||
* **summary:** one or two sentences about the app - normally a quote from the project site
|
||||
* **mobile compatibility:** a number between 5 (best) and 0 (worst) to name the mobile compatibility of the app (this is different from MGLApps to be closer to the ratings in [Mobian Wiki](https://wiki.mobian-project.org/doku.php?id=apps); category 3 may be redefined, as it includes apps that apparently have not been tested on mobile GNU/Linux or postmarketOS)
|
||||
* 5 = perfect - nothing left to be done
|
||||
* 4 = almost perfect, works fine with tweaks for scaling, like `scale-to-fit´ on Phosh
|
||||
* 3 = some parts of the app are not usable with touch input on small screens
|
||||
* 2 = many parts of the app are not usable with touch input on small screens
|
||||
* 1 = app is unusable with touch input on small screens – why is this app in the LINMOBapps app list?
|
||||
* A = mobile compatibility could be perfect because the app was ported to other mobile platforms (e.g. Android)
|
||||
* **repository:** link to the code repository
|
||||
* **framework:** UI frameworks which are used by the app
|
||||
* **screenshots:** links to sites providing screenshots of the application
|
||||
* **website:** link to the project‘s website
|
||||
* **license:** license of the project
|
||||
* **appid:** AppStream ID in the form {tld}.{vendor}.{product} (e.g. org.kde.itinerary)
|
||||
* **appstream link:** AppStream link for automated install with software like Discover or GNOME Software (experimental)
|
||||
* **scale-to-fit:** AppID to scale the app properly in Phosh (with `scale-to-fit AppID on`). To find out these IDs, put the following lines somewhere, e.g. into a file called `~/.local/bin/get-app-id.sh`:
|
||||
`#!/bin/bash
|
||||
WAYLAND_DEBUG=1 $1 |& grep 'xdg_toplevel@[0-9]\+\.set_app_id'`
|
||||
See also this post on [linmob.net](https://linmob.net/2020/07/27/pinephone-daily-driver-challenge-part2-flatpak-and-scaling-in-phosh.html#manual-scaling-in-phosh)
|
||||
* **flatpak:** link to the Flathub page (if available) or another location the app could be installed from as flatpak. For help with installing Flatpaks see [linmob.net](https://linmob.net/2020/07/27/pinephone-daily-driver-challenge-part2-flatpak-and-scaling-in-phosh.html#flatpaks-across-pinephone-distributions)
|
||||
* **aur:** name of the corresponding package build in the [Arch User Repository](https://aur.archlinux.org). For help with the AUR see [linmob.net](https://linmob.net/2020/09/05/pinephone-building-plasma-mobile-apps-from-the-aur.html#preparations)
|
||||
* **postmarketos:** name of the corresponding package in the postmarketOS/Alpine repositories _(definitely incomplete, contributions welcome!)_
|
||||
* **debian:** name of the corresponding debian package _(definitely incomplete, contributions welcome!)_
|
||||
* **notice:** additional information about develpment stage, mobile compatibility or what else is important to know
|
||||
* **more information:** links to sites providing more information about the app
|
||||
* **backend:** backends which are used by the app
|
||||
* **service:** services the app includes and makes use of
|
||||
* **description:** more detailed text about the app - normally a quote from the project site
|
||||
* **description source:** if 'description' is a quote, this provides the source
|
||||
* **summary source:** if 'summary' is a quote, this provides the source
|
||||
* **freedesktop (sub)categories:** good old ancient [freedesktop categories](https://specifications.freedesktop.org/menu-spec/latest/apas02.html).
|
||||
* **main languages:** main programming languages the project is realized with
|
||||
* **build system:** build system to build the app. More documentation in our [Docs](docs/build-systems).
|
||||
* **original reporter:** person that originally added the app to the list.
|
||||
|
||||
### Credits and Liability
|
||||
|
||||
LinuxPhoneApps.org is, just like its origins, the LINMOBapps app list and MGLApps app list, licensed under [CC BY-SA 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||
|
||||
Built with ♥ and amazing free and open source software:
|
||||
* [Pivot.js](http://rwjblue.github.io/pivot.js/),
|
||||
* [Datatables](https://www.datatables.net/),
|
||||
* [Linkify](https://soapbox.github.io/linkifyjs/),
|
||||
* [Bulma](http://bulma.io/),
|
||||
* [Bulma-Extensions](https://wikiki.github.io) and
|
||||
* [jQuery](https://jquery.com/)
|
||||
|
||||
The LinuxPhoneApps.org contributors do not take any warranty for the correctness of any information on this page. If you want to be sure, please visit the mentioned and linked project sites and check the information. The fields "summary" and "description" are quotations from the sites mentioned in the fields "summary source" and "description source".
|
|
@ -0,0 +1,67 @@
|
|||
+++
|
||||
title = "Games"
|
||||
description = "A list of apps that work on Linux Phones like the PinePhone or Librem 5."
|
||||
date = 2021-12-28T07:00:00+00:00
|
||||
template = "lists/games.html"
|
||||
draft = false
|
||||
|
||||
[extra]
|
||||
lead = 'The LINMOBapps Game list'
|
||||
images = []
|
||||
+++
|
||||
|
||||
This is the games list, which is currently maintained by Moxvallix — Contributions to the list are welcome.
|
||||
|
||||
See also: Patched games repository: [https://github.com/moxvallix/LinMobGames](https://github.com/moxvallix/LinMobGames)
|
||||
|
||||
### Legend/Field Explaination
|
||||
|
||||
* **name:** name of the app
|
||||
* **category:** App category (one or two words)
|
||||
* **reporter:** Credit to whoever reported that the app works
|
||||
* **verified:** App has been tested on a Linux mobile, and declared working (touch, ui etc) by a maintainer.
|
||||
* **summary:** one or two sentences about the app - normally a quote from the project site
|
||||
* **mobile compatibility:** a number between 5 (best) and 0 (worst) to name the mobile compatibility of the app (this is different from MGLApps to be closer to the ratings in [Mobian Wiki](https://wiki.mobian-project.org/doku.php?id=apps); category 3 may be redefined, as it includes apps that apparently have not been tested on mobile GNU/Linux or postmarketOS)
|
||||
* 5 = perfect - nothing left to be done
|
||||
* 4 = almost perfect, works fine with tweaks for scaling, like \`scale-to-fit´ on Phosh
|
||||
* 3 = some parts of the app are not usable with touch input on small screens
|
||||
* 2 = many parts of the app are not usable with touch input on small screens
|
||||
* 1 = app is unusable with touch input on small screens – why is this app in the LINMOBapps app list?
|
||||
* A = mobile compatibility could be perfect because the app was ported to other mobile platforms (e.g. Android)
|
||||
* **repository:** link to the code repository
|
||||
* **framework:** UI frameworks which are used by the app
|
||||
* **screenshots:** links to sites providing screenshots of the application
|
||||
* **website:** link to the project‘s website
|
||||
* **license:** license of the project
|
||||
* **appid:** AppStream ID in the form {tld}.{vendor}.{product} (e.g. org.kde.itinerary)
|
||||
* **scale-to-fit:** AppID to scale the app properly in Phosh (with scale-to-fit AppID on). To find out these IDs, use [get-app-id.sh](https://framagit.org/linmobapps/linmobapps.frama.io/-/blob/master/get-app-id.sh) or see [linmob.net](https://linmob.net/2020/07/27/pinephone-daily-driver-challenge-part2-flatpak-and-scaling-in-phosh.html#manual-scaling-in-phosh)
|
||||
* **flatpak:** link to the Flathub page (if available) or another location the app could be installed from as flatpak. For help with installing Flatpaks see [linmob.net](https://linmob.net/2020/07/27/pinephone-daily-driver-challenge-part2-flatpak-and-scaling-in-phosh.html#flatpaks-across-pinephone-distributions)
|
||||
* **aur:** name of the corresponding package build in the [Arch User Repository](https://aur.archlinux.org). For help with the AUR see [linmob.net](https://linmob.net/2020/09/05/pinephone-building-plasma-mobile-apps-from-the-aur.html#preparations)
|
||||
* **postmarketos:** name of the corresponding package in the postmarketOS/Alpine repositories _(definitely incomplete, contributions welcome!)_
|
||||
* **debian:** name of the corresponding debian package _(definitely incomplete, contributions welcome!)_
|
||||
* **notice:** additional information about develpment stage, mobile compatibility or what else is important to know
|
||||
* **more information:** links to sites providing more information about the app
|
||||
* **backend:** backends which are used by the app
|
||||
* **service:** services the app includes and makes use of
|
||||
* **description:** more detailed text about the app - normally a quote from the project site
|
||||
* **description source:** if 'description' is a quote, this provides the source
|
||||
* **summary source:** if 'summary' is a quote, this provides the source
|
||||
|
||||
### Get in touch
|
||||
|
||||
If you want to contact Moxvallix, the games list maintainer, you can contact him on matrix at [moxvallix:matrix.org](https://matrix.to/#/@moxvallix:matrix.org), or send him an email at [moxvallix@gmail.com](mailto:moxvallix@gmail.com).
|
||||
|
||||
|
||||
### Credits and Liability
|
||||
|
||||
LinuxPhoneApps.org is, just like its origins, the LINMOBapps app list and MGLApps app list, licensed under [CC BY-SA 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||
|
||||
Built with ♥ and amazing free and open source software:
|
||||
* [Pivot.js](http://rwjblue.github.io/pivot.js/),
|
||||
* [Datatables](https://www.datatables.net/),
|
||||
* [Linkify](https://soapbox.github.io/linkifyjs/),
|
||||
* [Bulma](http://bulma.io/),
|
||||
* [Bulma-Extensions](https://wikiki.github.io) and
|
||||
* [jQuery](https://jquery.com/)
|
||||
|
||||
The LinuxPhoneApps.org contributors do not take any warranty for the correctness of any information on this page. If you want to be sure, please visit the mentioned and linked project sites and check the information. The fields "summary" and "description" are quotations from the sites mentioned in the fields "summary source" and "description source".
|
|
@ -0,0 +1,41 @@
|
|||
+++
|
||||
title = "Hello World"
|
||||
description = "Introducing Doks, a Hugo theme helping you build modern documentation websites that are secure, fast, and SEO-ready — by default."
|
||||
date = 2021-05-01T09:19:42+00:00
|
||||
updated = 2021-05-01T09:19:42+00:00
|
||||
draft = false
|
||||
template = "blog/page.html"
|
||||
|
||||
[taxonomies]
|
||||
authors = ["Rustaceans"]
|
||||
|
||||
[extra]
|
||||
lead = "This is the source code of the traditional <b>Hello World</b> program."
|
||||
+++
|
||||
|
||||
```rust
|
||||
// This is a comment, and is ignored by the compiler
|
||||
|
||||
// This is the main function
|
||||
fn main() {
|
||||
// Statements here are executed when the compiled binary is called
|
||||
|
||||
// Print text to the console
|
||||
println!("Hello World!");
|
||||
}
|
||||
```
|
||||
|
||||
`println!` is a macro that prints text to the console.
|
||||
|
||||
A binary can be generated using the Rust compiler: `rustc`.
|
||||
|
||||
```bash
|
||||
$ rustc hello.rs
|
||||
```
|
||||
|
||||
`rustc` will produce a `hello` binary that can be executed.
|
||||
|
||||
```bash
|
||||
$ ./hello
|
||||
Hello World!
|
||||
```
|
|
@ -0,0 +1,152 @@
|
|||
+++
|
||||
title = "Markdown Syntax Guide"
|
||||
description = "Sample article showcasing basic Markdown syntax and formatting for HTML elements."
|
||||
date = 2021-04-20T09:19:42+00:00
|
||||
updated = 2021-04-20T09:19:42+00:00
|
||||
draft = false
|
||||
template = "blog/page.html"
|
||||
|
||||
[taxonomies]
|
||||
authors = ["Public"]
|
||||
|
||||
[extra]
|
||||
lead = "This article offers a sample of basic Markdown syntax that can be used in Zola content files, also it shows whether basic HTML elements are decorated with CSS in a Zola theme."
|
||||
+++
|
||||
|
||||
## Headings
|
||||
|
||||
The following HTML `<h1>`—`<h6>` elements represent six levels of section
|
||||
headings. `<h1>` is the highest section level while `<h6>` is the lowest.
|
||||
|
||||
# H1
|
||||
## H2
|
||||
### H3
|
||||
#### H4
|
||||
##### H5
|
||||
###### H6
|
||||
|
||||
## Paragraph
|
||||
|
||||
Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum,
|
||||
voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma
|
||||
dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as
|
||||
cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin
|
||||
porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur?
|
||||
Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit
|
||||
ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda
|
||||
veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore
|
||||
eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata
|
||||
tiustia prat.
|
||||
|
||||
Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne
|
||||
sapicia is sinveli squiatum, core et que aut hariosam ex eat.
|
||||
|
||||
## Blockquotes
|
||||
|
||||
The blockquote element represents content that is quoted from another source,
|
||||
optionally with a citation which must be within a `footer` or `cite` element,
|
||||
and optionally with in-line changes such as annotations and abbreviations.
|
||||
|
||||
#### Blockquote without attribution
|
||||
|
||||
> Tiam, ad mint andaepu dandae nostion secatur sequo quae.
|
||||
> **Note** that you can use *Markdown syntax* within a blockquote.
|
||||
|
||||
#### Blockquote with attribution
|
||||
|
||||
> Don't communicate by sharing memory, share memory by communicating.<br>
|
||||
> — <cite>Rob Pike[^1]</cite>
|
||||
|
||||
> All men by nature desire to know.<br>
|
||||
> ― <cite>Aristotle[^2]</cite>
|
||||
|
||||
## Tables
|
||||
|
||||
Tables aren't part of the core Markdown spec, but Zola supports them
|
||||
out-of-the-box.
|
||||
|
||||
Name | Age
|
||||
--------|------
|
||||
Bob | 27
|
||||
Alice | 23
|
||||
|
||||
#### Inline Markdown within tables
|
||||
|
||||
| Italics | Bold | Code |
|
||||
| -------- | -------- | ------ |
|
||||
| *italics* | **bold** | `code` |
|
||||
|
||||
## Code Blocks
|
||||
|
||||
#### Code block with backticks
|
||||
|
||||
```html
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Example HTML5 Document</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Test</p>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
#### Code block indented with four spaces
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Example HTML5 Document</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Test</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
## List Types
|
||||
|
||||
#### Ordered List
|
||||
|
||||
1. First item
|
||||
2. Second item
|
||||
3. Third item
|
||||
|
||||
#### Unordered List
|
||||
|
||||
- List item
|
||||
- Another item
|
||||
- And another item
|
||||
|
||||
#### Nested list
|
||||
|
||||
- Fruit
|
||||
- Apple
|
||||
- Orange
|
||||
- Banana
|
||||
- Dairy
|
||||
- Milk
|
||||
- Cheese
|
||||
|
||||
## Other Elements — abbr, sub, sup, kbd, mark
|
||||
|
||||
<abbr title="Graphics Interchange Format">GIF</abbr> is a bitmap image format.
|
||||
|
||||
H<sub>2</sub>O
|
||||
|
||||
X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
|
||||
|
||||
Press <kbd><kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd></kbd> to end the
|
||||
session.
|
||||
|
||||
Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and
|
||||
other small creatures.
|
||||
|
||||
---
|
||||
<!-- Note: There must be a blank line between every two lines of the footnote difinition. -->
|
||||
[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c)
|
||||
during Gopherfest, November 18, 2015.
|
||||
|
||||
[^2]: The quote is the first sentence of Aristotle's [Metaphysics](http://classics.mit.edu/Aristotle/metaphysics.html).
|
|
@ -0,0 +1,48 @@
|
|||
+++
|
||||
title = "Math Typesetting"
|
||||
description = "Introducing Doks, a Hugo theme helping you build modern documentation websites that are secure, fast, and SEO-ready — by default."
|
||||
date = 2021-04-08T09:19:42+00:00
|
||||
updated = 2021-04-08T09:19:42+00:00
|
||||
draft = false
|
||||
template = "blog/page.html"
|
||||
|
||||
[taxonomies]
|
||||
authors = ["Public"]
|
||||
|
||||
[extra]
|
||||
lead = "Mathematical notation in a project can be enabled by using third party JavaScript libraries."
|
||||
math = true
|
||||
+++
|
||||
|
||||
|
||||
In this example we will be using [KaTeX](https://katex.org/)
|
||||
|
||||
- Create a macro under `/template/macros/math.html` with a macro named `math`.
|
||||
- Within this macro reference the [Auto-render Extension](https://katex.org/docs/autorender.html) or host these scripts locally.
|
||||
- Import the macro in your templates like so:
|
||||
|
||||
```bash
|
||||
{% import 'macros/math.html' as macros %}
|
||||
{% if page.extra.math or section.extra.math or config.extra.math %}
|
||||
{{ macros::math() }}
|
||||
{% endif %}
|
||||
```
|
||||
|
||||
- To enable KaTex globally set the parameter `extra.math` to `true` in a project's configuration
|
||||
- To enable KaTex on a per page basis include the parameter `extra.math = true` in content files
|
||||
|
||||
**Note:**
|
||||
|
||||
1. The MathJax library is the other optional choice, and you can set the parameter `extra.library` to `mathjax` in a project's configuration
|
||||
2. Use the online reference of [Supported TeX Functions](https://katex.org/docs/supported.html)
|
||||
|
||||
### Examples
|
||||
|
||||
<p>
|
||||
Inline math: \(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\)
|
||||
</p>
|
||||
|
||||
Block math:
|
||||
$$
|
||||
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
|
||||
$$
|
|
@ -0,0 +1,15 @@
|
|||
+++
|
||||
title = "Say hello to AdiDoks 👋"
|
||||
description = "Introducing AdiDoks, a Zola theme helping you build modern documentation websites, which is a port of the Hugo theme Doks for Zola."
|
||||
date = 2021-04-03T07:00:00+00:00
|
||||
updated = 2021-04-03T07:00:00+00:00
|
||||
template = "blog/page.html"
|
||||
draft = false
|
||||
|
||||
[taxonomies]
|
||||
authors = ["Aaran Xu"]
|
||||
|
||||
[extra]
|
||||
lead = 'Introducing AdiDoks, a Zola theme helping you build modern documentation websites, which is a port of the Hugo theme <a href="https://github.com/h-enk/doks">Doks</a> for Zola.'
|
||||
images = []
|
||||
+++
|
|
@ -0,0 +1 @@
|
|||
Subproject commit c352fd013f490dbe9916323c7c3b4e34ddb1e5ba
|
|
@ -0,0 +1 @@
|
|||
@-webkit-keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.accordions .accordion{display:flex;flex-direction:column;background-color:#f5f5f5;border-radius:4px;font-size:1rem}.accordions .accordion strong{color:currentColor}.accordions .accordion a:not(.button):not(.tag){color:currentColor;text-decoration:underline}.accordions .accordion:not(:first-child) .accordion-header{border-radius:0}.accordions .accordion:not(:last-child){margin-bottom:0}.accordions .accordion:not(:last-child) .accordion-content{border-radius:0}.accordions .accordion .toggle,.accordions .accordion [data-action=toggle]{cursor:pointer}.accordions .accordion .accordion-header{align-items:center;background-color:#4a4a4a;border-radius:4px 4px 0 0;color:#fff;display:flex;justify-content:space-between;line-height:1.25;padding:.5em .75em;position:relative}.accordions .accordion .accordion-header .toggle{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,.2);border:none;border-radius:290486px;display:inline-block;flex-grow:0;flex-shrink:0;margin-left:.75em;height:20px;width:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;position:relative;vertical-align:top}.accordions .accordion .accordion-header .toggle::before{color:#fff;display:block;left:0;position:absolute;top:-.1em;right:0;bottom:0;content:'\002B'}.accordions .accordion .accordion-header .toggle::after{display:none}.accordions .accordion .accordion-header+.accordion-body{overflow-y:hidden;max-height:0;color:#4a4a4a;border:1px solid #dbdbdb;border-radius:0 0 4px 4px;border-top:none;transition:max-height .2s}.accordions .accordion .accordion-header+.accordion-body .accordion-content{padding:1em 1.25em}.accordions .accordion.is-active .accordion-header .toggle::before{content:'\002D'}.accordions .accordion.is-active .accordion-body{max-height:100em}.accordions .accordion.is-link{background-color:#f6f9fe}.accordions .accordion.is-link .accordion-header{background-color:#3273dc;color:#fff}.accordions .accordion.is-link .accordion-content{border-color:#3273dc;color:#22509a}
|
|
@ -0,0 +1 @@
|
|||
html{padding-top:40px}div.dataTables_length label{float:left;text-align:left}div.dataTables_length select{width:75px}div.dataTables_filter label{float:right}div.dataTables_info{padding-top:8px}div.dataTables_paginate{float:right;margin:0}table.table{clear:both;margin-bottom:6px!important}table.table thead .sorting,table.table thead .sorting_asc,table.table thead .sorting_asc_disabled,table.table thead .sorting_desc,table.table thead .sorting_desc_disabled{cursor:pointer}th{padding-left:20px!important}table.table thead .sorting{background:url('../images/sort_both.png') center left no-repeat}table.table thead .sorting_asc{background:url('../images/sort_asc.png') center left no-repeat}table.table thead .sorting_desc{background:url('../images/sort_desc.png') center left no-repeat}table.table thead .sorting_asc_disabled{background:url('../images/sort_asc_disabled.png') center left no-repeat}table.table thead .sorting_desc_disabled{background:url('../images/sort_desc_disabled.png') center left no-repeat}table.dataTable th:active{outline:0}.pivot_header_fields{margin-left:-20px}.pivot_header2{font-size:x-large;font-weight:700}.pivot_field{width:300px;float:left;margin-left:20px}
|
|
@ -0,0 +1 @@
|
|||
table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child:before{top:9px;left:4px;height:14px;width:14px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#21ba45}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#21ba45}table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable>tbody>tr.child{padding:0.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:0.5em;box-shadow:0 12px 30px rgba(0,0,0,0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}div.dtr-bs-modal table.table tr:first-child td{border-top:none}
|
|
@ -0,0 +1,30 @@
|
|||
city,state,zip
|
||||
JACKSONVILLE,FL,32204
|
||||
TALLAHASSEE,FL,32308
|
||||
NAPLES,FL,34110
|
||||
"PONTE VEDRA",FL,32082
|
||||
"WEST PALM BEACH",FL,33401
|
||||
ENGLEWOOD,FL,34223
|
||||
JACKSONVILLE,FL,32209
|
||||
HOLLYWOOD,FL,33021
|
||||
"PEMBROKE PINES",FL,33024
|
||||
"NEW PORT RICHEY",FL,34655
|
||||
"FORT WALTON BEACH",FL,32548
|
||||
MELBOURNE,FL,32940
|
||||
"PALM HARBOR",FL,34684
|
||||
AVENTURA,FL,33180
|
||||
TAMPA,FL,33606
|
||||
"FT MYERS",FL,33901
|
||||
MIAI,FL,33173
|
||||
SANFORD,FL,32771
|
||||
PENSACOLA,FL,32503
|
||||
MARIANNA,FL,32446
|
||||
"ORANGE PARK",FL,32073
|
||||
MIAMI,FL,33173
|
||||
PENSACOLA,FL,32504
|
||||
"PEMBROKE PINES",FL,33028
|
||||
"FORT MYERS",FL,33907
|
||||
"AMELIA ISLAND",FL,32034
|
||||
JACKSONVILLE,FL,32216
|
||||
DAVIE,FL,33331
|
||||
"BOCA RATON",FL,33486
|
|
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.0 KiB |
|
@ -0,0 +1,30 @@
|
|||
/*!
|
||||
Responsive 2.2.2
|
||||
2014-2018 SpryMedia Ltd - datatables.net/license
|
||||
*/
|
||||
(function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(l){return d(l,window,document)}):"object"===typeof exports?module.exports=function(l,j){l||(l=window);if(!j||!j.fn.dataTable)j=require("datatables.net")(l,j).$;return d(j,l,l.document)}:d(jQuery,window,document)})(function(d,l,j,q){function t(a,b,c){var e=b+"-"+c;if(n[e])return n[e];for(var d=[],a=a.cell(b,c).node().childNodes,b=0,c=a.length;b<c;b++)d.push(a[b]);return n[e]=d}function r(a,b,d){var e=b+
|
||||
"-"+d;if(n[e]){for(var a=a.cell(b,d).node(),d=n[e][0].parentNode.childNodes,b=[],f=0,g=d.length;f<g;f++)b.push(d[f]);d=0;for(f=b.length;d<f;d++)a.appendChild(b[d]);n[e]=q}}var o=d.fn.dataTable,i=function(a,b){if(!o.versionCheck||!o.versionCheck("1.10.10"))throw"DataTables Responsive requires DataTables 1.10.10 or newer";this.s={dt:new o.Api(a),columns:[],current:[]};this.s.dt.settings()[0].responsive||(b&&"string"===typeof b.details?b.details={type:b.details}:b&&!1===b.details?b.details={type:!1}:
|
||||
b&&!0===b.details&&(b.details={type:"inline"}),this.c=d.extend(!0,{},i.defaults,o.defaults.responsive,b),a.responsive=this,this._constructor())};d.extend(i.prototype,{_constructor:function(){var a=this,b=this.s.dt,c=b.settings()[0],e=d(l).width();b.settings()[0]._responsive=this;d(l).on("resize.dtr orientationchange.dtr",o.util.throttle(function(){var b=d(l).width();b!==e&&(a._resize(),e=b)}));c.oApi._fnCallbackReg(c,"aoRowCreatedCallback",function(e){-1!==d.inArray(!1,a.s.current)&&d(">td, >th",
|
||||
e).each(function(e){e=b.column.index("toData",e);!1===a.s.current[e]&&d(this).css("display","none")})});b.on("destroy.dtr",function(){b.off(".dtr");d(b.table().body()).off(".dtr");d(l).off("resize.dtr orientationchange.dtr");d.each(a.s.current,function(b,e){!1===e&&a._setColumnVis(b,!0)})});this.c.breakpoints.sort(function(a,b){return a.width<b.width?1:a.width>b.width?-1:0});this._classLogic();this._resizeAuto();c=this.c.details;!1!==c.type&&(a._detailsInit(),b.on("column-visibility.dtr",function(){a._timer&&
|
||||
clearTimeout(a._timer);a._timer=setTimeout(function(){a._timer=null;a._classLogic();a._resizeAuto();a._resize();a._redrawChildren()},100)}),b.on("draw.dtr",function(){a._redrawChildren()}),d(b.table().node()).addClass("dtr-"+c.type));b.on("column-reorder.dtr",function(){a._classLogic();a._resizeAuto();a._resize()});b.on("column-sizing.dtr",function(){a._resizeAuto();a._resize()});b.on("preXhr.dtr",function(){var e=[];b.rows().every(function(){this.child.isShown()&&e.push(this.id(true))});b.one("draw.dtr",
|
||||
function(){a._resizeAuto();a._resize();b.rows(e).every(function(){a._detailsDisplay(this,false)})})});b.on("init.dtr",function(){a._resizeAuto();a._resize();d.inArray(false,a.s.current)&&b.columns.adjust()});this._resize()},_columnsVisiblity:function(a){var b=this.s.dt,c=this.s.columns,e,f,g=c.map(function(a,b){return{columnIdx:b,priority:a.priority}}).sort(function(a,b){return a.priority!==b.priority?a.priority-b.priority:a.columnIdx-b.columnIdx}),h=d.map(c,function(e,c){return!1===b.column(c).visible()?
|
||||
"not-visible":e.auto&&null===e.minWidth?!1:!0===e.auto?"-":-1!==d.inArray(a,e.includeIn)}),m=0;e=0;for(f=h.length;e<f;e++)!0===h[e]&&(m+=c[e].minWidth);e=b.settings()[0].oScroll;e=e.sY||e.sX?e.iBarWidth:0;m=b.table().container().offsetWidth-e-m;e=0;for(f=h.length;e<f;e++)c[e].control&&(m-=c[e].minWidth);var s=!1;e=0;for(f=g.length;e<f;e++){var k=g[e].columnIdx;"-"===h[k]&&(!c[k].control&&c[k].minWidth)&&(s||0>m-c[k].minWidth?(s=!0,h[k]=!1):h[k]=!0,m-=c[k].minWidth)}g=!1;e=0;for(f=c.length;e<f;e++)if(!c[e].control&&
|
||||
!c[e].never&&!1===h[e]){g=!0;break}e=0;for(f=c.length;e<f;e++)c[e].control&&(h[e]=g),"not-visible"===h[e]&&(h[e]=!1);-1===d.inArray(!0,h)&&(h[0]=!0);return h},_classLogic:function(){var a=this,b=this.c.breakpoints,c=this.s.dt,e=c.columns().eq(0).map(function(a){var b=this.column(a),e=b.header().className,a=c.settings()[0].aoColumns[a].responsivePriority;a===q&&(b=d(b.header()).data("priority"),a=b!==q?1*b:1E4);return{className:e,includeIn:[],auto:!1,control:!1,never:e.match(/\bnever\b/)?!0:!1,priority:a}}),
|
||||
f=function(a,b){var c=e[a].includeIn;-1===d.inArray(b,c)&&c.push(b)},g=function(d,c,g,k){if(g)if("max-"===g){k=a._find(c).width;c=0;for(g=b.length;c<g;c++)b[c].width<=k&&f(d,b[c].name)}else if("min-"===g){k=a._find(c).width;c=0;for(g=b.length;c<g;c++)b[c].width>=k&&f(d,b[c].name)}else{if("not-"===g){c=0;for(g=b.length;c<g;c++)-1===b[c].name.indexOf(k)&&f(d,b[c].name)}}else e[d].includeIn.push(c)};e.each(function(a,e){for(var c=a.className.split(" "),f=!1,i=0,l=c.length;i<l;i++){var j=d.trim(c[i]);
|
||||
if("all"===j){f=!0;a.includeIn=d.map(b,function(a){return a.name});return}if("none"===j||a.never){f=!0;return}if("control"===j){f=!0;a.control=!0;return}d.each(b,function(a,b){var d=b.name.split("-"),c=j.match(RegExp("(min\\-|max\\-|not\\-)?("+d[0]+")(\\-[_a-zA-Z0-9])?"));c&&(f=!0,c[2]===d[0]&&c[3]==="-"+d[1]?g(e,b.name,c[1],c[2]+c[3]):c[2]===d[0]&&!c[3]&&g(e,b.name,c[1],c[2]))})}f||(a.auto=!0)});this.s.columns=e},_detailsDisplay:function(a,b){var c=this,e=this.s.dt,f=this.c.details;if(f&&!1!==f.type){var g=
|
||||
f.display(a,b,function(){return f.renderer(e,a[0],c._detailsObj(a[0]))});(!0===g||!1===g)&&d(e.table().node()).triggerHandler("responsive-display.dt",[e,a,g,b])}},_detailsInit:function(){var a=this,b=this.s.dt,c=this.c.details;"inline"===c.type&&(c.target="td:first-child, th:first-child");b.on("draw.dtr",function(){a._tabIndexes()});a._tabIndexes();d(b.table().body()).on("keyup.dtr","td, th",function(a){a.keyCode===13&&d(this).data("dtr-keyboard")&&d(this).click()});var e=c.target;d(b.table().body()).on("click.dtr mousedown.dtr mouseup.dtr",
|
||||
"string"===typeof e?e:"td, th",function(c){if(d(b.table().node()).hasClass("collapsed")&&d.inArray(d(this).closest("tr").get(0),b.rows().nodes().toArray())!==-1){if(typeof e==="number"){var g=e<0?b.columns().eq(0).length+e:e;if(b.cell(this).index().column!==g)return}g=b.row(d(this).closest("tr"));c.type==="click"?a._detailsDisplay(g,false):c.type==="mousedown"?d(this).css("outline","none"):c.type==="mouseup"&&d(this).blur().css("outline","")}})},_detailsObj:function(a){var b=this,c=this.s.dt;return d.map(this.s.columns,
|
||||
function(e,d){if(!e.never&&!e.control)return{title:c.settings()[0].aoColumns[d].sTitle,data:c.cell(a,d).render(b.c.orthogonal),hidden:c.column(d).visible()&&!b.s.current[d],columnIndex:d,rowIndex:a}})},_find:function(a){for(var b=this.c.breakpoints,c=0,e=b.length;c<e;c++)if(b[c].name===a)return b[c]},_redrawChildren:function(){var a=this,b=this.s.dt;b.rows({page:"current"}).iterator("row",function(c,e){b.row(e);a._detailsDisplay(b.row(e),!0)})},_resize:function(){var a=this,b=this.s.dt,c=d(l).width(),
|
||||
e=this.c.breakpoints,f=e[0].name,g=this.s.columns,h,m=this.s.current.slice();for(h=e.length-1;0<=h;h--)if(c<=e[h].width){f=e[h].name;break}var i=this._columnsVisiblity(f);this.s.current=i;e=!1;h=0;for(c=g.length;h<c;h++)if(!1===i[h]&&!g[h].never&&!g[h].control&&!1===!b.column(h).visible()){e=!0;break}d(b.table().node()).toggleClass("collapsed",e);var k=!1,j=0;b.columns().eq(0).each(function(b,c){!0===i[c]&&j++;i[c]!==m[c]&&(k=!0,a._setColumnVis(b,i[c]))});k&&(this._redrawChildren(),d(b.table().node()).trigger("responsive-resize.dt",
|
||||
[b,this.s.current]),0===b.page.info().recordsDisplay&&d("td",b.table().body()).eq(0).attr("colspan",j))},_resizeAuto:function(){var a=this.s.dt,b=this.s.columns;if(this.c.auto&&-1!==d.inArray(!0,d.map(b,function(a){return a.auto}))){d.isEmptyObject(n)||d.each(n,function(b){b=b.split("-");r(a,1*b[0],1*b[1])});a.table().node();var c=a.table().node().cloneNode(!1),e=d(a.table().header().cloneNode(!1)).appendTo(c),f=d(a.table().body()).clone(!1,!1).empty().appendTo(c),g=a.columns().header().filter(function(b){return a.column(b).visible()}).to$().clone(!1).css("display",
|
||||
"table-cell").css("min-width",0);d(f).append(d(a.rows({page:"current"}).nodes()).clone(!1)).find("th, td").css("display","");if(f=a.table().footer()){var f=d(f.cloneNode(!1)).appendTo(c),h=a.columns().footer().filter(function(b){return a.column(b).visible()}).to$().clone(!1).css("display","table-cell");d("<tr/>").append(h).appendTo(f)}d("<tr/>").append(g).appendTo(e);"inline"===this.c.details.type&&d(c).addClass("dtr-inline collapsed");d(c).find("[name]").removeAttr("name");d(c).css("position","relative");
|
||||
c=d("<div/>").css({width:1,height:1,overflow:"hidden",clear:"both"}).append(c);c.insertBefore(a.table().node());g.each(function(c){c=a.column.index("fromVisible",c);b[c].minWidth=this.offsetWidth||0});c.remove()}},_setColumnVis:function(a,b){var c=this.s.dt,e=b?"":"none";d(c.column(a).header()).css("display",e);d(c.column(a).footer()).css("display",e);c.column(a).nodes().to$().css("display",e);d.isEmptyObject(n)||c.cells(null,a).indexes().each(function(a){r(c,a.row,a.column)})},_tabIndexes:function(){var a=
|
||||
this.s.dt,b=a.cells({page:"current"}).nodes().to$(),c=a.settings()[0],e=this.c.details.target;b.filter("[data-dtr-keyboard]").removeData("[data-dtr-keyboard]");"number"===typeof e?a.cells(null,e,{page:"current"}).nodes().to$().attr("tabIndex",c.iTabIndex).data("dtr-keyboard",1):("td:first-child, th:first-child"===e&&(e=">td:first-child, >th:first-child"),d(e,a.rows({page:"current"}).nodes()).attr("tabIndex",c.iTabIndex).data("dtr-keyboard",1))}});i.breakpoints=[{name:"desktop",width:Infinity},{name:"tablet-l",
|
||||
width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];i.display={childRow:function(a,b,c){if(b){if(d(a.node()).hasClass("parent"))return a.child(c(),"child").show(),!0}else{if(a.child.isShown())return a.child(!1),d(a.node()).removeClass("parent"),!1;a.child(c(),"child").show();d(a.node()).addClass("parent");return!0}},childRowImmediate:function(a,b,c){if(!b&&a.child.isShown()||!a.responsive.hasHidden())return a.child(!1),d(a.node()).removeClass("parent"),
|
||||
!1;a.child(c(),"child").show();d(a.node()).addClass("parent");return!0},modal:function(a){return function(b,c,e){if(c)d("div.dtr-modal-content").empty().append(e());else{var f=function(){g.remove();d(j).off("keypress.dtr")},g=d('<div class="dtr-modal"/>').append(d('<div class="dtr-modal-display"/>').append(d('<div class="dtr-modal-content"/>').append(e())).append(d('<div class="dtr-modal-close">×</div>').click(function(){f()}))).append(d('<div class="dtr-modal-background"/>').click(function(){f()})).appendTo("body");
|
||||
d(j).on("keyup.dtr",function(a){27===a.keyCode&&(a.stopPropagation(),f())})}a&&a.header&&d("div.dtr-modal-content").prepend("<h2>"+a.header(b)+"</h2>")}}};var n={};i.renderer={listHiddenNodes:function(){return function(a,b,c){var e=d('<ul data-dtr-index="'+b+'" class="dtr-details"/>'),f=!1;d.each(c,function(b,c){c.hidden&&(d('<li data-dtr-index="'+c.columnIndex+'" data-dt-row="'+c.rowIndex+'" data-dt-column="'+c.columnIndex+'"><span class="dtr-title">'+c.title+"</span> </li>").append(d('<span class="dtr-data"/>').append(t(a,
|
||||
c.rowIndex,c.columnIndex))).appendTo(e),f=!0)});return f?e:!1}},listHidden:function(){return function(a,b,c){return(a=d.map(c,function(a){return a.hidden?'<li data-dtr-index="'+a.columnIndex+'" data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><span class="dtr-title">'+a.title+'</span> <span class="dtr-data">'+a.data+"</span></li>":""}).join(""))?d('<ul data-dtr-index="'+b+'" class="dtr-details"/>').append(a):!1}},tableAll:function(a){a=d.extend({tableClass:""},a);return function(b,
|
||||
c,e){b=d.map(e,function(a){return'<tr data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><td>'+a.title+":</td> <td>"+a.data+"</td></tr>"}).join("");return d('<table class="'+a.tableClass+' dtr-details" width="100%"/>').append(b)}}};i.defaults={breakpoints:i.breakpoints,auto:!0,details:{display:i.display.childRow,renderer:i.renderer.listHidden(),target:0,type:"inline"},orthogonal:"display"};var p=d.fn.dataTable.Api;p.register("responsive()",function(){return this});p.register("responsive.index()",
|
||||
function(a){a=d(a);return{column:a.data("dtr-index"),row:a.parent().data("dtr-index")}});p.register("responsive.rebuild()",function(){return this.iterator("table",function(a){a._responsive&&a._responsive._classLogic()})});p.register("responsive.recalc()",function(){return this.iterator("table",function(a){a._responsive&&(a._responsive._resizeAuto(),a._responsive._resize())})});p.register("responsive.hasHidden()",function(){var a=this.context[0];return a._responsive?-1!==d.inArray(!1,a._responsive.s.current):
|
||||
!1});p.registerPlural("columns().responsiveHidden()","column().responsiveHidden()",function(){return this.iterator("column",function(a,b){return a._responsive?a._responsive.s.current[b]:!1},1)});i.version="2.2.2";d.fn.dataTable.Responsive=i;d.fn.DataTable.Responsive=i;d(j).on("preInit.dt.dtr",function(a,b){if("dt"===a.namespace&&(d(b.nTable).hasClass("responsive")||d(b.nTable).hasClass("dt-responsive")||b.oInit.responsive||o.defaults.responsive)){var c=b.oInit.responsive;!1!==c&&new i(b,d.isPlainObject(c)?
|
||||
c:{})}});return i});
|
|
@ -0,0 +1,153 @@
|
|||
/*
|
||||
* File: jquery.dataTables.min.js
|
||||
* Version: 1.9.0
|
||||
* Author: Allan Jardine (www.sprymedia.co.uk)
|
||||
* Info: www.datatables.net
|
||||
*
|
||||
* Copyright 2008-2012 Allan Jardine, all rights reserved.
|
||||
*
|
||||
* This source file is free software, under either the GPL v2 license or a
|
||||
* BSD style license, available at:
|
||||
* http://datatables.net/license_gpl2
|
||||
* http://datatables.net/license_bsd
|
||||
*
|
||||
* This source file is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
|
||||
*/
|
||||
(function(i,aa,k,l){var j=function(e){function o(a,b){var c=j.defaults.columns,d=a.aoColumns.length,c=i.extend({},j.models.oColumn,c,{sSortingClass:a.oClasses.sSortable,sSortingClassJUI:a.oClasses.sSortJUI,nTh:b?b:k.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mDataProp:c.mDataProp?c.oDefaults:d});a.aoColumns.push(c);if(a.aoPreSearchCols[d]===l||null===a.aoPreSearchCols[d])a.aoPreSearchCols[d]=i.extend({},j.models.oSearch);else{c=a.aoPreSearchCols[d];
|
||||
if(c.bRegex===l)c.bRegex=!0;if(c.bSmart===l)c.bSmart=!0;if(c.bCaseInsensitive===l)c.bCaseInsensitive=!0}E(a,d,null)}function E(a,b,c){b=a.aoColumns[b];if(c!==l&&null!==c){if(c.sType!==l)b.sType=c.sType,b._bAutoType=!1;i.extend(b,c);n(b,c,"sWidth","sWidthOrig");if(c.iDataSort!==l)b.aDataSort=[c.iDataSort];n(b,c,"aDataSort")}b.fnGetData=V(b.mDataProp);b.fnSetData=sa(b.mDataProp);if(!a.oFeatures.bSort)b.bSortable=!1;if(!b.bSortable||-1==i.inArray("asc",b.asSorting)&&-1==i.inArray("desc",b.asSorting))b.sSortingClass=
|
||||
a.oClasses.sSortableNone,b.sSortingClassJUI="";else if(b.bSortable||-1==i.inArray("asc",b.asSorting)&&-1==i.inArray("desc",b.asSorting))b.sSortingClass=a.oClasses.sSortable,b.sSortingClassJUI=a.oClasses.sSortJUI;else if(-1!=i.inArray("asc",b.asSorting)&&-1==i.inArray("desc",b.asSorting))b.sSortingClass=a.oClasses.sSortableAsc,b.sSortingClassJUI=a.oClasses.sSortJUIAscAllowed;else if(-1==i.inArray("asc",b.asSorting)&&-1!=i.inArray("desc",b.asSorting))b.sSortingClass=a.oClasses.sSortableDesc,b.sSortingClassJUI=
|
||||
a.oClasses.sSortJUIDescAllowed}function r(a){if(!1===a.oFeatures.bAutoWidth)return!1;ba(a);for(var b=0,c=a.aoColumns.length;b<c;b++)a.aoColumns[b].nTh.style.width=a.aoColumns[b].sWidth}function s(a,b){for(var c=-1,d=0;d<a.aoColumns.length;d++)if(!0===a.aoColumns[d].bVisible&&c++,c==b)return d;return null}function t(a,b){for(var c=-1,d=0;d<a.aoColumns.length;d++)if(!0===a.aoColumns[d].bVisible&&c++,d==b)return!0===a.aoColumns[d].bVisible?c:null;return null}function v(a){for(var b=0,c=0;c<a.aoColumns.length;c++)!0===
|
||||
a.aoColumns[c].bVisible&&b++;return b}function B(a){for(var b=j.ext.aTypes,c=b.length,d=0;d<c;d++){var f=b[d](a);if(null!==f)return f}return"string"}function D(a,b){for(var c=b.split(","),d=[],f=0,h=a.aoColumns.length;f<h;f++)for(var g=0;g<h;g++)if(a.aoColumns[f].sName==c[g]){d.push(g);break}return d}function x(a){for(var b="",c=0,d=a.aoColumns.length;c<d;c++)b+=a.aoColumns[c].sName+",";return b.length==d?"":b.slice(0,-1)}function I(a,b,c,d){var f,h,g,e,q;if(b)for(f=b.length-1;0<=f;f--){var m=b[f].aTargets;
|
||||
i.isArray(m)||F(a,1,"aTargets must be an array of targets, not a "+typeof m);for(h=0,g=m.length;h<g;h++)if("number"===typeof m[h]&&0<=m[h]){for(;a.aoColumns.length<=m[h];)o(a);d(m[h],b[f])}else if("number"===typeof m[h]&&0>m[h])d(a.aoColumns.length+m[h],b[f]);else if("string"===typeof m[h])for(e=0,q=a.aoColumns.length;e<q;e++)("_all"==m[h]||i(a.aoColumns[e].nTh).hasClass(m[h]))&&d(e,b[f])}if(c)for(f=0,a=c.length;f<a;f++)d(f,c[f])}function G(a,b){var c;c=i.isArray(b)?b.slice():i.extend(!0,{},b);var d=
|
||||
a.aoData.length;c=i.extend(!0,{},j.models.oRow,{_aData:c});a.aoData.push(c);for(var f,h=0,g=a.aoColumns.length;h<g;h++)if(c=a.aoColumns[h],"function"===typeof c.fnRender&&c.bUseRendered&&null!==c.mDataProp&&J(a,d,h,R(a,d,h)),c._bAutoType&&"string"!=c.sType&&(f=w(a,d,h,"type"),null!==f&&""!==f))if(f=B(f),null===c.sType)c.sType=f;else if(c.sType!=f&&"html"!=c.sType)c.sType="string";a.aiDisplayMaster.push(d);a.oFeatures.bDeferRender||ca(a,d);return d}function ta(a){var b,c,d,f,h,g,e,q,m;if(a.bDeferLoading||
|
||||
null===a.sAjaxSource){e=a.nTBody.childNodes;for(b=0,c=e.length;b<c;b++)if("TR"==e[b].nodeName.toUpperCase()){q=a.aoData.length;e[b]._DT_RowIndex=q;a.aoData.push(i.extend(!0,{},j.models.oRow,{nTr:e[b]}));a.aiDisplayMaster.push(q);g=e[b].childNodes;h=0;for(d=0,f=g.length;d<f;d++)if(m=g[d].nodeName.toUpperCase(),"TD"==m||"TH"==m)J(a,q,h,i.trim(g[d].innerHTML)),h++}}e=S(a);g=[];for(b=0,c=e.length;b<c;b++)for(d=0,f=e[b].childNodes.length;d<f;d++)h=e[b].childNodes[d],m=h.nodeName.toUpperCase(),("TD"==m||
|
||||
"TH"==m)&&g.push(h);for(f=0,e=a.aoColumns.length;f<e;f++){m=a.aoColumns[f];if(null===m.sTitle)m.sTitle=m.nTh.innerHTML;h=m._bAutoType;q="function"===typeof m.fnRender;var o=null!==m.sClass,r=m.bVisible,l,n;if(h||q||o||!r)for(b=0,c=a.aoData.length;b<c;b++){d=a.aoData[b];l=g[b*e+f];if(h&&"string"!=m.sType&&(n=w(a,b,f,"type"),""!==n))if(n=B(n),null===m.sType)m.sType=n;else if(m.sType!=n&&"html"!=m.sType)m.sType="string";if("function"===typeof m.mDataProp)l.innerHTML=w(a,b,f,"display");if(q)n=R(a,b,f),
|
||||
l.innerHTML=n,m.bUseRendered&&J(a,b,f,n);o&&(l.className+=" "+m.sClass);r?d._anHidden[f]=null:(d._anHidden[f]=l,l.parentNode.removeChild(l));m.fnCreatedCell&&m.fnCreatedCell.call(a.oInstance,l,w(a,b,f,"display"),d._aData,b,f)}}if(0!==a.aoRowCreatedCallback.length)for(b=0,c=a.aoData.length;b<c;b++)d=a.aoData[b],C(a,"aoRowCreatedCallback",null,[d.nTr,d._aData,b])}function K(a,b){return b._DT_RowIndex!==l?b._DT_RowIndex:null}function da(a,b,c){for(var b=L(a,b),d=0,a=a.aoColumns.length;d<a;d++)if(b[d]===
|
||||
c)return d;return-1}function W(a,b,c){for(var d=[],f=0,h=a.aoColumns.length;f<h;f++)d.push(w(a,b,f,c));return d}function w(a,b,c,d){var f=a.aoColumns[c];if((c=f.fnGetData(a.aoData[b]._aData,d))===l){if(a.iDrawError!=a.iDraw&&null===f.sDefaultContent)F(a,0,"Requested unknown parameter '"+f.mDataProp+"' from the data source for row "+b),a.iDrawError=a.iDraw;return f.sDefaultContent}if(null===c&&null!==f.sDefaultContent)c=f.sDefaultContent;else if("function"===typeof c)return c();return"display"==d&&
|
||||
null===c?"":c}function J(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d)}function V(a){if(null===a)return function(){return null};if("function"===typeof a)return function(b,d){return a(b,d)};if("string"===typeof a&&-1!=a.indexOf(".")){var b=a.split(".");return function(a){for(var d=0,f=b.length;d<f;d++)if(a=a[b[d]],a===l)return l;return a}}return function(b){return b[a]}}function sa(a){if(null===a)return function(){};if("function"===typeof a)return function(b,d){a(b,"set",d)};if("string"===
|
||||
typeof a&&-1!=a.indexOf(".")){var b=a.split(".");return function(a,d){for(var f=0,h=b.length-1;f<h;f++)a=a[b[f]];a[b[b.length-1]]=d}}return function(b,d){b[a]=d}}function X(a){for(var b=[],c=a.aoData.length,d=0;d<c;d++)b.push(a.aoData[d]._aData);return b}function ea(a){a.aoData.splice(0,a.aoData.length);a.aiDisplayMaster.splice(0,a.aiDisplayMaster.length);a.aiDisplay.splice(0,a.aiDisplay.length);z(a)}function fa(a,b){for(var c=-1,d=0,f=a.length;d<f;d++)a[d]==b?c=d:a[d]>b&&a[d]--; -1!=c&&a.splice(c,
|
||||
1)}function R(a,b,c){var d=a.aoColumns[c];return d.fnRender({iDataRow:b,iDataColumn:c,oSettings:a,aData:a.aoData[b]._aData,mDataProp:d.mDataProp},w(a,b,c,"display"))}function ca(a,b){var c=a.aoData[b],d;if(null===c.nTr){c.nTr=k.createElement("tr");c.nTr._DT_RowIndex=b;if(c._aData.DT_RowId)c.nTr.id=c._aData.DT_RowId;c._aData.DT_RowClass&&i(c.nTr).addClass(c._aData.DT_RowClass);for(var f=0,h=a.aoColumns.length;f<h;f++){var g=a.aoColumns[f];d=k.createElement("td");d.innerHTML="function"===typeof g.fnRender&&
|
||||
(!g.bUseRendered||null===g.mDataProp)?R(a,b,f):w(a,b,f,"display");if(null!==g.sClass)d.className=g.sClass;g.bVisible?(c.nTr.appendChild(d),c._anHidden[f]=null):c._anHidden[f]=d;g.fnCreatedCell&&g.fnCreatedCell.call(a.oInstance,d,w(a,b,f,"display"),c._aData,b,f)}C(a,"aoRowCreatedCallback",null,[c.nTr,c._aData,b])}}function ua(a){var b,c,d;if(0!==a.nTHead.getElementsByTagName("th").length)for(b=0,d=a.aoColumns.length;b<d;b++){if(c=a.aoColumns[b].nTh,c.setAttribute("role","columnheader"),a.aoColumns[b].bSortable&&
|
||||
(c.setAttribute("tabindex",a.iTabIndex),c.setAttribute("aria-controls",a.sTableId)),null!==a.aoColumns[b].sClass&&i(c).addClass(a.aoColumns[b].sClass),a.aoColumns[b].sTitle!=c.innerHTML)c.innerHTML=a.aoColumns[b].sTitle}else{var f=k.createElement("tr");for(b=0,d=a.aoColumns.length;b<d;b++)c=a.aoColumns[b].nTh,c.innerHTML=a.aoColumns[b].sTitle,c.setAttribute("tabindex","0"),null!==a.aoColumns[b].sClass&&i(c).addClass(a.aoColumns[b].sClass),f.appendChild(c);i(a.nTHead).html("")[0].appendChild(f);T(a.aoHeader,
|
||||
a.nTHead)}i(a.nTHead).children("tr").attr("role","row");if(a.bJUI)for(b=0,d=a.aoColumns.length;b<d;b++){c=a.aoColumns[b].nTh;f=k.createElement("div");f.className=a.oClasses.sSortJUIWrapper;i(c).contents().appendTo(f);var h=k.createElement("span");h.className=a.oClasses.sSortIcon;f.appendChild(h);c.appendChild(f)}if(a.oFeatures.bSort)for(b=0;b<a.aoColumns.length;b++)!1!==a.aoColumns[b].bSortable?ga(a,a.aoColumns[b].nTh,b):i(a.aoColumns[b].nTh).addClass(a.oClasses.sSortableNone);""!==a.oClasses.sFooterTH&&
|
||||
i(a.nTFoot).children("tr").children("th").addClass(a.oClasses.sFooterTH);if(null!==a.nTFoot){c=O(a,null,a.aoFooter);for(b=0,d=a.aoColumns.length;b<d;b++)if(c[b])a.aoColumns[b].nTf=c[b],a.aoColumns[b].sClass&&i(c[b]).addClass(a.aoColumns[b].sClass)}}function U(a,b,c){var d,f,h,g=[],e=[],i=a.aoColumns.length,m;c===l&&(c=!1);for(d=0,f=b.length;d<f;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(h=i-1;0<=h;h--)!a.aoColumns[h].bVisible&&!c&&g[d].splice(h,1);e.push([])}for(d=0,f=g.length;d<f;d++){if(a=g[d].nTr)for(;h=
|
||||
a.firstChild;)a.removeChild(h);for(h=0,b=g[d].length;h<b;h++)if(m=i=1,e[d][h]===l){a.appendChild(g[d][h].cell);for(e[d][h]=1;g[d+i]!==l&&g[d][h].cell==g[d+i][h].cell;)e[d+i][h]=1,i++;for(;g[d][h+m]!==l&&g[d][h].cell==g[d][h+m].cell;){for(c=0;c<i;c++)e[d+c][h+m]=1;m++}g[d][h].cell.rowSpan=i;g[d][h].cell.colSpan=m}}}function y(a){var b,c,d=[],f=0,h=a.asStripeClasses.length;b=a.aoOpenRows.length;c=C(a,"aoPreDrawCallback","preDraw",[a]);if(-1===i.inArray(!1,c)){a.bDrawing=!0;if(a.iInitDisplayStart!==
|
||||
l&&-1!=a.iInitDisplayStart)a._iDisplayStart=a.oFeatures.bServerSide?a.iInitDisplayStart:a.iInitDisplayStart>=a.fnRecordsDisplay()?0:a.iInitDisplayStart,a.iInitDisplayStart=-1,z(a);if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++;else if(a.oFeatures.bServerSide){if(!a.bDestroying&&!va(a))return}else a.iDraw++;if(0!==a.aiDisplay.length){var g=a._iDisplayStart;c=a._iDisplayEnd;if(a.oFeatures.bServerSide)g=0,c=a.aoData.length;for(;g<c;g++){var e=a.aoData[a.aiDisplay[g]];null===e.nTr&&ca(a,a.aiDisplay[g]);
|
||||
var q=e.nTr;if(0!==h){var m=a.asStripeClasses[f%h];if(e._sRowStripe!=m)i(q).removeClass(e._sRowStripe).addClass(m),e._sRowStripe=m}C(a,"aoRowCallback",null,[q,a.aoData[a.aiDisplay[g]]._aData,f,g]);d.push(q);f++;if(0!==b)for(e=0;e<b;e++)if(q==a.aoOpenRows[e].nParent){d.push(a.aoOpenRows[e].nTr);break}}}else{d[0]=k.createElement("tr");if(a.asStripeClasses[0])d[0].className=a.asStripeClasses[0];h=a.oLanguage.sZeroRecords.replace("_MAX_",a.fnFormatNumber(a.fnRecordsTotal()));if(1==a.iDraw&&null!==a.sAjaxSource&&
|
||||
!a.oFeatures.bServerSide)h=a.oLanguage.sLoadingRecords;else if(a.oLanguage.sEmptyTable&&0===a.fnRecordsTotal())h=a.oLanguage.sEmptyTable;b=k.createElement("td");b.setAttribute("valign","top");b.colSpan=v(a);b.className=a.oClasses.sRowEmpty;b.innerHTML=h;d[f].appendChild(b)}C(a,"aoHeaderCallback","header",[i(a.nTHead).children("tr")[0],X(a),a._iDisplayStart,a.fnDisplayEnd(),a.aiDisplay]);C(a,"aoFooterCallback","footer",[i(a.nTFoot).children("tr")[0],X(a),a._iDisplayStart,a.fnDisplayEnd(),a.aiDisplay]);
|
||||
f=k.createDocumentFragment();b=k.createDocumentFragment();if(a.nTBody){h=a.nTBody.parentNode;b.appendChild(a.nTBody);if(!a.oScroll.bInfinite||!a._bInitComplete||a.bSorted||a.bFiltered)for(;b=a.nTBody.firstChild;)a.nTBody.removeChild(b);for(b=0,c=d.length;b<c;b++)f.appendChild(d[b]);a.nTBody.appendChild(f);null!==h&&h.appendChild(a.nTBody)}C(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1;a.oFeatures.bServerSide&&(H(a,!1),a._bInitComplete||Y(a))}}function Z(a){a.oFeatures.bSort?
|
||||
P(a,a.oPreviousSearch):a.oFeatures.bFilter?M(a,a.oPreviousSearch):(z(a),y(a))}function wa(a){var b=i("<div></div>")[0];a.nTable.parentNode.insertBefore(b,a.nTable);a.nTableWrapper=i('<div id="'+a.sTableId+'_wrapper" class="'+a.oClasses.sWrapper+'" role="grid"></div>')[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var c=a.nTableWrapper,d=a.sDom.split(""),f,h,g,e,q,m,o,l=0;l<d.length;l++){h=0;g=d[l];if("<"==g){e=i("<div></div>")[0];q=d[l+1];if("'"==q||'"'==q){m="";for(o=2;d[l+o]!=q;)m+=d[l+o],
|
||||
o++;"H"==m?m="fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix":"F"==m&&(m="fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix");-1!=m.indexOf(".")?(q=m.split("."),e.id=q[0].substr(1,q[0].length-1),e.className=q[1]):"#"==m.charAt(0)?e.id=m.substr(1,m.length-1):e.className=m;l+=o}c.appendChild(e);c=e}else if(">"==g)c=c.parentNode;else if("l"==g&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange)f=xa(a),h=1;else if("f"==g&&a.oFeatures.bFilter)f=
|
||||
ya(a),h=1;else if("r"==g&&a.oFeatures.bProcessing)f=za(a),h=1;else if("t"==g)f=Aa(a),h=1;else if("i"==g&&a.oFeatures.bInfo)f=Ba(a),h=1;else if("p"==g&&a.oFeatures.bPaginate)f=Ca(a),h=1;else if(0!==j.ext.aoFeatures.length){e=j.ext.aoFeatures;o=0;for(q=e.length;o<q;o++)if(g==e[o].cFeature){(f=e[o].fnInit(a))&&(h=1);break}}1==h&&null!==f&&("object"!==typeof a.aanFeatures[g]&&(a.aanFeatures[g]=[]),a.aanFeatures[g].push(f),c.appendChild(f))}b.parentNode.replaceChild(a.nTableWrapper,b)}function T(a,b){var c=
|
||||
i(b).children("tr"),d,f,h,g,e,q,m,j;a.splice(0,a.length);for(f=0,q=c.length;f<q;f++)a.push([]);for(f=0,q=c.length;f<q;f++)for(h=0,m=c[f].childNodes.length;h<m;h++)if(d=c[f].childNodes[h],"TD"==d.nodeName.toUpperCase()||"TH"==d.nodeName.toUpperCase()){var o=1*d.getAttribute("colspan"),l=1*d.getAttribute("rowspan"),o=!o||0===o||1===o?1:o,l=!l||0===l||1===l?1:l;for(g=0;a[f][g];)g++;j=g;for(e=0;e<o;e++)for(g=0;g<l;g++)a[f+g][j+e]={cell:d,unique:1==o?!0:!1},a[f+g].nTr=c[f]}}function O(a,b,c){var d=[];
|
||||
if(!c)c=a.aoHeader,b&&(c=[],T(c,b));for(var b=0,f=c.length;b<f;b++)for(var h=0,g=c[b].length;h<g;h++)if(c[b][h].unique&&(!d[h]||!a.bSortCellsTop))d[h]=c[b][h].cell;return d}function va(a){if(a.bAjaxDataGet){a.iDraw++;H(a,!0);var b=Da(a);ha(a,b);a.fnServerData.call(a.oInstance,a.sAjaxSource,b,function(b){Ea(a,b)},a);return!1}return!0}function Da(a){var b=a.aoColumns.length,c=[],d,f;c.push({name:"sEcho",value:a.iDraw});c.push({name:"iColumns",value:b});c.push({name:"sColumns",value:x(a)});c.push({name:"iDisplayStart",
|
||||
value:a._iDisplayStart});c.push({name:"iDisplayLength",value:!1!==a.oFeatures.bPaginate?a._iDisplayLength:-1});for(f=0;f<b;f++)d=a.aoColumns[f].mDataProp,c.push({name:"mDataProp_"+f,value:"function"===typeof d?"function":d});if(!1!==a.oFeatures.bFilter){c.push({name:"sSearch",value:a.oPreviousSearch.sSearch});c.push({name:"bRegex",value:a.oPreviousSearch.bRegex});for(f=0;f<b;f++)c.push({name:"sSearch_"+f,value:a.aoPreSearchCols[f].sSearch}),c.push({name:"bRegex_"+f,value:a.aoPreSearchCols[f].bRegex}),
|
||||
c.push({name:"bSearchable_"+f,value:a.aoColumns[f].bSearchable})}if(!1!==a.oFeatures.bSort){d=null!==a.aaSortingFixed?a.aaSortingFixed.length:0;var h=a.aaSorting.length;c.push({name:"iSortingCols",value:d+h});for(f=0;f<d;f++)c.push({name:"iSortCol_"+f,value:a.aaSortingFixed[f][0]}),c.push({name:"sSortDir_"+f,value:a.aaSortingFixed[f][1]});for(f=0;f<h;f++)c.push({name:"iSortCol_"+(f+d),value:a.aaSorting[f][0]}),c.push({name:"sSortDir_"+(f+d),value:a.aaSorting[f][1]});for(f=0;f<b;f++)c.push({name:"bSortable_"+
|
||||
f,value:a.aoColumns[f].bSortable})}return c}function ha(a,b){C(a,"aoServerParams","serverParams",[b])}function Ea(a,b){if(b.sEcho!==l){if(1*b.sEcho<a.iDraw)return;a.iDraw=1*b.sEcho}(!a.oScroll.bInfinite||a.oScroll.bInfinite&&(a.bSorted||a.bFiltered))&&ea(a);a._iRecordsTotal=parseInt(b.iTotalRecords,10);a._iRecordsDisplay=parseInt(b.iTotalDisplayRecords,10);var c=x(a),c=b.sColumns!==l&&""!==c&&b.sColumns!=c,d;c&&(d=D(a,b.sColumns));for(var f=V(a.sAjaxDataProp)(b),h=0,g=f.length;h<g;h++)if(c){for(var e=
|
||||
[],i=0,m=a.aoColumns.length;i<m;i++)e.push(f[h][d[i]]);G(a,e)}else G(a,f[h]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;y(a);a.bAjaxDataGet=!0;H(a,!1)}function ya(a){var b=a.oPreviousSearch,c=a.oLanguage.sSearch,c=-1!==c.indexOf("_INPUT_")?c.replace("_INPUT_",'<input type="text" />'):""===c?'<input type="text" />':c+' <input type="text" />',d=k.createElement("div");d.className=a.oClasses.sFilter;d.innerHTML="<label>"+c+"</label>";if(!a.aanFeatures.f)d.id=a.sTableId+"_filter";c=i("input",
|
||||
d);c.val(b.sSearch.replace('"',"""));c.bind("keyup.DT",function(){for(var c=a.aanFeatures.f,d=0,g=c.length;d<g;d++)c[d]!=i(this).parents("div.dataTables_filter")[0]&&i("input",c[d]).val(this.value);this.value!=b.sSearch&&M(a,{sSearch:this.value,bRegex:b.bRegex,bSmart:b.bSmart,bCaseInsensitive:b.bCaseInsensitive})});c.attr("aria-controls",a.sTableId).bind("keypress.DT",function(a){if(13==a.keyCode)return!1});return d}function M(a,b,c){var d=a.oPreviousSearch,f=a.aoPreSearchCols,h=function(a){d.sSearch=
|
||||
a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};if(a.oFeatures.bServerSide)h(b);else{Fa(a,b.sSearch,c,b.bRegex,b.bSmart,b.bCaseInsensitive);h(b);for(b=0;b<a.aoPreSearchCols.length;b++)Ga(a,f[b].sSearch,b,f[b].bRegex,f[b].bSmart,f[b].bCaseInsensitive);Ha(a)}a.bFiltered=!0;i(a.oInstance).trigger("filter",a);a._iDisplayStart=0;z(a);y(a);ia(a,0)}function Ha(a){for(var b=j.ext.afnFiltering,c=0,d=b.length;c<d;c++)for(var f=0,h=0,g=a.aiDisplay.length;h<g;h++){var e=a.aiDisplay[h-
|
||||
f];b[c](a,W(a,e,"filter"),e)||(a.aiDisplay.splice(h-f,1),f++)}}function Ga(a,b,c,d,f,h){if(""!==b)for(var g=0,b=ja(b,d,f,h),d=a.aiDisplay.length-1;0<=d;d--)f=ka(w(a,a.aiDisplay[d],c,"filter"),a.aoColumns[c].sType),b.test(f)||(a.aiDisplay.splice(d,1),g++)}function Fa(a,b,c,d,f,h){d=ja(b,d,f,h);f=a.oPreviousSearch;c||(c=0);0!==j.ext.afnFiltering.length&&(c=1);if(0>=b.length)a.aiDisplay.splice(0,a.aiDisplay.length),a.aiDisplay=a.aiDisplayMaster.slice();else if(a.aiDisplay.length==a.aiDisplayMaster.length||
|
||||
f.sSearch.length>b.length||1==c||0!==b.indexOf(f.sSearch)){a.aiDisplay.splice(0,a.aiDisplay.length);ia(a,1);for(b=0;b<a.aiDisplayMaster.length;b++)d.test(a.asDataSearch[b])&&a.aiDisplay.push(a.aiDisplayMaster[b])}else for(b=c=0;b<a.asDataSearch.length;b++)d.test(a.asDataSearch[b])||(a.aiDisplay.splice(b-c,1),c++)}function ia(a,b){if(!a.oFeatures.bServerSide){a.asDataSearch.splice(0,a.asDataSearch.length);for(var c=b&&1===b?a.aiDisplayMaster:a.aiDisplay,d=0,f=c.length;d<f;d++)a.asDataSearch[d]=la(a,
|
||||
W(a,c[d],"filter"))}}function la(a,b){var c="";if(a.__nTmpFilter===l)a.__nTmpFilter=k.createElement("div");for(var d=a.__nTmpFilter,f=0,h=a.aoColumns.length;f<h;f++)a.aoColumns[f].bSearchable&&(c+=ka(b[f],a.aoColumns[f].sType)+" ");if(-1!==c.indexOf("&"))d.innerHTML=c,c=d.textContent?d.textContent:d.innerText,c=c.replace(/\n/g," ").replace(/\r/g,"");return c}function ja(a,b,c,d){if(c)return a=b?a.split(" "):ma(a).split(" "),a="^(?=.*?"+a.join(")(?=.*?")+").*$",RegExp(a,d?"i":"");a=b?a:ma(a);return RegExp(a,
|
||||
d?"i":"")}function ka(a,b){return"function"===typeof j.ext.ofnSearch[b]?j.ext.ofnSearch[b](a):"html"==b?a.replace(/[\r\n]/g," ").replace(/<.*?>/g,""):"string"===typeof a?a.replace(/[\r\n]/g," "):null===a?"":a}function ma(a){return a.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^)","g"),"\\$1")}function Ba(a){var b=k.createElement("div");b.className=a.oClasses.sInfo;if(!a.aanFeatures.i)a.aoDrawCallback.push({fn:Ia,sName:"information"}),b.id=a.sTableId+"_info";a.nTable.setAttribute("aria-describedby",
|
||||
a.sTableId+"_info");return b}function Ia(a){if(a.oFeatures.bInfo&&0!==a.aanFeatures.i.length){var b=a._iDisplayStart+1,c=a.fnDisplayEnd(),d=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),h=a.fnFormatNumber(b),g=a.fnFormatNumber(c),e=a.fnFormatNumber(d),q=a.fnFormatNumber(f);a.oScroll.bInfinite&&(h=a.fnFormatNumber(1));h=0===a.fnRecordsDisplay()&&a.fnRecordsDisplay()==a.fnRecordsTotal()?a.oLanguage.sInfoEmpty+a.oLanguage.sInfoPostFix:0===a.fnRecordsDisplay()?a.oLanguage.sInfoEmpty+" "+a.oLanguage.sInfoFiltered.replace("_MAX_",
|
||||
e)+a.oLanguage.sInfoPostFix:a.fnRecordsDisplay()==a.fnRecordsTotal()?a.oLanguage.sInfo.replace("_START_",h).replace("_END_",g).replace("_TOTAL_",q)+a.oLanguage.sInfoPostFix:a.oLanguage.sInfo.replace("_START_",h).replace("_END_",g).replace("_TOTAL_",q)+" "+a.oLanguage.sInfoFiltered.replace("_MAX_",a.fnFormatNumber(a.fnRecordsTotal()))+a.oLanguage.sInfoPostFix;null!==a.oLanguage.fnInfoCallback&&(h=a.oLanguage.fnInfoCallback.call(a.oInstance,a,b,c,d,f,h));a=a.aanFeatures.i;b=0;for(c=a.length;b<c;b++)i(a[b]).html(h)}}
|
||||
function $(a){var b,c,d=a.iInitDisplayStart;if(!1===a.bInitialised)setTimeout(function(){$(a)},200);else{wa(a);ua(a);U(a,a.aoHeader);a.nTFoot&&U(a,a.aoFooter);H(a,!0);a.oFeatures.bAutoWidth&&ba(a);for(b=0,c=a.aoColumns.length;b<c;b++)if(null!==a.aoColumns[b].sWidth)a.aoColumns[b].nTh.style.width=p(a.aoColumns[b].sWidth);a.oFeatures.bSort?P(a):a.oFeatures.bFilter?M(a,a.oPreviousSearch):(a.aiDisplay=a.aiDisplayMaster.slice(),z(a),y(a));null!==a.sAjaxSource&&!a.oFeatures.bServerSide?(c=[],ha(a,c),a.fnServerData.call(a.oInstance,
|
||||
a.sAjaxSource,c,function(c){var h=""!==a.sAjaxDataProp?V(a.sAjaxDataProp)(c):c;for(b=0;b<h.length;b++)G(a,h[b]);a.iInitDisplayStart=d;a.oFeatures.bSort?P(a):(a.aiDisplay=a.aiDisplayMaster.slice(),z(a),y(a));H(a,!1);Y(a,c)},a)):a.oFeatures.bServerSide||(H(a,!1),Y(a))}}function Y(a,b){a._bInitComplete=!0;C(a,"aoInitComplete","init",[a,b])}function na(a){!a.sEmptyTable&&a.sZeroRecords&&n(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&a.sZeroRecords&&n(a,a,"sZeroRecords","sLoadingRecords")}function xa(a){if(a.oScroll.bInfinite)return null;
|
||||
var b='<select size="1" '+('name="'+a.sTableId+'_length"')+">",c,d,f=a.aLengthMenu;if(2==f.length&&"object"===typeof f[0]&&"object"===typeof f[1])for(c=0,d=f[0].length;c<d;c++)b+='<option value="'+f[0][c]+'">'+f[1][c]+"</option>";else for(c=0,d=f.length;c<d;c++)b+='<option value="'+f[c]+'">'+f[c]+"</option>";b+="</select>";f=k.createElement("div");if(!a.aanFeatures.l)f.id=a.sTableId+"_length";f.className=a.oClasses.sLength;f.innerHTML="<label>"+a.oLanguage.sLengthMenu.replace("_MENU_",b)+"</label>";
|
||||
i('select option[value="'+a._iDisplayLength+'"]',f).attr("selected",!0);i("select",f).bind("change.DT",function(){var b=i(this).val(),f=a.aanFeatures.l;for(c=0,d=f.length;c<d;c++)f[c]!=this.parentNode&&i("select",f[c]).val(b);a._iDisplayLength=parseInt(b,10);z(a);if(a.fnDisplayEnd()==a.fnRecordsDisplay()&&(a._iDisplayStart=a.fnDisplayEnd()-a._iDisplayLength,0>a._iDisplayStart))a._iDisplayStart=0;if(-1==a._iDisplayLength)a._iDisplayStart=0;y(a)});i("select",f).attr("aria-controls",a.sTableId);return f}
|
||||
function z(a){a._iDisplayEnd=!1===a.oFeatures.bPaginate?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength>a.aiDisplay.length||-1==a._iDisplayLength?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Ca(a){if(a.oScroll.bInfinite)return null;var b=k.createElement("div");b.className=a.oClasses.sPaging+a.sPaginationType;j.ext.oPagination[a.sPaginationType].fnInit(a,b,function(a){z(a);y(a)});a.aanFeatures.p||a.aoDrawCallback.push({fn:function(a){j.ext.oPagination[a.sPaginationType].fnUpdate(a,
|
||||
function(a){z(a);y(a)})},sName:"pagination"});return b}function oa(a,b){var c=a._iDisplayStart;if("number"===typeof b){if(a._iDisplayStart=b*a._iDisplayLength,a._iDisplayStart>a.fnRecordsDisplay())a._iDisplayStart=0}else if("first"==b)a._iDisplayStart=0;else if("previous"==b){if(a._iDisplayStart=0<=a._iDisplayLength?a._iDisplayStart-a._iDisplayLength:0,0>a._iDisplayStart)a._iDisplayStart=0}else if("next"==b)0<=a._iDisplayLength?a._iDisplayStart+a._iDisplayLength<a.fnRecordsDisplay()&&(a._iDisplayStart+=
|
||||
a._iDisplayLength):a._iDisplayStart=0;else if("last"==b)if(0<=a._iDisplayLength){var d=parseInt((a.fnRecordsDisplay()-1)/a._iDisplayLength,10)+1;a._iDisplayStart=(d-1)*a._iDisplayLength}else a._iDisplayStart=0;else F(a,0,"Unknown paging action: "+b);i(a.oInstance).trigger("page",a);return c!=a._iDisplayStart}function za(a){var b=k.createElement("div");if(!a.aanFeatures.r)b.id=a.sTableId+"_processing";b.innerHTML=a.oLanguage.sProcessing;b.className=a.oClasses.sProcessing;a.nTable.parentNode.insertBefore(b,
|
||||
a.nTable);return b}function H(a,b){if(a.oFeatures.bProcessing)for(var c=a.aanFeatures.r,d=0,f=c.length;d<f;d++)c[d].style.visibility=b?"visible":"hidden";i(a.oInstance).trigger("processing",[a,b])}function Aa(a){if(""===a.oScroll.sX&&""===a.oScroll.sY)return a.nTable;var b=k.createElement("div"),c=k.createElement("div"),d=k.createElement("div"),f=k.createElement("div"),h=k.createElement("div"),g=k.createElement("div"),e=a.nTable.cloneNode(!1),q=a.nTable.cloneNode(!1),m=a.nTable.getElementsByTagName("thead")[0],
|
||||
j=0===a.nTable.getElementsByTagName("tfoot").length?null:a.nTable.getElementsByTagName("tfoot")[0],o=a.oClasses;c.appendChild(d);h.appendChild(g);f.appendChild(a.nTable);b.appendChild(c);b.appendChild(f);d.appendChild(e);e.appendChild(m);null!==j&&(b.appendChild(h),g.appendChild(q),q.appendChild(j));b.className=o.sScrollWrapper;c.className=o.sScrollHead;d.className=o.sScrollHeadInner;f.className=o.sScrollBody;h.className=o.sScrollFoot;g.className=o.sScrollFootInner;if(a.oScroll.bAutoCss)c.style.overflow=
|
||||
"hidden",c.style.position="relative",h.style.overflow="hidden",f.style.overflow="auto";c.style.border="0";c.style.width="100%";h.style.border="0";d.style.width="150%";e.removeAttribute("id");e.style.marginLeft="0";a.nTable.style.marginLeft="0";if(null!==j)q.removeAttribute("id"),q.style.marginLeft="0";d=i(a.nTable).children("caption");g=0;for(q=d.length;g<q;g++)e.appendChild(d[g]);if(""!==a.oScroll.sX){c.style.width=p(a.oScroll.sX);f.style.width=p(a.oScroll.sX);if(null!==j)h.style.width=p(a.oScroll.sX);
|
||||
i(f).scroll(function(){c.scrollLeft=this.scrollLeft;if(null!==j)h.scrollLeft=this.scrollLeft})}if(""!==a.oScroll.sY)f.style.height=p(a.oScroll.sY);a.aoDrawCallback.push({fn:Ja,sName:"scrolling"});a.oScroll.bInfinite&&i(f).scroll(function(){!a.bDrawing&&0!==i(this).scrollTop()&&i(this).scrollTop()+i(this).height()>i(a.nTable).height()-a.oScroll.iLoadGap&&a.fnDisplayEnd()<a.fnRecordsDisplay()&&(oa(a,"next"),z(a),y(a))});a.nScrollHead=c;a.nScrollFoot=h;return b}function Ja(a){var b=a.nScrollHead.getElementsByTagName("div")[0],
|
||||
c=b.getElementsByTagName("table")[0],d=a.nTable.parentNode,f,h,g,e,j,m,o,l,r=[],n=null!==a.nTFoot?a.nScrollFoot.getElementsByTagName("div")[0]:null,E=null!==a.nTFoot?n.getElementsByTagName("table")[0]:null,k=i.browser.msie&&7>=i.browser.version;g=a.nTable.getElementsByTagName("thead");0<g.length&&a.nTable.removeChild(g[0]);null!==a.nTFoot&&(j=a.nTable.getElementsByTagName("tfoot"),0<j.length&&a.nTable.removeChild(j[0]));g=a.nTHead.cloneNode(!0);a.nTable.insertBefore(g,a.nTable.childNodes[0]);null!==
|
||||
a.nTFoot&&(j=a.nTFoot.cloneNode(!0),a.nTable.insertBefore(j,a.nTable.childNodes[1]));if(""===a.oScroll.sX)d.style.width="100%",b.parentNode.style.width="100%";var t=O(a,g);for(f=0,h=t.length;f<h;f++)o=s(a,f),t[f].style.width=a.aoColumns[o].sWidth;null!==a.nTFoot&&N(function(a){a.style.width=""},j.getElementsByTagName("tr"));f=i(a.nTable).outerWidth();if(""===a.oScroll.sX){if(a.nTable.style.width="100%",k&&(i("tbody",d).height()>d.offsetHeight||"scroll"==i(d).css("overflow-y")))a.nTable.style.width=
|
||||
p(i(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else if(""!==a.oScroll.sXInner)a.nTable.style.width=p(a.oScroll.sXInner);else if(f==i(d).width()&&i(d).height()<i(a.nTable).height()){if(a.nTable.style.width=p(f-a.oScroll.iBarWidth),i(a.nTable).outerWidth()>f-a.oScroll.iBarWidth)a.nTable.style.width=p(f)}else a.nTable.style.width=p(f);f=i(a.nTable).outerWidth();h=a.nTHead.getElementsByTagName("tr");g=g.getElementsByTagName("tr");N(function(a,b){m=a.style;m.paddingTop="0";m.paddingBottom="0";m.borderTopWidth=
|
||||
"0";m.borderBottomWidth="0";m.height=0;l=i(a).width();b.style.width=p(l);r.push(l)},g,h);i(g).height(0);null!==a.nTFoot&&(e=j.getElementsByTagName("tr"),j=a.nTFoot.getElementsByTagName("tr"),N(function(a,b){m=a.style;m.paddingTop="0";m.paddingBottom="0";m.borderTopWidth="0";m.borderBottomWidth="0";m.height=0;l=i(a).width();b.style.width=p(l);r.push(l)},e,j),i(e).height(0));N(function(a){a.innerHTML="";a.style.width=p(r.shift())},g);null!==a.nTFoot&&N(function(a){a.innerHTML="";a.style.width=p(r.shift())},
|
||||
e);if(i(a.nTable).outerWidth()<f){e=d.scrollHeight>d.offsetHeight||"scroll"==i(d).css("overflow-y")?f+a.oScroll.iBarWidth:f;if(k&&(d.scrollHeight>d.offsetHeight||"scroll"==i(d).css("overflow-y")))a.nTable.style.width=p(e-a.oScroll.iBarWidth);d.style.width=p(e);b.parentNode.style.width=p(e);if(null!==a.nTFoot)n.parentNode.style.width=p(e);""===a.oScroll.sX?F(a,1,"The table cannot fit into the current element which will cause column misalignment. The table has been drawn at its minimum possible width."):
|
||||
""!==a.oScroll.sXInner&&F(a,1,"The table cannot fit into the current element which will cause column misalignment. Increase the sScrollXInner value or remove it to allow automatic calculation")}else if(d.style.width=p("100%"),b.parentNode.style.width=p("100%"),null!==a.nTFoot)n.parentNode.style.width=p("100%");if(""===a.oScroll.sY&&k)d.style.height=p(a.nTable.offsetHeight+a.oScroll.iBarWidth);if(""!==a.oScroll.sY&&a.oScroll.bCollapse&&(d.style.height=p(a.oScroll.sY),k=""!==a.oScroll.sX&&a.nTable.offsetWidth>
|
||||
d.offsetWidth?a.oScroll.iBarWidth:0,a.nTable.offsetHeight<d.offsetHeight))d.style.height=p(i(a.nTable).height()+k);k=i(a.nTable).outerWidth();c.style.width=p(k);b.style.width=p(k);if(null!==a.nTFoot)n.style.width=p(a.nTable.offsetWidth),E.style.width=p(a.nTable.offsetWidth);if(a.bSorted||a.bFiltered)d.scrollTop=0}function N(a,b,c){for(var d=0,f=b.length;d<f;d++)for(var h=0,g=b[d].childNodes.length;h<g;h++)1==b[d].childNodes[h].nodeType&&(c?a(b[d].childNodes[h],c[d].childNodes[h]):a(b[d].childNodes[h]))}
|
||||
function Ka(a,b){if(!a||null===a||""===a)return 0;b||(b=k.getElementsByTagName("body")[0]);var c,d=k.createElement("div");d.style.width=p(a);b.appendChild(d);c=d.offsetWidth;b.removeChild(d);return c}function ba(a){var b=0,c,d=0,f=a.aoColumns.length,h,g=i("th",a.nTHead),e=a.nTable.getAttribute("width");for(h=0;h<f;h++)if(a.aoColumns[h].bVisible&&(d++,null!==a.aoColumns[h].sWidth)){c=Ka(a.aoColumns[h].sWidthOrig,a.nTable.parentNode);if(null!==c)a.aoColumns[h].sWidth=p(c);b++}if(f==g.length&&0===b&&
|
||||
d==f&&""===a.oScroll.sX&&""===a.oScroll.sY)for(h=0;h<a.aoColumns.length;h++){if(c=i(g[h]).width(),null!==c)a.aoColumns[h].sWidth=p(c)}else{b=a.nTable.cloneNode(!1);h=a.nTHead.cloneNode(!0);d=k.createElement("tbody");c=k.createElement("tr");b.removeAttribute("id");b.appendChild(h);null!==a.nTFoot&&(b.appendChild(a.nTFoot.cloneNode(!0)),N(function(a){a.style.width=""},b.getElementsByTagName("tr")));b.appendChild(d);d.appendChild(c);d=i("thead th",b);0===d.length&&(d=i("tbody tr:eq(0)>td",b));g=O(a,
|
||||
h);for(h=d=0;h<f;h++){var j=a.aoColumns[h];j.bVisible&&null!==j.sWidthOrig&&""!==j.sWidthOrig?g[h-d].style.width=p(j.sWidthOrig):j.bVisible?g[h-d].style.width="":d++}for(h=0;h<f;h++)a.aoColumns[h].bVisible&&(d=La(a,h),null!==d&&(d=d.cloneNode(!0),""!==a.aoColumns[h].sContentPadding&&(d.innerHTML+=a.aoColumns[h].sContentPadding),c.appendChild(d)));f=a.nTable.parentNode;f.appendChild(b);if(""!==a.oScroll.sX&&""!==a.oScroll.sXInner)b.style.width=p(a.oScroll.sXInner);else if(""!==a.oScroll.sX){if(b.style.width=
|
||||
"",i(b).width()<f.offsetWidth)b.style.width=p(f.offsetWidth)}else if(""!==a.oScroll.sY)b.style.width=p(f.offsetWidth);else if(e)b.style.width=p(e);b.style.visibility="hidden";Ma(a,b);f=i("tbody tr:eq(0)",b).children();0===f.length&&(f=O(a,i("thead",b)[0]));if(""!==a.oScroll.sX){for(h=d=c=0;h<a.aoColumns.length;h++)a.aoColumns[h].bVisible&&(c=null===a.aoColumns[h].sWidthOrig?c+i(f[d]).outerWidth():c+(parseInt(a.aoColumns[h].sWidth.replace("px",""),10)+(i(f[d]).outerWidth()-i(f[d]).width())),d++);b.style.width=
|
||||
p(c);a.nTable.style.width=p(c)}for(h=d=0;h<a.aoColumns.length;h++)if(a.aoColumns[h].bVisible){c=i(f[d]).width();if(null!==c&&0<c)a.aoColumns[h].sWidth=p(c);d++}f=i(b).css("width");a.nTable.style.width=-1!==f.indexOf("%")?f:p(i(b).outerWidth());b.parentNode.removeChild(b)}if(e)a.nTable.style.width=p(e)}function Ma(a,b){if(""===a.oScroll.sX&&""!==a.oScroll.sY)i(b).width(),b.style.width=p(i(b).outerWidth()-a.oScroll.iBarWidth);else if(""!==a.oScroll.sX)b.style.width=p(i(b).outerWidth())}function La(a,
|
||||
b){var c=Na(a,b);if(0>c)return null;if(null===a.aoData[c].nTr){var d=k.createElement("td");d.innerHTML=w(a,c,b,"");return d}return L(a,c)[b]}function Na(a,b){for(var c=-1,d=-1,f=0;f<a.aoData.length;f++){var h=w(a,f,b,"display")+"",h=h.replace(/<.*?>/g,"");if(h.length>c)c=h.length,d=f}return d}function p(a){if(null===a)return"0px";if("number"==typeof a)return 0>a?"0px":a+"px";var b=a.charCodeAt(a.length-1);return 48>b||57<b?a:a+"px"}function Oa(){var a=k.createElement("p"),b=a.style;b.width="100%";
|
||||
b.height="200px";b.padding="0px";var c=k.createElement("div"),b=c.style;b.position="absolute";b.top="0px";b.left="0px";b.visibility="hidden";b.width="200px";b.height="150px";b.padding="0px";b.overflow="hidden";c.appendChild(a);k.body.appendChild(c);b=a.offsetWidth;c.style.overflow="scroll";a=a.offsetWidth;if(b==a)a=c.clientWidth;k.body.removeChild(c);return b-a}function P(a,b){var c,d,f,h,g,e,o=[],m=[],r=j.ext.oSort,n=a.aoData,k=a.aoColumns,E=a.oLanguage.oAria;if(!a.oFeatures.bServerSide&&(0!==a.aaSorting.length||
|
||||
null!==a.aaSortingFixed)){o=null!==a.aaSortingFixed?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(c=0;c<o.length;c++)if(d=o[c][0],f=t(a,d),h=a.aoColumns[d].sSortDataType,j.ext.afnSortData[h]){g=j.ext.afnSortData[h](a,d,f);for(f=0,h=n.length;f<h;f++)J(a,f,d,g[f])}for(c=0,d=a.aiDisplayMaster.length;c<d;c++)m[a.aiDisplayMaster[c]]=c;var p=o.length,s;for(c=0,d=n.length;c<d;c++)for(f=0;f<p;f++){s=k[o[f][0]].aDataSort;for(g=0,e=s.length;g<e;g++)h=k[s[g]].sType,h=r[(h?h:"string")+"-pre"],
|
||||
n[c]._aSortData[s[g]]=h?h(w(a,c,s[g],"sort")):w(a,c,s[g],"sort")}a.aiDisplayMaster.sort(function(a,b){var c,d,f,h,g;for(c=0;c<p;c++){g=k[o[c][0]].aDataSort;for(d=0,f=g.length;d<f;d++)if(h=k[g[d]].sType,h=r[(h?h:"string")+"-"+o[c][1]](n[a]._aSortData[g[d]],n[b]._aSortData[g[d]]),0!==h)return h}return r["numeric-asc"](m[a],m[b])})}(b===l||b)&&!a.oFeatures.bDeferRender&&Q(a);for(c=0,d=a.aoColumns.length;c<d;c++)f=k[c].nTh,f.removeAttribute("aria-sort"),f.removeAttribute("aria-label"),k[c].bSortable?
|
||||
0<o.length&&o[0][0]==c?(f.setAttribute("aria-sort","asc"==o[0][1]?"ascending":"descending"),f.setAttribute("aria-label",k[c].sTitle+("asc"==(k[c].asSorting[o[0][2]+1]?k[c].asSorting[o[0][2]+1]:k[c].asSorting[0])?E.sSortAscending:E.sSortDescending))):f.setAttribute("aria-label",k[c].sTitle+("asc"==k[c].asSorting[0]?E.sSortAscending:E.sSortDescending)):f.setAttribute("aria-label",k[c].sTitle);a.bSorted=!0;i(a.oInstance).trigger("sort",a);a.oFeatures.bFilter?M(a,a.oPreviousSearch,1):(a.aiDisplay=a.aiDisplayMaster.slice(),
|
||||
a._iDisplayStart=0,z(a),y(a))}function ga(a,b,c,d){Pa(b,{},function(b){if(!1!==a.aoColumns[c].bSortable){var h=function(){var d,h;if(b.shiftKey){for(var e=!1,i=0;i<a.aaSorting.length;i++)if(a.aaSorting[i][0]==c){e=!0;d=a.aaSorting[i][0];h=a.aaSorting[i][2]+1;a.aoColumns[d].asSorting[h]?(a.aaSorting[i][1]=a.aoColumns[d].asSorting[h],a.aaSorting[i][2]=h):a.aaSorting.splice(i,1);break}!1===e&&a.aaSorting.push([c,a.aoColumns[c].asSorting[0],0])}else 1==a.aaSorting.length&&a.aaSorting[0][0]==c?(d=a.aaSorting[0][0],
|
||||
h=a.aaSorting[0][2]+1,a.aoColumns[d].asSorting[h]||(h=0),a.aaSorting[0][1]=a.aoColumns[d].asSorting[h],a.aaSorting[0][2]=h):(a.aaSorting.splice(0,a.aaSorting.length),a.aaSorting.push([c,a.aoColumns[c].asSorting[0],0]));P(a)};a.oFeatures.bProcessing?(H(a,!0),setTimeout(function(){h();a.oFeatures.bServerSide||H(a,!1)},0)):h();"function"==typeof d&&d(a)}})}function Q(a){var b,c,d,f,h,g=a.aoColumns.length,e=a.oClasses;for(b=0;b<g;b++)a.aoColumns[b].bSortable&&i(a.aoColumns[b].nTh).removeClass(e.sSortAsc+
|
||||
" "+e.sSortDesc+" "+a.aoColumns[b].sSortingClass);f=null!==a.aaSortingFixed?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(b=0;b<a.aoColumns.length;b++)if(a.aoColumns[b].bSortable){h=a.aoColumns[b].sSortingClass;d=-1;for(c=0;c<f.length;c++)if(f[c][0]==b){h="asc"==f[c][1]?e.sSortAsc:e.sSortDesc;d=c;break}i(a.aoColumns[b].nTh).addClass(h);a.bJUI&&(c=i("span."+e.sSortIcon,a.aoColumns[b].nTh),c.removeClass(e.sSortJUIAsc+" "+e.sSortJUIDesc+" "+e.sSortJUI+" "+e.sSortJUIAscAllowed+" "+e.sSortJUIDescAllowed),
|
||||
c.addClass(-1==d?a.aoColumns[b].sSortingClassJUI:"asc"==f[d][1]?e.sSortJUIAsc:e.sSortJUIDesc))}else i(a.aoColumns[b].nTh).addClass(a.aoColumns[b].sSortingClass);h=e.sSortColumn;if(a.oFeatures.bSort&&a.oFeatures.bSortClasses){d=L(a);if(a.oFeatures.bDeferRender)i(d).removeClass(h+"1 "+h+"2 "+h+"3");else if(d.length>=g)for(b=0;b<g;b++)if(-1!=d[b].className.indexOf(h+"1"))for(c=0,a=d.length/g;c<a;c++)d[g*c+b].className=i.trim(d[g*c+b].className.replace(h+"1",""));else if(-1!=d[b].className.indexOf(h+
|
||||
"2"))for(c=0,a=d.length/g;c<a;c++)d[g*c+b].className=i.trim(d[g*c+b].className.replace(h+"2",""));else if(-1!=d[b].className.indexOf(h+"3"))for(c=0,a=d.length/g;c<a;c++)d[g*c+b].className=i.trim(d[g*c+b].className.replace(" "+h+"3",""));var e=1,j;for(b=0;b<f.length;b++){j=parseInt(f[b][0],10);for(c=0,a=d.length/g;c<a;c++)d[g*c+j].className+=" "+h+e;3>e&&e++}}}function pa(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b,c;b=a.oScroll.bInfinite;var d={iCreate:(new Date).getTime(),iStart:b?0:a._iDisplayStart,
|
||||
iEnd:b?a._iDisplayLength:a._iDisplayEnd,iLength:a._iDisplayLength,aaSorting:i.extend(!0,[],a.aaSorting),oSearch:i.extend(!0,{},a.oPreviousSearch),aoSearchCols:i.extend(!0,[],a.aoPreSearchCols),abVisCols:[]};for(b=0,c=a.aoColumns.length;b<c;b++)d.abVisCols.push(a.aoColumns[b].bVisible);C(a,"aoStateSaveParams","stateSaveParams",[a,d]);a.fnStateSave.call(a.oInstance,a,d)}}function Qa(a,b){if(a.oFeatures.bStateSave){var c=a.fnStateLoad.call(a.oInstance,a);if(c){var d=C(a,"aoStateLoadParams","stateLoadParams",
|
||||
[a,c]);if(-1===i.inArray(!1,d)){a.oLoadedState=i.extend(!0,{},c);a._iDisplayStart=c.iStart;a.iInitDisplayStart=c.iStart;a._iDisplayEnd=c.iEnd;a._iDisplayLength=c.iLength;a.aaSorting=c.aaSorting.slice();a.saved_aaSorting=c.aaSorting.slice();i.extend(a.oPreviousSearch,c.oSearch);i.extend(!0,a.aoPreSearchCols,c.aoSearchCols);b.saved_aoColumns=[];for(d=0;d<c.abVisCols.length;d++)b.saved_aoColumns[d]={},b.saved_aoColumns[d].bVisible=c.abVisCols[d];C(a,"aoStateLoaded","stateLoaded",[a,c])}}}}function Ra(a){for(var b=
|
||||
aa.location.pathname.split("/"),a=a+"_"+b[b.length-1].replace(/[\/:]/g,"").toLowerCase()+"=",b=k.cookie.split(";"),c=0;c<b.length;c++){for(var d=b[c];" "==d.charAt(0);)d=d.substring(1,d.length);if(0===d.indexOf(a))return decodeURIComponent(d.substring(a.length,d.length))}return null}function u(a){for(var b=0;b<j.settings.length;b++)if(j.settings[b].nTable===a)return j.settings[b];return null}function S(a){for(var b=[],a=a.aoData,c=0,d=a.length;c<d;c++)null!==a[c].nTr&&b.push(a[c].nTr);return b}function L(a,
|
||||
b){var c=[],d,f,h,e,i,j;f=0;var o=a.aoData.length;b!==l&&(f=b,o=b+1);for(h=f;h<o;h++)if(j=a.aoData[h],null!==j.nTr){f=[];for(e=0,i=j.nTr.childNodes.length;e<i;e++)d=j.nTr.childNodes[e].nodeName.toLowerCase(),("td"==d||"th"==d)&&f.push(j.nTr.childNodes[e]);d=0;for(e=0,i=a.aoColumns.length;e<i;e++)a.aoColumns[e].bVisible?c.push(f[e-d]):(c.push(j._anHidden[e]),d++)}return c}function F(a,b,c){a=null===a?"DataTables warning: "+c:"DataTables warning (table id = '"+a.sTableId+"'): "+c;if(0===b)if("alert"==
|
||||
j.ext.sErrMode)alert(a);else throw a;else console!==l&&console.log&&console.log(a)}function n(a,b,c,d){d===l&&(d=c);b[c]!==l&&(a[d]=b[c])}function Sa(a,b){for(var c in a)a.hasOwnProperty(c)&&b[c]!==l&&("object"===typeof e[c]&&!1===i.isArray(b[c])?i.extend(!0,a[c],b[c]):a[c]=b[c]);return a}function Pa(a,b,c){i(a).bind("click.DT",b,function(b){c(b);a.blur()}).bind("keypress.DT",b,function(a){13===a.which&&c(a)}).bind("selectstart.DT",function(){return!1})}function A(a,b,c,d){c&&a[b].push({fn:c,sName:d})}
|
||||
function C(a,b,c,d){for(var b=a[b],f=[],h=b.length-1;0<=h;h--)f.push(b[h].fn.apply(a.oInstance,d));null!==c&&i(a.oInstance).trigger(c,d);return f}function Ta(a){return function(){var b=[u(this[j.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return j.ext.oApi[a].apply(this,b)}}var Ua=aa.JSON?JSON.stringify:function(a){var b=typeof a;if("object"!==b||null===a)return"string"===b&&(a='"'+a+'"'),a+"";var c,d,f=[],h=i.isArray(a);for(c in a)d=a[c],b=typeof d,"string"===b?d='"'+d+'"':"object"===
|
||||
b&&null!==d&&(d=Ua(d)),f.push((h?"":'"'+c+'":')+d);return(h?"[":"{")+f+(h?"]":"}")};this.$=function(a,b){var c,d,f=[],h=u(this[j.ext.iApiIndex]);b||(b={});b=i.extend({},{filter:"none",order:"current",page:"all"},b);if("current"==b.page)for(c=h._iDisplayStart,d=h.fnDisplayEnd();c<d;c++)f.push(h.aoData[h.aiDisplay[c]].nTr);else if("current"==b.order&&"none"==b.filter)for(c=0,d=h.aiDisplayMaster.length;c<d;c++)f.push(h.aoData[h.aiDisplayMaster[c]].nTr);else if("current"==b.order&&"applied"==b.filter)for(c=
|
||||
0,d=h.aiDisplay.length;c<d;c++)f.push(h.aoData[h.aiDisplay[c]].nTr);else if("original"==b.order&&"none"==b.filter)for(c=0,d=h.aoData.length;c<d;c++)f.push(h.aoData[c].nTr);else if("original"==b.order&&"applied"==b.filter)for(c=0,d=h.aoData.length;c<d;c++)-1!==i.inArray(c,h.aiDisplay)&&f.push(h.aoData[c].nTr);else F(h,1,"Unknown selection options");d=i(f);c=d.filter(a);d=d.find(a);return i([].concat(i.makeArray(c),i.makeArray(d)))};this._=function(a,b){var c=[],d,f,h=this.$(a,b);for(d=0,f=h.length;d<
|
||||
f;d++)c.push(this.fnGetData(h[d]));return c};this.fnAddData=function(a,b){if(0===a.length)return[];var c=[],d,f=u(this[j.ext.iApiIndex]);if("object"===typeof a[0]&&null!==a[0])for(var h=0;h<a.length;h++){d=G(f,a[h]);if(-1==d)return c;c.push(d)}else{d=G(f,a);if(-1==d)return c;c.push(d)}f.aiDisplay=f.aiDisplayMaster.slice();(b===l||b)&&Z(f);return c};this.fnAdjustColumnSizing=function(a){var b=u(this[j.ext.iApiIndex]);r(b);a===l||a?this.fnDraw(!1):(""!==b.oScroll.sX||""!==b.oScroll.sY)&&this.oApi._fnScrollDraw(b)};
|
||||
this.fnClearTable=function(a){var b=u(this[j.ext.iApiIndex]);ea(b);(a===l||a)&&y(b)};this.fnClose=function(a){for(var b=u(this[j.ext.iApiIndex]),c=0;c<b.aoOpenRows.length;c++)if(b.aoOpenRows[c].nParent==a)return(a=b.aoOpenRows[c].nTr.parentNode)&&a.removeChild(b.aoOpenRows[c].nTr),b.aoOpenRows.splice(c,1),0;return 1};this.fnDeleteRow=function(a,b,c){var d=u(this[j.ext.iApiIndex]),f,h,a="object"===typeof a?K(d,a):a,e=d.aoData.splice(a,1);for(f=0,h=d.aoData.length;f<h;f++)if(null!==d.aoData[f].nTr)d.aoData[f].nTr._DT_RowIndex=
|
||||
f;f=i.inArray(a,d.aiDisplay);d.asDataSearch.splice(f,1);fa(d.aiDisplayMaster,a);fa(d.aiDisplay,a);"function"===typeof b&&b.call(this,d,e);if(d._iDisplayStart>=d.aiDisplay.length&&(d._iDisplayStart-=d._iDisplayLength,0>d._iDisplayStart))d._iDisplayStart=0;if(c===l||c)z(d),y(d);return e};this.fnDestroy=function(a){var b=u(this[j.ext.iApiIndex]),c=b.nTableWrapper.parentNode,d=b.nTBody,f,e,a=a===l?!1:!0;b.bDestroying=!0;for(f=0,e=b.aoDestroyCallback.length;f<e;f++)b.aoDestroyCallback[f].fn();for(f=0,
|
||||
e=b.aoColumns.length;f<e;f++)!1===b.aoColumns[f].bVisible&&this.fnSetColumnVis(f,!0);i(b.nTableWrapper).find("*").andSelf().unbind(".DT");i("tbody>tr>td."+b.oClasses.sRowEmpty,b.nTable).parent().remove();b.nTable!=b.nTHead.parentNode&&(i(b.nTable).children("thead").remove(),b.nTable.appendChild(b.nTHead));b.nTFoot&&b.nTable!=b.nTFoot.parentNode&&(i(b.nTable).children("tfoot").remove(),b.nTable.appendChild(b.nTFoot));b.nTable.parentNode.removeChild(b.nTable);i(b.nTableWrapper).remove();b.aaSorting=
|
||||
[];b.aaSortingFixed=[];Q(b);i(S(b)).removeClass(b.asStripeClasses.join(" "));i("th, td",b.nTHead).removeClass([b.oClasses.sSortable,b.oClasses.sSortableAsc,b.oClasses.sSortableDesc,b.oClasses.sSortableNone].join(" "));b.bJUI&&(i("th span."+b.oClasses.sSortIcon+", td span."+b.oClasses.sSortIcon,b.nTHead).remove(),i("th, td",b.nTHead).each(function(){var a=i("div."+b.oClasses.sSortJUIWrapper,this),c=a.contents();i(this).append(c);a.remove()}));!a&&b.nTableReinsertBefore?c.insertBefore(b.nTable,b.nTableReinsertBefore):
|
||||
a||c.appendChild(b.nTable);for(f=0,e=b.aoData.length;f<e;f++)null!==b.aoData[f].nTr&&d.appendChild(b.aoData[f].nTr);if(!0===b.oFeatures.bAutoWidth)b.nTable.style.width=p(b.sDestroyWidth);i(d).children("tr:even").addClass(b.asDestroyStripes[0]);i(d).children("tr:odd").addClass(b.asDestroyStripes[1]);for(f=0,e=j.settings.length;f<e;f++)j.settings[f]==b&&j.settings.splice(f,1);b=null};this.fnDraw=function(a){var b=u(this[j.ext.iApiIndex]);a?(z(b),y(b)):Z(b)};this.fnFilter=function(a,b,c,d,f,e){var g=
|
||||
u(this[j.ext.iApiIndex]);if(g.oFeatures.bFilter){if(c===l||null===c)c=!1;if(d===l||null===d)d=!0;if(f===l||null===f)f=!0;if(e===l||null===e)e=!0;if(b===l||null===b){if(M(g,{sSearch:a+"",bRegex:c,bSmart:d,bCaseInsensitive:e},1),f&&g.aanFeatures.f){b=g.aanFeatures.f;c=0;for(d=b.length;c<d;c++)i("input",b[c]).val(a)}}else i.extend(g.aoPreSearchCols[b],{sSearch:a+"",bRegex:c,bSmart:d,bCaseInsensitive:e}),M(g,g.oPreviousSearch,1)}};this.fnGetData=function(a,b){var c=u(this[j.ext.iApiIndex]);if(a!==l){var d=
|
||||
a;if("object"===typeof a){var f=a.nodeName.toLowerCase();"tr"===f?d=K(c,a):"td"===f&&(d=K(c,a.parentNode),b=da(c,d,a))}return b!==l?w(c,d,b,""):c.aoData[d]!==l?c.aoData[d]._aData:null}return X(c)};this.fnGetNodes=function(a){var b=u(this[j.ext.iApiIndex]);return a!==l?b.aoData[a]!==l?b.aoData[a].nTr:null:S(b)};this.fnGetPosition=function(a){var b=u(this[j.ext.iApiIndex]),c=a.nodeName.toUpperCase();if("TR"==c)return K(b,a);return"TD"==c||"TH"==c?(c=K(b,a.parentNode),a=da(b,c,a),[c,t(b,a),a]):null};
|
||||
this.fnIsOpen=function(a){for(var b=u(this[j.ext.iApiIndex]),c=0;c<b.aoOpenRows.length;c++)if(b.aoOpenRows[c].nParent==a)return!0;return!1};this.fnOpen=function(a,b,c){var d=u(this[j.ext.iApiIndex]),f=S(d);if(-1!==i.inArray(a,f)){this.fnClose(a);var f=k.createElement("tr"),e=k.createElement("td");f.appendChild(e);e.className=c;e.colSpan=v(d);"string"===typeof b?e.innerHTML=b:i(e).html(b);b=i("tr",d.nTBody);-1!=i.inArray(a,b)&&i(f).insertAfter(a);d.aoOpenRows.push({nTr:f,nParent:a});return f}};this.fnPageChange=
|
||||
function(a,b){var c=u(this[j.ext.iApiIndex]);oa(c,a);z(c);(b===l||b)&&y(c)};this.fnSetColumnVis=function(a,b,c){var d=u(this[j.ext.iApiIndex]),f,e,g=d.aoColumns,i=d.aoData,o,m;if(g[a].bVisible!=b){if(b){for(f=e=0;f<a;f++)g[f].bVisible&&e++;m=e>=v(d);if(!m)for(f=a;f<g.length;f++)if(g[f].bVisible){o=f;break}for(f=0,e=i.length;f<e;f++)null!==i[f].nTr&&(m?i[f].nTr.appendChild(i[f]._anHidden[a]):i[f].nTr.insertBefore(i[f]._anHidden[a],L(d,f)[o]))}else for(f=0,e=i.length;f<e;f++)null!==i[f].nTr&&(o=L(d,
|
||||
f)[a],i[f]._anHidden[a]=o,o.parentNode.removeChild(o));g[a].bVisible=b;U(d,d.aoHeader);d.nTFoot&&U(d,d.aoFooter);for(f=0,e=d.aoOpenRows.length;f<e;f++)d.aoOpenRows[f].nTr.colSpan=v(d);if(c===l||c)r(d),y(d);pa(d)}};this.fnSettings=function(){return u(this[j.ext.iApiIndex])};this.fnSort=function(a){var b=u(this[j.ext.iApiIndex]);b.aaSorting=a;P(b)};this.fnSortListener=function(a,b,c){ga(u(this[j.ext.iApiIndex]),a,b,c)};this.fnUpdate=function(a,b,c,d,f){var e=u(this[j.ext.iApiIndex]),b="object"===typeof b?
|
||||
K(e,b):b;if(e.__fnUpdateDeep===l&&i.isArray(a)&&"object"===typeof a){e.aoData[b]._aData=a.slice();e.__fnUpdateDeep=!0;for(c=0;c<e.aoColumns.length;c++)this.fnUpdate(w(e,b,c),b,c,!1,!1);e.__fnUpdateDeep=l}else if(e.__fnUpdateDeep===l&&null!==a&&"object"===typeof a){e.aoData[b]._aData=i.extend(!0,{},a);e.__fnUpdateDeep=!0;for(c=0;c<e.aoColumns.length;c++)this.fnUpdate(w(e,b,c),b,c,!1,!1);e.__fnUpdateDeep=l}else{J(e,b,c,a);var a=w(e,b,c,"display"),g=e.aoColumns[c];null!==g.fnRender&&(a=R(e,b,c),g.bUseRendered&&
|
||||
J(e,b,c,a));if(null!==e.aoData[b].nTr)L(e,b)[c].innerHTML=a}c=i.inArray(b,e.aiDisplay);e.asDataSearch[c]=la(e,W(e,b,"filter"));(f===l||f)&&r(e);(d===l||d)&&Z(e);return 0};this.fnVersionCheck=j.ext.fnVersionCheck;this.oApi={_fnExternApiFunc:Ta,_fnInitialise:$,_fnInitComplete:Y,_fnLanguageCompat:na,_fnAddColumn:o,_fnColumnOptions:E,_fnAddData:G,_fnCreateTr:ca,_fnGatherData:ta,_fnBuildHead:ua,_fnDrawHead:U,_fnDraw:y,_fnReDraw:Z,_fnAjaxUpdate:va,_fnAjaxParameters:Da,_fnAjaxUpdateDraw:Ea,_fnServerParams:ha,
|
||||
_fnAddOptionsHtml:wa,_fnFeatureHtmlTable:Aa,_fnScrollDraw:Ja,_fnAdjustColumnSizing:r,_fnFeatureHtmlFilter:ya,_fnFilterComplete:M,_fnFilterCustom:Ha,_fnFilterColumn:Ga,_fnFilter:Fa,_fnBuildSearchArray:ia,_fnBuildSearchRow:la,_fnFilterCreateSearch:ja,_fnDataToSearch:ka,_fnSort:P,_fnSortAttachListener:ga,_fnSortingClasses:Q,_fnFeatureHtmlPaginate:Ca,_fnPageChange:oa,_fnFeatureHtmlInfo:Ba,_fnUpdateInfo:Ia,_fnFeatureHtmlLength:xa,_fnFeatureHtmlProcessing:za,_fnProcessingDisplay:H,_fnVisibleToColumnIndex:s,
|
||||
_fnColumnIndexToVisible:t,_fnNodeToDataIndex:K,_fnVisbleColumns:v,_fnCalculateEnd:z,_fnConvertToWidth:Ka,_fnCalculateColumnWidths:ba,_fnScrollingWidthAdjust:Ma,_fnGetWidestNode:La,_fnGetMaxLenString:Na,_fnStringToCss:p,_fnDetectType:B,_fnSettingsFromNode:u,_fnGetDataMaster:X,_fnGetTrNodes:S,_fnGetTdNodes:L,_fnEscapeRegex:ma,_fnDeleteIndex:fa,_fnReOrderIndex:D,_fnColumnOrdering:x,_fnLog:F,_fnClearTable:ea,_fnSaveState:pa,_fnLoadState:Qa,_fnCreateCookie:function(a,b,c,d,e){var h=new Date;h.setTime(h.getTime()+
|
||||
1E3*c);var c=aa.location.pathname.split("/"),a=a+"_"+c.pop().replace(/[\/:]/g,"").toLowerCase(),g;null!==e?(g="function"===typeof i.parseJSON?i.parseJSON(b):eval("("+b+")"),b=e(a,g,h.toGMTString(),c.join("/")+"/")):b=a+"="+encodeURIComponent(b)+"; expires="+h.toGMTString()+"; path="+c.join("/")+"/";e="";h=9999999999999;if(4096<(null!==Ra(a)?k.cookie.length:b.length+k.cookie.length)+10){for(var a=k.cookie.split(";"),j=0,o=a.length;j<o;j++)if(-1!=a[j].indexOf(d)){var m=a[j].split("=");try{g=eval("("+
|
||||
decodeURIComponent(m[1])+")")}catch(l){continue}if(g.iCreate&&g.iCreate<h)e=m[0],h=g.iCreate}if(""!==e)k.cookie=e+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+c.join("/")+"/"}k.cookie=b},_fnReadCookie:Ra,_fnDetectHeader:T,_fnGetUniqueThs:O,_fnScrollBarWidth:Oa,_fnApplyToChildren:N,_fnMap:n,_fnGetRowData:W,_fnGetCellData:w,_fnSetCellData:J,_fnGetObjectDataFn:V,_fnSetObjectDataFn:sa,_fnApplyColumnDefs:I,_fnBindAction:Pa,_fnExtend:Sa,_fnCallbackReg:A,_fnCallbackFire:C,_fnJsonString:Ua,_fnRender:R,
|
||||
_fnNodeToColumnIndex:da};i.extend(j.ext.oApi,this.oApi);for(var qa in j.ext.oApi)qa&&(this[qa]=Ta(qa));var ra=this;return this.each(function(){var a=0,b,c,d;c=this.getAttribute("id");var f=!1,h=!1;if("table"!=this.nodeName.toLowerCase())F(null,0,"Attempted to initialise DataTables on a node which is not a table: "+this.nodeName);else{for(a=0,b=j.settings.length;a<b;a++){if(j.settings[a].nTable==this){if(e===l||e.bRetrieve)return j.settings[a].oInstance;if(e.bDestroy){j.settings[a].oInstance.fnDestroy();
|
||||
break}else{F(j.settings[a],0,"Cannot reinitialise DataTable.\n\nTo retrieve the DataTables object for this table, pass no arguments or see the docs for bRetrieve and bDestroy");return}}if(j.settings[a].sTableId==this.id){j.settings.splice(a,1);break}}if(null===c)this.id=c="DataTables_Table_"+j.ext._oExternConfig.iNextUnique++;var g=i.extend(!0,{},j.models.oSettings,{nTable:this,oApi:ra.oApi,oInit:e,sDestroyWidth:i(this).width(),sInstance:c,sTableId:c});j.settings.push(g);g.oInstance=1===ra.length?
|
||||
ra:i(this).dataTable();e||(e={});e.oLanguage&&na(e.oLanguage);e=Sa(i.extend(!0,{},j.defaults),e);n(g.oFeatures,e,"bPaginate");n(g.oFeatures,e,"bLengthChange");n(g.oFeatures,e,"bFilter");n(g.oFeatures,e,"bSort");n(g.oFeatures,e,"bInfo");n(g.oFeatures,e,"bProcessing");n(g.oFeatures,e,"bAutoWidth");n(g.oFeatures,e,"bSortClasses");n(g.oFeatures,e,"bServerSide");n(g.oFeatures,e,"bDeferRender");n(g.oScroll,e,"sScrollX","sX");n(g.oScroll,e,"sScrollXInner","sXInner");n(g.oScroll,e,"sScrollY","sY");n(g.oScroll,
|
||||
e,"bScrollCollapse","bCollapse");n(g.oScroll,e,"bScrollInfinite","bInfinite");n(g.oScroll,e,"iScrollLoadGap","iLoadGap");n(g.oScroll,e,"bScrollAutoCss","bAutoCss");n(g,e,"asStripClasses","asStripeClasses");n(g,e,"asStripeClasses");n(g,e,"fnServerData");n(g,e,"fnFormatNumber");n(g,e,"sServerMethod");n(g,e,"aaSorting");n(g,e,"aaSortingFixed");n(g,e,"aLengthMenu");n(g,e,"sPaginationType");n(g,e,"sAjaxSource");n(g,e,"sAjaxDataProp");n(g,e,"iCookieDuration");n(g,e,"sCookiePrefix");n(g,e,"sDom");n(g,e,
|
||||
"bSortCellsTop");n(g,e,"iTabIndex");n(g,e,"oSearch","oPreviousSearch");n(g,e,"aoSearchCols","aoPreSearchCols");n(g,e,"iDisplayLength","_iDisplayLength");n(g,e,"bJQueryUI","bJUI");n(g,e,"fnCookieCallback");n(g,e,"fnStateLoad");n(g,e,"fnStateSave");n(g.oLanguage,e,"fnInfoCallback");A(g,"aoDrawCallback",e.fnDrawCallback,"user");A(g,"aoServerParams",e.fnServerParams,"user");A(g,"aoStateSaveParams",e.fnStateSaveParams,"user");A(g,"aoStateLoadParams",e.fnStateLoadParams,"user");A(g,"aoStateLoaded",e.fnStateLoaded,
|
||||
"user");A(g,"aoRowCallback",e.fnRowCallback,"user");A(g,"aoRowCreatedCallback",e.fnCreatedRow,"user");A(g,"aoHeaderCallback",e.fnHeaderCallback,"user");A(g,"aoFooterCallback",e.fnFooterCallback,"user");A(g,"aoInitComplete",e.fnInitComplete,"user");A(g,"aoPreDrawCallback",e.fnPreDrawCallback,"user");g.oFeatures.bServerSide&&g.oFeatures.bSort&&g.oFeatures.bSortClasses?A(g,"aoDrawCallback",Q,"server_side_sort_classes"):g.oFeatures.bDeferRender&&A(g,"aoDrawCallback",Q,"defer_sort_classes");if(e.bJQueryUI){if(i.extend(g.oClasses,
|
||||
j.ext.oJUIClasses),e.sDom===j.defaults.sDom&&"lfrtip"===j.defaults.sDom)g.sDom='<"H"lfr>t<"F"ip>'}else i.extend(g.oClasses,j.ext.oStdClasses);i(this).addClass(g.oClasses.sTable);if(""!==g.oScroll.sX||""!==g.oScroll.sY)g.oScroll.iBarWidth=Oa();if(g.iInitDisplayStart===l)g.iInitDisplayStart=e.iDisplayStart,g._iDisplayStart=e.iDisplayStart;if(e.bStateSave)g.oFeatures.bStateSave=!0,Qa(g,e),A(g,"aoDrawCallback",pa,"state_save");if(null!==e.iDeferLoading)g.bDeferLoading=!0,g._iRecordsTotal=e.iDeferLoading,
|
||||
g._iRecordsDisplay=e.iDeferLoading;null!==e.aaData&&(h=!0);""!==e.oLanguage.sUrl?(g.oLanguage.sUrl=e.oLanguage.sUrl,i.getJSON(g.oLanguage.sUrl,null,function(a){na(a);i.extend(!0,g.oLanguage,e.oLanguage,a);$(g)}),f=!0):i.extend(!0,g.oLanguage,e.oLanguage);c=!1;d=i(this).children("tbody").children("tr");for(a=0,b=g.asStripeClasses.length;a<b;a++)if(d.filter(":lt(2)").hasClass(g.asStripeClasses[a])){c=!0;break}if(c)g.asDestroyStripes=["",""],i(d[0]).hasClass(g.oClasses.sStripeOdd)&&(g.asDestroyStripes[0]+=
|
||||
g.oClasses.sStripeOdd+" "),i(d[0]).hasClass(g.oClasses.sStripeEven)&&(g.asDestroyStripes[0]+=g.oClasses.sStripeEven),i(d[1]).hasClass(g.oClasses.sStripeOdd)&&(g.asDestroyStripes[1]+=g.oClasses.sStripeOdd+" "),i(d[1]).hasClass(g.oClasses.sStripeEven)&&(g.asDestroyStripes[1]+=g.oClasses.sStripeEven),d.removeClass(g.asStripeClasses.join(" "));c=[];a=this.getElementsByTagName("thead");0!==a.length&&(T(g.aoHeader,a[0]),c=O(g));if(null===e.aoColumns){d=[];for(a=0,b=c.length;a<b;a++)d.push(null)}else d=
|
||||
e.aoColumns;for(a=0,b=d.length;a<b;a++){if(e.saved_aoColumns!==l&&e.saved_aoColumns.length==b)null===d[a]&&(d[a]={}),d[a].bVisible=e.saved_aoColumns[a].bVisible;o(g,c?c[a]:null)}I(g,e.aoColumnDefs,d,function(a,b){E(g,a,b)});for(a=0,b=g.aaSorting.length;a<b;a++){g.aaSorting[a][0]>=g.aoColumns.length&&(g.aaSorting[a][0]=0);var r=g.aoColumns[g.aaSorting[a][0]];g.aaSorting[a][2]===l&&(g.aaSorting[a][2]=0);e.aaSorting===l&&g.saved_aaSorting===l&&(g.aaSorting[a][1]=r.asSorting[0]);for(c=0,d=r.asSorting.length;c<
|
||||
d;c++)if(g.aaSorting[a][1]==r.asSorting[c]){g.aaSorting[a][2]=c;break}}Q(g);a=i(this).children("thead");0===a.length&&(a=[k.createElement("thead")],this.appendChild(a[0]));g.nTHead=a[0];a=i(this).children("tbody");0===a.length&&(a=[k.createElement("tbody")],this.appendChild(a[0]));g.nTBody=a[0];g.nTBody.setAttribute("role","alert");g.nTBody.setAttribute("aria-live","polite");g.nTBody.setAttribute("aria-relevant","all");a=i(this).children("tfoot");if(0<a.length)g.nTFoot=a[0],T(g.aoFooter,g.nTFoot);
|
||||
if(h)for(a=0;a<e.aaData.length;a++)G(g,e.aaData[a]);else ta(g);g.aiDisplay=g.aiDisplayMaster.slice();g.bInitialised=!0;!1===f&&$(g)}})};j.version="1.9.0";j.settings=[];j.models={};j.models.ext={afnFiltering:[],afnSortData:[],aoFeatures:[],aTypes:[],fnVersionCheck:function(e){for(var i=function(e,i){for(;e.length<i;)e+="0";return e},l=j.ext.sVersion.split("."),e=e.split("."),r="",k="",t=0,v=e.length;t<v;t++)r+=i(l[t],3),k+=i(e[t],3);return parseInt(r,10)>=parseInt(k,10)},iApiIndex:0,ofnSearch:{},oApi:{},
|
||||
oStdClasses:{},oJUIClasses:{},oPagination:{},oSort:{},sVersion:j.version,sErrMode:"alert",_oExternConfig:{iNextUnique:0}};j.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};j.models.oRow={nTr:null,_aData:[],_aSortData:[],_anHidden:[],_sRowStripe:""};j.models.oColumn={aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bUseRendered:null,bVisible:null,_bAutoType:!0,fnCreatedCell:null,fnGetData:null,fnRender:null,fnSetData:null,mDataProp:null,nTh:null,nTf:null,sClass:null,
|
||||
sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};j.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:["odd","even"],bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollAutoCss:!0,bScrollCollapse:!1,
|
||||
bScrollInfinite:!1,bServerSide:!1,bSort:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCookieCallback:null,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(e){if(1E3>e)return e;for(var i=e+"",e=i.split(""),j="",i=i.length,l=0;l<i;l++)0===l%3&&0!==l&&(j=this.oLanguage.sInfoThousands+j),j=e[i-l-1]+j;return j},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:function(e,j,l,k){k.jqXHR=i.ajax({url:e,
|
||||
data:j,success:function(e){i(k.oInstance).trigger("xhr",k);l(e)},dataType:"json",cache:!1,type:k.sServerMethod,error:function(e,i){"parsererror"==i&&alert("DataTables warning: JSON data from server could not be parsed. This is caused by a JSON formatting error.")}})},fnServerParams:null,fnStateLoad:function(e){var e=this.oApi._fnReadCookie(e.sCookiePrefix+e.sInstance),j;try{j="function"===typeof i.parseJSON?i.parseJSON(e):eval("("+e+")")}catch(l){j=null}return j},fnStateLoadParams:null,fnStateLoaded:null,
|
||||
fnStateSave:function(e,i){this.oApi._fnCreateCookie(e.sCookiePrefix+e.sInstance,this.oApi._fnJsonString(i),e.iCookieDuration,e.sCookiePrefix,e.fnCookieCallback)},fnStateSaveParams:null,iCookieDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iScrollLoadGap:100,iTabIndex:0,oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",
|
||||
sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sInfoThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sUrl:"",sZeroRecords:"No matching records found"},oSearch:i.extend({},j.models.oSearch),sAjaxDataProp:"aaData",sAjaxSource:null,sCookiePrefix:"SpryMedia_DataTables_",sDom:"lfrtip",sPaginationType:"two_button",sScrollX:"",
|
||||
sScrollXInner:"",sScrollY:"",sServerMethod:"GET"};j.defaults.columns={aDataSort:null,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bUseRendered:!0,bVisible:!0,fnCreatedCell:null,fnRender:null,iDataSort:-1,mDataProp:null,sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};j.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,
|
||||
bSortClasses:null,bStateSave:null},oScroll:{bAutoCss:null,bCollapse:null,bInfinite:null,iBarWidth:0,iLoadGap:null,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aoColumns:[],aoHeader:[],aoFooter:[],asDataSearch:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:null,asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],
|
||||
aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,sPaginationType:"two_button",iCookieDuration:0,sCookiePrefix:"",fnCookieCallback:null,aoStateSave:[],aoStateLoad:[],oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,
|
||||
aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iDisplayEnd:10,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsTotal,10):this.aiDisplayMaster.length},fnRecordsDisplay:function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsDisplay,10):this.aiDisplay.length},fnDisplayEnd:function(){return this.oFeatures.bServerSide?
|
||||
!1===this.oFeatures.bPaginate||-1==this._iDisplayLength?this._iDisplayStart+this.aiDisplay.length:Math.min(this._iDisplayStart+this._iDisplayLength,this._iRecordsDisplay):this._iDisplayEnd},oInstance:null,sInstance:null,iTabIndex:0};j.ext=i.extend(!0,{},j.models.ext);i.extend(j.ext.oStdClasses,{sTable:"dataTable",sPagePrevEnabled:"paginate_enabled_previous",sPagePrevDisabled:"paginate_disabled_previous",sPageNextEnabled:"paginate_enabled_next",sPageNextDisabled:"paginate_disabled_next",sPageJUINext:"",
|
||||
sPageJUIPrev:"",sPageButton:"paginate_button",sPageButtonActive:"paginate_active",sPageButtonStaticDisabled:"paginate_button paginate_button_disabled",sPageFirst:"first",sPagePrevious:"previous",sPageNext:"next",sPageLast:"last",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",
|
||||
sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",
|
||||
sFooterTH:""});i.extend(j.ext.oJUIClasses,j.ext.oStdClasses,{sPagePrevEnabled:"fg-button ui-button ui-state-default ui-corner-left",sPagePrevDisabled:"fg-button ui-button ui-state-default ui-corner-left ui-state-disabled",sPageNextEnabled:"fg-button ui-button ui-state-default ui-corner-right",sPageNextDisabled:"fg-button ui-button ui-state-default ui-corner-right ui-state-disabled",sPageJUINext:"ui-icon ui-icon-circle-arrow-e",sPageJUIPrev:"ui-icon ui-icon-circle-arrow-w",sPageButton:"fg-button ui-button ui-state-default",
|
||||
sPageButtonActive:"fg-button ui-button ui-state-default ui-state-disabled",sPageButtonStaticDisabled:"fg-button ui-button ui-state-default ui-state-disabled",sPageFirst:"first ui-corner-tl ui-corner-bl",sPageLast:"last ui-corner-tr ui-corner-br",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:"ui-state-default",sSortDesc:"ui-state-default",sSortable:"ui-state-default",sSortableAsc:"ui-state-default",sSortableDesc:"ui-state-default",sSortableNone:"ui-state-default",
|
||||
sSortJUIAsc:"css_right ui-icon ui-icon-triangle-1-n",sSortJUIDesc:"css_right ui-icon ui-icon-triangle-1-s",sSortJUI:"css_right ui-icon ui-icon-carat-2-n-s",sSortJUIAscAllowed:"css_right ui-icon ui-icon-carat-1-n",sSortJUIDescAllowed:"css_right ui-icon ui-icon-carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead ui-state-default",sScrollFoot:"dataTables_scrollFoot ui-state-default",sFooterTH:"ui-state-default"});i.extend(j.ext.oPagination,
|
||||
{two_button:{fnInit:function(e,j,l){var k=e.oLanguage.oPaginate,s=function(i){e.oApi._fnPageChange(e,i.data.action)&&l(e)},k=!e.bJUI?'<a class="'+e.oClasses.sPagePrevDisabled+'" tabindex="'+e.iTabIndex+'" role="button">'+k.sPrevious+'</a><a class="'+e.oClasses.sPageNextDisabled+'" tabindex="'+e.iTabIndex+'" role="button">'+k.sNext+"</a>":'<a class="'+e.oClasses.sPagePrevDisabled+'" tabindex="'+e.iTabIndex+'" role="button"><span class="'+e.oClasses.sPageJUIPrev+'"></span></a><a class="'+e.oClasses.sPageNextDisabled+
|
||||
'" tabindex="'+e.iTabIndex+'" role="button"><span class="'+e.oClasses.sPageJUINext+'"></span></a>';i(j).append(k);var t=i("a",j),k=t[0],t=t[1];e.oApi._fnBindAction(k,{action:"previous"},s);e.oApi._fnBindAction(t,{action:"next"},s);if(!e.aanFeatures.p)j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_previous",t.id=e.sTableId+"_next",k.setAttribute("aria-controls",e.sTableId),t.setAttribute("aria-controls",e.sTableId)},fnUpdate:function(e){if(e.aanFeatures.p)for(var i=e.oClasses,j=e.aanFeatures.p,l=0,
|
||||
k=j.length;l<k;l++)if(0!==j[l].childNodes.length)j[l].childNodes[0].className=0===e._iDisplayStart?i.sPagePrevDisabled:i.sPagePrevEnabled,j[l].childNodes[1].className=e.fnDisplayEnd()==e.fnRecordsDisplay()?i.sPageNextDisabled:i.sPageNextEnabled}},iFullNumbersShowPages:5,full_numbers:{fnInit:function(e,j,l){var k=e.oLanguage.oPaginate,s=e.oClasses,t=function(i){e.oApi._fnPageChange(e,i.data.action)&&l(e)};i(j).append('<a tabindex="'+e.iTabIndex+'" class="'+s.sPageButton+" "+s.sPageFirst+'">'+k.sFirst+
|
||||
'</a><a tabindex="'+e.iTabIndex+'" class="'+s.sPageButton+" "+s.sPagePrevious+'">'+k.sPrevious+'</a><span></span><a tabindex="'+e.iTabIndex+'" class="'+s.sPageButton+" "+s.sPageNext+'">'+k.sNext+'</a><a tabindex="'+e.iTabIndex+'" class="'+s.sPageButton+" "+s.sPageLast+'">'+k.sLast+"</a>");var v=i("a",j),k=v[0],s=v[1],B=v[2],v=v[3];e.oApi._fnBindAction(k,{action:"first"},t);e.oApi._fnBindAction(s,{action:"previous"},t);e.oApi._fnBindAction(B,{action:"next"},t);e.oApi._fnBindAction(v,{action:"last"},
|
||||
t);if(!e.aanFeatures.p)j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_first",s.id=e.sTableId+"_previous",B.id=e.sTableId+"_next",v.id=e.sTableId+"_last"},fnUpdate:function(e,l){if(e.aanFeatures.p){var k=j.ext.oPagination.iFullNumbersShowPages,r=Math.floor(k/2),s=Math.ceil(e.fnRecordsDisplay()/e._iDisplayLength),t=Math.ceil(e._iDisplayStart/e._iDisplayLength)+1,v="",B,D=e.oClasses,x,I=e.aanFeatures.p,G=function(i){e.oApi._fnBindAction(this,{page:i+B-1},function(i){e.oApi._fnPageChange(e,i.data.page);
|
||||
l(e);i.preventDefault()})};s<k?(B=1,r=s):t<=r?(B=1,r=k):t>=s-r?(B=s-k+1,r=s):(B=t-Math.ceil(k/2)+1,r=B+k-1);for(k=B;k<=r;k++)v+=t!==k?'<a tabindex="'+e.iTabIndex+'" class="'+D.sPageButton+'">'+e.fnFormatNumber(k)+"</a>":'<a tabindex="'+e.iTabIndex+'" class="'+D.sPageButtonActive+'">'+e.fnFormatNumber(k)+"</a>";for(k=0,r=I.length;k<r;k++)0!==I[k].childNodes.length&&(i("span:eq(0)",I[k]).html(v).children("a").each(G),x=I[k].getElementsByTagName("a"),x=[x[0],x[1],x[x.length-2],x[x.length-1]],i(x).removeClass(D.sPageButton+
|
||||
" "+D.sPageButtonActive+" "+D.sPageButtonStaticDisabled),i([x[0],x[1]]).addClass(1==t?D.sPageButtonStaticDisabled:D.sPageButton),i([x[2],x[3]]).addClass(0===s||t===s||-1===e._iDisplayLength?D.sPageButtonStaticDisabled:D.sPageButton))}}}});i.extend(j.ext.oSort,{"string-pre":function(e){"string"!=typeof e&&(e="");return e.toLowerCase()},"string-asc":function(e,i){return e<i?-1:e>i?1:0},"string-desc":function(e,i){return e<i?1:e>i?-1:0},"html-pre":function(e){return e.replace(/<.*?>/g,"").toLowerCase()},
|
||||
"html-asc":function(e,i){return e<i?-1:e>i?1:0},"html-desc":function(e,i){return e<i?1:e>i?-1:0},"date-pre":function(e){e=Date.parse(e);if(isNaN(e)||""===e)e=Date.parse("01/01/1970 00:00:00");return e},"date-asc":function(e,i){return e-i},"date-desc":function(e,i){return i-e},"numeric-pre":function(e){return"-"==e||""===e?0:1*e},"numeric-asc":function(e,i){return e-i},"numeric-desc":function(e,i){return i-e}});i.extend(j.ext.aTypes,[function(e){if("number"===typeof e)return"numeric";if("string"!==
|
||||
typeof e)return null;var i,j=!1;i=e.charAt(0);if(-1=="0123456789-".indexOf(i))return null;for(var k=1;k<e.length;k++){i=e.charAt(k);if(-1=="0123456789.".indexOf(i))return null;if("."==i){if(j)return null;j=!0}}return"numeric"},function(e){var i=Date.parse(e);return null!==i&&!isNaN(i)||"string"===typeof e&&0===e.length?"date":null},function(e){return"string"===typeof e&&-1!=e.indexOf("<")&&-1!=e.indexOf(">")?"html":null}]);i.fn.DataTable=j;i.fn.dataTable=j;i.fn.dataTableSettings=j.settings;i.fn.dataTableExt=
|
||||
j.ext})(jQuery,window,document,void 0);
|
|
@ -0,0 +1,412 @@
|
|||
(function( $ ){
|
||||
'use strict';
|
||||
|
||||
var element,
|
||||
callbacks = {},
|
||||
resultsTitle,
|
||||
resultsDivID;
|
||||
|
||||
var methods = {
|
||||
setup : function(options){
|
||||
element = this; // set element for build_containers()
|
||||
if (options.callbacks) callbacks = options.callbacks;
|
||||
|
||||
if(options.resultsDivID){
|
||||
|
||||
resultsDivID = options.resultsDivID;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
resultsDivID = 'results';
|
||||
}
|
||||
|
||||
if (options.url !== undefined)
|
||||
methods.process_from_url(options);
|
||||
else
|
||||
methods.process(options);
|
||||
},
|
||||
process : function(options){
|
||||
if (callbacks.beforePopulate) {
|
||||
callbacks.beforePopulate();
|
||||
};
|
||||
|
||||
var self = methods;
|
||||
|
||||
pivot.init(options);
|
||||
|
||||
resultsTitle = options.resultsTitle;
|
||||
|
||||
if (options.skipBuildContainers === undefined || options.skipBuildContainers === false) self.build_containers();
|
||||
|
||||
self.populate_containers();
|
||||
|
||||
$(document).on('change', '.row-labelable', function(event) {
|
||||
self.update_label_fields('row');
|
||||
});
|
||||
|
||||
$(document).on('change', '.column-labelable', function(event) {
|
||||
self.update_label_fields('column');
|
||||
});
|
||||
|
||||
$(document).on('change', '.summary', function(event) {
|
||||
self.update_summary_fields();
|
||||
});
|
||||
|
||||
methods.update_results();
|
||||
|
||||
if (callbacks.afterPopulate) {
|
||||
callbacks.afterPopulate();
|
||||
};
|
||||
},
|
||||
process_from_url : function(options){
|
||||
var re = /\.json$/i,
|
||||
dataType;
|
||||
|
||||
if (re.test(options.url))
|
||||
dataType = 'text/json'
|
||||
else
|
||||
dataType = 'text/csv'
|
||||
|
||||
$.ajax({
|
||||
url: options.url,
|
||||
dataType: "text",
|
||||
accepts: "text/csv",
|
||||
success: function(data, status){
|
||||
if (dataType === 'text/json')
|
||||
options['json'] = data
|
||||
else
|
||||
options['csv'] = data
|
||||
|
||||
methods.process(options)
|
||||
}
|
||||
});
|
||||
},
|
||||
populate_containers: function(){
|
||||
methods.build_toggle_fields('#row-label-fields', pivot.fields().rowLabelable, 'row-labelable');
|
||||
methods.build_toggle_fields('#column-label-fields', pivot.fields().columnLabelable, 'column-labelable');
|
||||
methods.build_toggle_fields('#summary-fields', pivot.fields().summarizable, 'summary');
|
||||
methods.build_filter_list();
|
||||
},
|
||||
reprocess_display : function(options){
|
||||
if (options.rowLabels === undefined) options.rowLabels = [];
|
||||
if (options.columnLabels === undefined) options.columnLabels = [];
|
||||
if (options.summaries === undefined) options.summaries = [];
|
||||
if (options.filters === undefined) options.filters = {};
|
||||
if (options.callbacks === undefined) options.callbacks = {};
|
||||
|
||||
if (options.callbacks.beforeReprocessDisplay) {
|
||||
options.callbacks.afterReprocessDisplay();
|
||||
}
|
||||
|
||||
pivot.filters().set(options.filters);
|
||||
pivot.display().summaries().set(options.summaries);
|
||||
pivot.display().rowLabels().set(options.rowLabels);
|
||||
pivot.display().columnLabels().set(options.columnLabels);
|
||||
|
||||
methods.populate_containers();
|
||||
methods.update_results();
|
||||
|
||||
if (options.callbacks.afterReprocessDisplay) {
|
||||
options.callbacks.afterReprocessDisplay();
|
||||
}
|
||||
},
|
||||
build_containers : function(){
|
||||
|
||||
var containers = '<div class="pivot_header_fields">' +
|
||||
' <div class="pivot_field">' +
|
||||
' <span class="pivot_header2">Filter Fields</span>' +
|
||||
' <div id="filter-list"></div>' +
|
||||
' </div>' +
|
||||
' <div class="pivot_field">' +
|
||||
' <span class="pivot_header2">Row Label Fields</span>' +
|
||||
' <div id="row-label-fields"></div>' +
|
||||
' </div>' +
|
||||
' <div class="pivot_field">' +
|
||||
' <span class="pivot_header2">Column Label Fields</span>' +
|
||||
' <div id="column-label-fields"></div>' +
|
||||
' </div>' +
|
||||
' <div class="pivot_field">' +
|
||||
' <span class="pivot_header2">Summary Fields</span>' +
|
||||
' <div id="summary-fields"></div>' +
|
||||
' </div>' +
|
||||
'</div>';
|
||||
$(element).append(containers);
|
||||
},
|
||||
// Filters
|
||||
build_filter_list : function(){
|
||||
var select = '<select id="select-constructor">'
|
||||
select += '<option></option>'
|
||||
$.each(pivot.fields().filterable, function(index, field){
|
||||
select += '<option>' + field.name + '</option>';
|
||||
})
|
||||
select += '</select>'
|
||||
$('#filter-list').empty().append(select);
|
||||
|
||||
// show pre-defined filters (from init)
|
||||
$.each(pivot.filters().all(), function(fieldName, restriction){
|
||||
methods.build_filter_field(fieldName, restriction);
|
||||
});
|
||||
|
||||
// Bind build action to select-constructor explicitly
|
||||
$('#select-constructor').change(function(){
|
||||
methods.build_filter_field($(this).val());
|
||||
})
|
||||
},
|
||||
build_filter_field : function(fieldName, selectedValue) {
|
||||
var snip,
|
||||
remove_filter,
|
||||
field = pivot.fields().get(fieldName);
|
||||
|
||||
if (fieldName === '') return;
|
||||
|
||||
// Check to see if this field has already been built
|
||||
var filterExists = $('#filter-list select[data-field="' + field.name + '"]');
|
||||
if (filterExists.length) return;
|
||||
|
||||
if (field.filterType === 'regexp')
|
||||
snip = methods.build_regexp_filter_field(field, selectedValue);
|
||||
else
|
||||
snip = methods.build_select_filter_field(field, selectedValue);
|
||||
|
||||
remove_filter = '<a class="remove-filter-field" style="cursor:pointer;">(X)</a></label>';
|
||||
$('#filter-list').append('<div><hr/><label>' + field.name + remove_filter + snip + '</div>');
|
||||
|
||||
//Optional Chosen/Select2 integration
|
||||
if($.fn.chosen!==undefined) $('select.filter').chosen();
|
||||
else if($.fn.select2!==undefined) $('select.filter').select2();
|
||||
|
||||
// Update field listeners
|
||||
$('select.filter').on('change', function(event) {
|
||||
methods.update_filtered_rows();
|
||||
});
|
||||
|
||||
$('input[type=text].filter').on('keyup', function(event) {
|
||||
var filterInput = this,
|
||||
eventValue = $(filterInput).val();
|
||||
|
||||
setTimeout(function(){ if ($(filterInput).val() === eventValue) methods.update_filtered_rows()}, 500);
|
||||
});
|
||||
|
||||
// remove_filter listener
|
||||
$('.remove-filter-field').click(function(){
|
||||
$(this).parents('div').first().remove();
|
||||
methods.update_filtered_rows();
|
||||
})
|
||||
},
|
||||
build_select_filter_field : function(field, selectedValue){
|
||||
var snip = '<select class="filter span3" '+(field.filterType==='multiselect'?'multiple':'')+' data-field="' + field.name + '">' +
|
||||
'<option></option>',
|
||||
orderedValues = [];
|
||||
|
||||
for (var value in field.values){
|
||||
orderedValues.push(value);
|
||||
};
|
||||
|
||||
orderedValues = orderedValues.sort();
|
||||
jQuery.each(orderedValues, function(index, value){
|
||||
var selected = "";
|
||||
if (value === selectedValue) selected = 'selected="selected"';
|
||||
snip += '<option value="' + value + '" ' + selected + '>' + field.values[value].displayValue + '</option>';
|
||||
});
|
||||
snip += '</select>'
|
||||
|
||||
return snip;
|
||||
},
|
||||
build_regexp_filter_field : function(field, value){
|
||||
if (value === undefined) value = "";
|
||||
return '<input type="text" class="filter span3" data-field="' + field.name + '" value="' + value + '">';
|
||||
},
|
||||
update_filtered_rows : function(){
|
||||
var restrictions = {}, field;
|
||||
|
||||
$('.filter').each(function(index){
|
||||
field = pivot.fields().get($(this).attr('data-field'));
|
||||
|
||||
if (field) {
|
||||
if ($(this).val() !== null && $(this).val()[0] !== ''){
|
||||
if (field.filterType === 'regexp')
|
||||
restrictions[$(this).attr('data-field')] = new RegExp($(this).val(),'i');
|
||||
else
|
||||
restrictions[$(this).attr('data-field')] = $(this).val();
|
||||
}
|
||||
}
|
||||
});
|
||||
pivot.filters().set(restrictions);
|
||||
methods.update_results();
|
||||
},
|
||||
|
||||
//toggles
|
||||
|
||||
build_toggle_fields : function(div, fields, klass){
|
||||
$(div).empty();
|
||||
$.each(fields, function(index, field){
|
||||
$(div).append('<label class="checkbox">' +
|
||||
'<input type="checkbox" class="' + klass + '" ' +
|
||||
'data-field="' + field.name + '" ' +
|
||||
'> ' + field.name +
|
||||
'</label>');
|
||||
});
|
||||
|
||||
var displayFields;
|
||||
if (klass === 'row-labelable')
|
||||
displayFields = pivot.display().rowLabels().get
|
||||
else if (klass === 'column-labelable')
|
||||
displayFields = pivot.display().columnLabels().get
|
||||
else
|
||||
displayFields = pivot.display().summaries().get
|
||||
|
||||
for (var fieldName in displayFields) {
|
||||
var elem = $(div + ' input[data-field="' + fieldName +'"]');
|
||||
elem.prop("checked", true);
|
||||
methods.orderChecked(div, elem);
|
||||
};
|
||||
|
||||
// order listener
|
||||
$(div + ' input').on("click", function(){
|
||||
if (this.checked) {
|
||||
methods.orderChecked(div, this);
|
||||
} else {
|
||||
var field = $(this).parent().detach()[0];
|
||||
$(div).append( field );
|
||||
};
|
||||
});
|
||||
},
|
||||
orderChecked : function(parent, elem){
|
||||
var last_checked = $(parent + ' input:checked'); // last changed field (lcf)
|
||||
var field = $(elem).parent().detach()[0]; // pluck item from div
|
||||
var children = $(parent).children();
|
||||
|
||||
//subtract 1 because clicked field is already checked insert plucked item into div at index
|
||||
if ((last_checked.length-1) === 0)
|
||||
$(parent).prepend( field );
|
||||
else if (children.length < last_checked.length)
|
||||
$(parent).append( field );
|
||||
else
|
||||
$(children[last_checked.length-1]).before( field );
|
||||
},
|
||||
update_result_details : function(){
|
||||
var snip = '';
|
||||
var filters = '';
|
||||
$.each(pivot.filters().all(), function(k,v) {
|
||||
filters += '<em>' + k + '</em>' + " => " + v + " "
|
||||
});
|
||||
|
||||
if ($('#pivot-detail').length !== 0)
|
||||
snip += '<b>Filters:</b> ' + filters + "<br/>"
|
||||
$('#pivot-detail').html(snip);
|
||||
},
|
||||
update_results : function(){
|
||||
if (callbacks && callbacks.beforeUpdateResults) {
|
||||
callbacks.beforeUpdateResults();
|
||||
};
|
||||
|
||||
var results = pivot.results().all(),
|
||||
config = pivot.config(),
|
||||
columns = pivot.results().columns(),
|
||||
snip = '',
|
||||
fieldName;
|
||||
|
||||
var result_table = $('#' + resultsDivID),
|
||||
result_rows;
|
||||
result_table.empty();
|
||||
|
||||
snip += '<table id="pivot-table" class="table table-striped table-condensed"><thead>';
|
||||
|
||||
// build columnLabel header row
|
||||
if (config.columnLabels.length > 0 && config.summaries.length > 1) {
|
||||
var summarySnip = '', summaryRow = '';
|
||||
$.each(config.summaries, function(index, fieldName){
|
||||
summarySnip += '<th>' + fieldName + '</th>';
|
||||
})
|
||||
|
||||
snip += '<tr>'
|
||||
$.each(columns, function(index, column){
|
||||
switch (column.type){
|
||||
case 'row':
|
||||
snip += '<th rowspan="2">'+ column.fieldName + '</th>';
|
||||
break;
|
||||
case 'column':
|
||||
snip += '<th colspan="' + column.width + '">' + column.fieldName + '</th>';
|
||||
summaryRow += summarySnip
|
||||
break;
|
||||
}
|
||||
});
|
||||
snip += '</tr><tr>' + summaryRow + '</tr>';
|
||||
} else {
|
||||
snip += '<tr>'
|
||||
$.each(columns, function(index, column){
|
||||
if (column.type !== 'column' || config.summaries.length <= 1) {
|
||||
snip += '<th>' + column.fieldName + '</th>';
|
||||
} else {
|
||||
$.each(config.summaries, function(index, fieldName){
|
||||
snip += '<th>' + fieldName + '</th>';
|
||||
});
|
||||
}
|
||||
});
|
||||
snip += '</tr>'
|
||||
}
|
||||
snip += '</thead></tr><tbody id="result-rows"></tbody></table>';
|
||||
result_table.append(snip);
|
||||
|
||||
result_rows = $('#result-rows');
|
||||
|
||||
$.each(results,function(index, row){
|
||||
snip = '<tr>';
|
||||
$.each(columns, function(index, column){
|
||||
if (column.type !== 'column')
|
||||
snip += '<td>' + row[column.fieldName] + '</td>';
|
||||
else {
|
||||
$.each(config.summaries, function(index, fieldName){
|
||||
if (row[column.fieldName] !== undefined)
|
||||
snip += '<td>' + row[column.fieldName][fieldName] + '</td>';
|
||||
else
|
||||
snip += '<td> </td>';
|
||||
});
|
||||
}
|
||||
});
|
||||
snip += '</tr>';
|
||||
|
||||
result_rows.append(snip);
|
||||
});
|
||||
methods.update_result_details();
|
||||
|
||||
if (callbacks && callbacks.afterUpdateResults) {
|
||||
callbacks.afterUpdateResults();
|
||||
};
|
||||
},
|
||||
update_label_fields : function(type){
|
||||
var display_fields = [];
|
||||
|
||||
$('.' + type + '-labelable:checked').each(function(index){
|
||||
display_fields.push($(this).attr('data-field'));
|
||||
});
|
||||
|
||||
pivot.display()[type + 'Labels']().set(display_fields);
|
||||
|
||||
methods.update_results();
|
||||
},
|
||||
update_summary_fields : function(){
|
||||
var summary_fields = [];
|
||||
|
||||
$('.summary:checked').each(function(index){
|
||||
summary_fields.push($(this).attr('data-field'));
|
||||
});
|
||||
|
||||
pivot.display().summaries().set(summary_fields);
|
||||
|
||||
methods.update_results();
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.pivot_display = function( method ) {
|
||||
if ( methods[method] ) {
|
||||
return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
|
||||
} else if ( typeof method === 'object' || ! method ) {
|
||||
return methods.init.apply( this, arguments );
|
||||
} else {
|
||||
$.error( 'Method ' + method + ' doesn\'t exists');
|
||||
}
|
||||
};
|
||||
|
||||
})( jQuery );
|
|
@ -0,0 +1 @@
|
|||
"use strict";!function(t,r){var n=function(t){function r(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function n(t){return t.replace(/"/g,""")}function e(t){if(!t)return"";var r=[];for(var e in t){var i=t[e]+"";r.push(e+'="'+n(i)+'"')}return r.join(" ")}function i(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};i=new a(i);for(var f=o(t),u=[],c=0;c<f.length;c++){var p=f[c];if("nl"===p.type&&i.nl2br)u.push("<br>\n");else if(p.isLink&&i.check(p)){var l=i.resolve(p),s=l.formatted,g=l.formattedHref,y=l.tagName,h=l.className,v=l.target,k=l.attributes,S="<"+y+' href="'+n(g)+'"';h&&(S+=' class="'+n(h)+'"'),v&&(S+=' target="'+n(v)+'"'),k&&(S+=" "+e(k)),S+=">"+r(s)+"</"+y+">",u.push(S)}else u.push(r(p.toString()))}return u.join("")}var o=t.tokenize,f=t.options,a=f.Options;if(!String.prototype.linkify)try{Object.defineProperty(String.prototype,"linkify",{a:function(){},get:function(){return function(t){return i(this,t)}}})}catch(u){String.prototype.linkify||(String.prototype.linkify=function(t){return i(this,t)})}return i}(r);t.linkifyStr=n}(window,linkify);
|
|
@ -1,243 +1,29 @@
|
|||
{% extends "page.html" %}
|
||||
|
||||
{% block body %}
|
||||
{% set page_class = "apps single" %}
|
||||
{% set page_class = "docs single" %}
|
||||
{% endblock body %}
|
||||
|
||||
{% block header %}
|
||||
{# This value is matched by the config.extra.menu.main~url #}
|
||||
{% set current_section = "apps" %}
|
||||
{% set current_section = "docs" %}
|
||||
{{ macros_header::header(current_section=current_section)}}
|
||||
{% endblock header %}
|
||||
|
||||
{% block content %}
|
||||
<div class="wrap container" role="document">
|
||||
<main class="content">
|
||||
<div class="content">
|
||||
<div class="row flex-xl-nowrap">
|
||||
{{ macros_sidebar::docs_sidebar(current_section=current_section) }}
|
||||
{{ macros_toc::docs_toc(page=page) }}
|
||||
<main class="docs-content col-lg-11 col-xl-11">
|
||||
<main class="docs-content col-lg-11 col-xl-9">
|
||||
<h1>{{ page.title }}</h1>
|
||||
{% if page.taxonomies.state %}{% for project_state in page.taxonomies.state %}
|
||||
<p class="{{ project_state }}">
|
||||
<a href="{{ get_taxonomy_url(kind="state", name=project_state) }}">{{ project_state }}</a>
|
||||
</p>
|
||||
{% endfor %}{% endif %}
|
||||
<p class="lead">{{ page.description }}</p>
|
||||
{% for asset in page.assets -%}
|
||||
{%- if asset is matching("[.](jpg|png)$") -%}
|
||||
{% set image = resize_image(path=asset, width=180, height=335) %}
|
||||
<img src="{{ image.url }}" />
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
{% if page.content %}
|
||||
<h2>Description</h2>
|
||||
{% if page.extra.lead %}<p class="lead">{{ page.extra.lead | safe }}</p>{% endif %}
|
||||
{{ page.content | safe }}
|
||||
{% if page.extra.description_source_url %}
|
||||
<small>
|
||||
<a href="{{ page.extra.description_source_url }}">Source</a>
|
||||
</small>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if page.extra.notice %}
|
||||
<h3>Editorial notice:</h3>
|
||||
{{ page.extra.notice | markdown | safe }}
|
||||
{% endif %}
|
||||
<h3>Project links:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{{ page.extra.repository }}">Repository</a>
|
||||
</li>
|
||||
{% if page.extra.homepage %}
|
||||
<li>
|
||||
<a href="{{ page.extra.homepage }}">Homepage</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if page.extra.bugtracker %}
|
||||
<li>
|
||||
<a href="{{ page.extra.bugtracker }}">Bugtracker</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if page.extra.translate %}
|
||||
<li>
|
||||
<a href="{{ page.extra.translate }}">Help with Translations</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if page.extra.donation %}
|
||||
<li>
|
||||
<a href="{{ page.extra.donation }}">Donate</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% if page.extra.moreinformation %}
|
||||
<h3>Links with more information about the ap:</h3>
|
||||
<ul>
|
||||
{% for item in page.extra.moreinformation %}
|
||||
<li>
|
||||
<a href="{{ item.url | safe }}">
|
||||
{{ item.name | safe }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<h2>More info:</h2>
|
||||
{% if page.taxonomies.mobile_compatibilities %}
|
||||
<p>
|
||||
<strong>Mobile Compatibility:</strong>
|
||||
{% for mobile_compatibility in page.taxonomies.mobile_compatibilities %}
|
||||
<a href="{{ get_taxonomy_url(kind="mobile_compatibilities", name=mobile_compatibility) }}">{{ mobile_compatibility }}</a>
|
||||
{% endfor %}</p>
|
||||
{% endif %}
|
||||
<p>
|
||||
<strong>Licenses:</strong>
|
||||
|
||||
<ul>
|
||||
{% if page.taxonomies.project_licenses %}{% for project_license in page.taxonomies.project_licenses %}
|
||||
<li>Project license:
|
||||
<a href="{{ get_taxonomy_url(kind="project_licenses", name=project_license) }}">{{ project_license }}</a>
|
||||
</li>
|
||||
{% endfor %}{% endif %}
|
||||
{% if page.taxonomies.metadata_licenses %}{% for metadata_license in page.taxonomies.metadata_licenses %}
|
||||
<li>Metadata license:
|
||||
<a href="{{ get_taxonomy_url(kind="metadata_licenses", name=metadata_license) }}">{{ metadata_license }}</a>
|
||||
</li>
|
||||
{% endfor %}{% endif %}
|
||||
|
||||
</ul></p>
|
||||
{% if page.taxonomies.frameworks %}
|
||||
<p>
|
||||
<strong>Frameworks:</strong>
|
||||
<ul>
|
||||
{% for framework in page.taxonomies.frameworks %}
|
||||
<li>
|
||||
<a href="{{ get_taxonomy_url(kind="frameworks", name=framework) }}">{{ framework }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if page.taxonomies.backends %}
|
||||
<p>
|
||||
<strong>Backend:</strong>
|
||||
<ul>
|
||||
{% for backend in page.taxonomies.backends %}
|
||||
<li>
|
||||
<a href="{{ get_taxonomy_url(kind="backends", name=backend) }}">{{ backend }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if page.taxonomies.services %}
|
||||
<p>
|
||||
<strong>Used Services:</strong>
|
||||
<ul>
|
||||
{% for service in page.taxonomies.services %}
|
||||
<li>
|
||||
<a href="{{ get_taxonomy_url(kind="services", name=service) }}">{{ service }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if page.taxonomies.categories %}
|
||||
<p>
|
||||
<strong>Category:</strong>
|
||||
<ul>
|
||||
{% for category in page.taxonomies.categories %}
|
||||
<li>
|
||||
<a href="{{ get_taxonomy_url(kind="categories", name=category) }}">{{ category }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if page.taxonomies.freedesktop_categories %}
|
||||
<p>
|
||||
<strong>FreeDesktop-(Sub-)Categories:</strong>
|
||||
<ul>
|
||||
{% for freedesktop_category in page.taxonomies.freedesktop_categories %}
|
||||
<li>
|
||||
<a href="{{ get_taxonomy_url(kind="freedesktop_categories", name=freedesktop_category) }}">{{ freedesktop_category }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if page.taxonomies.build_systems %}
|
||||
<p>
|
||||
<strong>Build system:</strong>
|
||||
<ul>
|
||||
{% for build_system in page.taxonomies.build_systems %}
|
||||
<li>
|
||||
<a href="{{ get_taxonomy_url(kind="build_systems", name=build_system) }}">{{ build_system }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if page.taxonomies.programming_languages %}
|
||||
<p>
|
||||
<strong>Programming languages:</strong>
|
||||
<ul>
|
||||
{% for programming_language in page.taxonomies.programming_languages %}
|
||||
<li>
|
||||
<a href="{{ get_taxonomy_url(kind="programming_languages", name=programming_language) }}">{{ programming_language }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if page.extra.appstream_xml_url %}
|
||||
<p>
|
||||
<strong>AppStream Metadata URL:</strong>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{{ page.extra.appstream_xml_url }}">{{ page.extra.appstream_xml_url }}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
<h2>Packaging</h2>
|
||||
|
||||
{% if page.extra.flathub %}
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{{ page.extra.flathub }}">Flathub</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% if page.extra.flatpak_json_url %}
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{{ page.extra.flatpak_json_url }}">flatpak.json</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
<h3>Repology Status</h3>
|
||||
<p>
|
||||
{% if page.extra.repology %}
|
||||
{% for repologyname in page.extra.repology %}
|
||||
<a href="https://repology.org/project/{{ repologyname }}/versions">
|
||||
<img src="https://repology.org/badge/vertical-allrepos/{{ repologyname }}.svg" alt="Packaging status">
|
||||
</a>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<a href="https://repology.org/project/{{ page.title | lower }}/versions">
|
||||
<img src="https://repology.org/badge/vertical-allrepos/{{ page.title | lower }}.svg" alt="Packaging status">
|
||||
</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
{% if page.extra.app_id %}
|
||||
<p>If you're lucky, you can install this app by just hitting this button:</p>
|
||||
<a href="appstream://{{ page.extra.app_id }}" class="btn btn-primary btn-lg">Install</a>
|
||||
{% endif %}
|
||||
{% if config.extra.edit_page %}
|
||||
{{ macros_edit_page::docs_edit_page(current_path=current_path) }}
|
||||
{{ macros_edit_page::apps_edit_page(current_path=current_path) }}
|
||||
{% endif %}
|
||||
<p><small>This listing was added on {{ page.date }}{% if page.updated %} and last edited on {{ page.updated }}{% endif %}.</small></p>
|
||||
{{ macros_navigation::docs_navigation(page=page, current_section=current_section) }}
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{% extends "section.html" %}
|
||||
|
||||
{% block body %}
|
||||
{% set page_class = "app list" %}
|
||||
{% set page_class = "docs list" %}
|
||||
{% endblock body %}
|
||||
|
||||
{% block header %}
|
||||
{# This value is matched by the config.extra.menu.main~section #}
|
||||
{% set current_section = "apps" %}
|
||||
{% set current_section = "docs" %}
|
||||
{{ macros_header::header(current_section=current_section)}}
|
||||
{% endblock header %}
|
||||
|
||||
|
@ -22,29 +22,24 @@
|
|||
{% set index_path = current_path ~ "_index.md" | trim_start_matches(pat="/") %}
|
||||
{% set index = get_section(path=index_path) %}
|
||||
{% for page in index.pages %}
|
||||
<div class="card my-5">
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<strong>
|
||||
<a class="stretched-link" href="{{ page.permalink }}">{{ page.title }}</a>
|
||||
</strong>
|
||||
<span class="description" style="float:right;">{{ page.description }}</span>
|
||||
<p class="description" style="text-align: right;">
|
||||
{% for category in page.taxonomies.categories %}
|
||||
<code class="{{ category }}" title="Category">{{ category }}</code>
|
||||
{% endfor %}
|
||||
{% for state in page.taxonomies.state %}
|
||||
<small class="{{ state }}" style="float:left;" title="Project State">{{ state }}</small>
|
||||
{% endfor %}
|
||||
{% for framework in page.taxonomies.frameworks %}
|
||||
<code class="{{ framework }}" title="Framework">{{ framework }}</code>
|
||||
{% endfor %}
|
||||
{% for compatibility in page.taxonomies.mobile_compatibilities %}
|
||||
<code class="{{ compatibility }}" title="Mobile compatibility">{{ compatibility }}</code>
|
||||
{% endfor %}
|
||||
</p>
|
||||
<a class="stretched-link" href="{{ page.permalink }}">{{ page.title }} →</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% for s in index.subsections %}
|
||||
{% set subsection = get_section(path=s) %}
|
||||
{% if subsection.pages %}
|
||||
{% for page in subsection.pages %}
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<a class="stretched-link" href="{{ page.permalink }}">{{ page.title }} →</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
|
|
@ -9,12 +9,16 @@
|
|||
{% import 'macros/docs-edit-page.html' as macros_edit_page -%}
|
||||
{% import 'macros/docs-navigation.html' as macros_navigation -%}
|
||||
{% import 'macros/docs-toc.html' as macros_toc -%}
|
||||
{% import 'macros/lists.html' as macros_lists -%}
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ config.extra.language_code | default(value="en-US") }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
{% block extra_head %}
|
||||
{% endblock extra_head %}
|
||||
|
||||
{{ macros_head::resource() }}
|
||||
{{ macros_head::stylesheet() }}
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
<div class="col-lg-9 col-xl-8 text-center">
|
||||
<p class="lead">{{ section.extra.lead | default(value="Please start setting config.toml and adding your content.") | safe }}</p>
|
||||
<a class="btn btn-primary btn-lg px-4 mb-2" href="{{ section.extra.url | default(value="/") | safe }}" role="button">{{ section.extra.url_button | default(value="Get started") }}</a>
|
||||
<a class="btn btn-primary btn-lg px-4 mb-2" href="{{ section.extra.url_games | default(value="/") | safe }}" role="button">{{ section.extra.url_button_games | default(value="Get started") }}</a>
|
||||
<p class="meta">{{ section.extra.repo_license | default(value="MIT")}}. State: <a href="{{ section.extra.repo_url | default(value="https://github.com/aaranxu/adidoks") | safe }}">{{ section.extra.repo_version | default(value="0.1.0") }}</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
{# Default page template used for lists contents #}
|
||||
|
||||
{% extends "page.html" %}
|
||||
|
||||
{% block extra_head %}
|
||||
{{ macros_lists::applist_head() }}
|
||||
{% endblock extra_head %}
|
||||
|
||||
|
||||
{% block seo %}
|
||||
{# This value is matched by the config.extra.menu.main->section #}
|
||||
{% set_global current_section = 'lists' %}
|
||||
{{ super() }}
|
||||
|
||||
{% endblock seo %}
|
||||
|
||||
{% block body %}
|
||||
{% set page_class = "lists single" %}
|
||||
{% endblock body %}
|
||||
|
||||
{% block header %}
|
||||
{{ macros_header::header(current_section=current_section)}}
|
||||
{% endblock header %}
|
||||
|
||||
{% block content %}
|
||||
<div class="wrap container" role="document">
|
||||
<div class="content">
|
||||
<div class="page-header list-header">
|
||||
<h1>{{ page.title }}</h1>
|
||||
</div>
|
||||
{{ macros_lists::applist_body() }}
|
||||
<article>
|
||||
{{ page.content | safe }}
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
{# Default page template used for lists contents #}
|
||||
|
||||
{% extends "page.html" %}
|
||||
|
||||
{% block extra_head %}
|
||||
{{ macros_lists::archivelist_head() }}
|
||||
{% endblock extra_head %}
|
||||
|
||||
|
||||
{% block seo %}
|
||||
{# This value is matched by the config.extra.menu.main->section #}
|
||||
{% set_global current_section = 'lists' %}
|
||||
{{ super() }}
|
||||
|
||||
{% endblock seo %}
|
||||
|
||||
{% block body %}
|
||||
{% set page_class = "lists single" %}
|
||||
{% endblock body %}
|
||||
|
||||
{% block header %}
|
||||
{{ macros_header::header(current_section=current_section)}}
|
||||
{% endblock header %}
|
||||
|
||||
{% block content %}
|
||||
<div class="wrap container" role="document">
|
||||
<div class="content">
|
||||
<div class="page-header list-header">
|
||||
<h1>{{ page.title }}</h1>
|
||||
</div>
|
||||
{{ macros_lists::archivelist_body() }}
|
||||
<article>
|
||||
{{ page.content | safe }}
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
{# Default page template used for lists contents #}
|
||||
|
||||
{% extends "page.html" %}
|
||||
|
||||
{% block extra_head %}
|
||||
{{ macros_lists::gamelist_head() }}
|
||||
{% endblock extra_head %}
|
||||
|
||||
|
||||
{% block seo %}
|
||||
{# This value is matched by the config.extra.menu.main->section #}
|
||||
{% set_global current_section = 'lists' %}
|
||||
{{ super() }}
|
||||
|
||||
{% endblock seo %}
|
||||
|
||||
{% block body %}
|
||||
{% set page_class = "lists single" %}
|
||||
{% endblock body %}
|
||||
|
||||
{% block header %}
|
||||
{{ macros_header::header(current_section=current_section)}}
|
||||
{% endblock header %}
|
||||
|
||||
{% block content %}
|
||||
<div class="wrap container" role="document">
|
||||
<div class="content">
|
||||
<div class="page-header list-header">
|
||||
<h1>{{ page.title }}</h1>
|
||||
</div>
|
||||
{{ macros_lists::gamelist_body() }}
|
||||
<article>
|
||||
{{ page.content | safe }}
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
{# Default page template used for lists contents #}
|
||||
|
||||
{% extends "page.html" %}
|
||||
|
||||
{% block seo %}
|
||||
{# This value is matched by the config.extra.menu.main->section #}
|
||||
{% set_global current_section = 'lists' %}
|
||||
{{ super() }}
|
||||
{% endblock seo %}
|
||||
|
||||
{% block body %}
|
||||
{% set page_class = "lists single" %}
|
||||
{% endblock body %}
|
||||
|
||||
{% block header %}
|
||||
{{ macros_header::header(current_section=current_section)}}
|
||||
{% endblock header %}
|
||||
|
||||
{% block content %}
|
||||
<div class="wrap container" role="document">
|
||||
<div class="content">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-xl-12">
|
||||
<article>
|
||||
<div class="lists-header">
|
||||
<h1>{{ page.title }}</h1>
|
||||
{{ macros_publish::page_publish_metadata(page=page) }}
|
||||
</div>
|
||||
{% if page.extra.lead %}<p class="lead">{{ page.extra.lead | safe }}</p>{% endif %}
|
||||
{{ page.content | safe }}
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
{% extends "section.html" %}
|
||||
|
||||
{% block body %}
|
||||
{% set page_class = "lists-list list" %}
|
||||
{% endblock body %}
|
||||
|
||||
{% block header %}
|
||||
{# This value is matched by the config.extra.menu.main->section #}
|
||||
{% set current_section = "lists" %}
|
||||
{{ macros_header::header(current_section=current_section)}}
|
||||
{% endblock header %}
|
||||
|
||||
{% block content %}
|
||||
<div class="wrap container" role="document">
|
||||
<div class="content">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-12 col-lg-10 col-xl-8">
|
||||
<article>
|
||||
<h1 class="text-center">{{ section.title }}</h1>
|
||||
<div class="card-list">
|
||||
{% for page in paginator.pages %}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h2 class="h3"><a class="stretched-link text-body" href="{{ page.permalink }}">{{ page.title }}</a></h2>
|
||||
{% if page.extra.lead %}
|
||||
<p class="lead">{{ page.extra.lead | safe }}</p>{% elif page.description %}<p class="lead">{{ page.description | safe }}</p>{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% if paginator.previous or paginator.next %}
|
||||
{{ macros_section_nav::navigation(paginator=paginator) }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
|
@ -1,3 +1,12 @@
|
|||
{% macro docs_edit_page(current_path) %}
|
||||
<p class="edit-page"><a href="{{ config.extra.docs_repo }}/blob/{{ config.extra.repo_branch }}/content{{ current_path | replace(from="\\", to="/") | trim_end_matches(pat="/") }}/index.md"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"></path></svg>Edit this page on GitHub</a></p>
|
||||
<p class="edit-page"><a href="{{ config.extra.docs_repo }}/-/blob/{{ config.extra.repo_branch }}/content{{ current_path | replace(from="\\", to="/") | trim_end_matches(pat="/") }}.md"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"></path></svg>Edit this page on Framagit</a></p>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro apps_edit_page(current_path) %}
|
||||
<p class="edit-page"><a href="{{ config.extra.apps_repo }}/-/blob/{{ config.extra.repo_branch }}/content{{ current_path | replace(from="\\", to="/") | trim_end_matches(pat="/") }}/index.md"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"></path></svg>Edit this app page on Framagit</a></p>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro games_edit_page(current_path) %}
|
||||
<p class="edit-page"><a href="{{ config.extra.games_repo }}/-/blob/{{ config.extra.repo_branch }}/content{{ current_path | replace(from="\\", to="/") | trim_end_matches(pat="/") }}/index.md"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"></path></svg>Edit this games page on Framagit</a></p>
|
||||
{% endmacro %}
|
||||
|
||||
|
|
|
@ -0,0 +1,562 @@
|
|||
{% macro applist_body() %}
|
||||
<section class="accordions">
|
||||
<article class="accordion is-inactive">
|
||||
<div class="accordion-header toggle" style="background-color: lightgrey; color: black;">
|
||||
Adjust table
|
||||
</div>
|
||||
<div class="accordion-body">
|
||||
<div class="accordion-content">
|
||||
<h4>Filter Fields</h4>
|
||||
|
||||
<ul class="stop-propagation">
|
||||
<div id="filter-list"></div>
|
||||
</ul>
|
||||
<h4>Fields to display</h4>
|
||||
<ul class="stop-propagation" style="overflow:auto;max-height:450px;padding:10px;">
|
||||
<div id="row-label-fields"></div>
|
||||
</ul>
|
||||
<span id="pivot-detail" class="content"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="results"></div>
|
||||
<script>
|
||||
document.getElementById("results").innerHTML="App list is loading...";
|
||||
</script>
|
||||
<noscript>
|
||||
<p><mark>JavaScript is required to view this table</mark></p>
|
||||
<p>You can get the raw .csv table at <a target="_blank" href="https://linmobapps.frama.io/apps.csv">https://linmobapps.frama.io/apps.csv</a></p>
|
||||
<p>All JavaScript code used in this site is free and open source software - the whole source code for this site can be found at <a href="https://framagit.org/linmobapps/linmobapps.frama.io">https://framagit.org/linuxphoneapps/</a>
|
||||
</p>
|
||||
</noscript>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro archivelist_body() %}
|
||||
<section class="accordions">
|
||||
<article class="accordion is-inactive">
|
||||
<div class="accordion-header toggle" style="background-color: lightgrey; color: black;">
|
||||
Adjust table
|
||||
</div>
|
||||
<div class="accordion-body">
|
||||
<div class="accordion-content">
|
||||
<h4>Filter Fields</h4>
|
||||
|
||||
<ul class="stop-propagation">
|
||||
<div id="filter-list"></div>
|
||||
</ul>
|
||||
<h4>Fields to display</h4>
|
||||
<ul class="stop-propagation" style="overflow:auto;max-height:450px;padding:10px;">
|
||||
<div id="row-label-fields"></div>
|
||||
</ul>
|
||||
<span id="pivot-detail" class="content"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="results"></div>
|
||||
<script>
|
||||
document.getElementById("results").innerHTML="Archive list is loading...";
|
||||
</script>
|
||||
<noscript>
|
||||
<p><mark>JavaScript is required to view this table</mark></p>
|
||||
<p>You can get the raw .csv table at <a target="_blank" href="https://linmobapps.frama.io/apps.csv">https://linmobapps.frama.io/apps.csv</a></p>
|
||||
<p>All JavaScript code used in this site is free and open source software - the whole source code for this site can be found at <a href="https://framagit.org/linmobapps/linmobapps.frama.io">https://framagit.org/linuxphoneapps/</a>
|
||||
</p>
|
||||
</noscript>
|
||||
{% endmacro %}
|
||||
|
||||
|
||||
{% macro gamelist_body() %}
|
||||
<section class="accordions">
|
||||
<article class="accordion is-inactive">
|
||||
<div class="accordion-header toggle" style="background-color: lightgrey; color: black;">
|
||||
Adjust table
|
||||
</div>
|
||||
<div class="accordion-body">
|
||||
<div class="accordion-content">
|
||||
<h4>Filter Fields</h4>
|
||||
|
||||
<ul class="stop-propagation">
|
||||
<div id="filter-list"></div>
|
||||
</ul>
|
||||
<h4>Fields to display</h4>
|
||||
<ul class="stop-propagation" style="overflow:auto;max-height:450px;padding:10px;">
|
||||
<div id="row-label-fields"></div>
|
||||
</ul>
|
||||
<span id="pivot-detail" class="content"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="results"></div>
|
||||
<script>
|
||||
document.getElementById("results").innerHTML="Game list is loading...";
|
||||
</script>
|
||||
<noscript>
|
||||
<p><mark>JavaScript is required to view this table</mark></p>
|
||||
<p>You can get the raw .csv table at <a target="_blank" href="https://linmobapps.frama.io/apps.csv">https://linmobapps.frama.io/apps.csv</a></p>
|
||||
<p>All JavaScript code used in this site is free and open source software - the whole source code for this site can be found at <a href="https://framagit.org/linmobapps/linmobapps.frama.io">https://framagit.org/linuxphoneapps/</a>
|
||||
</p>
|
||||
</noscript>
|
||||
{% endmacro %}
|
||||
|
||||
|
||||
{% macro applist_head() %}
|
||||
<link rel="stylesheet" href="{{ get_url(path="lib/css/pivot.css") | safe }}" type="text/css"/>
|
||||
<link rel="stylesheet" href="{{ get_url(path="lib/css/bulma.min.css") | safe }}" type="text/css"/>
|
||||
<link rel="stylesheet" href="{{ get_url(path="lib/css/responsive.semanticui.min.css") | safe }}" type="text/css"/>
|
||||
<link rel="stylesheet" href="{{ get_url(path="lib/css/bulma-accordion.min.css") | safe }}" type="text/css"/>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/jquery.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/jquery.dataTables.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/pivot.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/jquery_pivot.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/dataTables.responsive.min.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/linkify.min.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/linkify-string.min.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/bulma-accordion.min.js") | safe }}"></script>
|
||||
<script type="text/javascript">
|
||||
// Define the structure of fields, if this is not defined then all fields will be assumed
|
||||
// to be strings. Name must match csv header row (which must exist) in order to parse correctly.
|
||||
fields =[{name: 'name', type: 'string', filterable: false, columnLabelable: true},
|
||||
{name: 'repository', type: 'string', filterable: true},
|
||||
{name: 'website', type: 'string', filterable: true},
|
||||
{name: 'more information', type: 'string', filterable: true},
|
||||
{name: 'license', type: 'string', filterable: true},
|
||||
{name: 'category', type: 'string', filterable: true},
|
||||
{name: 'summary', type: 'string', filterable: false},
|
||||
{name: 'summary source', type: 'string', filterable: false},
|
||||
{name: 'description', type: 'string', filterable: false},
|
||||
{name: 'description source', type: 'string', filterable: false},
|
||||
{name: 'screenshots', type: 'string', filterable: false},
|
||||
{name: 'mobile compatibility', type: 'string', filterable: true},
|
||||
{name: 'framework', type: 'string', filterable: true},
|
||||
{name: 'backend', type: 'string', filterable: true},
|
||||
{name: 'service', type: 'string', filterable: true},
|
||||
{name: 'appid', type: 'string', filterable: false},
|
||||
{name: 'scale-to-fit', type: 'string', filterable: false},
|
||||
{name: 'notice', type: 'string', filterable: false},
|
||||
{name: 'flatpak', type: 'string', filterable: true},
|
||||
{name: 'aur', type: 'string', filterable: true},
|
||||
{name: 'postmarketos', type: 'string', filterable: true},
|
||||
{name: 'debian', type: 'string', filterable: true},
|
||||
{name: 'appstream link', type: 'string', filterable: false},
|
||||
{name: 'appdata.xml or metainfo.xml url', type: 'string', filterable: false},
|
||||
{name: 'freedesktop (sub)categories', type: 'string', filterable: true},
|
||||
{name: 'main languages', type: 'string', filterable: true},
|
||||
{name: 'build systems', type: 'string', filterable: true},
|
||||
{name: 'original reporter', type: 'string', filterable: false},
|
||||
{name: 'date added', type: 'string', filterable: false},
|
||||
];
|
||||
|
||||
function setupPivot(input) {
|
||||
input.callbacks = {
|
||||
afterUpdateResults: function () {
|
||||
$('#results > table').DataTable({responsive: true, paginate: false, scrollX: 500, class: "input", "sDom": "<'row'<'span6'l><'span6'f>>t<'row'<'span6'i><'span6'p>>"});
|
||||
}
|
||||
};
|
||||
$('#pivot-demo').pivot_display('setup', input);
|
||||
};
|
||||
|
||||
$(document).ready(function () {
|
||||
$.ajax({
|
||||
url: "{{ get_url(path="csv-lists/apps.csv") | safe }}",
|
||||
dataType: "text",
|
||||
success: function (data) {
|
||||
data = data.replace(/,/g, " ||| ");
|
||||
console.log(data);
|
||||
data = linkifyStr(data, {
|
||||
format: function (value, type) {
|
||||
return value;
|
||||
}
|
||||
});
|
||||
data = data.replace(/ \|\|\| /g, ",");
|
||||
console.log(data);
|
||||
setupPivot({
|
||||
csv: data,
|
||||
fields: fields,
|
||||
rowLabels: [
|
||||
"name",
|
||||
"category",
|
||||
"summary",
|
||||
"mobile compatibility",
|
||||
"repository",
|
||||
"framework",
|
||||
"screenshots",
|
||||
"website",
|
||||
"license",
|
||||
"appid",
|
||||
"appstream link",
|
||||
"scale-to-fit",
|
||||
"flatpak",
|
||||
"aur",
|
||||
"postmarketos",
|
||||
"debian",
|
||||
"notice",
|
||||
"more information",
|
||||
"appdata.xml or metainfo.xml url",
|
||||
"backend",
|
||||
"service",
|
||||
"description",
|
||||
"description source",
|
||||
"summary source",
|
||||
"freedesktop (sub)categories",
|
||||
"main languages",
|
||||
"build systems",
|
||||
"date added"
|
||||
]
|
||||
})
|
||||
|
||||
$('.stop-propagation').click(function (event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
console.log(data);
|
||||
}
|
||||
});
|
||||
|
||||
// $('#fieldExplanations').pivot_display('setup', {url:"fields.csv", fields: [{name: 'name', type: 'string', filterable: true, columnLabelable: true}, {name: 'explanation', type: 'string', filterable: true, columnLabelable: true}], rowLabels:["name",
|
||||
// "explanation"]});
|
||||
var accordions = bulmaAccordion.attach();
|
||||
});
|
||||
</script>
|
||||
{% endmacro %}
|
||||
|
||||
|
||||
|
||||
|
||||
{% macro archivelist_head() %}
|
||||
<link rel="stylesheet" href="{{ get_url(path="lib/css/pivot.css") | safe }}" type="text/css"/>
|
||||
<link rel="stylesheet" href="{{ get_url(path="lib/css/bulma.min.css") | safe }}" type="text/css"/>
|
||||
<link rel="stylesheet" href="{{ get_url(path="lib/css/responsive.semanticui.min.css") | safe }}" type="text/css"/>
|
||||
<link rel="stylesheet" href="{{ get_url(path="lib/css/bulma-accordion.min.css") | safe }}" type="text/css"/>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/jquery.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/jquery.dataTables.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/pivot.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/jquery_pivot.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/dataTables.responsive.min.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/linkify.min.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/linkify-string.min.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/bulma-accordion.min.js") | safe }}"></script>
|
||||
<script type="text/javascript">
|
||||
// Define the structure of fields, if this is not defined then all fields will be assumed
|
||||
// to be strings. Name must match csv header row (which must exist) in order to parse correctly.
|
||||
fields =[{name: 'name', type: 'string', filterable: false, columnLabelable: true},
|
||||
{name: 'repository', type: 'string', filterable: true},
|
||||
{name: 'website', type: 'string', filterable: true},
|
||||
{name: 'more information', type: 'string', filterable: true},
|
||||
{name: 'license', type: 'string', filterable: true},
|
||||
{name: 'category', type: 'string', filterable: true},
|
||||
{name: 'summary', type: 'string', filterable: false},
|
||||
{name: 'summary source', type: 'string', filterable: false},
|
||||
{name: 'description', type: 'string', filterable: false},
|
||||
{name: 'description source', type: 'string', filterable: false},
|
||||
{name: 'screenshots', type: 'string', filterable: false},
|
||||
{name: 'mobile compatibility', type: 'string', filterable: true},
|
||||
{name: 'framework', type: 'string', filterable: true},
|
||||
{name: 'backend', type: 'string', filterable: true},
|
||||
{name: 'service', type: 'string', filterable: true},
|
||||
{name: 'appid', type: 'string', filterable: false},
|
||||
{name: 'scale-to-fit', type: 'string', filterable: false},
|
||||
{name: 'notice', type: 'string', filterable: false},
|
||||
{name: 'flatpak', type: 'string', filterable: true},
|
||||
{name: 'aur', type: 'string', filterable: true},
|
||||
{name: 'postmarketos', type: 'string', filterable: true},
|
||||
{name: 'debian', type: 'string', filterable: true},
|
||||
{name: 'appstream link', type: 'string', filterable: false},
|
||||
{name: 'appdata.xml or metainfo.xml url', type: 'string', filterable: false},
|
||||
{name: 'freedesktop (sub)categories', type: 'string', filterable: true},
|
||||
{name: 'main languages', type: 'string', filterable: true},
|
||||
{name: 'build systems', type: 'string', filterable: true},
|
||||
{name: 'original reporter', type: 'string', filterable: false},
|
||||
{name: 'date added', type: 'string', filterable: false},
|
||||
];
|
||||
|
||||
function setupPivot(input) {
|
||||
input.callbacks = {
|
||||
afterUpdateResults: function () {
|
||||
$('#results > table').DataTable({responsive: true, paginate: false, scrollX: 500, class: "input", "sDom": "<'row'<'span6'l><'span6'f>>t<'row'<'span6'i><'span6'p>>"});
|
||||
}
|
||||
};
|
||||
$('#pivot-demo').pivot_display('setup', input);
|
||||
};
|
||||
|
||||
$(document).ready(function () {
|
||||
$.ajax({
|
||||
url: "{{ get_url(path="csv-lists/archive.csv") | safe }}",
|
||||
dataType: "text",
|
||||
success: function (data) {
|
||||
data = data.replace(/,/g, " ||| ");
|
||||
console.log(data);
|
||||
data = linkifyStr(data, {
|
||||
format: function (value, type) {
|
||||
return value;
|
||||
}
|
||||
});
|
||||
data = data.replace(/ \|\|\| /g, ",");
|
||||
console.log(data);
|
||||
setupPivot({
|
||||
csv: data,
|
||||
fields: fields,
|
||||
rowLabels: [
|
||||
"name",
|
||||
"category",
|
||||
"summary",
|
||||
"mobile compatibility",
|
||||
"repository",
|
||||
"framework",
|
||||
"screenshots",
|
||||
"website",
|
||||
"license",
|
||||
"appid",
|
||||
"appstream link",
|
||||
"scale-to-fit",
|
||||
"flatpak",
|
||||
"aur",
|
||||
"postmarketos",
|
||||
"debian",
|
||||
"notice",
|
||||
"more information",
|
||||
"appdata.xml or metainfo.xml url",
|
||||
"backend",
|
||||
"service",
|
||||
"description",
|
||||
"description source",
|
||||
"summary source",
|
||||
"freedesktop (sub)categories",
|
||||
"main languages",
|
||||
"build systems",
|
||||
"date added"
|
||||
]
|
||||
})
|
||||
|
||||
$('.stop-propagation').click(function (event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
console.log(data);
|
||||
}
|
||||
});
|
||||
|
||||
// $('#fieldExplanations').pivot_display('setup', {url:"fields.csv", fields: [{name: 'name', type: 'string', filterable: true, columnLabelable: true}, {name: 'explanation', type: 'string', filterable: true, columnLabelable: true}], rowLabels:["name",
|
||||
// "explanation"]});
|
||||
var accordions = bulmaAccordion.attach();
|
||||
});
|
||||
</script>
|
||||
{% endmacro %}
|
||||
|
||||
|
||||
{% macro gamelist_head() %}
|
||||
<link rel="stylesheet" href="{{ get_url(path="lib/css/pivot.css") | safe }}" type="text/css"/>
|
||||
<link rel="stylesheet" href="{{ get_url(path="lib/css/bulma.min.css") | safe }}" type="text/css"/>
|
||||
<link rel="stylesheet" href="{{ get_url(path="lib/css/responsive.semanticui.min.css") | safe }}" type="text/css"/>
|
||||
<link rel="stylesheet" href="{{ get_url(path="lib/css/bulma-accordion.min.css") | safe }}" type="text/css"/>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/jquery.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/jquery.dataTables.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/pivot.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/jquery_pivot.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/dataTables.responsive.min.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/linkify.min.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/linkify-string.min.js") | safe }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="lib/javascripts/bulma-accordion.min.js") | safe }}"></script>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
// Define the structure of fields, if this is not defined then all fields will be assumed
|
||||
// to be strings. Name must match csv header row (which must exist) in order to parse correctly.
|
||||
fields = [{
|
||||
name: 'name',
|
||||
type: 'string',
|
||||
filterable: true,
|
||||
columnLabelable: true
|
||||
},
|
||||
{
|
||||
name: 'reporter',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'verified',
|
||||
type: 'boolean',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'repository',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'website',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'more information',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'license',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'category',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'summary',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'summary source',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'description',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'description source',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'screenshots',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'mobile compatibility',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'framework',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'backend',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'service',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'appid',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'scale-to-fit',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'notice',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'flatpak',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'aur',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'postmarketos',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
{
|
||||
name: 'debian',
|
||||
type: 'string',
|
||||
filterable: true
|
||||
},
|
||||
];
|
||||
|
||||
function setupPivot(input) {
|
||||
input.callbacks = {
|
||||
afterUpdateResults: function() {
|
||||
$('#results > table').DataTable({
|
||||
responsive: true,
|
||||
paginate: false,
|
||||
scrollX: 500,
|
||||
class: "input",
|
||||
"sDom": "<'row'<'span6'l><'span6'f>>t<'row'<'span6'i><'span6'p>>"
|
||||
});
|
||||
}
|
||||
};
|
||||
$('#pivot-demo').pivot_display('setup', input);
|
||||
};
|
||||
|
||||
$(document).ready(function() {
|
||||
$.ajax({
|
||||
url: "{{ get_url(path="csv-lists/games.csv") | safe }}",
|
||||
dataType: "text",
|
||||
success: function(data) {
|
||||
data = data.replace(/,/g, " ||| ");
|
||||
console.log(data);
|
||||
data = linkifyStr(data, {
|
||||
defaultProtocol: "https",
|
||||
format: function(value, type) {
|
||||
return value;
|
||||
}
|
||||
});
|
||||
data = data.replace(/ \|\|\| /g, ",");
|
||||
console.log(data);
|
||||
setupPivot({
|
||||
csv: data,
|
||||
fields: fields,
|
||||
rowLabels: [
|
||||
"name",
|
||||
"verified",
|
||||
"category",
|
||||
"summary",
|
||||
"mobile compatibility",
|
||||
"repository",
|
||||
"framework",
|
||||
"screenshots",
|
||||
"website",
|
||||
"license",
|
||||
"appid",
|
||||
"scale-to-fit",
|
||||
"flatpak",
|
||||
"aur",
|
||||
"postmarketos",
|
||||
"debian",
|
||||
"notice",
|
||||
"more information",
|
||||
"backend",
|
||||
"service",
|
||||
"description",
|
||||
"description source",
|
||||
"summary source",
|
||||
"reporter"
|
||||
]
|
||||
})
|
||||
|
||||
$('.stop-propagation').click(function(event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
console.log(data);
|
||||
}
|
||||
});
|
||||
|
||||
// $('#fieldExplanations').pivot_display('setup', {url:"fields.csv", fields: [{name: 'name', type: 'string', filterable: true, columnLabelable: true}, {name: 'explanation', type: 'string', filterable: true, columnLabelable: true}], rowLabels:["name",
|
||||
// "explanation"]});
|
||||
var accordions = bulmaAccordion.attach();
|
||||
});
|
||||
</script>
|
||||
|
||||
{% endmacro %}
|