Initial commit: Backup der Webseiten
- zoesch.de - blitzkiste.net - gruene-hassberge (norbert.zoesch.de) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
66
zoesch.de/galerie/admin/themes/default/fontello/LICENSE.txt
Normal file
@@ -0,0 +1,66 @@
|
||||
Font license info
|
||||
|
||||
|
||||
## Font Awesome
|
||||
|
||||
Copyright (C) 2016 by Dave Gandy
|
||||
|
||||
Author: Dave Gandy
|
||||
License: SIL ()
|
||||
Homepage: http://fortawesome.github.com/Font-Awesome/
|
||||
|
||||
|
||||
## Elusive
|
||||
|
||||
Copyright (C) 2013 by Aristeides Stathopoulos
|
||||
|
||||
Author: Aristeides Stathopoulos
|
||||
License: SIL (http://scripts.sil.org/OFL)
|
||||
Homepage: http://aristeides.com/
|
||||
|
||||
|
||||
## Typicons
|
||||
|
||||
(c) Stephen Hutchings 2012
|
||||
|
||||
Author: Stephen Hutchings
|
||||
License: SIL (http://scripts.sil.org/OFL)
|
||||
Homepage: http://typicons.com/
|
||||
|
||||
|
||||
## Entypo
|
||||
|
||||
Copyright (C) 2012 by Daniel Bruce
|
||||
|
||||
Author: Daniel Bruce
|
||||
License: SIL (http://scripts.sil.org/OFL)
|
||||
Homepage: http://www.entypo.com
|
||||
|
||||
|
||||
## MFG Labs
|
||||
|
||||
Copyright (C) 2012 by Daniel Bruce
|
||||
|
||||
Author: MFG Labs
|
||||
License: SIL (http://scripts.sil.org/OFL)
|
||||
Homepage: http://www.mfglabs.com/
|
||||
|
||||
|
||||
## Iconic
|
||||
|
||||
Copyright (C) 2012 by P.J. Onori
|
||||
|
||||
Author: P.J. Onori
|
||||
License: SIL (http://scripts.sil.org/OFL)
|
||||
Homepage: http://somerandomdude.com/work/iconic/
|
||||
|
||||
|
||||
## Fontelico
|
||||
|
||||
Copyright (C) 2012 by Fontello project
|
||||
|
||||
Author: Crowdsourced, for Fontello project
|
||||
License: SIL (http://scripts.sil.org/OFL)
|
||||
Homepage: http://fontello.com
|
||||
|
||||
|
||||
75
zoesch.de/galerie/admin/themes/default/fontello/README.txt
Normal file
@@ -0,0 +1,75 @@
|
||||
This webfont is generated by http://fontello.com open source project.
|
||||
|
||||
|
||||
================================================================================
|
||||
Please, note, that you should obey original font licenses, used to make this
|
||||
webfont pack. Details available in LICENSE.txt file.
|
||||
|
||||
- Usually, it's enough to publish content of LICENSE.txt file somewhere on your
|
||||
site in "About" section.
|
||||
|
||||
- If your project is open-source, usually, it will be ok to make LICENSE.txt
|
||||
file publicly available in your repository.
|
||||
|
||||
- Fonts, used in Fontello, don't require a clickable link on your site.
|
||||
But any kind of additional authors crediting is welcome.
|
||||
================================================================================
|
||||
|
||||
|
||||
Comments on archive content
|
||||
---------------------------
|
||||
|
||||
- /font/* - fonts in different formats
|
||||
|
||||
- /css/* - different kinds of css, for all situations. Should be ok with
|
||||
twitter bootstrap. Also, you can skip <i> style and assign icon classes
|
||||
directly to text elements, if you don't mind about IE7.
|
||||
|
||||
- demo.html - demo file, to show your webfont content
|
||||
|
||||
- LICENSE.txt - license info about source fonts, used to build your one.
|
||||
|
||||
- config.json - keeps your settings. You can import it back into fontello
|
||||
anytime, to continue your work
|
||||
|
||||
|
||||
Why so many CSS files ?
|
||||
-----------------------
|
||||
|
||||
Because we like to fit all your needs :)
|
||||
|
||||
- basic file, <your_font_name>.css - is usually enough, it contains @font-face
|
||||
and character code definitions
|
||||
|
||||
- *-ie7.css - if you need IE7 support, but still don't wish to put char codes
|
||||
directly into html
|
||||
|
||||
- *-codes.css and *-ie7-codes.css - if you like to use your own @font-face
|
||||
rules, but still wish to benefit from css generation. That can be very
|
||||
convenient for automated asset build systems. When you need to update font -
|
||||
no need to manually edit files, just override old version with archive
|
||||
content. See fontello source code for examples.
|
||||
|
||||
- *-embedded.css - basic css file, but with embedded WOFF font, to avoid
|
||||
CORS issues in Firefox and IE9+, when fonts are hosted on the separate domain.
|
||||
We strongly recommend to resolve this issue by `Access-Control-Allow-Origin`
|
||||
server headers. But if you ok with dirty hack - this file is for you. Note,
|
||||
that data url moved to separate @font-face to avoid problems with <IE9, when
|
||||
string is too long.
|
||||
|
||||
- animate.css - use it to get ideas about spinner rotation animation.
|
||||
|
||||
|
||||
Attention for server setup
|
||||
--------------------------
|
||||
|
||||
You MUST setup server to reply with proper `mime-types` for font files -
|
||||
otherwise some browsers will fail to show fonts.
|
||||
|
||||
Usually, `apache` already has necessary settings, but `nginx` and other
|
||||
webservers should be tuned. Here is list of mime types for our file extensions:
|
||||
|
||||
- `application/vnd.ms-fontobject` - eot
|
||||
- `application/x-font-woff` - woff
|
||||
- `application/x-font-ttf` - ttf
|
||||
- `image/svg+xml` - svg
|
||||
526
zoesch.de/galerie/admin/themes/default/fontello/config.json
Normal file
@@ -0,0 +1,526 @@
|
||||
{
|
||||
"name": "",
|
||||
"css_prefix_text": "icon-",
|
||||
"css_use_suffix": false,
|
||||
"hinting": true,
|
||||
"units_per_em": 1000,
|
||||
"ascent": 850,
|
||||
"glyphs": [
|
||||
{
|
||||
"uid": "9bc2902722abb366a213a052ade360bc",
|
||||
"css": "spin6",
|
||||
"code": 59421,
|
||||
"src": "fontelico"
|
||||
},
|
||||
{
|
||||
"uid": "bf882b30900da12fca090d9796bc3030",
|
||||
"css": "mail",
|
||||
"code": 9993,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "ccc2329632396dc096bb638d4b46fb98",
|
||||
"css": "mail-alt",
|
||||
"code": 61664,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "474656633f79ea2f1dad59ff63f6bf07",
|
||||
"css": "star",
|
||||
"code": 9733,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "d17030afaecc1e1c22349b99f3c4992a",
|
||||
"css": "star-empty",
|
||||
"code": 9734,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "381da2c2f7fd51f8de877c044d7f439d",
|
||||
"css": "picture",
|
||||
"code": 127748,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "12f4ece88e46abd864e40b35e05b11cd",
|
||||
"css": "ok",
|
||||
"code": 59417,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "43ab845088317bd348dee1d975700c48",
|
||||
"css": "ok-circled",
|
||||
"code": 59428,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "5211af474d3a9848f67f945e2ccaf143",
|
||||
"css": "cancel",
|
||||
"code": 59426,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "0f4cae16f34ae243a6144c18a003f2d8",
|
||||
"css": "cancel-circled",
|
||||
"code": 59425,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "44e04715aecbca7f266a17d5a7863c68",
|
||||
"css": "plus",
|
||||
"code": 59427,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "4ba33d2607902cf690dd45df09774cb0",
|
||||
"css": "plus-circled",
|
||||
"code": 10133,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "0ddd3e8201ccc7d41f7b7c9d27eca6c1",
|
||||
"css": "link",
|
||||
"code": 128279,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "c1f1975c885aa9f3dad7810c53b82074",
|
||||
"css": "lock",
|
||||
"code": 128274,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "c5fd349cbd3d23e4ade333789c29c729",
|
||||
"css": "eye",
|
||||
"code": 59146,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "a3f89e106175a5c5c4e9738870b12e55",
|
||||
"css": "tags",
|
||||
"code": 59149,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "7034e4d22866af82bef811f52fb1ba46",
|
||||
"css": "code",
|
||||
"code": 59402,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "d35a1d35efeb784d1dc9ac18b9b6c2b6",
|
||||
"css": "pencil",
|
||||
"code": 9998,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "dcedf50ab1ede3283d7a6c70e2fe32f3",
|
||||
"css": "chat",
|
||||
"code": 59168,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "f48ae54adfb27d8ada53d0fd9e34ee10",
|
||||
"css": "trash",
|
||||
"code": 59177,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "c95735c17a10af81448c7fed98a04546",
|
||||
"css": "folder-open",
|
||||
"code": 59398,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "559647a6f430b3aeadbecd67194451dd",
|
||||
"css": "menu",
|
||||
"code": 59401,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "e99461abfef3923546da8d745372c995",
|
||||
"css": "cog",
|
||||
"code": 9881,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "98687378abd1faf8f6af97c254eb6cd6",
|
||||
"css": "cog-alt",
|
||||
"code": 9967,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "5bb103cd29de77e0e06a52638527b575",
|
||||
"css": "wrench",
|
||||
"code": 128295,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "9affc98d652b86628d650ee58dbf0357",
|
||||
"css": "basket",
|
||||
"code": 59197,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "531bc468eecbb8867d822f1c11f1e039",
|
||||
"css": "calendar",
|
||||
"code": 59416,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "0d20938846444af8deb1920dc85a29fb",
|
||||
"css": "logout",
|
||||
"code": 59419,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "598a5f2bcf3521d1615de8e1881ccd17",
|
||||
"css": "clock",
|
||||
"code": 128340,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "98d9c83c1ee7c2c25af784b518c522c5",
|
||||
"css": "block",
|
||||
"code": 128683,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "6605ee6441bf499ffa3c63d3c7409471",
|
||||
"css": "move",
|
||||
"code": 59410,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "0b2b66e526028a6972d51a6f10281b4b",
|
||||
"css": "zoom-in",
|
||||
"code": 59431,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "d25d10efa900f529ad1d275657cfd30e",
|
||||
"css": "zoom-out",
|
||||
"code": 59432,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "bc71f4c6e53394d5ba46b063040014f1",
|
||||
"css": "cw",
|
||||
"code": 59404,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "a73c5deb486c8d66249811642e5d719a",
|
||||
"css": "arrows-cw",
|
||||
"code": 59396,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "37c5ab63f10d7ad0b84d0978dcd0c7a8",
|
||||
"css": "shuffle",
|
||||
"code": 128256,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "6020aff067fc3c119cdd75daa5249220",
|
||||
"css": "exchange",
|
||||
"code": 59397,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "d407a4707f719b042ed2ad28d2619d7e",
|
||||
"css": "signal",
|
||||
"code": 59393,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "09bdae120f85e79f2db16145a9e1f6d8",
|
||||
"css": "crop",
|
||||
"code": 61733,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "dd6c6b221a1088ff8a9b9cd32d0b3dd5",
|
||||
"css": "check",
|
||||
"code": 59423,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "4b900d04e8ab8c82f080c1cfbac5772c",
|
||||
"css": "check-empty",
|
||||
"code": 59424,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "9396b2d8849e0213a0f11c5fd7fcc522",
|
||||
"css": "tasks",
|
||||
"code": 61614,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "4109c474ff99cad28fd5a2c38af2ec6f",
|
||||
"css": "filter",
|
||||
"code": 61616,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "6fe95ffc3c807e62647d4f814a96e0d7",
|
||||
"css": "sitemap",
|
||||
"code": 61672,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "7222571caa5c15f83dcfd447c58d68d9",
|
||||
"css": "search",
|
||||
"code": 59409,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "6274e0601f2feef7eced89146e708de0",
|
||||
"css": "user-add",
|
||||
"code": 59403,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "de9a631a7d18106aea1c89ba51b1990a",
|
||||
"css": "help-circled",
|
||||
"code": 59418,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "7e4164950ffa4990961958b2d6318658",
|
||||
"css": "info-circled-1",
|
||||
"code": 59415,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "513ac180ff85bd275f2b736720cbbf5e",
|
||||
"css": "home",
|
||||
"code": 59406,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "1d2a6c3d9236b88b0f185c7c4530fa52",
|
||||
"css": "flag",
|
||||
"code": 59420,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "44199a54057e6e264fde61a49b034171",
|
||||
"css": "upload",
|
||||
"code": 59411,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "5d595124cecf472869d1cdc020da0ccc",
|
||||
"css": "upload-cloud",
|
||||
"code": 59412,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "6a7b9d4863bb7e6c79e9457a72d689b6",
|
||||
"css": "tools",
|
||||
"code": 59395,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "7f6916533c0842b6cec699fd773693d3",
|
||||
"css": "hourglass",
|
||||
"code": 59422,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "414fe97e4af5215a06d29be0f2cecdf5",
|
||||
"css": "network",
|
||||
"code": 59414,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "39c4d0e225a1263a398a47523cb5b9bd",
|
||||
"css": "brush",
|
||||
"code": 59399,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "ddecf5ad7935e3fb1b70dac6ed00d06a",
|
||||
"css": "language",
|
||||
"code": 59392,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "8beac4a5fd5bed9f82ca7a96cc8ba218",
|
||||
"css": "key",
|
||||
"code": 59413,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "4bcb3aaa98736be3027bef7c76c55021",
|
||||
"css": "flow-branch",
|
||||
"code": 59400,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "xoidjr6q3rzi7tpw6hci1k6srz15g11l",
|
||||
"css": "puzzle",
|
||||
"code": 59318,
|
||||
"src": "typicons"
|
||||
},
|
||||
{
|
||||
"uid": "937f4db8b6ff3348a1d9fcd5e12fd2fe",
|
||||
"css": "mail-1",
|
||||
"code": 59408,
|
||||
"src": "iconic"
|
||||
},
|
||||
{
|
||||
"uid": "e3699d145bd628d2a35d4a508b616f0c",
|
||||
"css": "equalizer",
|
||||
"code": 59407,
|
||||
"src": "iconic"
|
||||
},
|
||||
{
|
||||
"uid": "862129f833b09f3d34ae39acf8484a7b",
|
||||
"css": "heart-broken",
|
||||
"code": 59429,
|
||||
"src": "mfglabs"
|
||||
},
|
||||
{
|
||||
"uid": "05ef9b5e8742971aa85b23cfcbe71594",
|
||||
"css": "users",
|
||||
"code": 59394,
|
||||
"src": "mfglabs"
|
||||
},
|
||||
{
|
||||
"uid": "e36d581e4f2844db345bddc205d15dda",
|
||||
"css": "group",
|
||||
"code": 59405,
|
||||
"src": "elusive"
|
||||
},
|
||||
{
|
||||
"uid": "10fdd98fb50c590b805a3ad6ff9c55f5",
|
||||
"css": "asl",
|
||||
"code": 57517,
|
||||
"src": "elusive"
|
||||
},
|
||||
{
|
||||
"uid": "b08cfe8039de2ce815686aced2caef06",
|
||||
"css": "download",
|
||||
"code": 59430,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "c76b7947c957c9b78b11741173c8349b",
|
||||
"css": "attention",
|
||||
"code": 59433,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "795efd07cd5205b589c883916a76cff0",
|
||||
"css": "hdd",
|
||||
"code": 61600,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "89eb512cb82a1c3fe83cb16134f9876c",
|
||||
"css": "back-in-time",
|
||||
"code": 59434,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "fb94e23ae1e7660aa63cc5f351ec7560",
|
||||
"css": "right",
|
||||
"code": 61816,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "f9c3205df26e7778abac86183aefdc99",
|
||||
"css": "ccw",
|
||||
"code": 59435,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "7fd683b2c518ceb9e5fa6757f2276faa",
|
||||
"css": "eye-off",
|
||||
"code": 59436,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "bbd66ef66bb8fa9edde54d9a90b89150",
|
||||
"css": "user",
|
||||
"code": 59437,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "c2152732d525871cf35345955854f711",
|
||||
"css": "moon-inv",
|
||||
"code": 59438,
|
||||
"src": "iconic"
|
||||
},
|
||||
{
|
||||
"uid": "48050e07077b01021f7fbdbbec8f7de7",
|
||||
"css": "sun-inv",
|
||||
"code": 59439,
|
||||
"src": "iconic"
|
||||
},
|
||||
{
|
||||
"uid": "9755f76110ae4d12ac5f9466c9152031",
|
||||
"css": "book",
|
||||
"code": 59440,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "ebffa4e734c8379ffee4fbfe49264d94",
|
||||
"css": "lifebuoy",
|
||||
"code": 61901,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "266d5d9adf15a61800477a5acf9a4462",
|
||||
"css": "chart-bar",
|
||||
"code": 59441,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "cfb6e143c0650c485536374f2a2f88fb",
|
||||
"css": "television",
|
||||
"code": 62060,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "422e07e5afb80258a9c4ed1706498f8a",
|
||||
"css": "circle-empty",
|
||||
"code": 61708,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "81bb68665e8e595505272a746db07c7a",
|
||||
"css": "dot-circled",
|
||||
"code": 61842,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "f4445feb55521283572ee88bc304f928",
|
||||
"css": "floppy",
|
||||
"code": 59442,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "3a7b6876c1817ce3b801b86c04a9d0af",
|
||||
"css": "sort-number-up",
|
||||
"code": 61794,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "b1887b423d2fd15c345e090320c91ca0",
|
||||
"css": "th",
|
||||
"code": 59443,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "f805bb95d40c7ef2bc51b3d50d4f2e5c",
|
||||
"css": "th-list",
|
||||
"code": 59444,
|
||||
"src": "fontawesome"
|
||||
}
|
||||
]
|
||||
}
|
||||
85
zoesch.de/galerie/admin/themes/default/fontello/css/animation.css
vendored
Normal file
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
Animation example, for spinners
|
||||
*/
|
||||
.animate-spin {
|
||||
-moz-animation: spin 2s infinite linear;
|
||||
-o-animation: spin 2s infinite linear;
|
||||
-webkit-animation: spin 2s infinite linear;
|
||||
animation: spin 2s infinite linear;
|
||||
display: inline-block;
|
||||
}
|
||||
@-moz-keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotate(359deg);
|
||||
-o-transform: rotate(359deg);
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotate(359deg);
|
||||
-o-transform: rotate(359deg);
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
@-o-keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotate(359deg);
|
||||
-o-transform: rotate(359deg);
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
@-ms-keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotate(359deg);
|
||||
-o-transform: rotate(359deg);
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
@keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotate(359deg);
|
||||
-o-transform: rotate(359deg);
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
89
zoesch.de/galerie/admin/themes/default/fontello/css/fontello-codes.css
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
|
||||
.icon-star:before { content: '\2605'; } /* '★' */
|
||||
.icon-star-empty:before { content: '\2606'; } /* '☆' */
|
||||
.icon-cog:before { content: '\2699'; } /* '⚙' */
|
||||
.icon-cog-alt:before { content: '\26ef'; } /* '⛯' */
|
||||
.icon-mail:before { content: '\2709'; } /* '✉' */
|
||||
.icon-pencil:before { content: '\270e'; } /* '✎' */
|
||||
.icon-plus-circled:before { content: '\2795'; } /* '➕' */
|
||||
.icon-asl:before { content: '\e0ad'; } /* '' */
|
||||
.icon-eye:before { content: '\e70a'; } /* '' */
|
||||
.icon-tags:before { content: '\e70d'; } /* '' */
|
||||
.icon-chat:before { content: '\e720'; } /* '' */
|
||||
.icon-trash:before { content: '\e729'; } /* '' */
|
||||
.icon-basket:before { content: '\e73d'; } /* '' */
|
||||
.icon-puzzle:before { content: '\e7b6'; } /* '' */
|
||||
.icon-language:before { content: '\e800'; } /* '' */
|
||||
.icon-signal:before { content: '\e801'; } /* '' */
|
||||
.icon-users:before { content: '\e802'; } /* '' */
|
||||
.icon-tools:before { content: '\e803'; } /* '' */
|
||||
.icon-arrows-cw:before { content: '\e804'; } /* '' */
|
||||
.icon-exchange:before { content: '\e805'; } /* '' */
|
||||
.icon-folder-open:before { content: '\e806'; } /* '' */
|
||||
.icon-brush:before { content: '\e807'; } /* '' */
|
||||
.icon-flow-branch:before { content: '\e808'; } /* '' */
|
||||
.icon-menu:before { content: '\e809'; } /* '' */
|
||||
.icon-code:before { content: '\e80a'; } /* '' */
|
||||
.icon-user-add:before { content: '\e80b'; } /* '' */
|
||||
.icon-cw:before { content: '\e80c'; } /* '' */
|
||||
.icon-group:before { content: '\e80d'; } /* '' */
|
||||
.icon-home:before { content: '\e80e'; } /* '' */
|
||||
.icon-equalizer:before { content: '\e80f'; } /* '' */
|
||||
.icon-mail-1:before { content: '\e810'; } /* '' */
|
||||
.icon-search:before { content: '\e811'; } /* '' */
|
||||
.icon-move:before { content: '\e812'; } /* '' */
|
||||
.icon-upload:before { content: '\e813'; } /* '' */
|
||||
.icon-upload-cloud:before { content: '\e814'; } /* '' */
|
||||
.icon-key:before { content: '\e815'; } /* '' */
|
||||
.icon-network:before { content: '\e816'; } /* '' */
|
||||
.icon-info-circled-1:before { content: '\e817'; } /* '' */
|
||||
.icon-calendar:before { content: '\e818'; } /* '' */
|
||||
.icon-ok:before { content: '\e819'; } /* '' */
|
||||
.icon-help-circled:before { content: '\e81a'; } /* '' */
|
||||
.icon-logout:before { content: '\e81b'; } /* '' */
|
||||
.icon-flag:before { content: '\e81c'; } /* '' */
|
||||
.icon-spin6:before { content: '\e81d'; } /* '' */
|
||||
.icon-hourglass:before { content: '\e81e'; } /* '' */
|
||||
.icon-check:before { content: '\e81f'; } /* '' */
|
||||
.icon-check-empty:before { content: '\e820'; } /* '' */
|
||||
.icon-cancel-circled:before { content: '\e821'; } /* '' */
|
||||
.icon-cancel:before { content: '\e822'; } /* '' */
|
||||
.icon-plus:before { content: '\e823'; } /* '' */
|
||||
.icon-ok-circled:before { content: '\e824'; } /* '' */
|
||||
.icon-heart-broken:before { content: '\e825'; } /* '' */
|
||||
.icon-download:before { content: '\e826'; } /* '' */
|
||||
.icon-zoom-in:before { content: '\e827'; } /* '' */
|
||||
.icon-zoom-out:before { content: '\e828'; } /* '' */
|
||||
.icon-attention:before { content: '\e829'; } /* '' */
|
||||
.icon-back-in-time:before { content: '\e82a'; } /* '' */
|
||||
.icon-ccw:before { content: '\e82b'; } /* '' */
|
||||
.icon-eye-off:before { content: '\e82c'; } /* '' */
|
||||
.icon-user:before { content: '\e82d'; } /* '' */
|
||||
.icon-moon-inv:before { content: '\e82e'; } /* '' */
|
||||
.icon-sun-inv:before { content: '\e82f'; } /* '' */
|
||||
.icon-book:before { content: '\e830'; } /* '' */
|
||||
.icon-chart-bar:before { content: '\e831'; } /* '' */
|
||||
.icon-floppy:before { content: '\e832'; } /* '' */
|
||||
.icon-th:before { content: '\e833'; } /* '' */
|
||||
.icon-th-list:before { content: '\e834'; } /* '' */
|
||||
.icon-hdd:before { content: '\f0a0'; } /* '' */
|
||||
.icon-tasks:before { content: '\f0ae'; } /* '' */
|
||||
.icon-filter:before { content: '\f0b0'; } /* '' */
|
||||
.icon-mail-alt:before { content: '\f0e0'; } /* '' */
|
||||
.icon-sitemap:before { content: '\f0e8'; } /* '' */
|
||||
.icon-circle-empty:before { content: '\f10c'; } /* '' */
|
||||
.icon-crop:before { content: '\f125'; } /* '' */
|
||||
.icon-sort-number-up:before { content: '\f162'; } /* '' */
|
||||
.icon-right:before { content: '\f178'; } /* '' */
|
||||
.icon-dot-circled:before { content: '\f192'; } /* '' */
|
||||
.icon-lifebuoy:before { content: '\f1cd'; } /* '' */
|
||||
.icon-television:before { content: '\f26c'; } /* '' */
|
||||
.icon-picture:before { content: '🌄'; } /* '\1f304' */
|
||||
.icon-shuffle:before { content: '🔀'; } /* '\1f500' */
|
||||
.icon-lock:before { content: '🔒'; } /* '\1f512' */
|
||||
.icon-link:before { content: '🔗'; } /* '\1f517' */
|
||||
.icon-wrench:before { content: '🔧'; } /* '\1f527' */
|
||||
.icon-clock:before { content: '🕔'; } /* '\1f554' */
|
||||
.icon-block:before { content: '🚫'; } /* '\1f6ab' */
|
||||
142
zoesch.de/galerie/admin/themes/default/fontello/css/fontello-embedded.css
vendored
Normal file
87
zoesch.de/galerie/admin/themes/default/fontello/css/fontello-ie7-codes.css
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
|
||||
.icon-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '★ '); }
|
||||
.icon-star-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '☆ '); }
|
||||
.icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '⚙ '); }
|
||||
.icon-cog-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '⛯ '); }
|
||||
.icon-mail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '✉ '); }
|
||||
.icon-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '✎ '); }
|
||||
.icon-plus-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '➕ '); }
|
||||
.icon-asl { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tags { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chat { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-basket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-puzzle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-language { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-signal { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-users { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tools { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-arrows-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-exchange { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-folder-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-brush { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-flow-branch { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-code { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-add { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-group { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-equalizer { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-mail-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-move { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-upload-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-key { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-network { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-info-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-ok { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-help-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-logout { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-flag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spin6 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-hourglass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-check { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-check-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-ok-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-heart-broken { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-download { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-zoom-in { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-zoom-out { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-attention { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-back-in-time { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-ccw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-moon-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sun-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-book { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chart-bar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-floppy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-hdd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-filter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-mail-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sitemap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-circle-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-crop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sort-number-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-dot-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-lifebuoy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-television { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🌄 '); }
|
||||
.icon-shuffle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔀 '); }
|
||||
.icon-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔒 '); }
|
||||
.icon-link { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔗 '); }
|
||||
.icon-wrench { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔧 '); }
|
||||
.icon-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🕔 '); }
|
||||
.icon-block { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🚫 '); }
|
||||
98
zoesch.de/galerie/admin/themes/default/fontello/css/fontello-ie7.css
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
[class^="icon-"], [class*=" icon-"] {
|
||||
font-family: 'fontello';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
|
||||
/* fix buttons height */
|
||||
line-height: 1em;
|
||||
|
||||
/* you can be more comfortable with increased icons size */
|
||||
/* font-size: 120%; */
|
||||
}
|
||||
|
||||
.icon-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '★ '); }
|
||||
.icon-star-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '☆ '); }
|
||||
.icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '⚙ '); }
|
||||
.icon-cog-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '⛯ '); }
|
||||
.icon-mail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '✉ '); }
|
||||
.icon-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '✎ '); }
|
||||
.icon-plus-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '➕ '); }
|
||||
.icon-asl { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tags { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chat { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-basket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-puzzle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-language { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-signal { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-users { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tools { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-arrows-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-exchange { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-folder-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-brush { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-flow-branch { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-code { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-add { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-group { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-equalizer { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-mail-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-move { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-upload-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-key { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-network { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-info-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-ok { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-help-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-logout { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-flag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spin6 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-hourglass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-check { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-check-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-ok-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-heart-broken { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-download { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-zoom-in { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-zoom-out { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-attention { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-back-in-time { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-ccw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-moon-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sun-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-book { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chart-bar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-floppy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-hdd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-filter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-mail-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sitemap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-circle-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-crop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sort-number-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-dot-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-lifebuoy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-television { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🌄 '); }
|
||||
.icon-shuffle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔀 '); }
|
||||
.icon-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔒 '); }
|
||||
.icon-link { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔗 '); }
|
||||
.icon-wrench { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔧 '); }
|
||||
.icon-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🕔 '); }
|
||||
.icon-block { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🚫 '); }
|
||||
145
zoesch.de/galerie/admin/themes/default/fontello/css/fontello.css
vendored
Normal file
@@ -0,0 +1,145 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('../font/fontello.eot?65070433');
|
||||
src: url('../font/fontello.eot?65070433#iefix') format('embedded-opentype'),
|
||||
url('../font/fontello.woff2?65070433') format('woff2'),
|
||||
url('../font/fontello.woff?65070433') format('woff'),
|
||||
url('../font/fontello.ttf?65070433') format('truetype'),
|
||||
url('../font/fontello.svg?65070433#fontello') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
|
||||
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
|
||||
/*
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('../font/fontello.svg?65070433#fontello') format('svg');
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
[class^="icon-"]:before, [class*=" icon-"]:before {
|
||||
font-family: "fontello";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
speak: none;
|
||||
|
||||
display: inline-block;
|
||||
text-decoration: inherit;
|
||||
width: 1em;
|
||||
margin-right: .2em;
|
||||
text-align: center;
|
||||
/* opacity: .8; */
|
||||
|
||||
/* For safety - reset parent styles, that can break glyph codes*/
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
|
||||
/* fix buttons height, for twitter bootstrap */
|
||||
line-height: 1em;
|
||||
|
||||
/* Animation center compensation - margins should be symmetric */
|
||||
/* remove if not needed */
|
||||
margin-left: .2em;
|
||||
|
||||
/* you can be more comfortable with increased icons size */
|
||||
/* font-size: 120%; */
|
||||
|
||||
/* Font smoothing. That was taken from TWBS */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
/* Uncomment for 3D effect */
|
||||
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
||||
}
|
||||
|
||||
.icon-star:before { content: '\2605'; } /* '★' */
|
||||
.icon-star-empty:before { content: '\2606'; } /* '☆' */
|
||||
.icon-cog:before { content: '\2699'; } /* '⚙' */
|
||||
.icon-cog-alt:before { content: '\26ef'; } /* '⛯' */
|
||||
.icon-mail:before { content: '\2709'; } /* '✉' */
|
||||
.icon-pencil:before { content: '\270e'; } /* '✎' */
|
||||
.icon-plus-circled:before { content: '\2795'; } /* '➕' */
|
||||
.icon-asl:before { content: '\e0ad'; } /* '' */
|
||||
.icon-eye:before { content: '\e70a'; } /* '' */
|
||||
.icon-tags:before { content: '\e70d'; } /* '' */
|
||||
.icon-chat:before { content: '\e720'; } /* '' */
|
||||
.icon-trash:before { content: '\e729'; } /* '' */
|
||||
.icon-basket:before { content: '\e73d'; } /* '' */
|
||||
.icon-puzzle:before { content: '\e7b6'; } /* '' */
|
||||
.icon-language:before { content: '\e800'; } /* '' */
|
||||
.icon-signal:before { content: '\e801'; } /* '' */
|
||||
.icon-users:before { content: '\e802'; } /* '' */
|
||||
.icon-tools:before { content: '\e803'; } /* '' */
|
||||
.icon-arrows-cw:before { content: '\e804'; } /* '' */
|
||||
.icon-exchange:before { content: '\e805'; } /* '' */
|
||||
.icon-folder-open:before { content: '\e806'; } /* '' */
|
||||
.icon-brush:before { content: '\e807'; } /* '' */
|
||||
.icon-flow-branch:before { content: '\e808'; } /* '' */
|
||||
.icon-menu:before { content: '\e809'; } /* '' */
|
||||
.icon-code:before { content: '\e80a'; } /* '' */
|
||||
.icon-user-add:before { content: '\e80b'; } /* '' */
|
||||
.icon-cw:before { content: '\e80c'; } /* '' */
|
||||
.icon-group:before { content: '\e80d'; } /* '' */
|
||||
.icon-home:before { content: '\e80e'; } /* '' */
|
||||
.icon-equalizer:before { content: '\e80f'; } /* '' */
|
||||
.icon-mail-1:before { content: '\e810'; } /* '' */
|
||||
.icon-search:before { content: '\e811'; } /* '' */
|
||||
.icon-move:before { content: '\e812'; } /* '' */
|
||||
.icon-upload:before { content: '\e813'; } /* '' */
|
||||
.icon-upload-cloud:before { content: '\e814'; } /* '' */
|
||||
.icon-key:before { content: '\e815'; } /* '' */
|
||||
.icon-network:before { content: '\e816'; } /* '' */
|
||||
.icon-info-circled-1:before { content: '\e817'; } /* '' */
|
||||
.icon-calendar:before { content: '\e818'; } /* '' */
|
||||
.icon-ok:before { content: '\e819'; } /* '' */
|
||||
.icon-help-circled:before { content: '\e81a'; } /* '' */
|
||||
.icon-logout:before { content: '\e81b'; } /* '' */
|
||||
.icon-flag:before { content: '\e81c'; } /* '' */
|
||||
.icon-spin6:before { content: '\e81d'; } /* '' */
|
||||
.icon-hourglass:before { content: '\e81e'; } /* '' */
|
||||
.icon-check:before { content: '\e81f'; } /* '' */
|
||||
.icon-check-empty:before { content: '\e820'; } /* '' */
|
||||
.icon-cancel-circled:before { content: '\e821'; } /* '' */
|
||||
.icon-cancel:before { content: '\e822'; } /* '' */
|
||||
.icon-plus:before { content: '\e823'; } /* '' */
|
||||
.icon-ok-circled:before { content: '\e824'; } /* '' */
|
||||
.icon-heart-broken:before { content: '\e825'; } /* '' */
|
||||
.icon-download:before { content: '\e826'; } /* '' */
|
||||
.icon-zoom-in:before { content: '\e827'; } /* '' */
|
||||
.icon-zoom-out:before { content: '\e828'; } /* '' */
|
||||
.icon-attention:before { content: '\e829'; } /* '' */
|
||||
.icon-back-in-time:before { content: '\e82a'; } /* '' */
|
||||
.icon-ccw:before { content: '\e82b'; } /* '' */
|
||||
.icon-eye-off:before { content: '\e82c'; } /* '' */
|
||||
.icon-user:before { content: '\e82d'; } /* '' */
|
||||
.icon-moon-inv:before { content: '\e82e'; } /* '' */
|
||||
.icon-sun-inv:before { content: '\e82f'; } /* '' */
|
||||
.icon-book:before { content: '\e830'; } /* '' */
|
||||
.icon-chart-bar:before { content: '\e831'; } /* '' */
|
||||
.icon-floppy:before { content: '\e832'; } /* '' */
|
||||
.icon-th:before { content: '\e833'; } /* '' */
|
||||
.icon-th-list:before { content: '\e834'; } /* '' */
|
||||
.icon-hdd:before { content: '\f0a0'; } /* '' */
|
||||
.icon-tasks:before { content: '\f0ae'; } /* '' */
|
||||
.icon-filter:before { content: '\f0b0'; } /* '' */
|
||||
.icon-mail-alt:before { content: '\f0e0'; } /* '' */
|
||||
.icon-sitemap:before { content: '\f0e8'; } /* '' */
|
||||
.icon-circle-empty:before { content: '\f10c'; } /* '' */
|
||||
.icon-crop:before { content: '\f125'; } /* '' */
|
||||
.icon-sort-number-up:before { content: '\f162'; } /* '' */
|
||||
.icon-right:before { content: '\f178'; } /* '' */
|
||||
.icon-dot-circled:before { content: '\f192'; } /* '' */
|
||||
.icon-lifebuoy:before { content: '\f1cd'; } /* '' */
|
||||
.icon-television:before { content: '\f26c'; } /* '' */
|
||||
.icon-picture:before { content: '🌄'; } /* '\1f304' */
|
||||
.icon-shuffle:before { content: '🔀'; } /* '\1f500' */
|
||||
.icon-lock:before { content: '🔒'; } /* '\1f512' */
|
||||
.icon-link:before { content: '🔗'; } /* '\1f517' */
|
||||
.icon-wrench:before { content: '🔧'; } /* '\1f527' */
|
||||
.icon-clock:before { content: '🕔'; } /* '\1f554' */
|
||||
.icon-block:before { content: '🚫'; } /* '\1f6ab' */
|
||||
436
zoesch.de/galerie/admin/themes/default/fontello/demo.html
Normal file
@@ -0,0 +1,436 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head><!--[if lt IE 9]><script language="javascript" type="text/javascript" src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
||||
<meta charset="UTF-8"><style>/*
|
||||
* Bootstrap v2.2.1
|
||||
*
|
||||
* Copyright 2012 Twitter, Inc
|
||||
* Licensed under the Apache License v2.0
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Designed and built with all the love in the world @twitter by @mdo and @fat.
|
||||
*/
|
||||
.clearfix {
|
||||
*zoom: 1;
|
||||
}
|
||||
.clearfix:before,
|
||||
.clearfix:after {
|
||||
display: table;
|
||||
content: "";
|
||||
line-height: 0;
|
||||
}
|
||||
.clearfix:after {
|
||||
clear: both;
|
||||
}
|
||||
html {
|
||||
font-size: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
}
|
||||
a:focus {
|
||||
outline: thin dotted #333;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
a:hover,
|
||||
a:active {
|
||||
outline: 0;
|
||||
}
|
||||
button,
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
margin: 0;
|
||||
font-size: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
button,
|
||||
input {
|
||||
*overflow: visible;
|
||||
line-height: normal;
|
||||
}
|
||||
button::-moz-focus-inner,
|
||||
input::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
color: #333;
|
||||
background-color: #fff;
|
||||
}
|
||||
a {
|
||||
color: #08c;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover {
|
||||
color: #005580;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.row {
|
||||
margin-left: -20px;
|
||||
*zoom: 1;
|
||||
}
|
||||
.row:before,
|
||||
.row:after {
|
||||
display: table;
|
||||
content: "";
|
||||
line-height: 0;
|
||||
}
|
||||
.row:after {
|
||||
clear: both;
|
||||
}
|
||||
[class*="span"] {
|
||||
float: left;
|
||||
min-height: 1px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
.container,
|
||||
.navbar-static-top .container,
|
||||
.navbar-fixed-top .container,
|
||||
.navbar-fixed-bottom .container {
|
||||
width: 940px;
|
||||
}
|
||||
.span12 {
|
||||
width: 940px;
|
||||
}
|
||||
.span11 {
|
||||
width: 860px;
|
||||
}
|
||||
.span10 {
|
||||
width: 780px;
|
||||
}
|
||||
.span9 {
|
||||
width: 700px;
|
||||
}
|
||||
.span8 {
|
||||
width: 620px;
|
||||
}
|
||||
.span7 {
|
||||
width: 540px;
|
||||
}
|
||||
.span6 {
|
||||
width: 460px;
|
||||
}
|
||||
.span5 {
|
||||
width: 380px;
|
||||
}
|
||||
.span4 {
|
||||
width: 300px;
|
||||
}
|
||||
.span3 {
|
||||
width: 220px;
|
||||
}
|
||||
.span2 {
|
||||
width: 140px;
|
||||
}
|
||||
.span1 {
|
||||
width: 60px;
|
||||
}
|
||||
[class*="span"].pull-right,
|
||||
.row-fluid [class*="span"].pull-right {
|
||||
float: right;
|
||||
}
|
||||
.container {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
*zoom: 1;
|
||||
}
|
||||
.container:before,
|
||||
.container:after {
|
||||
display: table;
|
||||
content: "";
|
||||
line-height: 0;
|
||||
}
|
||||
.container:after {
|
||||
clear: both;
|
||||
}
|
||||
p {
|
||||
margin: 0 0 10px;
|
||||
}
|
||||
.lead {
|
||||
margin-bottom: 20px;
|
||||
font-size: 21px;
|
||||
font-weight: 200;
|
||||
line-height: 30px;
|
||||
}
|
||||
small {
|
||||
font-size: 85%;
|
||||
}
|
||||
h1 {
|
||||
margin: 10px 0;
|
||||
font-family: inherit;
|
||||
font-weight: bold;
|
||||
line-height: 20px;
|
||||
color: inherit;
|
||||
text-rendering: optimizelegibility;
|
||||
}
|
||||
h1 small {
|
||||
font-weight: normal;
|
||||
line-height: 1;
|
||||
color: #999;
|
||||
}
|
||||
h1 {
|
||||
line-height: 40px;
|
||||
}
|
||||
h1 {
|
||||
font-size: 38.5px;
|
||||
}
|
||||
h1 small {
|
||||
font-size: 24.5px;
|
||||
}
|
||||
body {
|
||||
margin-top: 90px;
|
||||
}
|
||||
.header {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
margin-left: -480px;
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid #ddd;
|
||||
padding-top: 10px;
|
||||
z-index: 10;
|
||||
}
|
||||
.footer {
|
||||
color: #ddd;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.footer a {
|
||||
color: #ccc;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.the-icons {
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
}
|
||||
.switch {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 10px;
|
||||
color: #666;
|
||||
}
|
||||
.switch input {
|
||||
margin-right: 0.3em;
|
||||
}
|
||||
.codesOn .i-name {
|
||||
display: none;
|
||||
}
|
||||
.codesOn .i-code {
|
||||
display: inline;
|
||||
}
|
||||
.i-code {
|
||||
display: none;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('./font/fontello.eot?6746318');
|
||||
src: url('./font/fontello.eot?6746318#iefix') format('embedded-opentype'),
|
||||
url('./font/fontello.woff?6746318') format('woff'),
|
||||
url('./font/fontello.ttf?6746318') format('truetype'),
|
||||
url('./font/fontello.svg?6746318#fontello') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
||||
.demo-icon
|
||||
{
|
||||
font-family: "fontello";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
speak: none;
|
||||
|
||||
display: inline-block;
|
||||
text-decoration: inherit;
|
||||
width: 1em;
|
||||
margin-right: .2em;
|
||||
text-align: center;
|
||||
/* opacity: .8; */
|
||||
|
||||
/* For safety - reset parent styles, that can break glyph codes*/
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
|
||||
/* fix buttons height, for twitter bootstrap */
|
||||
line-height: 1em;
|
||||
|
||||
/* Animation center compensation - margins should be symmetric */
|
||||
/* remove if not needed */
|
||||
margin-left: .2em;
|
||||
|
||||
/* You can be more comfortable with increased icons size */
|
||||
/* font-size: 120%; */
|
||||
|
||||
/* Font smoothing. That was taken from TWBS */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
/* Uncomment for 3D effect */
|
||||
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="css/animation.css"><!--[if IE 7]><link rel="stylesheet" href="css/fontello-ie7.css"><![endif]-->
|
||||
<script>
|
||||
function toggleCodes(on) {
|
||||
var obj = document.getElementById('icons');
|
||||
|
||||
if (on) {
|
||||
obj.className += ' codesOn';
|
||||
} else {
|
||||
obj.className = obj.className.replace(' codesOn', '');
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container header">
|
||||
<h1>
|
||||
fontello
|
||||
<small>font demo</small>
|
||||
</h1>
|
||||
<label class="switch">
|
||||
<input type="checkbox" onclick="toggleCodes(this.checked)">show codes
|
||||
</label>
|
||||
</div>
|
||||
<div id="icons" class="container">
|
||||
<div class="row">
|
||||
<div title="Code: 0x2605" class="the-icons span3"><i class="demo-icon icon-star">★</i> <span class="i-name">icon-star</span><span class="i-code">0x2605</span></div>
|
||||
<div title="Code: 0x2606" class="the-icons span3"><i class="demo-icon icon-star-empty">☆</i> <span class="i-name">icon-star-empty</span><span class="i-code">0x2606</span></div>
|
||||
<div title="Code: 0x2699" class="the-icons span3"><i class="demo-icon icon-cog">⚙</i> <span class="i-name">icon-cog</span><span class="i-code">0x2699</span></div>
|
||||
<div title="Code: 0x26ef" class="the-icons span3"><i class="demo-icon icon-cog-alt">⛯</i> <span class="i-name">icon-cog-alt</span><span class="i-code">0x26ef</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0x2709" class="the-icons span3"><i class="demo-icon icon-mail">✉</i> <span class="i-name">icon-mail</span><span class="i-code">0x2709</span></div>
|
||||
<div title="Code: 0x270e" class="the-icons span3"><i class="demo-icon icon-pencil">✎</i> <span class="i-name">icon-pencil</span><span class="i-code">0x270e</span></div>
|
||||
<div title="Code: 0x2795" class="the-icons span3"><i class="demo-icon icon-plus-circled">➕</i> <span class="i-name">icon-plus-circled</span><span class="i-code">0x2795</span></div>
|
||||
<div title="Code: 0xe0ad" class="the-icons span3"><i class="demo-icon icon-asl"></i> <span class="i-name">icon-asl</span><span class="i-code">0xe0ad</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe70a" class="the-icons span3"><i class="demo-icon icon-eye"></i> <span class="i-name">icon-eye</span><span class="i-code">0xe70a</span></div>
|
||||
<div title="Code: 0xe70d" class="the-icons span3"><i class="demo-icon icon-tags"></i> <span class="i-name">icon-tags</span><span class="i-code">0xe70d</span></div>
|
||||
<div title="Code: 0xe720" class="the-icons span3"><i class="demo-icon icon-chat"></i> <span class="i-name">icon-chat</span><span class="i-code">0xe720</span></div>
|
||||
<div title="Code: 0xe729" class="the-icons span3"><i class="demo-icon icon-trash"></i> <span class="i-name">icon-trash</span><span class="i-code">0xe729</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe73d" class="the-icons span3"><i class="demo-icon icon-basket"></i> <span class="i-name">icon-basket</span><span class="i-code">0xe73d</span></div>
|
||||
<div title="Code: 0xe7b6" class="the-icons span3"><i class="demo-icon icon-puzzle"></i> <span class="i-name">icon-puzzle</span><span class="i-code">0xe7b6</span></div>
|
||||
<div title="Code: 0xe800" class="the-icons span3"><i class="demo-icon icon-language"></i> <span class="i-name">icon-language</span><span class="i-code">0xe800</span></div>
|
||||
<div title="Code: 0xe801" class="the-icons span3"><i class="demo-icon icon-signal"></i> <span class="i-name">icon-signal</span><span class="i-code">0xe801</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe802" class="the-icons span3"><i class="demo-icon icon-users"></i> <span class="i-name">icon-users</span><span class="i-code">0xe802</span></div>
|
||||
<div title="Code: 0xe803" class="the-icons span3"><i class="demo-icon icon-tools"></i> <span class="i-name">icon-tools</span><span class="i-code">0xe803</span></div>
|
||||
<div title="Code: 0xe804" class="the-icons span3"><i class="demo-icon icon-arrows-cw"></i> <span class="i-name">icon-arrows-cw</span><span class="i-code">0xe804</span></div>
|
||||
<div title="Code: 0xe805" class="the-icons span3"><i class="demo-icon icon-exchange"></i> <span class="i-name">icon-exchange</span><span class="i-code">0xe805</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe806" class="the-icons span3"><i class="demo-icon icon-folder-open"></i> <span class="i-name">icon-folder-open</span><span class="i-code">0xe806</span></div>
|
||||
<div title="Code: 0xe807" class="the-icons span3"><i class="demo-icon icon-brush"></i> <span class="i-name">icon-brush</span><span class="i-code">0xe807</span></div>
|
||||
<div title="Code: 0xe808" class="the-icons span3"><i class="demo-icon icon-flow-branch"></i> <span class="i-name">icon-flow-branch</span><span class="i-code">0xe808</span></div>
|
||||
<div title="Code: 0xe809" class="the-icons span3"><i class="demo-icon icon-menu"></i> <span class="i-name">icon-menu</span><span class="i-code">0xe809</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe80a" class="the-icons span3"><i class="demo-icon icon-code"></i> <span class="i-name">icon-code</span><span class="i-code">0xe80a</span></div>
|
||||
<div title="Code: 0xe80b" class="the-icons span3"><i class="demo-icon icon-user-add"></i> <span class="i-name">icon-user-add</span><span class="i-code">0xe80b</span></div>
|
||||
<div title="Code: 0xe80c" class="the-icons span3"><i class="demo-icon icon-cw"></i> <span class="i-name">icon-cw</span><span class="i-code">0xe80c</span></div>
|
||||
<div title="Code: 0xe80d" class="the-icons span3"><i class="demo-icon icon-group"></i> <span class="i-name">icon-group</span><span class="i-code">0xe80d</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe80e" class="the-icons span3"><i class="demo-icon icon-home"></i> <span class="i-name">icon-home</span><span class="i-code">0xe80e</span></div>
|
||||
<div title="Code: 0xe80f" class="the-icons span3"><i class="demo-icon icon-equalizer"></i> <span class="i-name">icon-equalizer</span><span class="i-code">0xe80f</span></div>
|
||||
<div title="Code: 0xe810" class="the-icons span3"><i class="demo-icon icon-mail-1"></i> <span class="i-name">icon-mail-1</span><span class="i-code">0xe810</span></div>
|
||||
<div title="Code: 0xe811" class="the-icons span3"><i class="demo-icon icon-search"></i> <span class="i-name">icon-search</span><span class="i-code">0xe811</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe812" class="the-icons span3"><i class="demo-icon icon-move"></i> <span class="i-name">icon-move</span><span class="i-code">0xe812</span></div>
|
||||
<div title="Code: 0xe813" class="the-icons span3"><i class="demo-icon icon-upload"></i> <span class="i-name">icon-upload</span><span class="i-code">0xe813</span></div>
|
||||
<div title="Code: 0xe814" class="the-icons span3"><i class="demo-icon icon-upload-cloud"></i> <span class="i-name">icon-upload-cloud</span><span class="i-code">0xe814</span></div>
|
||||
<div title="Code: 0xe815" class="the-icons span3"><i class="demo-icon icon-key"></i> <span class="i-name">icon-key</span><span class="i-code">0xe815</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe816" class="the-icons span3"><i class="demo-icon icon-network"></i> <span class="i-name">icon-network</span><span class="i-code">0xe816</span></div>
|
||||
<div title="Code: 0xe817" class="the-icons span3"><i class="demo-icon icon-info-circled-1"></i> <span class="i-name">icon-info-circled-1</span><span class="i-code">0xe817</span></div>
|
||||
<div title="Code: 0xe818" class="the-icons span3"><i class="demo-icon icon-calendar"></i> <span class="i-name">icon-calendar</span><span class="i-code">0xe818</span></div>
|
||||
<div title="Code: 0xe819" class="the-icons span3"><i class="demo-icon icon-ok"></i> <span class="i-name">icon-ok</span><span class="i-code">0xe819</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe81a" class="the-icons span3"><i class="demo-icon icon-help-circled"></i> <span class="i-name">icon-help-circled</span><span class="i-code">0xe81a</span></div>
|
||||
<div title="Code: 0xe81b" class="the-icons span3"><i class="demo-icon icon-logout"></i> <span class="i-name">icon-logout</span><span class="i-code">0xe81b</span></div>
|
||||
<div title="Code: 0xe81c" class="the-icons span3"><i class="demo-icon icon-flag"></i> <span class="i-name">icon-flag</span><span class="i-code">0xe81c</span></div>
|
||||
<div title="Code: 0xe81d" class="the-icons span3"><i class="demo-icon icon-spin6 animate-spin"></i> <span class="i-name">icon-spin6</span><span class="i-code">0xe81d</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe81e" class="the-icons span3"><i class="demo-icon icon-hourglass"></i> <span class="i-name">icon-hourglass</span><span class="i-code">0xe81e</span></div>
|
||||
<div title="Code: 0xe81f" class="the-icons span3"><i class="demo-icon icon-check"></i> <span class="i-name">icon-check</span><span class="i-code">0xe81f</span></div>
|
||||
<div title="Code: 0xe820" class="the-icons span3"><i class="demo-icon icon-check-empty"></i> <span class="i-name">icon-check-empty</span><span class="i-code">0xe820</span></div>
|
||||
<div title="Code: 0xe821" class="the-icons span3"><i class="demo-icon icon-cancel-circled"></i> <span class="i-name">icon-cancel-circled</span><span class="i-code">0xe821</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe822" class="the-icons span3"><i class="demo-icon icon-cancel"></i> <span class="i-name">icon-cancel</span><span class="i-code">0xe822</span></div>
|
||||
<div title="Code: 0xe823" class="the-icons span3"><i class="demo-icon icon-plus"></i> <span class="i-name">icon-plus</span><span class="i-code">0xe823</span></div>
|
||||
<div title="Code: 0xe824" class="the-icons span3"><i class="demo-icon icon-ok-circled"></i> <span class="i-name">icon-ok-circled</span><span class="i-code">0xe824</span></div>
|
||||
<div title="Code: 0xe825" class="the-icons span3"><i class="demo-icon icon-heart-broken"></i> <span class="i-name">icon-heart-broken</span><span class="i-code">0xe825</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe826" class="the-icons span3"><i class="demo-icon icon-download"></i> <span class="i-name">icon-download</span><span class="i-code">0xe826</span></div>
|
||||
<div title="Code: 0xe827" class="the-icons span3"><i class="demo-icon icon-zoom-in"></i> <span class="i-name">icon-zoom-in</span><span class="i-code">0xe827</span></div>
|
||||
<div title="Code: 0xe828" class="the-icons span3"><i class="demo-icon icon-zoom-out"></i> <span class="i-name">icon-zoom-out</span><span class="i-code">0xe828</span></div>
|
||||
<div title="Code: 0xe829" class="the-icons span3"><i class="demo-icon icon-attention"></i> <span class="i-name">icon-attention</span><span class="i-code">0xe829</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe82a" class="the-icons span3"><i class="demo-icon icon-back-in-time"></i> <span class="i-name">icon-back-in-time</span><span class="i-code">0xe82a</span></div>
|
||||
<div title="Code: 0xe82b" class="the-icons span3"><i class="demo-icon icon-ccw"></i> <span class="i-name">icon-ccw</span><span class="i-code">0xe82b</span></div>
|
||||
<div title="Code: 0xe82c" class="the-icons span3"><i class="demo-icon icon-eye-off"></i> <span class="i-name">icon-eye-off</span><span class="i-code">0xe82c</span></div>
|
||||
<div title="Code: 0xe82d" class="the-icons span3"><i class="demo-icon icon-user"></i> <span class="i-name">icon-user</span><span class="i-code">0xe82d</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe82e" class="the-icons span3"><i class="demo-icon icon-moon-inv"></i> <span class="i-name">icon-moon-inv</span><span class="i-code">0xe82e</span></div>
|
||||
<div title="Code: 0xe82f" class="the-icons span3"><i class="demo-icon icon-sun-inv"></i> <span class="i-name">icon-sun-inv</span><span class="i-code">0xe82f</span></div>
|
||||
<div title="Code: 0xe830" class="the-icons span3"><i class="demo-icon icon-book"></i> <span class="i-name">icon-book</span><span class="i-code">0xe830</span></div>
|
||||
<div title="Code: 0xe831" class="the-icons span3"><i class="demo-icon icon-chart-bar"></i> <span class="i-name">icon-chart-bar</span><span class="i-code">0xe831</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe832" class="the-icons span3"><i class="demo-icon icon-floppy"></i> <span class="i-name">icon-floppy</span><span class="i-code">0xe832</span></div>
|
||||
<div title="Code: 0xe833" class="the-icons span3"><i class="demo-icon icon-th"></i> <span class="i-name">icon-th</span><span class="i-code">0xe833</span></div>
|
||||
<div title="Code: 0xe834" class="the-icons span3"><i class="demo-icon icon-th-list"></i> <span class="i-name">icon-th-list</span><span class="i-code">0xe834</span></div>
|
||||
<div title="Code: 0xf0a0" class="the-icons span3"><i class="demo-icon icon-hdd"></i> <span class="i-name">icon-hdd</span><span class="i-code">0xf0a0</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xf0ae" class="the-icons span3"><i class="demo-icon icon-tasks"></i> <span class="i-name">icon-tasks</span><span class="i-code">0xf0ae</span></div>
|
||||
<div title="Code: 0xf0b0" class="the-icons span3"><i class="demo-icon icon-filter"></i> <span class="i-name">icon-filter</span><span class="i-code">0xf0b0</span></div>
|
||||
<div title="Code: 0xf0e0" class="the-icons span3"><i class="demo-icon icon-mail-alt"></i> <span class="i-name">icon-mail-alt</span><span class="i-code">0xf0e0</span></div>
|
||||
<div title="Code: 0xf0e8" class="the-icons span3"><i class="demo-icon icon-sitemap"></i> <span class="i-name">icon-sitemap</span><span class="i-code">0xf0e8</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xf10c" class="the-icons span3"><i class="demo-icon icon-circle-empty"></i> <span class="i-name">icon-circle-empty</span><span class="i-code">0xf10c</span></div>
|
||||
<div title="Code: 0xf125" class="the-icons span3"><i class="demo-icon icon-crop"></i> <span class="i-name">icon-crop</span><span class="i-code">0xf125</span></div>
|
||||
<div title="Code: 0xf162" class="the-icons span3"><i class="demo-icon icon-sort-number-up"></i> <span class="i-name">icon-sort-number-up</span><span class="i-code">0xf162</span></div>
|
||||
<div title="Code: 0xf178" class="the-icons span3"><i class="demo-icon icon-right"></i> <span class="i-name">icon-right</span><span class="i-code">0xf178</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xf192" class="the-icons span3"><i class="demo-icon icon-dot-circled"></i> <span class="i-name">icon-dot-circled</span><span class="i-code">0xf192</span></div>
|
||||
<div title="Code: 0xf1cd" class="the-icons span3"><i class="demo-icon icon-lifebuoy"></i> <span class="i-name">icon-lifebuoy</span><span class="i-code">0xf1cd</span></div>
|
||||
<div title="Code: 0xf26c" class="the-icons span3"><i class="demo-icon icon-television"></i> <span class="i-name">icon-television</span><span class="i-code">0xf26c</span></div>
|
||||
<div title="Code: 0x1f304" class="the-icons span3"><i class="demo-icon icon-picture">🌄</i> <span class="i-name">icon-picture</span><span class="i-code">0x1f304</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0x1f500" class="the-icons span3"><i class="demo-icon icon-shuffle">🔀</i> <span class="i-name">icon-shuffle</span><span class="i-code">0x1f500</span></div>
|
||||
<div title="Code: 0x1f512" class="the-icons span3"><i class="demo-icon icon-lock">🔒</i> <span class="i-name">icon-lock</span><span class="i-code">0x1f512</span></div>
|
||||
<div title="Code: 0x1f517" class="the-icons span3"><i class="demo-icon icon-link">🔗</i> <span class="i-name">icon-link</span><span class="i-code">0x1f517</span></div>
|
||||
<div title="Code: 0x1f527" class="the-icons span3"><i class="demo-icon icon-wrench">🔧</i> <span class="i-name">icon-wrench</span><span class="i-code">0x1f527</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0x1f554" class="the-icons span3"><i class="demo-icon icon-clock">🕔</i> <span class="i-name">icon-clock</span><span class="i-code">0x1f554</span></div>
|
||||
<div title="Code: 0x1f6ab" class="the-icons span3"><i class="demo-icon icon-block">🚫</i> <span class="i-name">icon-block</span><span class="i-code">0x1f6ab</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container footer">Generated by <a href="http://fontello.com">fontello.com</a></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,182 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Copyright (C) 2017 by original authors @ fontello.com</metadata>
|
||||
<defs>
|
||||
<font id="fontello" horiz-adv-x="1000" >
|
||||
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
||||
<missing-glyph horiz-adv-x="1000" />
|
||||
<glyph glyph-name="star" unicode="★" d="M929 489q0-12-15-27l-202-197 48-279q0-4 0-12 0-11-6-19t-17-9q-10 0-22 7l-251 132-250-132q-12-7-23-7-11 0-17 9t-6 19q0 4 1 12l48 279-203 197q-14 15-14 27 0 21 31 26l280 40 126 254q11 23 27 23t28-23l125-254 280-40q32-5 32-26z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="star-empty" unicode="☆" d="M635 290l170 166-235 34-106 213-105-213-236-34 171-166-41-235 211 111 211-111z m294 199q0-12-15-27l-202-197 48-279q0-4 0-12 0-28-23-28-10 0-22 7l-251 132-250-132q-12-7-23-7-11 0-17 9t-6 19q0 4 1 12l48 279-203 197q-14 15-14 27 0 21 31 26l280 40 126 254q11 23 27 23t28-23l125-254 280-40q32-5 32-26z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="cog" unicode="⚙" d="M571 350q0 59-41 101t-101 42-101-42-42-101 42-101 101-42 101 42 41 101z m286 61v-124q0-7-4-13t-11-7l-104-16q-10-30-21-51 19-27 59-77 6-6 6-13t-5-13q-15-21-55-61t-53-39q-7 0-14 5l-77 60q-25-13-51-21-9-76-16-104-4-16-20-16h-124q-8 0-14 5t-6 12l-16 103q-27 9-50 21l-79-60q-6-5-14-5-8 0-14 6-70 64-92 94-4 5-4 13 0 6 5 12 8 12 28 37t30 40q-15 28-23 55l-102 15q-7 1-11 7t-5 13v124q0 7 5 13t10 7l104 16q8 25 22 51-23 32-60 77-6 7-6 14 0 5 5 12 15 20 55 60t53 40q7 0 15-5l77-60q24 13 50 21 9 76 17 104 3 16 20 16h124q7 0 13-5t7-12l15-103q28-9 51-20l79 59q5 5 13 5 7 0 14-5 72-67 92-95 4-5 4-12 0-7-4-13-9-12-29-37t-30-40q15-28 23-54l102-16q7-1 12-7t4-13z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="cog-alt" unicode="⛯" d="M500 350q0 59-42 101t-101 42-101-42-42-101 42-101 101-42 101 42 42 101z m429-286q0 29-22 51t-50 21-50-21-21-51q0-29 21-50t50-21 51 21 21 50z m0 572q0 29-22 50t-50 21-50-21-21-50q0-30 21-51t50-21 51 21 21 51z m-215-235v-103q0-6-4-11t-8-6l-87-14q-6-19-18-42 19-27 50-64 4-6 4-11 0-7-4-11-12-17-46-50t-43-33q-7 0-12 4l-64 50q-21-11-43-17-6-60-13-87-4-13-17-13h-104q-6 0-11 4t-5 10l-13 85q-19 6-42 18l-66-50q-4-4-11-4-6 0-12 4-80 75-80 90 0 5 4 10 5 8 23 30t26 34q-13 24-20 46l-85 13q-5 1-9 5t-4 11v104q0 5 4 10t9 6l86 14q7 19 18 42-19 27-50 64-4 6-4 11 0 7 4 12 12 16 46 49t44 33q6 0 12-4l64-50q19 10 43 18 6 60 13 86 3 13 16 13h104q6 0 11-4t6-10l13-85q19-6 42-17l65 49q5 4 12 4 6 0 11-4 81-75 81-90 0-4-4-10-7-9-24-30t-25-34q13-27 19-46l85-12q6-2 9-6t4-11z m357-298v-78q0-9-83-17-6-15-16-29 28-63 28-77 0-2-2-4-68-40-69-40-5 0-26 27t-29 37q-11-1-17-1t-17 1q-7-11-29-37t-25-27q-1 0-69 40-3 2-3 4 0 14 29 77-10 14-17 29-83 8-83 17v78q0 9 83 18 7 16 17 29-29 63-29 77 0 2 3 4 2 1 19 11t33 19 17 9q4 0 25-26t29-38q12 1 17 1t17-1q28 40 51 63l4 1q2 0 69-39 2-2 2-4 0-14-28-77 9-13 16-29 83-9 83-18z m0 572v-78q0-9-83-18-6-15-16-29 28-63 28-77 0-2-2-4-68-39-69-39-5 0-26 26t-29 38q-11-1-17-1t-17 1q-7-12-29-38t-25-26q-1 0-69 39-3 2-3 4 0 14 29 77-10 14-17 29-83 9-83 18v78q0 9 83 17 7 16 17 29-29 63-29 77 0 2 3 4 2 1 19 11t33 19 17 9q4 0 25-26t29-37q12 1 17 1t17-1q28 39 51 62l4 1q2 0 69-39 2-2 2-4 0-14-28-77 9-13 16-29 83-8 83-17z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="mail" unicode="✉" d="M929 11v428q-18-20-39-36-149-115-238-189-28-24-46-37t-48-28-57-13h-2q-26 0-57 13t-48 28-46 37q-88 74-238 189-21 16-39 36v-428q0-7 6-13t12-5h822q7 0 12 5t6 13z m0 586v14t-1 7-1 7-3 5-5 4-8 2h-822q-7 0-12-6t-6-12q0-94 83-159 107-84 223-176 4-3 20-17t25-21 25-17 28-16 24-5h2q11 0 24 5t28 16 25 17 25 21 20 17q116 92 224 176 30 24 56 65t26 73z m71 21v-607q0-37-26-63t-63-27h-822q-36 0-63 27t-26 63v607q0 37 26 63t63 26h822q37 0 63-26t26-63z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="pencil" unicode="✎" d="M203-7l50 51-131 131-51-51v-60h72v-71h60z m291 518q0 12-12 12-5 0-9-4l-303-302q-4-4-4-10 0-12 13-12 5 0 9 4l303 302q3 4 3 10z m-30 107l232-232-464-465h-232v233z m381-54q0-29-20-50l-93-93-232 233 93 92q20 21 50 21 29 0 51-21l131-131q20-22 20-51z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="plus-circled" unicode="➕" d="M679 314v72q0 14-11 25t-25 10h-143v143q0 15-11 25t-25 11h-71q-15 0-25-11t-11-25v-143h-143q-14 0-25-10t-10-25v-72q0-14 10-25t25-10h143v-143q0-15 11-25t25-11h71q15 0 25 11t11 25v143h143q14 0 25 10t11 25z m178 36q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="asl" unicode="" d="M1 700q-4 37 15 53t45 5 35-38l53-184q-15-29-14-64 6-30 36-204 7-52 32-82t65-29q47 0 74 37 34-39 83-37t74 41q27-37 71-41t73 27q12 16 20 32t11 37 5 33 1 40l0 38q26-10 61 24 49 45 109 78t98 8q33-24 31-59t-35-55q-61-25-104-82t-67-112-58-117-78-93q-21-18-66-18l-350 0q-84 6-105 118z m181-234q-6 45 21 65t56 8 37-48l21-209q4-41-17-63t-46-15-37 45z m155 70q2 41 32 56t62-1 36-49l8-248q0-59-28-76t-57 5-30 61z m175 4q4 43 37 55t62-7 30-52l-6-254q-5-47-34-66t-54 1-29 67z" horiz-adv-x="979" />
|
||||
|
||||
<glyph glyph-name="eye" unicode="" d="M929 314q-85 132-213 197 34-58 34-125 0-103-73-177t-177-73-177 73-73 177q0 67 34 125-128-65-213-197 75-114 187-182t242-68 243 68 186 182z m-402 215q0 11-8 19t-19 7q-70 0-120-50t-50-119q0-11 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19z m473-215q0-19-11-38-78-129-210-206t-279-77-279 77-210 206q-11 19-11 38t11 39q78 128 210 205t279 78 279-78 210-205q11-20 11-39z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="tags" unicode="" d="M250 600q0 30-21 51t-50 20-51-20-21-51 21-50 51-21 50 21 21 50z m595-321q0-30-20-51l-274-274q-22-21-51-21-30 0-50 21l-399 399q-21 21-36 57t-15 65v232q0 29 21 50t50 22h233q29 0 65-15t57-36l399-399q20-21 20-50z m215 0q0-30-21-51l-274-274q-22-21-51-21-20 0-33 8t-29 25l262 262q21 21 21 51 0 29-21 50l-399 399q-21 21-57 36t-65 15h125q29 0 65-15t57-36l399-399q21-21 21-50z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="chat" unicode="" d="M786 421q0-77-53-143t-143-104-197-38q-48 0-98 9-70-49-155-72-21-5-48-9h-2q-6 0-12 5t-6 12q-1 1-1 3t1 4 1 3l1 3t2 3 2 3 3 3 2 2q3 3 13 14t15 16 12 17 14 21 11 25q-69 40-108 98t-40 125q0 78 53 144t143 104 197 38 197-38 143-104 53-144z m214-142q0-67-40-126t-108-98q5-14 11-25t14-21 13-16 14-17 13-14q0 0 2-2t3-3 2-3 2-3l1-3t1-3 1-4-1-3q-2-8-7-13t-12-4q-28 4-48 9-86 23-156 72-50-9-98-9-151 0-263 74 32-3 49-3 90 0 172 25t148 72q69 52 107 119t37 141q0 43-13 85 72-39 114-99t42-128z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="trash" unicode="" d="M286 439v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m143 0v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m142 0v-321q0-8-5-13t-12-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q7 0 12-5t5-13z m72-404v529h-500v-529q0-12 4-22t8-15 6-5h464q2 0 6 5t8 15 4 22z m-375 601h250l-27 65q-4 5-9 6h-177q-6-1-10-6z m518-18v-36q0-8-5-13t-13-5h-54v-529q0-46-26-80t-63-34h-464q-37 0-63 33t-27 79v531h-53q-8 0-13 5t-5 13v36q0 8 5 13t13 5h172l39 93q9 21 31 35t44 15h178q23 0 44-15t30-35l39-93h173q8 0 13-5t5-13z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="basket" unicode="" d="M357-7q0-29-21-50t-50-22-50 22-22 50 22 50 50 21 50-21 21-50z m500 0q0-29-21-50t-50-22-50 22-22 50 22 50 50 21 50-21 21-50z m72 607v-286q0-13-10-23t-22-12l-583-68q7-34 7-40 0-8-13-35h513q15 0 26-11t10-25-10-25-26-11h-571q-14 0-25 11t-11 25q0 6 5 18t9 20 12 22 8 17l-98 459h-114q-15 0-25 10t-11 25 11 26 25 10h143q9 0 16-3t10-9 8-14 4-14 3-17 3-14h670q14 0 25-11t11-25z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="puzzle" unicode="" d="M586 402q-37 0-64-34t-27-82 27-84 64-34q22 0 43 13 26 17 37 11t12-24l0-144q0-31-24-54t-55-23l-143 0q-16 0-23 9t2 31q21 25 21 51 0 38-34 64t-83 26-83-26-35-64q0-22 13-44 17-26 12-37t-25-10l-143 0q-33 0-55 23t-23 54l0 144q0 16 9 23t31-3q24-20 51-20 38 0 65 34t27 84-27 82-65 34q-21 0-42-13-26-17-38-12t-11 25l0 91q0 33 23 56t55 23l143 0q19 0 25 10t-11 37q-14 20-14 44 0 38 35 64t83 26 83-26 34-64q0-26-21-51-10-21-2-31t23-9l143 0q31 0 55-23t24-56l0-91q0-16-10-23t-30 3q-24 20-52 20z" horiz-adv-x="678" />
|
||||
|
||||
<glyph glyph-name="language" unicode="" d="M988 306q30-82-10-176t-134-160q-10 0-12 2t-16 19-16 19q-2 6 2 10 86 60 117 152t-11 148q-16-38-39-76t-59-80-86-65-106-15q-52 6-84 41t-32 93q0 84 60 148 50 50 114 66l-2 100q-140-24-146-24-6-2-10 4 0 2-5 29t-5 31q-2 2 1 4t7 2l156 28q0 110-2 114 0 8 8 8 46 0 52 2 10 0 10-8l0-104q158 22 164 22 8 4 10-6 0-2 4-23t4-25q4-10-4-12l-176-30 0-102 12 0q86 0 148-36t86-100z m-370-160q28-6 62 6l-4 214q-34-12-60-40-44-44-44-108 0-66 46-72z m122 28q28 24 58 68t45 79 7 41q-36 18-96 18-2 0-6-1t-6-1z m-448 382q10-28 53-165t83-261 40-126q0-4-4-4l-86 0q-6 0-6 4l-50 166-176 0q-48-164-50-166 0-4-6-4l-86 0q-4 0-4 4 10 18 176 552 2 8 10 8l96 0q10 0 10-8z m-130-316l144 0-72 264z" horiz-adv-x="1001" />
|
||||
|
||||
<glyph glyph-name="signal" unicode="" d="M143 46v-107q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13v107q0 8 5 13t13 5h107q8 0 13-5t5-13z m214 72v-179q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13v179q0 8 5 13t13 5h107q8 0 13-5t5-13z m214 143v-322q0-8-5-13t-12-5h-108q-7 0-12 5t-5 13v322q0 8 5 13t12 5h108q7 0 12-5t5-13z m215 214v-536q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13v536q0 8 5 13t13 5h107q8 0 13-5t5-13z m214 286v-822q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13v822q0 8 5 13t13 5h107q8 0 13-5t5-13z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="users" unicode="" d="M0 49q20 7 60 22t69 26 50 22q37 19 57 56t21 76q0 27-31 64-19 21-33 60-45 18-45 76 0 43 14 61-5 39-9 82-5 55 26 108t84 84 110 32q43 0 85-19t73-50 48-72 14-83q-4-55-8-82 14-19 14-61 0-58-45-76-15-41-32-60-32-37-32-64 0-39 20-76t58-56q29-15 92-38t113-43 66-38q18-17 28-47t10-51l1-21h-878v168z m705 299q0 34 12 50-5 32-7 67-4 45 21 89t69 72 90 27 89-27 69-72 22-89q-2-35-8-67 12-16 12-50 0-48-36-62-12-33-27-50-9-10-13-16t-9-16-4-20q0-32 17-62t47-46q17-9 42-19t60-22 50-19v-135h-254q0 4 0 11t-3 26-7 36-15 38-23 33q-23 25-53 44t-79 37q27 34 27 78 0 10-5 20t-8 16-12 16q-14 15-27 49-37 16-37 63z" horiz-adv-x="1201.2" />
|
||||
|
||||
<glyph glyph-name="tools" unicode="" d="M155 506q-8-8-11-22t-3-25-2-11q-2-2-17-15t-19-17q-16-14-28 4l-70 76q-11 12 2 24 2 2 18 14t20 16q6 6 27 6t37 14q14 14 18 38t10 30q2 0 9 7t26 22 41 31q134 90 186 96 122 0 148-2 12 0-8-8-120-52-152-76-80-56-36-114 34-46 38-48 8-8-2-14-2-2-38-35t-38-35q-14-8-18-4-42 48-71 60t-67-12z m286-26l410-476q18-22-2-38l-48-42q-22-14-38 4l-414 472q-8 8 0 20l72 62q12 8 20-2z m554 202q16-104-16-166-50-88-154-62-56 12-100-32l-82-78-68 78 68 70q24 24 31 53t6 65 5 58q12 56 140 112 12 6 18-3t2-15q-12-12-46-80-14-10-12-35t40-53q58-40 96 22 6 12 26 41t22 33q4 10 13 9t11-17z m-858-684l254 248 76-86-246-242q-20-20-38-4l-46 46q-22 18 0 38z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="arrows-cw" unicode="" d="M843 261q0-3 0-4-36-150-150-243t-267-93q-81 0-157 31t-136 88l-72-72q-11-11-25-11t-25 11-11 25v250q0 14 11 25t25 11h250q14 0 25-11t10-25-10-25l-77-77q40-36 90-57t105-20q74 0 139 37t104 99q6 10 30 66 4 13 16 13h107q8 0 13-6t5-12z m14 446v-250q0-14-10-25t-26-11h-250q-14 0-25 11t-10 25 10 25l77 77q-82 77-194 77-75 0-140-37t-104-99q-6-10-29-66-5-13-17-13h-111q-7 0-13 6t-5 12v4q36 150 151 243t268 93q81 0 158-31t137-88l72 72q11 11 25 11t26-11 10-25z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="exchange" unicode="" d="M1000 189v-107q0-7-5-12t-13-6h-768v-107q0-7-5-12t-13-6q-6 0-13 6l-178 178q-5 6-5 13 0 8 5 13l179 178q5 5 12 5 8 0 13-5t5-13v-107h768q7 0 13-5t5-13z m0 304q0-8-5-13l-179-178q-5-6-12-6-8 0-13 6t-5 12v107h-768q-7 0-13 6t-5 12v107q0 8 5 13t13 5h768v107q0 8 5 13t13 5q6 0 13-5l178-178q5-5 5-13z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="folder-open" unicode="" d="M1049 319q0-17-18-37l-187-221q-24-28-67-48t-81-20h-607q-19 0-33 7t-15 24q0 17 17 37l188 221q24 28 67 48t80 20h607q19 0 34-7t15-24z m-192 192v-90h-464q-53 0-110-26t-92-67l-188-221-2-3q0 2-1 7t0 7v536q0 51 37 88t88 37h179q51 0 88-37t37-88v-18h303q52 0 88-37t37-88z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="brush" unicode="" d="M118 170q38 34 85 29t87-45q42-40 48-87t-30-83q-86-84-228-102-84-12-80 14 0 4 6 10 52 60 64 145t48 119z m840 646q26-26-148-248t-292-338q-38-38-124-104-8-6-16 8-18 34-48 64-32 32-66 48-16 6-8 16 64 84 104 122 118 116 344 287t254 145z" horiz-adv-x="962" />
|
||||
|
||||
<glyph glyph-name="flow-branch" unicode="" d="M640 650q0-80-74-110-6-58-28-101t-61-69-68-38-75-26q-42-14-63-22t-47-24-38-40-16-60q70-30 70-110 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-204q40 30 138 60 58 18 84 29t51 41 29 76q-70 32-70 108 0 50 35 85t85 35 85-35 35-85z m-588 0q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m400 600q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="640" />
|
||||
|
||||
<glyph glyph-name="menu" unicode="" d="M857 100v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 25t25 11h785q15 0 26-11t10-25z m0 286v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25v72q0 14 11 25t25 10h785q15 0 26-10t10-25z m0 285v-71q0-14-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 26t25 10h785q15 0 26-10t10-26z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="code" unicode="" d="M344 69l-28-28q-5-5-12-5t-13 5l-260 261q-6 5-6 12t6 13l260 260q5 6 13 6t12-6l28-28q6-5 6-13t-6-12l-219-220 219-219q6-6 6-13t-6-13z m330 596l-208-721q-2-7-9-11t-13-1l-34 9q-8 3-11 9t-2 14l209 720q2 8 8 11t13 2l35-10q7-2 11-9t1-13z m367-363l-260-261q-6-5-13-5t-13 5l-28 28q-5 6-5 13t5 13l219 219-219 220q-5 5-5 12t5 13l28 28q6 6 13 6t13-6l260-260q5-5 5-13t-5-12z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="user-add" unicode="" d="M620 128q180-64 180-122l0-106-800 0 0 202q36 14 82 26 94 34 129 69t35 95q0 22-23 48t-31 74q-2 12-23 25t-25 61q0 16 5 26t9 12l4 4q-8 50-12 88-6 54 40 112t160 58 160-58 42-112l-14-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-10-46-33-73t-23-49q0-60 36-95t130-69z m230 272l150 0 0-100-150 0 0-150-100 0 0 150-150 0 0 100 150 0 0 150 100 0 0-150z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="cw" unicode="" d="M857 707v-250q0-14-10-25t-26-11h-250q-23 0-32 23-10 22 7 38l77 77q-82 77-194 77-58 0-111-23t-91-61-61-91-23-111 23-111 61-91 91-61 111-23q66 0 125 29t100 82q4 6 13 7 8 0 14-5l76-77q5-4 6-11t-5-13q-60-74-147-114t-182-41q-87 0-167 34t-136 92-92 137-34 166 34 166 92 137 136 92 167 34q82 0 158-31t137-88l72 72q17 18 39 8 22-9 22-33z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="group" unicode="" d="M0 106l0 134q0 26 18 32l171 80q-66 39-68 131 0 56 35 103 37 41 90 43 31 0 63-19-49-125 23-237-12-11-25-19l-114-55q-48-23-52-84l0-143-114 0q-25 0-27 34z m193-59l0 168q0 27 22 37l152 70 57 28q-37 23-60 66t-22 94q0 76 46 130t110 54 109-54 45-130q0-105-78-158l61-30 146-70q24-10 24-37l0-168q-2-37-37-41l-541 0q-14 2-24 14t-10 27z m473 330q68 106 22 231 31 19 66 21 49 0 90-43 35-41 35-103 0-82-65-131l168-80q18-10 18-32l0-134q0-32-27-34l-118 0 0 143q0 57-50 84l-110 53q-15 8-29 25z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="home" unicode="" d="M888 336q16-16 11-27t-27-11l-84 0 0-310q0-14-1-21t-8-13-23-6l-204 0 0 310-204 0 0-310-194 0q-28 0-35 10t-7 30l0 310-84 0q-22 0-27 11t11 27l400 402q16 16 38 16t38-16z" horiz-adv-x="900" />
|
||||
|
||||
<glyph glyph-name="equalizer" unicode="" d="M576 239l0-112-55 0 0-167q0-23-17-40t-39-17-39 17-17 40l0 167-56 0 0 112 56 0 0 503q0 24 17 39t38 16q24 0 41-16t16-39l0-503 55 0z m335 335l0-112-55 0 0-502q0-23-16-40t-41-17q-23 0-39 17t-16 40l0 502-56 0 0 112 56 0 0 168q0 24 16 39t39 16 41-16 16-39l0-168 55 0z m-670-112l0-111-55 0 0-391q0-23-16-40t-40-17q-23 0-39 17t-17 40l0 391-56 0 0 111 56 0 0 280q0 24 16 39t40 16 40-16 16-39l0-280 55 0z" horiz-adv-x="928" />
|
||||
|
||||
<glyph glyph-name="mail-1" unicode="" d="M467 366l-449 210 0 109 893 0 0-109z m0-123l444 210 0-437-893 0 0 438z" horiz-adv-x="928" />
|
||||
|
||||
<glyph glyph-name="search" unicode="" d="M772 78q30-34 6-62l-46-46q-36-32-68 0l-190 190q-74-42-156-42-128 0-223 95t-95 223 90 219 218 91 224-95 96-223q0-88-46-162z m-678 358q0-88 68-156t156-68 151 63 63 153q0 88-68 155t-156 67-151-63-63-151z" horiz-adv-x="789" />
|
||||
|
||||
<glyph glyph-name="move" unicode="" d="M1000 350q0-14-11-25l-142-143q-11-11-26-11t-25 11-10 25v72h-215v-215h72q14 0 25-10t11-25-11-25l-143-143q-10-11-25-11t-25 11l-143 143q-11 10-11 25t11 25 25 10h72v215h-215v-72q0-14-10-25t-25-11-25 11l-143 143q-11 11-11 25t11 25l143 143q10 11 25 11t25-11 10-25v-72h215v215h-72q-14 0-25 10t-11 25 11 26l143 142q11 11 25 11t25-11l143-142q11-11 11-26t-11-25-25-10h-72v-215h215v72q0 14 10 25t25 11 26-11l142-143q11-10 11-25z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="upload" unicode="" d="M500 776l260-244-164 0 0-256-190 0 0 256-166 0z m468-578q18-10 27-32t3-40l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-10 48 32 72l158 108 98 0-170-130 178 0q8 0 12-8l40-110 300 0 40 110q8 8 12 8l178 0-170 130 98 0z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="upload-cloud" unicode="" d="M760 494q100 0 170-68t70-166-70-166-170-68l-190 0 0 190 106 0-176 230-174-230 104 0 0-190-248 0q-74 0-128 52t-54 124q0 74 53 126t129 52q14 0 20-2-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="key" unicode="" d="M774 612q20-116-28-215t-150-117q-66-12-130-2l-118-194-70-12-104-166q-14-28-46-32l-76-14q-12-4-22 4t-12 22l-16 98q-8 30 12 56l258 386q-24 50-38 120-18 106 53 187t185 101q106 20 195-45t107-177z m-126-76q30 44 21 97t-51 83q-42 32-92 22t-80-54q-8-12-12-23t-1-20 5-16 13-17 18-15 22-16 23-17q6-4 22-16t23-16 19-12 19-8 17 1 18 8 16 19z" horiz-adv-x="780" />
|
||||
|
||||
<glyph glyph-name="network" unicode="" d="M224 504q-22 0-42-10-48 52-92 128 54 74 128 118 92-38 152-82-6-16-6-32 0-6 4-22-62-48-116-104-16 4-28 4z m-98-98q0-34 20-60-60-114-80-232-66 106-66 236 0 110 50 206 38-62 84-112-8-24-8-38z m336 318q-28 0-50-14-58 42-114 70 84 30 162 30 120 0 230-62-76-14-162-50-26 26-66 26z m146-460q-160 24-290 112 4 20 4 30 0 24-14 52 38 44 98 90 26-20 56-20 14 0 38 8 94-108 134-240-16-14-26-32z m128-132q38 14 54 60 58 4 108 18-46-146-166-232 6 48 6 98 0 10-1 28t-1 28z m-150 66q-190-96-304-272-90 36-158 110 12 144 80 274 6-2 20-2 30 0 52 14 142-98 310-124z m184 492q150-136 150-340 0-22-4-66-64-18-130-24-24 56-88 60-48 146-148 264 10 20 10 42l0 10q100 42 210 54z m-136-544q14-10 32-18 2-18 2-52 0-80-14-144-86-42-194-42-58 0-112 12 110 160 286 244z" horiz-adv-x="920" />
|
||||
|
||||
<glyph glyph-name="info-circled-1" unicode="" d="M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m52-152q-42 0-65-24t-23-50q-2-28 15-44t49-16q38 0 61 22t23 54q0 58-60 58z m-120-594q30 0 84 26t106 78l-18 24q-48-36-72-36-14 0-4 38l42 160q26 96-22 96-30 0-89-29t-115-75l16-26q52 34 74 34 12 0 0-34l-36-152q-26-104 34-104z" horiz-adv-x="920" />
|
||||
|
||||
<glyph glyph-name="calendar" unicode="" d="M71-79h161v161h-161v-161z m197 0h178v161h-178v-161z m-197 197h161v178h-161v-178z m197 0h178v178h-178v-178z m-197 214h161v161h-161v-161z m411-411h179v161h-179v-161z m-214 411h178v161h-178v-161z m428-411h161v161h-161v-161z m-214 197h179v178h-179v-178z m-196 482v161q0 7-6 12t-12 6h-36q-7 0-12-6t-6-12v-161q0-7 6-13t12-5h36q7 0 12 5t6 13z m410-482h161v178h-161v-178z m-214 214h179v161h-179v-161z m214 0h161v161h-161v-161z m18 268v161q0 7-5 12t-13 6h-35q-7 0-13-6t-5-12v-161q0-7 5-13t13-5h35q8 0 13 5t5 13z m215 36v-715q0-29-22-50t-50-21h-786q-29 0-50 21t-21 50v715q0 29 21 50t50 21h72v54q0 37 26 63t63 26h36q37 0 63-26t26-63v-54h214v54q0 37 27 63t63 26h35q37 0 64-26t26-63v-54h71q29 0 50-21t22-50z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="ok" unicode="" d="M933 534q0-22-16-38l-404-404-76-76q-16-15-38-15t-38 15l-76 76-202 202q-15 16-15 38t15 38l76 76q16 16 38 16t38-16l164-165 366 367q16 16 38 16t38-16l76-76q16-15 16-38z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="help-circled" unicode="" d="M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m-2-740q30 0 49 19t19 47q2 30-17 49t-49 19l-2 0q-28 0-47-18t-21-46q0-30 19-49t47-21l2 0z m166 328q26 34 26 78 0 78-54 116-52 38-134 38-64 0-104-26-68-42-72-146l0-4 110 0 0 4q0 26 16 54 16 24 54 24 40 0 52-20 16-20 16-44 0-18-16-40-8-12-20-20l-6-4q-6-4-16-11t-20-15-21-17-17-17q-14-20-18-78l0-8 108 0 0 4q0 12 4 28 6 20 28 36l28 18q46 34 56 50z" horiz-adv-x="920" />
|
||||
|
||||
<glyph glyph-name="logout" unicode="" d="M357 46q0-2 1-11t0-14-2-14-5-11-12-3h-178q-67 0-114 47t-47 114v392q0 67 47 114t114 47h178q8 0 13-5t5-13q0-2 1-11t0-15-2-13-5-11-12-3h-178q-37 0-63-26t-27-64v-392q0-37 27-63t63-27h174t6 0 7-2 4-3 4-5 1-8z m518 304q0-14-11-25l-303-304q-11-10-25-10t-25 10-11 25v161h-250q-14 0-25 11t-11 25v214q0 15 11 25t25 11h250v161q0 14 11 25t25 10 25-10l303-304q11-10 11-25z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="flag" unicode="" d="M874 616q14 6 22-1t0-19q-96-138-164-213t-110-90-73-2-60 37-63 40-93-4-139-86l90-352-100 0-184 720 92 34q90 66 152 86t98 3 64-51 62-71 79-62 129-20 198 51z" horiz-adv-x="900" />
|
||||
|
||||
<glyph glyph-name="spin6" unicode="" d="M855 9c-189-190-520-172-705 13-190 190-200 494-28 695 11 13 21 26 35 34 36 23 85 18 117-13 30-31 35-76 16-112-5-9-9-15-16-22-140-151-145-379-8-516 153-153 407-121 542 34 106 122 142 297 77 451-83 198-305 291-510 222l0 1c236 82 492-24 588-252 71-167 37-355-72-493-11-15-23-29-36-42z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="hourglass" unicode="" d="M560 622q0-44-48-96t-97-99-49-77 49-76 97-97 48-97l0-118q0-34-86-73t-194-39-194 39-86 73l0 118q0 46 48 97t97 97 49 76-49 77-97 99-48 96l0 118q0 32 87 71t193 39 193-39 87-71l0-118z m-482 112l-18-14q-4-8 4-14 92-52 216-52 132 0 220 50 14 10-16 30-96 54-202 54-120 0-204-54z m228-384q0 18 4 33t18 33 20 25 31 31 29 28q92 92 92 122l2 50q-100-54-222-54t-222 54l4-50q0-32 90-122 6-6 22-21t23-22l19-19t17-21 11-20 9-23 3-24q0-10-1-19t-6-18-8-16-11-17l-12-15t-15-16-16-15-18-16-17-16q-90-90-90-122l0-66q8 4 66 23t92 43 34 58q0 30 26 30t26-30q0-34 33-58t94-43 67-23l0 66q0 30-92 122-4 4-21 20t-22 21-18 19-18 22-12 20-9 23-2 23z" horiz-adv-x="560" />
|
||||
|
||||
<glyph glyph-name="check" unicode="" d="M786 331v-177q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h464q35 0 65-14 9-4 10-13 2-10-5-16l-27-28q-6-5-13-5-1 0-5 1-13 3-25 3h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v141q0 8 5 13l36 35q6 6 13 6 3 0 7-2 11-4 11-16z m129 273l-455-454q-13-14-31-14t-32 14l-240 240q-14 13-14 31t14 32l61 62q14 13 32 13t32-13l147-147 361 361q13 13 31 13t32-13l62-61q13-14 13-32t-13-32z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="check-empty" unicode="" d="M625 707h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v464q0 37-26 63t-63 26z m161-89v-464q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h464q66 0 114-48t47-113z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="cancel-circled" unicode="" d="M641 224q0 14-10 25l-101 101 101 101q10 11 10 25 0 15-10 26l-51 50q-10 11-25 11-15 0-25-11l-101-101-101 101q-11 11-25 11-16 0-26-11l-50-50q-11-11-11-26 0-14 11-25l101-101-101-101q-11-11-11-25 0-15 11-26l50-50q10-11 26-11 14 0 25 11l101 101 101-101q10-11 25-11 15 0 25 11l51 50q10 11 10 26z m216 126q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="cancel" unicode="" d="M724 112q0-22-15-38l-76-76q-16-15-38-15t-38 15l-164 165-164-165q-16-15-38-15t-38 15l-76 76q-16 16-16 38t16 38l164 164-164 164q-16 16-16 38t16 38l76 76q16 16 38 16t38-16l164-164 164 164q16 16 38 16t38-16l76-76q15-15 15-38t-15-38l-164-164 164-164q15-15 15-38z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="plus" unicode="" d="M786 439v-107q0-22-16-38t-38-15h-232v-233q0-22-16-37t-38-16h-107q-22 0-38 16t-15 37v233h-232q-23 0-38 15t-16 38v107q0 23 16 38t38 16h232v232q0 22 15 38t38 16h107q23 0 38-16t16-38v-232h232q23 0 38-16t16-38z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="ok-circled" unicode="" d="M717 440q0 16-10 26l-51 50q-11 11-25 11t-25-11l-228-227-126 126q-11 11-25 11t-25-11l-51-50q-10-10-10-26 0-15 10-25l202-202q10-10 25-10 15 0 26 10l303 303q10 10 10 25z m140-90q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="heart-broken" unicode="" d="M0 530q0 103 73 176t177 73q81 0 147-47l-14-250q0-12 9-20t21-9h10q12 0 18-8t3-20l-57-172q-4-12-2-13t9 8l194 267q7 9 4 16t-16 7h-77q-12 0-17 8t-1 18l82 183q57 32 124 32 103 0 177-73t73-176q0-94-63-166l-343-403q-25-31-62-31t-63 31l-342 403q-64 72-64 166z" horiz-adv-x="937.5" />
|
||||
|
||||
<glyph glyph-name="download" unicode="" d="M968 198q18-10 27-32t3-40l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-10 48 32 72l158 108 98 0-170-130 178 0q8 0 12-8l40-110 300 0 40 110q8 8 12 8l178 0-170 130 98 0z m-208 322l-260-244-260 244 166 0 0 256 190 0 0-256 164 0z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="zoom-in" unicode="" d="M571 404v-36q0-7-5-13t-12-5h-125v-125q0-7-6-13t-12-5h-36q-7 0-13 5t-5 13v125h-125q-7 0-12 5t-6 13v36q0 7 6 12t12 5h125v125q0 8 5 13t13 5h36q7 0 12-5t6-13v-125h125q7 0 12-5t5-12z m72-18q0 103-73 176t-177 74-177-74-73-176 73-177 177-73 177 73 73 177z m286-465q0-29-21-50t-51-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 84-84 125-31 153 31 152 84 126 125 84 153 31 153-31 125-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="zoom-out" unicode="" d="M571 404v-36q0-7-5-13t-12-5h-322q-7 0-12 5t-6 13v36q0 7 6 12t12 5h322q7 0 12-5t5-12z m72-18q0 103-73 176t-177 74-177-74-73-176 73-177 177-73 177 73 73 177z m286-465q0-29-21-50t-51-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 84-84 125-31 153 31 152 84 126 125 84 153 31 153-31 125-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="attention" unicode="" d="M571 83v106q0 8-5 13t-12 5h-108q-7 0-12-5t-5-13v-106q0-8 5-13t12-6h108q7 0 12 6t5 13z m-1 208l10 257q0 6-5 10-7 6-14 6h-122q-6 0-14-6-5-4-5-12l9-255q0-5 6-9t13-3h103q8 0 14 3t5 9z m-7 522l428-786q20-35-1-70-9-17-26-26t-35-10h-858q-18 0-35 10t-26 26q-21 35-1 70l429 786q9 17 26 27t36 10 36-10 27-27z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="back-in-time" unicode="" d="M532 760q170 0 289-120t119-290-119-290-289-120q-138 0-252 88l70 76q82-60 182-60 126 0 216 90t90 216q0 128-90 218t-216 90q-124 0-213-86t-93-210l142 0-184-206-184 206 124 0q4 166 123 282t285 116z m-36-190l70 0 0-204 130-130-50-50-150 150 0 234z" horiz-adv-x="940" />
|
||||
|
||||
<glyph glyph-name="ccw" unicode="" d="M857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="eye-off" unicode="" d="M310 105l43 79q-48 35-76 88t-27 114q0 67 34 125-128-65-213-197 94-144 239-209z m217 424q0 11-8 19t-19 7q-70 0-120-50t-50-119q0-11 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19z m202 106q0-4 0-5-59-105-176-316t-176-316l-28-50q-5-9-15-9-7 0-75 39-9 6-9 16 0 7 25 49-80 36-147 96t-117 137q-11 17-11 38t11 39q86 131 212 207t277 76q50 0 100-10l31 54q5 9 15 9 3 0 10-3t18-9 18-10 18-10 10-7q9-5 9-15z m21-249q0-78-44-142t-117-91l157 280q4-25 4-47z m250-72q0-19-11-38-22-36-61-81-84-96-194-149t-234-53l41 74q119 10 219 76t169 171q-65 100-158 164l35 63q53-36 102-85t81-103q11-19 11-39z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="user" unicode="" d="M736 128q204-72 204-122l0-106-940 0 0 106q0 50 204 122 94 34 128 69t34 95q0 22-22 49t-32 73q-2 12-9 18t-14 8-14 17-9 43q0 16 5 26t9 12l4 4q-8 50-12 88-4 54 41 112t157 58 158-58 40-112l-12-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-8-48-31-74t-23-48q0-60 35-95t127-69z" horiz-adv-x="940" />
|
||||
|
||||
<glyph glyph-name="moon-inv" unicode="" d="M706 178q105 0 205 56-42-145-162-238t-275-93q-188 0-322 134t-134 323q0 154 93 274t237 163q-56-100-56-205 0-172 122-293t292-121z" horiz-adv-x="928" />
|
||||
|
||||
<glyph glyph-name="sun-inv" unicode="" d="M465 574q92 0 158-66t65-158-65-158-158-65-158 65-66 158 66 158 158 66z m56 168q0-24-17-41t-39-16-39 16-17 41 17 39 38 16q24 0 41-16t16-39z m-391-112q0 55 56 55 55 0 55-55 0-56-55-56-56 0-56 56z m-56-223q23 0 40-16t16-40-16-40-40-16-40 16-16 40q0 24 16 40t40 16z m56-335q0 55 56 55 55 0 55-55 0-56-55-56-56 0-56 56z m279-112q0 22 17 39t38 17q24 0 41-17t16-39-17-40-39-17-39 17-17 40z m296 72q-16 16-16 39t16 39 39 17 40-17 15-39-15-39-40-15-39 15z m151 263q-24 0-40 16t-17 40q0 24 17 40t40 16 39-16 16-40-16-40-39-16z m-72 295q-16-16-40-16t-39 16-16 40 16 40 39 17 40-17 15-40-15-40z" horiz-adv-x="928" />
|
||||
|
||||
<glyph glyph-name="book" unicode="" d="M915 583q22-31 10-72l-154-505q-10-36-42-60t-69-25h-515q-43 0-83 30t-55 74q-14 37-1 71 0 2 1 15t3 20q0 5-2 12t-2 11q1 6 5 12t9 13 9 13q13 21 25 51t17 51q2 6 0 17t0 16q2 6 9 15t10 13q12 20 23 51t14 51q1 5-1 17t0 16q2 7 12 17t13 13q10 14 23 47t16 54q0 4-2 14t-1 15q1 4 5 10t10 13 10 11q4 7 9 17t8 20 9 20 11 18 15 13 20 6 26-3l0-1q21 5 28 5h425q41 0 64-32t10-72l-153-506q-20-66-40-85t-72-20h-485q-15 0-21-8-6-9-1-24 14-39 81-39h515q16 0 31 9t20 23l167 550q4 13 3 32 21-8 33-24z m-594-1q-2-7 1-12t11-6h339q8 0 15 6t9 12l12 36q2 7-1 12t-12 6h-339q-7 0-14-6t-9-12z m-46-143q-3-7 1-12t11-6h339q7 0 14 6t10 12l11 36q3 7-1 13t-11 5h-339q-7 0-14-5t-10-13z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="chart-bar" unicode="" d="M357 350v-286h-143v286h143z m214 286v-572h-142v572h142z m572-643v-72h-1143v858h71v-786h1072z m-357 500v-429h-143v429h143z m214 214v-643h-143v643h143z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="floppy" unicode="" d="M214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-7 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="th" unicode="" d="M286 154v-108q0-22-16-37t-38-16h-178q-23 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m0 285v-107q0-22-16-38t-38-15h-178q-23 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m357-285v-108q0-22-16-37t-38-16h-178q-23 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m-357 571v-107q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z m357-286v-107q0-22-16-38t-38-15h-178q-23 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m357-285v-108q0-22-16-37t-38-16h-178q-22 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m-357 571v-107q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z m357-286v-107q0-22-16-38t-38-15h-178q-22 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m0 286v-107q0-22-16-38t-38-16h-178q-22 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="th-list" unicode="" d="M286 154v-108q0-22-16-37t-38-16h-178q-23 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m0 285v-107q0-22-16-38t-38-15h-178q-23 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m714-285v-108q0-22-16-37t-38-16h-535q-23 0-38 16t-16 37v108q0 22 16 38t38 15h535q23 0 38-15t16-38z m-714 571v-107q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z m714-286v-107q0-22-16-38t-38-15h-535q-23 0-38 15t-16 38v107q0 23 16 38t38 16h535q23 0 38-16t16-38z m0 286v-107q0-22-16-38t-38-16h-535q-23 0-38 16t-16 38v107q0 22 16 38t38 16h535q23 0 38-16t16-38z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="hdd" unicode="" d="M580 171q0-18-13-31t-31-13-32 13-13 31 13 32 32 13 31-13 13-32z m143 0q0-18-13-31t-31-13-32 13-13 31 13 32 32 13 31-13 13-32z m63-89v179q0 7-6 12t-12 6h-679q-7 0-12-6t-6-12v-179q0-7 6-12t12-6h679q7 0 12 6t6 12z m-687 268h659l-88 269q-2 7-9 12t-14 5h-437q-7 0-14-5t-9-12z m758-89v-179q0-37-26-63t-63-26h-679q-36 0-63 26t-26 63v179q0 14 9 42l110 338q9 29 35 48t56 18h437q31 0 56-18t35-48l110-338q9-28 9-42z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="tasks" unicode="" d="M571 64h358v72h-358v-72z m-214 286h572v71h-572v-71z m357 286h215v71h-215v-71z m286-465v-142q0-15-11-25t-25-11h-928q-15 0-25 11t-11 25v142q0 15 11 26t25 10h928q15 0 25-10t11-26z m0 286v-143q0-14-11-25t-25-10h-928q-15 0-25 10t-11 25v143q0 15 11 25t25 11h928q15 0 25-11t11-25z m0 286v-143q0-14-11-25t-25-11h-928q-15 0-25 11t-11 25v143q0 14 11 25t25 11h928q15 0 25-11t11-25z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="filter" unicode="" d="M783 685q9-22-8-39l-275-275v-414q0-23-22-33-7-3-14-3-15 0-25 11l-143 143q-10 11-10 25v271l-275 275q-18 17-8 39 9 22 33 22h714q23 0 33-22z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="mail-alt" unicode="" d="M1000 454v-443q0-37-26-63t-63-27h-822q-36 0-63 27t-26 63v443q25-27 56-49 202-137 278-192 32-24 51-37t53-27 61-13h2q28 0 61 13t53 27 51 37q95 68 278 192 32 22 56 49z m0 164q0-44-27-84t-68-69q-210-146-262-181-5-4-23-17t-30-22-29-18-32-15-28-5h-2q-12 0-27 5t-32 15-30 18-30 22-23 17q-51 35-147 101t-114 80q-35 23-65 64t-31 77q0 43 23 72t66 29h822q36 0 63-26t26-63z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="sitemap" unicode="" d="M1000 154v-179q0-22-16-38t-38-16h-178q-22 0-38 16t-16 38v179q0 22 16 38t38 15h53v107h-285v-107h53q23 0 38-15t16-38v-179q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v179q0 22 16 38t38 15h53v107h-285v-107h53q23 0 38-15t16-38v-179q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v179q0 22 16 38t38 15h53v107q0 29 21 51t51 21h285v107h-53q-23 0-38 16t-16 37v179q0 22 16 38t38 16h178q23 0 38-16t16-38v-179q0-22-16-37t-38-16h-53v-107h285q29 0 51-21t21-51v-107h53q23 0 38-15t16-38z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="circle-empty" unicode="" d="M429 654q-83 0-153-41t-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152-41 152-110 111-152 41z m428-304q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="crop" unicode="" d="M311 136h332v332z m-25 25l332 332h-332v-332z m643-43v-107q0-8-5-13t-13-5h-125v-125q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13v125h-482q-8 0-13 5t-5 13v482h-125q-8 0-13 5t-5 13v107q0 8 5 13t13 5h125v125q0 8 5 13t13 5h107q8 0 13-5t5-13v-125h475l137 138q6 5 13 5t13-5q5-6 5-13t-5-13l-138-137v-475h125q8 0 13-5t5-13z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="sort-number-up" unicode="" d="M751 117q0 36-24 65t-58 30q-29 0-46-21t-17-52 20-53 58-22q28 0 48 15t19 38z m-340-71q0-6-6-13l-178-178q-5-5-13-5-6 0-12 5l-179 179q-8 9-4 19 4 11 17 11h107v768q0 8 5 13t13 5h107q8 0 13-5t5-13v-768h107q8 0 13-5t5-13z m418 39q0-35-7-68t-23-64-38-53-55-36-71-14q-35 0-60 9-14 4-24 8l22 63q9-4 17-6 21-7 42-7 47 0 75 33t37 81h-1q-11-13-34-21t-47-8q-59 0-97 40t-37 97q0 58 40 99t101 41q69 0 115-53t45-141z m-16 400v-64h-262v64h93v241q0 4 0 11t1 9v9h-2l-3-7q-5-7-15-17l-35-32-45 48 107 103h68v-365h93z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="right" unicode="" d="M964 352q0-8-5-14l-215-197q-8-8-19-4-11 5-11 17v125h-696q-8 0-13 5t-5 12v108q0 7 5 12t13 5h696v125q0 12 11 17t19-3l215-195q5-6 5-13z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="dot-circled" unicode="" d="M571 350q0-59-41-101t-101-42-101 42-42 101 42 101 101 42 101-42 41-101z m-142 304q-83 0-153-41t-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152-41 152-110 111-152 41z m428-304q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="lifebuoy" unicode="" d="M500 850q102 0 194-40t160-106 106-160 40-194-40-194-106-160-160-106-194-40-194 40-160 106-106 160-40 194 40 194 106 160 160 106 194 40z m0-71q-106 0-201-51l108-108q46 16 93 16t93-16l109 108q-96 51-202 51z m-378-630l108 108q-16 46-16 93t16 93l-108 109q-51-96-51-202t51-201z m378-228q106 0 202 51l-109 108q-46-16-93-16t-93 16l-108-108q95-51 201-51z m0 215q89 0 152 63t62 151-62 152-152 62-151-62-63-152 63-151 151-63z m270 121l108-108q51 95 51 201t-51 202l-108-109q16-46 16-93t-16-93z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="television" unicode="" d="M1000 154v535q0 8-5 13t-13 5h-893q-7 0-12-5t-6-13v-535q0-8 6-13t12-5h893q7 0 13 5t5 13z m71 535v-535q0-37-26-63t-63-27h-411v-71h197q8 0 13-5t5-13v-36q0-8-5-13t-13-5h-464q-8 0-13 5t-5 13v36q0 8 5 13t13 5h196v71h-411q-36 0-63 27t-26 63v535q0 37 26 63t63 27h893q37 0 63-27t26-63z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="picture" unicode="🌄" d="M357 529q0-45-31-76t-76-32-76 32-31 76 31 76 76 31 76-31 31-76z m572-215v-250h-786v107l178 179 90-89 285 285z m53 393h-893q-7 0-12-5t-6-13v-678q0-7 6-13t12-5h893q7 0 13 5t5 13v678q0 8-5 13t-13 5z m89-18v-678q0-37-26-63t-63-27h-893q-36 0-63 27t-26 63v678q0 37 26 63t63 27h893q37 0 63-27t26-63z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="shuffle" unicode="🔀" d="M372 582q-34-52-77-153-12 25-20 41t-23 35-28 32-36 19-45 8h-125q-8 0-13 5t-5 13v107q0 8 5 13t13 5h125q139 0 229-125z m628-446q0-8-5-13l-179-179q-5-5-12-5-8 0-13 6t-5 12v107q-18 0-48 0t-45-1-41 1-39 3-36 6-35 10-32 16-33 22-31 30-31 39q33 52 76 152 12-25 20-40t23-36 28-31 35-20 46-8h143v107q0 8 5 13t13 5q6 0 13-5l178-178q5-5 5-13z m0 500q0-8-5-13l-179-179q-5-5-12-5-8 0-13 6t-5 12v107h-143q-27 0-49-8t-38-25-29-34-25-44q-18-34-43-95-16-37-28-62t-30-59-36-55-41-47-50-38-60-23-71-10h-125q-8 0-13 5t-5 13v107q0 8 5 13t13 5h125q27 0 48 9t39 25 28 34 26 43q17 35 43 96 16 36 28 62t30 58 36 56 41 46 50 39 59 23 72 9h143v107q0 8 5 13t13 5q6 0 13-5l178-178q5-5 5-13z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="lock" unicode="🔒" d="M179 421h285v108q0 59-42 101t-101 41-101-41-41-101v-108z m464-53v-322q0-22-16-37t-38-16h-535q-23 0-38 16t-16 37v322q0 22 16 38t38 15h17v108q0 102 74 176t176 74 177-74 73-176v-108h18q23 0 38-15t16-38z" horiz-adv-x="642.9" />
|
||||
|
||||
<glyph glyph-name="link" unicode="🔗" d="M813 171q0 23-16 38l-116 116q-16 16-38 16-24 0-40-18 1-1 10-10t12-12 9-11 7-14 2-15q0-23-16-38t-38-16q-8 0-15 2t-14 7-11 9-12 12-10 10q-19-17-19-40 0-23 16-38l115-116q15-15 38-15 22 0 38 15l82 81q16 16 16 37z m-393 394q0 22-15 38l-115 115q-16 16-38 16-22 0-38-15l-82-82q-16-15-16-37 0-22 16-38l116-116q15-15 38-15 23 0 40 17-2 2-11 11t-12 12-8 10-7 14-2 16q0 22 15 38t38 15q9 0 16-2t14-7 11-8 12-12 10-11q18 17 18 41z m500-394q0-66-48-113l-82-81q-46-47-113-47-68 0-114 48l-115 115q-46 47-46 114 0 68 49 116l-49 49q-48-49-116-49-67 0-114 47l-116 116q-47 47-47 114t47 113l82 82q47 46 114 46 67 0 114-47l115-116q46-46 46-113 0-69-49-117l49-49q48 49 116 49 67 0 114-47l116-116q47-47 47-114z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="wrench" unicode="🔧" d="M214 29q0 14-10 25t-25 10-25-10-11-25 11-25 25-11 25 11 10 25z m360 234l-381-381q-21-20-50-20-29 0-51 20l-59 61q-21 20-21 50 0 29 21 51l380 380q22-55 64-97t97-64z m354 243q0-22-13-59-27-75-92-122t-144-46q-104 0-177 73t-73 177 73 176 177 74q32 0 67-10t60-26q9-6 9-15t-9-16l-163-94v-125l108-60q2 2 44 27t75 45 40 20q8 0 13-5t5-14z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="clock" unicode="🕔" d="M500 546v-250q0-7-5-12t-13-5h-178q-8 0-13 5t-5 12v36q0 8 5 13t13 5h125v196q0 8 5 13t12 5h36q8 0 13-5t5-13z m232-196q0 83-41 152t-110 111-152 41-153-41-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152z m125 0q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="block" unicode="🚫" d="M732 352q0 90-48 164l-421-420q76-50 166-50 62 0 118 25t96 65 65 97 24 119z m-557-167l421 421q-75 50-167 50-83 0-153-40t-110-111-41-153q0-91 50-167z m682 167q0-88-34-168t-91-137-137-92-166-34-167 34-137 92-91 137-34 168 34 167 91 137 137 91 167 34 166-34 137-91 91-137 34-167z" horiz-adv-x="857.1" />
|
||||
</font>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 39 KiB |
BIN
zoesch.de/galerie/admin/themes/default/icon/cat_move.png
Normal file
|
After Width: | Height: | Size: 581 B |
|
After Width: | Height: | Size: 962 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/category_delete.png
Normal file
|
After Width: | Height: | Size: 960 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/category_edit.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
BIN
zoesch.de/galerie/admin/themes/default/icon/category_jump-to.png
Normal file
|
After Width: | Height: | Size: 942 B |
|
After Width: | Height: | Size: 960 B |
|
After Width: | Height: | Size: 1.5 KiB |
BIN
zoesch.de/galerie/admin/themes/default/icon/check.png
Normal file
|
After Width: | Height: | Size: 510 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/delete.png
Normal file
|
After Width: | Height: | Size: 425 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/edit_s.png
Normal file
|
After Width: | Height: | Size: 817 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/errors.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
zoesch.de/galerie/admin/themes/default/icon/exit.png
Normal file
|
After Width: | Height: | Size: 816 B |
|
After Width: | Height: | Size: 90 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/help-min.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
zoesch.de/galerie/admin/themes/default/icon/help.png
Normal file
|
After Width: | Height: | Size: 774 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/home.png
Normal file
|
After Width: | Height: | Size: 726 B |
30
zoesch.de/galerie/admin/themes/default/icon/index.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | This program is free software; you can redistribute it and/or modify |
|
||||
// | it under the terms of the GNU General Public License as published by |
|
||||
// | the Free Software Foundation |
|
||||
// | |
|
||||
// | This program 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 GNU |
|
||||
// | General Public License for more details. |
|
||||
// | |
|
||||
// | You should have received a copy of the GNU General Public License |
|
||||
// | along with this program; if not, write to the Free Software |
|
||||
// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
|
||||
// | USA. |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
// Recursive call
|
||||
$url = '../';
|
||||
header( 'Request-URI: '.$url );
|
||||
header( 'Content-Location: '.$url );
|
||||
header( 'Location: '.$url );
|
||||
exit();
|
||||
?>
|
||||
BIN
zoesch.de/galerie/admin/themes/default/icon/infos.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
zoesch.de/galerie/admin/themes/default/icon/minus.gif
Normal file
|
After Width: | Height: | Size: 87 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/note.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
zoesch.de/galerie/admin/themes/default/icon/page_end.png
Normal file
|
After Width: | Height: | Size: 777 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/page_top.png
Normal file
|
After Width: | Height: | Size: 482 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/permissions.png
Normal file
|
After Width: | Height: | Size: 421 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/plus.gif
Normal file
|
After Width: | Height: | Size: 89 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/preferences.png
Normal file
|
After Width: | Height: | Size: 768 B |
|
After Width: | Height: | Size: 664 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/uncheck.png
Normal file
|
After Width: | Height: | Size: 303 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/validate_s.png
Normal file
|
After Width: | Height: | Size: 492 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/virt_category.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
zoesch.de/galerie/admin/themes/default/icon/warning.png
Normal file
|
After Width: | Height: | Size: 680 B |
BIN
zoesch.de/galerie/admin/themes/default/icon/warnings.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 11 KiB |
BIN
zoesch.de/galerie/admin/themes/default/images/ajax-loader.gif
Normal file
|
After Width: | Height: | Size: 673 B |
BIN
zoesch.de/galerie/admin/themes/default/images/logo.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
zoesch.de/galerie/admin/themes/default/images/pbar-ani.gif
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
@@ -0,0 +1,45 @@
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000px" height="245px">
|
||||
<g transform="scale(0.5 0.5) translate(1268 20)">
|
||||
<path fill="#FF7700" d="M0,70c0-11.046,8.955-20,20-20h305l10-35c1.719-7.458,7.541-13.282,15-15h245 c7.459,1.718,13.281,7.542,15,15l10,35h75c11.045,0,20,8.954,20,20v360c0,11.047-8.955,20-20,20H20c-11.045,0-20-8.953-20-20V70"/>
|
||||
<path fill="#4E4E4E" d="M382,24c0-2.762,2.238-5,5-5h170c2.762,0,5,2.238,5,5v52c0,2.762-2.238,5-5,5H387c-2.762,0-5-2.238-5-5V24"/>
|
||||
<path fill="#FFFFFF" d="M389.5,30c0-2.762,2.238-5,5-5h155c2.762,0,5,2.238,5,5v40c0,2.762-2.238,5-5,5h-155c-2.762,0-5-2.238-5-5 V30"/>
|
||||
<ellipse fill="#FFFFFF" cx="200" cy="250" rx="150" ry="150"/>
|
||||
<ellipse fill="#4E4E4E" cx="200" cy="250" rx="123" ry="123"/>
|
||||
<ellipse fill="#FFFFFF" cx="200" cy="250" rx="100" ry="100"/>
|
||||
<ellipse fill="#4E4E4E" cx="190" cy="260" rx="100" ry="100"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M105.52,61.22c0,13.176-3.99,23.498-11.97,30.971c-8.235,7.854-19.888,11.779-34.96,11.779H28.76V168H12.42 V19.8h49.02c14.185,0,25.27,4.181,33.25,12.54C101.91,39.94,105.52,49.567,105.52,61.22z M89.37,61.22 c0-7.6-2.345-13.994-7.03-19.189c-5.32-5.7-12.667-8.55-22.04-8.55H28.76v56.81h30.97c9.88,0,17.415-2.85,22.61-8.55 C87.025,76.548,89.37,69.708,89.37,61.22z"/>
|
||||
<path fill="#FFFFFF" d="M197.856,168h-39.52v-12.16h11.21V67.49h16.15v88.35h12.16V168z M187.786,39.94 c0,2.787-1.015,5.195-3.04,7.22c-2.027,2.027-4.435,3.04-7.22,3.04c-2.788,0-5.163-1.013-7.125-3.04 c-1.965-2.024-2.945-4.433-2.945-7.22c0-2.785,0.979-5.192,2.945-7.221c1.962-2.024,4.337-3.04,7.125-3.04 c2.912,0,5.35,0.983,7.315,2.945C186.803,34.59,187.786,37.027,187.786,39.94z"/>
|
||||
<path fill="#FFFFFF" d="M386.903,67.3L356.883,168h-15.58l-21.47-75.24h-0.76l-3.42,13.3L297.604,168h-15.391l-30.78-100.7h16.53 l21.66,81.32h0.57l2.85-12.54l18.811-68.78h15.199l21.66,81.32h0.57l2.85-12.54l18.811-68.78H386.903z"/>
|
||||
<path fill="#FFFFFF" d="M479.809,168h-39.521v-12.16h11.21V67.49h16.15v88.35h12.16V168z M469.738,39.94 c0,2.787-1.015,5.195-3.04,7.22c-2.027,2.027-4.436,3.04-7.22,3.04c-2.788,0-5.163-1.013-7.125-3.04 c-1.966-2.024-2.945-4.433-2.945-7.22c0-2.785,0.979-5.192,2.945-7.221c1.962-2.024,4.337-3.04,7.125-3.04 c2.912,0,5.35,0.983,7.315,2.945C468.756,34.59,469.738,37.027,469.738,39.94z"/>
|
||||
<path fill="#FFFFFF" d="M625.536,190.8c0,10.893-4.561,19.063-13.681,24.51c-7.728,4.561-17.925,6.841-30.59,6.841 c-12.795,0-23.056-2.28-30.78-6.841c-9.12-5.447-13.68-13.555-13.68-24.319c0-10.26,4.114-18.115,12.35-23.561 c-4.055-6.08-6.08-12.284-6.08-18.62c0-7.092,2.28-13.3,6.841-18.619c-6.716-6.965-10.07-15.771-10.07-26.41 c0-11.145,3.64-20.235,10.925-27.266c7.282-7.029,16.625-10.545,28.025-10.545c6.965,0,13.234,1.396,18.81,4.181 c2.024-4.813,4.181-8.36,6.46-10.641c4.181-4.432,10.133-7.282,17.86-8.55v14.06c-3.8,0-7.253,1.206-10.355,3.61 c-3.104,2.408-4.845,4.878-5.225,7.41c7.853,6.715,11.78,15.96,11.78,27.74c0,11.02-3.705,20.045-11.115,27.075 c-7.41,7.029-16.815,10.545-28.215,10.545c-6.588,0-12.605-1.265-18.05-3.801c-2.536,3.296-3.801,6.905-3.801,10.83 c0,5.448,1.772,9.945,5.32,13.49c5.952-1.52,12.285-2.28,19-2.28c12.665,0,22.862,2.28,30.59,6.841 C620.976,171.925,625.536,180.032,625.536,190.8z M610.905,190.8c0-12.54-9.88-18.81-29.64-18.81c-19.888,0-29.83,6.332-29.83,19 c0,12.54,9.942,18.81,29.83,18.81C601.025,209.8,610.905,203.465,610.905,190.8z M602.166,103.78c0-17.101-7.79-25.65-23.37-25.65 c-15.455,0-23.181,8.55-23.181,25.65c0,16.975,7.726,25.46,23.181,25.46C594.376,129.24,602.166,120.755,602.166,103.78z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M33.104,181.53l-9.454,16.717V210h-3.175v-11.753l-9.417-16.717h3.613l7.264,13.176h0.255l7.264-13.176 H33.104z"/>
|
||||
<path fill="#FFFFFF" d="M58.728,195.765c0,4.818-1.278,8.541-3.833,11.169c-2.19,2.239-4.891,3.358-8.103,3.358 c-3.237,0-5.95-1.119-8.14-3.358c-2.58-2.604-3.869-6.326-3.869-11.169c0-4.842,1.29-8.564,3.869-11.169 c2.19-2.238,4.903-3.357,8.14-3.357c3.212,0,5.913,1.119,8.103,3.357C57.45,187.2,58.728,190.923,58.728,195.765z M55.442,195.747 c0-3.28-0.693-5.989-2.081-8.127c-1.558-2.43-3.759-3.645-6.606-3.645s-5.049,1.215-6.606,3.645 c-1.387,2.138-2.081,4.847-2.081,8.127s0.693,5.989,2.081,8.127c1.557,2.454,3.759,3.681,6.606,3.681s5.049-1.227,6.606-3.681 C54.749,201.736,55.442,199.027,55.442,195.747z"/>
|
||||
<path fill="#FFFFFF" d="M85.189,199.926c0,3.626-1.071,6.352-3.212,8.176c-1.752,1.46-3.967,2.19-6.643,2.19 c-2.726,0-4.952-0.73-6.68-2.19c-2.117-1.8-3.175-4.525-3.175-8.176V181.53h3.139v18.359c0,2.773,0.718,4.817,2.154,6.132 c1.168,1.071,2.688,1.606,4.563,1.606c1.825,0,3.309-0.512,4.453-1.533c1.484-1.338,2.227-3.406,2.227-6.205V181.53h3.176V199.926z"/>
|
||||
<path fill="#FFFFFF" d="M111.761,210h-3.139l-6.606-12.665h-5.84V210H93v-28.47h9.563c2.604,0,4.66,0.754,6.168,2.263 c1.411,1.387,2.117,3.176,2.117,5.365c0,4.088-1.959,6.692-5.876,7.812L111.761,210z M107.637,189.268 c0-1.46-0.451-2.651-1.351-3.576c-0.998-1.022-2.409-1.533-4.234-1.533h-5.876v10.512h5.986 C105.812,194.67,107.637,192.869,107.637,189.268z"/>
|
||||
<path fill="#FFFFFF" d="M147.969,195.765c0,4.818-1.278,8.541-3.833,11.169c-2.19,2.239-4.891,3.358-8.103,3.358 c-3.237,0-5.95-1.119-8.14-3.358c-2.58-2.604-3.869-6.326-3.869-11.169c0-4.842,1.29-8.564,3.869-11.169 c2.19-2.238,4.903-3.357,8.14-3.357c3.212,0,5.913,1.119,8.103,3.357C146.691,187.2,147.969,190.923,147.969,195.765z M144.684,195.747c0-3.28-0.693-5.989-2.081-8.127c-1.558-2.43-3.759-3.645-6.606-3.645s-5.049,1.215-6.606,3.645 c-1.387,2.138-2.081,4.847-2.081,8.127s0.693,5.989,2.081,8.127c1.557,2.454,3.759,3.681,6.606,3.681s5.049-1.227,6.606-3.681 C143.99,201.736,144.684,199.027,144.684,195.747z"/>
|
||||
<path fill="#FFFFFF" d="M184.76,181.53L178.227,210h-3.504l-6.132-24.017h-0.219l-0.475,2.227L162.24,210h-3.541l-6.534-28.47 h3.029l5.475,24.309h0.219l0.365-2.044l5.658-22.265h3.103l6.059,24.309h0.219l0.365-2.044l5.11-22.265H184.76z"/>
|
||||
<path fill="#FFFFFF" d="M209.324,210h-4.015l-12.191-25.148h-0.292V210h-2.774v-28.47h4.453l11.826,24.71h0.256v-24.71h2.737V210z"/>
|
||||
<path fill="#FFFFFF" d="M243.487,189.487c0,2.53-0.767,4.514-2.299,5.949c-1.582,1.509-3.821,2.263-6.716,2.263h-5.73V210h-3.139 v-28.47h9.417c2.725,0,4.854,0.803,6.387,2.409C242.794,185.399,243.487,187.248,243.487,189.487z M240.385,189.487 c0-1.46-0.45-2.688-1.351-3.687c-1.022-1.096-2.433-1.643-4.234-1.643h-6.059v10.913h5.95c1.898,0,3.345-0.547,4.343-1.643 C239.935,192.432,240.385,191.117,240.385,189.487z"/>
|
||||
<path fill="#FFFFFF" d="M268.891,210h-3.139v-13.286h-12.885V210h-3.175v-28.47h3.175v12.446h12.885V181.53h3.139V210z"/>
|
||||
<path fill="#FFFFFF" d="M300.316,195.765c0,4.818-1.278,8.541-3.833,11.169c-2.19,2.239-4.891,3.358-8.103,3.358 c-3.237,0-5.95-1.119-8.14-3.358c-2.58-2.604-3.869-6.326-3.869-11.169c0-4.842,1.29-8.564,3.869-11.169 c2.19-2.238,4.903-3.357,8.14-3.357c3.212,0,5.913,1.119,8.103,3.357C299.039,187.2,300.316,190.923,300.316,195.765z M297.031,195.747c0-3.28-0.693-5.989-2.081-8.127c-1.558-2.43-3.759-3.645-6.606-3.645s-5.049,1.215-6.606,3.645 c-1.387,2.138-2.081,4.847-2.081,8.127s0.693,5.989,2.081,8.127c1.557,2.454,3.759,3.681,6.606,3.681s5.049-1.227,6.606-3.681 C296.338,201.736,297.031,199.027,297.031,195.747z"/>
|
||||
<path fill="#FFFFFF" d="M322.472,184.158h-8.322V210h-3.139v-25.842h-8.359v-2.628h19.82V184.158z"/>
|
||||
<path fill="#FFFFFF" d="M348.386,195.765c0,4.818-1.277,8.541-3.832,11.169c-2.19,2.239-4.891,3.358-8.104,3.358 c-3.236,0-5.949-1.119-8.139-3.358c-2.58-2.604-3.869-6.326-3.869-11.169c0-4.842,1.289-8.564,3.869-11.169 c2.189-2.238,4.902-3.357,8.139-3.357c3.213,0,5.913,1.119,8.104,3.357C347.108,187.2,348.386,190.923,348.386,195.765z M345.102,195.747c0-3.28-0.694-5.989-2.081-8.127c-1.558-2.43-3.76-3.645-6.606-3.645s-5.05,1.215-6.606,3.645 c-1.387,2.138-2.08,4.847-2.08,8.127s0.693,5.989,2.08,8.127c1.557,2.454,3.76,3.681,6.606,3.681s5.049-1.227,6.606-3.681 C344.407,201.736,345.102,199.027,345.102,195.747z"/>
|
||||
<path fill="#FFFFFF" d="M384.484,210h-2.336v-3.54c-0.56,0.948-1.46,1.788-2.701,2.518c-1.582,0.876-3.334,1.314-5.256,1.314 c-3.065,0-5.693-1.107-7.884-3.321c-2.579-2.652-3.869-6.352-3.869-11.097c0-4.939,1.326-8.723,3.979-11.351 c2.141-2.142,4.745-3.213,7.812-3.213c4.015,0,7.056,1.802,9.125,5.402l-2.629,1.314c-1.387-2.701-3.516-4.052-6.387-4.052 c-2.848,0-5.037,1.229-6.57,3.687c-1.339,2.166-2.008,4.903-2.008,8.212c0,3.285,0.73,6.023,2.19,8.213 c1.581,2.36,3.698,3.541,6.351,3.541c2.238,0,4.003-0.742,5.293-2.227c1.168-1.338,1.752-3.018,1.752-5.037v-2.409h-6.825v-2.628 h9.964V210z"/>
|
||||
<path fill="#FFFFFF" d="M412.589,210h-3.065l-3.14-8.979h-10.585L392.624,210h-3.03l10.038-28.616h2.92L412.589,210z M405.545,198.466l-4.344-13.286h-0.256l-0.475,1.716l-3.868,11.57H405.545z"/>
|
||||
<path fill="#FFFFFF" d="M433.941,210h-15.403l-0.036-28.47h3.176v25.842h12.264V210z"/>
|
||||
<path fill="#FFFFFF" d="M454.636,210h-15.403l-0.036-28.47h3.176v25.842h12.264V210z"/>
|
||||
<path fill="#FFFFFF" d="M476.608,210h-16.681l-0.036-28.47h16.097v2.628h-12.921v9.892h11.497v2.628h-11.497v10.694h13.541V210z"/>
|
||||
<path fill="#FFFFFF" d="M502.085,210h-3.139l-6.606-12.665h-5.84V210h-3.176v-28.47h9.563c2.603,0,4.659,0.754,6.168,2.263 c1.411,1.387,2.117,3.176,2.117,5.365c0,4.088-1.959,6.692-5.877,7.812L502.085,210z M497.961,189.268 c0-1.46-0.451-2.651-1.351-3.576c-0.998-1.022-2.409-1.533-4.234-1.533H486.5v10.512h5.985 C496.136,194.67,497.961,192.869,497.961,189.268z"/>
|
||||
<path fill="#FFFFFF" d="M526.066,181.53l-9.453,16.717V210h-3.176v-11.753l-9.417-16.717h3.613l7.264,13.176h0.256l7.263-13.176 H526.066z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M822.859,198.155c0,1.71-0.602,3.167-1.805,4.37c-1.203,1.202-2.629,1.805-4.275,1.805 c-1.709,0-3.167-0.603-4.369-1.805c-1.204-1.203-1.805-2.66-1.805-4.37c0-1.646,0.601-3.071,1.805-4.275 c1.202-1.202,2.66-1.805,4.369-1.805c1.646,0,3.072,0.603,4.275,1.805C822.258,195.084,822.859,196.509,822.859,198.155z"/>
|
||||
<path fill="#FFFFFF" d="M874.159,177.92c0,8.93-2.059,15.612-6.175,20.045c-3.548,3.864-8.298,5.795-14.25,5.795 c-6.207,0-11.053-1.995-14.535-5.984c-3.99-4.433-5.984-11.052-5.984-19.855c0-8.866,1.994-15.547,5.984-20.045 c3.547-3.99,8.391-5.985,14.535-5.985c5.952,0,10.702,1.964,14.25,5.891C872.101,162.277,874.159,168.99,874.159,177.92z M865.799,177.92c0-13.046-4.021-19.57-12.064-19.57c-8.107,0-12.16,6.524-12.16,19.57c0,12.92,4.053,19.38,12.16,19.38 C861.777,197.3,865.799,190.84,865.799,177.92z"/>
|
||||
<path fill="#FFFFFF" d="M917.099,154.55l-3.42,5.891c-2.218-1.076-4.37-1.615-6.46-1.615c-3.863,0-7.125,1.964-9.785,5.89v32.205 h7.125V203h-20.045v-6.08h4.846v-44.27h8.074v4.085c2.977-3.23,6.491-4.846,10.545-4.846 C911.271,151.89,914.311,152.777,917.099,154.55z"/>
|
||||
<path fill="#FFFFFF" d="M967.639,214.4c0,5.445-2.281,9.531-6.841,12.255c-3.864,2.279-8.962,3.42-15.295,3.42 c-6.397,0-11.528-1.141-15.39-3.42c-4.561-2.724-6.84-6.778-6.84-12.16c0-5.13,2.057-9.058,6.174-11.78 c-2.027-3.04-3.039-6.143-3.039-9.31c0-3.547,1.14-6.65,3.42-9.311c-3.357-3.482-5.035-7.885-5.035-13.205 c0-5.572,1.82-10.117,5.463-13.632c3.641-3.516,8.313-5.272,14.012-5.272c3.482,0,6.617,0.697,9.405,2.09 c1.013-2.406,2.091-4.181,3.229-5.32c2.091-2.216,5.066-3.641,8.931-4.274v7.029c-1.899,0-3.626,0.603-5.178,1.806 s-2.423,2.438-2.612,3.704c3.926,3.358,5.891,7.98,5.891,13.87c0,5.511-1.854,10.022-5.559,13.538 c-3.705,3.515-8.407,5.272-14.107,5.272c-3.293,0-6.303-0.633-9.024-1.9c-1.269,1.647-1.9,3.453-1.9,5.415 c0,2.724,0.886,4.973,2.66,6.745c2.976-0.76,6.143-1.14,9.5-1.14c6.333,0,11.431,1.14,15.295,3.42 C965.357,204.962,967.639,209.017,967.639,214.4z M960.322,214.4c0-6.271-4.939-9.405-14.819-9.405 c-9.944,0-14.915,3.166-14.915,9.5c0,6.27,4.971,9.405,14.915,9.405C955.383,223.9,960.322,220.732,960.322,214.4z M955.953,170.89 c0-8.55-3.895-12.824-11.686-12.824c-7.727,0-11.59,4.274-11.59,12.824c0,8.488,3.863,12.73,11.59,12.73 C952.059,183.62,955.953,179.378,955.953,170.89z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 12 KiB |
30
zoesch.de/galerie/admin/themes/default/index.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | This program is free software; you can redistribute it and/or modify |
|
||||
// | it under the terms of the GNU General Public License as published by |
|
||||
// | the Free Software Foundation |
|
||||
// | |
|
||||
// | This program 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 GNU |
|
||||
// | General Public License for more details. |
|
||||
// | |
|
||||
// | You should have received a copy of the GNU General Public License |
|
||||
// | along with this program; if not, write to the Free Software |
|
||||
// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
|
||||
// | USA. |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
// Recursive call
|
||||
$url = '../';
|
||||
header( 'Request-URI: '.$url );
|
||||
header( 'Content-Location: '.$url );
|
||||
header( 'Location: '.$url );
|
||||
exit();
|
||||
?>
|
||||
404
zoesch.de/galerie/admin/themes/default/js/LocalStorageCache.js
Normal file
@@ -0,0 +1,404 @@
|
||||
(function($, exports) {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Base LocalStorage cache
|
||||
*
|
||||
* @param options {object}
|
||||
* - key (required) identifier of the collection
|
||||
* - serverId (recommended) identifier of the Piwigo instance
|
||||
* - serverKey (required) state of collection server-side
|
||||
* - lifetime (optional) cache lifetime in seconds
|
||||
* - loader (required) function called to fetch data, takes a callback as first argument
|
||||
* which must be called with the loaded date
|
||||
*/
|
||||
var LocalStorageCache = function(options) {
|
||||
this._init(options);
|
||||
};
|
||||
|
||||
/*
|
||||
* Constructor (deported for easy inheritance)
|
||||
*/
|
||||
LocalStorageCache.prototype._init = function(options) {
|
||||
this.key = options.key + '_' + options.serverId;
|
||||
this.serverKey = options.serverKey;
|
||||
this.lifetime = options.lifetime ? options.lifetime*1000 : 3600*1000;
|
||||
this.loader = options.loader;
|
||||
|
||||
this.storage = window.localStorage;
|
||||
this.ready = !!this.storage;
|
||||
};
|
||||
|
||||
/*
|
||||
* Get the cache content
|
||||
* @param callback {function} called with the data as first parameter
|
||||
*/
|
||||
LocalStorageCache.prototype.get = function(callback) {
|
||||
var now = new Date().getTime(),
|
||||
that = this;
|
||||
|
||||
if (this.ready && this.storage[this.key] != undefined) {
|
||||
var cache = JSON.parse(this.storage[this.key]);
|
||||
|
||||
if (now - cache.timestamp <= this.lifetime && cache.key == this.serverKey) {
|
||||
callback(cache.data);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
this.loader(function(data) {
|
||||
that.set.call(that, data);
|
||||
callback(data);
|
||||
});
|
||||
};
|
||||
|
||||
/*
|
||||
* Manually set the cache content
|
||||
* @param data {mixed}
|
||||
*/
|
||||
LocalStorageCache.prototype.set = function(data) {
|
||||
if (this.ready) {
|
||||
this.storage[this.key] = JSON.stringify({
|
||||
timestamp: new Date().getTime(),
|
||||
key: this.serverKey,
|
||||
data: data
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* Manually clear the cache
|
||||
*/
|
||||
LocalStorageCache.prototype.clear = function() {
|
||||
if (this.ready) {
|
||||
this.storage.removeItem(this.key);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class containing common initialization code for selectize
|
||||
*/
|
||||
var AbstractSelectizer = function(){};
|
||||
AbstractSelectizer.prototype = new LocalStorageCache({});
|
||||
|
||||
/*
|
||||
* Load Selectize with cache content
|
||||
* @param $target {jQuery} may have some data attributes (create, default, value)
|
||||
* @param options {object}
|
||||
* - value (optional) list of preselected items (ids, or objects with "id" attribute")
|
||||
* - default (optional) default value which will be forced if the select is emptyed
|
||||
* - create (optional) allow item user creation
|
||||
* - filter (optional) function called for each select before applying the data
|
||||
* takes two parameters: cache data, options
|
||||
* must return new data
|
||||
*/
|
||||
AbstractSelectizer.prototype._selectize = function($target, globalOptions) {
|
||||
$target.data('cache', this);
|
||||
|
||||
this.get(function(data) {
|
||||
$target.each(function() {
|
||||
var filtered, value, defaultValue,
|
||||
options = $.extend({}, globalOptions);
|
||||
|
||||
// apply filter function
|
||||
if (options.filter != undefined) {
|
||||
filtered = options.filter.call(this, data, options);
|
||||
}
|
||||
else {
|
||||
filtered = data;
|
||||
}
|
||||
|
||||
this.selectize.settings.maxOptions = filtered.length + 100;
|
||||
|
||||
// active creation mode
|
||||
if (this.hasAttribute('data-create')) {
|
||||
options.create = true;
|
||||
}
|
||||
this.selectize.settings.create = !!options.create;
|
||||
|
||||
// load options
|
||||
this.selectize.load(function(callback) {
|
||||
if ($.isEmptyObject(this.options)) {
|
||||
callback(filtered);
|
||||
}
|
||||
});
|
||||
|
||||
// load items
|
||||
if ((value = $(this).data('value'))) {
|
||||
options.value = value;
|
||||
}
|
||||
if (options.value != undefined) {
|
||||
$.each(value, $.proxy(function(i, cat) {
|
||||
if ($.isNumeric(cat))
|
||||
this.selectize.addItem(cat);
|
||||
else
|
||||
this.selectize.addItem(cat.id);
|
||||
}, this));
|
||||
}
|
||||
|
||||
// set default
|
||||
if ((defaultValue = $(this).data('default'))) {
|
||||
options.default = defaultValue;
|
||||
}
|
||||
if (options.default == 'first') {
|
||||
options.default = filtered[0] ? filtered[0].id : undefined;
|
||||
}
|
||||
|
||||
if (options.default != undefined) {
|
||||
// add default item
|
||||
if (this.selectize.getValue() == '') {
|
||||
this.selectize.addItem(options.default);
|
||||
}
|
||||
|
||||
// if multiple: prevent item deletion
|
||||
if (this.multiple) {
|
||||
this.selectize.getItem(options.default).find('.remove').hide();
|
||||
|
||||
this.selectize.on('item_remove', function(id) {
|
||||
if (id == options.default) {
|
||||
this.addItem(id);
|
||||
this.getItem(id).find('.remove').hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
// if single: restore default on blur
|
||||
else {
|
||||
this.selectize.on('dropdown_close', function() {
|
||||
if (this.getValue() == '') {
|
||||
this.addItem(options.default);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// redefine Selectize templates without escape
|
||||
AbstractSelectizer.getRender = function(field_label, lang) {
|
||||
lang = lang || { 'Add': 'Add' };
|
||||
|
||||
return {
|
||||
'option': function(data, escape) {
|
||||
return '<div class="option">' + data[field_label] + '</div>';
|
||||
},
|
||||
'item': function(data, escape) {
|
||||
return '<div class="item">' + data[field_label] + '</div>';
|
||||
},
|
||||
'option_create': function(data, escape) {
|
||||
return '<div class="create">' + lang['Add'] + ' <strong>' + data.input + '</strong>…</div>';
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Special LocalStorage for admin categories list
|
||||
*
|
||||
* @param options {object}
|
||||
* - serverId (recommended) identifier of the Piwigo instance
|
||||
* - serverKey (required) state of collection server-side
|
||||
* - rootUrl (required) used for WS call
|
||||
*/
|
||||
var CategoriesCache = function(options) {
|
||||
options.key = 'categoriesAdminList';
|
||||
|
||||
options.loader = function(callback) {
|
||||
$.getJSON(options.rootUrl + 'ws.php?format=json&method=pwg.categories.getAdminList', function(data) {
|
||||
var cats = data.result.categories.map(function(c, i) {
|
||||
c.pos = i;
|
||||
delete c['comment'];
|
||||
delete c['uppercats'];
|
||||
return c;
|
||||
});
|
||||
|
||||
callback(cats);
|
||||
});
|
||||
};
|
||||
|
||||
this._init(options);
|
||||
};
|
||||
|
||||
CategoriesCache.prototype = new AbstractSelectizer();
|
||||
|
||||
/*
|
||||
* Init Selectize with cache content
|
||||
* @see AbstractSelectizer._selectize
|
||||
*/
|
||||
CategoriesCache.prototype.selectize = function($target, options) {
|
||||
options = options || {};
|
||||
|
||||
$target.selectize({
|
||||
valueField: 'id',
|
||||
labelField: 'fullname',
|
||||
sortField: 'pos',
|
||||
searchField: ['fullname'],
|
||||
plugins: ['remove_button'],
|
||||
render: AbstractSelectizer.getRender('fullname', options.lang)
|
||||
});
|
||||
|
||||
this._selectize($target, options);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Special LocalStorage for admin tags list
|
||||
*
|
||||
* @param options {object}
|
||||
* - serverId (recommended) identifier of the Piwigo instance
|
||||
* - serverKey (required) state of collection server-side
|
||||
* - rootUrl (required) used for WS call
|
||||
*/
|
||||
var TagsCache = function(options) {
|
||||
options.key = 'tagsAdminList';
|
||||
|
||||
options.loader = function(callback) {
|
||||
$.getJSON(options.rootUrl + 'ws.php?format=json&method=pwg.tags.getAdminList', function(data) {
|
||||
var tags = data.result.tags.map(function(t) {
|
||||
t.id = '~~' + t.id + '~~';
|
||||
delete t['url_name'];
|
||||
delete t['lastmodified'];
|
||||
return t;
|
||||
});
|
||||
|
||||
callback(tags);
|
||||
});
|
||||
};
|
||||
|
||||
this._init(options);
|
||||
};
|
||||
|
||||
TagsCache.prototype = new AbstractSelectizer();
|
||||
|
||||
/*
|
||||
* Init Selectize with cache content
|
||||
* @see AbstractSelectizer._selectize
|
||||
*/
|
||||
TagsCache.prototype.selectize = function($target, options) {
|
||||
options = options || {};
|
||||
|
||||
$target.selectize({
|
||||
valueField: 'id',
|
||||
labelField: 'name',
|
||||
sortField: 'name',
|
||||
searchField: ['name'],
|
||||
plugins: ['remove_button'],
|
||||
render: AbstractSelectizer.getRender('name', options.lang)
|
||||
});
|
||||
|
||||
this._selectize($target, options);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Special LocalStorage for admin groups list
|
||||
*
|
||||
* @param options {object}
|
||||
* - serverId (recommended) identifier of the Piwigo instance
|
||||
* - serverKey (required) state of collection server-side
|
||||
* - rootUrl (required) used for WS call
|
||||
*/
|
||||
var GroupsCache = function(options) {
|
||||
options.key = 'groupsAdminList';
|
||||
|
||||
options.loader = function(callback) {
|
||||
$.getJSON(options.rootUrl + 'ws.php?format=json&method=pwg.groups.getList&per_page=9999', function(data) {
|
||||
var groups = data.result.groups.map(function(g) {
|
||||
delete g['lastmodified'];
|
||||
return g;
|
||||
});
|
||||
|
||||
callback(groups);
|
||||
});
|
||||
};
|
||||
|
||||
this._init(options);
|
||||
};
|
||||
|
||||
GroupsCache.prototype = new AbstractSelectizer();
|
||||
|
||||
/*
|
||||
* Init Selectize with cache content
|
||||
* @see AbstractSelectizer._selectize
|
||||
*/
|
||||
GroupsCache.prototype.selectize = function($target, options) {
|
||||
options = options || {};
|
||||
|
||||
$target.selectize({
|
||||
valueField: 'id',
|
||||
labelField: 'name',
|
||||
sortField: 'name',
|
||||
searchField: ['name'],
|
||||
plugins: ['remove_button'],
|
||||
render: AbstractSelectizer.getRender('name', options.lang)
|
||||
});
|
||||
|
||||
this._selectize($target, options);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Special LocalStorage for admin users list
|
||||
*
|
||||
* @param options {object}
|
||||
* - serverId (recommended) identifier of the Piwigo instance
|
||||
* - serverKey (required) state of collection server-side
|
||||
* - rootUrl (required) used for WS call
|
||||
*/
|
||||
var UsersCache = function(options) {
|
||||
options.key = 'usersAdminList';
|
||||
|
||||
options.loader = function(callback) {
|
||||
var users = [];
|
||||
|
||||
// recursive loader
|
||||
(function load(page){
|
||||
jQuery.getJSON(options.rootUrl + 'ws.php?format=json&method=pwg.users.getList&display=username&per_page=9999&page='+ page, function(data) {
|
||||
users = users.concat(data.result.users);
|
||||
|
||||
if (data.result.paging.count == data.result.paging.per_page) {
|
||||
load(++page);
|
||||
}
|
||||
else {
|
||||
callback(users);
|
||||
}
|
||||
});
|
||||
}(0));
|
||||
};
|
||||
|
||||
this._init(options);
|
||||
};
|
||||
|
||||
UsersCache.prototype = new AbstractSelectizer();
|
||||
|
||||
/*
|
||||
* Init Selectize with cache content
|
||||
* @see AbstractSelectizer._selectize
|
||||
*/
|
||||
UsersCache.prototype.selectize = function($target, options) {
|
||||
options = options || {};
|
||||
|
||||
$target.selectize({
|
||||
valueField: 'id',
|
||||
labelField: 'username',
|
||||
sortField: 'username',
|
||||
searchField: ['username'],
|
||||
plugins: ['remove_button'],
|
||||
render: AbstractSelectizer.getRender('username', options.lang)
|
||||
});
|
||||
|
||||
this._selectize($target, options);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Expose classes in global scope
|
||||
*/
|
||||
exports.LocalStorageCache = LocalStorageCache;
|
||||
exports.CategoriesCache = CategoriesCache;
|
||||
exports.TagsCache = TagsCache;
|
||||
exports.GroupsCache = GroupsCache;
|
||||
exports.UsersCache = UsersCache;
|
||||
|
||||
}(jQuery, window));
|
||||
117
zoesch.de/galerie/admin/themes/default/js/addAlbum.js
Normal file
@@ -0,0 +1,117 @@
|
||||
jQuery.fn.pwgAddAlbum = function(options) {
|
||||
options = options || {};
|
||||
|
||||
var $popup = jQuery('#addAlbumForm'),
|
||||
$albumParent = $popup.find('[name="category_parent"]')
|
||||
$button = jQuery(this),
|
||||
$target = jQuery('[name="'+ $button.data('addAlbum') +'"]'),
|
||||
cache = $target.data('cache');
|
||||
|
||||
if (!$target[0].selectize) {
|
||||
jQuery.error('pwgAddAlbum: target must use selectize');
|
||||
}
|
||||
if (!cache) {
|
||||
jQuery.error('pwgAddAlbum: missing categories cache');
|
||||
}
|
||||
|
||||
function init() {
|
||||
$popup.data('init', true);
|
||||
|
||||
cache.selectize($albumParent, {
|
||||
'default': 0,
|
||||
'filter': function(categories) {
|
||||
categories.push({
|
||||
id: 0,
|
||||
fullname: '------------',
|
||||
global_rank: 0
|
||||
});
|
||||
|
||||
if (options.filter) {
|
||||
categories = options.filter.call(this, categories);
|
||||
}
|
||||
|
||||
return categories;
|
||||
}
|
||||
});
|
||||
|
||||
$popup.find('form').on('submit', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var parent_id = $albumParent.val(),
|
||||
name = $popup.find('[name=category_name]').val();
|
||||
|
||||
jQuery('#categoryNameError').toggle(!name);
|
||||
if (!name) {
|
||||
return;
|
||||
}
|
||||
|
||||
jQuery.ajax({
|
||||
url: 'ws.php?format=json',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
method: 'pwg.categories.add',
|
||||
parent: parent_id,
|
||||
name: name
|
||||
},
|
||||
beforeSend: function() {
|
||||
jQuery('#albumCreationLoading').show();
|
||||
},
|
||||
success: function(data) {
|
||||
jQuery('#albumCreationLoading').hide();
|
||||
$button.colorbox.close();
|
||||
|
||||
var newAlbum = {
|
||||
id: data.result.id,
|
||||
name: name,
|
||||
fullname: name,
|
||||
global_rank: '0',
|
||||
dir: null,
|
||||
nb_images: 0,
|
||||
pos: 0
|
||||
};
|
||||
|
||||
var parentSelectize = $albumParent[0].selectize;
|
||||
|
||||
if (parent_id != 0) {
|
||||
var parent = parentSelectize.options[parent_id];
|
||||
newAlbum.fullname = parent.fullname + ' / ' + newAlbum.fullname;
|
||||
newAlbum.global_rank = parent.global_rank + '.1';
|
||||
newAlbum.pos = parent.pos + 1;
|
||||
}
|
||||
|
||||
var targetSelectize = $target[0].selectize;
|
||||
targetSelectize.addOption(newAlbum);
|
||||
targetSelectize.setValue(newAlbum.id);
|
||||
|
||||
parentSelectize.addOption(newAlbum);
|
||||
|
||||
if (options.afterSelect) {
|
||||
options.afterSelect();
|
||||
}
|
||||
},
|
||||
error: function(XMLHttpRequest, textStatus, errorThrows) {
|
||||
jQuery('#albumCreationLoading').hide();
|
||||
alert(errorThrows);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
this.colorbox({
|
||||
inline: true,
|
||||
href: '#addAlbumForm',
|
||||
width: 650, height: 300,
|
||||
onComplete: function() {
|
||||
if (!$popup.data('init')) {
|
||||
init();
|
||||
}
|
||||
|
||||
jQuery('#categoryNameError').hide();
|
||||
$popup.find('[name=category_name]').val('').focus();
|
||||
$albumParent[0].selectize.setValue($target.val() || 0);
|
||||
}
|
||||
});
|
||||
|
||||
return this;
|
||||
};
|
||||
383
zoesch.de/galerie/admin/themes/default/js/batchManagerGlobal.js
Normal file
@@ -0,0 +1,383 @@
|
||||
|
||||
/* ********** Filters*/
|
||||
function filter_enable(filter) {
|
||||
/* show the filter*/
|
||||
$("#"+filter).show();
|
||||
|
||||
/* check the checkbox to declare we use this filter */
|
||||
$("input[type=checkbox][name="+filter+"_use]").prop("checked", true);
|
||||
|
||||
/* forbid to select this filter in the addFilter list */
|
||||
$("#addFilter").children("option[value="+filter+"]").attr("disabled", "disabled");
|
||||
}
|
||||
|
||||
function filter_disable(filter) {
|
||||
/* hide the filter line */
|
||||
$("#"+filter).hide();
|
||||
|
||||
/* uncheck the checkbox to declare we do not use this filter */
|
||||
$("input[name="+filter+"_use]").prop("checked", false);
|
||||
|
||||
/* give the possibility to show it again */
|
||||
$("#addFilter").children("option[value="+filter+"]").removeAttr("disabled");
|
||||
}
|
||||
|
||||
$(".removeFilter").addClass("icon-cancel-circled");
|
||||
|
||||
$(".removeFilter").click(function () {
|
||||
var filter = $(this).parent('li').attr("id");
|
||||
filter_disable(filter);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$("#addFilter").change(function () {
|
||||
var filter = $(this).prop("value");
|
||||
filter_enable(filter);
|
||||
$(this).prop("value", -1);
|
||||
});
|
||||
|
||||
$("#removeFilters").click(function() {
|
||||
$("#filterList li").each(function() {
|
||||
var filter = $(this).attr("id");
|
||||
filter_disable(filter);
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$('[data-slider=widths]').pwgDoubleSlider(sliders.widths);
|
||||
$('[data-slider=heights]').pwgDoubleSlider(sliders.heights);
|
||||
$('[data-slider=ratios]').pwgDoubleSlider(sliders.ratios);
|
||||
$('[data-slider=filesizes]').pwgDoubleSlider(sliders.filesizes);
|
||||
|
||||
|
||||
/* ********** Thumbs */
|
||||
|
||||
/* Shift-click: select all photos between the click and the shift+click */
|
||||
jQuery(document).ready(function() {
|
||||
var last_clicked=0,
|
||||
last_clickedstatus=true;
|
||||
jQuery.fn.enableShiftClick = function() {
|
||||
var inputs = [],
|
||||
count=0;
|
||||
this.find('input[type=checkbox]').each(function() {
|
||||
var pos=count;
|
||||
inputs[count++]=this;
|
||||
$(this).bind("shclick", function (dummy,event) {
|
||||
if (event.shiftKey) {
|
||||
var first = last_clicked;
|
||||
var last = pos;
|
||||
if (first > last) {
|
||||
first=pos;
|
||||
last=last_clicked;
|
||||
}
|
||||
|
||||
for (var i=first; i<=last;i++) {
|
||||
input = $(inputs[i]);
|
||||
$(input).prop('checked', last_clickedstatus).trigger("change");
|
||||
if (last_clickedstatus)
|
||||
{
|
||||
$(input).closest("li").addClass("thumbSelected");
|
||||
}
|
||||
else
|
||||
{
|
||||
$(input).closest("li").removeClass("thumbSelected");
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
last_clicked = pos;
|
||||
last_clickedstatus = this.checked;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
$(this).click(function(event) { $(this).triggerHandler("shclick",event)});
|
||||
});
|
||||
}
|
||||
$('ul.thumbnails').enableShiftClick();
|
||||
});
|
||||
|
||||
jQuery("a.preview-box").colorbox( {photo: true} );
|
||||
|
||||
jQuery('.thumbnails img').tipTip({
|
||||
'delay' : 0,
|
||||
'fadeIn' : 200,
|
||||
'fadeOut' : 200
|
||||
});
|
||||
|
||||
|
||||
/* ********** Actions*/
|
||||
|
||||
jQuery('[data-datepicker]').pwgDatepicker({
|
||||
showTimepicker: true,
|
||||
cancelButton: lang.Cancel
|
||||
});
|
||||
|
||||
jQuery('[data-add-album]').pwgAddAlbum();
|
||||
|
||||
$("input[name=remove_author]").click(function () {
|
||||
if ($(this).is(':checked')) {
|
||||
$("input[name=author]").hide();
|
||||
}
|
||||
else {
|
||||
$("input[name=author]").show();
|
||||
}
|
||||
});
|
||||
|
||||
$("input[name=remove_title]").click(function () {
|
||||
if ($(this).is(':checked')) {
|
||||
$("input[name=title]").hide();
|
||||
}
|
||||
else {
|
||||
$("input[name=title]").show();
|
||||
}
|
||||
});
|
||||
|
||||
$("input[name=remove_date_creation]").click(function () {
|
||||
if ($(this).is(':checked')) {
|
||||
$("#set_date_creation").hide();
|
||||
}
|
||||
else {
|
||||
$("#set_date_creation").show();
|
||||
}
|
||||
});
|
||||
|
||||
var derivatives = {
|
||||
elements: null,
|
||||
done: 0,
|
||||
total: 0,
|
||||
|
||||
finished: function() {
|
||||
return derivatives.done == derivatives.total && derivatives.elements && derivatives.elements.length==0;
|
||||
}
|
||||
};
|
||||
|
||||
function progress(success) {
|
||||
jQuery('#progressBar').progressBar(derivatives.done, {
|
||||
max: derivatives.total,
|
||||
textFormat: 'fraction',
|
||||
boxImage: 'themes/default/images/progressbar.gif',
|
||||
barImage: 'themes/default/images/progressbg_orange.gif'
|
||||
});
|
||||
if (success !== undefined) {
|
||||
var type = success ? 'regenerateSuccess': 'regenerateError',
|
||||
s = jQuery('[name="'+type+'"]').val();
|
||||
jQuery('[name="'+type+'"]').val(++s);
|
||||
}
|
||||
|
||||
if (derivatives.finished()) {
|
||||
jQuery('#applyAction').click();
|
||||
}
|
||||
}
|
||||
|
||||
function getDerivativeUrls() {
|
||||
var ids = derivatives.elements.splice(0, 500);
|
||||
var params = {max_urls: 100000, ids: ids, types: []};
|
||||
jQuery("#action_generate_derivatives input").each( function(i, t) {
|
||||
if ($(t).is(":checked"))
|
||||
params.types.push( t.value );
|
||||
} );
|
||||
|
||||
jQuery.ajax( {
|
||||
type: "POST",
|
||||
url: 'ws.php?format=json&method=pwg.getMissingDerivatives',
|
||||
data: params,
|
||||
dataType: "json",
|
||||
success: function(data) {
|
||||
if (!data.stat || data.stat != "ok") {
|
||||
return;
|
||||
}
|
||||
derivatives.total += data.result.urls.length;
|
||||
progress();
|
||||
for (var i=0; i < data.result.urls.length; i++) {
|
||||
jQuery.manageAjax.add("queued", {
|
||||
type: 'GET',
|
||||
url: data.result.urls[i] + "&ajaxload=true",
|
||||
dataType: 'json',
|
||||
success: ( function(data) { derivatives.done++; progress(true) }),
|
||||
error: ( function(data) { derivatives.done++; progress(false) })
|
||||
});
|
||||
}
|
||||
if (derivatives.elements.length)
|
||||
setTimeout( getDerivativeUrls, 25 * (derivatives.total-derivatives.done));
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
function selectGenerateDerivAll() {
|
||||
$("#action_generate_derivatives input[type=checkbox]").prop("checked", true);
|
||||
}
|
||||
function selectGenerateDerivNone() {
|
||||
$("#action_generate_derivatives input[type=checkbox]").prop("checked", false);
|
||||
}
|
||||
|
||||
function selectDelDerivAll() {
|
||||
$("#action_delete_derivatives input[type=checkbox]").prop("checked", true);
|
||||
}
|
||||
function selectDelDerivNone() {
|
||||
$("#action_delete_derivatives input[type=checkbox]").prop("checked", false);
|
||||
}
|
||||
|
||||
/* delete photos by blocks, with progress bar */
|
||||
jQuery('#applyAction').click(function(e) {
|
||||
if (typeof(elements) != "undefined") {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (jQuery('[name="selectAction"]').val() == 'delete') {
|
||||
if (!jQuery("#action_delete input[name=confirm_deletion]").is(':checked')) {
|
||||
jQuery("#action_delete span.errors").show();
|
||||
return false;
|
||||
}
|
||||
e.stopPropagation();
|
||||
}
|
||||
else {
|
||||
return true;
|
||||
}
|
||||
|
||||
jQuery('.bulkAction').hide();
|
||||
jQuery('#regenerationText').html(lang.deleteProgressMessage);
|
||||
var maxRequests=1;
|
||||
|
||||
var queuedManager = jQuery.manageAjax.create('queued', {
|
||||
queue: true,
|
||||
cacheResponse: false,
|
||||
maxRequests: maxRequests
|
||||
});
|
||||
|
||||
elements = Array();
|
||||
|
||||
if (jQuery('input[name=setSelected]').is(':checked')) {
|
||||
elements = all_elements;
|
||||
}
|
||||
else {
|
||||
jQuery('input[name="selection[]"]').filter(':checked').each(function() {
|
||||
elements.push(jQuery(this).val());
|
||||
});
|
||||
}
|
||||
|
||||
progressBar_max = elements.length;
|
||||
var todo = 0;
|
||||
var deleteBlockSize = Math.min(
|
||||
Number((elements.length/2).toFixed()),
|
||||
1000
|
||||
);
|
||||
var image_ids = Array();
|
||||
|
||||
jQuery('#applyActionBlock').hide();
|
||||
jQuery('select[name="selectAction"]').hide();
|
||||
jQuery('#regenerationMsg').show();
|
||||
jQuery('#progressBar').progressBar(0, {
|
||||
max: progressBar_max,
|
||||
textFormat: 'fraction',
|
||||
boxImage: 'themes/default/images/progressbar.gif',
|
||||
barImage: 'themes/default/images/progressbg_orange.gif'
|
||||
});
|
||||
|
||||
for (i=0;i<elements.length;i++) {
|
||||
image_ids.push(elements[i]);
|
||||
if (i % deleteBlockSize != deleteBlockSize - 1 && i != elements.length - 1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
(function(ids) {
|
||||
var thisBatchSize = ids.length;
|
||||
queuedManager.add({
|
||||
type: 'POST',
|
||||
url: 'ws.php?format=json',
|
||||
data: {
|
||||
method: "pwg.images.delete",
|
||||
pwg_token: jQuery("input[name=pwg_token]").val(),
|
||||
image_id: ids.join(',')
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function(data) {
|
||||
todo += thisBatchSize;
|
||||
var isOk = data.stat && "ok" == data.stat;
|
||||
if (isOk && data.result != thisBatchSize)
|
||||
/*TODO: user feedback only data.result images out of thisBatchSize were deleted*/;
|
||||
/*TODO: user feedback if isError*/
|
||||
progressDelete(todo, progressBar_max, isOk);
|
||||
},
|
||||
error: function(data) {
|
||||
todo += thisBatchSize;
|
||||
/*TODO: user feedback*/
|
||||
progressDelete(todo, progressBar_max, false);
|
||||
}
|
||||
});
|
||||
} )(image_ids);
|
||||
|
||||
image_ids = Array();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
function progressDelete(val, max, success) {
|
||||
jQuery('#progressBar').progressBar(val, {
|
||||
max: max,
|
||||
textFormat: 'fraction',
|
||||
boxImage: 'themes/default/images/progressbar.gif',
|
||||
barImage: 'themes/default/images/progressbg_orange.gif'
|
||||
});
|
||||
|
||||
if (val == max) {
|
||||
jQuery('#applyAction').click();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
jQuery("#action_delete input[name=confirm_deletion]").change(function() {
|
||||
jQuery("#action_delete span.errors").hide();
|
||||
});
|
||||
|
||||
|
||||
jQuery('#delete_orphans').click(function(e) {
|
||||
jQuery(this).hide();
|
||||
jQuery('#orphans_deletion').show();
|
||||
|
||||
var deleteBlockSize = Math.min(
|
||||
Number((jQuery('#orphans_to_delete').data('origin') / 2).toFixed()),
|
||||
1000
|
||||
);
|
||||
|
||||
delete_orphans_block(deleteBlockSize);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
function delete_orphans_block(blockSize) {
|
||||
jQuery.ajax({
|
||||
url: "ws.php?format=json&method=pwg.images.deleteOrphans",
|
||||
type:"POST",
|
||||
dataType: "json",
|
||||
data: {
|
||||
pwg_token: jQuery("input[name=pwg_token").val(),
|
||||
block_size: blockSize
|
||||
},
|
||||
success:function(data) {
|
||||
jQuery('#orphans_to_delete').html(data.result.nb_orphans);
|
||||
|
||||
var percent_remaining = Number(
|
||||
(data.result.nb_orphans * 100 / jQuery('#orphans_to_delete').data('origin')).toFixed()
|
||||
);
|
||||
var percent_done = 100 - percent_remaining;
|
||||
jQuery('#orphans_deleted').html(percent_done);
|
||||
|
||||
if (data.result.nb_orphans > 0) {
|
||||
delete_orphans_block();
|
||||
}
|
||||
else {
|
||||
// time to refresh the whole page
|
||||
var redirect_to = 'admin.php?page=batch_manager';
|
||||
redirect_to += '&action=delete_orphans';
|
||||
redirect_to += '&nb_orphans_deleted='+jQuery('#orphans_to_delete').data('origin');
|
||||
|
||||
document.location = redirect_to;
|
||||
}
|
||||
},
|
||||
error:function(XMLHttpRequest) {
|
||||
jQuery('#orphans_deletion').hide();
|
||||
jQuery('#orphans_deletion_error').show().html('error '+XMLHttpRequest.status+' : '+XMLHttpRequest.statusText);
|
||||
}
|
||||
});
|
||||
}
|
||||
123
zoesch.de/galerie/admin/themes/default/js/common.js
Normal file
@@ -0,0 +1,123 @@
|
||||
jQuery.fn.fontCheckbox = function() {
|
||||
/* checkbox */
|
||||
this.find('input[type=checkbox]').each(function() {
|
||||
if (!jQuery(this).is(':checked')) {
|
||||
jQuery(this).prev().toggleClass('icon-check icon-check-empty');
|
||||
}
|
||||
});
|
||||
this.find('input[type=checkbox]').on('change', function() {
|
||||
jQuery(this).prev().removeClass();
|
||||
if (!jQuery(this).is(':checked')) {
|
||||
jQuery(this).prev().addClass('icon-check-empty');
|
||||
}
|
||||
else {
|
||||
jQuery(this).prev().addClass('icon-check');
|
||||
}
|
||||
});
|
||||
|
||||
/* radio */
|
||||
this.find('input[type=radio]').each(function() {
|
||||
if (!jQuery(this).is(':checked')) {
|
||||
jQuery(this).prev().toggleClass('icon-dot-circled icon-circle-empty');
|
||||
}
|
||||
});
|
||||
this.find('input[type=radio]').on('change', function() {
|
||||
jQuery('.font-checkbox input[type=radio][name="'+ jQuery(this).attr('name') +'"]').each(function() {
|
||||
jQuery(this).prev().removeClass();
|
||||
if (!jQuery(this).is(':checked')) {
|
||||
jQuery(this).prev().addClass('icon-circle-empty');
|
||||
}
|
||||
else {
|
||||
jQuery(this).prev().addClass('icon-dot-circled');
|
||||
}
|
||||
})
|
||||
});
|
||||
};
|
||||
|
||||
// init fontChecbox everywhere
|
||||
jQuery('.font-checkbox').fontCheckbox();
|
||||
|
||||
function array_delete(arr, item) {
|
||||
var i = arr.indexOf(item);
|
||||
if (i != -1) arr.splice(i, 1);
|
||||
}
|
||||
|
||||
function str_repeat(i, m) {
|
||||
for (var o = []; m > 0; o[--m] = i);
|
||||
return o.join('');
|
||||
}
|
||||
|
||||
if (!Array.prototype.indexOf)
|
||||
{
|
||||
Array.prototype.indexOf = function(elt /*, from*/)
|
||||
{
|
||||
var len = this.length;
|
||||
|
||||
var from = Number(arguments[1]) || 0;
|
||||
from = (from < 0)
|
||||
? Math.ceil(from)
|
||||
: Math.floor(from);
|
||||
if (from < 0)
|
||||
from += len;
|
||||
|
||||
for (; from < len; from++)
|
||||
{
|
||||
if (from in this &&
|
||||
this[from] === elt)
|
||||
return from;
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
}
|
||||
|
||||
function getRandomInt(min, max) {
|
||||
min = Math.ceil(min);
|
||||
max = Math.floor(max);
|
||||
return Math.floor(Math.random() * (max - min)) + min;
|
||||
}
|
||||
|
||||
function sprintf() {
|
||||
var i = 0, a, f = arguments[i++], o = [], m, p, c, x, s = '';
|
||||
while (f) {
|
||||
if (m = /^[^\x25]+/.exec(f)) {
|
||||
o.push(m[0]);
|
||||
}
|
||||
else if (m = /^\x25{2}/.exec(f)) {
|
||||
o.push('%');
|
||||
}
|
||||
else if (m = /^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(f)) {
|
||||
if (((a = arguments[m[1] || i++]) == null) || (a == undefined)) {
|
||||
throw('Too few arguments.');
|
||||
}
|
||||
if (/[^s]/.test(m[7]) && (typeof(a) != 'number')) {
|
||||
throw('Expecting number but found ' + typeof(a));
|
||||
}
|
||||
|
||||
switch (m[7]) {
|
||||
case 'b': a = a.toString(2); break;
|
||||
case 'c': a = String.fromCharCode(a); break;
|
||||
case 'd': a = parseInt(a); break;
|
||||
case 'e': a = m[6] ? a.toExponential(m[6]) : a.toExponential(); break;
|
||||
case 'f': a = m[6] ? parseFloat(a).toFixed(m[6]) : parseFloat(a); break;
|
||||
case 'o': a = a.toString(8); break;
|
||||
case 's': a = ((a = String(a)) && m[6] ? a.substring(0, m[6]) : a); break;
|
||||
case 'u': a = Math.abs(a); break;
|
||||
case 'x': a = a.toString(16); break;
|
||||
case 'X': a = a.toString(16).toUpperCase(); break;
|
||||
}
|
||||
|
||||
a = (/[def]/.test(m[7]) && m[2] && a >= 0 ? '+'+ a : a);
|
||||
c = m[3] ? m[3] == '0' ? '0' : m[3].charAt(1) : ' ';
|
||||
x = m[5] - String(a).length - s.length;
|
||||
p = m[5] ? str_repeat(c, x) : '';
|
||||
o.push(s + (m[4] ? a + p : p + a));
|
||||
}
|
||||
else {
|
||||
throw('Huh ?!');
|
||||
}
|
||||
|
||||
f = f.substring(m[0].length);
|
||||
}
|
||||
|
||||
return o.join('');
|
||||
}
|
||||
184
zoesch.de/galerie/admin/themes/default/js/datepicker.js
Normal file
@@ -0,0 +1,184 @@
|
||||
(function($) {
|
||||
jQuery.timepicker.log = jQuery.noop; // that's ugly, but the timepicker is acting weird and throws parsing errors
|
||||
|
||||
|
||||
// modify DatePicker internal methods to replace year select by a numeric input
|
||||
var origGenerateMonthYearHeader = $.datepicker._generateMonthYearHeader,
|
||||
origSelectMonthYear = $.datepicker._selectMonthYear;
|
||||
|
||||
$.datepicker._generateMonthYearHeader = function(inst, drawMonth, drawYear, minDate, maxDate,
|
||||
secondary, monthNames, monthNamesShort) {
|
||||
|
||||
var html = origGenerateMonthYearHeader.call(this, inst, drawMonth, drawYear, minDate, maxDate,
|
||||
secondary, monthNames, monthNamesShort);
|
||||
|
||||
var yearshtml = "<input type='number' class='ui-datepicker-year' data-handler='selectYear' data-event='change keyup' value='"+drawYear+"' style='width:4em;margin-left:2px;'>";
|
||||
|
||||
return html.replace(new RegExp('<select class=\'ui-datepicker-year\'.*</select>', 'gm'), yearshtml);
|
||||
};
|
||||
|
||||
$.datepicker._selectMonthYear = debounce(function(id, select, period) {
|
||||
if (period === 'M') {
|
||||
origSelectMonthYear.call(this, id, select, period);
|
||||
}
|
||||
else {
|
||||
var target = $(id),
|
||||
inst = this._getInst(target[0]),
|
||||
val = parseInt(select.value, 10);
|
||||
|
||||
if (isNaN(val)) {
|
||||
inst['drawYear'] = '';
|
||||
}
|
||||
else {
|
||||
inst['selectedYear'] = inst['drawYear'] = val;
|
||||
|
||||
this._notifyChange(inst);
|
||||
this._adjustDate(target);
|
||||
|
||||
$('.ui-datepicker-year').focus();
|
||||
}
|
||||
}
|
||||
}, 500);
|
||||
|
||||
|
||||
// plugin definition
|
||||
jQuery.fn.pwgDatepicker = function(settings) {
|
||||
var options = jQuery.extend(true, {
|
||||
showTimepicker: false,
|
||||
cancelButton: false,
|
||||
}, settings || {});
|
||||
|
||||
return this.each(function() {
|
||||
var $this = jQuery(this),
|
||||
originalValue = $this.val(),
|
||||
originalDate,
|
||||
$target = jQuery('[name="'+ $this.data('datepicker') +'"]'),
|
||||
linked = !!$target.length,
|
||||
$start, $end;
|
||||
|
||||
if (linked) {
|
||||
originalValue = $target.val();
|
||||
}
|
||||
|
||||
// custom setter
|
||||
function set(date, init) {
|
||||
if (date === '') date = null;
|
||||
$this.datetimepicker('setDate', date);
|
||||
|
||||
if ($this.data('datepicker-start') && $start) {
|
||||
$start.datetimepicker('option', 'maxDate', date);
|
||||
}
|
||||
else if ($this.data('datepicker-end') && $end) {
|
||||
if (!init) { // on init, "end" is not initialized yet (assuming "start" is before "end" in the DOM)
|
||||
$end.datetimepicker('option', 'minDate', date);
|
||||
}
|
||||
}
|
||||
|
||||
if (!date && linked) {
|
||||
$target.val('');
|
||||
}
|
||||
}
|
||||
|
||||
// and custom cancel button
|
||||
if (options.cancelButton) {
|
||||
options.beforeShow = options.onChangeMonthYear = function() {
|
||||
setTimeout(function() {
|
||||
var buttonPane = $this.datepicker('widget')
|
||||
.find('.ui-datepicker-buttonpane');
|
||||
|
||||
if (buttonPane.find('.pwg-datepicker-cancel').length == 0) {
|
||||
$('<button type="button">'+ options.cancelButton +'</button>')
|
||||
.on('click', function() {
|
||||
set(originalDate, false);
|
||||
$this.datepicker('hide').blur();
|
||||
})
|
||||
.addClass('pwg-datepicker-cancel ui-state-error ui-corner-all')
|
||||
.appendTo(buttonPane);
|
||||
}
|
||||
}, 1);
|
||||
};
|
||||
}
|
||||
|
||||
// init picker
|
||||
$this.datetimepicker(jQuery.extend({
|
||||
dateFormat: linked ? 'DD d MM yy' : 'yy-mm-dd',
|
||||
timeFormat: 'HH:mm',
|
||||
separator: options.showTimepicker ? ' ' : '',
|
||||
|
||||
altField: linked ? $target : null,
|
||||
altFormat: 'yy-mm-dd',
|
||||
altTimeFormat: options.showTimepicker ? 'HH:mm:ss' : '',
|
||||
|
||||
autoSize: true,
|
||||
changeMonth : true,
|
||||
changeYear: true,
|
||||
altFieldTimeOnly: false,
|
||||
showSecond: false,
|
||||
alwaysSetTime: false
|
||||
}, options));
|
||||
|
||||
// attach range pickers
|
||||
if ($this.data('datepicker-start')) {
|
||||
$start = jQuery('[data-datepicker="'+ $this.data('datepicker-start') +'"]');
|
||||
|
||||
$this.datetimepicker('option', 'onClose', function(date) {
|
||||
$start.datetimepicker('option', 'maxDate', date);
|
||||
});
|
||||
|
||||
$this.datetimepicker('option', 'minDate', $start.datetimepicker('getDate'));
|
||||
}
|
||||
else if ($this.data('datepicker-end')) {
|
||||
$end = jQuery('[data-datepicker="'+ $this.data('datepicker-end') +'"]');
|
||||
|
||||
$this.datetimepicker('option', 'onClose', function(date) {
|
||||
$end.datetimepicker('option', 'minDate', date);
|
||||
});
|
||||
}
|
||||
|
||||
// attach unset button
|
||||
if ($this.data('datepicker-unset')) {
|
||||
jQuery('#'+ $this.data('datepicker-unset')).on('click', function(e) {
|
||||
e.preventDefault();
|
||||
set(null, false);
|
||||
});
|
||||
}
|
||||
|
||||
// set value from linked input
|
||||
if (linked) {
|
||||
var splitted = originalValue.split(' ');
|
||||
if (splitted.length == 2 && options.showTimepicker) {
|
||||
set(jQuery.datepicker.parseDateTime('yy-mm-dd', 'HH:mm:ss', originalValue), true);
|
||||
}
|
||||
else if (splitted[0].length == 10) {
|
||||
set(jQuery.datepicker.parseDate('yy-mm-dd', splitted[0]), true);
|
||||
}
|
||||
else {
|
||||
set(null, true);
|
||||
}
|
||||
}
|
||||
|
||||
originalDate = $this.datetimepicker('getDate');
|
||||
|
||||
// autoSize not handled by timepicker
|
||||
if (options.showTimepicker) {
|
||||
$this.attr('size', parseInt($this.attr('size'))+6);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
function debounce(func, wait, immediate) {
|
||||
var timeout;
|
||||
return function() {
|
||||
var context = this, args = arguments;
|
||||
var later = function() {
|
||||
timeout = null;
|
||||
if (!immediate) func.apply(context, args);
|
||||
};
|
||||
var callNow = immediate && !timeout;
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(later, wait);
|
||||
if (callNow) func.apply(context, args);
|
||||
};
|
||||
}
|
||||
|
||||
}(jQuery));
|
||||
62
zoesch.de/galerie/admin/themes/default/js/doubleSlider.js
Normal file
@@ -0,0 +1,62 @@
|
||||
(function($){
|
||||
|
||||
/**
|
||||
* OPTIONS:
|
||||
* values {mixed[]}
|
||||
* selected {object} min and max
|
||||
* text {string}
|
||||
*/
|
||||
$.fn.pwgDoubleSlider = function(options) {
|
||||
var that = this;
|
||||
|
||||
function onChange(e, ui) {
|
||||
that.find('[data-input=min]').val(options.values[ui.values[0]]);
|
||||
that.find('[data-input=max]').val(options.values[ui.values[1]]);
|
||||
|
||||
that.find('.slider-info').html(sprintf(
|
||||
options.text,
|
||||
options.values[ui.values[0]],
|
||||
options.values[ui.values[1]]
|
||||
));
|
||||
}
|
||||
|
||||
function findClosest(array, value) {
|
||||
var closest = null, index = -1;
|
||||
$.each(array, function(i, v){
|
||||
if (closest == null || Math.abs(v - value) < Math.abs(closest - value)) {
|
||||
closest = v;
|
||||
index = i;
|
||||
}
|
||||
});
|
||||
return index;
|
||||
}
|
||||
|
||||
var values = [
|
||||
options.values.indexOf(options.selected.min),
|
||||
options.values.indexOf(options.selected.max)
|
||||
];
|
||||
if (values[0] == -1) {
|
||||
values[0] = findClosest(options.values, options.selected.min);
|
||||
}
|
||||
if (values[1] == -1) {
|
||||
values[1] = findClosest(options.values, options.selected.max);
|
||||
}
|
||||
|
||||
var slider = this.find('.slider-slider').slider({
|
||||
range: true,
|
||||
min: 0,
|
||||
max: options.values.length - 1,
|
||||
values: values,
|
||||
slide: onChange,
|
||||
change: onChange
|
||||
});
|
||||
|
||||
this.find('.slider-choice').on('click', function(){
|
||||
slider.slider('values', 0, options.values.indexOf($(this).data('min')));
|
||||
slider.slider('values', 1, options.values.indexOf($(this).data('max')));
|
||||
});
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
}(jQuery));
|
||||
62
zoesch.de/galerie/admin/themes/default/js/jquery.geoip.js
Normal file
@@ -0,0 +1,62 @@
|
||||
|
||||
GeoIp = {
|
||||
cache: {},
|
||||
pending: {},
|
||||
|
||||
get: function(ip, callback){
|
||||
if (!GeoIp.storageInit && window.localStorage) {
|
||||
GeoIp.storageInit = true;
|
||||
var cache = localStorage.getItem("freegeoip");
|
||||
if (cache) {
|
||||
cache = JSON.parse(cache);
|
||||
for (var key in cache) {
|
||||
var data = cache[key];
|
||||
if ( (new Date()).getTime() - data.reqTime > 96 * 3600000)
|
||||
delete cache[key];
|
||||
}
|
||||
GeoIp.cache = cache;
|
||||
}
|
||||
jQuery(window).on("unload", function() {
|
||||
localStorage.setItem("freegeoip", JSON.stringify(GeoIp.cache) );
|
||||
} );
|
||||
}
|
||||
|
||||
if (GeoIp.cache.hasOwnProperty(ip))
|
||||
callback(GeoIp.cache[ip]);
|
||||
else if (GeoIp.pending[ip])
|
||||
GeoIp.pending[ip].push(callback);
|
||||
else {
|
||||
GeoIp.pending[ip] = [callback];
|
||||
jQuery.ajax( {
|
||||
url: "http://freegeoip.net/json/" + ip,
|
||||
dataType: "jsonp",
|
||||
cache: true,
|
||||
timeout: 5000,
|
||||
success: function(data) {
|
||||
data.reqTime = (new Date()).getTime();
|
||||
var res=[];
|
||||
if (data.city) res.push(data.city);
|
||||
if (data.region_name) res.push(data.region_name);
|
||||
if (data.country_name) res.push(data.country_name);
|
||||
data.fullName = res.join(", ");
|
||||
|
||||
GeoIp.cache[ip] = data;
|
||||
var callbacks = GeoIp.pending[ip];
|
||||
delete GeoIp.pending[ip];
|
||||
for (var i=0; i<callbacks.length; i++)
|
||||
callbacks[i].call(null, data);
|
||||
},
|
||||
|
||||
error: function() {
|
||||
var data = {ip:ip, reqTime: (new Date()).getTime()};
|
||||
|
||||
GeoIp.cache[ip] = data;
|
||||
var callbacks = GeoIp.pending[ip];
|
||||
delete GeoIp.pending[ip];
|
||||
for (var i=0; i<callbacks.length; i++)
|
||||
callbacks[i].call(null, data);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
14
zoesch.de/galerie/admin/themes/default/print.css
Normal file
@@ -0,0 +1,14 @@
|
||||
#menubar, .content .navigationBar,
|
||||
.navThumb, #addComment {
|
||||
display: none;
|
||||
}
|
||||
|
||||
BODY {
|
||||
margin: 0;
|
||||
color: #000000;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.content {
|
||||
margin: 0;
|
||||
}
|
||||
194
zoesch.de/galerie/admin/themes/default/template/admin.tpl
Normal file
@@ -0,0 +1,194 @@
|
||||
{footer_script}
|
||||
jQuery.fn.lightAccordion = function(options) {
|
||||
var settings = $.extend({
|
||||
header: 'dt',
|
||||
content: 'dd',
|
||||
active: 0
|
||||
}, options);
|
||||
|
||||
return this.each(function() {
|
||||
var self = jQuery(this);
|
||||
|
||||
var contents = self.find(settings.content),
|
||||
headers = self.find(settings.header);
|
||||
|
||||
contents.not(contents[settings.active]).hide();
|
||||
|
||||
self.on('click', settings.header, function() {
|
||||
var content = jQuery(this).next(settings.content);
|
||||
content.slideDown();
|
||||
contents.not(content).slideUp();
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
$('#menubar').lightAccordion({
|
||||
active: {$ACTIVE_MENU}
|
||||
});
|
||||
|
||||
/* in case we have several infos/errors/warnings display bullets */
|
||||
jQuery(document).ready(function() {
|
||||
var eiw = ["infos","erros","warnings", "messages"];
|
||||
|
||||
for (var i = 0; i < eiw.length; i++) {
|
||||
var boxType = eiw[i];
|
||||
|
||||
if (jQuery("."+boxType+" ul li").length > 1) {
|
||||
jQuery("."+boxType+" ul li").css("list-style-type", "square");
|
||||
jQuery("."+boxType+" .eiw-icon").css("margin-right", "20px");
|
||||
}
|
||||
}
|
||||
});
|
||||
{/footer_script}
|
||||
|
||||
<div id="menubar">
|
||||
<div id="adminHome"><a href="{$U_ADMIN}"><i class="icon-television"></i> {'Dashboard'|@translate}</a></div>
|
||||
|
||||
<dl>
|
||||
<dt><i class="icon-picture"> </i><span>{'Photos'|@translate} </span></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$U_ADD_PHOTOS}"><i class="icon-plus-circled"></i>{'Add'|@translate}</a></li>
|
||||
<li><a href="{$U_RATING}"><i class="icon-star"></i>{'Rating'|@translate}</a></li>
|
||||
<li><a href="{$U_TAGS}"><i class="icon-tags"></i>{'Tags'|@translate}</a></li>
|
||||
<li><a href="{$U_RECENT_SET}"><i class="icon-clock"></i>{'Recent photos'|@translate}</a></li>
|
||||
<li><a href="{$U_BATCH}"><i class="icon-pencil"></i>{'Batch Manager'|@translate}</a></li>
|
||||
{if $NB_PHOTOS_IN_CADDIE > 0}
|
||||
<li><a href="{$U_CADDIE}"><i class="icon-flag"></i>{'Caddie'|@translate}<span class="adminMenubarCounter">{$NB_PHOTOS_IN_CADDIE}</span></a></li>
|
||||
{/if}
|
||||
{if $NB_ORPHANS > 0}
|
||||
<li><a href="{$U_ORPHANS}"><i class="icon-heart-broken"></i>{'Orphans'|@translate}<span class="adminMenubarCounter">{$NB_ORPHANS}</span></a></li>
|
||||
{/if}
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><i class="icon-sitemap"> </i><span>{'Albums'|@translate} </span></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$U_CATEGORIES}"><i class="icon-folder-open"></i>{'Manage'|@translate}</a></li>
|
||||
<li><a href="{$U_CAT_OPTIONS}"><i class="icon-pencil"></i>{'Properties'|@translate}</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><i class="icon-users"> </i><span>{'Users'|@translate} </span></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$U_USERS}"><i class="icon-user-add"></i>{'Manage'|@translate}</a></li>
|
||||
<li><a href="{$U_GROUPS}"><i class="icon-group"></i>{'Groups'|@translate}</a></li>
|
||||
<li><a href="{$U_NOTIFICATION_BY_MAIL}"><i class="icon-mail-1"></i>{'Notification'|@translate}</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><i class="icon-puzzle"> </i><span>{'Plugins'|@translate} </span></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$U_PLUGINS}"><i class="icon-equalizer"></i>{'Manage'|@translate}</a></li>
|
||||
</ul>
|
||||
{if !empty($plugin_menu_items)}
|
||||
<div id="pluginsMenuSeparator"></div>
|
||||
<ul class="scroll">
|
||||
{foreach from=$plugin_menu_items item=menu_item}
|
||||
<li><a href="{$menu_item.URL}">{$menu_item.NAME}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><i class="icon-wrench"> </i><span>{'Tools'|@translate} </span></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
{if $ENABLE_SYNCHRONIZATION}
|
||||
<li><a href="{$U_CAT_UPDATE}"><i class="icon-exchange"></i>{'Synchronize'|@translate}</a></li>
|
||||
<li><a href="{$U_SITE_MANAGER}"><i class="icon-flow-branch"></i>{'Site manager'|@translate}</a></li>
|
||||
{/if}
|
||||
<li><a href="{$U_HISTORY_STAT}"><i class="icon-signal"></i>{'History'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINTENANCE}"><i class="icon-tools"></i>{'Maintenance'|@translate}</a></li>
|
||||
{if isset($U_COMMENTS)}
|
||||
<li><a href="{$U_COMMENTS}"><i class="icon-chat"></i>{'Comments'|@translate}
|
||||
{if $NB_PENDING_COMMENTS > 0}
|
||||
<span class="adminMenubarCounter" title="{'%d waiting for validation'|translate:$NB_PENDING_COMMENTS}">{$NB_PENDING_COMMENTS}</span>
|
||||
{/if}</a></li>
|
||||
{/if}
|
||||
<li><a href="{$U_UPDATES}"><i class="icon-arrows-cw"></i>{'Updates'|@translate}</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><i class="icon-cog"> </i><span>{'Configuration'|@translate} </span></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$U_CONFIG_GENERAL}"><i class="icon-cog-alt"></i>{'Options'|@translate}</a></li>
|
||||
<li><a href="{$U_CONFIG_MENUBAR}"><i class="icon-menu"></i>{'Menu Management'|@translate}</a></li>
|
||||
<li><a href="{$U_CONFIG_EXTENTS}"><i class="icon-code"></i>{'Templates'|@translate}</a></li>
|
||||
<li><a href="{$U_CONFIG_LANGUAGES}"><i class="icon-language"></i>{'Languages'|@translate}</a></li>
|
||||
<li><a href="{$U_CONFIG_THEMES}"><i class="icon-brush"></i>{'Themes'|@translate}</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div> <!-- menubar -->
|
||||
|
||||
<div id="content" class="content">
|
||||
|
||||
{if isset($TABSHEET)}
|
||||
{$TABSHEET}
|
||||
{/if}
|
||||
{if isset($U_HELP)}
|
||||
{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
|
||||
<ul class="HelpActions">
|
||||
<li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/help.png" alt="(?)"></a></li>
|
||||
</ul>
|
||||
{/if}
|
||||
|
||||
<div class="eiw">
|
||||
{if isset($errors)}
|
||||
<div class="errors">
|
||||
<i class="eiw-icon icon-cancel"></i>
|
||||
<ul>
|
||||
{foreach from=$errors item=error}
|
||||
<li>{$error}</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if isset($infos)}
|
||||
<div class="infos">
|
||||
<i class="eiw-icon icon-ok"></i>
|
||||
<ul>
|
||||
{foreach from=$infos item=info}
|
||||
<li>{$info}</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if isset($warnings)}
|
||||
<div class="warnings">
|
||||
<i class="eiw-icon icon-attention"></i>
|
||||
<ul>
|
||||
{foreach from=$warnings item=warning}
|
||||
<li>{$warning}</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if isset($messages)}
|
||||
<div class="messages">
|
||||
<i class="eiw-icon icon-info-circled-1"></i>
|
||||
<ul>
|
||||
{foreach from=$messages item=message}
|
||||
<li>{$message}</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
</div> {* .eiw *}
|
||||
|
||||
{$ADMIN_CONTENT}
|
||||
</div>
|
||||
@@ -0,0 +1,128 @@
|
||||
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
|
||||
{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'}
|
||||
{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"}
|
||||
|
||||
{footer_script}
|
||||
jQuery(document).ready(function() {
|
||||
jQuery("input[name=who]").change(function () {
|
||||
checkWhoOptions();
|
||||
});
|
||||
|
||||
checkWhoOptions();
|
||||
|
||||
function checkWhoOptions() {
|
||||
var option = jQuery("input[name=who]:checked").val();
|
||||
jQuery(".who_option").hide();
|
||||
jQuery(".who_" + option).show();
|
||||
}
|
||||
|
||||
jQuery(".who_option select").selectize({
|
||||
plugins: ['remove_button']
|
||||
});
|
||||
|
||||
jQuery("form#categoryNotify").submit(function(e) {
|
||||
var who_selected = false;
|
||||
var who_option = jQuery("input[name=who]:checked").val();
|
||||
|
||||
if (jQuery(".who_" + who_option + " select").length > 0) {
|
||||
if (jQuery(".who_" + who_option + " select option:selected").length > 0) {
|
||||
who_selected = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!who_selected) {
|
||||
jQuery(".actionButtons .errors").show();
|
||||
e.preventDefault();
|
||||
}
|
||||
else {
|
||||
jQuery(".actionButtons .errors").hide();
|
||||
console.log("form can be submited");
|
||||
}
|
||||
});
|
||||
});
|
||||
{/footer_script}
|
||||
|
||||
{html_style}
|
||||
.who_option {
|
||||
margin-top:5px;
|
||||
}
|
||||
|
||||
span.errors {
|
||||
background-image:none;
|
||||
padding:2px 5px;
|
||||
margin:0;
|
||||
border-radius:5px;
|
||||
}
|
||||
{/html_style}
|
||||
|
||||
<div class="titrePage">
|
||||
<h2><span style="letter-spacing:0">{$CATEGORIES_NAV}</span> › {'Edit album'|@translate} {$TABSHEET_TITLE}</h2>
|
||||
</div>
|
||||
|
||||
<form action="{$F_ACTION}" method="post" id="categoryNotify">
|
||||
|
||||
<fieldset id="emailCatInfo">
|
||||
<legend>{'Send mail to users'|@translate}</legend>
|
||||
|
||||
<p>
|
||||
<strong>{'Recipients'|@translate}</strong>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-dot-circled"></span>
|
||||
<input type="radio" name="who" value="group" checked="checked">
|
||||
{'Group'|translate}
|
||||
</label>
|
||||
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-dot-circled"></span>
|
||||
<input type="radio" name="who" value="users">
|
||||
{'Users'|translate}
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<p class="who_option who_group">
|
||||
{if isset($group_mail_options)}
|
||||
<select name="group" placeholder="{'Type in a search term'|translate}" style="width:524px;">
|
||||
{html_options options=$group_mail_options}
|
||||
</select>
|
||||
{elseif isset($no_group_in_gallery) and $no_group_in_gallery}
|
||||
{'There is no group in this gallery.'|@translate} <a href="admin.php?page=group_list" class="externalLink">{'Group management'|@translate}</a>
|
||||
{else}
|
||||
{'No group is permitted to see this private album'|@translate}.
|
||||
<a href="{$permission_url}" class="externalLink">{'Permission management'|@translate}</a>
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
<p class="who_option who_users">
|
||||
{if isset($user_options)}
|
||||
<select name="users[]" multiple placeholder="{'Type in a search term'|translate}" style="width:524px;">
|
||||
{html_options options=$user_options selected=$user_options_selected}
|
||||
</select>
|
||||
{else}
|
||||
{'No user is permitted to see this private album'|@translate}.
|
||||
<a href="{$permission_url}" class="externalLink">{'Permission management'|@translate}</a>
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>{'Complementary mail content'|@translate}</strong>
|
||||
<br>
|
||||
<textarea cols="50" rows="5" name="mail_content" id="mail_content" class="description">{$MAIL_CONTENT}</textarea>
|
||||
</p>
|
||||
|
||||
{if isset($auth_key_duration)}
|
||||
<p>
|
||||
{'Each email sent will contain its own automatic authentication key on links, valid for %s.'|translate:$auth_key_duration}
|
||||
<br>{'For security reason, authentication keys do not work for administrators.'|translate}
|
||||
</p>
|
||||
{/if}
|
||||
|
||||
<p class="actionButtons">
|
||||
<button name="submitEmail" type="submit" class="buttonLike">
|
||||
<i class="icon-mail"></i> {'Send'|translate}
|
||||
</button>
|
||||
<span class="errors" style="display:none">✘ {'No recipient selected'|translate}</span>
|
||||
</p>
|
||||
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
@@ -0,0 +1,731 @@
|
||||
{include file='include/datepicker.inc.tpl' load_mode='async'}
|
||||
{include file='include/colorbox.inc.tpl' load_mode='async'}
|
||||
{include file='include/add_album.inc.tpl' load_mode='async'}
|
||||
|
||||
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
|
||||
|
||||
{combine_script id='jquery.ui.slider' require='jquery.ui' load='async' path='themes/default/js/ui/minified/jquery.ui.slider.min.js'}
|
||||
{combine_css path="themes/default/js/ui/theme/jquery.ui.slider.css"}
|
||||
{combine_script id='doubleSlider' load='async' require='jquery.ui.slider' path='admin/themes/default/js/doubleSlider.js'}
|
||||
|
||||
{combine_script id='LocalStorageCache' load='footer' path='admin/themes/default/js/LocalStorageCache.js'}
|
||||
|
||||
{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'}
|
||||
{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"}
|
||||
|
||||
{combine_script id='jquery.progressBar' load='async' path='themes/default/js/plugins/jquery.progressbar.min.js'}
|
||||
{combine_script id='jquery.ajaxmanager' load='async' path='themes/default/js/plugins/jquery.ajaxmanager.js'}
|
||||
|
||||
{combine_script id='batchManagerGlobal' load='async' require='jquery,datepicker,jquery.colorbox,addAlbum,doubleSlider' path='admin/themes/default/js/batchManagerGlobal.js'}
|
||||
|
||||
{footer_script}
|
||||
var lang = {
|
||||
Cancel: '{'Cancel'|translate|escape:'javascript'}',
|
||||
deleteProgressMessage: "{'Deletion in progress'|translate|escape:'javascript'}",
|
||||
AreYouSure: "{'Are you sure?'|translate|escape:'javascript'}"
|
||||
};
|
||||
|
||||
jQuery(document).ready(function() {
|
||||
|
||||
{* <!-- TAGS --> *}
|
||||
var tagsCache = new TagsCache({
|
||||
serverKey: '{$CACHE_KEYS.tags}',
|
||||
serverId: '{$CACHE_KEYS._hash}',
|
||||
rootUrl: '{$ROOT_URL}'
|
||||
});
|
||||
|
||||
tagsCache.selectize(jQuery('[data-selectize=tags]'), { lang: {
|
||||
'Add': '{'Create'|translate}'
|
||||
}});
|
||||
|
||||
{* <!-- CATEGORIES --> *}
|
||||
window.categoriesCache = new CategoriesCache({
|
||||
serverKey: '{$CACHE_KEYS.categories}',
|
||||
serverId: '{$CACHE_KEYS._hash}',
|
||||
rootUrl: '{$ROOT_URL}'
|
||||
});
|
||||
|
||||
var associated_categories = {$associated_categories|@json_encode};
|
||||
|
||||
categoriesCache.selectize(jQuery('[data-selectize=categories]'), {
|
||||
filter: function(categories, options) {
|
||||
if (this.name == 'dissociate') {
|
||||
var filtered = jQuery.grep(categories, function(cat) {
|
||||
return !!associated_categories[cat.id];
|
||||
});
|
||||
|
||||
if (filtered.length > 0) {
|
||||
options.default = filtered[0].id;
|
||||
}
|
||||
|
||||
return filtered;
|
||||
}
|
||||
else {
|
||||
return categories;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
var nb_thumbs_page = {$nb_thumbs_page};
|
||||
var nb_thumbs_set = {$nb_thumbs_set};
|
||||
var applyOnDetails_pattern = "{'on the %d selected photos'|@translate}";
|
||||
var all_elements = [{if !empty($all_elements)}{','|@implode:$all_elements}{/if}];
|
||||
|
||||
var selectedMessage_pattern = "{'%d of %d photos selected'|@translate}";
|
||||
var selectedMessage_none = "{'No photo selected, %d photos in current set'|@translate}";
|
||||
var selectedMessage_all = "{'All %d photos are selected'|@translate}";
|
||||
|
||||
$(document).ready(function() {
|
||||
function checkPermitAction() {
|
||||
var nbSelected = 0;
|
||||
if ($("input[name=setSelected]").is(':checked')) {
|
||||
nbSelected = nb_thumbs_set;
|
||||
}
|
||||
else {
|
||||
nbSelected = $(".thumbnails input[type=checkbox]").filter(':checked').length;
|
||||
}
|
||||
|
||||
if (nbSelected == 0) {
|
||||
$("#permitAction").hide();
|
||||
$("#forbidAction").show();
|
||||
}
|
||||
else {
|
||||
$("#permitAction").show();
|
||||
$("#forbidAction").hide();
|
||||
}
|
||||
|
||||
$("#applyOnDetails").text(
|
||||
sprintf(
|
||||
applyOnDetails_pattern,
|
||||
nbSelected
|
||||
)
|
||||
);
|
||||
|
||||
// display the number of currently selected photos in the "Selection" fieldset
|
||||
if (nbSelected == 0) {
|
||||
$("#selectedMessage").text(
|
||||
sprintf(
|
||||
selectedMessage_none,
|
||||
nb_thumbs_set
|
||||
)
|
||||
);
|
||||
}
|
||||
else if (nbSelected == nb_thumbs_set) {
|
||||
$("#selectedMessage").text(
|
||||
sprintf(
|
||||
selectedMessage_all,
|
||||
nb_thumbs_set
|
||||
)
|
||||
);
|
||||
}
|
||||
else {
|
||||
$("#selectedMessage").text(
|
||||
sprintf(
|
||||
selectedMessage_pattern,
|
||||
nbSelected,
|
||||
nb_thumbs_set
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$("[id^=action_]").hide();
|
||||
|
||||
$("select[name=selectAction]").change(function () {
|
||||
$("[id^=action_]").hide();
|
||||
|
||||
var action = $(this).prop("value");
|
||||
if (action == 'move') {
|
||||
action = 'associate';
|
||||
}
|
||||
|
||||
$("#action_"+action).show();
|
||||
|
||||
if ($(this).val() != -1) {
|
||||
$("#applyActionBlock").show();
|
||||
}
|
||||
else {
|
||||
$("#applyActionBlock").hide();
|
||||
}
|
||||
});
|
||||
|
||||
$(".wrap1 label").click(function (event) {
|
||||
$("input[name=setSelected]").prop('checked', false);
|
||||
|
||||
var li = $(this).closest("li");
|
||||
var checkbox = $(this).children("input[type=checkbox]");
|
||||
|
||||
checkbox.triggerHandler("shclick",event);
|
||||
|
||||
if ($(checkbox).is(':checked')) {
|
||||
$(li).addClass("thumbSelected");
|
||||
}
|
||||
else {
|
||||
$(li).removeClass('thumbSelected');
|
||||
}
|
||||
|
||||
checkPermitAction();
|
||||
});
|
||||
|
||||
$("#selectAll").click(function () {
|
||||
$("input[name=setSelected]").prop('checked', false);
|
||||
selectPageThumbnails();
|
||||
checkPermitAction();
|
||||
return false;
|
||||
});
|
||||
|
||||
function selectPageThumbnails() {
|
||||
$(".thumbnails label").each(function() {
|
||||
var checkbox = $(this).children("input[type=checkbox]");
|
||||
|
||||
$(checkbox).prop('checked', true).trigger("change");
|
||||
$(this).closest("li").addClass("thumbSelected");
|
||||
});
|
||||
}
|
||||
|
||||
$("#selectNone").click(function () {
|
||||
$("input[name=setSelected]").prop('checked', false);
|
||||
|
||||
$(".thumbnails label").each(function() {
|
||||
var checkbox = $(this).children("input[type=checkbox]");
|
||||
|
||||
if (jQuery(checkbox).is(':checked')) {
|
||||
$(checkbox).prop('checked', false).trigger("change");
|
||||
}
|
||||
|
||||
$(this).closest("li").removeClass("thumbSelected");
|
||||
});
|
||||
checkPermitAction();
|
||||
return false;
|
||||
});
|
||||
|
||||
$("#selectInvert").click(function () {
|
||||
$("input[name=setSelected]").prop('checked', false);
|
||||
|
||||
$(".thumbnails label").each(function() {
|
||||
var checkbox = $(this).children("input[type=checkbox]");
|
||||
|
||||
$(checkbox).prop('checked', !$(checkbox).is(':checked')).trigger("change");
|
||||
|
||||
if ($(checkbox).is(':checked')) {
|
||||
$(this).closest("li").addClass("thumbSelected");
|
||||
}
|
||||
else {
|
||||
$(this).closest("li").removeClass('thumbSelected');
|
||||
}
|
||||
});
|
||||
checkPermitAction();
|
||||
return false;
|
||||
});
|
||||
|
||||
$("#selectSet").click(function () {
|
||||
selectPageThumbnails();
|
||||
$("input[name=setSelected]").prop('checked', true);
|
||||
checkPermitAction();
|
||||
return false;
|
||||
});
|
||||
|
||||
jQuery('#applyAction').click(function() {
|
||||
var action = jQuery('[name="selectAction"]').val();
|
||||
if (action == 'delete_derivatives') {
|
||||
var d_count = $('#action_delete_derivatives input[type=checkbox]').filter(':checked').length
|
||||
, e_count = $('input[name="setSelected"]').is(':checked') ? nb_thumbs_set : $('.thumbnails input[type=checkbox]').filter(':checked').length;
|
||||
if (d_count*e_count > 500)
|
||||
return confirm(lang.AreYouSure);
|
||||
}
|
||||
|
||||
if (action != 'generate_derivatives'
|
||||
|| derivatives.finished() )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
jQuery('.bulkAction').hide();
|
||||
|
||||
var queuedManager = jQuery.manageAjax.create('queued', {
|
||||
queue: true,
|
||||
cacheResponse: false,
|
||||
maxRequests: 1
|
||||
});
|
||||
|
||||
derivatives.elements = [];
|
||||
if (jQuery('input[name="setSelected"]').is(':checked'))
|
||||
derivatives.elements = all_elements;
|
||||
else
|
||||
jQuery('.thumbnails input[type=checkbox]').each(function() {
|
||||
if (jQuery(this).is(':checked')) {
|
||||
derivatives.elements.push(jQuery(this).val());
|
||||
}
|
||||
});
|
||||
|
||||
jQuery('#applyActionBlock').hide();
|
||||
jQuery('select[name="selectAction"]').hide();
|
||||
jQuery('#regenerationMsg').show();
|
||||
|
||||
progress();
|
||||
getDerivativeUrls();
|
||||
return false;
|
||||
});
|
||||
|
||||
checkPermitAction();
|
||||
|
||||
jQuery("select[name=filter_prefilter]").change(function() {
|
||||
jQuery("#empty_caddie").toggle(jQuery(this).val() == "caddie");
|
||||
jQuery("#duplicates_options").toggle(jQuery(this).val() == "duplicates");
|
||||
jQuery("#delete_orphans").toggle(jQuery(this).val() == "no_album");
|
||||
});
|
||||
});
|
||||
|
||||
{*<!-- sliders config -->*}
|
||||
var sliders = {
|
||||
widths: {
|
||||
values: [{$dimensions.widths}],
|
||||
selected: {
|
||||
min: {$dimensions.selected.min_width},
|
||||
max: {$dimensions.selected.max_width},
|
||||
},
|
||||
text: '{'between %d and %d pixels'|translate|escape:'javascript'}'
|
||||
},
|
||||
|
||||
heights: {
|
||||
values: [{$dimensions.heights}],
|
||||
selected: {
|
||||
min: {$dimensions.selected.min_height},
|
||||
max: {$dimensions.selected.max_height},
|
||||
},
|
||||
text: '{'between %d and %d pixels'|translate|escape:'javascript'}'
|
||||
},
|
||||
|
||||
ratios: {
|
||||
values: [{$dimensions.ratios}],
|
||||
selected: {
|
||||
min: {$dimensions.selected.min_ratio},
|
||||
max: {$dimensions.selected.max_ratio},
|
||||
},
|
||||
text: '{'between %.2f and %.2f'|translate|escape:'javascript'}'
|
||||
},
|
||||
|
||||
filesizes: {
|
||||
values: [{$filesize.list}],
|
||||
selected: {
|
||||
min: {$filesize.selected.min},
|
||||
max: {$filesize.selected.max},
|
||||
},
|
||||
text: '{'between %s and %s MB'|translate|escape:'javascript'}'
|
||||
}
|
||||
};
|
||||
|
||||
{/footer_script}
|
||||
|
||||
<div id="batchManagerGlobal">
|
||||
|
||||
<h2>{'Batch Manager'|@translate}</h2>
|
||||
|
||||
<form action="{$F_ACTION}" method="post">
|
||||
<input type="hidden" name="start" value="{$START}">
|
||||
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
|
||||
|
||||
<fieldset>
|
||||
<legend><i class="icon-filter"></i>{'Filter'|@translate}</legend>
|
||||
|
||||
<ul id="filterList">
|
||||
<li id="filter_prefilter" {if !isset($filter.prefilter)}style="display:none"{/if}>
|
||||
<a href="#" class="removeFilter" title="{'remove this filter'|@translate}"><span>[x]</span></a>
|
||||
<input type="checkbox" name="filter_prefilter_use" class="useFilterCheckbox" {if isset($filter.prefilter)}checked="checked"{/if}>
|
||||
{'Predefined filter'|@translate}
|
||||
<select name="filter_prefilter">
|
||||
{foreach from=$prefilters item=prefilter}
|
||||
{assign 'optionClass' ''}
|
||||
{if $prefilter.ID eq 'no_album'}{assign 'optionClass' 'icon-heart-broken'}{/if}
|
||||
{if $prefilter.ID eq 'caddie'}{assign 'optionClass' 'icon-flag'}{/if}
|
||||
|
||||
<option value="{$prefilter.ID}" class="{$optionClass}" {if isset($filter.prefilter) && $filter.prefilter eq $prefilter.ID}selected="selected"{/if}>{$prefilter.NAME}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
<a id="empty_caddie" href="admin.php?page=batch_manager&action=empty_caddie" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'caddie'}display:none{/if}">{'Empty caddie'|translate}</a>
|
||||
{if $NB_ORPHANS > 0}
|
||||
<a id="delete_orphans" href="#" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'no_album'}display:none{/if}" class="icon-trash">{'Delete %d orphan photos'|translate:$NB_ORPHANS}</a>
|
||||
{/if}
|
||||
|
||||
<span id="orphans_deletion" style="display:none">
|
||||
<img class="loading" src="themes/default/images/ajax-loader-small.gif">
|
||||
<span id="orphans_deleted">0</span>% -
|
||||
<span id="orphans_to_delete" data-origin="{$NB_ORPHANS}">{$NB_ORPHANS}</span>
|
||||
{'orphans to delete'|translate}
|
||||
</span>
|
||||
|
||||
<span id="orphans_deletion_error" class="errors" style="display:none"></span>
|
||||
|
||||
<span id="duplicates_options" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'duplicates'}display:none{/if}">
|
||||
{'based on'|translate}
|
||||
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="filter_duplicates_filename" {if isset($filter.duplicates_filename)}checked="checked"{/if}> {'file name'|translate}</label>
|
||||
<label class="font-checkbox" title="md5sum"><span class="icon-check"></span><input type="checkbox" name="filter_duplicates_checksum" {if isset($filter.duplicates_checksum)}checked="checked"{/if}> {'checksum'|translate}</label>
|
||||
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="filter_duplicates_date" {if isset($filter.duplicates_date) or (isset($filter.prefilter) and $filter.prefilter ne 'duplicates')}checked="checked"{/if}> {'date & time'|translate}</label>
|
||||
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="filter_duplicates_dimensions" {if isset($filter.duplicates_dimensions)}checked="checked"{/if}> {'width & height'|translate}</label>
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li id="filter_category" {if !isset($filter.category)}style="display:none"{/if}>
|
||||
<a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a>
|
||||
<input type="checkbox" name="filter_category_use" class="useFilterCheckbox" {if isset($filter.category)}checked="checked"{/if}>
|
||||
{'Album'|@translate}
|
||||
<select data-selectize="categories" data-value="{$filter_category_selected|@json_encode|escape:html}"
|
||||
data-default="first" name="filter_category" style="width:600px"></select>
|
||||
<label><input type="checkbox" name="filter_category_recursive" {if isset($filter.category_recursive)}checked="checked"{/if}> {'include child albums'|@translate}</label>
|
||||
</li>
|
||||
|
||||
<li id="filter_tags" {if !isset($filter.tags)}style="display:none"{/if}>
|
||||
<a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a>
|
||||
<input type="checkbox" name="filter_tags_use" class="useFilterCheckbox" {if isset($filter.tags)}checked="checked"{/if}>
|
||||
{'Tags'|@translate}
|
||||
<select data-selectize="tags" data-value="{$filter_tags|@json_encode|escape:html}"
|
||||
placeholder="{'Type in a search term'|translate}"
|
||||
name="filter_tags[]" multiple style="width:600px;"></select>
|
||||
<label><span><input type="radio" name="tag_mode" value="AND" {if !isset($filter.tag_mode) or $filter.tag_mode eq 'AND'}checked="checked"{/if}> {'All tags'|@translate}</span></label>
|
||||
<label><span><input type="radio" name="tag_mode" value="OR" {if isset($filter.tag_mode) and $filter.tag_mode eq 'OR'}checked="checked"{/if}> {'Any tag'|@translate}</span></label>
|
||||
</li>
|
||||
|
||||
<li id="filter_level" {if !isset($filter.level)}style="display:none"{/if}>
|
||||
<a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a>
|
||||
<input type="checkbox" name="filter_level_use" class="useFilterCheckbox" {if isset($filter.level)}checked="checked"{/if}>
|
||||
{'Privacy level'|@translate}
|
||||
<select name="filter_level" size="1">
|
||||
{html_options options=$filter_level_options selected=$filter_level_options_selected}
|
||||
</select>
|
||||
<label><input type="checkbox" name="filter_level_include_lower" {if isset($filter.level_include_lower)}checked="checked"{/if}> {'include photos with lower privacy level'|@translate}</label>
|
||||
</li>
|
||||
|
||||
<li id="filter_dimension" {if !isset($filter.dimension)}style="display:none"{/if}>
|
||||
<a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a>
|
||||
<input type="checkbox" name="filter_dimension_use" class="useFilterCheckbox" {if isset($filter.dimension)}checked="checked"{/if}>
|
||||
{'Dimensions'|translate}
|
||||
|
||||
<blockquote>
|
||||
<div data-slider="widths">
|
||||
{'Width'|translate} <span class="slider-info">{'between %d and %d pixels'|translate:$dimensions.selected.min_width:$dimensions.selected.max_width}</span>
|
||||
| <a class="slider-choice" data-min="{$dimensions.bounds.min_width}" data-max="{$dimensions.bounds.max_width}">{'Reset'|translate}</a>
|
||||
<div class="slider-slider"></div>
|
||||
|
||||
<input type="hidden" data-input="min" name="filter_dimension_min_width" value="{$dimensions.selected.min_width}">
|
||||
<input type="hidden" data-input="max" name="filter_dimension_max_width" value="{$dimensions.selected.max_width}">
|
||||
</div>
|
||||
|
||||
<div data-slider="heights">
|
||||
{'Height'|translate} <span class="slider-info">{'between %d and %d pixels'|translate:$dimensions.selected.min_height:$dimensions.selected.max_height}</span>
|
||||
| <a class="slider-choice" data-min="{$dimensions.bounds.min_height}" data-max="{$dimensions.bounds.max_height}">{'Reset'|translate}</a>
|
||||
<div class="slider-slider"></div>
|
||||
|
||||
<input type="hidden" data-input="min" name="filter_dimension_min_height" value="{$dimensions.selected.min_height}">
|
||||
<input type="hidden" data-input="max" name="filter_dimension_max_height" value="{$dimensions.selected.max_height}">
|
||||
</div>
|
||||
|
||||
<div data-slider="ratios">
|
||||
{'Ratio'|translate} ({'Width'|@translate}/{'Height'|@translate}) <span class="slider-info">{'between %.2f and %.2f'|translate:$dimensions.selected.min_ratio:$dimensions.selected.max_ratio}</span>
|
||||
{if isset($dimensions.ratio_portrait)}| <a class="slider-choice" data-min="{$dimensions.ratio_portrait.min}" data-max="{$dimensions.ratio_portrait.max}">{'Portrait'|translate}</a>{/if}
|
||||
{if isset($dimensions.ratio_square)}| <a class="slider-choice" data-min="{$dimensions.ratio_square.min}" data-max="{$dimensions.ratio_square.max}">{'square'|translate}</a>{/if}
|
||||
{if isset($dimensions.ratio_landscape)}| <a class="slider-choice" data-min="{$dimensions.ratio_landscape.min}" data-max="{$dimensions.ratio_landscape.max}">{'Landscape'|translate}</a>{/if}
|
||||
{if isset($dimensions.ratio_panorama)}| <a class="slider-choice" data-min="{$dimensions.ratio_panorama.min}" data-max="{$dimensions.ratio_panorama.max}">{'Panorama'|translate}</a>{/if}
|
||||
| <a class="slider-choice" data-min="{$dimensions.bounds.min_ratio}" data-max="{$dimensions.bounds.max_ratio}">{'Reset'|translate}</a>
|
||||
<div class="slider-slider"></div>
|
||||
|
||||
<input type="hidden" data-input="min" name="filter_dimension_min_ratio" value="{$dimensions.selected.min_ratio}">
|
||||
<input type="hidden" data-input="max" name="filter_dimension_max_ratio" value="{$dimensions.selected.max_ratio}">
|
||||
</div>
|
||||
</blockquote>
|
||||
</li>
|
||||
|
||||
<li id="filter_search"{if !isset($filter.search)} style="display:none"{/if}>
|
||||
<a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a>
|
||||
<input type="checkbox" name="filter_search_use" class="useFilterCheckbox"{if isset($filter.search)} checked="checked"{/if}>
|
||||
{'Search'|@translate}
|
||||
<input name="q" size=40 value="{$filter.search.q|stripslashes|htmlspecialchars}">
|
||||
{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
|
||||
<a href="admin/popuphelp.php?page=quick_search" onclick="popuphelp(this.href);return false;" title="{'Help'|@translate}"><span class="icon-help-circled"></span></a>
|
||||
{if (isset($no_search_results))}
|
||||
<div>{'No results for'|@translate} :
|
||||
<em><strong>
|
||||
{foreach $no_search_results as $res}
|
||||
{if !$res@first} — {/if}
|
||||
{$res}
|
||||
{/foreach}
|
||||
</strong></em>
|
||||
</div>
|
||||
{/if}
|
||||
</li>
|
||||
|
||||
<li id="filter_filesize" {if !isset($filter.filesize)}style="display:none"{/if}>
|
||||
<a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a>
|
||||
<input type="checkbox" name="filter_filesize_use" class="useFilterCheckbox" {if isset($filter.filesize)}checked="checked"{/if}>
|
||||
{'Filesize'|translate}
|
||||
|
||||
<blockquote>
|
||||
<div data-slider="filesizes">
|
||||
<span class="slider-info">{'between %s and %s MB'|translate:$filesize.selected.min:$filesize.selected.max}</span>
|
||||
| <a class="slider-choice" data-min="{$filesize.bounds.min}" data-max="{$filesize.bounds.max}">{'Reset'|translate}</a>
|
||||
<div class="slider-slider"></div>
|
||||
|
||||
<input type="hidden" data-input="min" name="filter_filesize_min" value="{$filesize.selected.min}">
|
||||
<input type="hidden" data-input="max" name="filter_filesize_max" value="{$filesize.selected.max}">
|
||||
</div>
|
||||
</blockquote>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p class="actionButtons">
|
||||
<select id="addFilter">
|
||||
<option value="-1">{'Add a filter'|@translate}</option>
|
||||
<option disabled="disabled">------------------</option>
|
||||
<option value="filter_prefilter" {if isset($filter.prefilter)}disabled="disabled"{/if}>{'Predefined filter'|@translate}</option>
|
||||
<option value="filter_category" {if isset($filter.category)}disabled="disabled"{/if}>{'Album'|@translate}</option>
|
||||
<option value="filter_tags" {if isset($filter.tags)}disabled="disabled"{/if}>{'Tags'|@translate}</option>
|
||||
<option value="filter_level" {if isset($filter.level)}disabled="disabled"{/if}>{'Privacy level'|@translate}</option>
|
||||
<option value="filter_dimension" {if isset($filter.dimension)}disabled="disabled"{/if}>{'Dimensions'|@translate}</option>
|
||||
<option value="filter_filesize" {if isset($filter.filesize)}disabled="disabled"{/if}>{'Filesize'|@translate}</option>
|
||||
<option value="filter_search"{if isset($filter.search)} disabled="disabled"{/if}>{'Search'|@translate}</option>
|
||||
</select>
|
||||
<a id="removeFilters" class="icon-cancel">{'Remove all filters'|@translate}</a>
|
||||
</p>
|
||||
|
||||
<p class="actionButtons" id="applyFilterBlock">
|
||||
<button id="applyFilter" name="submitFilter" type="submit" class="buttonLike">
|
||||
<i class="icon-arrows-cw"></i> {'Refresh photo set'|@translate}
|
||||
</button>
|
||||
</p>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
|
||||
<legend><i class="icon-check"></i>{'Selection'|@translate}</legend>
|
||||
|
||||
{if !empty($thumbnails)}
|
||||
<p id="checkActions">
|
||||
{'Select:'|@translate}
|
||||
{if $nb_thumbs_set > $nb_thumbs_page}
|
||||
<a href="#" id="selectAll">{'The whole page'|@translate}</a>,
|
||||
<a href="#" id="selectSet">{'The whole set'|@translate}</a>,
|
||||
{else}
|
||||
<a href="#" id="selectAll">{'All'|@translate}</a>,
|
||||
{/if}
|
||||
<a href="#" id="selectNone">{'None'|@translate}</a>,
|
||||
<a href="#" id="selectInvert">{'Invert'|@translate}</a>
|
||||
|
||||
<span id="selectedMessage"></span>
|
||||
|
||||
<input type="checkbox" name="setSelected" style="display:none" {if count($selection) == $nb_thumbs_set}checked="checked"{/if}>
|
||||
</p>
|
||||
|
||||
<ul class="thumbnails">
|
||||
{html_style}
|
||||
UL.thumbnails SPAN.wrap2{ldelim}
|
||||
width: {$thumb_params->max_width()+2}px;
|
||||
}
|
||||
UL.thumbnails SPAN.wrap2 {ldelim}
|
||||
height: {$thumb_params->max_height()+25}px;
|
||||
}
|
||||
{/html_style}
|
||||
{foreach from=$thumbnails item=thumbnail}
|
||||
{assign var='isSelected' value=$thumbnail.id|@in_array:$selection}
|
||||
<li{if $isSelected} class="thumbSelected"{/if}>
|
||||
<span class="wrap1">
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span><input type="checkbox" name="selection[]" value="{$thumbnail.id}" {if $isSelected}checked="checked"{/if}>
|
||||
<span class="wrap2">
|
||||
<div class="actions"><a href="{$thumbnail.FILE_SRC}" class="preview-box">{'Zoom'|@translate}</a> · <a href="{$thumbnail.U_EDIT}" target="_blank">{'Edit'|@translate}</a></div>
|
||||
{if $thumbnail.level > 0}
|
||||
<em class="levelIndicatorB">{'Level %d'|@sprintf:$thumbnail.level|@translate}</em>
|
||||
<em class="levelIndicatorF" title="{'Who can see these photos?'|@translate} : ">{'Level %d'|@sprintf:$thumbnail.level|@translate}</em>
|
||||
{/if}
|
||||
<img src="{$thumbnail.thumb->get_url()}" alt="{$thumbnail.file}" title="{$thumbnail.TITLE|@escape:'html'}" {$thumbnail.thumb->get_size_htm()}>
|
||||
</span>
|
||||
</label>
|
||||
</span>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
|
||||
{if !empty($navbar) }
|
||||
<div style="clear:both;">
|
||||
|
||||
<div style="float:left">
|
||||
{include file='navigation_bar.tpl'|@get_extent:'navbar'}
|
||||
</div>
|
||||
|
||||
<div style="float:right;margin-top:10px;">{'display'|@translate}
|
||||
<a href="{$U_DISPLAY}&display=20">20</a>
|
||||
· <a href="{$U_DISPLAY}&display=50">50</a>
|
||||
· <a href="{$U_DISPLAY}&display=100">100</a>
|
||||
· <a href="{$U_DISPLAY}&display=all">{'all'|@translate}</a>
|
||||
{'photos per page'|@translate}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{else}
|
||||
<div>{'No photo in the current set.'|@translate}</div>
|
||||
{/if}
|
||||
</fieldset>
|
||||
|
||||
<fieldset id="action">
|
||||
|
||||
<legend><i class="icon-cog"></i>{'Action'|@translate}</legend>
|
||||
<div id="forbidAction"{if count($selection) != 0} style="display:none"{/if}>{'No photo selected, no action possible.'|@translate}</div>
|
||||
<div id="permitAction"{if count($selection) == 0} style="display:none"{/if}>
|
||||
|
||||
<select name="selectAction">
|
||||
<option value="-1">{'Choose an action'|@translate}</option>
|
||||
<option disabled="disabled">------------------</option>
|
||||
<option value="delete" class="icon-trash">{'Delete selected photos'|@translate}</option>
|
||||
<option value="associate">{'Associate to album'|@translate}</option>
|
||||
<option value="move">{'Move to album'|@translate}</option>
|
||||
{if !empty($associated_categories)}
|
||||
<option value="dissociate">{'Dissociate from album'|@translate}</option>
|
||||
{/if}
|
||||
<option value="add_tags">{'Add tags'|@translate}</option>
|
||||
{if !empty($associated_tags)}
|
||||
<option value="del_tags">{'remove tags'|@translate}</option>
|
||||
{/if}
|
||||
<option value="author">{'Set author'|@translate}</option>
|
||||
<option value="title">{'Set title'|@translate}</option>
|
||||
<option value="date_creation">{'Set creation date'|@translate}</option>
|
||||
<option value="level" class="icon-lock">{'Who can see these photos?'|@translate}</option>
|
||||
<option value="metadata">{'Synchronize metadata'|@translate}</option>
|
||||
{if ($IN_CADDIE)}
|
||||
<option value="remove_from_caddie">{'Remove from caddie'|@translate}</option>
|
||||
{else}
|
||||
<option value="add_to_caddie">{'Add to caddie'|@translate}</option>
|
||||
{/if}
|
||||
<option value="delete_derivatives">{'Delete multiple size images'|@translate}</option>
|
||||
<option value="generate_derivatives">{'Generate multiple size images'|@translate}</option>
|
||||
{if !empty($element_set_global_plugins_actions)}
|
||||
{foreach from=$element_set_global_plugins_actions item=action}
|
||||
<option value="{$action.ID}">{$action.NAME}</option>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</select>
|
||||
|
||||
<!-- delete -->
|
||||
<div id="action_delete" class="bulkAction">
|
||||
<p><label><input type="checkbox" name="confirm_deletion" value="1"> {'Are you sure?'|@translate}</label><span class="errors" style="display:none">{"You need to confirm deletion"|translate}</span></p>
|
||||
</div>
|
||||
|
||||
<!-- associate -->{* also used for "move" action *}
|
||||
<div id="action_associate" class="bulkAction">
|
||||
<select data-selectize="categories" data-default="first" name="associate" style="width:600px"></select>
|
||||
<br>{'... or '|@translate}
|
||||
<a href="#" data-add-album="associate" title="{'create a new album'|@translate}">{'create a new album'|@translate}</a>
|
||||
</div>
|
||||
|
||||
<!-- dissociate -->
|
||||
<div id="action_dissociate" class="bulkAction">
|
||||
<select data-selectize="categories" placeholder="{'Type in a search term'|translate}"
|
||||
name="dissociate" style="width:600px"></select>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- add_tags -->
|
||||
<div id="action_add_tags" class="bulkAction">
|
||||
<select data-selectize="tags" data-create="true" placeholder="{'Type in a search term'|translate}"
|
||||
name="add_tags[]" multiple style="width:400px;"></select>
|
||||
</div>
|
||||
|
||||
<!-- del_tags -->
|
||||
<div id="action_del_tags" class="bulkAction">
|
||||
{if !empty($associated_tags)}
|
||||
<select data-selectize="tags" name="del_tags[]" multiple style="width:400px;"
|
||||
placeholder="{'Type in a search term'|translate}">
|
||||
{foreach from=$associated_tags item=tag}
|
||||
<option value="{$tag.id}">{$tag.name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<!-- author -->
|
||||
<div id="action_author" class="bulkAction">
|
||||
<label><input type="checkbox" name="remove_author"> {'remove author'|@translate}</label><br>
|
||||
<input type="text" class="large" name="author" placeholder="{'Type here the author name'|@translate}">
|
||||
</div>
|
||||
|
||||
<!-- title -->
|
||||
<div id="action_title" class="bulkAction">
|
||||
<label><input type="checkbox" name="remove_title"> {'remove title'|@translate}</label><br>
|
||||
<input type="text" class="large" name="title" placeholder="{'Type here the title'|@translate}">
|
||||
</div>
|
||||
|
||||
<!-- date_creation -->
|
||||
<div id="action_date_creation" class="bulkAction">
|
||||
<label><input type="checkbox" name="remove_date_creation"> {'remove creation date'|@translate}</label><br>
|
||||
<div id="set_date_creation">
|
||||
<input type="hidden" name="date_creation" value="{$DATE_CREATION}">
|
||||
<label>
|
||||
<i class="icon-calendar"></i>
|
||||
<input type="text" data-datepicker="date_creation" readonly>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- level -->
|
||||
<div id="action_level" class="bulkAction">
|
||||
<select name="level" size="1">
|
||||
{html_options options=$level_options selected=$level_options_selected}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- metadata -->
|
||||
<div id="action_metadata" class="bulkAction">
|
||||
</div>
|
||||
|
||||
<!-- generate derivatives -->
|
||||
<div id="action_generate_derivatives" class="bulkAction">
|
||||
<a href="javascript:selectGenerateDerivAll()">{'All'|@translate}</a>,
|
||||
<a href="javascript:selectGenerateDerivNone()">{'None'|@translate}</a>
|
||||
<br>
|
||||
{foreach from=$generate_derivatives_types key=type item=disp}
|
||||
<label><input type="checkbox" name="generate_derivatives_type[]" value="{$type}"> {$disp}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
<!-- delete derivatives -->
|
||||
<div id="action_delete_derivatives" class="bulkAction">
|
||||
<a href="javascript:selectDelDerivAll()">{'All'|@translate}</a>,
|
||||
<a href="javascript:selectDelDerivNone()">{'None'|@translate}</a>
|
||||
<br>
|
||||
{foreach from=$del_derivatives_types key=type item=disp}
|
||||
<label><input type="checkbox" name="del_derivatives_type[]" value="{$type}"> {$disp}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
<!-- progress bar -->
|
||||
<div id="regenerationMsg" class="bulkAction" style="display:none">
|
||||
<p id="regenerationText" style="margin-bottom:10px;">{'Generate multiple size images'|@translate}</p>
|
||||
<span class="progressBar" id="progressBar"></span>
|
||||
<input type="hidden" name="regenerateSuccess" value="0">
|
||||
<input type="hidden" name="regenerateError" value="0">
|
||||
</div>
|
||||
|
||||
<!-- plugins -->
|
||||
{if !empty($element_set_global_plugins_actions)}
|
||||
{foreach from=$element_set_global_plugins_actions item=action}
|
||||
<div id="action_{$action.ID}" class="bulkAction">
|
||||
{if !empty($action.CONTENT)}{$action.CONTENT}{/if}
|
||||
</div>
|
||||
{/foreach}
|
||||
{/if}
|
||||
|
||||
<p id="applyActionBlock" style="display:none" class="actionButtons">
|
||||
<button id="applyAction" name="submit" type="submit" class="buttonLike">
|
||||
<i class="icon-cog-alt"></i> {'Apply action'|translate}
|
||||
</button>
|
||||
|
||||
<span id="applyOnDetails"></span>
|
||||
</p>
|
||||
|
||||
</div> <!-- #permitAction -->
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
||||
</div> <!-- #batchManagerGlobal -->
|
||||
@@ -0,0 +1,123 @@
|
||||
{include file='include/autosize.inc.tpl'}
|
||||
{include file='include/datepicker.inc.tpl'}
|
||||
{include file='include/colorbox.inc.tpl'}
|
||||
|
||||
{combine_script id='LocalStorageCache' load='footer' path='admin/themes/default/js/LocalStorageCache.js'}
|
||||
|
||||
{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'}
|
||||
{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"}
|
||||
|
||||
{footer_script}
|
||||
(function(){
|
||||
{* <!-- TAGS --> *}
|
||||
var tagsCache = new TagsCache({
|
||||
serverKey: '{$CACHE_KEYS.tags}',
|
||||
serverId: '{$CACHE_KEYS._hash}',
|
||||
rootUrl: '{$ROOT_URL}'
|
||||
});
|
||||
|
||||
tagsCache.selectize(jQuery('[data-selectize=tags]'), { lang: {
|
||||
'Add': '{'Create'|translate}'
|
||||
}});
|
||||
|
||||
{* <!-- DATEPICKER --> *}
|
||||
jQuery(function(){ {* <!-- onLoad needed to wait localization loads --> *}
|
||||
jQuery('[data-datepicker]').pwgDatepicker({
|
||||
showTimepicker: true,
|
||||
cancelButton: '{'Cancel'|translate}'
|
||||
});
|
||||
});
|
||||
|
||||
{* <!-- THUMBNAILS --> *}
|
||||
jQuery("a.preview-box").colorbox( {
|
||||
photo: true
|
||||
});
|
||||
}());
|
||||
{/footer_script}
|
||||
|
||||
<h2>{'Batch Manager'|@translate}</h2>
|
||||
|
||||
<form action="{$F_ACTION}" method="POST">
|
||||
<fieldset>
|
||||
<legend>{'Display options'|@translate}</legend>
|
||||
<p>{'photos per page'|@translate} :
|
||||
<a href="{$U_ELEMENTS_PAGE}&display=5">5</a>
|
||||
| <a href="{$U_ELEMENTS_PAGE}&display=10">10</a>
|
||||
| <a href="{$U_ELEMENTS_PAGE}&display=50">50</a>
|
||||
</p>
|
||||
|
||||
</fieldset>
|
||||
|
||||
{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
|
||||
|
||||
{if !empty($elements) }
|
||||
<div><input type="hidden" name="element_ids" value="{$ELEMENT_IDS}"></div>
|
||||
{foreach from=$elements item=element}
|
||||
<fieldset class="elementEdit">
|
||||
<legend>{$element.LEGEND}</legend>
|
||||
|
||||
<span class="thumb">
|
||||
<a href="{$element.FILE_SRC}" class="preview-box icon-zoom-in" title="{$element.LEGEND|@htmlspecialchars}"><img src="{$element.TN_SRC}" alt=""></a>
|
||||
<a href="{$element.U_EDIT}" class="icon-pencil">{'Edit'|@translate}</a>
|
||||
</span>
|
||||
|
||||
<table>
|
||||
|
||||
<tr>
|
||||
<td><strong>{'Title'|@translate}</strong></td>
|
||||
<td><input type="text" class="large" name="name-{$element.id}" value="{$element.NAME}"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><strong>{'Author'|@translate}</strong></td>
|
||||
<td><input type="text" class="large" name="author-{$element.id}" value="{$element.AUTHOR}"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><strong>{'Creation date'|@translate}</strong></td>
|
||||
<td>
|
||||
<input type="hidden" name="date_creation-{$element.id}" value="{$element.DATE_CREATION}">
|
||||
<label>
|
||||
<i class="icon-calendar"></i>
|
||||
<input type="text" data-datepicker="date_creation-{$element.id}" data-datepicker-unset="date_creation_unset-{$element.id}" readonly>
|
||||
</label>
|
||||
<a href="#" class="icon-cancel-circled" id="date_creation_unset-{$element.id}">{'unset'|translate}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>{'Who can see this photo?'|@translate}</strong></td>
|
||||
<td>
|
||||
<select name="level-{$element.id}">
|
||||
{html_options options=$level_options selected=$element.LEVEL}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><strong>{'Tags'|@translate}</strong></td>
|
||||
<td>
|
||||
<select data-selectize="tags" data-value="{$element.TAGS|@json_encode|escape:html}"
|
||||
placeholder="{'Type in a search term'|translate}"
|
||||
data-create="true" name="tags-{$element.id}[]" multiple style="width:500px;"></select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><strong>{'Description'|@translate}</strong></td>
|
||||
<td><textarea cols="50" rows="5" name="description-{$element.id}" id="description-{$element.id}" class="description">{$element.DESCRIPTION}</textarea></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
</fieldset>
|
||||
{/foreach}
|
||||
|
||||
{if !empty($navbar)}{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
|
||||
|
||||
<p>
|
||||
<input type="submit" value="{'Submit'|@translate}" name="submit">
|
||||
<input type="reset" value="{'Reset'|@translate}">
|
||||
</p>
|
||||
{/if}
|
||||
|
||||
</form>
|
||||
157
zoesch.de/galerie/admin/themes/default/template/cat_list.tpl
Normal file
@@ -0,0 +1,157 @@
|
||||
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
|
||||
|
||||
{footer_script require='jquery.ui.sortable'}{literal}
|
||||
jQuery(document).ready(function(){
|
||||
jQuery(".drag_button").show();
|
||||
jQuery(".categoryLi").css("cursor","move");
|
||||
jQuery(".categoryUl").sortable({
|
||||
axis: "y",
|
||||
opacity: 0.8,
|
||||
update : function() {
|
||||
jQuery("#manualOrder").show();
|
||||
jQuery("#notManualOrder").hide();
|
||||
jQuery("#formAutoOrder").hide();
|
||||
jQuery("#formCreateAlbum").hide();
|
||||
}
|
||||
});
|
||||
|
||||
jQuery("#categoryOrdering").submit(function(){
|
||||
ar = jQuery('.categoryUl').sortable('toArray');
|
||||
for(i=0;i<ar.length;i++) {
|
||||
cat = ar[i].split('cat_');
|
||||
document.getElementsByName('catOrd[' + cat[1] + ']')[0].value = i;
|
||||
}
|
||||
});
|
||||
|
||||
jQuery("input[name=order_type]").click(function () {
|
||||
jQuery("#automatic_order_params").hide();
|
||||
if (jQuery("input[name=order_type]:checked").val() == "automatic") {
|
||||
jQuery("#automatic_order_params").show();
|
||||
}
|
||||
});
|
||||
|
||||
jQuery("#addAlbumOpen").click(function(){
|
||||
jQuery("#formCreateAlbum").toggle();
|
||||
jQuery("input[name=virtual_name]").focus();
|
||||
jQuery("#formAutoOrder").hide();
|
||||
});
|
||||
|
||||
jQuery("#addAlbumClose").click(function(){
|
||||
jQuery("#formCreateAlbum").hide();
|
||||
});
|
||||
|
||||
|
||||
jQuery("#autoOrderOpen").click(function(){
|
||||
jQuery("#formAutoOrder").toggle();
|
||||
jQuery("#formCreateAlbum").hide();
|
||||
});
|
||||
|
||||
jQuery("#autoOrderClose").click(function(){
|
||||
jQuery("#formAutoOrder").hide();
|
||||
});
|
||||
|
||||
jQuery("#cancelManualOrder").click(function(){
|
||||
jQuery(".categoryUl").sortable("cancel");
|
||||
jQuery("#manualOrder").hide();
|
||||
jQuery("#notManualOrder").show();
|
||||
});
|
||||
});
|
||||
{/literal}{/footer_script}
|
||||
|
||||
<h2><span style="letter-spacing:0">{$CATEGORIES_NAV}</span> › {'Album list management'|@translate}</h2>
|
||||
<p class="showCreateAlbum" id="notManualOrder">
|
||||
<a href="#" id="addAlbumOpen" class="icon-plus-circled">{'create a new album'|@translate}</a>
|
||||
{if count($categories)}<span class="userSeparator">·</span><a href="#" id="autoOrderOpen" class="icon-sort-number-up">{'apply automatic sort order'|@translate}</a>{/if}
|
||||
{if ($PARENT_EDIT)}<span class="userSeparator">·</span><a href="{$PARENT_EDIT}" class="icon-pencil"></span>{'edit'|@translate}</a>{/if}
|
||||
</p>
|
||||
<form id="formCreateAlbum" action="{$F_ACTION}" method="post" style="display:none;">
|
||||
<fieldset class="with-border">
|
||||
<legend>{'create a new album'|@translate}</legend>
|
||||
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
|
||||
|
||||
<p>
|
||||
<strong>{'Album name'|@translate}</strong><br>
|
||||
<input type="text" name="virtual_name" maxlength="255">
|
||||
</p>
|
||||
|
||||
<p class="actionButtons">
|
||||
<button name="submitAdd" type="submit" class="buttonLike">
|
||||
<i class="icon-plus-circled"></i> {'Create'|translate}
|
||||
</button>
|
||||
|
||||
<a href="#" id="addAlbumClose" class="icon-cancel-circled">{'Cancel'|@translate}</a>
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
{if count($categories)}
|
||||
<form id="formAutoOrder" action="{$F_ACTION}" method="post" style="display:none;">
|
||||
<fieldset class="with-border">
|
||||
<legend>{'Automatic sort order'|@translate}</legend>
|
||||
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
|
||||
|
||||
<p><strong>{'Sort order'|@translate}</strong>
|
||||
{foreach from=$sort_orders key=sort_code item=sort_label}
|
||||
<br>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-dot-circled"></span>
|
||||
<input type="radio" value="{$sort_code}" name="order_by" {if $sort_code eq $sort_order_checked}checked="checked"{/if}> {$sort_label}
|
||||
</label>
|
||||
{/foreach}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="recursive"> <strong>{'Apply to sub-albums'|@translate}</strong>
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<p class="actionButtons">
|
||||
<button name="submitAutoOrder" type="submit" class="buttonLike">
|
||||
<i class="icon-floppy"></i> {'Save order'|translate}
|
||||
</button>
|
||||
<a href="#" id="autoOrderClose" class="icon-cancel-circled">{'Cancel'|@translate}</a>
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
{/if}
|
||||
|
||||
<form id="categoryOrdering" action="{$F_ACTION}" method="post">
|
||||
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
|
||||
<p id="manualOrder" style="display:none">
|
||||
<input class="submit" name="submitManualOrder" type="submit" value="{'Save manual order'|@translate}">
|
||||
{'... or '|@translate} <a href="#" id="cancelManualOrder">{'cancel manual order'|@translate}</a>
|
||||
</p>
|
||||
|
||||
{if count($categories)}
|
||||
<ul class="categoryUl">
|
||||
{foreach from=$categories item=category}
|
||||
<li class="categoryLi{if $category.IS_VIRTUAL} virtual_cat{/if}" id="cat_{$category.ID}">
|
||||
<!-- category {$category.ID} -->
|
||||
<p class="albumTitle">
|
||||
<img src="{$themeconf.admin_icon_dir}/cat_move.png" class="drag_button" style="display:none;" alt="{'Drag to re-order'|@translate}" title="{'Drag to re-order'|@translate}">
|
||||
<strong><a href="{$category.U_CHILDREN}" title="{'manage sub-albums'|@translate}">{$category.NAME}</a></strong>
|
||||
<span class="albumInfos"><span class="userSeparator">·</span> {$category.NB_PHOTOS|translate_dec:'%d photo':'%d photos'} <span class="userSeparator">·</span> {$category.NB_SUB_PHOTOS|translate_dec:'%d photo':'%d photos'} {$category.NB_SUB_ALBUMS|translate_dec:'in %d sub-album':'in %d sub-albums'}</span>
|
||||
</p>
|
||||
|
||||
<input type="hidden" name="catOrd[{$category.ID}]" value="{$category.RANK}">
|
||||
|
||||
<p class="albumActions">
|
||||
<a href="{$category.U_EDIT}"><span class="icon-pencil"></span>{'Edit'|@translate}</a>
|
||||
<span class="userSeparator">·</span><a href="{$category.U_CHILDREN}"><span class="icon-sitemap"></span>{'manage sub-albums'|@translate}</a>
|
||||
{if isset($category.U_SYNC) }
|
||||
<span class="userSeparator">·</span><a href="{$category.U_SYNC}"><span class="icon-exchange"></span>{'Synchronize'|@translate}</a>
|
||||
{/if}
|
||||
{if isset($category.U_DELETE) }
|
||||
<span class="userSeparator">·</span><a href="{$category.U_DELETE}" onclick="return confirm('{'Are you sure?'|@translate|@escape:javascript}');"><span class="icon-trash"></span>{'delete album'|@translate}</a>
|
||||
{/if}
|
||||
{if cat_admin_access($category.ID)}
|
||||
<span class="userSeparator">·</span><a href="{$category.U_JUMPTO}">{'jump to album'|@translate} →</a>
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
</form>
|
||||
307
zoesch.de/galerie/admin/themes/default/template/cat_modify.tpl
Normal file
@@ -0,0 +1,307 @@
|
||||
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
|
||||
{include file='include/colorbox.inc.tpl'}
|
||||
{combine_script id='LocalStorageCache' load='footer' path='admin/themes/default/js/LocalStorageCache.js'}
|
||||
|
||||
{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'}
|
||||
{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"}
|
||||
|
||||
{footer_script}
|
||||
{* <!-- CATEGORIES --> *}
|
||||
var categoriesCache = new CategoriesCache({
|
||||
serverKey: '{$CACHE_KEYS.categories}',
|
||||
serverId: '{$CACHE_KEYS._hash}',
|
||||
rootUrl: '{$ROOT_URL}'
|
||||
});
|
||||
|
||||
categoriesCache.selectize(jQuery('[data-selectize=categories]'), {
|
||||
default: 0,
|
||||
filter: function(categories, options) {
|
||||
// remove itself and children
|
||||
var filtered = jQuery.grep(categories, function(cat) {
|
||||
return !(/\b{$CAT_ID}\b/.test(cat.uppercats));
|
||||
});
|
||||
|
||||
filtered.push({
|
||||
id: 0,
|
||||
fullname: '------------',
|
||||
global_rank: 0
|
||||
});
|
||||
|
||||
return filtered;
|
||||
}
|
||||
});
|
||||
|
||||
jQuery(document).ready(function() {
|
||||
jQuery(document).on('click', '.refreshRepresentative', function(e) {
|
||||
var $this = jQuery(this);
|
||||
var method = 'pwg.categories.refreshRepresentative';
|
||||
|
||||
jQuery.ajax({
|
||||
url: "ws.php?format=json&method="+method,
|
||||
type:"POST",
|
||||
data: {
|
||||
category_id: $this.data("category_id")
|
||||
},
|
||||
success:function(data) {
|
||||
var data = jQuery.parseJSON(data);
|
||||
if (data.stat == 'ok') {
|
||||
jQuery(".albumThumbnailImage")
|
||||
.attr('href', data.result.url)
|
||||
.find("img").attr('src', data.result.src)
|
||||
.end().show();
|
||||
|
||||
jQuery(".albumThumbnailRandom").hide();
|
||||
}
|
||||
else {
|
||||
alert("error on "+method);
|
||||
}
|
||||
},
|
||||
error:function(XMLHttpRequest, textStatus, errorThrows) {
|
||||
alert("serious error on "+method);
|
||||
}
|
||||
});
|
||||
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
jQuery(document).on('click', '.deleteRepresentative', function(e) {
|
||||
var $this = jQuery(this);
|
||||
var method = 'pwg.categories.deleteRepresentative';
|
||||
|
||||
jQuery.ajax({
|
||||
url: "ws.php?format=json&method="+method,
|
||||
type:"POST",
|
||||
data: {
|
||||
category_id: $this.data("category_id")
|
||||
},
|
||||
success:function(data) {
|
||||
var data = jQuery.parseJSON(data);
|
||||
if (data.stat == 'ok') {
|
||||
jQuery(".albumThumbnailImage").hide();
|
||||
jQuery(".albumThumbnailRandom").show();
|
||||
}
|
||||
else {
|
||||
alert("error on "+method);
|
||||
}
|
||||
},
|
||||
error:function(XMLHttpRequest, textStatus, errorThrows) {
|
||||
alert("serious error on "+method);
|
||||
}
|
||||
});
|
||||
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
jQuery(".deleteAlbum").click(function() {
|
||||
jQuery.colorbox({
|
||||
inline:true,
|
||||
title:"{'delete album'|translate|escape:javascript}",
|
||||
href:".delete_popin"
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
function set_photo_deletion_mode() {
|
||||
if (jQuery("input[name=photo_deletion_mode]").length > 0) {
|
||||
var $photo_deletion_mode = jQuery("input[name=photo_deletion_mode]:checked").val();
|
||||
jQuery("#deleteConfirm").data("photo_deletion_mode", $photo_deletion_mode);
|
||||
}
|
||||
}
|
||||
|
||||
set_photo_deletion_mode();
|
||||
|
||||
jQuery("input[name=photo_deletion_mode]").change(function() {
|
||||
set_photo_deletion_mode();
|
||||
});
|
||||
|
||||
jQuery("#deleteConfirm").click(function() {
|
||||
if (jQuery("input[name=photo_deletion_mode]").length > 0) {
|
||||
var $href = jQuery(this).attr("href");
|
||||
jQuery(this).attr("href", $href+"&photo_deletion_mode="+jQuery(this).data("photo_deletion_mode"));
|
||||
}
|
||||
});
|
||||
|
||||
jQuery(document).on('click', '.close-delete_popin', function(e) {
|
||||
jQuery('.delete_popin').colorbox.close();
|
||||
e.preventDefault();
|
||||
});
|
||||
});
|
||||
|
||||
{/footer_script}
|
||||
|
||||
{html_style}
|
||||
.delete_popin {
|
||||
padding:20px 30px;
|
||||
}
|
||||
|
||||
.delete_popin p {
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.delete_popin ul {
|
||||
padding:0;
|
||||
margin:30px 0;
|
||||
}
|
||||
|
||||
.delete_popin ul li {
|
||||
list-style-type:none;
|
||||
margin:10px 0;
|
||||
}
|
||||
|
||||
.delete_popin .buttonLike {
|
||||
padding:5px;
|
||||
margin-right:10px;
|
||||
}
|
||||
|
||||
.delete_popin p.popin-actions {
|
||||
margin-top:30px;
|
||||
}
|
||||
{/html_style}
|
||||
|
||||
|
||||
<div class="titrePage">
|
||||
<h2><span style="letter-spacing:0">{$CATEGORIES_NAV}</span> › {'Edit album'|@translate} {$TABSHEET_TITLE}</h2>
|
||||
</div>
|
||||
|
||||
<div id="catModify">
|
||||
|
||||
<fieldset>
|
||||
<legend>{'Informations'|@translate}</legend>
|
||||
|
||||
<table style="width:100%">
|
||||
<tr>
|
||||
<td id="albumThumbnail">
|
||||
{if isset($representant) }
|
||||
<a class="albumThumbnailImage" style="{if !isset($representant.picture)}display:none{/if}" href="{$representant.picture.url}"><img src="{$representant.picture.src}"></a>
|
||||
<img class="albumThumbnailRandom" style="{if isset($representant.picture)}display:none{/if}" src="{$ROOT_URL}{$themeconf.admin_icon_dir}/category_representant_random.png" alt="{'Random photo'|@translate}">
|
||||
|
||||
<p class="albumThumbnailActions">
|
||||
{if $representant.ALLOW_SET_RANDOM }
|
||||
<a href="#refresh" data-category_id="{$CAT_ID}" class="refreshRepresentative" title="{'Find a new representant by random'|@translate}">{'Refresh'|@translate}</a>
|
||||
{/if}
|
||||
|
||||
{if isset($representant.ALLOW_DELETE) }
|
||||
| <a href="#delete" data-category_id="{$CAT_ID}" class="deleteRepresentative" title="{'Delete Representant'|@translate}">{'Delete'|translate}</a>
|
||||
{/if}
|
||||
</p>
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
<td id="albumLinks">
|
||||
<p>{$INTRO}</p>
|
||||
<ul>
|
||||
{if cat_admin_access($CAT_ID)}
|
||||
<li><a class="icon-eye" href="{$U_JUMPTO}">{'jump to album'|@translate} →</a></li>
|
||||
{/if}
|
||||
|
||||
{if isset($U_MANAGE_ELEMENTS) }
|
||||
<li><a class="icon-picture" href="{$U_MANAGE_ELEMENTS}">{'manage album photos'|@translate}</a></li>
|
||||
{/if}
|
||||
|
||||
<li style="text-transform:lowercase;"><a class="icon-plus-circled" href="{$U_ADD_PHOTOS_ALBUM}">{'Add Photos'|translate}</a></li>
|
||||
|
||||
<li><a class="icon-sitemap" href="{$U_CHILDREN}">{'manage sub-albums'|@translate}</a></li>
|
||||
|
||||
{if isset($U_SYNC) }
|
||||
<li><a class="icon-exchange" href="{$U_SYNC}">{'Synchronize'|@translate}</a> ({'Directory'|@translate} = {$CAT_FULL_DIR})</li>
|
||||
{/if}
|
||||
|
||||
{if isset($U_DELETE) }
|
||||
<li><a class="icon-trash deleteAlbum" href="#">{'delete album'|@translate}</a></li>
|
||||
{/if}
|
||||
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<form action="{$F_ACTION}" method="POST">
|
||||
<fieldset>
|
||||
<legend>{'Properties'|@translate}</legend>
|
||||
<p>
|
||||
<strong>{'Name'|@translate}</strong>
|
||||
<br>
|
||||
<input type="text" class="large" name="name" value="{$CAT_NAME}" maxlength="255">
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>{'Description'|@translate}</strong>
|
||||
<br>
|
||||
<textarea cols="50" rows="5" name="comment" id="comment" class="description">{$CAT_COMMENT}</textarea>
|
||||
</p>
|
||||
|
||||
{if isset($parent_category) }
|
||||
<p>
|
||||
<strong>{'Parent album'|@translate}</strong>
|
||||
<br>
|
||||
<select data-selectize="categories" data-value="{$parent_category|@json_encode|escape:html}"
|
||||
name="parent" style="width:600px"></select>
|
||||
</p>
|
||||
{/if}
|
||||
|
||||
<p>
|
||||
<strong>{'Lock'|@translate}</strong>
|
||||
<br>
|
||||
<label class="font-checkbox"><span class="icon-dot-circled"></span><input type="radio" name="visible" value="true"{if $CAT_VISIBLE == "true"} checked="checked"{/if}>{'No'|translate}</label>
|
||||
<label class="font-checkbox"><span class="icon-dot-circled"></span><input type="radio" name="visible" value="true_sub">{'No and unlock sub-albums'|translate}</label>
|
||||
<label class="font-checkbox"><span class="icon-dot-circled"></span><input type="radio" name="visible" value="false"{if $CAT_VISIBLE == "false"} checked="checked"{/if}>{'Yes'|translate}</label>
|
||||
</p>
|
||||
|
||||
{if isset($CAT_COMMENTABLE)}
|
||||
<p>
|
||||
<strong>{'Comments'|@translate}</strong>
|
||||
<br>
|
||||
<label class="font-checkbox"><span class="icon-dot-circled"></span><input type="radio" name="commentable" value="false"{if $CAT_COMMENTABLE == "false"} checked="checked"{/if}>{'No'|translate}</label>
|
||||
<label class="font-checkbox"><span class="icon-dot-circled"></span><input type="radio" name="commentable" value="true"{if $CAT_COMMENTABLE == "true"} checked="checked"{/if}>{'Yes'|translate}</label>
|
||||
<label id="applytoSubAction">
|
||||
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="apply_commentable_on_sub"></label>
|
||||
{'Apply to sub-albums'|@translate}
|
||||
</label>
|
||||
</p>
|
||||
{/if}
|
||||
|
||||
<p style="margin:0">
|
||||
<button name="submit" type="submit" class="buttonLike">
|
||||
<i class="icon-floppy"></i> {'Save Settings'|@translate}
|
||||
</button>
|
||||
</p>
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
||||
<div style="display:none">
|
||||
<div class="delete_popin">
|
||||
|
||||
<p>
|
||||
{if $NB_SUBCATS == 0}
|
||||
{'Delete album "%s".'|translate:$CATEGORY_FULLNAME}
|
||||
{else}
|
||||
{'Delete album "%s" and its %d sub-albums.'|translate:$CATEGORIES_NAV:$NB_SUBCATS}
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
{if $NB_IMAGES_RECURSIVE > 0}
|
||||
<ul>
|
||||
{if $NB_IMAGES_ASSOCIATED_OUTSIDE > 0}
|
||||
<li><label class="font-checkbox"><span class="icon-dot-circled"></span><input type="radio" name="photo_deletion_mode" value="force_delete"> {'delete album and all %d photos, even the %d associated to other albums'|translate:$NB_IMAGES_RECURSIVE:$NB_IMAGES_ASSOCIATED_OUTSIDE}</label></li>
|
||||
{/if}
|
||||
{if $NB_IMAGES_BECOMING_ORPHAN > 0}
|
||||
<li><label class="font-checkbox"><span class="icon-dot-circled"></span><input type="radio" name="photo_deletion_mode" value="delete_orphans"> {'delete album and the %d orphan photos'|translate:$NB_IMAGES_BECOMING_ORPHAN}</label></li>
|
||||
{/if}
|
||||
<li><label class="font-checkbox"><span class="icon-dot-circled"></span><input type="radio" name="photo_deletion_mode" value="no_delete" checked="checked"> {'delete only album, not photos'|translate}</label></li>
|
||||
</ul>
|
||||
{/if}
|
||||
|
||||
<p class="popin-actions">
|
||||
<a id="deleteConfirm" class="buttonLike" type="submit" href="{$U_DELETE}"><i class="icon-trash"></i> {'Confirm deletion'|translate}</button>
|
||||
<a class="icon-cancel-circled close-delete_popin" href="#">{'Cancel'|translate}</a>
|
||||
</p>
|
||||
|
||||
{* $U_DELETE *}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> {* #catModify *}
|
||||
32
zoesch.de/galerie/admin/themes/default/template/cat_move.tpl
Normal file
@@ -0,0 +1,32 @@
|
||||
<div class="titrePage">
|
||||
<h2>{'Move albums'|@translate}</h2>
|
||||
</div>
|
||||
|
||||
<form method="post" action="{$F_ACTION}" class="filter" id="catMove">
|
||||
<fieldset>
|
||||
<legend>{'Move albums'|@translate}</legend>
|
||||
|
||||
<label>
|
||||
{'Virtual albums to move'|@translate}
|
||||
|
||||
<select class="categoryList" name="selection[]" multiple="multiple">
|
||||
{html_options options=$category_to_move_options}
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
{'New parent album'|@translate}
|
||||
|
||||
<select class="categoryDropDown" name="parent">
|
||||
<option value="0">------------</option>
|
||||
{html_options options=$category_parent_options}
|
||||
</select>
|
||||
</label>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<p style="text-align:left;">
|
||||
<input class="submit" type="submit" name="submit" value="{'Submit'|@translate}">
|
||||
</p>
|
||||
|
||||
</form>
|
||||
@@ -0,0 +1,12 @@
|
||||
<div class="titrePage">
|
||||
<h2>{'Properties'|@translate} {$TABSHEET_TITLE}</h2>
|
||||
</div>
|
||||
|
||||
<form method="post" action="{$F_ACTION}" id="cat_options">
|
||||
<fieldset>
|
||||
<legend>{$L_SECTION}</legend>
|
||||
{$DOUBLE_SELECT}
|
||||
</fieldset>
|
||||
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
|
||||
</form>
|
||||
|
||||
186
zoesch.de/galerie/admin/themes/default/template/cat_perm.tpl
Normal file
@@ -0,0 +1,186 @@
|
||||
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
|
||||
{combine_script id='LocalStorageCache' load='footer' path='admin/themes/default/js/LocalStorageCache.js'}
|
||||
|
||||
{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'}
|
||||
{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"}
|
||||
|
||||
{footer_script}
|
||||
(function(){
|
||||
{* <!-- GROUPS --> *}
|
||||
var groupsCache = new GroupsCache({
|
||||
serverKey: '{$CACHE_KEYS.groups}',
|
||||
serverId: '{$CACHE_KEYS._hash}',
|
||||
rootUrl: '{$ROOT_URL}'
|
||||
});
|
||||
|
||||
groupsCache.selectize(jQuery('[data-selectize=groups]'));
|
||||
|
||||
{* <!-- USERS --> *}
|
||||
var usersCache = new UsersCache({
|
||||
serverKey: '{$CACHE_KEYS.users}',
|
||||
serverId: '{$CACHE_KEYS._hash}',
|
||||
rootUrl: '{$ROOT_URL}'
|
||||
});
|
||||
|
||||
usersCache.selectize(jQuery('[data-selectize=users]'));
|
||||
|
||||
{* <!-- TOGGLES --> *}
|
||||
function checkStatusOptions() {
|
||||
if (jQuery("input[name=status]:checked").val() == "private") {
|
||||
jQuery("#privateOptions, #applytoSubAction").show();
|
||||
}
|
||||
else {
|
||||
jQuery("#privateOptions, #applytoSubAction").hide();
|
||||
}
|
||||
}
|
||||
|
||||
checkStatusOptions();
|
||||
jQuery("#selectStatus").change(function() {
|
||||
checkStatusOptions();
|
||||
});
|
||||
|
||||
{if isset($nb_users_granted_indirect) && $nb_users_granted_indirect>0}
|
||||
jQuery(".toggle-indirectPermissions").click(function(e){
|
||||
jQuery(".toggle-indirectPermissions").toggle();
|
||||
jQuery("#indirectPermissionsDetails").toggle();
|
||||
e.preventDefault();
|
||||
});
|
||||
{/if}
|
||||
}());
|
||||
{/footer_script}
|
||||
|
||||
<div class="titrePage">
|
||||
<h2><span style="letter-spacing:0">{$CATEGORIES_NAV}</span> › {'Edit album'|@translate} {$TABSHEET_TITLE}</h2>
|
||||
</div>
|
||||
|
||||
<form action="{$F_ACTION}" method="post" id="categoryPermissions">
|
||||
|
||||
<fieldset>
|
||||
<legend>{'Access type'|@translate}</legend>
|
||||
|
||||
<p id="selectStatus">
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-dot-circled"></span>
|
||||
<input type="radio" name="status" value="public" {if not $private}checked="checked"{/if}>
|
||||
<strong>{'public'|@translate}</strong> : <em>{'any visitor can see this album'|@translate}</em>
|
||||
</label>
|
||||
<br>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-dot-circled"></span>
|
||||
<input type="radio" name="status" value="private" {if $private}checked="checked"{/if}>
|
||||
<strong>{'private'|@translate}</strong> : <em>{'visitors need to login and have the appropriate permissions to see this album'|@translate}</em>
|
||||
</label>
|
||||
</p>
|
||||
</fieldset>
|
||||
|
||||
<fieldset id="privateOptions">
|
||||
<legend>{'Groups and users'|@translate}</legend>
|
||||
|
||||
<p>
|
||||
{if count($groups) > 0}
|
||||
<strong>{'Permission granted for groups'|@translate}</strong>
|
||||
<br>
|
||||
<select data-selectize="groups" data-value="{$groups_selected|@json_encode|escape:html}"
|
||||
placeholder="{'Type in a search term'|translate}"
|
||||
name="groups[]" multiple style="width:600px;"></select>
|
||||
{else}
|
||||
{'There is no group in this gallery.'|@translate} <a href="admin.php?page=group_list" class="externalLink">{'Group management'|@translate}</a>
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>{'Permission granted for users'|@translate}</strong>
|
||||
<br>
|
||||
<select data-selectize="users" data-value="{$users_selected|@json_encode|escape:html}"
|
||||
placeholder="{'Type in a search term'|translate}"
|
||||
name="users[]" multiple style="width:600px;"></select>
|
||||
</p>
|
||||
|
||||
{if isset($nb_users_granted_indirect) && $nb_users_granted_indirect>0}
|
||||
<p>
|
||||
{'%u users have automatic permission because they belong to a granted group.'|@translate:$nb_users_granted_indirect}
|
||||
<a href="#" class="toggle-indirectPermissions" style="display:none">{'hide details'|@translate}</a>
|
||||
<a href="#" class="toggle-indirectPermissions">{'show details'|@translate}</a>
|
||||
|
||||
<ul id="indirectPermissionsDetails" style="display:none">
|
||||
{foreach from=$user_granted_indirect_groups item=group_details}
|
||||
<li><strong>{$group_details.group_name}</strong> : {$group_details.group_users}</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</p>
|
||||
{/if}
|
||||
|
||||
{*
|
||||
<h4>{'Groups'|@translate}</h4>
|
||||
|
||||
<fieldset>
|
||||
<legend>{'Permission granted'|@translate}</legend>
|
||||
<ul>
|
||||
{foreach from=$group_granted_ids item=id}
|
||||
<li><label><input type="checkbox" name="deny_groups[]" value="{$id}"> {$all_groups[$id]}</label></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<input class="submit" type="submit" name="deny_groups_submit" value="{'Deny selected groups'|@translate}">
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{'Permission denied'|@translate}</legend>
|
||||
<ul>
|
||||
{foreach from=$group_denied_ids item=id}
|
||||
<li><label><input type="checkbox" name="grant_groups[]" value="{$id}"> {$all_groups[$id]}</label></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<input class="submit" type="submit" name="grant_groups_submit" value="{'Grant selected groups'|@translate}">
|
||||
<label><input type="checkbox" name="apply_on_sub">{'Apply to sub-albums'|@translate}</label>
|
||||
</fieldset>
|
||||
|
||||
<h4>{'Users'|@translate}</h4>
|
||||
|
||||
<fieldset>
|
||||
<legend>{'Permission granted'|@translate}</legend>
|
||||
<ul>
|
||||
{foreach from=$user_granted_direct_ids item=id}
|
||||
<li><label><input type="checkbox" name="deny_users[]" value="{$id}"> {$all_users[$id]}</label></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<input class="submit" type="submit" name="deny_users_submit" value="{'Deny selected users'|@translate}">
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{'Permission granted thanks to a group'|@translate}</legend>
|
||||
{if isset($user_granted_indirects) }
|
||||
<ul>
|
||||
{foreach from=$user_granted_indirects item=user_group}
|
||||
<li>{$user_group.USER} ({$user_group.GROUP})</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{'Permission denied'|@translate}</legend>
|
||||
<ul>
|
||||
{foreach from=$user_denied_ids item=id}
|
||||
<li><label><input type="checkbox" name="grant_users[]" value="{$id}"> {$all_users[$id]}</label></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<input class="submit" type="submit" name="grant_users_submit" value="{'Grant selected users'|@translate}">
|
||||
<label><input type="checkbox" name="apply_on_sub">{'Apply to sub-albums'|@translate}</label>
|
||||
</fieldset>
|
||||
*}
|
||||
</fieldset>
|
||||
|
||||
<p style="margin:12px;text-align:left;">
|
||||
<button name="submit" type="submit" class="buttonLike">
|
||||
<i class="icon-floppy"></i> {'Save Settings'|@translate}
|
||||
</button>
|
||||
|
||||
<label id="applytoSubAction" style="display:none;" class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="apply_on_sub" {if $INHERIT}checked="checked"{/if}>
|
||||
{'Apply to sub-albums'|@translate}
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
|
||||
</form>
|
||||
@@ -0,0 +1,109 @@
|
||||
<dl>
|
||||
<dt>{'Check integrity'|@translate}</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<form method="post" name="c13y" id="c13y" action="">
|
||||
<fieldset>
|
||||
<table class="table2">
|
||||
<tr class="throw">
|
||||
<th></th>
|
||||
<th>{'Anomaly'|@translate}</th>
|
||||
<th>{'Correction'|@translate}</th>
|
||||
</tr>
|
||||
{if isset($c13y_list)}
|
||||
{foreach from=$c13y_list item=c13y name=c13y_loop}
|
||||
<tr class="{if $smarty.foreach.c13y_loop.index is odd}row1{else}row2{/if}">
|
||||
<td>
|
||||
{if $c13y.can_select}
|
||||
<input type="checkbox" name="c13y_selection[]" value="{$c13y.id}" id="c13y_selection-{$c13y.id}"><label for="c13y_selection-{$c13y.id}"></label>
|
||||
{/if}
|
||||
</td>
|
||||
<td><label for="c13y_selection-{$c13y.id}">{$c13y.anomaly}</label></td>
|
||||
<td>
|
||||
<label for="c13y_selection-{$c13y.id}">
|
||||
{if $c13y.show_ignore_msg}
|
||||
{'The anomaly will be ignored until next application version'|@translate}
|
||||
<br>
|
||||
{'Correction the anomaly will cancel the fact that it\'s ignored'|@translate}
|
||||
{/if}
|
||||
{if $c13y.show_correction_fct}
|
||||
{'Automatic correction'|@translate}
|
||||
{/if}
|
||||
{if $c13y.show_correction_bad_fct}
|
||||
{'Impossible automatic correction'|@translate}
|
||||
{/if}
|
||||
{if $c13y.show_correction_success_fct}
|
||||
{'Correction applied with success'|@translate}
|
||||
{/if}
|
||||
{if !empty($c13y.correction_error_fct)}
|
||||
{'Correction applied with error'|@translate}
|
||||
<br>
|
||||
{$c13y.c13y.correction_error_fct}
|
||||
{/if}
|
||||
{if !empty($c13y.correction_msg)}
|
||||
{if $c13y.show_correction_success_fct or !empty($c13y.correction_error_fct) or $c13y.show_correction_fct or $c13y.show_correction_bad_fct }
|
||||
<br>
|
||||
{/if}
|
||||
{$c13y.correction_msg|@nl2br}
|
||||
{/if}
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</table>
|
||||
|
||||
<p>
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function(){
|
||||
|
||||
jQuery("#checkAllLink").click(function () {
|
||||
jQuery("#c13y input[type=checkbox]").attr('checked', true);
|
||||
return false;
|
||||
});
|
||||
|
||||
jQuery("#uncheckAllLink").click(function () {
|
||||
jQuery("#c13y input[type=checkbox]").attr('checked', false);
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
function DeselectAll( formulaire )
|
||||
{
|
||||
var elts = formulaire.elements;
|
||||
for(var i=0; i <elts.length; i++)
|
||||
{
|
||||
if (elts[i].type=='checkbox')
|
||||
elts[i].checked = false;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{/literal}
|
||||
{if $c13y_show_submit_ignore}
|
||||
<a href="#" id="checkAllLink">{'Check all'|@translate}</a>
|
||||
/ <a href="#" id="uncheckAllLink">{'Uncheck all'|@translate}</a>
|
||||
{/if}
|
||||
{if isset($c13y_do_check)}
|
||||
/ <a href="#" onclick="DeselectAll(document.getElementById('c13y'));
|
||||
{foreach from=$c13y_do_check item=ID}
|
||||
document.getElementById('c13y_selection-{$ID}').checked = true;
|
||||
{/foreach}
|
||||
return false;">{'Check automatic corrections'|@translate}</a>
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{if $c13y_show_submit_automatic_correction}
|
||||
<input class="submit" type="submit" value="{'Apply selected corrections'|@translate}" name="Apply selected corrections">
|
||||
{/if}
|
||||
{if $c13y_show_submit_ignore}
|
||||
<input class="submit" type="submit" value="{'Ignore selected anomalies'|@translate}" name="Ignore selected anomalies">
|
||||
{/if}
|
||||
<input class="submit" type="submit" value="{'Refresh'|@translate}" name="Refresh">
|
||||
</p>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
</ul>
|
||||
</dd>
|
||||
89
zoesch.de/galerie/admin/themes/default/template/comments.tpl
Normal file
@@ -0,0 +1,89 @@
|
||||
{footer_script}{literal}
|
||||
jQuery(document).ready(function(){
|
||||
function highlighComments() {
|
||||
jQuery(".checkComment").each(function() {
|
||||
var parent = jQuery(this).parent('tr');
|
||||
if (jQuery(this).children("input[type=checkbox]").is(':checked')) {
|
||||
jQuery(parent).addClass('selectedComment');
|
||||
}
|
||||
else {
|
||||
jQuery(parent).removeClass('selectedComment');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
jQuery(".checkComment").click(function(event) {
|
||||
var checkbox = jQuery(this).children("input[type=checkbox]");
|
||||
if (event.target.type !== 'checkbox') {
|
||||
jQuery(checkbox).prop('checked', !jQuery(checkbox).prop('checked'));
|
||||
}
|
||||
highlighComments();
|
||||
});
|
||||
|
||||
jQuery("#commentSelectAll").click(function () {
|
||||
jQuery(".checkComment input[type=checkbox]").prop('checked', true);
|
||||
highlighComments();
|
||||
return false;
|
||||
});
|
||||
|
||||
jQuery("#commentSelectNone").click(function () {
|
||||
jQuery(".checkComment input[type=checkbox]").prop('checked', false);
|
||||
highlighComments();
|
||||
return false;
|
||||
});
|
||||
|
||||
jQuery("#commentSelectInvert").click(function () {
|
||||
jQuery(".checkComment input[type=checkbox]").each(function() {
|
||||
jQuery(this).prop('checked', !$(this).prop('checked'));
|
||||
});
|
||||
highlighComments();
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
{/literal}{/footer_script}
|
||||
|
||||
<h2>{'User comments'|@translate} {$TABSHEET_TITLE}</h2>
|
||||
|
||||
<div class="commentFilter">
|
||||
<a href="{$F_ACTION}&filter=all" class="{if $filter == 'all'}commentFilterSelected{/if}">{'All'|@translate}</a> ({$nb_total})
|
||||
| <a href="{$F_ACTION}&filter=pending" class="{if $filter == 'pending'}commentFilterSelected{/if}">{'Waiting'|@translate}</a> ({$nb_pending})
|
||||
{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
{if !empty($comments) }
|
||||
<form method="post" action="{$F_ACTION}" id="pendingComments">
|
||||
|
||||
<table>
|
||||
{foreach from=$comments item=comment name=comment}
|
||||
<tr valign="top" class="{if $smarty.foreach.comment.index is odd}row2{else}row1{/if}">
|
||||
<td style="width:50px;" class="checkComment">
|
||||
<input type="checkbox" name="comments[]" value="{$comment.ID}">
|
||||
</td>
|
||||
<td>
|
||||
<div class="comment">
|
||||
<a class="illustration" href="{$comment.U_PICTURE}"><img src="{$comment.TN_SRC}"></a>
|
||||
<p class="commentHeader">{if $comment.IS_PENDING}<span class="pendingFlag">{'Waiting'|@translate}</span> - {/if}{if !empty($comment.IP)}{$comment.IP} - {/if}<strong>{$comment.AUTHOR}</strong> - <em>{$comment.DATE}</em></p>
|
||||
<blockquote>{$comment.CONTENT}</blockquote>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
|
||||
<p class="checkActions">
|
||||
{'Select:'|@translate}
|
||||
<a href="#" id="commentSelectAll">{'All'|@translate}</a>,
|
||||
<a href="#" id="commentSelectNone">{'None'|@translate}</a>,
|
||||
<a href="#" id="commentSelectInvert">{'Invert'|@translate}</a>
|
||||
</p>
|
||||
|
||||
<p class="bottomButtons">
|
||||
<input type="submit" name="validate" value="{'Validate'|@translate}">
|
||||
<input type="submit" name="reject" value="{'Reject'|@translate}">
|
||||
</p>
|
||||
|
||||
</form>
|
||||
{/if}
|
||||
@@ -0,0 +1,161 @@
|
||||
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
|
||||
|
||||
{footer_script}
|
||||
(function(){
|
||||
var targets = {
|
||||
'input[name="comments_validation"]' : '#email_admin_on_comment_validation',
|
||||
'input[name="user_can_edit_comment"]' : '#email_admin_on_comment_edition',
|
||||
'input[name="user_can_delete_comment"]' : '#email_admin_on_comment_deletion'
|
||||
};
|
||||
|
||||
for (selector in targets) {
|
||||
var target = targets[selector];
|
||||
|
||||
jQuery(target).toggle(jQuery(selector).is(':checked'));
|
||||
|
||||
(function(target){
|
||||
jQuery(selector).on('change', function() {
|
||||
jQuery(target).toggle($(this).is(':checked'));
|
||||
});
|
||||
})(target);
|
||||
};
|
||||
|
||||
function check_activate_comments() {
|
||||
jQuery("#comments_param_container").toggle(jQuery("input[name=activate_comments]").is(":checked"));
|
||||
}
|
||||
check_activate_comments();
|
||||
jQuery("input[name=activate_comments]").on("change", function() {
|
||||
check_activate_comments();
|
||||
});
|
||||
}());
|
||||
{/footer_script}
|
||||
|
||||
<h2>{'Piwigo configuration'|translate} {$TABSHEET_TITLE}</h2>
|
||||
|
||||
<form method="post" action="{$F_ACTION}" class="properties">
|
||||
|
||||
<div id="configContent">
|
||||
|
||||
<fieldset id="commentsConf" class="no-border">
|
||||
<ul>
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="activate_comments" id="activate_comments"{if ($comments.activate_comments)} checked="checked"{/if}>
|
||||
{'Activate comments'|translate}
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul id="comments_param_container">
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="comments_forall" {if ($comments.comments_forall)}checked="checked"{/if}>
|
||||
{'Comments for all'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>
|
||||
{'Number of comments per page'|translate}
|
||||
<input type="text" size="3" maxlength="4" name="nb_comment_page" id="nb_comment_page" value="{$comments.NB_COMMENTS_PAGE}">
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>
|
||||
{'Default comments order'|translate}
|
||||
<select name="comments_order">
|
||||
{html_options options=$comments.comments_order_options selected=$comments.comments_order}
|
||||
</select>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="comments_validation" {if ($comments.comments_validation)}checked="checked"{/if}>
|
||||
{'Validation'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="comments_author_mandatory" {if ($comments.comments_author_mandatory)}checked="checked"{/if}>
|
||||
{'Username is mandatory'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="comments_email_mandatory" {if ($comments.comments_email_mandatory)}checked="checked"{/if}>
|
||||
{'Email address is mandatory'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="comments_enable_website" {if ($comments.comments_enable_website)}checked="checked"{/if}>
|
||||
{'Allow users to add a link to their website'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="user_can_edit_comment" {if ($comments.user_can_edit_comment)}checked="checked"{/if}>
|
||||
{'Allow users to edit their own comments'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="user_can_delete_comment" {if ($comments.user_can_delete_comment)}checked="checked"{/if}>
|
||||
{'Allow users to delete their own comments'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li id="notifyAdmin">
|
||||
<strong>{'Notify administrators when a comment is'|translate}</strong>
|
||||
|
||||
<label id="email_admin_on_comment_validation" class="font-checkbox no-bold">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="email_admin_on_comment_validation" {if ($comments.email_admin_on_comment_validation)}checked="checked"{/if}>
|
||||
{'pending validation'|translate}
|
||||
</label>
|
||||
|
||||
<label class="font-checkbox no-bold">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="email_admin_on_comment" {if ($comments.email_admin_on_comment)}checked="checked"{/if}>
|
||||
{'added'|translate}
|
||||
</label>
|
||||
|
||||
<label id="email_admin_on_comment_edition" class="font-checkbox no-bold">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="email_admin_on_comment_edition" {if ($comments.email_admin_on_comment_edition)}checked="checked"{/if}>
|
||||
{'modified'|translate}
|
||||
</label>
|
||||
|
||||
<label id="email_admin_on_comment_deletion" class="font-checkbox no-bold">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="email_admin_on_comment_deletion" {if ($comments.email_admin_on_comment_deletion)}checked="checked"{/if}>
|
||||
{'deleted'|translate}
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
|
||||
</div> <!-- configContent -->
|
||||
|
||||
<p class="formButtons">
|
||||
<button name="submit" type="submit" class="buttonLike">
|
||||
<i class="icon-floppy"></i> {'Save Settings'|@translate}
|
||||
</button>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
@@ -0,0 +1,61 @@
|
||||
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
|
||||
|
||||
<h2>{'Piwigo configuration'|translate} {$TABSHEET_TITLE}</h2>
|
||||
|
||||
<form method="post" name="profile" action="{$GUEST_F_ACTION}" id="profile" class="properties">
|
||||
|
||||
<div id="configContent">
|
||||
|
||||
{if $GUEST_USERNAME!='guest'}
|
||||
<fieldset>
|
||||
{'The settings for the guest are from the %s user'|translate:$GUEST_USERNAME}
|
||||
</fieldset>
|
||||
{/if}
|
||||
|
||||
<fieldset>
|
||||
<legend>{'Preferences'|translate}</legend>
|
||||
<input type="hidden" name="redirect" value="{$GUEST_REDIRECT}">
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<span class="property">
|
||||
<label for="nb_image_page">{'Number of photos per page'|translate}</label>
|
||||
</span>
|
||||
<input type="text" size="4" maxlength="3" name="nb_image_page" id="nb_image_page" value="{$GUEST_NB_IMAGE_PAGE}">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<span class="property">
|
||||
<label for="recent_period">{'Recent period'|translate}</label>
|
||||
</span>
|
||||
<input type="text" size="3" maxlength="2" name="recent_period" id="recent_period" value="{$GUEST_RECENT_PERIOD}">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<span class="property">{'Expand all albums'|translate}</span>
|
||||
{html_radios name='expand' options=$radio_options selected=$GUEST_EXPAND}
|
||||
</li>
|
||||
|
||||
{if $GUEST_ACTIVATE_COMMENTS}
|
||||
<li>
|
||||
<span class="property">{'Show number of comments'|translate}</span>
|
||||
{html_radios name='show_nb_comments' options=$radio_options selected=$GUEST_NB_COMMENTS}
|
||||
</li>
|
||||
{/if}
|
||||
|
||||
<li>
|
||||
<span class="property">{'Show number of hits'|translate}</span>
|
||||
{html_radios name='show_nb_hits' options=$radio_options selected=$GUEST_NB_HITS}
|
||||
</li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
|
||||
<p class="bottomButtons">
|
||||
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
|
||||
<input class="submit" type="submit" name="validate" value="{'Submit'|translate}">
|
||||
<input class="submit" type="reset" name="reset" value="{'Reset'|translate}">
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
@@ -0,0 +1,312 @@
|
||||
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
|
||||
|
||||
{html_style}
|
||||
/*
|
||||
.adminOnlyIcon::before {
|
||||
content:"(";
|
||||
}
|
||||
.adminOnlyIcon::after {
|
||||
content:")";
|
||||
}
|
||||
*/
|
||||
.adminOnlyIcon {
|
||||
background-color:#ddd;
|
||||
padding:2px 5px;
|
||||
border-radius:5px;
|
||||
font-size:90%;
|
||||
}
|
||||
{/html_style}
|
||||
|
||||
<h2>{'Piwigo configuration'|translate} {$TABSHEET_TITLE}</h2>
|
||||
|
||||
<form method="post" action="{$F_ACTION}" class="properties">
|
||||
|
||||
<div id="configContent">
|
||||
|
||||
<fieldset id="indexDisplayConf">
|
||||
<legend>{'Main Page'|translate}</legend>
|
||||
<ul>
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="menubar_filter_icon" {if ($display.menubar_filter_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('display only recently posted photos'|translate|@ucfirst)}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="index_new_icon" {if ($display.index_new_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "new" next to albums and pictures'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="index_sort_order_input" {if ($display.index_sort_order_input)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('Sort order'|translate)}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="index_flat_icon" {if ($display.index_flat_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('display all photos in all sub-albums'|translate|@ucfirst)}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="index_posted_date_icon" {if ($display.index_posted_date_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('display a calendar by posted date'|translate|@ucfirst)}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="index_created_date_icon" {if ($display.index_created_date_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('display a calendar by creation date'|translate|@ucfirst)}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="index_slideshow_icon" {if ($display.index_slideshow_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('slideshow'|translate|@ucfirst)}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="index_sizes_icon" {if ($display.index_sizes_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('Photo sizes'|translate|@ucfirst)}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="index_edit_icon" {if ($display.index_edit_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('Edit album'|translate|@ucfirst)} <span class="adminOnlyIcon tiptip" title="{'available for administrators only'|translate}"><i class="icon-users"></i> {'administrators'}</span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="index_caddie_icon" {if ($display.index_caddie_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('Add to caddie'|translate|@ucfirst)} <span class="adminOnlyIcon tiptip" title="{'available for administrators only'|translate}"><i class="icon-users"></i> {'administrators'}</span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>
|
||||
{'Number of albums per page'|translate}
|
||||
<input type="text" size="3" maxlength="4" name="nb_categories_page" id="nb_categories_page" value="{$display.NB_CATEGORIES_PAGE}">
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
|
||||
<fieldset id="pictureDisplayConf">
|
||||
<legend>{'Photo Page'|translate}</legend>
|
||||
<ul>
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_slideshow_icon" {if ($display.picture_slideshow_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('slideshow'|translate|@ucfirst)}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_metadata_icon" {if ($display.picture_metadata_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('Show file metadata'|translate)}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_download_icon" {if ($display.picture_download_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('Download this file'|translate|@ucfirst)}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_favorite_icon" {if ($display.picture_favorite_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('add this photo to your favorites'|translate|@ucfirst)}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_sizes_icon" {if ($display.picture_sizes_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('Photo sizes'|translate|@ucfirst)}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_edit_icon" {if ($display.picture_edit_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('Edit photo'|translate|@ucfirst)} <span class="adminOnlyIcon tiptip" title="{'available for administrators only'|translate}"><i class="icon-users"></i> {'administrators'}</span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_caddie_icon" {if ($display.picture_caddie_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('Add to caddie'|translate|@ucfirst)} <span class="adminOnlyIcon tiptip" title="{'available for administrators only'|translate}"><i class="icon-users"></i> {'administrators'}</span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_representative_icon" {if ($display.picture_representative_icon)}checked="checked"{/if}>
|
||||
{'Activate icon "%s"'|translate:('set as album representative'|translate|@ucfirst)} <span class="adminOnlyIcon tiptip" title="{'available for administrators only'|translate}"><i class="icon-users"></i> {'administrators'}</span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_navigation_icons" {if ($display.picture_navigation_icons)}checked="checked"{/if}>
|
||||
{'Activate Navigation Bar'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_navigation_thumb" {if ($display.picture_navigation_thumb)}checked="checked"{/if}>
|
||||
{'Activate Navigation Thumbnails'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_menu" {if ($display.picture_menu)}checked="checked"{/if}>
|
||||
{'Show menubar'|translate}
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
|
||||
<fieldset id="pictureInfoConf">
|
||||
<legend>{'Photo Properties'|translate}</legend>
|
||||
<ul>
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_informations[author]" {if ($display.picture_informations.author)}checked="checked"{/if}>
|
||||
{'Author'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_informations[created_on]" {if ($display.picture_informations.created_on)}checked="checked"{/if}>
|
||||
{'Created on'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_informations[posted_on]" {if ($display.picture_informations.posted_on)}checked="checked"{/if}>
|
||||
{'Posted on'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_informations[dimensions]" {if ($display.picture_informations.dimensions)}checked="checked"{/if}>
|
||||
{'Dimensions'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_informations[file]" {if ($display.picture_informations.file)}checked="checked"{/if}>
|
||||
{'File'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_informations[filesize]" {if ($display.picture_informations.filesize)}checked="checked"{/if}>
|
||||
{'Filesize'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_informations[tags]" {if ($display.picture_informations.tags)}checked="checked"{/if}>
|
||||
{'Tags'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_informations[categories]" {if ($display.picture_informations.categories)}checked="checked"{/if}>
|
||||
{'Albums'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_informations[visits]" {if ($display.picture_informations.visits)}checked="checked"{/if}>
|
||||
{'Visits'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_informations[rating_score]" {if ($display.picture_informations.rating_score)}checked="checked"{/if}>
|
||||
{'Rating score'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="picture_informations[privacy_level]" {if ($display.picture_informations.privacy_level)}checked="checked"{/if}>
|
||||
{'Who can see this photo?'|translate} <span class="adminOnlyIcon tiptip" title="{'available for administrators only'|translate}"><i class="icon-users"></i> {'administrators'}</span>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
|
||||
</div> <!-- configContent -->
|
||||
|
||||
<p class="formButtons">
|
||||
<button name="submit" type="submit" class="buttonLike">
|
||||
<i class="icon-floppy"></i> {'Save Settings'|@translate}
|
||||
</button>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
@@ -0,0 +1,218 @@
|
||||
{include file='include/colorbox.inc.tpl'}
|
||||
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
|
||||
|
||||
{footer_script require='jquery'}
|
||||
(function(){
|
||||
var targets = {
|
||||
'input[name="rate"]' : '#rate_anonymous',
|
||||
'input[name="allow_user_registration"]' : '#email_admin_on_new_user'
|
||||
};
|
||||
|
||||
for (selector in targets) {
|
||||
var target = targets[selector];
|
||||
|
||||
jQuery(target).toggle(jQuery(selector).is(':checked'));
|
||||
|
||||
(function(target){
|
||||
jQuery(selector).on('change', function() {
|
||||
jQuery(target).toggle($(this).is(':checked'));
|
||||
});
|
||||
})(target);
|
||||
};
|
||||
}());
|
||||
|
||||
{if !isset($ORDER_BY_IS_CUSTOM)}
|
||||
(function(){
|
||||
var max_fields = Math.ceil({$main.order_by_options|@count}/2);
|
||||
|
||||
function updateFilters() {
|
||||
var $selects = jQuery('#order_filters select');
|
||||
|
||||
jQuery('#order_filters .addFilter').toggle($selects.length <= max_fields);
|
||||
jQuery('#order_filters .removeFilter').css('display', '').filter(':first').css('display', 'none');
|
||||
|
||||
$selects.find('option').removeAttr('disabled');
|
||||
$selects.each(function() {
|
||||
$selects.not(this).find('option[value="'+ jQuery(this).val() +'"]').attr('disabled', 'disabled');
|
||||
});
|
||||
}
|
||||
|
||||
jQuery('#order_filters').on('click', '.removeFilter', function() {
|
||||
jQuery(this).parent('span.filter').remove();
|
||||
updateFilters();
|
||||
});
|
||||
|
||||
jQuery('#order_filters').on('change', 'select', updateFilters);
|
||||
|
||||
jQuery('#order_filters .addFilter').click(function() {
|
||||
jQuery(this).prev('span.filter').clone().insertBefore(jQuery(this));
|
||||
jQuery(this).prev('span.filter').children('select').val('');
|
||||
updateFilters();
|
||||
});
|
||||
|
||||
updateFilters();
|
||||
}());
|
||||
{/if}
|
||||
|
||||
jQuery(".themeBoxes a").colorbox();
|
||||
|
||||
jQuery("input[name='mail_theme']").change(function() {
|
||||
jQuery("input[name='mail_theme']").parents(".themeBox").removeClass("themeDefault");
|
||||
jQuery(this).parents(".themeBox").addClass("themeDefault");
|
||||
});
|
||||
{/footer_script}
|
||||
|
||||
<h2>{'Piwigo configuration'|translate} {$TABSHEET_TITLE}</h2>
|
||||
|
||||
<form method="post" action="{$F_ACTION}" class="properties">
|
||||
|
||||
<div id="configContent">
|
||||
|
||||
<fieldset class="mainConf">
|
||||
<legend>{'Basic settings'|translate}</legend>
|
||||
<ul>
|
||||
<li>
|
||||
<label for="gallery_title">{'Gallery title'|translate}</label>
|
||||
<br>
|
||||
<input type="text" maxlength="255" size="50" name="gallery_title" id="gallery_title" value="{$main.CONF_GALLERY_TITLE}">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label for="page_banner">{'Page banner'|translate}</label>
|
||||
<br>
|
||||
<textarea rows="5" cols="50" class="description" name="page_banner" id="page_banner">{$main.CONF_PAGE_BANNER}</textarea>
|
||||
</li>
|
||||
|
||||
<li id="order_filters">
|
||||
<label>{'Default photos order'|translate}</label>
|
||||
|
||||
{foreach from=$main.order_by item=order}
|
||||
<span class="filter {if isset($ORDER_BY_IS_CUSTOM)}transparent{/if}">
|
||||
<select name="order_by[]" {if isset($ORDER_BY_IS_CUSTOM)}disabled{/if}>
|
||||
{html_options options=$main.order_by_options selected=$order}
|
||||
</select>
|
||||
<a class="removeFilter">{'delete'|translate}</a>
|
||||
</span>
|
||||
{/foreach}
|
||||
|
||||
{if !isset($ORDER_BY_IS_CUSTOM)}
|
||||
<a class="addFilter">{'Add a criteria'|translate}</a>
|
||||
{else}
|
||||
<span class="order_by_is_custom">{'You can\'t define a default photo order because you have a custom setting in your local configuration.'|translate}</span>
|
||||
{/if}
|
||||
</li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="mainConf">
|
||||
<legend>{'Permissions'|translate}</legend>
|
||||
<ul>
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="rate" {if ($main.rate)}checked="checked"{/if}>
|
||||
{'Allow rating'|translate}
|
||||
</label>
|
||||
|
||||
<label id="rate_anonymous" class="font-checkbox no-bold">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="rate_anonymous" {if ($main.rate_anonymous)}checked="checked"{/if}>
|
||||
{'Rating by guests'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="allow_user_registration" {if ($main.allow_user_registration)}checked="checked"{/if}>
|
||||
{'Allow user registration'|translate}
|
||||
</label>
|
||||
|
||||
<label id="email_admin_on_new_user" class="font-checkbox no-bold">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="email_admin_on_new_user" {if ($main.email_admin_on_new_user)}checked="checked"{/if}>
|
||||
{'Email admins when a new user registers'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="allow_user_customization" {if ($main.allow_user_customization)}checked="checked"{/if}>
|
||||
{'Allow user customization'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="obligatory_user_mail_address" {if ($main.obligatory_user_mail_address)}checked="checked"{/if}>
|
||||
{'Mail address is mandatory for registration'|translate}
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="mainConf">
|
||||
<legend>{'Miscellaneous'|translate}</legend>
|
||||
<ul>
|
||||
<li>
|
||||
<label>{'Week starts on'|translate}
|
||||
{html_options name="week_starts_on" options=$main.week_starts_on_options selected=$main.week_starts_on_options_selected}</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<strong>{'Save visits in history for'|translate}</strong>
|
||||
|
||||
<label class="font-checkbox no-bold">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="history_guest" {if ($main.history_guest)}checked="checked"{/if}>
|
||||
{'simple visitors'|translate}
|
||||
</label>
|
||||
|
||||
<label class="font-checkbox no-bold">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="log" {if ($main.log)}checked="checked"{/if}>
|
||||
{'registered users'|translate}
|
||||
</label>
|
||||
|
||||
<label class="font-checkbox no-bold">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="history_admin" {if ($main.history_admin)}checked="checked"{/if}>
|
||||
{'administrators'|translate}
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{'Mail theme'|translate}</label>
|
||||
|
||||
<div class="themeBoxes font-checkbox">
|
||||
{foreach from=$main.mail_theme_options item=name key=theme}
|
||||
<div class="themeBox {if $main.mail_theme==$theme}themeDefault{/if}">
|
||||
<label class="font-checkbox">
|
||||
<div class="themeName">
|
||||
<span class="icon-dot-circled"></span>
|
||||
<input type="radio" name="mail_theme" value="{$theme}" {if $main.mail_theme==$theme}checked{/if}>
|
||||
{$name}
|
||||
</div>
|
||||
<div class="themeShot">
|
||||
<img src="{$ROOT_URL}themes/default/template/mail/screenshot-{$theme}.png" width="150"/>
|
||||
</div>
|
||||
</label>
|
||||
<a href="{$ROOT_URL}themes/default/template/mail/screenshot-{$theme}.png" class="icon-zoom-in">{'Preview'|translate}</a>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
|
||||
</div> <!-- configContent -->
|
||||
|
||||
<p class="formButtons">
|
||||
<button name="submit" type="submit" class="buttonLike">
|
||||
<i class="icon-floppy"></i> {'Save Settings'|@translate}
|
||||
</button>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
@@ -0,0 +1,234 @@
|
||||
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
|
||||
|
||||
{footer_script}
|
||||
(function(){
|
||||
var labelMaxWidth = "{'Maximum width'|translate}",
|
||||
labelWidth = "{'Width'|translate}",
|
||||
labelMaxHeight = "{'Maximum height'|translate}",
|
||||
labelHeight = "{'Height'|translate}";
|
||||
|
||||
function toggleResizeFields(size) {
|
||||
var checkbox = jQuery("[name=original_resize]");
|
||||
var needToggle = jQuery("#sizeEdit-original");
|
||||
|
||||
if (jQuery(checkbox).is(':checked')) {
|
||||
needToggle.show();
|
||||
}
|
||||
else {
|
||||
needToggle.hide();
|
||||
}
|
||||
}
|
||||
|
||||
toggleResizeFields("original");
|
||||
jQuery("[name=original_resize]").click(function () {
|
||||
toggleResizeFields("original");
|
||||
});
|
||||
|
||||
jQuery("a[id^='sizeEditOpen-']").click(function(){
|
||||
var sizeName = jQuery(this).attr("id").split("-")[1];
|
||||
jQuery("#sizeEdit-"+sizeName).toggle();
|
||||
jQuery(this).hide();
|
||||
return false;
|
||||
});
|
||||
|
||||
jQuery(".cropToggle").click(function() {
|
||||
var labelBoxWidth = jQuery(this).parents('table.sizeEditForm').find('td.sizeEditWidth');
|
||||
var labelBoxHeight = jQuery(this).parents('table.sizeEditForm').find('td.sizeEditHeight');
|
||||
|
||||
if (jQuery(this).is(':checked')) {
|
||||
jQuery(labelBoxWidth).html(labelWidth);
|
||||
jQuery(labelBoxHeight).html(labelHeight);
|
||||
}
|
||||
else {
|
||||
jQuery(labelBoxWidth).html(labelMaxWidth);
|
||||
jQuery(labelBoxHeight).html(labelMaxHeight);
|
||||
}
|
||||
});
|
||||
|
||||
jQuery("#showDetails").click(function() {
|
||||
jQuery(".sizeDetails").show();
|
||||
jQuery(this).css("visibility", "hidden");
|
||||
return false;
|
||||
});
|
||||
}());
|
||||
{/footer_script}
|
||||
|
||||
{html_style}
|
||||
.sizeEnable { width:50px; }
|
||||
.sizeEnable .icon-ok { position:relative; left:2px; }
|
||||
.sizeEditForm { margin:0 0 10px 20px; }
|
||||
.sizeEdit { display:none; }
|
||||
#sizesConf table { margin:0; }
|
||||
.showDetails { padding:0; }
|
||||
.sizeDetails { display:none;margin-left:10px; }
|
||||
.sizeEditOpen { margin-left:10px; }
|
||||
{/html_style}
|
||||
|
||||
<h2>{'Piwigo configuration'|translate} {$TABSHEET_TITLE}</h2>
|
||||
|
||||
<form method="post" action="{$F_ACTION}" class="properties">
|
||||
|
||||
<div id="configContent">
|
||||
|
||||
<fieldset id="sizesConf">
|
||||
<legend>{'Original Size'|translate}</legend>
|
||||
{if $is_gd}
|
||||
<div>
|
||||
{'Resize after upload disabled due to the use of GD as graphic library'|translate}
|
||||
<input type="checkbox" name="original_resize"disabled="disabled" style="visibility: hidden">
|
||||
<input type="hidden" name="original_resize_maxwidth" value="{$sizes.original_resize_maxwidth}">
|
||||
<input type="hidden" name="original_resize_maxheight" value="{$sizes.original_resize_maxheight}">
|
||||
<input type="hidden" name="original_resize_quality" value="{$sizes.original_resize_quality}">
|
||||
</div>
|
||||
{else}
|
||||
<div>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="original_resize" {if ($sizes.original_resize)}checked="checked"{/if}>
|
||||
{'Resize after upload'|translate}
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<table id="sizeEdit-original">
|
||||
<tr>
|
||||
<th>{'Maximum width'|translate}</th>
|
||||
<td>
|
||||
<input type="text" name="original_resize_maxwidth" value="{$sizes.original_resize_maxwidth}" size="4" maxlength="4"{if isset($ferrors.original_resize_maxwidth)} class="dError"{/if}> {'pixels'|translate}
|
||||
{if isset($ferrors.original_resize_maxwidth)}<span class="dErrorDesc" title="{$ferrors.original_resize_maxwidth}">!</span>{/if}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{'Maximum height'|translate}</th>
|
||||
<td>
|
||||
<input type="text" name="original_resize_maxheight" value="{$sizes.original_resize_maxheight}" size="4" maxlength="4"{if isset($ferrors.original_resize_maxheight)} class="dError"{/if}> {'pixels'|translate}
|
||||
{if isset($ferrors.original_resize_maxheight)}<span class="dErrorDesc" title="{$ferrors.original_resize_maxheight}">!</span>{/if}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{'Image Quality'|translate}</th>
|
||||
<td>
|
||||
<input type="text" name="original_resize_quality" value="{$sizes.original_resize_quality}" size="3" maxlength="3"{if isset($ferrors.original_resize_quality)} class="dError"{/if}> %
|
||||
{if isset($ferrors.original_resize_quality)}<span class="dErrorDesc" title="{$ferrors.original_resize_quality}">!</span>{/if}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{/if}
|
||||
</fieldset>
|
||||
|
||||
<fieldset id="multiSizesConf">
|
||||
<legend>{'Multiple Size'|translate}</legend>
|
||||
|
||||
<div class="showDetails">
|
||||
<a href="#" id="showDetails"{if isset($ferrors)} style="display:none"{/if}>{'show details'|translate}</a>
|
||||
</div>
|
||||
|
||||
<table style="margin:0">
|
||||
{foreach from=$derivatives item=d key=type}
|
||||
<tr>
|
||||
<td>
|
||||
<label>
|
||||
{if $d.must_enable}
|
||||
<span class="sizeEnable">
|
||||
<span class="icon-ok"></span>
|
||||
</span>
|
||||
{else}
|
||||
<span class="sizeEnable font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="d[{$type}][enabled]" {if $d.enabled}checked="checked"{/if}>
|
||||
</span>
|
||||
{/if}
|
||||
{$type|translate}
|
||||
</label>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<span class="sizeDetails"{if isset($ferrors)} style="display:inline"{/if}>{$d.w} x {$d.h} {'pixels'|translate}{if $d.crop}, {'Crop'|translate|lower}{/if}</span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<span class="sizeDetails"{if isset($ferrors) and !isset($ferrors.$type)} style="display:inline"{/if}>
|
||||
<a href="#" id="sizeEditOpen-{$type}" class="sizeEditOpen">{'edit'|translate}</a>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="sizeEdit-{$type}" class="sizeEdit" {if isset($ferrors.$type)} style="display:block"{/if}>
|
||||
<td colspan="3">
|
||||
<table class="sizeEditForm">
|
||||
{if !$d.must_square}
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" class="cropToggle" name="d[{$type}][crop]" {if $d.crop}checked="checked"{/if}>
|
||||
{'Crop'|translate}
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr>
|
||||
<td class="sizeEditWidth">{if $d.must_square or $d.crop}{'Width'|translate}{else}{'Maximum width'|translate}{/if}</td>
|
||||
<td>
|
||||
<input type="text" name="d[{$type}][w]" maxlength="4" size="4" value="{$d.w}"{if isset($ferrors.$type.w)} class="dError"{/if}> {'pixels'|translate}
|
||||
{if isset($ferrors.$type.w)}<span class="dErrorDesc" title="{$ferrors.$type.w}">!</span>{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{if !$d.must_square}
|
||||
<tr>
|
||||
<td class="sizeEditHeight">{if $d.crop}{'Height'|translate}{else}{'Maximum height'|translate}{/if}</td>
|
||||
<td>
|
||||
<input type="text" name="d[{$type}][h]" maxlength="4" size="4" value="{$d.h}"{if isset($ferrors.$type.h)} class="dError"{/if}> {'pixels'|translate}
|
||||
{if isset($ferrors.$type.h)}<span class="dErrorDesc" title="{$ferrors.$type.h}">!</span>{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr>
|
||||
<td>{'Sharpen'|translate}</td>
|
||||
<td>
|
||||
<input type="text" name="d[{$type}][sharpen]" maxlength="4" size="4" value="{$d.sharpen}"{if isset($ferrors.$type.sharpen)} class="dError"{/if}> %
|
||||
{if isset($ferrors.$type.sharpen)}<span class="dErrorDesc" title="{$ferrors.$type.sharpen}">!</span>{/if}
|
||||
</td>
|
||||
</tr>
|
||||
</table> {* #sizeEdit *}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
|
||||
<p style="margin:10px 0 0 0;{if isset($ferrors)} display:block;{/if}" class="sizeDetails">
|
||||
{'Image Quality'|translate}
|
||||
<input type="text" name="resize_quality" value="{$resize_quality}" size="3" maxlength="3"{if isset($ferrors.resize_quality)} class="dError"{/if}> %
|
||||
{if isset($ferrors.resize_quality)}<span class="dErrorDesc" title="{$ferrors.resize_quality}">!</span>{/if}
|
||||
</p>
|
||||
<p style="margin:10px 0 0 0;{if isset($ferrors)} display:block;{/if}" class="sizeDetails">
|
||||
<a href="{$F_ACTION}&action=restore_settings" onclick="return confirm('{'Are you sure?'|translate|@escape:javascript}');">{'Reset to default values'|translate}</a>
|
||||
</p>
|
||||
|
||||
{if !empty($custom_derivatives)}
|
||||
<fieldset class="sizeDetails">
|
||||
<legend>{'custom'|translate}</legend>
|
||||
|
||||
<table style="margin:0">
|
||||
{foreach from=$custom_derivatives item=time key=custom}
|
||||
<tr><td>
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="delete_custom_derivative_{$custom}"> {'Delete'|translate} {$custom} ({'Last hit'|translate}: {$time})
|
||||
</label>
|
||||
</td></tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
</fieldset>
|
||||
{/if}
|
||||
|
||||
</fieldset>
|
||||
|
||||
</div> <!-- configContent -->
|
||||
|
||||
<p class="formButtons">
|
||||
<button name="submit" type="submit" class="buttonLike">
|
||||
<i class="icon-floppy"></i> {'Save Settings'|@translate}
|
||||
</button>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
@@ -0,0 +1,140 @@
|
||||
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
|
||||
|
||||
{footer_script}
|
||||
(function(){
|
||||
function onWatermarkChange() {
|
||||
var val = jQuery("#wSelect").val();
|
||||
if (val.length) {
|
||||
jQuery("#wImg").attr('src', '{$ROOT_URL}'+val).show();
|
||||
}
|
||||
else {
|
||||
jQuery("#wImg").hide();
|
||||
}
|
||||
}
|
||||
|
||||
onWatermarkChange();
|
||||
|
||||
jQuery("#wSelect").bind("change", onWatermarkChange);
|
||||
|
||||
if (jQuery("input[name='w[position]']:checked").val() == 'custom') {
|
||||
jQuery("#positionCustomDetails").show();
|
||||
}
|
||||
|
||||
jQuery("input[name='w[position]']").change(function(){
|
||||
if (jQuery(this).val() == 'custom') {
|
||||
jQuery("#positionCustomDetails").show();
|
||||
}
|
||||
else {
|
||||
jQuery("#positionCustomDetails").hide();
|
||||
}
|
||||
});
|
||||
|
||||
jQuery(".addWatermarkOpen").click(function(){
|
||||
jQuery("#addWatermark, #selectWatermark").toggle();
|
||||
return false;
|
||||
});
|
||||
}());
|
||||
{/footer_script}
|
||||
|
||||
<h2>{'Piwigo configuration'|translate} {$TABSHEET_TITLE}</h2>
|
||||
|
||||
<form method="post" action="{$F_ACTION}" class="properties" enctype="multipart/form-data">
|
||||
|
||||
<div id="configContent">
|
||||
|
||||
<fieldset id="watermarkConf" class="no-border">
|
||||
<legend></legend>
|
||||
<ul>
|
||||
<li>
|
||||
<span id="selectWatermark"{if isset($ferrors.watermarkImage)} style="display:none"{/if}><label>{'Select a file'|translate}</label>
|
||||
<select name="w[file]" id="wSelect">
|
||||
{html_options options=$watermark_files selected=$watermark.file}
|
||||
</select>
|
||||
|
||||
{'... or '|translate}<a href="#" class="addWatermarkOpen">{'add a new watermark'|translate}</a>
|
||||
<br>
|
||||
<img id="wImg"></img>
|
||||
</span>
|
||||
|
||||
<span id="addWatermark"{if isset($ferrors.watermarkImage)} style="display:inline"{/if}>
|
||||
{'add a new watermark'|translate} {'... or '|translate}<a href="#" class="addWatermarkOpen">{'Select a file'|translate}</a>
|
||||
|
||||
<br>
|
||||
<input type="file" size="60" id="watermarkImage" name="watermarkImage"{if isset($ferrors.watermarkImage)} class="dError"{/if}> (png)
|
||||
{if isset($ferrors.watermarkImage)}<span class="dErrorDesc" title="{$ferrors.watermarkImage|@htmlspecialchars}">!</span>{/if}
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>
|
||||
{'Apply watermark if width is bigger than'|translate}
|
||||
<input size="4" maxlength="4" type="text" name="w[minw]" value="{$watermark.minw}"{if isset($ferrors.watermark.minw)} class="dError"{/if}>
|
||||
</label>
|
||||
{'pixels'|translate}
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>
|
||||
{'Apply watermark if height is bigger than'|translate}
|
||||
<input size="4" maxlength="4" type="text" name="w[minh]" value="{$watermark.minh}"{if isset($ferrors.watermark.minh)} class="dError"{/if}>
|
||||
</label>
|
||||
{'pixels'|translate}
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{'Position'|translate}</label>
|
||||
<br>
|
||||
<div id="watermarkPositionBox">
|
||||
<label class="right font-checkbox">{'top right corner'|translate} <span class="icon-dot-circled"></span><input name="w[position]" type="radio" value="topright"{if $watermark.position eq 'topright'} checked="checked"{/if}></label>
|
||||
<label class="font-checkbox"><span class="icon-dot-circled"></span><input name="w[position]" type="radio" value="topleft"{if $watermark.position eq 'topleft'} checked="checked"{/if}> {'top left corner'|translate}</label>
|
||||
<label class="middle font-checkbox"><span class="icon-dot-circled"></span><input name="w[position]" type="radio" value="middle"{if $watermark.position eq 'middle'} checked="checked"{/if}> {'middle'|translate}</label>
|
||||
<label class="right font-checkbox">{'bottom right corner'|translate} <span class="icon-dot-circled"></span><input name="w[position]" type="radio" value="bottomright"{if $watermark.position eq 'bottomright'} checked="checked"{/if}></label>
|
||||
<label class="font-checkbox"><span class="icon-dot-circled"></span><input name="w[position]" type="radio" value="bottomleft"{if $watermark.position eq 'bottomleft'} checked="checked"{/if}> {'bottom left corner'|translate}</label>
|
||||
</div>
|
||||
|
||||
<label class="font-checkbox" style="display:block;margin-top:10px;font-weight:normal;"><span class="icon-dot-circled"></span><input name="w[position]" type="radio" value="custom"{if $watermark.position eq 'custom'} checked="checked"{/if}> {'custom'|translate}</label>
|
||||
|
||||
<div id="positionCustomDetails">
|
||||
<label>{'X Position'|translate}
|
||||
<input size="3" maxlength="3" type="text" name="w[xpos]" value="{$watermark.xpos}"{if isset($ferrors.watermark.xpos)} class="dError"{/if}>%
|
||||
{if isset($ferrors.watermark.xpos)}<span class="dErrorDesc" title="{$ferrors.watermark.xpos}">!</span>{/if}
|
||||
</label>
|
||||
|
||||
<br>
|
||||
<label>{'Y Position'|translate}
|
||||
<input size="3" maxlength="3" type="text" name="w[ypos]" value="{$watermark.ypos}"{if isset($ferrors.watermark.ypos)} class="dError"{/if}>%
|
||||
{if isset($ferrors.watermark.ypos)}<span class="dErrorDesc" title="{$ferrors.watermark.ypos}">!</span>{/if}
|
||||
</label>
|
||||
|
||||
<br>
|
||||
<label>{'X Repeat'|translate}
|
||||
<input size="3" maxlength="3" type="text" name="w[xrepeat]" value="{$watermark.xrepeat}"{if isset($ferrors.watermark.xrepeat)} class="dError"{/if}>
|
||||
{if isset($ferrors.watermark.xrepeat)}<span class="dErrorDesc" title="{$ferrors.watermark.xrepeat}">!</span>{/if}
|
||||
</label>
|
||||
|
||||
<br>
|
||||
<label>{'Y Repeat'|translate}
|
||||
<input size="3" maxlength="3" type="text" name="w[yrepeat]" value="{$watermark.yrepeat}"{if isset($ferrors.watermark.yrepeat)} class="dError"{/if}>
|
||||
{if isset($ferrors.watermark.yrepeat)}<span class="dErrorDesc" title="{$ferrors.watermark.yrepeat}">!</span>{/if}
|
||||
</label>
|
||||
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{'Opacity'|translate}</label>
|
||||
<input size="3" maxlength="3" type="text" name="w[opacity]" value="{$watermark.opacity}"{if isset($ferrors.watermark.opacity)} class="dError"{/if}> %
|
||||
{if isset($ferrors.watermark.opacity)}<span class="dErrorDesc" title="{$ferrors.watermark.opacity}">!</span>{/if}
|
||||
</li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
|
||||
</div> <!-- configContent -->
|
||||
|
||||
<p class="formButtons">
|
||||
<button name="submit" type="submit" class="buttonLike">
|
||||
<i class="icon-floppy"></i> {'Save Settings'|@translate}
|
||||
</button>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
@@ -0,0 +1,19 @@
|
||||
<table class="doubleSelect">
|
||||
<tr>
|
||||
<td>
|
||||
<h3>{$L_CAT_OPTIONS_TRUE}</h3>
|
||||
<select class="categoryList" name="cat_true[]" multiple="multiple" size="30">
|
||||
{html_options options=$category_option_true selected=$category_option_true_selected}
|
||||
</select>
|
||||
<p><input class="submit" type="submit" value="»" name="falsify" style="font-size:15px;"></p>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<h3>{$L_CAT_OPTIONS_FALSE}</h3>
|
||||
<select class="categoryList" name="cat_false[]" multiple="multiple" size="30">
|
||||
{html_options options=$category_option_false selected=$category_option_false_selected}
|
||||
</select>
|
||||
<p><input class="submit" type="submit" value="«" name="trueify" style="font-size:15px;"></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -0,0 +1,108 @@
|
||||
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
|
||||
|
||||
{footer_script require='jquery.ui.sortable'}{literal}
|
||||
jQuery(document).ready(function() {
|
||||
function checkOrderOptions() {
|
||||
jQuery("#image_order_user_define_options").hide();
|
||||
if (jQuery("input[name=image_order_choice]:checked").val() == "user_define") {
|
||||
jQuery("#image_order_user_define_options").show();
|
||||
}
|
||||
}
|
||||
|
||||
jQuery('ul.thumbnails').sortable( {
|
||||
revert: true, opacity: 0.7,
|
||||
handle: jQuery('.rank-of-image').add('.rank-of-image img'),
|
||||
update: function() {
|
||||
jQuery(this).find('li').each(function(i) {
|
||||
jQuery(this).find("input[name^=rank_of_image]").each(function() {
|
||||
jQuery(this).attr('value', (i+1)*10)
|
||||
});
|
||||
});
|
||||
|
||||
jQuery('#image_order_rank').prop('checked', true);
|
||||
checkOrderOptions();
|
||||
}
|
||||
});
|
||||
|
||||
jQuery("input[name=image_order_choice]").click(function () {
|
||||
checkOrderOptions();
|
||||
});
|
||||
|
||||
checkOrderOptions();
|
||||
});
|
||||
jQuery(document).ready(function() {
|
||||
jQuery('.thumbnail').tipTip({
|
||||
'delay' : 0,
|
||||
'fadeIn' : 200,
|
||||
'fadeOut' : 200
|
||||
});
|
||||
});
|
||||
{/literal}{/footer_script}
|
||||
|
||||
<div class="titrePage">
|
||||
<h2><span style="letter-spacing:0">{$CATEGORIES_NAV}</span> › {'Edit album'|@translate} {$TABSHEET_TITLE}</h2>
|
||||
</div>
|
||||
|
||||
<form action="{$F_ACTION}" method="post">
|
||||
{if !empty($thumbnails)}
|
||||
<p><input type="submit" value="{'Submit'|@translate}" name="submit"></p>
|
||||
<fieldset>
|
||||
<legend>{'Manual order'|@translate}</legend>
|
||||
{if !empty($thumbnails)}
|
||||
<p>{'Drag to re-order'|@translate}</p>
|
||||
<ul class="thumbnails">
|
||||
{foreach from=$thumbnails item=thumbnail}
|
||||
<li class="rank-of-image">
|
||||
<img src="{$thumbnail.TN_SRC}" class="thumbnail" alt="{$thumbnail.NAME|@replace:'"':' '}" title="{$thumbnail.NAME|@replace:'"':' '}" style="width:{$thumbnail.SIZE[0]}px; height:{$thumbnail.SIZE[1]}px; ">
|
||||
<input type="text" name="rank_of_image[{$thumbnail.ID}]" value="{$thumbnail.RANK}" style="display:none">
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
</fieldset>
|
||||
{/if}
|
||||
|
||||
<fieldset>
|
||||
<legend>{'Sort order'|@translate}</legend>
|
||||
<p class="field">
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-dot-circled"></span>
|
||||
<input type="radio" name="image_order_choice" id="image_order_default" value="default"{if $image_order_choice=='default'} checked="checked"{/if}>
|
||||
{'Use the default photo sort order'|@translate}
|
||||
</label>
|
||||
</p>
|
||||
<p class="field">
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-dot-circled"></span>
|
||||
<input type="radio" name="image_order_choice" id="image_order_rank" value="rank"{if $image_order_choice=='rank'} checked="checked"{/if}>
|
||||
{'manual order'|translate}
|
||||
</label>
|
||||
</p>
|
||||
<p class="field">
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-dot-circled"></span>
|
||||
<input type="radio" name="image_order_choice" id="image_order_user_define" value="user_define"{if $image_order_choice=='user_define'} checked="checked"{/if}>
|
||||
{'automatic order'|@translate}
|
||||
</label>
|
||||
<div id="image_order_user_define_options">
|
||||
{foreach from=$image_order item=order}
|
||||
<p class="field">
|
||||
<select name="image_order[]">
|
||||
{html_options options=$image_order_options selected=$order}
|
||||
</select>
|
||||
</p>
|
||||
{/foreach}
|
||||
</div>
|
||||
</fieldset>
|
||||
<p>
|
||||
<button name="submit" type="submit" class="buttonLike">
|
||||
<i class="icon-floppy"></i> {'Save Settings'|@translate}
|
||||
</button>
|
||||
|
||||
<label class="font-checkbox">
|
||||
<span class="icon-check"></span>
|
||||
<input type="checkbox" name="image_order_subcats" id="image_order_subcats">
|
||||
{'Apply to sub-albums'|@translate}
|
||||
</label>
|
||||
</p>
|
||||
</form>
|
||||
@@ -0,0 +1,35 @@
|
||||
<div class="titrePage"><h2>{'Extend for templates'|@translate}</h2>
|
||||
</div>
|
||||
{if isset($extents)}
|
||||
<h4>{'Replacement of original templates by customized templates from template-extension subfolder'|@translate}</h4>
|
||||
<form method="post" name="extend_for_templates" id="extend_for_templates" action="">
|
||||
<table class="table2">
|
||||
<tr class="throw">
|
||||
<th>{'Replacers (customized templates)'|@translate}</th>
|
||||
<th>{'Original templates'|@translate}</th>
|
||||
<th>{'Optional URL keyword'|@translate}</th>
|
||||
<th>{'Bound Theme'|@translate}</th>
|
||||
</tr>
|
||||
{foreach from=$extents item=tpl name=extent_loop}
|
||||
<tr class="{if $smarty.foreach.extent_loop.index is odd}row1{else}row2{/if}">
|
||||
<td>
|
||||
<input type="hidden" name="reptpl[]" value="{$tpl.replacer}">
|
||||
{$tpl.replacer}
|
||||
</td>
|
||||
<td>
|
||||
{html_options name='original[]' output=$tpl.original_tpl values=$tpl.original_tpl selected=$tpl.selected_tpl}
|
||||
</td>
|
||||
<td>
|
||||
{html_options name='url[]' output=$tpl.url_parameter values=$tpl.url_parameter selected=$tpl.selected_url}
|
||||
</td>
|
||||
<td>
|
||||
{html_options name='bound[]' output=$tpl.bound_tpl values=$tpl.bound_tpl selected=$tpl.selected_bound}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
<p>
|
||||
<input type="submit" value="{'Submit'|@translate}" name="submit">
|
||||
</p>
|
||||
</form>
|
||||
{/if}
|
||||
60
zoesch.de/galerie/admin/themes/default/template/footer.tpl
Normal file
@@ -0,0 +1,60 @@
|
||||
{*
|
||||
Warning : This is the admin pages footer only
|
||||
don't be confusing with the public page footer
|
||||
*}
|
||||
</div>{* <!-- pwgMain --> *}
|
||||
|
||||
{if isset($footer_elements)}
|
||||
{foreach from=$footer_elements item=elt}
|
||||
{$elt}
|
||||
{/foreach}
|
||||
{/if}
|
||||
|
||||
{if isset($debug.QUERIES_LIST)}
|
||||
<div id="debug">
|
||||
{$debug.QUERIES_LIST}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div id="footer">
|
||||
<div id="piwigoInfos">
|
||||
{'Powered by'|translate}
|
||||
<a class="externalLink tiptip" href="{$PHPWG_URL}" title="{'Visit Piwigo project website'|translate}"><span class="Piwigo">Piwigo</span></a>
|
||||
{$VERSION}
|
||||
<a class="externalLink tiptip" href="{$pwgmenu.WIKI}" title="{'Read Piwigo Documentation'|translate}"><i class="icon-book"></i>{'Documentation'|translate}</a>
|
||||
<a class="externalLink tiptip" href="{$pwgmenu.FORUM}" title="{'Get Support on Piwigo Forum'|translate}"><i class="icon-lifebuoy"></i>{'Support'|translate}</a>
|
||||
</div>
|
||||
|
||||
<div id="pageInfos">
|
||||
{if isset($debug.TIME) }
|
||||
{'Page generated in'|translate} {$debug.TIME} ({$debug.NB_QUERIES} {'SQL queries in'|translate} {$debug.SQL_TIME}) -
|
||||
{/if}
|
||||
|
||||
{'Contact'|translate}
|
||||
<a href="mailto:{$CONTACT_MAIL}?subject={'A comment on your site'|translate|escape:url}">{'Webmaster'|translate}</a>
|
||||
</div>{* <!-- pageInfos --> *}
|
||||
|
||||
</div>{* <!-- footer --> *}
|
||||
</div>{* <!-- the_page --> *}
|
||||
|
||||
|
||||
{combine_script id='jquery.tipTip' load='footer' path='themes/default/js/plugins/jquery.tipTip.minified.js'}
|
||||
{footer_script require='jquery.tipTip'}
|
||||
jQuery('.tiptip').tipTip({
|
||||
delay: 0,
|
||||
fadeIn: 200,
|
||||
fadeOut: 200
|
||||
});
|
||||
|
||||
jQuery('a.externalLink').click(function() {
|
||||
window.open(jQuery(this).attr("href"));
|
||||
return false;
|
||||
});
|
||||
{/footer_script}
|
||||
|
||||
<!-- BEGIN get_combined -->
|
||||
{get_combined_scripts load='footer'}
|
||||
<!-- END get_combined -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
189
zoesch.de/galerie/admin/themes/default/template/group_list.tpl
Normal file
@@ -0,0 +1,189 @@
|
||||
{footer_script}
|
||||
{literal}
|
||||
$(document).ready(function() {
|
||||
/**
|
||||
* Add group
|
||||
*/
|
||||
jQuery("#addGroup").click(function() {
|
||||
jQuery("#addGroupForm").toggle();
|
||||
jQuery("input[name=groupname]").focus();
|
||||
return false;
|
||||
});
|
||||
|
||||
jQuery("#addGroupClose").click(function() {
|
||||
jQuery("#addGroupForm").hide();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.groups input').change(function () { $(this).parent('p').toggleClass('group_select'); });
|
||||
$(".grp_action").hide();
|
||||
$("input.group_selection").click(function() {
|
||||
|
||||
var nbSelected = 0;
|
||||
nbSelected = $("input.group_selection").filter(':checked').length;
|
||||
|
||||
if (nbSelected == 0) {
|
||||
$("#permitAction").hide();
|
||||
$("#forbidAction").show();
|
||||
}
|
||||
else {
|
||||
$("#permitAction").show();
|
||||
$("#forbidAction").hide();
|
||||
}
|
||||
$("p[group_id="+$(this).prop("value")+"]").each(function () {
|
||||
$(this).toggle();
|
||||
});
|
||||
|
||||
if (nbSelected<2) {
|
||||
$("#two_to_select").show();
|
||||
$("#two_atleast").hide();
|
||||
}
|
||||
else {
|
||||
$("#two_to_select").hide();
|
||||
$("#two_atleast").show();
|
||||
}
|
||||
});
|
||||
$("[id^=action_]").hide();
|
||||
$("select[name=selectAction]").change(function () {
|
||||
$("[id^=action_]").hide();
|
||||
$("#action_"+$(this).prop("value")).show();
|
||||
if ($(this).val() != -1 ) {
|
||||
$("#applyActionBlock").show();
|
||||
}
|
||||
else {
|
||||
$("#applyActionBlock").hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
{/literal}
|
||||
{/footer_script}
|
||||
|
||||
|
||||
|
||||
<div class="titrePage">
|
||||
<h2>{'Group management'|@translate}</h2>
|
||||
</div>
|
||||
|
||||
<p class="showCreateAlbum" id="showAddGroup">
|
||||
<a class="icon-plus-circled" href="#" id="addGroup">{'Add group'|translate}</a>
|
||||
</p>
|
||||
|
||||
<form method="post" style="display:none" id="addGroupForm" name="add_user" action="{$F_ADD_ACTION}" class="properties">
|
||||
<fieldset class="with-border">
|
||||
<legend>{'Add group'|@translate}</legend>
|
||||
|
||||
<p>
|
||||
<strong>{'Group name'|translate}</strong><br>
|
||||
<input type="text" name="groupname" maxlength="50" size="20">
|
||||
</p>
|
||||
|
||||
<p class="actionButtons">
|
||||
<input class="submit" name="submit_add" type="submit" value="{'Add'|translate}">
|
||||
<a href="#" id="addGroupClose">{'Cancel'|@translate}</a>
|
||||
</p>
|
||||
|
||||
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<form method="post" name="add_user" action="{$F_ADD_ACTION}" class="properties">
|
||||
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
|
||||
|
||||
<ul class="groups">
|
||||
{if not empty($groups)}
|
||||
{foreach from=$groups item=group name=group_loop}
|
||||
<li>
|
||||
<label><p>{$group.NAME}<i><small>{$group.IS_DEFAULT}</small></i><input class="group_selection" name="group_selection[]" type="checkbox" value="{$group.ID}"></p></label>
|
||||
<p class="list_user">{if $group.MEMBERS>0}{$group.MEMBERS}<br>{$group.L_MEMBERS}{else}{$group.MEMBERS}{/if}</p>
|
||||
<a class="icon-lock group_perm" href="{$group.U_PERM}" title="{'Permissions'|@translate}">{'Permissions'|translate}</a>
|
||||
</li>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</ul>
|
||||
|
||||
<fieldset id="action">
|
||||
<legend>{'Action'|@translate}</legend>
|
||||
<div id="forbidAction">{'No group selected, no action possible.'|@translate}</div>
|
||||
<div id="permitAction" style="display:none">
|
||||
|
||||
<select name="selectAction">
|
||||
<option value="-1">{'Choose an action'|@translate}</option>
|
||||
<option disabled="disabled">------------------</option>
|
||||
<option value="rename">{'Rename'|@translate}</option>
|
||||
<option value="delete">{'Delete'|@translate}</option>
|
||||
<option value="merge">{'Merge selected groups'|@translate}</option>
|
||||
<option value="duplicate">{'Duplicate'|@translate}</option>
|
||||
<option value="toggle_default">{'Toggle \'default group\' property'|@translate}</option>
|
||||
{if !empty($element_set_groupe_plugins_actions)}
|
||||
{foreach from=$element_set_groupe_plugins_actions item=action}
|
||||
<option value="{$action.ID}">{$action.NAME}</option>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</select>
|
||||
|
||||
<!-- rename -->
|
||||
<div id="action_rename" class="bulkAction">
|
||||
{if not empty($groups)}
|
||||
{foreach from=$groups item=group}
|
||||
<p group_id="{$group.ID}" class="grp_action">
|
||||
<input type="text" class="large" name="rename_{$group.ID}" value="{$group.NAME}" onfocus="this.value=(this.value=='{$group.NAME}') ? '' : this.value;" onblur="this.value=(this.value=='') ? '{$group.NAME}' : this.value;">
|
||||
</p>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<!-- merge -->
|
||||
<div id="action_merge" class="bulkAction">
|
||||
<p id="two_to_select">{'Please select at least two groups'|@translate}</p>
|
||||
{assign var='mergeDefaultValue' value='Type here the name of the new group'|@translate}
|
||||
<p id="two_atleast">
|
||||
<input type="text" class="large" name="merge" value="{$mergeDefaultValue}" onfocus="this.value=(this.value=='{$mergeDefaultValue}') ? '' : this.value;" onblur="this.value=(this.value=='') ? '{$mergeDefaultValue}' : this.value;">
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- delete -->
|
||||
<div id="action_delete" class="bulkAction">
|
||||
<p><label><input type="checkbox" name="confirm_deletion" value="1"> {'Are you sure?'|@translate}</label></p>
|
||||
</div>
|
||||
|
||||
<!-- duplicate -->
|
||||
<div id="action_duplicate" class="bulkAction">
|
||||
{assign var='duplicateDefaultValue' value='Type here the name of the new group'|@translate}
|
||||
{if not empty($groups)}
|
||||
{foreach from=$groups item=group}
|
||||
<p group_id="{$group.ID}" class="grp_action">
|
||||
{$group.NAME} > <input type="text" class="large" name="duplicate_{$group.ID}" value="{$duplicateDefaultValue}" onfocus="this.value=(this.value=='{$duplicateDefaultValue}') ? '' : this.value;" onblur="this.value=(this.value=='') ? '{$duplicateDefaultValue}' : this.value;">
|
||||
</p>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<!-- toggle_default -->
|
||||
<div id="action_toggle_default" class="bulkAction">
|
||||
{if not empty($groups)}
|
||||
{foreach from=$groups item=group}
|
||||
<p group_id="{$group.ID}" class="grp_action">
|
||||
{$group.NAME} > {if empty($group.IS_DEFAULT)}{'This group will be set to default'|@translate}{else}{'This group will be unset to default'|@translate}{/if}
|
||||
</p>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
|
||||
<!-- plugins -->
|
||||
{if !empty($element_set_groupe_plugins_actions)}
|
||||
{foreach from=$element_set_groupe_plugins_actions item=action}
|
||||
<div id="action_{$action.ID}" class="bulkAction">
|
||||
{if !empty($action.CONTENT)}{$action.CONTENT}{/if}
|
||||
</div>
|
||||
{/foreach}
|
||||
{/if}
|
||||
|
||||
<p id="applyActionBlock" style="display:none" class="actionButtons">
|
||||
<input id="applyAction" class="submit" type="submit" value="{'Apply action'|@translate}" name="submit"> <span id="applyOnDetails"></span></p>
|
||||
</div> <!-- #permitAction -->
|
||||
</fieldset>
|
||||
</form>
|
||||
</form>
|
||||
@@ -0,0 +1,8 @@
|
||||
{* $Id *}
|
||||
<h2>{$TITLE}</h2>
|
||||
|
||||
<form method="post" action="{$F_ACTION}">
|
||||
{$DOUBLE_SELECT}
|
||||
</form>
|
||||
|
||||
<p>{'Only private albums are listed'|@translate}</p>
|
||||
93
zoesch.de/galerie/admin/themes/default/template/header.tpl
Normal file
@@ -0,0 +1,93 @@
|
||||
{*
|
||||
Warning : This is the admin pages header only
|
||||
don't confuse with the public page header
|
||||
*}
|
||||
<!DOCTYPE html>
|
||||
<html lang="{$lang_info.code}" dir="{$lang_info.direction}">
|
||||
<head>
|
||||
<meta charset="{$CONTENT_ENCODING}">
|
||||
<title>{$GALLERY_TITLE} :: {$PAGE_TITLE}</title>
|
||||
<link rel="shortcut icon" type="image/x-icon" href="{$ROOT_URL}{$themeconf.icon_dir}/favicon.ico">
|
||||
|
||||
{strip}
|
||||
{combine_css path="admin/themes/default/fontello/css/fontello.css" order=-10}
|
||||
{assign "theme_id" ""}
|
||||
{foreach from=$themes item=theme}
|
||||
{assign "theme_id" $theme.id}
|
||||
|
||||
{if $theme.load_css}
|
||||
{combine_css path="admin/themes/`$theme.id`/theme.css" order=-10}
|
||||
{/if}
|
||||
{if !empty($theme.local_head)}
|
||||
{include file=$theme.local_head load_css=$theme.load_css}
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
{combine_script id='jquery' path='themes/default/js/jquery.min.js'}
|
||||
{/strip}
|
||||
|
||||
<!-- BEGIN get_combined -->
|
||||
{get_combined_css}
|
||||
|
||||
{get_combined_scripts load='header'}
|
||||
<!-- END get_combined -->
|
||||
|
||||
{if not empty($head_elements)}
|
||||
{foreach from=$head_elements item=elt}
|
||||
{$elt}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</head>
|
||||
|
||||
<body id="{$BODY_ID}">
|
||||
|
||||
<div id="the_page">
|
||||
|
||||
{if not empty($header_msgs)}
|
||||
<div class="header_msgs">
|
||||
{foreach from=$header_msgs item=elt}
|
||||
{$elt}
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div id="pwgHead">
|
||||
{strip}
|
||||
<h1>
|
||||
<a href="{$U_RETURN}" title="{'Visit Gallery'|translate}" class="tiptip">
|
||||
<span class="icon-home"></span>
|
||||
{$GALLERY_TITLE}
|
||||
</a>
|
||||
</h1>
|
||||
{/strip}
|
||||
|
||||
<div id="headActions">
|
||||
<i class="icon-user"></i>{$USERNAME}
|
||||
<a href="{$U_RETURN}" title="{'Visit Gallery'|translate}"><i class="icon-eye"></i><span>{'Visit Gallery'|translate}</span></a>
|
||||
|
||||
{strip}
|
||||
<a href="{$U_CHANGE_THEME}" class="tiptip" title="{'Switch to clear or dark colors for administration'|translate}">
|
||||
{if $theme_id eq "clear"}
|
||||
<i class="icon-moon-inv"></i><span>Dark</span>
|
||||
{elseif $theme_id eq "roma"}
|
||||
<i class="icon-sun-inv"></i><span>Light</span>
|
||||
{/if}
|
||||
</a>
|
||||
{/strip}
|
||||
|
||||
<a class="tiptip" href="{$U_FAQ}" title="{'Instructions to use Piwigo'|@translate}"><i class="icon-help-circled"></i><span>{'Help Me'|translate}</span></a>
|
||||
<a href="{$U_LOGOUT}"><i class="icon-logout"></i><span>{'Logout'|translate}</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
|
||||
{if not empty($header_notes)}
|
||||
<div class="header_notes">
|
||||
{foreach from=$header_notes item=elt}
|
||||
{$elt}
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div id="pwgMain">
|
||||
13
zoesch.de/galerie/admin/themes/default/template/help.tpl
Normal file
@@ -0,0 +1,13 @@
|
||||
{if not $ENABLE_SYNCHRONIZATION}
|
||||
{html_style}{literal}
|
||||
#helpSynchro {display:none;}
|
||||
{/literal}{/html_style}
|
||||
{/if}
|
||||
|
||||
<h2>{'Help'|@translate} » {$HELP_SECTION_TITLE}</h2>
|
||||
|
||||
<div id="helpContent">
|
||||
|
||||
{$HELP_CONTENT}
|
||||
|
||||
</div>
|
||||
175
zoesch.de/galerie/admin/themes/default/template/history.tpl
Normal file
@@ -0,0 +1,175 @@
|
||||
|
||||
{include file='include/datepicker.inc.tpl'}
|
||||
|
||||
{footer_script}
|
||||
jQuery(function(){ {* <!-- onLoad needed to wait localization loads --> *}
|
||||
jQuery('[data-datepicker]').pwgDatepicker();
|
||||
});
|
||||
{/footer_script}
|
||||
|
||||
<h2>{'History'|@translate} {$TABSHEET_TITLE}</h2>
|
||||
|
||||
<form class="filter" method="post" name="filter" action="{$F_ACTION}">
|
||||
<fieldset class="with-border">
|
||||
<legend>{'Filter'|@translate}</legend>
|
||||
<ul>
|
||||
<li><label>{'Date'|@translate}</label></li>
|
||||
<li>
|
||||
<input type="hidden" name="start" value="{$START}">
|
||||
<label>
|
||||
<i class="icon-calendar"></i>
|
||||
<input type="text" data-datepicker="start" data-datepicker-end="end" data-datepicker-unset="start_unset" readonly>
|
||||
</label>
|
||||
<br>
|
||||
<a href="#" class="icon-cancel-circled" id="start_unset">{'unset'|translate}</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><label>{'End-Date'|@translate}</label></li>
|
||||
<li>
|
||||
<input type="hidden" name="end" value="{$END}">
|
||||
<label>
|
||||
<i class="icon-calendar"></i>
|
||||
<input type="text" data-datepicker="end" data-datepicker-start="start" data-datepicker-unset="end_unset" readonly>
|
||||
</label>
|
||||
<br>
|
||||
<a href="#" class="icon-cancel-circled" id="end_unset">{'unset'|translate}</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<label>
|
||||
{'Element type'|@translate}
|
||||
<select name="types[]" multiple="multiple" size="4">
|
||||
{html_options values=$type_option_values output=$type_option_values|translate selected=$type_option_selected}
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
{'User'|@translate}
|
||||
<select name="user">
|
||||
<option value="-1">------------</option>
|
||||
{html_options options=$user_options selected=$user_options_selected}
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
{'Image id'|@translate}
|
||||
<input name="image_id" value="{$IMAGE_ID}" type="text" size="5">
|
||||
</label>
|
||||
|
||||
<label>
|
||||
{'File name'|@translate}
|
||||
<input name="filename" value="{$FILENAME}" type="text" size="12">
|
||||
</label>
|
||||
|
||||
<label>
|
||||
{'IP'|@translate}
|
||||
<input name="ip" value="{$IP}" type="text" size="12">
|
||||
</label>
|
||||
|
||||
<label>
|
||||
{'Thumbnails'|@translate}
|
||||
<select name="display_thumbnail">
|
||||
{html_options options=$display_thumbnails selected=$display_thumbnail_selected}
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<input type="submit" name="submit" value="{'Submit'|@translate}">
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
{if isset($search_summary)}
|
||||
<fieldset>
|
||||
<legend>{'Summary'|@translate}</legend>
|
||||
|
||||
<ul>
|
||||
<li>{$search_summary.NB_LINES}, {$search_summary.FILESIZE}</li>
|
||||
<li>
|
||||
{$search_summary.USERS}
|
||||
<ul>
|
||||
<li>{$search_summary.MEMBERS}</li>
|
||||
<li>{$search_summary.GUESTS}</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
{/if}
|
||||
|
||||
{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
|
||||
|
||||
<table class="table2" id="detailedStats">
|
||||
<thead>
|
||||
<tr class="throw">
|
||||
<th>{'Date'|@translate}</th>
|
||||
<th>{'Time'|@translate}</th>
|
||||
<th>{'User'|@translate}</th>
|
||||
<th>{'IP'|@translate}</th>
|
||||
<th>{'Element'|@translate}</th>
|
||||
<th>{'Element type'|@translate}</th>
|
||||
<th>{'Section'|@translate}</th>
|
||||
<th>{'Album'|@translate} / {'Tags'|@translate}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
{if !empty($search_results)}
|
||||
{foreach from=$search_results item=detail name=res_loop}
|
||||
<tr class="{if $smarty.foreach.res_loop.index is odd}row1{else}row2{/if}">
|
||||
<td class="hour">{$detail.DATE}</td>
|
||||
<td class="hour">{$detail.TIME}</td>
|
||||
<td>{$detail.USER}</td>
|
||||
<td class="IP">{$detail.IP}</td>
|
||||
<td>{$detail.IMAGE}</td>
|
||||
<td>{$detail.TYPE}</td>
|
||||
<td>{$detail.SECTION}</td>
|
||||
<td>{$detail.CATEGORY}{$detail.TAGS}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</table>
|
||||
|
||||
{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
|
||||
|
||||
{combine_script id='jquery.geoip' load='async' path='admin/themes/default/js/jquery.geoip.js'}
|
||||
|
||||
{footer_script}{literal}
|
||||
jQuery(document).ready( function() {
|
||||
jQuery(".IP").one( "mouseenter", function(){
|
||||
var that = $(this);
|
||||
that
|
||||
.data("isOver", true)
|
||||
.one("mouseleave", function() {
|
||||
that.removeData("isOver");
|
||||
});
|
||||
GeoIp.get( that.text(), function(data) {
|
||||
if (!data.fullName) return;
|
||||
|
||||
var content = data.fullName;
|
||||
if (data.latitude && data.region_name) {
|
||||
content += '<br><a class="ipGeoOpen" data-lat="'+data.latitude+'" data-lon="'+data.longitude+'"';
|
||||
content += ' href="#">show on a Google Map</a>';
|
||||
}
|
||||
|
||||
that.tipTip( {
|
||||
content: content,
|
||||
keepAlive: true,
|
||||
defaultPosition: "right",
|
||||
maxWidth: 320,
|
||||
} );
|
||||
if (that.data("isOver"))
|
||||
that.trigger("mouseenter");
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery(document).on('click', '.ipGeoOpen', function() {
|
||||
var lat = jQuery(this).data("lat");
|
||||
var lon = jQuery(this).data("lon");
|
||||
var parent = jQuery(this).parent();
|
||||
jQuery(this).remove();
|
||||
|
||||
var append = '<br><img width=300 height=220 src="http://maps.googleapis.com/maps/api/staticmap';
|
||||
append += '?sensor=false&size=300x220&zoom=6&markers=size:tiny%7C' + lat + ',' + lon + '">';
|
||||
|
||||
jQuery(parent).append(append);
|
||||
return false;
|
||||
});
|
||||
});
|
||||
{/literal}{/footer_script}
|
||||
@@ -0,0 +1,25 @@
|
||||
{if empty($load_mode)}{$load_mode='footer'}{/if}
|
||||
{include file='include/colorbox.inc.tpl' load_mode=$load_mode}
|
||||
|
||||
{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'}
|
||||
{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"}
|
||||
|
||||
{combine_script id='addAlbum' load=$load_mode path='admin/themes/default/js/addAlbum.js'}
|
||||
|
||||
<div style="display:none">
|
||||
<div id="addAlbumForm">
|
||||
<form>
|
||||
{'Parent album'|@translate}<br>
|
||||
<select name="category_parent"></select>
|
||||
<br><br>
|
||||
|
||||
{'Album name'|@translate}<br>
|
||||
<input name="category_name" type="text" maxlength="255">
|
||||
<span id="categoryNameError" style="color:red;">{'The name of an album must not be empty'|translate}</span>
|
||||
<br><br><br>
|
||||
|
||||
<input type="submit" value="{'Create'|@translate}">
|
||||
<span id="albumCreationLoading" style="display:none"><img src="themes/default/images/ajax-loader-small.gif"></span>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,9 @@
|
||||
{combine_script id='jquery.autogrow' load='async' require='jquery' path='themes/default/js/plugins/jquery.autogrow-textarea.js'}
|
||||
{* Auto size and auto grow textarea *}
|
||||
{footer_script require='jquery.autogrow'}{literal}
|
||||
jQuery(document).ready(function(){
|
||||
jQuery('textarea').css('overflow-y', 'hidden');
|
||||
// Auto size and auto grow for all text area
|
||||
jQuery('textarea').autogrow();
|
||||
});
|
||||
{/literal}{/footer_script}
|
||||
@@ -0,0 +1,3 @@
|
||||
{if empty($load_mode)}{$load_mode='footer'}{/if}
|
||||
{combine_script id='jquery.colorbox' load=$load_mode require='jquery' path='themes/default/js/plugins/jquery.colorbox.min.js'}
|
||||
{combine_css id='jquery.colorbox' path="themes/default/js/plugins/colorbox/style2/colorbox.css"}
|
||||
@@ -0,0 +1,22 @@
|
||||
{if empty($load_mode)}{$load_mode='footer'}{/if}
|
||||
{combine_script id='jquery.ui.timepicker-addon' load=$load_mode require='jquery.ui.datepicker,jquery.ui.slider' path="themes/default/js/ui/jquery.ui.timepicker-addon.js"}
|
||||
|
||||
{$require='jquery.ui.timepicker-addon'}
|
||||
{assign var="datepicker_language" value="themes/default/js/ui/i18n/jquery.ui.datepicker-`$lang_info.jquery_code`.js"}
|
||||
{if "PHPWG_ROOT_PATH"|@constant|@cat:$datepicker_language|@file_exists}
|
||||
{combine_script id="jquery.ui.datepicker-`$lang_info.jquery_code`" load=$load_mode require='jquery.ui.datepicker' path=$datepicker_language}
|
||||
{$require=$require|cat:",jquery.ui.datepicker-`$lang_info.jquery_code`"}
|
||||
{/if}
|
||||
|
||||
{assign var="timepicker_language" value="themes/default/js/ui/i18n/jquery.ui.timepicker-`$lang_info.jquery_code`.js"}
|
||||
{if "PHPWG_ROOT_PATH"|@constant|@cat:$datepicker_language|@file_exists}
|
||||
{combine_script id="jquery.ui.timepicker-`$lang_info.jquery_code`" load=$load_mode require='jquery.ui.timepicker-addon' path=$timepicker_language}
|
||||
{$require=$require|cat:",jquery.ui.timepicker-`$lang_info.jquery_code`"}
|
||||
{/if}
|
||||
|
||||
{combine_script id='datepicker' load=$load_mode require=$require path='admin/themes/default/js/datepicker.js'}
|
||||
|
||||
{combine_css path="themes/default/js/ui/theme/jquery.ui.theme.css"}
|
||||
{combine_css path="themes/default/js/ui/theme/jquery.ui.slider.css"}
|
||||
{combine_css path="themes/default/js/ui/theme/jquery.ui.datepicker.css"}
|
||||
{combine_css path="themes/default/js/ui/theme/jquery.ui.timepicker-addon.css"}
|
||||
@@ -0,0 +1,16 @@
|
||||
{* was used in double_select.tpl until Piwigo 2.8, no longer used in Piwigo core *}
|
||||
{footer_script require='jquery.ui.resizable'}{literal}
|
||||
jQuery(document).ready(function(){
|
||||
// Resize possible for double select list
|
||||
jQuery(".doubleSelect select.categoryList").resizable({
|
||||
handles: "w,e",
|
||||
animate: true,
|
||||
animateDuration: "slow",
|
||||
animateEasing: "swing",
|
||||
preventDefault: true,
|
||||
preserveCursor: true,
|
||||
autoHide: true,
|
||||
ghost: true
|
||||
});
|
||||
});
|
||||
{/literal}{/footer_script}
|
||||
@@ -0,0 +1,19 @@
|
||||
<script type="text/javascript" src="template-common/lib/jquery.packed.js"></script>
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$option_selected = $('#dblayer option:selected').attr('value');
|
||||
if ($option_selected=='sqlite' || $option_selected=='pdo-sqlite') {
|
||||
$('input[name=dbhost],input[name=dbuser],input[name=dbpasswd]').parent().parent().hide();
|
||||
}
|
||||
$('#dblayer').change(function() {
|
||||
$db = this;
|
||||
if ($db.value=='sqlite' || $db.value=='pdo-sqlite') {
|
||||
$('input[name=dbhost],input[name=dbuser],input[name=dbpasswd]').parent().parent().hide();
|
||||
} else {
|
||||
$('input[name=dbhost],input[name=dbuser],input[name=dbpasswd]').parent().parent().show();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
@@ -0,0 +1,16 @@
|
||||
{* Resize possible *}
|
||||
{footer_script require='jquery.ui.resizable'}{literal}
|
||||
jQuery().ready(function(){
|
||||
// Resize possible for list
|
||||
jQuery(".categoryList").resizable({
|
||||
handles: "all",
|
||||
animate: true,
|
||||
animateDuration: "slow",
|
||||
animateEasing: "swing",
|
||||
preventDefault: true,
|
||||
preserveCursor: true,
|
||||
autoHide: true,
|
||||
ghost: true
|
||||
});
|
||||
});
|
||||
{/literal}{/footer_script}
|
||||
@@ -0,0 +1,15 @@
|
||||
{footer_script require='jquery'}{literal}
|
||||
jQuery(document).ready(function(){
|
||||
jQuery(".tagSelection").on("click", "label", function () {
|
||||
var parent = jQuery(this).parent('li');
|
||||
var checkbox = jQuery(this).children("input[type=checkbox]");
|
||||
|
||||
if (jQuery(checkbox).is(':checked')) {
|
||||
parent.addClass("tagSelected");
|
||||
}
|
||||
else {
|
||||
parent.removeClass('tagSelected');
|
||||
}
|
||||
});
|
||||
});
|
||||
{/literal}{/footer_script}
|
||||
311
zoesch.de/galerie/admin/themes/default/template/install.tpl
Normal file
@@ -0,0 +1,311 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{$lang_info.code}" dir="{$lang_info.direction}">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset={$T_CONTENT_ENCODING}">
|
||||
<meta http-equiv="Content-script-type" content="text/javascript">
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<link rel="shortcut icon" type="image/x-icon" href="{$ROOT_URL}{$themeconf.icon_dir}/favicon.ico">
|
||||
|
||||
{get_combined_css}
|
||||
{foreach from=$themes item=theme}
|
||||
{if $theme.load_css}
|
||||
{combine_css path="admin/themes/`$theme.id`/theme.css" order=-10}
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
<!--[if IE 7]>
|
||||
<link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/themes/default/fix-ie7.css">
|
||||
<![endif]-->
|
||||
|
||||
<!-- BEGIN get_combined_scripts -->
|
||||
{get_combined_scripts load='header'}
|
||||
<!-- END get_combined_scripts -->
|
||||
|
||||
{combine_script id='jquery' path='themes/default/js/jquery.min.js'}
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("a.externalLink").click(function() {
|
||||
window.open($(this).attr("href"));
|
||||
return false;
|
||||
});
|
||||
|
||||
$("#admin_mail").keyup(function() {
|
||||
$(".adminEmail").text($(this).val());
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<style type="text/css">
|
||||
body {
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
#content {
|
||||
width: 800px;
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
padding:0;
|
||||
background-color:transparent !important;
|
||||
border:none;
|
||||
}
|
||||
|
||||
#theHeader {
|
||||
display: block;
|
||||
background:url("admin/themes/clear/images/piwigo_logo_big.png") no-repeat scroll center 20px transparent;
|
||||
height:100px;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
margin-top:20px;
|
||||
background-color:#f1f1f1;
|
||||
}
|
||||
|
||||
legend {
|
||||
font-weight:bold;
|
||||
letter-spacing:2px;
|
||||
}
|
||||
|
||||
.content h2 {
|
||||
display:block;
|
||||
font-size:20px;
|
||||
text-align:center;
|
||||
/* margin-top:5px; */
|
||||
}
|
||||
|
||||
table.table2 {
|
||||
width: 100%;
|
||||
border:0;
|
||||
}
|
||||
|
||||
table.table2 td {
|
||||
text-align: left;
|
||||
padding: 5px 2px;
|
||||
}
|
||||
|
||||
table.table2 td.fieldname {
|
||||
font-weight:normal;
|
||||
}
|
||||
|
||||
table.table2 td.fielddesc {
|
||||
padding-left:10px;
|
||||
font-style:italic;
|
||||
}
|
||||
|
||||
input[type="submit"], input[type="button"], a.bigButton {
|
||||
font-size:14px;
|
||||
font-weight:bold;
|
||||
letter-spacing:2px;
|
||||
border:none;
|
||||
background-color:#666666;
|
||||
color:#fff;
|
||||
padding:5px;
|
||||
-moz-border-radius:5px;
|
||||
-webkit-border-radius:5px;
|
||||
border-radius:5px;
|
||||
}
|
||||
|
||||
input[type="submit"]:hover, input[type="button"]:hover, a.bigButton:hover {
|
||||
background-color:#ff7700;
|
||||
color:white;
|
||||
}
|
||||
|
||||
input[type="text"], input[type="password"], select {
|
||||
background-color:#ddd;
|
||||
border:2px solid #ccc;
|
||||
-moz-border-radius:5px;
|
||||
-webkit-border-radius:5px;
|
||||
border-radius:5px;
|
||||
padding:2px;
|
||||
}
|
||||
|
||||
input[type="text"]:focus, input[type="password"]:focus, select:focus {
|
||||
background-color:#fff;
|
||||
border:2px solid #ff7700;
|
||||
}
|
||||
|
||||
.sql_content, .infos a {
|
||||
color: #ff3363;
|
||||
}
|
||||
|
||||
.errors {
|
||||
padding-bottom:5px;
|
||||
}
|
||||
|
||||
</style>
|
||||
{/literal}
|
||||
|
||||
{combine_script id='jquery.cluetip' load='async' require='jquery' path='themes/default/js/plugins/jquery.cluetip.js'}
|
||||
|
||||
{footer_script require='jquery.cluetip'}
|
||||
jQuery().ready(function(){ldelim}
|
||||
jQuery('.cluetip').cluetip({ldelim}
|
||||
width: 300,
|
||||
splitTitle: '|',
|
||||
positionBy: 'bottomTop'
|
||||
});
|
||||
});
|
||||
{/footer_script}
|
||||
|
||||
|
||||
<title>Piwigo {$RELEASE} - {'Installation'|@translate}</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="the_page">
|
||||
<div id="theHeader"></div>
|
||||
<div id="content" class="content">
|
||||
|
||||
<h2>{'Version'|@translate} {$RELEASE} - {'Installation'|@translate}</h2>
|
||||
|
||||
{if isset($config_creation_failed)}
|
||||
<div class="errors">
|
||||
<p style="margin-left:30px;">
|
||||
<strong>{'Creation of config file local/config/database.inc.php failed.'|@translate}</strong>
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>{'You can download the config file and upload it to local/config directory of your installation.'|@translate}</p>
|
||||
<p style="text-align:center">
|
||||
<input type="button" value="{'Download the config file'|@translate}" onClick="window.open('{$config_url}');">
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>{'An alternate solution is to copy the text in the box above and paste it into the file "local/config/database.inc.php" (Warning : database.inc.php must only contain what is in the textarea, no line return or space character)'|@translate}</p>
|
||||
<textarea rows="15" cols="70">{$config_file_content}</textarea>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if isset($errors)}
|
||||
<div class="errors">
|
||||
<ul>
|
||||
{foreach from=$errors item=error}
|
||||
<li>{$error}</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if isset($infos)}
|
||||
<div class="infos">
|
||||
<ul>
|
||||
{foreach from=$infos item=info}
|
||||
<li>{$info}</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if isset($install)}
|
||||
<form method="POST" action="{$F_ACTION}" name="install_form">
|
||||
|
||||
<fieldset>
|
||||
<legend>{'Basic configuration'|@translate}</legend>
|
||||
|
||||
<table class="table2">
|
||||
<tr>
|
||||
<td style="width: 30%">{'Default gallery language'|@translate}</td>
|
||||
<td>
|
||||
<select name="language" onchange="document.location = 'install.php?language='+this.options[this.selectedIndex].value;">
|
||||
{html_options options=$language_options selected=$language_selection}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{'Database configuration'|@translate}</legend>
|
||||
|
||||
<table class="table2">
|
||||
<tr>
|
||||
<td style="width: 30%;" class="fieldname">{'Host'|@translate}</td>
|
||||
<td><input type="text" name="dbhost" value="{$F_DB_HOST}"></td>
|
||||
<td class="fielddesc">{'localhost or other, supplied by your host provider'|@translate}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="fieldname">{'User'|@translate}</td>
|
||||
<td><input type="text" name="dbuser" value="{$F_DB_USER}"></td>
|
||||
<td class="fielddesc">{'user login given by your host provider'|@translate}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="fieldname">{'Password'|@translate}</td>
|
||||
<td><input type="password" name="dbpasswd" value=""></td>
|
||||
<td class="fielddesc">{'user password given by your host provider'|@translate}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="fieldname">{'Database name'|@translate}</td>
|
||||
<td><input type="text" name="dbname" value="{$F_DB_NAME}"></td>
|
||||
<td class="fielddesc">{'also given by your host provider'|@translate}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="fieldname">{'Database table prefix'|@translate}</td>
|
||||
<td><input type="text" name="prefix" value="{$F_DB_PREFIX}"></td>
|
||||
<td class="fielddesc">{'database tables names will be prefixed with it (enables you to manage better your tables)'|@translate}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{'Admin configuration'|@translate}</legend>
|
||||
|
||||
<table class="table2">
|
||||
<tr>
|
||||
<td style="width: 30%;" class="fieldname">{'Username'|@translate}</td>
|
||||
<td><input type="text" name="admin_name" value="{$F_ADMIN}"></td>
|
||||
<td class="fielddesc">{'It will be shown to the visitors. It is necessary for website administration'|@translate}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="fieldname">{'Password'|@translate}</td>
|
||||
<td><input type="password" name="admin_pass1" value=""></td>
|
||||
<td class="fielddesc">{'Keep it confidential, it enables you to access administration panel'|@translate}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="fieldname">{'Password [confirm]'|@translate}</td>
|
||||
<td><input type="password" name="admin_pass2" value=""></td>
|
||||
<td class="fielddesc">{'verification'|@translate}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="fieldname">{'Email address'|@translate}</td>
|
||||
<td><input type="text" name="admin_mail" id="admin_mail" value="{$F_ADMIN_EMAIL}"></td>
|
||||
<td class="fielddesc">{'Visitors will be able to contact site administrator with this mail'|@translate}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{'Options'|@translate}</options>
|
||||
<td colspan="2">
|
||||
<label>
|
||||
<input type="checkbox" name="newsletter_subscribe"{if $F_NEWSLETTER_SUBSCRIBE} checked="checked"{/if}>
|
||||
<span class="cluetip" title="{'Piwigo Announcements Newsletter'|@translate}|{'Keep in touch with Piwigo project, subscribe to Piwigo Announcement Newsletter. You will receive emails when a new release is available (sometimes including a security bug fix, it\'s important to know and upgrade) and when major events happen to the project. Only a few emails a year.'|@translate|@htmlspecialchars|@nl2br}">{'Subscribe %s to Piwigo Announcements Newsletter'|@translate:$EMAIL}</span>
|
||||
</label>
|
||||
<br>
|
||||
<label>
|
||||
<input type="checkbox" name="send_password_by_mail" checked="checked">
|
||||
{'Send my connection settings by email'|@translate}
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<div style="text-align:center; margin:20px 0 10px 0">
|
||||
<input class="submit" type="submit" name="install" value="{'Start Install'|@translate}">
|
||||
</div>
|
||||
</form>
|
||||
{else}
|
||||
<p>
|
||||
<a class="bigButton" href="index.php">{'Visit Gallery'|@translate}</a>
|
||||
</p>
|
||||
{/if}
|
||||
</div> {* content *}
|
||||
<div style="text-align: center">{$L_INSTALL_HELP}</div>
|
||||
</div> {* the_page *}
|
||||
|
||||
<!-- BEGIN get_combined_scripts -->
|
||||
{get_combined_scripts load='footer'}
|
||||
<!-- END get_combined_scripts -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
177
zoesch.de/galerie/admin/themes/default/template/intro.tpl
Normal file
@@ -0,0 +1,177 @@
|
||||
{include file='include/colorbox.inc.tpl'}
|
||||
|
||||
{combine_script id='jquery.cluetip' load='async' require='jquery' path='themes/default/js/plugins/jquery.cluetip.js'}
|
||||
|
||||
{footer_script require='jquery.cluetip'}
|
||||
var piwigo_need_update_msg = '<a href="admin.php?page=updates">{'A new version of Piwigo is available.'|@translate|@escape:"javascript"} <i class="icon-right"></i></a>';
|
||||
var ext_need_update_msg = '<a href="admin.php?page=updates&tab=ext">{'Some upgrades are available for extensions.'|@translate|@escape:"javascript"} <i class="icon-right"></i></a>';
|
||||
|
||||
{literal}
|
||||
jQuery().ready(function(){
|
||||
jQuery('.cluetip').cluetip({
|
||||
width: 300,
|
||||
splitTitle: '|',
|
||||
positionBy: 'bottomTop'
|
||||
});
|
||||
jQuery.ajax({
|
||||
type: 'GET',
|
||||
url: 'ws.php',
|
||||
dataType: 'json',
|
||||
data: { method: 'pwg.extensions.checkUpdates', format: 'json' },
|
||||
timeout: 5000,
|
||||
success: function (data) {
|
||||
if (data['stat'] != 'ok')
|
||||
return;
|
||||
piwigo_update = data['result']['piwigo_need_update'];
|
||||
ext_update = data['result']['ext_need_update']
|
||||
if ((piwigo_update || ext_update) && !jQuery(".warnings").is('div'))
|
||||
jQuery(".eiw").prepend('<div class="warnings"><i class="eiw-icon icon-attention"></i><ul></ul></div>');
|
||||
if (piwigo_update)
|
||||
jQuery(".warnings ul").append('<li>'+piwigo_need_update_msg+'</li>');
|
||||
if (ext_update)
|
||||
jQuery(".warnings ul").append('<li>'+ext_need_update_msg+'</li>');
|
||||
}
|
||||
});
|
||||
});
|
||||
{/literal}
|
||||
{/footer_script}
|
||||
|
||||
{html_style}
|
||||
.stat-boxes {
|
||||
text-align:left;
|
||||
margin:10px;
|
||||
}
|
||||
|
||||
.stat-box {
|
||||
display:inline-block;
|
||||
width:200px;
|
||||
margin:10px;
|
||||
color:#777;
|
||||
}
|
||||
|
||||
div.stat-box {
|
||||
cursor:help;
|
||||
}
|
||||
|
||||
.stat-box:hover {
|
||||
color:#ff7700;
|
||||
}
|
||||
|
||||
.stat-box i {
|
||||
font-size:50px;
|
||||
float:left;
|
||||
margin-right:5px;
|
||||
}
|
||||
|
||||
.stat-box .number, .stat-box .caption {
|
||||
display:inline-block;
|
||||
width:120px;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
.stat-box .number {
|
||||
margin-top:10px;
|
||||
font-size:20px;
|
||||
}
|
||||
|
||||
.eiw .messages ul li {
|
||||
list-style-type:none !important;
|
||||
}
|
||||
|
||||
.eiw .messages .eiw-icon {
|
||||
margin-right:10px !important;
|
||||
}
|
||||
{/html_style}
|
||||
|
||||
<h2>{'Piwigo Administration'|@translate}</h2>
|
||||
|
||||
<div class="stat-boxes">
|
||||
|
||||
{if $NB_PHOTOS > 1}
|
||||
<a class="stat-box" href="{$U_ADD_PHOTOS}">
|
||||
<i class="icon-picture"></i>
|
||||
<span class="number">{$NB_PHOTOS|number_format}</span><span class="caption">{'Photos'|translate}</span>
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
{if $NB_ALBUMS > 1}
|
||||
<a class="stat-box" href="{$U_CATEGORIES}">
|
||||
<i class="icon-sitemap"></i>
|
||||
<span class="number">{$NB_ALBUMS}</span><span class="caption">{'Albums'|translate}</span>
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
{if $NB_TAGS > 1}
|
||||
<a class="stat-box" href="{$U_TAGS}">
|
||||
<i class="icon-tags"></i>
|
||||
<span class="number">{$NB_TAGS}</span><span class="caption" title="{'%d associations'|translate:$NB_IMAGE_TAG}">{'Tags'|translate}</span>
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
{if $NB_USERS > 2}
|
||||
<a class="stat-box" href="{$U_USERS}">
|
||||
<i class="icon-users"></i>
|
||||
<span class="number">{$NB_USERS}</span><span class="caption">{'Users'|translate}</span>
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
{if $NB_GROUPS > 0}
|
||||
<a class="stat-box" href="{$U_GROUPS}">
|
||||
<i class="icon-group"></i>
|
||||
<span class="number">{$NB_GROUPS}</span><span class="caption">{'Groups'|translate}</span>
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
{if $NB_COMMENTS > 1}
|
||||
<a class="stat-box" href="{$U_COMMENTS}">
|
||||
<i class="icon-chat"></i>
|
||||
<span class="number">{$NB_COMMENTS}</span><span class="caption">{'Comments'|translate}</span>
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
{if $NB_RATES > 0}
|
||||
<a class="stat-box" href="{$U_RATING}">
|
||||
<i class="icon-star"></i>
|
||||
<span class="number">{$NB_RATES}</span><span class="caption">{'Rating'|translate}</span>
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
{if $NB_VIEWS > 0}
|
||||
<a class="stat-box" href="{$U_HISTORY_STAT}">
|
||||
<i class="icon-signal"></i>
|
||||
<span class="number">{$NB_VIEWS}</span><span class="caption">{'Pages seen'|translate}</span>
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
{if $NB_PLUGINS > 0}
|
||||
<a class="stat-box" href="{$U_PLUGINS}">
|
||||
<i class="icon-puzzle"></i>
|
||||
<span class="number">{$NB_PLUGINS}</span><span class="caption">{'Plugins'|translate}</span>
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
<div class="stat-box">
|
||||
<i class="icon-hdd"></i>
|
||||
<span class="number">{$STORAGE_USED}</span><span class="caption">{'Storage used'|translate}</span>
|
||||
</div>
|
||||
|
||||
{if $NB_PHOTOS > 1}
|
||||
<div class="stat-box">
|
||||
<i class="icon-back-in-time"></i>
|
||||
<span class="number">{$first_added_age}</span><span class="caption" title="{'first photo added on %s'|translate:$first_added_date}">{'First photo added'|translate}</span>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
</div> {* .stat-boxes *}
|
||||
|
||||
<p class="showCreateAlbum">
|
||||
{if $ENABLE_SYNCHRONIZATION}
|
||||
<a href="{$U_QUICK_SYNC}" class="icon-exchange">{'Quick Local Synchronization'|translate}</a>
|
||||
{/if}
|
||||
|
||||
<br><a href="{$U_CHECK_UPGRADE}" class="icon-arrows-cw">{'Check for upgrade'|@translate}</a>
|
||||
|
||||
{if isset($SUBSCRIBE_BASE_URL)}
|
||||
<br><a href="{$SUBSCRIBE_BASE_URL}{$EMAIL}" class="externalLink cluetip icon-mail-alt" title="{'Piwigo Announcements Newsletter'|@translate}|{'Keep in touch with Piwigo project, subscribe to Piwigo Announcement Newsletter. You will receive emails when a new release is available (sometimes including a security bug fix, it\'s important to know and upgrade) and when major events happen to the project. Only a few emails a year.'|@translate|@htmlspecialchars|@nl2br}">{'Subscribe %s to Piwigo Announcements Newsletter'|@translate:$EMAIL}</a>
|
||||
{/if}
|
||||
</p>
|
||||
@@ -0,0 +1,46 @@
|
||||
<div class="titrePage">
|
||||
<h2>{'Installed Languages'|@translate}</h2>
|
||||
</div>
|
||||
|
||||
{foreach from=$language_states item=language_state}
|
||||
<fieldset>
|
||||
<legend>
|
||||
{if $language_state == 'active'}
|
||||
{'Active Languages'|@translate}
|
||||
|
||||
{elseif $language_state == 'inactive'}
|
||||
{'Inactive Languages'|@translate}
|
||||
|
||||
{/if}
|
||||
</legend>
|
||||
<div class="languageBoxes">
|
||||
{foreach from=$languages item=language}
|
||||
{if $language.state == $language_state}
|
||||
<div class="languageBox{if $language.is_default} languageDefault{/if}">
|
||||
<div class="languageName">{$language.name}{if $language.is_default} <em>({'default'|@translate})</em>{/if}</div>
|
||||
<div class="languageActions">
|
||||
<div>
|
||||
{if $language_state == 'active'}
|
||||
{if $language.deactivable}
|
||||
<a href="{$language.u_action}&action=deactivate" class="tiptip" title="{'Forbid this language to users'|@translate}">{'Deactivate'|@translate}</a>
|
||||
{else}
|
||||
<span title="{$language.deactivate_tooltip}">{'Deactivate'|@translate}</span>
|
||||
{/if}
|
||||
|
||||
{if not $language.is_default}
|
||||
| <a href="{$language.u_action}&action=set_default" class="tiptip" title="{'Set as default language for unregistered and new users'|@translate}">{'Default'|@translate}</a>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{if $language_state == 'inactive'}
|
||||
<a href="{$language.u_action}&action=activate" class="tiptip" title="{'Make this language available to users'|@translate}">{'Activate'|@translate}</a>
|
||||
| <a href="{$language.u_action}&action=delete" onclick="return confirm('{'Are you sure?'|@translate|@escape:javascript}');" class="tiptip" title="{'Delete this language'|@translate}">{'Delete'|@translate}</a>
|
||||
{/if}
|
||||
</div>
|
||||
</div> <!-- languageActions -->
|
||||
</div> <!-- languageBox -->
|
||||
{/if}
|
||||
{/foreach}
|
||||
</div> <!-- languageBoxes -->
|
||||
</fieldset>
|
||||
{/foreach}
|
||||
@@ -0,0 +1,41 @@
|
||||
{combine_script id='jquery.cluetip' load='async' require='jquery' path='themes/default/js/plugins/jquery.cluetip.js'}
|
||||
|
||||
{footer_script require='jquery.cluetip'}
|
||||
jQuery().ready(function(){ldelim}
|
||||
jQuery('.cluetip').cluetip({ldelim}
|
||||
width: 300,
|
||||
splitTitle: '|'
|
||||
});
|
||||
});
|
||||
{/footer_script}
|
||||
|
||||
<div class="titrePage">
|
||||
<h2>{'Add New Language'|@translate}</h2>
|
||||
</div>
|
||||
|
||||
{if !empty($languages)}
|
||||
<table class="table2 languages">
|
||||
<thead>
|
||||
<tr class="throw">
|
||||
<td>{'Language'|@translate}</td>
|
||||
<td>{'Version'|@translate}</td>
|
||||
<td>{'Date'|@translate}</td>
|
||||
<td>{'Author'|@translate}</td>
|
||||
<td>{'Actions'|@translate}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
{foreach from=$languages item=language name=languages_loop}
|
||||
<tr class="{if $smarty.foreach.languages_loop.index is odd}row1{else}row2{/if}">
|
||||
<td><a href="{$language.EXT_URL}" class="externalLink cluetip" title="{$language.EXT_NAME}|{$language.EXT_DESC|@htmlspecialchars|@nl2br}">{$language.EXT_NAME}</a></td>
|
||||
<td style="text-align:center;"><a href="{$language.EXT_URL}" class="externalLink cluetip" title="{$language.EXT_NAME}|{$language.VER_DESC|@htmlspecialchars|@nl2br}">{$language.VERSION}</a></td>
|
||||
<td>{$language.DATE}</td>
|
||||
<td>{$language.AUTHOR}</td>
|
||||
<td style="text-align:center;"><a href="{$language.URL_INSTALL}">{'Install'|@translate}</a>
|
||||
/ <a href="{$language.URL_DOWNLOAD}">{'Download'|@translate}</a>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
{else}
|
||||
<p>{'There is no other language available.'|@translate}</p>
|
||||
{/if}
|
||||
@@ -0,0 +1,54 @@
|
||||
<div class="titrePage">
|
||||
<h2>{'Maintenance'|@translate}</h2>
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
{if (isset($U_MAINT_LOCK_GALLERY))}
|
||||
<li><a href="{$U_MAINT_LOCK_GALLERY}" onclick="return confirm('{'A locked gallery is only visible to administrators'|@translate|@escape:'javascript'}');">{'Lock gallery'|@translate}</a></li>
|
||||
{else}
|
||||
<li><a href="{$U_MAINT_UNLOCK_GALLERY}">{'Unlock gallery'|@translate}</a></li>
|
||||
{/if}
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
{foreach from=$advanced_features item=feature}
|
||||
<li><a href="{$feature.URL}">{$feature.CAPTION}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><a href="{$U_MAINT_CATEGORIES}">{'Update albums informations'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_IMAGES}">{'Update photos information'|@translate}</a></li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><a href="{$U_MAINT_DATABASE}">{'Repair and optimize database'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_C13Y}">{'Reinitialize check integrity'|@translate}</a></li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><a href="{$U_MAINT_USER_CACHE}">{'Purge user cache'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_ORPHAN_TAGS}">{'Delete orphan tags'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_HISTORY_DETAIL}" onclick="return confirm('{'Purge history detail'|@translate|@escape:'javascript'}');">{'Purge history detail'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_HISTORY_SUMMARY}" onclick="return confirm('{'Purge history summary'|@translate|@escape:'javascript'}');">{'Purge history summary'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_SESSIONS}">{'Purge sessions'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_FEEDS}">{'Purge never used notification feeds'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_SEARCH}"onclick="return confirm('{'Purge search history'|@translate|@escape:'javascript'}');">{'Purge search history'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_COMPILED_TEMPLATES}">{'Purge compiled templates'|@translate}</a></li>
|
||||
<li>{'Delete multiple size images'|@translate}:
|
||||
{foreach from=$purge_derivatives key=name item=url name=loop}{if !$smarty.foreach.loop.first}, {/if}<a href="{$url}"{if $smarty.foreach.loop.first} onclick="return confirm('{'Are you sure?'|@translate|@escape:javascript}');"{/if}>{$name}</a>{/foreach}
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<fieldset id="environment">
|
||||
<legend><i class="icon-cog"></i> {'Environment'|@translate}</legend>
|
||||
<ul>
|
||||
<li><a href="{$PHPWG_URL}" class="externalLink">Piwigo</a> {$PWG_VERSION}</li>
|
||||
<li>{'Operating system'|@translate}: {$OS}</li>
|
||||
<li>PHP: {$PHP_VERSION} (<a href="{$U_PHPINFO}" class="externalLink">{'Show info'|@translate}</a>) [{$PHP_DATATIME}]</li>
|
||||
<li>{$DB_ENGINE}: {$DB_VERSION} [{$DB_DATATIME}]</li>
|
||||
{if isset($GRAPHICS_LIBRARY)}
|
||||
<li>{'Graphics Library'|@translate}: {$GRAPHICS_LIBRARY}</li>
|
||||
{/if}
|
||||
</ul>
|
||||
</fieldset>
|
||||