Compare commits

...

44 Commits

Author SHA1 Message Date
Tom Hutchison 0d3d6b03a8 Has to be a better way to do CHANGELOG, restoring deleted ## v2.30 directly 2020-12-11 11:20:10 -05:00
Tom Hutchison 4bbd644b85
Ready for Release v2.3.0 (#104)
* Fixing CSS with legacy.css until everything can be rewritten, bump to requires MW 1.34 and prepare for a release 2.3.0-dev

* Deprecated code fixed

* Preparing for release v2.3.0

* Additional CHANGELOG.md item

* Missing a # in the version header
2020-12-11 11:12:53 -05:00
Tom Hutchison 8ec2264b04 Setup CircleCI for testing 2020-12-11 09:18:53 -05:00
Tom Hutchison 13bf89300c update travis, php nightly is broken for now 2020-08-16 11:21:09 -04:00
Tom Hutchison 8a746f6b82 Prep for commit to fix issues #98 and #99 before merging into dev branch 2020-08-16 11:01:38 -04:00
MW install maintain even with core development 2df7a85616 Finish Search improvements mobile 2020-07-24 12:14:43 -04:00
MW install maintain even with core development 79e00892b4 Allow alternate methods of Login with personal_urls 2020-07-24 11:30:48 -04:00
Tom Hutchison 26162eedee Cleaner CSS font-size and PageForms ca-edit icon 2020-04-08 12:14:05 -04:00
Hutchy68 5014428101 Search results page - limited width #58 added to changelog 2020-04-05 12:51:04 -04:00
Hutchy68 46655db803 Enhancement noted in changelog ul and ol css improvements 2020-04-05 12:20:50 -04:00
Hutchy68 eb144a161f Multiple issues addressed on tracker. 2020-04-05 12:17:39 -04:00
Tom Hutchison 7ccab05353 Reset to -dev 2020-04-05 09:23:45 -04:00
Tom Hutchison e8f075de3f Remove -dev to merge into master 2020-04-05 09:21:07 -04:00
Hutchy68 4c66d059b6 Fix to missing () 2020-04-05 09:10:49 -04:00
Tom Hutchison 7bc517b271 Set version to dev 2020-04-05 08:19:59 -04:00
Tom Hutchison cd06863d2e Changes for MW 1.34 see https://phabricator.wikimedia.org/T187037 2020-04-05 07:55:20 -04:00
Tom Hutchison 078f9c258c Note in CHANGELOG.md 2019-03-16 11:55:46 -04:00
Tom Hutchison 1cbaa40c03 More improvement to MW image way CSS 2019-03-16 11:45:49 -04:00
Tom Hutchison 1dfbb94a0c More improvements for images addressing issues #69 and #72 2019-03-14 11:19:12 -04:00
Tom Hutchison 7adb2a5135 Moving code to select attribute in pivot.css 2019-03-13 07:59:00 -04:00
Tom Hutchison cb3906ac5b More fixes for CSS of MW 1.32, need to verify earlier MW versions 2019-03-12 21:13:05 -04:00
Tom Hutchison f586bf4c5c Rolling in all changes see CHANGELOG.md for list of fixes and improvements 2019-03-11 21:08:46 -04:00
Tom Hutchison e1acefb9d7
Merge pull request #74 from paladox/patch-1
Replace wfRunHooks with Hooks::run

Thanks @paladox merging into master
2019-03-08 16:29:00 -05:00
paladox a128dd152a
Replace wfRunHooks with Hooks::run
MediaWiki 1.32 removed wfRunHooks so replace with Hooks::run
2019-01-11 05:43:29 +00:00
Tom Hutchison 15cce18901 Merge branch 'develop' 2018-02-28 14:35:50 -05:00
Tom Hutchison 56a6ed08e7 Adding back parent::initPage($out) because it is needed in MW 1.27 2018-02-28 14:29:47 -05:00
Tom Hutchison ca91229c90 Merge branch 'develop' 2018-02-28 09:51:52 -05:00
Tom Hutchison b4c88e79f3 Preparation for v2.0.0 release of Pivot 2018-02-28 09:32:30 -05:00
Tom Hutchison a53099119a Merge branch 'develop' of github.com:Hutchy68/pivot into develop 2018-02-28 08:12:27 -05:00
Tom Hutchison 181b630b30 Merge local develop branch 2018-02-28 08:08:30 -05:00
Tom Hutchison 25684b30c0 Merge branch 'develop' of ssh://mw-core.org:22/home/mw-core/public_html/w/skins/pivot/ into develop 2018-02-28 07:55:24 -05:00
MW install maintain even with core development 842dfc3fdf Update README.md 2018-02-28 07:54:37 -05:00
Tom Hutchison 997b8df9b2 Giving foundation.js files a version of 5.5.3master and removing a missed test variable 2018-02-17 18:45:27 -05:00
Tom Hutchison b3db964e77 Removing some testing variables missed 2018-02-15 12:45:46 -05:00
Tom Hutchison 65964dc883 Making Font Awesome 'preload' a feature as this does not effect everyone. Absolute latest Foundation 5 js from their repo to fix all JQMigrate warnings. 2018-02-15 12:42:07 -05:00
MW install maintain even with core development 52aecafbc9 Fixes accounting for W3C Validation 2018-02-15 10:21:07 -05:00
MW install maintain even with core development 0c6eeceb86 Fixing a few output html errors 2018-02-15 10:03:22 -05:00
MW install maintain even with core development aa36556cb9 Sidebar update to output and pivot.css title fix 2018-02-15 09:32:33 -05:00
MW install maintain even with core development 8ae56081c1 Update to Foundation.js 2018-02-08 21:02:47 -05:00
MW install maintain even with core development cd535df66e Stylepath for font fix 2018-02-08 15:27:01 -05:00
MW install maintain even with core development 25db636961 fixes for develop branch 2018-02-08 15:01:57 -05:00
Tealk db642cbb53 Font-Awesome fixed and IE9 removed (#52)
* replaced the font-awesome js with css
* fixed #47
* fixed #46
* removed IE9 support
2018-02-08 09:58:41 -05:00
Tom Hutchison d47024ebed Bump version to v2.0.0, breaking backwards compatiblity. Plans to remove unsupported IE versions, etc. 2018-02-08 09:18:58 -05:00
Peter Grassberger b188757c3c Fix PULL_REQUEST_TEMPLATE typo (#49)
Thanks for the typo fix!
2018-02-08 09:01:43 -05:00
36 changed files with 2487 additions and 1156 deletions

57
.circleci/config.yml Normal file
View File

@ -0,0 +1,57 @@
version: 2.0
jobs:
"PHP 7.3":
docker:
-
auth:
password: $DOCKERHUB_PASSWORD
username: mydockerhub-user
image: "cimg/php:7.3"
steps:
- checkout
- run: "sudo composer install -n --prefer-dist"
- run: "sudo composer self-update"
- run: "sudo composer update --no-progress --prefer-dist --profile"
- run:
command: "composer test"
name: Test PHP7.3
"PHP 7.4":
docker:
-
auth:
password: $DOCKERHUB_PASSWORD
username: mydockerhub-user
image: "cimg/php:7.4"
steps:
- checkout
- run: "sudo composer install -n --prefer-dist"
- run: "sudo composer self-update"
- run: "sudo composer update --no-progress --prefer-dist --profile"
- run:
command: "composer test"
name: Test PHP7.4
"PHP 8.0":
docker:
- auth:
password: $DOCKERHUB_PASSWORD
username: mydockerhub-user
image: "cimg/php:8.0"
steps:
- checkout
- run: "sudo composer install -n --prefer-dist"
- run: "sudo composer self-update"
- run: "sudo composer update --no-progress --prefer-dist --profile"
- run:
command: "composer test"
name: Test PHP8.0
workflows:
version: 2
build:
jobs:
- "PHP 7.3"
- "PHP 7.4"
- "PHP 8.0"

View File

@ -2,7 +2,7 @@
All PR's welcome, even those without an Issue
* [ ] Have tested this PR and it adds a feature or fixes and issue noted below.
* [ ] Have tested this PR and it adds a feature or fixes an issue noted below.
### Additional Information Below

View File

@ -1,15 +0,0 @@
language: php
php:
- 7
- 5.6
- hhvm
- nightly
sudo: false
install:
- travis_retry composer update --no-progress --prefer-dist --profile
script:
- composer test

View File

@ -1,3 +1,51 @@
# Version 2.3.0
* [compatibility, CSS] Load MW core CSS that was dropped in MW 1.35
* [code] Drop Travis-CI and move to CircleCI
* [code] Update php-parallel-lint to a supported branch with PHP 8.0
* [deprecated, code] Updated deprecated code
## Version 2.2.2
* [bug, enhancement] Fix to allow multiple methods of login such as MW-OAuth2Client - Issue #99
* [bug, enhancement] Left-menu search (on mobile widths only) doesn't auto-complete #98
## Version 2.2.1
* [enhancement] Enumeration and Listings #54
* [bug] Search results page - limited width #58
* [bug] Syntax error in pivot.css Issue #89
* [bug] Personal tools menu name not translated into other languages Issue #88
* [bug] Search autocomplete not available on small screens Issue #85
* [bug] The links in the menu titles on the left seem to be clickable off they should not be. Issue #68
## Version 2.2.0
* [compatibility, deprecated] Fix for deprecated wfSuppressWarnings and wfRestoreWarnings with new Wikimedia\...
* [b/c break] Version minor bump, MW >= 1.31.0 now required
* [enhancement] Use of requires MW version in skin.json
## Version 2.1.1
* [CSS, enhancement] Improvements correcting Issues #72 and #69, images the MW way
* [CSS] Further improvements found similar to Search Input alignment on other form type pages
## Version 2.1.0
* [bug fix, compatibility] Replace wfRunHooks with Hooks::run PR #74 issue #75
* [bug fix, enhancement] Always adds the server name to the h1 tag issue #76 SEO related
* [CSS] Search Input alignment fix
* [CSS] Improvements and fixes after issue #76 was fixed
* [bug-fix, compatibility] Code loading changes, $out->addModuleScripts() to $out->addModules() issue #78
* [compatibility] Removal of fastclick.js as mobile browsers now deal with touch delay automatically
## Version 2.0.0
* [bug fix] Addressed serveral W3C validation errors with HTML output.
* [bug fix] update JavaScript of Foundation.js to stop deprecation warnings. Now version matches Foundation branch of Foundation 5.5.3 not released.
* [CSS, bug fix] various changes to CSS to fix bugs and address MediaWiki hidden CSS loading
* [enhancement] ability to preload Font Awesome and bypass server setup errors, added as a feature setting
* [enhancement] move all Font Awesome icons to `::before` CSS from JS pivot.js
* [b/c changes] remove feature `'IeEdgeCode'` feature set to send a compatibility header
* [b/c changes] removing support for IE 9 and earlier
## Version 1.0.5
* [bug fix] Search link was not follow $wgScript path

View File

@ -10,9 +10,8 @@
class SkinPivot extends SkinTemplate {
public $skinname = 'pivot', $stylename = 'pivot', $template = 'pivotTemplate', $useHeadElement = true;
public function setupSkinUserCss(OutputPage $out) {
parent::setupSkinUserCss($out);
public function getDefaultModules() {
global $wgPivotFeatures;
$wgPivotFeaturesDefaults = array(
'showActionsForAnon' => true,
@ -23,7 +22,7 @@ class SkinPivot extends SkinTemplate {
'wikiName' => &$GLOBALS['wgSitename'],
'wikiNameDesktop' => &$GLOBALS['wgSitename'],
'navbarIcon' => false,
'IeEdgeCode' => 1,
'preloadFontAwesome' => false,
'showFooterIcons' => false,
'addThisPUBID' => '',
'useAddThisShare' => '',
@ -34,25 +33,22 @@ class SkinPivot extends SkinTemplate {
$wgPivotFeatures[$fgOption] = $fgOptionValue;
}
}
switch ($wgPivotFeatures['IeEdgeCode']) {
case 1:
$out->addHeadItem('ie-meta', '<meta http-equiv="X-UA-Compatible" content="IE=edge" />');
break;
case 2:
if (isset($_SERVER['HTTP_USER_AGENT']) && (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false))
header('X-UA-Compatible: IE=edge');
break;
if ( $wgPivotFeatures['preloadFontAwesome'] ) {
$this->getOutput()->addHeadItem('font', '<link rel="preload" href="'.$wgLocalStylePath.'/pivot/assets/fonts/fontawesome-webfont.woff2?v=4.7.0" as="font" type="font/woff2" crossorigin="anonymous" />');
}
$out->addModuleStyles('skins.pivot.styles');
$this->getOutput()->addModuleStyles('skins.pivot.styles');
return parent::getDefaultModules();
}
public function initPage(OutputPage $out) {
global $wgLocalStylePath;
parent::initPage($out);
$viewport_meta = 'width=device-width, user-scalable=yes, initial-scale=1.0';
$out->addMeta('viewport', $viewport_meta);
$out->addModuleScripts('skins.pivot.js');
$out->addModules('skins.pivot.js');
}
}
@ -62,7 +58,7 @@ class pivotTemplate extends BaseTemplate {
public function execute() {
global $wgUser;
global $wgPivotFeatures;
wfSuppressWarnings();
Wikimedia\suppressWarnings();
$this->html('headelement');
switch ($wgPivotFeatures['usePivotTabs']) {
case true:
@ -96,21 +92,21 @@ class pivotTemplate extends BaseTemplate {
<?php if ($wgPivotFeatures['fixedNavBar'] != false) echo "<div class='fixed'>"; ?>
<nav class="tab-bar hide-for-print">
<section id="left-nav-aside" class="left-small show-for-small">
<a class="left-off-canvas-toggle"><span id="menu-user"><i class="fa fa-navicon fa-lg"></i></span></a>
<a href="#" class="left-off-canvas-toggle"><span id="menu-user"><i class="fa fa-navicon fa-lg"></i></span></a>
</section>
<section id="middle-nav" class="middle tab-bar-section">
<h1 class="title"><a href="<?php echo $this->data['nav_urls']['mainpage']['href']; ?>">
<div class="title"><a href="<?php echo $this->data['nav_urls']['mainpage']['href']; ?>">
<span class="show-for-medium-up"><?php echo $wgPivotFeatures['wikiNameDesktop']; ?></span>
<span class="show-for-small-only">
<?php if ($wgPivotFeatures['navbarIcon'] != false) { ?>
<img alt="<?php echo $this->text('sitename'); ?>" src="<?php echo $this->text('logopath'); ?>" style="max-width: 64px;height:auto; max-height:36px; display: inline-block; vertical-align:middle;">
<?php } ?>
<?php echo $wgPivotFeatures['wikiName']; ?></span></a></h1>
<?php echo $wgPivotFeatures['wikiName']; ?></span></a></div>
</section>
<section id="right-nav-aside" class="right-small">
<a class="right-off-canvas-toggle"><span id="menu-user"><i class="fa <?php if ($wgUser->isLoggedIn()): ?>fa-user<?php else: ?>fa-navicon<?php endif; ?> fa-lg"></i></span></a>
<a href="#" class="right-off-canvas-toggle"><span id="menu-user"><i class="fa <?php if ($wgUser->isLoggedIn()): ?>fa-user<?php else: ?>fa-navicon<?php endif; ?> fa-lg"></i></span></a>
</section>
</nav>
<?php if ($wgPivotFeatures['fixedNavBar'] != false) echo "</div>"; ?>
@ -118,10 +114,10 @@ class pivotTemplate extends BaseTemplate {
<ul class="off-canvas-list">
<li class="has-form">
<form action="<?php $this->text( 'wgScript' ); ?>" id="searchform" class="mw-search">
<form action="<?php $this->text( 'wgScript' ); ?>" id="searchform-sidebar" class="mw-search">
<div class="row collapse">
<div class="small-12 columns">
<input type="search" name="search" placeholder="<?php echo wfMessage( 'search' )->text() ?>" title="Search [alt-shift-f]" accesskey="f" id="searchInput-offcanvas" autocomplete="off">
<input type="search" name="search" placeholder="<?php echo wfMessage( 'search' )->text() ?>" title="Search [alt-shift-f]" accesskey="f" id="searchInput" autocomplete="off">
</div>
</div>
</form>
@ -134,16 +130,10 @@ class pivotTemplate extends BaseTemplate {
<aside class="right-off-canvas-menu">
<ul class="off-canvas-list">
<?php if ($wgUser->isLoggedIn()): ?>
<li id="personal-tools"><label>Personal</label></li>
<li id="personal-tools"><label><?php echo wfMessage( 'pivot-personal-tools' )->text() ?></label></li>
<?php foreach ($this->getPersonalTools() as $key => $item) { echo $this->makeListItem($key, $item); } ?>
<?php else: ?>
<?php if (isset($this->data['personal_urls']['anonlogin'])): ?>
<li><a href="<?php echo $this->data['personal_urls']['anonlogin']['href']; ?>"><?php echo wfMessage( 'login' )->text() ?></a></li>
<?php elseif (isset($this->data['personal_urls']['login'])): ?>
<li><a href="<?php echo htmlspecialchars($this->data['personal_urls']['login']['href']); ?>"><?php echo wfMessage( 'login' )->text() ?></a></li>
<?php else: ?>
<li><?php echo Linker::link(Title::newFromText('Special:UserLogin'), wfMessage( 'login' )->text()); ?></li>
<?php endif; ?>
<?php foreach ($this->getPersonalTools() as $key => $item) { echo $this->makeListItem($key, $item); } ?>
<?php endif; ?>
</ul>
</aside>
@ -163,10 +153,10 @@ class pivotTemplate extends BaseTemplate {
<img alt="<?php echo $this->text('sitename'); ?>" src="<?php echo $this->text('logopath') ?>" style="max-width: 100%;height: auto;display: inline-block; vertical-align: middle;"></a>
</li>
<li class="has-form">
<form action="<?php $this->text( 'wgScript' ); ?>" id="searchform" class="mw-search">
<form action="<?php $this->text( 'wgScript' ); ?>" id="searchform-offCanvas" class="mw-search">
<div class="row collapse">
<div class="small-12 columns">
<input type="search" name="search" placeholder="<?php echo wfMessage( 'search' )->text() ?>" title="Search [alt-shift-f]" accesskey="f" id="searchInput" autocomplete="off">
<input type="search" name="search" placeholder="<?php echo wfMessage( 'search' )->text() ?>" title="Search [alt-shift-f]" accesskey="f" class="mw-searchInput" autocomplete="off">
</div>
</div>
</form>
@ -203,7 +193,7 @@ class pivotTemplate extends BaseTemplate {
<a href="#" data-options="align:left" data-dropdown="drop1" class="button secondary small radius pull-right hide-for-print" id="drop"><i class="fa fa-navicon fa-lg"><span id="page-actions" class="show-for-medium-up">&nbsp;<?php echo wfMessage( 'actions' )->text() ?></span></i></a>
<ul id="drop1" class="tiny content f-dropdown" data-dropdown-content>
<?php foreach($this->data['content_actions'] as $key => $tab) { echo preg_replace(array('/\sprimary="1"/', '/\scontext="[a-z]+"/', '/\srel="archives"/'),'',$this->makeListItem($key, $tab)); } ?>
<?php wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this, true )); ?>
<?php Hooks::run( 'SkinTemplateToolboxEnd', array( &$this, true )); ?>
</ul>
<?php endif;
@ -215,14 +205,14 @@ class pivotTemplate extends BaseTemplate {
$displaytitle = str_replace($pagetitle, $newtitle, $displaytitle);
?><h4 class="namespace label"><?php print $namespace; ?></h4><?php } ?>
<div id="content">
<h2 class="title"><?php print $displaytitle; ?></h2>
<h1 class="title"><?php print $displaytitle; ?></h1>
<?php if ($wgPivotFeatures['useAddThisShare'] !== '') { ?>
<!-- Go to www.addthis.com/dashboard to customize your tools -->
<div class="<?php echo $wgPivotFeatures['useAddThisShare']; ?> hide-for-print"></div>
<!-- Go to www.addthis.com/dashboard to customize your tools -->
<?php } ?>
<?php if ( $this->data['isarticle'] ) { ?><h3 id="tagline"><?php $this->msg( 'tagline' ) ?></h3><?php } ?>
<h5 id="sitesub" class="subtitle"><?php $this->html('subtitle') ?></h5>
<?php if ( $this->html('subtitle') ) { ?><h5 id="sitesub" class="subtitle"><?php $this->html('subtitle') ?></h5><?php } ?>
<div id="contentSub" class="clear_both"></div>
<div id="bodyContent" class="mw-bodytext">
<?php
@ -248,7 +238,7 @@ class pivotTemplate extends BaseTemplate {
<footer class="row">
<div id="footer">
<div id="footer-left" class="small-12 medium-8 large-9 columns">
<div id="div-footer-left" class="small-12 medium-8 large-9 columns">
<ul id="footer-left">
<?php foreach ($this->getFooterLinks("flat") as $key) { ?>
<li id="footer-<?php echo $key ?>"><?php $this->html($key) ?></li>
@ -283,36 +273,33 @@ class pivotTemplate extends BaseTemplate {
</section>
</div>
</div>
</div>
<div>
<a class="exit-off-canvas"></a>
</div>
<?php $this->printTrail(); ?>
<?php if ($this->data['isarticle'] && $wgPivotFeatures['addThisPUBID'] !== '') { ?>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=<?php echo $wgPivotFeatures['addThisPUBID']; ?>" async="async">></script>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=<?php echo $wgPivotFeatures['addThisPUBID']; ?>" async="async"></script>
<?php } ?>
</body>
</html>
<?php
wfRestoreWarnings();
Wikimedia\restoreWarnings();
}
function renderSidebar() {
$sidebar = $this->getSidebar();
$toolbox = $this->getToolbox();
foreach ($sidebar as $boxName => $box) { if ( ($box['header'] != wfMessage( 'toolbox' )->text()) ) {
echo '<li id='.Sanitizer::escapeId( $box['id'] ); Linker::tooltip( $box['id'] ).'>';
echo '<li><label>'.htmlspecialchars( $box['header'] ).'</label></li>';
foreach ($sidebar as $boxName => $box) {
echo '<li><label class="sidebar" id="'.Sanitizer::escapeIdForAttribute( $box['id'] ).'"';echo Linker::tooltip( $box['id'] ).'>'.htmlspecialchars( $box['header'] ).'</label></li>';
if ( is_array( $box['content'] ) ) {
foreach ($box['content'] as $key => $item) { echo $this->makeListItem($key, $item); }
} }
}
echo '<li><label>Toolbox</label></li>';
foreach ($toolbox as $key => $tbitem) { echo $this->makeListItem($key, $tbitem); }
}
}
}
return; }
}
?>

View File

@ -1,10 +1,12 @@
# MediaWiki Pivot Skin
[![Build Status](https://travis-ci.org/Hutchy68/pivot.svg?branch=master)](https://travis-ci.org/Hutchy68/pivot)
[![CircleCI](https://circleci.com/gh/Hutchy68/pivot.svg?style=shield)](https://circleci.com/gh/Hutchy68/pivot)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/Hutchy68/pivot/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/Hutchy68/pivot/?branch=master)
A [MediaWiki](http://www.mediawiki.org) skin that focuses on mobile first but will pivot to all viewports with elegance. Supports responsive layouts and has classes predefined for [Semantic MediaWiki](http://semantic-mediawiki.org/wiki/Semantic_MediaWiki). Built on the [Zurb Foundation 5](http://foundation.zurb.com) CSS framework.
Read the docs below (short version) or see [pivot.wikiproject.net](https://pivot.wikiproject.net) for more detailed docs with FAQs and examples of use.
## Download
First, copy the Pivot source files into your MediaWiki skins directory (see [skinning](https://www.mediawiki.org/wiki/Manual:Skinning) for general information on MediaWiki skins). You can either download the files and extract them from:
@ -36,11 +38,14 @@ To activate Pivot for all users and anonymous visitors, you need to set the `$wg
Use following features in `LocalSettings.php` to change the behavior.
- `'showActionsForAnon' => true` displays page actions for non-logged-in visitors.
- `'fixedNavBar' => false` will allow the NavBar to scroll with the content, `true` will lock the NavBar.
- `'usePivotTabs' => false` set to true to enable Foundation tabs markup in wiki pages.
- `'showHelpUnderTools' => true` a Link to "Help" will be created under "Tools".
- `'showRecentChangesUnderTool's => true` a Link to "recent changes" will be created under "Tools".
- `'IeEdgeCode' => 1` will produce a meta tag with "X-UA-Compatible" content="IE=edge", `2` will sent a header, `0` nothing will be done
- `'fixedNavBar' => false` will allow the NavBar to scroll with the content, `true` will lock the NavBar.
- `'wikiName' => &$GLOBALS['wgSitename']` default is the sitename. Set to display a short version without changing the systems wikiname.
- `'wikiNameDesktop' => &$GLOBALS['wgSitename']` default sitename. Set to display a longer name in desktop view.
- `'navbarIcon' => false` no icon in mobile view, `true` to use the global set logopath image of the wiki.
- `'preloadFontAwesome' => false` set to true to preload Font Awesome as a `<head>` element. Useful to overcome MIME type server configurations not set correctly.
- `'showFooterIcons' => false` will show text in place of footer icons, `true` will output the icons as globally set.
- `'addThisPUBID' => ''` empty string will not fire the AddThis script, `'ra-##-#######'` publisher ID will allow the run the AddThis script in async on content pages only.
- `'useAddThisShare' => ''` default empty string, do not use AddThis share, `your_addthis_specific_div_class_string` will insert the share toolbox div directly under page title, but before the tagline with your custom div class.
@ -51,17 +56,18 @@ These are the default values and the example of the array to change the defaults
$wgPivotFeatures = array(
'showActionsForAnon' => true,
'fixedNavBar' => false,
'usePivotTabs' => false,
'showHelpUnderTools' => true,
'showRecentChangesUnderTools' => true,
'wikiName' => &$GLOBALS['wgSitename'],
'wikiNameDesktop' => &$GLOBALS['wgSitename'],
'navbarIcon' => false,
'IeEdgeCode' => 1,
'showFooterIcons' => false,
'preloadFontAwesome' => false,
'showFooterIcons' => true,
'addThisPUBID' => '',
'useAddThisShare' => '',
'useAddThisFollow' => ''
);
);
### Notes on other skins
@ -80,4 +86,4 @@ You may also want to allow users to set a User CSS if they want to tweak things
## Using Pivot
Questions, open an issue in this repo on Github.
Questions, open an issue in this repo on Github.

File diff suppressed because one or more lines are too long

View File

@ -4,15 +4,18 @@
Foundation.libs.abide = {
name : 'abide',
version : '5.5.2',
version : '5.5.3master',
settings : {
live_validate : true,
validate_on_blur : true,
// validate_on: 'tab', // tab (when user tabs between fields), change (input changes), manual (call custom events)
focus_on_invalid : true,
error_labels : true, // labels with a for="inputId" will recieve an `error` class
error_class : 'error',
live_validate : true, // validate the form as you go
validate_on_blur : true, // validate whenever you focus/blur on an input field
// validate_on: 'tab', // tab (when user tabs between fields), change (input changes), manual (call custom events)
focus_on_invalid : true, // automatically bring the focus to an invalid input field
error_labels : true, // labels with a for="inputId" will receive an `error` class
error_class : 'error', // labels with a for="inputId" will receive an `error` class
// the amount of time Abide will take before it validates the form (in ms).
// smaller time will result in faster validation
timeout : 1000,
patterns : {
alpha : /^[a-zA-Z]+$/,
@ -77,7 +80,6 @@
}.bind(originalSelf), settings.timeout);
}
form
.off('.abide')
.on('submit.fndtn.abide', function (e) {
@ -90,27 +92,39 @@
}
})
.on('reset', function (e) {
return self.reset($(this), e);
return self.reset($(this), e);
})
.find('input, textarea, select').not(":hidden, [data-abide-ignore]")
.off('.abide')
.on('blur.fndtn.abide change.fndtn.abide', function (e) {
var id = this.getAttribute('id'),
eqTo = form.find('[data-equalto="'+ id +'"]');
// old settings fallback
// will be deprecated with F6 release
if (settings.validate_on_blur && settings.validate_on_blur === true) {
validate(this, e);
}
// checks if there is an equalTo equivalent related by id
if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
validate(eqTo.get(0),e);
}
// new settings combining validate options into one setting
if (settings.validate_on === 'change') {
validate(this, e);
}
})
.on('keydown.fndtn.abide', function (e) {
var id = this.getAttribute('id'),
eqTo = form.find('[data-equalto="'+ id +'"]');
// old settings fallback
// will be deprecated with F6 release
if (settings.live_validate && settings.live_validate === true && e.which != 9) {
validate(this, e);
}
// checks if there is an equalTo equivalent related by id
if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
validate(eqTo.get(0),e);
}
// new settings combining validate options into one setting
if (settings.validate_on === 'tab' && e.which === 9) {
validate(this, e);
@ -124,7 +138,7 @@
$('html, body').animate({
scrollTop: $(e.target).offset().top
}, 100);
}
}
});
},
@ -140,7 +154,7 @@
validate : function (els, e, is_ajax) {
var validations = this.parse_patterns(els),
validation_count = validations.length,
form = this.S(els[0]).closest('form'),
form = this.S(els.length ? els[0] : e.target).closest('form'),
submit_event = /submit/.test(e.type);
// Has to count up to make sure the focus gets applied to the top error
@ -203,8 +217,11 @@
// TODO: Break this up into smaller methods, getting hard to read.
check_validation_and_apply_styles : function (el_patterns) {
var i = el_patterns.length,
validations = [],
form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'),
validations = [];
if (i == 0) {
return validations;
}
var form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'),
settings = form.data(this.attr_name(true) + '-init') || {};
while (i--) {
var el = el_patterns[i][0],
@ -299,6 +316,7 @@
}
validations = validations.concat(el_validations);
}
return validations;
},
@ -325,20 +343,20 @@
disabled = false;
// Has to count up to make sure the focus gets applied to the top error
for (var i=0; i < count; i++) {
if( group[i].getAttribute('disabled') ){
disabled=true;
valid=true;
} else {
if (group[i].checked){
valid = true;
} else {
if( disabled ){
valid = false;
}
}
for (var i=0; i < count; i++) {
if( group[i].getAttribute('disabled') ){
disabled=true;
valid=true;
} else {
if (group[i].checked){
valid = true;
} else {
if( disabled ){
valid = false;
}
}
}
}
// Has to count up to make sure the focus gets applied to the top error
for (var i = 0; i < count; i++) {

View File

@ -4,7 +4,7 @@
Foundation.libs.accordion = {
name : 'accordion',
version : '5.5.2',
version : '5.5.3master',
settings : {
content_class : 'content',
@ -25,16 +25,18 @@
S(this.scope)
.off('.fndtn.accordion')
.on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a, [' + this.attr_name() + '] > li > a', function (e) {
.on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a:not(.follow), [' + this.attr_name() + '] > li > a:not(.follow)', function (e) {
var accordion = S(this).closest('[' + self.attr_name() + ']'),
groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()),
settings = accordion.data(self.attr_name(true) + '-init') || self.settings,
target = S('#' + this.href.split('#')[1]),
contentAttr = S(this).context.attributes['data-content'],
target = S('#' + (contentAttr ? contentAttr.value : this.href.split('#')[1])),
aunts = $('> dd, > li', accordion),
siblings = aunts.children('.' + settings.content_class),
active_content = siblings.filter('.' + settings.active_class);
e.preventDefault();
e.stopPropagation();
if (accordion.attr(self.attr_name())) {
siblings = siblings.add('[' + groupSelector + '] dd > ' + '.' + settings.content_class + ', [' + groupSelector + '] li > ' + '.' + settings.content_class);
@ -74,12 +76,49 @@
settings = accordion.data(self.attr_name(true) + '-init') || self.settings;
aunts.children('a').attr('aria-expanded','false');
aunts.has('.' + settings.content_class + '.' + settings.active_class).children('a').attr('aria-expanded','true');
aunts.has('.' + settings.content_class + '.' + settings.active_class).addClass(settings.active_class).children('a').attr('aria-expanded','true');
if (settings.multi_expand) {
$instance.attr('aria-multiselectable','true');
}
},
toggle : function(options) {
var options = typeof options !== 'undefined' ? options : {};
var selector = typeof options.selector !== 'undefined' ? options.selector : '';
var toggle_state = typeof options.toggle_state !== 'undefined' ? options.toggle_state : '';
var $accordion = typeof options.$accordion !== 'undefined' ? options.$accordion : this.S(this.scope).closest('[' + this.attr_name() + ']');
var $items = $accordion.find('> dd' + selector + ', > li' + selector);
if ( $items.length < 1 ) {
if ( window.console ) {
console.error('Selection not found.', selector);
}
return false;
}
var S = this.S;
var active_class = this.settings.active_class;
$items.each(function() {
var $item = S(this);
var is_active = $item.hasClass(active_class);
if ( ( is_active && toggle_state === 'close' ) || ( !is_active && toggle_state === 'open' ) || toggle_state === '' ) {
$item.find('> a').trigger('click.fndtn.accordion');
}
});
},
open : function(options) {
var options = typeof options !== 'undefined' ? options : {};
options.toggle_state = 'open';
this.toggle(options);
},
close : function(options) {
var options = typeof options !== 'undefined' ? options : {};
options.toggle_state = 'close';
this.toggle(options);
},
off : function () {},

View File

@ -4,7 +4,7 @@
Foundation.libs.alert = {
name : 'alert',
version : '5.5.2',
version : '5.5.3master',
settings : {
callback : function () {}

View File

@ -4,7 +4,7 @@
Foundation.libs.clearing = {
name : 'clearing',
version : '5.5.2',
version : '5.5.3master',
settings : {
templates : {
@ -28,7 +28,7 @@
touch_label : '',
// event initializers and locks
// event initializer and locks
init : false,
locked : false
},
@ -453,9 +453,9 @@
var caption = $image.attr('data-caption');
if (caption) {
container
.html(caption)
.show();
var containerPlain = container.get(0);
containerPlain.innerHTML = caption;
container.show();
} else {
container
.text('')

View File

@ -4,7 +4,7 @@
Foundation.libs.dropdown = {
name : 'dropdown',
version : '5.5.2',
version : '5.5.3master',
settings : {
active_class : 'open',
@ -13,6 +13,7 @@
align : 'bottom',
is_hover : false,
hover_timeout : 150,
no_pip : false,
opened : function () {},
closed : function () {}
},
@ -258,7 +259,7 @@
// `this` is the dropdown
dirs : {
// Calculate target offset
_base : function (t) {
_base : function (t, s) {
var o_p = this.offsetParent(),
o = o_p.offset(),
p = t.offset();
@ -275,33 +276,36 @@
//lets see if the panel will be off the screen
//get the actual width of the page and store it
var actualBodyWidth;
var windowWidth = window.innerWidth;
if (document.getElementsByClassName('row')[0]) {
actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth;
} else {
actualBodyWidth = window.innerWidth;
actualBodyWidth = windowWidth;
}
var actualMarginWidth = (window.innerWidth - actualBodyWidth) / 2;
var actualMarginWidth = (windowWidth - actualBodyWidth) / 2;
var actualBoundary = actualBodyWidth;
if (!this.hasClass('mega')) {
if (!this.hasClass('mega') && !s.ignore_repositioning) {
var outerWidth = this.outerWidth();
var o_left = t.offset().left;
//miss top
if (t.offset().top <= this.outerHeight()) {
p.missTop = true;
actualBoundary = window.innerWidth - actualMarginWidth;
actualBoundary = windowWidth - actualMarginWidth;
p.leftRightFlag = true;
}
//miss right
if (t.offset().left + this.outerWidth() > t.offset().left + actualMarginWidth && t.offset().left - actualMarginWidth > this.outerWidth()) {
if (o_left + outerWidth > o_left + actualMarginWidth && o_left - actualMarginWidth > outerWidth - o_left) {
p.missRight = true;
p.missLeft = false;
}
//miss left
if (t.offset().left - this.outerWidth() <= 0) {
if (o_left - outerWidth <= 0) {
p.missLeft = true;
p.missRight = false;
}
}
@ -310,89 +314,121 @@
top : function (t, s) {
var self = Foundation.libs.dropdown,
p = self.dirs._base.call(this, t);
p = self.dirs._base.call(this, t, s),
tOuterHeight = t.outerHeight(),
tOuterWidth = t.outerWidth(),
thisOuterHeight = this.outerHeight(),
thisOuterWidth = this.outerWidth();
this.addClass('drop-top');
if (p.missTop == true) {
p.top = p.top + t.outerHeight() + this.outerHeight();
p.top = p.top + tOuterHeight + thisOuterHeight;
this.removeClass('drop-top');
}
if (p.missRight == true) {
p.left = p.left - this.outerWidth() + t.outerWidth();
p.left = p.left - thisOuterWidth + tOuterWidth;
}
if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
if (!s.no_pip && tOuterWidth < thisOuterWidth || self.small() || this.hasClass(s.mega_menu)) {
self.adjust_pip(this, t, s, p);
}
if (Foundation.rtl) {
return {left : p.left - this.outerWidth() + t.outerWidth(),
top : p.top - this.outerHeight()};
return {left : p.left - thisOuterWidth + tOuterWidth,
top : p.top - thisOuterHeight};
}
return {left : p.left, top : p.top - this.outerHeight()};
return {left : p.left, top : p.top - thisOuterHeight};
},
bottom : function (t, s) {
var self = Foundation.libs.dropdown,
p = self.dirs._base.call(this, t);
p = self.dirs._base.call(this, t, s),
tOuterHeight = t.outerHeight(),
tOuterWidth = t.outerWidth(),
thisOuterHeight = this.outerHeight(),
thisOuterWidth = this.outerWidth();;
if (p.missRight == true) {
p.left = p.left - this.outerWidth() + t.outerWidth();
p.left = p.left - thisOuterWidth + tOuterWidth;
}
if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
if (!s.no_pip && tOuterWidth < thisOuterWidth || self.small() || this.hasClass(s.mega_menu)) {
self.adjust_pip(this, t, s, p);
}
if (self.rtl) {
return {left : p.left - this.outerWidth() + t.outerWidth(), top : p.top + t.outerHeight()};
return {left : p.left - thisOuterWidth + tOuterWidth, top : p.top + tOuterHeight};
}
return {left : p.left, top : p.top + t.outerHeight()};
return {left : p.left, top : p.top + tOuterHeight};
},
left : function (t, s) {
var p = Foundation.libs.dropdown.dirs._base.call(this, t);
var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
var self = Foundation.libs.dropdown,
tOuterHeight = t.outerHeight(),
tOuterWidth = t.outerWidth(),
thisOuterHeight = this.outerHeight(),
thisOuterWidth = this.outerWidth();
this.addClass('drop-left');
if (p.missLeft == true) {
p.left = p.left + this.outerWidth();
p.top = p.top + t.outerHeight();
if (p.missLeft === true) {
p.left = p.left + thisOuterWidth;
p.top = p.top + tOuterHeight;
this.removeClass('drop-left');
}
return {left : p.left - this.outerWidth(), top : p.top};
if (p.missRight === true && p.missLeft === true && p.leftRightFlag == false) {
p.left = p.left - tOuterWidth;
this.removeClass('drop-left');
self.adjust_pip(this,t,s,p);
}
return {left : p.left - thisOuterWidth, top : p.top};
},
right : function (t, s) {
var p = Foundation.libs.dropdown.dirs._base.call(this, t);
var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
var self = Foundation.libs.dropdown,
tOuterHeight = t.outerHeight(),
tOuterWidth = t.outerWidth(),
thisOuterHeight = this.outerHeight(),
thisOuterWidth = this.outerWidth();
this.addClass('drop-right');
if (p.missRight == true) {
p.left = p.left - this.outerWidth();
p.top = p.top + t.outerHeight();
this.removeClass('drop-right');
if (p.missRight === true && p.missLeft == false) {
p.left = p.left - thisOuterWidth;
p.top = p.top + tOuterHeight;
this.removeClass('drop-right');
} else {
p.triggeredRight = true;
p.triggeredRight = true;
}
var self = Foundation.libs.dropdown;
if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
self.adjust_pip(this, t, s, p);
if (p.missLeft === true && p.missRight === true && p.leftRightFlag === false) {
p.left = p.left - thisOuterWidth;
p.top = p.top + tOuterHeight;
this.removeClass('drop-right');
p.triggeredRight = false;
}
return {left : p.left + t.outerWidth(), top : p.top};
if (tOuterWidth < thisOuterWidth || self.small() || this.hasClass(s.mega_menu)) {
self.adjust_pip(this,t,s,p);
}
return {left : p.left + tOuterWidth, top : p.top};
}
},
// Insert rule to style psuedo elements
adjust_pip : function (dropdown, target, settings, position) {
if (settings.no_pip === true) return;
var sheet = Foundation.stylesheet,
pip_offset_base = 8;

View File

@ -4,7 +4,7 @@
Foundation.libs.equalizer = {
name : 'equalizer',
version : '5.5.2',
version : '5.5.3master',
settings : {
use_tallest : true,

View File

@ -4,7 +4,7 @@
Foundation.libs.interchange = {
name : 'interchange',
version : '5.5.2',
version : '5.5.3master',
cache : {},
@ -49,7 +49,8 @@
// });
if (el !== null && /IMG/.test(el[0].nodeName)) {
var orig_path = el[0].src;
var orig_path = $.each(el, function(){this.src = path;});
// var orig_path = el[0].src;
if (new RegExp(path, 'i').test(orig_path)) {
return;

View File

@ -6,13 +6,13 @@
Foundation.libs.joyride = {
name : 'joyride',
version : '5.5.2',
version : '5.5.3master',
defaults : {
expose : false, // turn on or off the expose feature
modal : true, // Whether to cover page with modal during the tour
keyboard : true, // enable left, right and esc keystrokes
tip_location : 'bottom', // 'top' or 'bottom' in relation to parent
tip_location : 'bottom', // 'top', 'bottom', 'left' or 'right' in relation to parent
nub_position : 'auto', // override on a per tooltip bases
scroll_speed : 1500, // Page scrolling speed in milliseconds, 0 = no scroll animation
scroll_animation : 'linear', // supports 'swing' and 'linear', extend with jQuery UI.
@ -323,8 +323,8 @@
this.settings.tip_settings.tip_location_pattern = this.settings.tip_location_patterns[this.settings.tip_settings.tip_location];
// scroll and hide bg if not modal
if (!/body/i.test(this.settings.$target.selector)) {
// scroll and hide bg if not modal and not expose
if (!/body/i.test(this.settings.$target.selector) && !this.settings.expose) {
var joyridemodalbg = $('.joyride-modal-bg');
if (/pop/i.test(this.settings.tipAnimation)) {
joyridemodalbg.hide();
@ -500,68 +500,68 @@
}
if (!/body/i.test(this.settings.$target.selector)) {
var topAdjustment = this.settings.tip_settings.tipAdjustmentY ? parseInt(this.settings.tip_settings.tipAdjustmentY) : 0,
leftAdjustment = this.settings.tip_settings.tipAdjustmentX ? parseInt(this.settings.tip_settings.tipAdjustmentX) : 0;
if (this.bottom()) {
if (this.rtl) {
this.settings.$next_tip.css({
top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth() + leftAdjustment});
} else {
this.settings.$next_tip.css({
top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
left : this.settings.$target.offset().left + leftAdjustment});
}
this.nub_position($nub, this.settings.tip_settings.nub_position, 'top');
} else if (this.top()) {
if (this.rtl) {
this.settings.$next_tip.css({
top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth()});
} else {
this.settings.$next_tip.css({
top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
left : this.settings.$target.offset().left + leftAdjustment});
}
this.nub_position($nub, this.settings.tip_settings.nub_position, 'bottom');
} else if (this.right()) {
var topAdjustment = this.settings.tip_settings.tipAdjustmentY ? parseInt(this.settings.tip_settings.tipAdjustmentY) : 0,
leftAdjustment = this.settings.tip_settings.tipAdjustmentX ? parseInt(this.settings.tip_settings.tipAdjustmentX) : 0;
if (this.bottom()) {
if (this.rtl) {
this.settings.$next_tip.css({
top : this.settings.$target.offset().top + topAdjustment,
left : (this.settings.$target.outerWidth() + this.settings.$target.offset().left + nub_width + leftAdjustment)});
this.nub_position($nub, this.settings.tip_settings.nub_position, 'left');
} else if (this.left()) {
top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth() + leftAdjustment});
} else {
this.settings.$next_tip.css({
top : this.settings.$target.offset().top + topAdjustment,
left : (this.settings.$target.offset().left - this.settings.$next_tip.outerWidth() - nub_width + leftAdjustment)});
this.nub_position($nub, this.settings.tip_settings.nub_position, 'right');
top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
left : this.settings.$target.offset().left + leftAdjustment});
}
if (!this.visible(this.corners(this.settings.$next_tip)) && this.settings.attempts < this.settings.tip_settings.tip_location_pattern.length) {
$nub.removeClass('bottom')
.removeClass('top')
.removeClass('right')
.removeClass('left');
this.settings.tip_settings.tip_location = this.settings.tip_settings.tip_location_pattern[this.settings.attempts];
this.settings.attempts++;
this.pos_default();
this.nub_position($nub, this.settings.tip_settings.nub_position, 'top');
} else if (this.top()) {
if (this.rtl) {
this.settings.$next_tip.css({
top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth()});
} else {
this.settings.$next_tip.css({
top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
left : this.settings.$target.offset().left + leftAdjustment});
}
this.nub_position($nub, this.settings.tip_settings.nub_position, 'bottom');
} else if (this.right()) {
this.settings.$next_tip.css({
top : this.settings.$target.offset().top + topAdjustment,
left : (this.settings.$target.outerWidth() + this.settings.$target.offset().left + nub_width + leftAdjustment)});
this.nub_position($nub, this.settings.tip_settings.nub_position, 'left');
} else if (this.left()) {
this.settings.$next_tip.css({
top : this.settings.$target.offset().top + topAdjustment,
left : (this.settings.$target.offset().left - this.settings.$next_tip.outerWidth() - nub_width + leftAdjustment)});
this.nub_position($nub, this.settings.tip_settings.nub_position, 'right');
}
if (!this.visible(this.corners(this.settings.$next_tip)) && this.settings.attempts < this.settings.tip_settings.tip_location_pattern.length) {
$nub.removeClass('bottom')
.removeClass('top')
.removeClass('right')
.removeClass('left');
this.settings.tip_settings.tip_location = this.settings.tip_settings.tip_location_pattern[this.settings.attempts];
this.settings.attempts++;
this.pos_default();
}
} else if (this.settings.$li.length) {
this.pos_modal($nub);
@ -668,8 +668,8 @@
expose.css({
top : el.offset().top,
left : el.offset().left,
width : el.outerWidth(true),
height : el.outerHeight(true)
width : el.outerWidth(),
height : el.outerHeight()
});
exposeCover = $(this.settings.template.expose_cover);
@ -827,6 +827,10 @@
},
corners : function (el) {
if (el.length === 0) {
return [false, false, false, false];
}
var w = $(window),
window_half = w.height() / 2,
//using this to calculate since scroll may not have finished yet.
@ -924,7 +928,6 @@
$('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride');
$('.joyride-tip-guide, .joyride-modal-bg').remove();
clearTimeout(this.settings.automate);
this.settings = {};
},
reflow : function () {}

View File

@ -1,7 +1,7 @@
/*
* Foundation Responsive Library
* http://foundation.zurb.com
* Copyright 2014, ZURB
* Copyright 2015, ZURB
* Free to use under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
@ -10,14 +10,12 @@
'use strict';
var header_helpers = function (class_array) {
var i = class_array.length;
var head = $('head');
while (i--) {
if (head.has('.' + class_array[i]).length === 0) {
head.append('<meta class="' + class_array[i] + '" />');
head.prepend($.map(class_array, function (class_name) {
if (head.has('.' + class_name).length === 0) {
return '<meta class="' + class_name + '" />';
}
}
}));
};
header_helpers([
@ -108,7 +106,7 @@
var self = this,
bind = function(){
var $this = S(this),
should_bind_events = !$this.data(self.attr_name(true) + '-init');
should_bind_events = !S(self).data(self.attr_name(true) + '-init');
$this.data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options($this)));
if (should_bind_events) {
@ -290,21 +288,30 @@
return string;
}
function MediaQuery(selector) {
this.selector = selector;
this.query = '';
}
MediaQuery.prototype.toString = function () {
return this.query || (this.query = S(this.selector).css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''));
};
window.Foundation = {
name : 'Foundation',
version : '5.5.2',
version : '5.5.3master',
media_queries : {
'small' : S('.foundation-mq-small').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
'small-only' : S('.foundation-mq-small-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
'medium' : S('.foundation-mq-medium').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
'medium-only' : S('.foundation-mq-medium-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
'large' : S('.foundation-mq-large').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
'large-only' : S('.foundation-mq-large-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
'xlarge' : S('.foundation-mq-xlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
'xlarge-only' : S('.foundation-mq-xlarge-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
'xxlarge' : S('.foundation-mq-xxlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, '')
'small' : new MediaQuery('.foundation-mq-small'),
'small-only' : new MediaQuery('.foundation-mq-small-only'),
'medium' : new MediaQuery('.foundation-mq-medium'),
'medium-only' : new MediaQuery('.foundation-mq-medium-only'),
'large' : new MediaQuery('.foundation-mq-large'),
'large-only' : new MediaQuery('.foundation-mq-large-only'),
'xlarge' : new MediaQuery('.foundation-mq-xlarge'),
'xlarge-only' : new MediaQuery('.foundation-mq-xlarge-only'),
'xxlarge' : new MediaQuery('.foundation-mq-xxlarge')
},
stylesheet : $('<style></style>').appendTo('head')[0].sheet,
@ -335,7 +342,7 @@
}
}
S(window).load(function () {
S(window).on('load', function () {
S(window)
.trigger('resize.fndtn.clearing')
.trigger('resize.fndtn.dropdown')

View File

@ -4,7 +4,7 @@
Foundation.libs['magellan-expedition'] = {
name : 'magellan-expedition',
version : '5.5.2',
version : '5.5.3master',
settings : {
active_class : 'active',
@ -32,7 +32,7 @@
S(self.scope)
.off('.magellan')
.on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href*=#]', function (e) {
.on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href^="#"]', function (e) {
var sameHost = ((this.hostname === location.hostname) || !this.hostname),
samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname),
testHash = this.hash.replace(/(:|\.|\/)/g, '\\$1'),
@ -59,11 +59,10 @@
'scrollTop' : scroll_top
}, settings.duration, settings.easing, function () {
if (history.pushState) {
history.pushState(null, null, anchor.pathname + '#' + hash);
history.pushState(null, null, anchor.pathname + anchor.search + '#' + hash);
} else {
location.hash = anchor.pathname + anchor.search + '#' + hash;
}
else {
location.hash = anchor.pathname + '#' + hash;
}
});
}
})
@ -81,7 +80,7 @@
$('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) {
var expedition = $(this),
settings = expedition.data('magellan-expedition-init'),
styles = expedition.attr('styles'), // save styles
styles = expedition.attr('style'), // save styles
top_offset, fixed_top;
expedition.attr('style', '');

View File

@ -4,7 +4,7 @@
Foundation.libs.offcanvas = {
name : 'offcanvas',
version : '5.5.2',
version : '5.5.3master',
settings : {
open_method : 'move',
@ -20,16 +20,22 @@
S = self.S,
move_class = '',
right_postfix = '',
left_postfix = '';
left_postfix = '',
top_postfix = '',
bottom_postfix = '';
if (this.settings.open_method === 'move') {
move_class = 'move-';
right_postfix = 'right';
left_postfix = 'left';
top_postfix = 'top';
bottom_postfix = 'bottom';
} else if (this.settings.open_method === 'overlap_single') {
move_class = 'offcanvas-overlap-';
right_postfix = 'right';
left_postfix = 'left';
top_postfix = 'top';
bottom_postfix = 'bottom';
} else if (this.settings.open_method === 'overlap') {
move_class = 'offcanvas-overlap';
}
@ -58,6 +64,7 @@
}
$('.left-off-canvas-toggle').attr('aria-expanded', 'true');
})
//end of left canvas
.on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
self.click_toggle_class(e, move_class + left_postfix);
if (self.settings.open_method !== 'overlap') {
@ -81,6 +88,55 @@
}
$('.right-off-canvas-toggle').attr('aria-expanded', 'true');
})
//end of right canvas
.on('click.fndtn.offcanvas', '.top-off-canvas-toggle', function (e) {
self.click_toggle_class(e, move_class + bottom_postfix);
if (self.settings.open_method !== 'overlap') {
S('.top-submenu').removeClass(move_class + bottom_postfix);
}
$('.top-off-canvas-toggle').attr('aria-expanded', 'true');
})
.on('click.fndtn.offcanvas', '.top-off-canvas-menu a', function (e) {
var settings = self.get_settings(e);
var parent = S(this).parent();
if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
self.hide.call(self, move_class + bottom_postfix, self.get_wrapper(e));
parent.parent().removeClass(move_class + bottom_postfix);
} else if (S(this).parent().hasClass('has-submenu')) {
e.preventDefault();
S(this).siblings('.top-submenu').toggleClass(move_class + bottom_postfix);
} else if (parent.hasClass('back')) {
e.preventDefault();
parent.parent().removeClass(move_class + bottom_postfix);
}
$('.top-off-canvas-toggle').attr('aria-expanded', 'true');
})
//end of top canvas
.on('click.fndtn.offcanvas', '.bottom-off-canvas-toggle', function (e) {
self.click_toggle_class(e, move_class + top_postfix);
if (self.settings.open_method !== 'overlap') {
S('.bottom-submenu').removeClass(move_class + top_postfix);
}
$('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
})
.on('click.fndtn.offcanvas', '.bottom-off-canvas-menu a', function (e) {
var settings = self.get_settings(e);
var parent = S(this).parent();
if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
self.hide.call(self, move_class + top_postfix, self.get_wrapper(e));
parent.parent().removeClass(move_class + top_postfix);
} else if (S(this).parent().hasClass('has-submenu')) {
e.preventDefault();
S(this).siblings('.bottom-submenu').toggleClass(move_class + top_postfix);
} else if (parent.hasClass('back')) {
e.preventDefault();
parent.parent().removeClass(move_class + top_postfix);
}
$('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
})
//end of bottom
.on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
self.click_remove_class(e, move_class + left_postfix);
S('.right-submenu').removeClass(move_class + left_postfix);
@ -97,6 +153,23 @@
self.click_remove_class(e, move_class + right_postfix);
$('.right-off-canvas-toggle').attr('aria-expanded', 'false');
}
})
.on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
self.click_remove_class(e, move_class + top_postfix);
S('.bottom-submenu').removeClass(move_class + top_postfix);
if (bottom_postfix) {
self.click_remove_class(e, move_class + bottom_postfix);
S('.top-submenu').removeClass(move_class + top_postfix);
}
$('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
})
.on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
self.click_remove_class(e, move_class + top_postfix);
$('.top-off-canvas-toggle').attr('aria-expanded', 'false');
if (bottom_postfix) {
self.click_remove_class(e, move_class + bottom_postfix);
$('.bottom-off-canvas-toggle').attr('aria-expanded', 'false');
}
});
},

View File

@ -407,7 +407,7 @@
Foundation.libs.orbit = {
name : 'orbit',
version : '5.5.2',
version : '5.5.3master',
settings : {
animation : 'slide',

View File

@ -1,10 +1,12 @@
;(function ($, window, document, undefined) {
'use strict';
var openModals = [];
Foundation.libs.reveal = {
name : 'reveal',
version : '5.5.2',
version : '5.5.3master',
locked : false,
@ -17,6 +19,7 @@
multiple_opened : false,
bg_class : 'reveal-modal-bg',
root_element : 'body',
no_scroll: false,
open : function(){},
opened : function(){},
close : function(){},
@ -47,7 +50,7 @@
S = self.S;
S(this.scope)
.off('.reveal')
.off('.fndtn.reveal')
.on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) {
e.preventDefault();
@ -155,7 +158,7 @@
settings = settings || this.settings;
if (modal.hasClass('open') && target.attr('data-reveal-id') == modal.attr('id')) {
if (modal.hasClass('open') && target !== undefined && target.attr('data-reveal-id') == modal.attr('id')) {
return self.close(modal);
}
@ -169,6 +172,14 @@
modal.attr('tabindex','0').attr('aria-hidden','false');
if(settings.no_scroll){//added 10/9/15, prevents annoying scroll positioning bug with position: absolute; reveals
var $body = $('body');
$body.on('open.fndtn.reveal', function(){
$body.css('overflow', 'hidden')
.off('open.fndtn.reveal');
});
}
this.key_up_on(modal); // PATCH #3: turning on key up capture only when a reveal window is open
// Prevent namespace event from triggering twice
@ -176,7 +187,8 @@
if (e.namespace !== 'fndtn.reveal') return;
});
modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');
modal.trigger('open.fndtn.reveal');
if (open_modal.length < 1) {
this.toggle_bg(modal, true);
@ -188,16 +200,25 @@
};
}
if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
if (open_modal.length > 0) {
if (settings.multiple_opened) {
var openModal = function() {
if(open_modal.length > 0) {
if(settings.multiple_opened) {
self.to_back(open_modal);
} else {
self.hide(open_modal, settings.css.close);
}
}
this.show(modal, settings.css.open);
// bl: add the open_modal that isn't already in the background to the openModals array
if(settings.multiple_opened) {
openModals.push(modal);
}
self.show(modal, settings.css.open);
};
if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
openModal();
} else {
var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
$.extend(ajax_settings, {
@ -218,14 +239,7 @@
self.S(modal).foundation('section', 'reflow');
self.S(modal).children().foundation();
if (open_modal.length > 0) {
if (settings.multiple_opened) {
self.to_back(open_modal);
} else {
self.hide(open_modal, settings.css.close);
}
}
self.show(modal, settings.css.open);
openModal();
}
});
@ -252,6 +266,14 @@
modal.removeAttr('tabindex','0').attr('aria-hidden','true');
if(settings.no_scroll){//added 10/9/15, prevents annoying scroll positioning bug with position: absolute; reveals
var $body = $('body');
$body.on('close.fndtn.reveal', function(){
$body.css('overflow', 'auto')
.off('close.fndtn.reveal');
});
}
this.locked = true;
this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open
@ -263,8 +285,27 @@
}
if (settings.multiple_opened) {
var isCurrent = modal.is(':not(.toback)');
self.hide(modal, settings.css.close, settings);
self.to_front($($.makeArray(open_modals).reverse()[1]));
if(isCurrent) {
// remove the last modal since it is now closed
openModals.pop();
} else {
// if this isn't the current modal, then find it in the array and remove it
openModals = $.grep(openModals, function(elt) {
var isThis = elt[0]===modal[0];
if(isThis) {
// since it's not currently in the front, put it in the front now that it is hidden
// so that if it's re-opened, it won't be .toback
self.to_front(modal);
}
return !isThis;
});
}
// finally, show the next modal in the stack, if there is one
if(openModals.length>0) {
self.to_front(openModals[openModals.length - 1]);
}
} else {
self.hide(open_modals, settings.css.close, settings);
}
@ -337,8 +378,9 @@
}, settings.animation_speed / 2);
}
css.top = $(window).scrollTop() + el.data('css-top') + 'px';
if (animData.fade) {
css.top = $(window).scrollTop() + el.data('css-top') + 'px';
var end_css = {opacity: 1};
return setTimeout(function () {

View File

@ -4,13 +4,13 @@
Foundation.libs.slider = {
name : 'slider',
version : '5.5.2',
version : '5.5.3master',
settings : {
start : 0,
end : 100,
step : 1,
precision : null,
precision : 0,
initial : null,
display_selector : '',
vertical : false,
@ -28,7 +28,6 @@
events : function () {
var self = this;
$(this.scope)
.off('.slider')
.on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider',
@ -53,6 +52,23 @@
}
})
.on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) {
if(!self.cache.active) {
// if the user has just clicked into the slider without starting to drag the handle
var slider = $(e.target).attr('role') === 'slider' ? $(e.target) : $(e.target).closest('.range-slider').find("[role='slider']");
if (slider.length && (!slider.parent().hasClass('disabled') && !slider.parent().attr('disabled'))) {
self.set_active_slider(slider);
if ($.data(self.cache.active[0], 'settings').vertical) {
var scroll_offset = 0;
if (!e.pageY) {
scroll_offset = window.scrollY;
}
self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
} else {
self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
}
}
}
self.remove_active_slider();
})
.on('change.fndtn.slider', function (e) {
@ -72,9 +88,8 @@
if (settings.display_selector != '') {
$(settings.display_selector).each(function(){
if (this.hasOwnProperty('value')) {
$(this).change(function(){
// is there a better way to do this?
if ($(this).attr('value')) {
$(this).off('change').on('change', function () {
slider.foundation("slider", "set_value", $(this).val());
});
}

View File

@ -4,7 +4,7 @@
Foundation.libs.tab = {
name : 'tab',
version : '5.5.2',
version : '5.5.3master',
settings : {
active_class : 'active',
@ -20,16 +20,12 @@
var self = this,
S = this.S;
// Store the default active tabs which will be referenced when the
// location hash is absent, as in the case of navigating the tabs and
// returning to the first viewing via the browser Back button.
S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () {
self.default_tab_hashes.push(this.hash);
});
// store the initial href, which is used to allow correct behaviour of the
// browser back button when deep linking is turned on.
self.entry_location = window.location.href;
// Store the default active tabs which will be referenced when the
// location hash is absent, as in the case of navigating the tabs and
// returning to the first viewing via the browser Back button.
S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () {
self.default_tab_hashes.push(this.hash);
});
this.bindings(method, options);
this.handle_location_hash_change();
@ -40,26 +36,29 @@
S = this.S;
var usual_tab_behavior = function (e, target) {
var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
if (!settings.is_hover || Modernizr.touch) {
var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
if (!settings.is_hover || Modernizr.touch) {
// if user did not pressed tab key, prevent default action
var keyCode = e.keyCode || e.which;
if (keyCode !== 9) {
e.preventDefault();
e.stopPropagation();
self.toggle_active_tab(S(target).parent());
}
};
self.toggle_active_tab(S(target).parent());
}
};
S(this.scope)
.off('.tab')
// Key event: focus/tab key
.on('keydown.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
var el = this;
var keyCode = e.keyCode || e.which;
// if user pressed tab key
if (keyCode == 9) {
e.preventDefault();
// TODO: Change usual_tab_behavior into accessibility function?
usual_tab_behavior(e, el);
}
// if user pressed tab key
if (keyCode === 13 || keyCode === 32) { // enter or space
var el = this;
usual_tab_behavior(e, el);
}
})
// Click event: tab title
.on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
@ -103,19 +102,19 @@
var hash_element = S(hash);
if (hash_element.hasClass('content') && hash_element.parent().hasClass('tabs-content')) {
// Tab content div
self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent());
self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=\\' + hash + ']').parent());
} else {
// Not the tab content div. If inside the tab content, find the
// containing tab and toggle it as active.
var hash_tab_container_id = hash_element.closest('.content').attr('id');
if (hash_tab_container_id != undefined) {
self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash);
self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=\\#' + hash_tab_container_id + ']').parent(), hash);
}
}
} else {
// Reference the default tab hashes which were initialized in the init function
for (var ind = 0; ind < self.default_tab_hashes.length; ind++) {
self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent());
self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=\\' + self.default_tab_hashes[ind] + ']').parent());
}
}
}
@ -181,10 +180,9 @@
go_to_hash = function(hash) {
// This function allows correct behaviour of the browser's back button when deep linking is enabled. Without it
// the user would get continually redirected to the default hash.
var is_entry_location = window.location.href === self.entry_location,
default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : is_entry_location ? window.location.hash :'fndtn-' + self.default_tab_hashes[0].replace('#', '')
var default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : 'fndtn-' + self.default_tab_hashes[0].replace('#', '');
if (!(is_entry_location && hash === default_hash)) {
if (hash !== default_hash || window.location.hash) {
window.location.hash = hash;
}
};
@ -224,8 +222,8 @@
tab.addClass(settings.active_class).triggerHandler('opened');
tab_link.attr({'aria-selected' : 'true', tabindex : 0});
siblings.removeClass(settings.active_class)
siblings.find('a').attr({'aria-selected' : 'false', tabindex : -1});
target.siblings().removeClass(settings.active_class).attr({'aria-hidden' : 'true', tabindex : -1});
siblings.find('a').attr({'aria-selected' : 'false'/*, tabindex : -1*/});
target.siblings().removeClass(settings.active_class).attr({'aria-hidden' : 'true'/*, tabindex : -1*/});
target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr('tabindex');
settings.callback(tab);
target.triggerHandler('toggled', [target]);

View File

@ -4,7 +4,7 @@
Foundation.libs.tooltip = {
name : 'tooltip',
version : '5.5.2',
version : '5.5.3master',
settings : {
additional_inheritable_classes : [],
@ -13,6 +13,8 @@
touch_close_text : 'Tap To Close',
disable_for_touch : false,
hover_delay : 200,
fade_in_duration : 150,
fade_out_duration : 150,
show_on : 'all',
tip_template : function (selector, content) {
return '<span data-selector="' + selector + '" id="' + selector + '" class="'
@ -192,7 +194,7 @@
tip_template = window[settings.tip_template];
}
var $tip = $(tip_template(this.selector($target), $('<div></div>').html($target.attr('title')).html())),
var $tip = $(tip_template(this.selector($target), $('<div></div>').html($target.attr('title')).text())),
classes = this.inheritable_classes($target);
$tip.addClass(classes).appendTo(settings.append_to);
@ -208,14 +210,14 @@
},
reposition : function (target, tip, classes) {
var width, nub, nubHeight, nubWidth, column, objPos;
var width, nub, nubHeight, nubWidth, objPos;
tip.css('visibility', 'hidden').show();
width = target.data('width');
nub = tip.children('.nub');
nubHeight = nub.outerHeight();
nubWidth = nub.outerHeight();
nubWidth = nub.outerWidth();
if (this.small()) {
tip.css({'width' : '100%'});
@ -231,39 +233,46 @@
'right' : (right) ? right : 'auto'
}).end();
};
var o_top = target.offset().top;
var o_left = target.offset().left;
var outerHeight = target.outerHeight();
objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', target.offset().left);
objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
if (this.small()) {
objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', 12.5, $(this.scope).width());
objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', 12.5, $(this.scope).width());
tip.addClass('tip-override');
objPos(nub, -nubHeight, 'auto', 'auto', target.offset().left);
objPos(nub, -nubHeight, 'auto', 'auto', o_left);
} else {
var left = target.offset().left;
if (Foundation.rtl) {
nub.addClass('rtl');
left = target.offset().left + target.outerWidth() - tip.outerWidth();
o_left = o_left + target.outerWidth() - tip.outerWidth();
}
objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', left);
objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
// reset nub from small styles, if they've been applied
if (nub.attr('style')) {
nub.removeAttr('style');
}
tip.removeClass('tip-override');
var tip_outerHeight = tip.outerHeight();
if (classes && classes.indexOf('tip-top') > -1) {
if (Foundation.rtl) {
nub.addClass('rtl');
}
objPos(tip, (target.offset().top - tip.outerHeight()), 'auto', 'auto', left)
objPos(tip, (o_top - tip_outerHeight), 'auto', 'auto', o_left)
.removeClass('tip-override');
} else if (classes && classes.indexOf('tip-left') > -1) {
objPos(tip, (target.offset().top + (target.outerHeight() / 2) - (tip.outerHeight() / 2)), 'auto', 'auto', (target.offset().left - tip.outerWidth() - nubHeight))
objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left - tip.outerWidth() - nubHeight))
.removeClass('tip-override');
nub.removeClass('rtl');
} else if (classes && classes.indexOf('tip-right') > -1) {
objPos(tip, (target.offset().top + (target.outerHeight() / 2) - (tip.outerHeight() / 2)), 'auto', 'auto', (target.offset().left + target.outerWidth() + nubHeight))
objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left + target.outerWidth() + nubHeight))
.removeClass('tip-override');
nub.removeClass('rtl');
}
@ -307,19 +316,19 @@
show : function ($target) {
var $tip = this.getTip($target);
if ($target.data('tooltip-open-event-type') == 'touch') {
this.convert_to_touch($target);
}
this.reposition($target, $tip, $target.attr('class'));
$target.addClass('open');
$tip.fadeIn(150);
$tip.fadeIn(this.settings.fade_in_duration);
},
hide : function ($target) {
var $tip = this.getTip($target);
$tip.fadeOut(150, function () {
$tip.fadeOut(this.settings.fade_out_duration, function () {
$tip.find('.tap-to-close').remove();
$tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose');
$target.removeClass('open');

View File

@ -4,7 +4,7 @@
Foundation.libs.topbar = {
name : 'topbar',
version : '5.5.2',
version : '5.5.3master',
settings : {
index : 0,
@ -134,7 +134,7 @@
}
}
} else {
if (self.is_sticky(topbar, topbar.parent(), settings)) {
if (self.is_sticky(topbar, topbar.parent(), settings) && topbar.parent().offset().top === 0) {
topbar.parent().addClass('fixed');
}
@ -165,17 +165,17 @@
self.toggle(this);
})
.on('click.fndtn.topbar contextmenu.fndtn.topbar', '.top-bar .top-bar-section li a[href^="#"],[' + this.attr_name() + '] .top-bar-section li a[href^="#"]', function (e) {
var li = $(this).closest('li'),
topbar = li.closest('[' + self.attr_name() + ']'),
settings = topbar.data(self.attr_name(true) + '-init');
var li = $(this).closest('li'),
topbar = li.closest('[' + self.attr_name() + ']'),
settings = topbar.data(self.attr_name(true) + '-init');
if (settings.dropdown_autoclose && settings.is_hover) {
var hoverLi = $(this).closest('.hover');
hoverLi.removeClass('hover');
}
if (self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown')) {
self.toggle();
}
if (settings.dropdown_autoclose && settings.is_hover) {
var hoverLi = $(this).closest('.hover');
hoverLi.removeClass('hover');
}
if (self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown')) {
self.toggle();
}
})
.on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) {
@ -199,7 +199,7 @@
e.stopImmediatePropagation();
if (li.hasClass('hover')) {
if (li.hasClass('hover') && (settings.is_hover || li.children('a').first().hasClass('last-clicked'))) {
li
.removeClass('hover')
.find('li')
@ -214,6 +214,10 @@
if (target[0].nodeName === 'A' && target.parent().hasClass('has-dropdown')) {
e.preventDefault();
if(!settings.is_hover){
topbar.find('.last-clicked').removeClass('last-clicked');
target.addClass('last-clicked');
}
}
}
})
@ -245,19 +249,25 @@
S(window).off('.topbar').on('resize.fndtn.topbar', self.throttle(function () {
self.resize.call(self);
}, 50)).trigger('resize.fndtn.topbar').load(function () {
}, 50)).trigger('resize.fndtn.topbar').on('load', function () {
// Ensure that the offset is calculated after all of the pages resources have loaded
S(this).trigger('resize.fndtn.topbar');
});
S('body').off('.topbar').on('click.fndtn.topbar', function (e) {
var parent = S(e.target).closest('li').closest('li.hover');
var parent = S(e.target).closest('li').closest('li.hover'),
topbar = S(e.target).closest('[' + self.attr_name() + ']'),
settings = topbar.data(self.attr_name(true) + '-init');
if (parent.length > 0) {
return;
}
S('[' + self.attr_name() + '] li.hover').removeClass('hover');
if(settings && !settings.is_hover){
S('[' + self.attr_name() + '] a.last-clicked').removeClass('last-clicked');
}
});
// Go up a level on Click
@ -298,15 +308,14 @@
$(this).parents('.has-dropdown').addClass('hover');
})
.blur(function () {
$(this).parents('.has-dropdown').removeClass('hover');
$(this).removeClass('last-clicked').parents('.has-dropdown').removeClass('hover');
});
},
resize : function () {
var self = this;
self.S('[' + this.attr_name() + ']').each(function () {
var topbar = self.S(this),
settings = topbar.data(self.attr_name(true) + '-init');
var topbar = self.S(this);
var stickyContainer = topbar.parent('.' + self.settings.sticky_class);
var stickyOffset;
@ -324,7 +333,7 @@
}
}
if (self.is_sticky(topbar, stickyContainer, settings)) {
if (self.is_sticky(topbar, stickyContainer, self.settings)) {
if (stickyContainer.hasClass('fixed')) {
// Remove the fixed to allow for correct calculation of the offset.
stickyContainer.removeClass('fixed');
@ -377,14 +386,14 @@
if (!$dropdown.find('.title.back').length) {
if (settings.mobile_show_parent_link == true && url) {
if (settings.mobile_show_parent_link === true && url) {
$titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="' + url + '">' + $link.html() +'</a></li>');
} else {
$titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>');
}
// Copy link to subnav
if (settings.custom_back_text == true) {
if (settings.custom_back_text === true) {
$('h5>a', $titleLi).html(settings.back_text);
} else {
$('h5>a', $titleLi).html('&laquo; ' + $link.html());

View File

@ -1,11 +1,6 @@
jQuery(document).ready(function() {
// Add the 'less than IE9' class to appropriate version of IE by checking for their support of cssFloat (true in v9)
if (!jQuery.support.cssFloat) { jQuery('html').addClass('lt-ie9').addClass('no-js'); }
jQuery(document).foundation(function (response) {
// console.log(response.errors); < this line will produce error in ie9!
if (window.console) console.log(response.errors);
});
@ -16,63 +11,4 @@ jQuery(document).ready(function() {
jQuery("#pt-notifications-alert").prependTo("#echo-notifications-alerts");
jQuery("#pt-notifications-notice").prependTo("#echo-notifications-notice");
// Append font-awesome icons
jQuery('[id^=ca-nstab] a').prepend('<div id="drop-icon"><i class="fa fa-file fa-fw"></i></div>')
jQuery('li#ca-talk a').prepend('<div id="drop-icon"><i class="fa fa-comments-o fa-fw"></i></div>')
jQuery('li#ca-form_edit a').prepend('<div id="drop-icon"><i class="fa fa-pencil-square fa-fw"></i></div>')
jQuery('li#ca-history a').prepend('<div id="drop-icon"><i class="fa fa-archive fa-fw"></i></div>')
jQuery('li#ca-delete a').prepend('<div id="drop-icon"><i class="fa fa-trash-o fa-fw"></i></div>')
jQuery('li#ca-move a').prepend('<div id="drop-icon"><i class="fa fa-truck fa-fw"></i></div>')
jQuery('li#ca-protect a').prepend('<div id="drop-icon"><i class="fa fa-shield fa-fw"></i></div>')
jQuery('li#ca-unprotect a').prepend('<div id="drop-icon"><i class="fa fa-shield fa-fw"></i></div>')
jQuery('li#ca-watch a').prepend('<div id="drop-icon"><i class="fa fa-star-o fa-fw"></i></div>')
jQuery('li#ca-unwatch a').prepend('<div id="drop-icon"><i class="fa fa-star fa-fw"></i></div>')
jQuery('li#ca-purge a').prepend('<div id="drop-icon"><i class="fa fa-refresh fa-fw"></i></div>')
jQuery('li#ca-undelete a').prepend('<div id="drop-icon"><i class="fa fa-undo fa-fw"></i></div>')
jQuery('li#ca-ask_delete_permanently a').prepend('<div id="drop-icon"><i class="fa fa-cut fa-fw"></i></div>')
if ( jQuery( '#ca-addsection' ).length ) {
jQuery('li#ca-addsection a').html('<div id="drop-icon"><i class="fa fa-plus fa-fw"></i></div>' + jQuery('li#ca-addsection a').attr('title').replace(/\[.+/g,""))
}
jQuery('li#pt-uls a').prepend('<div id="drop-icon"><i class="fa fa-book fa-fw"></i></div>')
jQuery('li#pt-userpage a').prepend('<div id="drop-icon"><i class="fa fa-user fa-fw"></i></div>')
jQuery('li#pt-mytalk a').prepend('<div id="drop-icon"><i class="fa fa-comments fa-fw"></i></div>')
jQuery('li#pt-adminlinks a').prepend('<div id="drop-icon"><i class="fa fa-bolt fa-fw"></i></div>')
jQuery('li#pt-preferences a').prepend('<div id="drop-icon"><i class="fa fa-ellipsis-h fa-fw"></i></div>')
jQuery('li#pt-watchlist a').prepend('<div id="drop-icon"><i class="fa fa-th-list fa-fw"></i></div>')
jQuery('li#pt-mycontris a').prepend('<div id="drop-icon"><i class="fa fa-smile-o fa-fw"></i></div>')
jQuery('li#pt-logout a').prepend('<div id="drop-icon"><i class="fa fa-power-off fa-fw"></i></div>')
jQuery('li#t-smwbrowselink a').prepend('<div id="drop-icon"><i class="fa fa-eye fa-fw"></i></div>')
jQuery('li#t-whatlinkshere a').prepend('<div id="drop-icon"><i class="fa fa-arrows fa-fw"></i></div>')
jQuery('li#t-blockip a').prepend('<div id="drop-icon"><i class="fa fa-ban fa-fw"></i></div>')
jQuery('li#t-recentchangeslinked a').prepend('<div id="drop-icon"><i class="fa fa-bars fa-fw"></i></div>')
jQuery('li#t-contributions a').prepend('<div id="drop-icon"><i class="fa fa-smile-o fa-fw"></i></div>')
jQuery('li#t-log a').prepend('<div id="drop-icon"><i class="fa fa-bars fa-fw"></i></div>')
jQuery('li#t-emailuser a').prepend('<div id="drop-icon"><i class="fa fa-envelope fa-fw"></i></div>')
jQuery('li#t-userrights a').prepend('<div id="drop-icon"><i class="fa fa-gavel fa-fw"></i></div>')
jQuery('li#t-upload a').prepend('<div id="drop-icon"><i class="fa fa-upload fa-fw"></i></div>')
jQuery('li#t-specialpages a').prepend('<div id="drop-icon"><i class="fa fa-magic fa-fw"></i></div>')
jQuery('li#t-print a').prepend('<div id="drop-icon"><i class="fa fa-print fa-fw"></i></div>')
jQuery('li#t-permalink a').prepend('<div id="drop-icon"><i class="fa fa-dot-circle-o fa-fw"></i></div>')
jQuery('li#t-info a').prepend('<div id="drop-icon"><i class="fa fa-info fa-fw"></i></div>')
jQuery('li#t-cite a').prepend('<div id="drop-icon"><i class="fa fa-quote-left fa-fw"></i></div>')
jQuery('li#feedlinks a').prepend('<div id="drop-icon"><i class="fa fa-rss fa-fw"></i></div>')
jQuery('li#n-recentchanges a').prepend('<div id="drop-icon"><i class="fa fa-tasks fa-fw"></i></div>')
jQuery('li#n-help a').prepend('<div id="drop-icon"><i class="fa fa-question fa-fw"></i></div>')
jQuery('li#n-randompage a').prepend('<div id="drop-icon"><i class="fa fa-random fa-fw"></i></div>')
// Turn categories into labels
jQuery('#mw-normal-catlinks ul li a').addClass('label');
});
// Have to wait until the window is fully loaded because of Visual Editor to prepend icons for editing
jQuery(window).load(function() {
jQuery('li#ca-ve-edit a').prepend('<div id="drop-icon"><i class="fa fa-pencil fa-fw"></i></div>')
jQuery('li#ca-viewsource a').prepend('<div id="drop-icon"><i class="fa fa-book fa-fw"></i></div>')
jQuery('li#ca-edit a').prepend('<div id="drop-icon"><i class="fa fa-pencil-square-o fa-fw"></i></div>')
});

View File

@ -1,8 +0,0 @@
/*!
* jQuery Cookie Plugin v1.4.1
* https://github.com/carhartl/jquery-cookie
*
* Copyright 2013 Klaus Hartl
* Released under the MIT license
*/
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,70 @@
.side-nav li a:before,
#drop1 li a:before,
.right-off-canvas-menu li a:before,
.left-off-canvas-menu li a:before {
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
margin-right: 5px;
display: inline-block;
width: 1em;
}
/* -- Navigation -- */
#n-mainpage-description a:before {content: "\f015";}
#n-recentchanges a:before {content: "\f0ae";}
#n-randompage a:before {content: "\f074";}
#n-help a:before {content: "\f128";}
/* -- Toolbox -- */
#t-whatlinkshere a:before {content: "\f047";}
#t-recentchangeslinked a:before {content: "\f0c9";}
#t-specialpages a:before {content: "\f0d0";}
#t-print a:before {content: "\f02f";}
#t-permalink a:before {content: "\f192";}
#t-info a:before {content: "\f129";}
/* -- Actions -- */
#ca-nstab-main a:before {content: "\f015";}
#ca-talk a:before {content: "\f0e6";}
#ca-edit a:before {content: "\f044";}
#ca-formedit a:before {content: "\f0f6";}
#ca-history a:before {content: "\f187";}
#ca-delete a:before {content: "\f014";}
#ca-move a:before {content: "\f0d1";}
#ca-protect a:before {content: "\f132";}
#ca-unprotect a:before {content: "\f132";}
#ca-watch a:before {content: "\f006";}
#ca-unwatch a:before {content: "\f005";}
#ca-ve-edit a:before {content: "\f040";}
#ca-viewsource a:before {content: "\f02d";}
#ca-form_edit a:before {content: "\f14b";}
#ca-purge a:before {content: "\f021";}
#ca-undelete a:before {content: "\f0e2";}
#ca-ask_delete_permanently a:before {content: "\f0c4";}
#ca-addsection a:before {content: "\f067";}
/* -- Usermenu -- */
#pt-userpage a:before {content: "\f007";}
#pt-mytalk a:before {content: "\f086";}
#pt-adminlinks a:before {content: "\f0e7";}
#pt-preferences a:before {content: "\f141";}
#pt-watchlist a:before {content: "\f00b";}
#pt-mycontris a:before {content: "\f118";}
#pt-logout a:before {content: "\f011";}
#pt-uls a:before {content: "\f02d";}
#t-smwbrowselink a:before {content: "\f06e";}
#t-blockip a:before {content: "\f05e";}
#t-contributions a:before {content: "\f118";}
#t-log a:before {content: "\f0c9";}
#t-emailuser a:before {content: "\f0e0";}
#t-userrights a:before {content: "\f0e3";}
#t-upload a:before {content: "\f093";}
#t-cite a:before {content: "\f10d";}
#feedlinks a:before {content: "\f09e";}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,756 @@
@media screen {
/**
* CSS in this file is used by *all* skins (that have any CSS at all). Be
* careful what you put in here, since what looks good in one skin may not in
* another, but don't ignore the poor pre-Monobook users either.
*
* NOTE: The images which are referenced in this file are no longer in use in
* essential interface components. They should NOT be embedded, because that
* optimizes for the uncommon case at the cost of bloating the size of render-
* blocking CSS common to all pages.
*/
/* GENERAL CLASSES FOR DIRECTIONALITY SUPPORT */
/**
* These classes should be used for text depending on the content direction.
* Content stuff like editsection, ul/ol and TOC depend on this.
*/
.mw-content-ltr {
/* @noflip */
direction: ltr;
}
.mw-content-rtl {
/* @noflip */
direction: rtl;
}
/* Most input fields should be in site direction */
.sitedir-ltr textarea,
.sitedir-ltr input {
/* @noflip */
direction: ltr;
}
.sitedir-rtl textarea,
.sitedir-rtl input {
/* @noflip */
direction: rtl;
}
.mw-userlink {
unicode-bidi: embed;
}
/* User-Agent styles for new HTML5 elements */
mark {
background-color: #ff0;
color: #000;
}
/* Helper for wbr element on IE 8+; in HTML5, but not supported by default as of IE 11. */
/* Note canonical HTML5 styles recommend "content: \u200B", but this doesn't work as of IE 11. */
wbr {
display: inline-block;
}
/* Input types that should follow user direction, like buttons */
/* TODO: What about buttons in wikipage content ? */
input[ type='submit' ],
input[ type='button' ],
input[ type='reset' ],
input[ type='file' ] {
direction: ltr;
}
/* Override default values */
textarea[ dir='ltr' ],
input[ dir='ltr' ] {
/* @noflip */
direction: ltr;
}
textarea[ dir='rtl' ],
input[ dir='rtl' ] {
/* @noflip */
direction: rtl;
}
/* Default style for semantic tags */
abbr[ title ],
.explain[ title ] {
border-bottom: 1px dotted;
cursor: help;
}
@supports ( text-decoration: underline dotted ) {
abbr[ title ],
.explain[ title ] {
border-bottom: 0;
text-decoration: underline dotted;
}
}
/* Comment portions of RC entries */
span.comment {
font-style: italic;
unicode-bidi: -moz-isolate;
unicode-bidi: isolate;
}
/* Stop floats from intruding into edit area in previews */
#editform,
#toolbar,
#wpTextbox1 {
clear: both;
}
/* Prevent editing textarea from jumping when toolbar is loaded */
#toolbar {
height: 22px;
}
/* Underline preference */
.mw-underline-always a {
text-decoration: underline;
}
.mw-underline-never a {
text-decoration: none;
}
/**
* rev_deleted stuff
*/
li span.deleted,
span.history-deleted {
text-decoration: line-through;
color: #72777d;
font-style: italic;
}
/**
* Patrol stuff
*/
.not-patrolled {
background-color: #ffa;
}
.unpatrolled {
font-weight: bold;
color: #d33;
}
div.patrollink {
font-size: 75%;
text-align: right;
}
/**
* Forms
*/
td.mw-label {
text-align: right;
vertical-align: middle;
}
td.mw-input {
text-align: left;
}
td.mw-submit {
text-align: left;
white-space: nowrap;
}
.mw-input-with-label {
white-space: nowrap;
display: inline-block;
}
/**
* Image captions.
*
* This is only meant to provide the most basic of styles, visual settings shouldn't be added here.
*/
/* @noflip */
.mw-content-ltr .thumbcaption {
text-align: left;
}
/* @noflip */
.mw-content-ltr .magnify {
float: right;
}
/* @noflip */
.mw-content-rtl .thumbcaption {
text-align: right;
}
/* @noflip */
.mw-content-rtl .magnify {
float: left;
}
/**
* Categories
*/
#catlinks {
/**
* Overrides text justification (user preference)
* See T33990
*/
text-align: left;
}
.catlinks ul {
display: inline;
margin: 0;
padding: 0;
list-style: none;
list-style-type: none;
list-style-image: none;
vertical-align: middle !ie;
}
.catlinks li {
display: inline-block;
line-height: 1.25em;
border-left: 1px solid #a2a9b1;
margin: 0.125em 0;
padding: 0 0.5em;
zoom: 1;
display: inline !ie; /* stylelint-disable-line declaration-block-no-duplicate-properties */
}
.catlinks li:first-child {
padding-left: 0.25em;
border-left: 0;
}
/* (T7346) make category redirects italic */
.catlinks li a.mw-redirect {
font-style: italic;
}
/**
* Hidden categories
*/
.mw-hidden-cats-hidden {
display: none;
}
.catlinks-allhidden {
display: none;
}
/**
* Convenience links to edit delete and protect reasons
*/
p.mw-protect-editreasons,
p.mw-filedelete-editreasons,
p.mw-delete-editreasons {
font-size: 90%;
text-align: right;
}
/* The auto-generated edit comments */
.autocomment {
color: #72777d;
}
/** Generic minor/bot/newpage styling (recent changes) */
.newpage,
.minoredit,
.botedit {
font-weight: bold;
}
/**
* Recreating deleted page warning
* Reupload file warning
* Page protection warning
* incl. log entries for these warnings
*/
div.mw-warning-with-logexcerpt {
padding: 3px;
margin-bottom: 3px;
border: 2px solid #2a4b8d;
clear: both;
}
div.mw-warning-with-logexcerpt ul li {
font-size: 90%;
}
/* (show/hide) revision deletion links */
span.mw-revdelundel-link,
strong.mw-revdelundel-link {
font-size: 90%;
}
span.mw-revdelundel-hidden,
input.mw-revdelundel-hidden {
visibility: hidden;
}
td.mw-revdel-checkbox,
th.mw-revdel-checkbox {
padding-right: 10px;
text-align: center;
}
/* red links; see T38276 */
a.new {
color: #ba0000;
}
/* Plainlinks - this can be used to switch
* off special external link styling */
.plainlinks a.external {
background: none !important; /* stylelint-disable-line declaration-no-important */
padding: 0 !important; /* stylelint-disable-line declaration-no-important */
}
/* External URLs should always be treated as LTR (T6330) */
/* @noflip */ .rtl a.external.free,
.rtl a.external.autonumber {
direction: ltr;
unicode-bidi: embed;
}
/**
* wikitable class for skinning normal tables
* keep in sync with commonPrint.css
*/
table.wikitable {
background-color: #f8f9fa;
color: #222;
margin: 1em 0;
border: 1px solid #a2a9b1;
border-collapse: collapse;
}
table.wikitable > tr > th,
table.wikitable > tr > td,
table.wikitable > * > tr > th,
table.wikitable > * > tr > td {
border: 1px solid #a2a9b1;
padding: 0.2em 0.4em;
}
table.wikitable > tr > th,
table.wikitable > * > tr > th {
background-color: #eaecf0;
text-align: center;
}
table.wikitable > caption {
font-weight: bold;
}
/* success and error messages */
.error,
.warning,
.success {
font-size: larger;
}
.error {
color: #d33;
}
.warning {
color: #705000;
}
.success {
color: #009000;
}
.errorbox,
.warningbox,
.successbox {
border: 1px solid;
padding: 0.5em 1em;
margin-bottom: 1em;
display: inline-block;
zoom: 1;
*display: inline; /* stylelint-disable-line declaration-block-no-duplicate-properties */
}
.errorbox h2,
.warningbox h2,
.successbox h2 {
font-size: 1em;
color: inherit;
font-weight: bold;
display: inline;
margin: 0 0.5em 0 0;
border: 0;
}
.errorbox {
color: #d33;
border-color: #fac5c5;
background-color: #fae3e3;
}
.warningbox {
color: #705000;
border-color: #fde29b;
background-color: #fdf1d1;
}
.successbox {
color: #008000;
border-color: #b7fdb5;
background-color: #e1fddf;
}
/* general info/warning box for SP */
.mw-infobox {
border: 2px solid #ff7f00;
margin: 0.5em;
clear: left;
overflow: hidden;
}
.mw-infobox-left {
margin: 7px;
float: left;
width: 35px;
}
.mw-infobox-right {
margin: 0.5em 0.5em 0.5em 49px;
}
/* Note on preview page */
.previewnote {
color: #d33;
margin-bottom: 1em;
}
.previewnote p {
text-indent: 3em;
margin: 0.8em 0;
}
.visualClear {
clear: both;
}
/**
* Data table style
*
* Transparent table with suddle borders
* and blue row-highlighting.
*/
.mw-datatable {
border-collapse: collapse;
}
.mw-datatable,
.mw-datatable td,
.mw-datatable th {
border: 1px solid #a2a9b1;
padding: 0 0.15em 0 0.15em;
}
.mw-datatable th {
background-color: #ddf;
}
.mw-datatable td {
background-color: #fff;
}
.mw-datatable tr:hover td {
background-color: #eaf3ff;
}
/* Correct directionality when page dir is different from site/user dir */
.mw-content-ltr ul,
.mw-content-rtl .mw-content-ltr ul {
/* @noflip */
margin: 0.3em 0 0 1.6em;
padding: 0;
}
.mw-content-rtl ul,
.mw-content-ltr .mw-content-rtl ul {
/* @noflip */
margin: 0.3em 1.6em 0 0;
padding: 0;
}
.mw-content-ltr ol,
.mw-content-rtl .mw-content-ltr ol {
/* @noflip */
margin: 0.3em 0 0 3.2em;
padding: 0;
}
.mw-content-rtl ol,
.mw-content-ltr .mw-content-rtl ol {
/* @noflip */
margin: 0.3em 3.2em 0 0;
padding: 0;
}
/* @noflip */
.mw-content-ltr dd,
.mw-content-rtl .mw-content-ltr dd {
margin-left: 1.6em;
margin-right: 0;
}
/* @noflip */
.mw-content-rtl dd,
.mw-content-ltr .mw-content-rtl dd {
margin-right: 1.6em;
margin-left: 0;
}
.mw-ajax-loader {
background-image: url(/w/resources/src/mediawiki.legacy/images/ajax-loader.gif?57f34);
background-position: center center;
background-repeat: no-repeat;
padding: 16px;
position: relative;
top: -16px;
}
.mw-small-spinner {
padding: 10px !important; /* stylelint-disable-line declaration-no-important */
margin-right: 0.6em;
background-image: url(/w/resources/src/mediawiki.legacy/images/spinner.gif?ca65b);
background-position: center center;
background-repeat: no-repeat;
}
/* Language specific height correction for titles. Ref T31405 and T32809 */
/* Languages like hi or ml require slightly more vertical space to show diacritics properly */
h1:lang( anp ),
h1:lang( as ),
h1:lang( bh ), /* Macrolanguage, used on bh.wikipedia.org, should be removed one day */
h1:lang( bho ),
h1:lang( bn ),
h1:lang( gu ),
h1:lang( hi ),
h1:lang( kn ),
h1:lang( ks ),
h1:lang( ml ),
h1:lang( mr ),
h1:lang( my ),
h1:lang( mai ),
h1:lang( ne ),
h1:lang( new ),
h1:lang( or ),
h1:lang( pa ),
h1:lang( pi ),
h1:lang( sa ),
h1:lang( ta ),
h1:lang( te ) {
line-height: 1.6em !important; /* stylelint-disable-line declaration-no-important */
}
/* stylelint-disable selector-list-comma-newline-after */
h2:lang( anp ), h3:lang( anp ), h4:lang( anp ), h5:lang( anp ), h6:lang( anp ),
h2:lang( as ), h3:lang( as ), h4:lang( as ), h5:lang( as ), h6:lang( as ),
h2:lang( bho ), h3:lang( bho ), h4:lang( bho ), h5:lang( bho ), h6:lang( bho ),
h2:lang( bh ), h3:lang( bh ), h4:lang( bh ), h5:lang( bh ), h6:lang( bh ),
h2:lang( bn ), h3:lang( bn ), h4:lang( bn ), h5:lang( bn ), h6:lang( bn ),
h2:lang( gu ), h3:lang( gu ), h4:lang( gu ), h5:lang( gu ), h6:lang( gu ),
h2:lang( hi ), h3:lang( hi ), h4:lang( hi ), h5:lang( hi ), h6:lang( hi ),
h2:lang( kn ), h3:lang( kn ), h4:lang( kn ), h5:lang( kn ), h6:lang( kn ),
h2:lang( ks ), h3:lang( ks ), h4:lang( ks ), h5:lang( ks ), h6:lang( ks ),
h2:lang( ml ), h3:lang( ml ), h4:lang( ml ), h5:lang( ml ), h6:lang( ml ),
h2:lang( mr ), h3:lang( mr ), h4:lang( mr ), h5:lang( mr ), h6:lang( mr ),
h2:lang( my ), h3:lang( my ), h4:lang( my ), h5:lang( my ), h6:lang( my ),
h2:lang( mai ), h3:lang( mai ), h4:lang( mai ), h5:lang( mai ), h6:lang( mai ),
h2:lang( ne ), h3:lang( ne ), h4:lang( ne ), h5:lang( ne ), h6:lang( ne ),
h2:lang( new ), h3:lang( new ), h4:lang( new ), h5:lang( new ), h6:lang( new ),
h2:lang( or ), h3:lang( or ), h4:lang( or ), h5:lang( or ), h6:lang( or ),
h2:lang( pa ), h3:lang( pa ), h4:lang( pa ), h5:lang( pa ), h6:lang( pa ),
h2:lang( pi ), h3:lang( pi ), h4:lang( pi ), h5:lang( pi ), h6:lang( pi ),
h2:lang( sa ), h3:lang( sa ), h4:lang( sa ), h5:lang( sa ), h6:lang( sa ),
h2:lang( ta ), h3:lang( ta ), h4:lang( ta ), h5:lang( ta ), h6:lang( ta ),
h2:lang( te ), h3:lang( te ), h4:lang( te ), h5:lang( te ), h6:lang( te ) {
line-height: 1.2em;
}
/* stylelint-enable selector-list-comma-newline-after */
/* Localised ordered list numbering for some languages */
ol:lang( azb ) li,
ol:lang( bcc ) li,
ol:lang( bgn ) li,
ol:lang( bqi ) li,
ol:lang( fa ) li,
ol:lang( glk ) li,
ol:lang( kk-arab ) li,
ol:lang( lrc ) li,
ol:lang( luz ) li,
ol:lang( mzn ) li {
list-style-type: -moz-persian;
list-style-type: persian;
}
ol:lang( ckb ) li,
ol:lang( sdh ) li {
list-style-type: -moz-arabic-indic;
list-style-type: arabic-indic;
}
ol:lang( hi ) li,
ol:lang( mai ) li,
ol:lang( mr ) li,
ol:lang( ne ) li {
list-style-type: -moz-devanagari;
list-style-type: devanagari;
}
ol:lang( as ) li,
ol:lang( bn ) li {
list-style-type: -moz-bengali;
list-style-type: bengali;
}
ol:lang( or ) li {
list-style-type: -moz-oriya;
list-style-type: oriya;
}
.toc ul {
margin: 0.3em 0;
}
/* Correct directionality when page dir is different from site/user dir */
/* @noflip */ .mw-content-ltr .toc ul,
.mw-content-rtl .mw-content-ltr .toc ul {
text-align: left;
}
/* @noflip */ .mw-content-rtl .toc ul,
.mw-content-ltr .mw-content-rtl .toc ul {
text-align: right;
}
/* @noflip */ .mw-content-ltr .toc ul ul,
.mw-content-rtl .mw-content-ltr .toc ul ul {
margin: 0 0 0 2em;
}
/* @noflip */ .mw-content-rtl .toc ul ul,
.mw-content-ltr .mw-content-rtl .toc ul ul {
margin: 0 2em 0 0;
}
.toc .toctitle {
direction: ltr;
}
#mw-clearyourcache,
#mw-sitecsspreview,
#mw-sitejspreview,
#mw-usercsspreview,
#mw-userjspreview {
direction: ltr;
unicode-bidi: embed;
}
#mw-revision-info,
#mw-revision-info-current,
#mw-revision-nav {
direction: ltr;
}
/* Images */
/* @noflip */ div.tright,
div.floatright,
table.floatright {
clear: right;
float: right;
}
/* @noflip */ div.tleft,
div.floatleft,
table.floatleft {
float: left;
clear: left;
}
div.floatright,
table.floatright,
div.floatleft,
table.floatleft {
position: relative;
}
/* T14205 */
#mw-credits a {
unicode-bidi: embed;
}
/* Accessibility */
.mw-jump,
#jump-to-nav {
overflow: hidden;
height: 0;
zoom: 1; /* http://webaim.org/techniques/skipnav/#iequirk */
}
/* Print footer should be hidden by default in screen. */
.printfooter {
display: none;
}
/* For developers */
.xdebug-error {
position: absolute;
z-index: 99;
}
.mw-editsection,
#jump-to-nav {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
}
/* Display editsection links smaller and next to headings */
.mw-editsection,
.mw-editsection-like {
font-size: small;
font-weight: normal;
margin-left: 1em;
vertical-align: baseline;
/* Reset line-height; headings tend to have it set to larger values */
line-height: 1em;
}
/* Correct directionality when page dir is different from site/user dir */
/* @noflip */
.mw-content-ltr .mw-editsection,
.mw-content-rtl .mw-content-ltr .mw-editsection {
margin-left: 1em;
}
/* @noflip */
.mw-content-rtl .mw-editsection,
.mw-content-ltr .mw-content-rtl .mw-editsection {
margin-right: 1em;
}
/* Prevent citations and subscripts from interfering with the line-height */
sup,
sub {
line-height: 1;
}}

View File

@ -1,16 +1,16 @@
body { line-height: 1.6em; font-size: 16px; }
body { line-height: 1.6em; font-size: 1rem;
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; }
p, ul, ol, dl { font-size: 16px; }
p, ul, ol, dl { font-size: 1rem; }
h4,h5,h6 {color: 2e2e2e;}
h4,h5,h6 {color: #2e2e2e;}
#toc ul, .toc ul { font-size: 16px; }
#toc { margin: 1em 0; }
@media only screen and (min-width: 40.0625em) {
body { line-height: 1.6em; font-size: 14px; }
p, ul, ol, dl { font-size: 14px; }
body { line-height: 1.6em; font-size: 1rem; }
#toc ul, .toc ul { font-size: 13.3px; }
}
@ -43,9 +43,6 @@ a:hover {
text-decoration: underline;
}
h1.title a {
text-decoration: none;
}
/* ULS Override to force no display of background image */
.uls-trigger {
@ -69,11 +66,14 @@ body.action-formedit .row.hide-on-form-edit { display: none;}
.mw-notification-area {
margin-top: 2em;
}
/* MediaWiki Search Results */
.mw-search-results {
max-width: 100%;
}
/* Also adjust z-index of action menu to force it on top */
#p-cactions #drop1 {
z-index: 1000;
white-space: nowrap;
border: 1px solid cyan;
}
#p-cactions #drop1 a {
width: 100%;
@ -163,10 +163,6 @@ h2 span {
display: inline;
}
h2.title {
margin-bottom: 0.1em;
}
h3#tagline {
font-style: italic;
font-size: small;
@ -226,9 +222,22 @@ ul#drop1.f-dropdown {
color: #222;
border-bottom: 1px solid #eee;
}
.mw-content-ltr ul {
.mw-content-ltr ol, .mw-content-rtl .mw-content-ltr ol {
margin: .5em 0 1em 2em;
}
.mw-content-ltr ul, .mw-content-rtl .mw-content-ltr ul {
margin: .5em 0 1em 2em;
}
.mw-content-ltr ul li > ul,
.mw-content-rtl .mw-content-ltr ul li > ul {
margin-bottom: .5em;
margin-left: 1em;
}
.mw-content-ltr ol li > ol,
.mw-content-rtl .mw-content-ltr ol li > ol {
margin-bottom: .5em;
margin-left: 1em;
}
ul.accordion {
margin: 0;
}
@ -528,7 +537,6 @@ button.ui-button-icon-only {
select {width:auto;}
input[type="checkbox"].createboxInput {
width: auto;
}
@ -598,6 +606,30 @@ button, .button {
z-index: 100;
}
input[type="search"] {
margin: 0;
}
input[type="date"] {
margin: .5rem 0;
}
input[type="date"] {
width: auto;
}
input[type="file"] {
margin: .5rem 0;
}
input:not([type]), textarea, p.meta {
margin: .5rem 0;
}
input[type="text"] {
margin: .5rem 0;
}
select {
padding: 5px 20px 5px 5px;
margin: .5rem 0;
width: auto;
}
input[type="submit"] {
background-color: #5da423;
border-color: #457a1a;
@ -643,117 +675,8 @@ span.smwttactiveinline span.smwbuiltin {
font-style: normal;
}
/* MW still generates a label column for checkboxes, this minimizes is */
div.mw-htmlform-field-HTMLCheckField div.mw-label { height:0; }
/* ZUBR IE8 FIXES */
/* GRID: https://gist.github.com/zurbchris/5068210 */
.lt-ie9 .row { width: 940px; max-width: 100%; min-width: 768px; margin: 0 auto; }
.lt-ie9 .row .row { width: auto; max-width: none; min-width: 0; margin: 0 -15px; }
.lt-ie9 .row.large-collapse .column,
.lt-ie9 .row.large-collapse .columns { padding: 0; }
.lt-ie9 .row .row { width: auto; max-width: none; min-width: 0; margin: 0 -15px; }
.lt-ie9 .row .row.large-collapse { margin: 0; }
.lt-ie9 .column, .lt-ie9 .columns { float: left; min-height: 1px; padding: 0 15px; position: relative; }
.lt-ie9 .column.large-centered, .columns.large-centered { float: none; margin: 0 auto; }
.lt-ie9 [class*="column"] + [class*="column"]:last-child { float: right; }
.lt-ie9 [class*="column"] + [class*="column"].end { float: left; }
.lt-ie9 .large-1,
.lt-ie9 .row .large-1 { width: 8.33333%; }
.lt-ie9 .large-2,
.lt-ie9 .row .large-2 { width: 16.66667%; }
.lt-ie9 .large-3,
.lt-ie9 .row .large-3 { width: 25%; }
.lt-ie9 .large-4,
.lt-ie9 .row .large-4 { width: 33.33333%; }
.lt-ie9 .large-5,
.lt-ie9 .row .large-5 { width: 41.66667%; }
.lt-ie9 .large-6,
.lt-ie9 .row .large-6 { width: 50%; }
.lt-ie9 .large-7,
.lt-ie9 .row .large-7 { width: 58.33333%; }
.lt-ie9 .large-8,
.lt-ie9 .row .large-8 { width: 66.66667%; }
.lt-ie9 .large-9,
.lt-ie9 .row .large-9 { width: 75%; }
.lt-ie9 .large-10,
.lt-ie9 .row .large-10 { width: 83.33333%; }
.lt-ie9 .large-11,
.lt-ie9 .row .large-11 { width: 91.66667%; }
.lt-ie9 .large-12,
.lt-ie9 .row .large-12 { width: 100%; }
.lt-ie9 .row .large-offset-1 { margin-left: 8.33333%; }
.lt-ie9 .row .large-offset-2 { margin-left: 16.66667%; }
.lt-ie9 .row .large-offset-3 { margin-left: 25%; }
.lt-ie9 .row .large-offset-4 { margin-left: 33.33333%; }
.lt-ie9 .row .large-offset-5 { margin-left: 41.66667%; }
.lt-ie9 .row .large-offset-6 { margin-left: 50%; }
.lt-ie9 .row .large-offset-7 { margin-left: 58.33333%; }
.lt-ie9 .row .large-offset-8 { margin-left: 66.66667%; }
.lt-ie9 .row .large-offset-9 { margin-left: 75%; }
.lt-ie9 .row .large-offset-10 { margin-left: 83.33333%; }
.lt-ie9 .pull-2 { right: 16.66667%; }
.lt-ie9 .pull-3 { right: 25%; }
.lt-ie9 .pull-4 { right: 33.33333%; }
.lt-ie9 .pull-5 { right: 41.66667%; }
.lt-ie9 .pull-6 { right: 50%; }
.lt-ie9 .pull-7 { right: 58.33333%; }
.lt-ie9 .pull-8 { right: 66.66667%; }
.lt-ie9 .pull-9 { right: 75%; }
.lt-ie9 .pull-10 { right: 83.33333%; }
.lt-ie9 .push-2 { left: 16.66667%; }
.lt-ie9 .push-3 { left: 25%; }
.lt-ie9 .push-4 { left: 33.33333%; }
.lt-ie9 .push-5 { left: 41.66667%; }
.lt-ie9 .push-6 { left: 50%; }
.lt-ie9 .push-7 { left: 58.33333%; }
.lt-ie9 .push-8 { left: 66.66667%; }
.lt-ie9 .push-9 { left: 75%; }
.lt-ie9 .push-10 { left: 83.33333%; }
/* Nicolas Gallagher's micro clearfix */
.lt-ie9 .row { *zoom: 1; }
.lt-ie9 .row:before, .row:after { content: " "; display: table; }
.lt-ie9 .row:after { clear: both; }
/* END IE8 GRID */
.lt-ie9 .hide-for-small { display: block !important; }
/* TOP NAV */
.lt-ie9 .top-bar-section {
display:block;
}
.lt-ie9 .top-bar-section ul {
height: auto;
width: 100%;
}
.lt-ie9 .top-bar .top-bar-section ul,
.lt-ie9 .top-bar .top-bar-section ul li {
float: left;
display: inline;
}
/* END OTHER IE8 FIXES */
.mw-htmlform-field-HTMLCheckField .mw-label { height:0; }
/* UNTIL I CAN DETERMINE WHY toolboxend GENERATES AN EMPTY <li> IN THE MENU, I'M HIDING IT */
#p-toolboxend { display:none;}
@ -892,6 +815,7 @@ ul.side-nav label {
background: #517398;
color: #fff;
padding: .25em .5em;
pointer-events: none;
}
body {
background-color: #DCEAEA;
@ -955,7 +879,6 @@ span#nav-main {
.tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 {
font-size: 1.5em;
font-weight: 400;
line-height: 1.8em;
}
section.right-small {
border-left: none;
@ -980,10 +903,29 @@ h4.namespace.label {
overflow: hidden;
}
h2.title {
font-size:1.65em;
padding-bottom: 0em;
margin-top:.5em;
.tab-bar .title {
color: #FFFFFF;
line-height: 2.8125rem;
margin: 0;
font-weight:400;
font-size:1.5rem;
}
h1.title {
font-size: 1.8rem;
padding-bottom: 0em;
margin-top: .5em;
margin-bottom: 0.1rem;
}
section#middle-nav .title a {
text-decoration: none;
}
@media only screen and (min-width: 40.0625em){
h1.title {
font-size: 1.9rem;
}
}
h1, h2, h3, h4, h5, h6 { line-height: 1.4; }
@ -1009,7 +951,6 @@ h2 { font-size: 1.55em; }
h3 { font-size: 1.40em; }
h4 { font-size: 1.24em; }
h5 { font-size: 1.16em; }
h2.title { font-size:1.8em; }
}
/* Preferences Fixes */
@ -1167,6 +1108,7 @@ ul[class*="block-grid"] {
.mw-indicators {
float: right;
font-family: "Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;
line-height: 1.6;
font-size: 0.875em;
position: relative;
@ -1177,4 +1119,77 @@ ul[class*="block-grid"] {
}
.mw-indicator {
display: inline-block;
}
/* Images the MediaWiki way */
/* Images, Thumbs and Captions */
.thumbinner {
border: 1px solid #c8ccd1;
padding: 3px;
background-color: #f8f9fa;
font-size: 94%;
text-align: center;
overflow: hidden;
margin: auto;
max-width: 100%;
}
.thumb.tright, .thumb.left {
max-width: 100%;
}
.thumbcaption {
border: 0;
line-height: 1.4em;
padding: 3px;
font-size: 94%;
text-align: left;
}
.magnify a {
display: block;
text-indent: 15px;
white-space: nowrap;
overflow: hidden;
width: 15px;
height: 11px;
}
.mw-content-ltr .magnify a {
background-image: url(/w/resources/src/mediawiki.skinning/images/magnify-clip-ltr.png);
}
/* Float right and left styles - Make all MW images responsive for mobile when floated */
.floatright, .tright,
table.floatright {
margin: 0 0 .5em .5em;
border: 0;
}
.floatleft,.tleft
table.floatleft {
margin: 0 .5em .5em 0;
border: 0;
}
.tnone {
margin: .5rem 0;
border: 0;
}
.floatnone img {
margin: .5rem 0;
}
/* Kill the float for smaller screens and make them align center. */
@media only screen and (max-width: 640px) {
.floatright,
table.floatright,
.floatleft,
table.floatleft,
.thumb.tleft,
.thumb.tright {
text-align: center;
float: none !important;
margin: .5em auto;
}
}

View File

@ -1,6 +1,6 @@
{
"require-dev": {
"jakub-onderka/php-parallel-lint": "0.9"
"php-parallel-lint/php-parallel-lint": "1.2.0"
},
"scripts": {
"test": [

View File

@ -7,5 +7,6 @@
"skinname-pivot": "Pivot",
"pivot-desc": "A mobile skin which \"Pivots\" seamlessly to any size display.",
"pivot-browsermsg": "may not look as expected in this version of Internet Explorer. We recommend you upgrade to a newer version of Internet Explorer or switch to a browser like Firefox or Chrome.",
"pivot-menutitle": "Menu"
"pivot-menutitle": "Menu",
"pivot-personal-tools": "Personal Tools"
}

View File

@ -7,5 +7,6 @@
"skinname-pivot": "name of skin",
"pivot-desc": "description of skin",
"pivot-browsermsg": "old versions of IE not supported message",
"pivot-menutitle": "menu title"
"pivot-menutitle": "menu title",
"pivot-personal-tools": "logged in title for personal tools"
}

View File

@ -1,6 +1,6 @@
{
"name": "Pivot",
"version": "1.0.5",
"version": "2.3.0",
"author": [
"Tom Hutchison",
"..."
@ -12,6 +12,9 @@
"ValidSkinNames": {
"pivot": "Pivot"
},
"requires": {
"MediaWiki": ">= 1.35.0"
},
"MessagesDirs": {
"Skinpivot": [
"i18n"
@ -26,13 +29,15 @@
"styles": [
"assets/stylesheets/normalize.css",
"assets/stylesheets/font-awesome.css",
"assets/stylesheets/legacy.css",
"assets/stylesheets/foundation.css",
"assets/stylesheets/pivot.css",
"assets/stylesheets/fontawsome.css",
"assets/stylesheets/pivot-print.css"
]
},
"skins.pivot.modernizr": {
"position": "bottom",
"position": "top",
"scripts": [
"assets/scripts/vendor/modernizr.js"
]
@ -40,8 +45,6 @@
"skins.pivot.js": {
"position": "bottom",
"scripts": [
"assets/scripts/vendor/jquery.cookie.js",
"assets/scripts/vendor/fastclick.js",
"assets/scripts/vendor/placeholder.js",
"assets/scripts/foundation/foundation.js",
"assets/scripts/foundation/foundation.topbar.js",