MDL-64506 theme_bootstrapbase: Remove bootstrapbase from core
authorMathew May <mathewm@hotmail.co.nz>
Thu, 28 Feb 2019 04:03:38 +0000 (12:03 +0800)
committerMathew May <mathewm@hotmail.co.nz>
Wed, 3 Apr 2019 11:34:17 +0000 (19:34 +0800)
763 files changed:
.gitattributes
admin/settings/appearance.php
admin/upgrade.txt
blocks/moodleblock.class.php
blocks/tests/behat/behat_blocks.php
course/amd/build/actions.min.js
course/amd/src/actions.js
course/tests/behat/activities_edit_with_block_dock.feature [deleted file]
install/css.php
lang/en/admin.php
lib/pagelib.php
lib/tests/behat/behat_deprecated.php
theme/boost/tests/behat/blacklist.json
theme/bootstrapbase/README.txt [deleted file]
theme/bootstrapbase/amd/build/bootstrap.min.js [deleted file]
theme/bootstrapbase/amd/src/bootstrap.js [deleted file]
theme/bootstrapbase/classes/privacy/provider.php [deleted file]
theme/bootstrapbase/config.php [deleted file]
theme/bootstrapbase/javascript/dock.js [deleted file]
theme/bootstrapbase/javascript/html5shiv.js [deleted file]
theme/bootstrapbase/javascript/moodlebootstrap.js [deleted file]
theme/bootstrapbase/lang/en/theme_bootstrapbase.php [deleted file]
theme/bootstrapbase/layout/columns1.php [deleted file]
theme/bootstrapbase/layout/columns2.php [deleted file]
theme/bootstrapbase/layout/columns3.php [deleted file]
theme/bootstrapbase/layout/embedded.php [deleted file]
theme/bootstrapbase/layout/maintenance.php [deleted file]
theme/bootstrapbase/layout/popup.php [deleted file]
theme/bootstrapbase/layout/secure.php [deleted file]
theme/bootstrapbase/less/README [deleted file]
theme/bootstrapbase/less/bootstrap/accordion.less [deleted file]
theme/bootstrapbase/less/bootstrap/alerts.less [deleted file]
theme/bootstrapbase/less/bootstrap/bootstrap.less [deleted file]
theme/bootstrapbase/less/bootstrap/breadcrumbs.less [deleted file]
theme/bootstrapbase/less/bootstrap/button-groups.less [deleted file]
theme/bootstrapbase/less/bootstrap/buttons.less [deleted file]
theme/bootstrapbase/less/bootstrap/carousel.less [deleted file]
theme/bootstrapbase/less/bootstrap/close.less [deleted file]
theme/bootstrapbase/less/bootstrap/code.less [deleted file]
theme/bootstrapbase/less/bootstrap/component-animations.less [deleted file]
theme/bootstrapbase/less/bootstrap/dropdowns.less [deleted file]
theme/bootstrapbase/less/bootstrap/forms.less [deleted file]
theme/bootstrapbase/less/bootstrap/grid.less [deleted file]
theme/bootstrapbase/less/bootstrap/hero-unit.less [deleted file]
theme/bootstrapbase/less/bootstrap/labels-badges.less [deleted file]
theme/bootstrapbase/less/bootstrap/layouts.less [deleted file]
theme/bootstrapbase/less/bootstrap/media.less [deleted file]
theme/bootstrapbase/less/bootstrap/mixins.less [deleted file]
theme/bootstrapbase/less/bootstrap/modals.less [deleted file]
theme/bootstrapbase/less/bootstrap/navbar.less [deleted file]
theme/bootstrapbase/less/bootstrap/navs.less [deleted file]
theme/bootstrapbase/less/bootstrap/pager.less [deleted file]
theme/bootstrapbase/less/bootstrap/pagination.less [deleted file]
theme/bootstrapbase/less/bootstrap/popovers.less [deleted file]
theme/bootstrapbase/less/bootstrap/progress-bars.less [deleted file]
theme/bootstrapbase/less/bootstrap/reset.less [deleted file]
theme/bootstrapbase/less/bootstrap/responsive-1200px-min.less [deleted file]
theme/bootstrapbase/less/bootstrap/responsive-767px-max.less [deleted file]
theme/bootstrapbase/less/bootstrap/responsive-768px-979px.less [deleted file]
theme/bootstrapbase/less/bootstrap/responsive-navbar.less [deleted file]
theme/bootstrapbase/less/bootstrap/responsive-utilities.less [deleted file]
theme/bootstrapbase/less/bootstrap/responsive.less [deleted file]
theme/bootstrapbase/less/bootstrap/scaffolding.less [deleted file]
theme/bootstrapbase/less/bootstrap/sprites.less [deleted file]
theme/bootstrapbase/less/bootstrap/tables.less [deleted file]
theme/bootstrapbase/less/bootstrap/thumbnails.less [deleted file]
theme/bootstrapbase/less/bootstrap/tooltip.less [deleted file]
theme/bootstrapbase/less/bootstrap/type.less [deleted file]
theme/bootstrapbase/less/bootstrap/utilities.less [deleted file]
theme/bootstrapbase/less/bootstrap/variables.less [deleted file]
theme/bootstrapbase/less/bootstrap/wells.less [deleted file]
theme/bootstrapbase/less/editor.less [deleted file]
theme/bootstrapbase/less/fontawesome/animated.less [deleted file]
theme/bootstrapbase/less/fontawesome/bordered-pulled.less [deleted file]
theme/bootstrapbase/less/fontawesome/core.less [deleted file]
theme/bootstrapbase/less/fontawesome/fixed-width.less [deleted file]
theme/bootstrapbase/less/fontawesome/font-awesome.less [deleted file]
theme/bootstrapbase/less/fontawesome/icons.less [deleted file]
theme/bootstrapbase/less/fontawesome/larger.less [deleted file]
theme/bootstrapbase/less/fontawesome/list.less [deleted file]
theme/bootstrapbase/less/fontawesome/mixins.less [deleted file]
theme/bootstrapbase/less/fontawesome/moodle-path.less [deleted file]
theme/bootstrapbase/less/fontawesome/path.less [deleted file]
theme/bootstrapbase/less/fontawesome/readme_moodle.txt [deleted file]
theme/bootstrapbase/less/fontawesome/rotated-flipped.less [deleted file]
theme/bootstrapbase/less/fontawesome/screen-reader.less [deleted file]
theme/bootstrapbase/less/fontawesome/stacked.less [deleted file]
theme/bootstrapbase/less/fontawesome/variables.less [deleted file]
theme/bootstrapbase/less/moodle.less [deleted file]
theme/bootstrapbase/less/moodle/admin.less [deleted file]
theme/bootstrapbase/less/moodle/backup-restore.less [deleted file]
theme/bootstrapbase/less/moodle/blocks.less [deleted file]
theme/bootstrapbase/less/moodle/bootstrapoverride.less [deleted file]
theme/bootstrapbase/less/moodle/bs4-compat.less [deleted file]
theme/bootstrapbase/less/moodle/buttons.less [deleted file]
theme/bootstrapbase/less/moodle/calendar.less [deleted file]
theme/bootstrapbase/less/moodle/chat.less [deleted file]
theme/bootstrapbase/less/moodle/core.less [deleted file]
theme/bootstrapbase/less/moodle/course.less [deleted file]
theme/bootstrapbase/less/moodle/debug.less [deleted file]
theme/bootstrapbase/less/moodle/dock.less [deleted file]
theme/bootstrapbase/less/moodle/editor.less [deleted file]
theme/bootstrapbase/less/moodle/expendable.less [deleted file]
theme/bootstrapbase/less/moodle/filemanager.less [deleted file]
theme/bootstrapbase/less/moodle/forms.less [deleted file]
theme/bootstrapbase/less/moodle/grade.less [deleted file]
theme/bootstrapbase/less/moodle/message.less [deleted file]
theme/bootstrapbase/less/moodle/modal.less [deleted file]
theme/bootstrapbase/less/moodle/modules.less [deleted file]
theme/bootstrapbase/less/moodle/popover_region.less [deleted file]
theme/bootstrapbase/less/moodle/question.less [deleted file]
theme/bootstrapbase/less/moodle/reports.less [deleted file]
theme/bootstrapbase/less/moodle/responsive.less [deleted file]
theme/bootstrapbase/less/moodle/search.less [deleted file]
theme/bootstrapbase/less/moodle/tables.less [deleted file]
theme/bootstrapbase/less/moodle/templates.less [deleted file]
theme/bootstrapbase/less/moodle/tool_usertours.less [deleted file]
theme/bootstrapbase/less/moodle/undo.less [deleted file]
theme/bootstrapbase/less/moodle/user.less [deleted file]
theme/bootstrapbase/pix/f/FileTypesIcons-LICENSE.txt [deleted file]
theme/bootstrapbase/pix/f/Oxygen-LICENSE.txt [deleted file]
theme/bootstrapbase/pix/f/archive-128.png [deleted file]
theme/bootstrapbase/pix/f/archive-24.png [deleted file]
theme/bootstrapbase/pix/f/archive-256.png [deleted file]
theme/bootstrapbase/pix/f/archive-32.png [deleted file]
theme/bootstrapbase/pix/f/archive-48.png [deleted file]
theme/bootstrapbase/pix/f/archive-64.png [deleted file]
theme/bootstrapbase/pix/f/archive-72.png [deleted file]
theme/bootstrapbase/pix/f/archive-80.png [deleted file]
theme/bootstrapbase/pix/f/archive-96.png [deleted file]
theme/bootstrapbase/pix/f/archive.png [deleted file]
theme/bootstrapbase/pix/f/audio-128.png [deleted file]
theme/bootstrapbase/pix/f/audio-24.png [deleted file]
theme/bootstrapbase/pix/f/audio-256.png [deleted file]
theme/bootstrapbase/pix/f/audio-32.png [deleted file]
theme/bootstrapbase/pix/f/audio-48.png [deleted file]
theme/bootstrapbase/pix/f/audio-64.png [deleted file]
theme/bootstrapbase/pix/f/audio-72.png [deleted file]
theme/bootstrapbase/pix/f/audio-80.png [deleted file]
theme/bootstrapbase/pix/f/audio-96.png [deleted file]
theme/bootstrapbase/pix/f/audio.png [deleted file]
theme/bootstrapbase/pix/f/avi-128.png [deleted file]
theme/bootstrapbase/pix/f/avi-24.png [deleted file]
theme/bootstrapbase/pix/f/avi-256.png [deleted file]
theme/bootstrapbase/pix/f/avi-32.png [deleted file]
theme/bootstrapbase/pix/f/avi-48.png [deleted file]
theme/bootstrapbase/pix/f/avi-64.png [deleted file]
theme/bootstrapbase/pix/f/avi-72.png [deleted file]
theme/bootstrapbase/pix/f/avi-80.png [deleted file]
theme/bootstrapbase/pix/f/avi-96.png [deleted file]
theme/bootstrapbase/pix/f/avi.png [deleted file]
theme/bootstrapbase/pix/f/base-128.png [deleted file]
theme/bootstrapbase/pix/f/base-24.png [deleted file]
theme/bootstrapbase/pix/f/base-32.png [deleted file]
theme/bootstrapbase/pix/f/base-48.png [deleted file]
theme/bootstrapbase/pix/f/base-64.png [deleted file]
theme/bootstrapbase/pix/f/base-72.png [deleted file]
theme/bootstrapbase/pix/f/base-80.png [deleted file]
theme/bootstrapbase/pix/f/base-96.png [deleted file]
theme/bootstrapbase/pix/f/base.png [deleted file]
theme/bootstrapbase/pix/f/bmp-128.png [deleted file]
theme/bootstrapbase/pix/f/bmp-24.png [deleted file]
theme/bootstrapbase/pix/f/bmp-256.png [deleted file]
theme/bootstrapbase/pix/f/bmp-32.png [deleted file]
theme/bootstrapbase/pix/f/bmp-48.png [deleted file]
theme/bootstrapbase/pix/f/bmp-64.png [deleted file]
theme/bootstrapbase/pix/f/bmp-72.png [deleted file]
theme/bootstrapbase/pix/f/bmp-80.png [deleted file]
theme/bootstrapbase/pix/f/bmp-96.png [deleted file]
theme/bootstrapbase/pix/f/bmp.png [deleted file]
theme/bootstrapbase/pix/f/calc-128.png [deleted file]
theme/bootstrapbase/pix/f/calc-24.png [deleted file]
theme/bootstrapbase/pix/f/calc-32.png [deleted file]
theme/bootstrapbase/pix/f/calc-48.png [deleted file]
theme/bootstrapbase/pix/f/calc-64.png [deleted file]
theme/bootstrapbase/pix/f/calc-72.png [deleted file]
theme/bootstrapbase/pix/f/calc-80.png [deleted file]
theme/bootstrapbase/pix/f/calc-96.png [deleted file]
theme/bootstrapbase/pix/f/calc.png [deleted file]
theme/bootstrapbase/pix/f/chart-128.png [deleted file]
theme/bootstrapbase/pix/f/chart-24.png [deleted file]
theme/bootstrapbase/pix/f/chart-32.png [deleted file]
theme/bootstrapbase/pix/f/chart-48.png [deleted file]
theme/bootstrapbase/pix/f/chart-64.png [deleted file]
theme/bootstrapbase/pix/f/chart-72.png [deleted file]
theme/bootstrapbase/pix/f/chart-80.png [deleted file]
theme/bootstrapbase/pix/f/chart-96.png [deleted file]
theme/bootstrapbase/pix/f/chart.png [deleted file]
theme/bootstrapbase/pix/f/database-128.png [deleted file]
theme/bootstrapbase/pix/f/database-24.png [deleted file]
theme/bootstrapbase/pix/f/database-256.png [deleted file]
theme/bootstrapbase/pix/f/database-32.png [deleted file]
theme/bootstrapbase/pix/f/database-48.png [deleted file]
theme/bootstrapbase/pix/f/database-64.png [deleted file]
theme/bootstrapbase/pix/f/database-72.png [deleted file]
theme/bootstrapbase/pix/f/database-80.png [deleted file]
theme/bootstrapbase/pix/f/database-96.png [deleted file]
theme/bootstrapbase/pix/f/database.png [deleted file]
theme/bootstrapbase/pix/f/dmg-32.png [deleted file]
theme/bootstrapbase/pix/f/dmg.gif [deleted file]
theme/bootstrapbase/pix/f/document-128.png [deleted file]
theme/bootstrapbase/pix/f/document-24.png [deleted file]
theme/bootstrapbase/pix/f/document-256.png [deleted file]
theme/bootstrapbase/pix/f/document-32.png [deleted file]
theme/bootstrapbase/pix/f/document-48.png [deleted file]
theme/bootstrapbase/pix/f/document-64.png [deleted file]
theme/bootstrapbase/pix/f/document-72.png [deleted file]
theme/bootstrapbase/pix/f/document-80.png [deleted file]
theme/bootstrapbase/pix/f/document-96.png [deleted file]
theme/bootstrapbase/pix/f/document.png [deleted file]
theme/bootstrapbase/pix/f/draw-128.png [deleted file]
theme/bootstrapbase/pix/f/draw-24.png [deleted file]
theme/bootstrapbase/pix/f/draw-32.png [deleted file]
theme/bootstrapbase/pix/f/draw-48.png [deleted file]
theme/bootstrapbase/pix/f/draw-64.png [deleted file]
theme/bootstrapbase/pix/f/draw-72.png [deleted file]
theme/bootstrapbase/pix/f/draw-80.png [deleted file]
theme/bootstrapbase/pix/f/draw-96.png [deleted file]
theme/bootstrapbase/pix/f/draw.png [deleted file]
theme/bootstrapbase/pix/f/edit-32.png [deleted file]
theme/bootstrapbase/pix/f/edit.gif [deleted file]
theme/bootstrapbase/pix/f/env.gif [deleted file]
theme/bootstrapbase/pix/f/eps-128.png [deleted file]
theme/bootstrapbase/pix/f/eps-24.png [deleted file]
theme/bootstrapbase/pix/f/eps-256.png [deleted file]
theme/bootstrapbase/pix/f/eps-32.png [deleted file]
theme/bootstrapbase/pix/f/eps-48.png [deleted file]
theme/bootstrapbase/pix/f/eps-64.png [deleted file]
theme/bootstrapbase/pix/f/eps-72.png [deleted file]
theme/bootstrapbase/pix/f/eps-80.png [deleted file]
theme/bootstrapbase/pix/f/eps-96.png [deleted file]
theme/bootstrapbase/pix/f/eps.png [deleted file]
theme/bootstrapbase/pix/f/epub-128.png [deleted file]
theme/bootstrapbase/pix/f/epub-24.png [deleted file]
theme/bootstrapbase/pix/f/epub-256.png [deleted file]
theme/bootstrapbase/pix/f/epub-32.png [deleted file]
theme/bootstrapbase/pix/f/epub-48.png [deleted file]
theme/bootstrapbase/pix/f/epub-64.png [deleted file]
theme/bootstrapbase/pix/f/epub-72.png [deleted file]
theme/bootstrapbase/pix/f/epub-80.png [deleted file]
theme/bootstrapbase/pix/f/epub-96.png [deleted file]
theme/bootstrapbase/pix/f/epub.png [deleted file]
theme/bootstrapbase/pix/f/explore-32.png [deleted file]
theme/bootstrapbase/pix/f/explore.gif [deleted file]
theme/bootstrapbase/pix/f/flash-128.png [deleted file]
theme/bootstrapbase/pix/f/flash-24.png [deleted file]
theme/bootstrapbase/pix/f/flash-256.png [deleted file]
theme/bootstrapbase/pix/f/flash-32.png [deleted file]
theme/bootstrapbase/pix/f/flash-48.png [deleted file]
theme/bootstrapbase/pix/f/flash-64.png [deleted file]
theme/bootstrapbase/pix/f/flash-72.png [deleted file]
theme/bootstrapbase/pix/f/flash-80.png [deleted file]
theme/bootstrapbase/pix/f/flash-96.png [deleted file]
theme/bootstrapbase/pix/f/flash.png [deleted file]
theme/bootstrapbase/pix/f/folder-128.png [deleted file]
theme/bootstrapbase/pix/f/folder-24.png [deleted file]
theme/bootstrapbase/pix/f/folder-32.png [deleted file]
theme/bootstrapbase/pix/f/folder-48.png [deleted file]
theme/bootstrapbase/pix/f/folder-64.png [deleted file]
theme/bootstrapbase/pix/f/folder-open-128.png [deleted file]
theme/bootstrapbase/pix/f/folder-open-24.png [deleted file]
theme/bootstrapbase/pix/f/folder-open-32.png [deleted file]
theme/bootstrapbase/pix/f/folder-open-48.png [deleted file]
theme/bootstrapbase/pix/f/folder-open-64.png [deleted file]
theme/bootstrapbase/pix/f/folder-open.png [deleted file]
theme/bootstrapbase/pix/f/folder.png [deleted file]
theme/bootstrapbase/pix/f/gif-128.png [deleted file]
theme/bootstrapbase/pix/f/gif-24.png [deleted file]
theme/bootstrapbase/pix/f/gif-256.png [deleted file]
theme/bootstrapbase/pix/f/gif-32.png [deleted file]
theme/bootstrapbase/pix/f/gif-48.png [deleted file]
theme/bootstrapbase/pix/f/gif-64.png [deleted file]
theme/bootstrapbase/pix/f/gif-72.png [deleted file]
theme/bootstrapbase/pix/f/gif-80.png [deleted file]
theme/bootstrapbase/pix/f/gif-96.png [deleted file]
theme/bootstrapbase/pix/f/gif.png [deleted file]
theme/bootstrapbase/pix/f/help-32.png [deleted file]
theme/bootstrapbase/pix/f/help.gif [deleted file]
theme/bootstrapbase/pix/f/html-128.png [deleted file]
theme/bootstrapbase/pix/f/html-24.png [deleted file]
theme/bootstrapbase/pix/f/html-256.png [deleted file]
theme/bootstrapbase/pix/f/html-32.png [deleted file]
theme/bootstrapbase/pix/f/html-48.png [deleted file]
theme/bootstrapbase/pix/f/html-64.png [deleted file]
theme/bootstrapbase/pix/f/html-72.png [deleted file]
theme/bootstrapbase/pix/f/html-80.png [deleted file]
theme/bootstrapbase/pix/f/html-96.png [deleted file]
theme/bootstrapbase/pix/f/html.gif [deleted file]
theme/bootstrapbase/pix/f/image-128.png [deleted file]
theme/bootstrapbase/pix/f/image-24.png [deleted file]
theme/bootstrapbase/pix/f/image-256.png [deleted file]
theme/bootstrapbase/pix/f/image-32.png [deleted file]
theme/bootstrapbase/pix/f/image-48.png [deleted file]
theme/bootstrapbase/pix/f/image-64.png [deleted file]
theme/bootstrapbase/pix/f/image-72.png [deleted file]
theme/bootstrapbase/pix/f/image-80.png [deleted file]
theme/bootstrapbase/pix/f/image-96.png [deleted file]
theme/bootstrapbase/pix/f/image.png [deleted file]
theme/bootstrapbase/pix/f/impress-128.png [deleted file]
theme/bootstrapbase/pix/f/impress-24.png [deleted file]
theme/bootstrapbase/pix/f/impress-32.png [deleted file]
theme/bootstrapbase/pix/f/impress-48.png [deleted file]
theme/bootstrapbase/pix/f/impress-64.png [deleted file]
theme/bootstrapbase/pix/f/impress-72.png [deleted file]
theme/bootstrapbase/pix/f/impress-80.png [deleted file]
theme/bootstrapbase/pix/f/impress-96.png [deleted file]
theme/bootstrapbase/pix/f/impress.png [deleted file]
theme/bootstrapbase/pix/f/isf-128.png [deleted file]
theme/bootstrapbase/pix/f/isf-24.png [deleted file]
theme/bootstrapbase/pix/f/isf-256.png [deleted file]
theme/bootstrapbase/pix/f/isf-32.png [deleted file]
theme/bootstrapbase/pix/f/isf-48.png [deleted file]
theme/bootstrapbase/pix/f/isf-64.png [deleted file]
theme/bootstrapbase/pix/f/isf-72.png [deleted file]
theme/bootstrapbase/pix/f/isf-80.png [deleted file]
theme/bootstrapbase/pix/f/isf-96.png [deleted file]
theme/bootstrapbase/pix/f/isf.png [deleted file]
theme/bootstrapbase/pix/f/jpeg-128.png [deleted file]
theme/bootstrapbase/pix/f/jpeg-24.png [deleted file]
theme/bootstrapbase/pix/f/jpeg-256.png [deleted file]
theme/bootstrapbase/pix/f/jpeg-32.png [deleted file]
theme/bootstrapbase/pix/f/jpeg-48.png [deleted file]
theme/bootstrapbase/pix/f/jpeg-64.png [deleted file]
theme/bootstrapbase/pix/f/jpeg-72.png [deleted file]
theme/bootstrapbase/pix/f/jpeg-80.png [deleted file]
theme/bootstrapbase/pix/f/jpeg-96.png [deleted file]
theme/bootstrapbase/pix/f/jpeg.png [deleted file]
theme/bootstrapbase/pix/f/markup-128.png [deleted file]
theme/bootstrapbase/pix/f/markup-24.png [deleted file]
theme/bootstrapbase/pix/f/markup-256.png [deleted file]
theme/bootstrapbase/pix/f/markup-32.png [deleted file]
theme/bootstrapbase/pix/f/markup-48.png [deleted file]
theme/bootstrapbase/pix/f/markup-64.png [deleted file]
theme/bootstrapbase/pix/f/markup-72.png [deleted file]
theme/bootstrapbase/pix/f/markup-80.png [deleted file]
theme/bootstrapbase/pix/f/markup-96.png [deleted file]
theme/bootstrapbase/pix/f/markup.png [deleted file]
theme/bootstrapbase/pix/f/math-128.png [deleted file]
theme/bootstrapbase/pix/f/math-24.png [deleted file]
theme/bootstrapbase/pix/f/math-32.png [deleted file]
theme/bootstrapbase/pix/f/math-48.png [deleted file]
theme/bootstrapbase/pix/f/math-64.png [deleted file]
theme/bootstrapbase/pix/f/math-72.png [deleted file]
theme/bootstrapbase/pix/f/math-80.png [deleted file]
theme/bootstrapbase/pix/f/math-96.png [deleted file]
theme/bootstrapbase/pix/f/math.png [deleted file]
theme/bootstrapbase/pix/f/moodle-128.png [deleted file]
theme/bootstrapbase/pix/f/moodle-24.png [deleted file]
theme/bootstrapbase/pix/f/moodle-256.png [deleted file]
theme/bootstrapbase/pix/f/moodle-32.png [deleted file]
theme/bootstrapbase/pix/f/moodle-48.png [deleted file]
theme/bootstrapbase/pix/f/moodle-64.png [deleted file]
theme/bootstrapbase/pix/f/moodle-72.png [deleted file]
theme/bootstrapbase/pix/f/moodle-80.png [deleted file]
theme/bootstrapbase/pix/f/moodle-96.png [deleted file]
theme/bootstrapbase/pix/f/moodle.png [deleted file]
theme/bootstrapbase/pix/f/mov.png [deleted file]
theme/bootstrapbase/pix/f/move.gif [deleted file]
theme/bootstrapbase/pix/f/mp3-128.png [deleted file]
theme/bootstrapbase/pix/f/mp3-24.png [deleted file]
theme/bootstrapbase/pix/f/mp3-256.png [deleted file]
theme/bootstrapbase/pix/f/mp3-32.png [deleted file]
theme/bootstrapbase/pix/f/mp3-48.png [deleted file]
theme/bootstrapbase/pix/f/mp3-64.png [deleted file]
theme/bootstrapbase/pix/f/mp3-72.png [deleted file]
theme/bootstrapbase/pix/f/mp3-80.png [deleted file]
theme/bootstrapbase/pix/f/mp3-96.png [deleted file]
theme/bootstrapbase/pix/f/mp3.png [deleted file]
theme/bootstrapbase/pix/f/mpeg-128.png [deleted file]
theme/bootstrapbase/pix/f/mpeg-24.png [deleted file]
theme/bootstrapbase/pix/f/mpeg-256.png [deleted file]
theme/bootstrapbase/pix/f/mpeg-32.png [deleted file]
theme/bootstrapbase/pix/f/mpeg-48.png [deleted file]
theme/bootstrapbase/pix/f/mpeg-64.png [deleted file]
theme/bootstrapbase/pix/f/mpeg-72.png [deleted file]
theme/bootstrapbase/pix/f/mpeg-80.png [deleted file]
theme/bootstrapbase/pix/f/mpeg-96.png [deleted file]
theme/bootstrapbase/pix/f/mpeg.png [deleted file]
theme/bootstrapbase/pix/f/oth-128.png [deleted file]
theme/bootstrapbase/pix/f/oth-24.png [deleted file]
theme/bootstrapbase/pix/f/oth-32.png [deleted file]
theme/bootstrapbase/pix/f/oth-48.png [deleted file]
theme/bootstrapbase/pix/f/oth-64.png [deleted file]
theme/bootstrapbase/pix/f/oth-72.png [deleted file]
theme/bootstrapbase/pix/f/oth-80.png [deleted file]
theme/bootstrapbase/pix/f/oth-96.png [deleted file]
theme/bootstrapbase/pix/f/oth.png [deleted file]
theme/bootstrapbase/pix/f/parent-32.png [deleted file]
theme/bootstrapbase/pix/f/parent.gif [deleted file]
theme/bootstrapbase/pix/f/pdf-128.png [deleted file]
theme/bootstrapbase/pix/f/pdf-24.png [deleted file]
theme/bootstrapbase/pix/f/pdf-256.png [deleted file]
theme/bootstrapbase/pix/f/pdf-32.png [deleted file]
theme/bootstrapbase/pix/f/pdf-48.png [deleted file]
theme/bootstrapbase/pix/f/pdf-64.png [deleted file]
theme/bootstrapbase/pix/f/pdf-72.png [deleted file]
theme/bootstrapbase/pix/f/pdf-80.png [deleted file]
theme/bootstrapbase/pix/f/pdf-96.png [deleted file]
theme/bootstrapbase/pix/f/pdf.png [deleted file]
theme/bootstrapbase/pix/f/png-128.png [deleted file]
theme/bootstrapbase/pix/f/png-24.png [deleted file]
theme/bootstrapbase/pix/f/png-256.png [deleted file]
theme/bootstrapbase/pix/f/png-32.png [deleted file]
theme/bootstrapbase/pix/f/png-48.png [deleted file]
theme/bootstrapbase/pix/f/png-64.png [deleted file]
theme/bootstrapbase/pix/f/png-72.png [deleted file]
theme/bootstrapbase/pix/f/png-80.png [deleted file]
theme/bootstrapbase/pix/f/png-96.png [deleted file]
theme/bootstrapbase/pix/f/png.png [deleted file]
theme/bootstrapbase/pix/f/powerpoint-128.png [deleted file]
theme/bootstrapbase/pix/f/powerpoint-24.png [deleted file]
theme/bootstrapbase/pix/f/powerpoint-256.png [deleted file]
theme/bootstrapbase/pix/f/powerpoint-32.png [deleted file]
theme/bootstrapbase/pix/f/powerpoint-48.png [deleted file]
theme/bootstrapbase/pix/f/powerpoint-64.png [deleted file]
theme/bootstrapbase/pix/f/powerpoint-72.png [deleted file]
theme/bootstrapbase/pix/f/powerpoint-80.png [deleted file]
theme/bootstrapbase/pix/f/powerpoint-96.png [deleted file]
theme/bootstrapbase/pix/f/powerpoint.png [deleted file]
theme/bootstrapbase/pix/f/psd-128.png [deleted file]
theme/bootstrapbase/pix/f/psd-24.png [deleted file]
theme/bootstrapbase/pix/f/psd-256.png [deleted file]
theme/bootstrapbase/pix/f/psd-32.png [deleted file]
theme/bootstrapbase/pix/f/psd-48.png [deleted file]
theme/bootstrapbase/pix/f/psd-64.png [deleted file]
theme/bootstrapbase/pix/f/psd-72.png [deleted file]
theme/bootstrapbase/pix/f/psd-80.png [deleted file]
theme/bootstrapbase/pix/f/psd-96.png [deleted file]
theme/bootstrapbase/pix/f/psd.png [deleted file]
theme/bootstrapbase/pix/f/publisher-128.png [deleted file]
theme/bootstrapbase/pix/f/publisher-24.png [deleted file]
theme/bootstrapbase/pix/f/publisher-256.png [deleted file]
theme/bootstrapbase/pix/f/publisher-32.png [deleted file]
theme/bootstrapbase/pix/f/publisher-48.png [deleted file]
theme/bootstrapbase/pix/f/publisher-64.png [deleted file]
theme/bootstrapbase/pix/f/publisher-72.png [deleted file]
theme/bootstrapbase/pix/f/publisher-80.png [deleted file]
theme/bootstrapbase/pix/f/publisher-96.png [deleted file]
theme/bootstrapbase/pix/f/publisher.png [deleted file]
theme/bootstrapbase/pix/f/quicktime-128.png [deleted file]
theme/bootstrapbase/pix/f/quicktime-24.png [deleted file]
theme/bootstrapbase/pix/f/quicktime-256.png [deleted file]
theme/bootstrapbase/pix/f/quicktime-32.png [deleted file]
theme/bootstrapbase/pix/f/quicktime-48.png [deleted file]
theme/bootstrapbase/pix/f/quicktime-64.png [deleted file]
theme/bootstrapbase/pix/f/quicktime-72.png [deleted file]
theme/bootstrapbase/pix/f/quicktime-80.png [deleted file]
theme/bootstrapbase/pix/f/quicktime-96.png [deleted file]
theme/bootstrapbase/pix/f/quicktime.png [deleted file]
theme/bootstrapbase/pix/f/sourcecode-128.png [deleted file]
theme/bootstrapbase/pix/f/sourcecode-24.png [deleted file]
theme/bootstrapbase/pix/f/sourcecode-256.png [deleted file]
theme/bootstrapbase/pix/f/sourcecode-32.png [deleted file]
theme/bootstrapbase/pix/f/sourcecode-48.png [deleted file]
theme/bootstrapbase/pix/f/sourcecode-64.png [deleted file]
theme/bootstrapbase/pix/f/sourcecode-72.png [deleted file]
theme/bootstrapbase/pix/f/sourcecode-80.png [deleted file]
theme/bootstrapbase/pix/f/sourcecode-96.png [deleted file]
theme/bootstrapbase/pix/f/sourcecode.png [deleted file]
theme/bootstrapbase/pix/f/spreadsheet-128.png [deleted file]
theme/bootstrapbase/pix/f/spreadsheet-24.png [deleted file]
theme/bootstrapbase/pix/f/spreadsheet-256.png [deleted file]
theme/bootstrapbase/pix/f/spreadsheet-32.png [deleted file]
theme/bootstrapbase/pix/f/spreadsheet-48.png [deleted file]
theme/bootstrapbase/pix/f/spreadsheet-64.png [deleted file]
theme/bootstrapbase/pix/f/spreadsheet-72.png [deleted file]
theme/bootstrapbase/pix/f/spreadsheet-80.png [deleted file]
theme/bootstrapbase/pix/f/spreadsheet-96.png [deleted file]
theme/bootstrapbase/pix/f/spreadsheet.png [deleted file]
theme/bootstrapbase/pix/f/text-128.png [deleted file]
theme/bootstrapbase/pix/f/text-24.png [deleted file]
theme/bootstrapbase/pix/f/text-256.png [deleted file]
theme/bootstrapbase/pix/f/text-32.png [deleted file]
theme/bootstrapbase/pix/f/text-48.png [deleted file]
theme/bootstrapbase/pix/f/text-64.png [deleted file]
theme/bootstrapbase/pix/f/text-72.png [deleted file]
theme/bootstrapbase/pix/f/text-80.png [deleted file]
theme/bootstrapbase/pix/f/text-96.png [deleted file]
theme/bootstrapbase/pix/f/text.png [deleted file]
theme/bootstrapbase/pix/f/tiff-128.png [deleted file]
theme/bootstrapbase/pix/f/tiff-24.png [deleted file]
theme/bootstrapbase/pix/f/tiff-256.png [deleted file]
theme/bootstrapbase/pix/f/tiff-32.png [deleted file]
theme/bootstrapbase/pix/f/tiff-48.png [deleted file]
theme/bootstrapbase/pix/f/tiff-64.png [deleted file]
theme/bootstrapbase/pix/f/tiff-72.png [deleted file]
theme/bootstrapbase/pix/f/tiff-80.png [deleted file]
theme/bootstrapbase/pix/f/tiff-96.png [deleted file]
theme/bootstrapbase/pix/f/tiff.png [deleted file]
theme/bootstrapbase/pix/f/unknown-128.png [deleted file]
theme/bootstrapbase/pix/f/unknown-24.png [deleted file]
theme/bootstrapbase/pix/f/unknown-256.png [deleted file]
theme/bootstrapbase/pix/f/unknown-32.png [deleted file]
theme/bootstrapbase/pix/f/unknown-48.png [deleted file]
theme/bootstrapbase/pix/f/unknown-64.png [deleted file]
theme/bootstrapbase/pix/f/unknown-72.png [deleted file]
theme/bootstrapbase/pix/f/unknown-80.png [deleted file]
theme/bootstrapbase/pix/f/unknown-96.png [deleted file]
theme/bootstrapbase/pix/f/unknown.png [deleted file]
theme/bootstrapbase/pix/f/video-128.png [deleted file]
theme/bootstrapbase/pix/f/video-24.png [deleted file]
theme/bootstrapbase/pix/f/video-256.png [deleted file]
theme/bootstrapbase/pix/f/video-32.png [deleted file]
theme/bootstrapbase/pix/f/video-48.png [deleted file]
theme/bootstrapbase/pix/f/video-64.png [deleted file]
theme/bootstrapbase/pix/f/video-72.png [deleted file]
theme/bootstrapbase/pix/f/video-80.png [deleted file]
theme/bootstrapbase/pix/f/video-96.png [deleted file]
theme/bootstrapbase/pix/f/video.png [deleted file]
theme/bootstrapbase/pix/f/wav-128.png [deleted file]
theme/bootstrapbase/pix/f/wav-24.png [deleted file]
theme/bootstrapbase/pix/f/wav-256.png [deleted file]
theme/bootstrapbase/pix/f/wav-32.png [deleted file]
theme/bootstrapbase/pix/f/wav-48.png [deleted file]
theme/bootstrapbase/pix/f/wav-64.png [deleted file]
theme/bootstrapbase/pix/f/wav-72.png [deleted file]
theme/bootstrapbase/pix/f/wav-80.png [deleted file]
theme/bootstrapbase/pix/f/wav-96.png [deleted file]
theme/bootstrapbase/pix/f/wav.png [deleted file]
theme/bootstrapbase/pix/f/wmv-128.png [deleted file]
theme/bootstrapbase/pix/f/wmv-24.png [deleted file]
theme/bootstrapbase/pix/f/wmv-256.png [deleted file]
theme/bootstrapbase/pix/f/wmv-32.png [deleted file]
theme/bootstrapbase/pix/f/wmv-48.png [deleted file]
theme/bootstrapbase/pix/f/wmv-64.png [deleted file]
theme/bootstrapbase/pix/f/wmv-72.png [deleted file]
theme/bootstrapbase/pix/f/wmv-80.png [deleted file]
theme/bootstrapbase/pix/f/wmv-96.png [deleted file]
theme/bootstrapbase/pix/f/wmv.png [deleted file]
theme/bootstrapbase/pix/f/writer-128.png [deleted file]
theme/bootstrapbase/pix/f/writer-24.png [deleted file]
theme/bootstrapbase/pix/f/writer-32.png [deleted file]
theme/bootstrapbase/pix/f/writer-48.png [deleted file]
theme/bootstrapbase/pix/f/writer-64.png [deleted file]
theme/bootstrapbase/pix/f/writer-72.png [deleted file]
theme/bootstrapbase/pix/f/writer-80.png [deleted file]
theme/bootstrapbase/pix/f/writer-96.png [deleted file]
theme/bootstrapbase/pix/f/writer.png [deleted file]
theme/bootstrapbase/pix/favicon.ico [deleted file]
theme/bootstrapbase/pix/fp/add_file.png [deleted file]
theme/bootstrapbase/pix/fp/add_file.svg [deleted file]
theme/bootstrapbase/pix/fp/alias.png [deleted file]
theme/bootstrapbase/pix/fp/alias_sm.png [deleted file]
theme/bootstrapbase/pix/fp/check.png [deleted file]
theme/bootstrapbase/pix/fp/create_folder.png [deleted file]
theme/bootstrapbase/pix/fp/create_folder.svg [deleted file]
theme/bootstrapbase/pix/fp/cross.png [deleted file]
theme/bootstrapbase/pix/fp/dnd_arrow.gif [deleted file]
theme/bootstrapbase/pix/fp/download_all.png [deleted file]
theme/bootstrapbase/pix/fp/download_all.svg [deleted file]
theme/bootstrapbase/pix/fp/help.png [deleted file]
theme/bootstrapbase/pix/fp/help.svg [deleted file]
theme/bootstrapbase/pix/fp/link.png [deleted file]
theme/bootstrapbase/pix/fp/link_sm.png [deleted file]
theme/bootstrapbase/pix/fp/logout.png [deleted file]
theme/bootstrapbase/pix/fp/logout.svg [deleted file]
theme/bootstrapbase/pix/fp/path_folder.png [deleted file]
theme/bootstrapbase/pix/fp/path_folder_rtl.png [deleted file]
theme/bootstrapbase/pix/fp/refresh.png [deleted file]
theme/bootstrapbase/pix/fp/refresh.svg [deleted file]
theme/bootstrapbase/pix/fp/search.png [deleted file]
theme/bootstrapbase/pix/fp/search.svg [deleted file]
theme/bootstrapbase/pix/fp/setting.png [deleted file]
theme/bootstrapbase/pix/fp/setting.svg [deleted file]
theme/bootstrapbase/pix/fp/view_icon_active.png [deleted file]
theme/bootstrapbase/pix/fp/view_icon_active.svg [deleted file]
theme/bootstrapbase/pix/fp/view_list_active.png [deleted file]
theme/bootstrapbase/pix/fp/view_list_active.svg [deleted file]
theme/bootstrapbase/pix/fp/view_tree_active.png [deleted file]
theme/bootstrapbase/pix/fp/view_tree_active.svg [deleted file]
theme/bootstrapbase/pix/glyphicons-halflings-white.png [deleted file]
theme/bootstrapbase/pix/glyphicons-halflings.png [deleted file]
theme/bootstrapbase/pix/header.jpg [deleted file]
theme/bootstrapbase/pix/horizontal-menu-submenu-indicator.png [deleted file]
theme/bootstrapbase/pix/mod/quiz/checkmark.png [deleted file]
theme/bootstrapbase/pix/mod/quiz/checkmark.svg [deleted file]
theme/bootstrapbase/pix/mod/quiz/flag-on.png [deleted file]
theme/bootstrapbase/pix/mod/quiz/flag-on.svg [deleted file]
theme/bootstrapbase/pix/mod/quiz/warningtriangle.png [deleted file]
theme/bootstrapbase/pix/mod/quiz/warningtriangle.svg [deleted file]
theme/bootstrapbase/pix/mod/quiz/whitecircle.png [deleted file]
theme/bootstrapbase/pix/mod/quiz/whitecircle.svg [deleted file]
theme/bootstrapbase/pix/screenshot.jpg [deleted file]
theme/bootstrapbase/pix/sprite.png [deleted file]
theme/bootstrapbase/pix/vertical-menu-submenu-indicator.png [deleted file]
theme/bootstrapbase/pix/yui2-treeview-sprite-rtl.gif [deleted file]
theme/bootstrapbase/readme_moodle.txt [deleted file]
theme/bootstrapbase/renderers.php [deleted file]
theme/bootstrapbase/renderers/block_settings_renderer.php [deleted file]
theme/bootstrapbase/renderers/core/course_renderer.php [deleted file]
theme/bootstrapbase/renderers/core/files_renderer.php [deleted file]
theme/bootstrapbase/renderers/core_course/management/renderer.php [deleted file]
theme/bootstrapbase/renderers/core_question/bank_renderer.php [deleted file]
theme/bootstrapbase/renderers/core_renderer.php [deleted file]
theme/bootstrapbase/renderers/gradereport_history_renderer.php [deleted file]
theme/bootstrapbase/style/README [deleted file]
theme/bootstrapbase/style/editor.css [deleted file]
theme/bootstrapbase/style/moodle.css [deleted file]
theme/bootstrapbase/templates/block_myoverview/course-action-menu.mustache [deleted file]
theme/bootstrapbase/templates/block_search_forums/search_form.mustache [deleted file]
theme/bootstrapbase/templates/block_timeline/course-item-loading-placeholder.mustache [deleted file]
theme/bootstrapbase/templates/block_timeline/event-list-item.mustache [deleted file]
theme/bootstrapbase/templates/block_timeline/event-list-items.mustache [deleted file]
theme/bootstrapbase/templates/block_timeline/event-list.mustache [deleted file]
theme/bootstrapbase/templates/block_timeline/main.mustache [deleted file]
theme/bootstrapbase/templates/block_timeline/nav-day-filter.mustache [deleted file]
theme/bootstrapbase/templates/block_timeline/nav-view-selector.mustache [deleted file]
theme/bootstrapbase/templates/block_timeline/placeholder-event-list-item.mustache [deleted file]
theme/bootstrapbase/templates/block_timeline/view.mustache [deleted file]
theme/bootstrapbase/templates/core/action_menu.mustache [deleted file]
theme/bootstrapbase/templates/core/action_menu_item.mustache [deleted file]
theme/bootstrapbase/templates/core/action_menu_link.mustache [deleted file]
theme/bootstrapbase/templates/core/action_menu_trigger.mustache [deleted file]
theme/bootstrapbase/templates/core/auth_digital_minor_page.mustache [deleted file]
theme/bootstrapbase/templates/core/auth_verify_age_location_page.mustache [deleted file]
theme/bootstrapbase/templates/core/availability_info.mustache [deleted file]
theme/bootstrapbase/templates/core/chooser.mustache [deleted file]
theme/bootstrapbase/templates/core/columns-1to1to1.mustache [deleted file]
theme/bootstrapbase/templates/core/columns-1to2.mustache [deleted file]
theme/bootstrapbase/templates/core/columns-2to1.mustache [deleted file]
theme/bootstrapbase/templates/core/dataformat_selector.mustache [deleted file]
theme/bootstrapbase/templates/core/form_autocomplete_input.mustache [deleted file]
theme/bootstrapbase/templates/core/form_autocomplete_selection.mustache [deleted file]
theme/bootstrapbase/templates/core/help_icon.mustache [deleted file]
theme/bootstrapbase/templates/core/initials_bar.mustache [deleted file]
theme/bootstrapbase/templates/core/loginform.mustache [deleted file]
theme/bootstrapbase/templates/core/modal.mustache [deleted file]
theme/bootstrapbase/templates/core/modal_backdrop.mustache [deleted file]
theme/bootstrapbase/templates/core/notification_error.mustache [deleted file]
theme/bootstrapbase/templates/core/notification_info.mustache [deleted file]
theme/bootstrapbase/templates/core/notification_success.mustache [deleted file]
theme/bootstrapbase/templates/core/notification_warning.mustache [deleted file]
theme/bootstrapbase/templates/core/paged_content_paging_bar.mustache [deleted file]
theme/bootstrapbase/templates/core/paged_content_paging_dropdown.mustache [deleted file]
theme/bootstrapbase/templates/core/paged_content_paging_dropdown_item.mustache [deleted file]
theme/bootstrapbase/templates/core/progress_bar.mustache [deleted file]
theme/bootstrapbase/templates/core/select_time.mustache [deleted file]
theme/bootstrapbase/templates/core/settings_link_page.mustache [deleted file]
theme/bootstrapbase/templates/core/settings_link_page_single.mustache [deleted file]
theme/bootstrapbase/templates/core/signup_form_layout.mustache [deleted file]
theme/bootstrapbase/templates/core/single_button.mustache [deleted file]
theme/bootstrapbase/templates/core/skip_links.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_configcolourpicker.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_configduration.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_configfile.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_configmultiselect.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_configmultiselect_optgroup.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_configselect.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_configselect_optgroup.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_configtext.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_configtextarea.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_configtime.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_courselist_frontpage.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_description.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_devicedetectregex.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_emoticons.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/setting_gradecat_combo.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/settings.mustache [deleted file]
theme/bootstrapbase/templates/core_admin/settings_search_results.mustache [deleted file]
theme/bootstrapbase/templates/core_calendar/event_item.mustache [deleted file]
theme/bootstrapbase/templates/core_calendar/event_summary_body.mustache [deleted file]
theme/bootstrapbase/templates/core_calendar/minicalendar_day_link.mustache [deleted file]
theme/bootstrapbase/templates/core_form/editor_textarea.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-advcheckbox-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-advcheckbox.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-autocomplete-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-autocomplete.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-button-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-button.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-checkbox-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-checkbox.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-date_selector-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-date_selector.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-date_time_selector-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-date_time_selector.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-defaultcustom-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-defaultcustom.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-duration-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-duration.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-editor.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-filemanager.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-filepicker.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-filetypes.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-grading.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-group-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-group.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-modgrade.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-modvisible.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-password.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-passwordunmask.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-questioncategory-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-questioncategory.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-radio-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-radio.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-recaptcha.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-select-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-select.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-selectgroups-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-selectgroups.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-selectwithlink.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-selectyesno-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-selectyesno.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-static.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-submit-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-submit.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-tags-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-tags.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-template-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-template.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-text-inline.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-text.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-textarea.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-url.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-warning.mustache [deleted file]
theme/bootstrapbase/templates/core_form/element-wikieditor.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_icon_back.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_icon_forward.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_lazy_load_list.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_view_contacts_body.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_view_conversation_body_message.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_view_conversation_footer_content.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_view_conversation_footer_edit_mode.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_view_conversation_header_content_type_private.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_view_conversation_header_content_type_private_no_controls.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_view_conversation_header_content_type_public.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_view_group_info_body_content.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_view_overview_header.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_view_overview_section.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_drawer_view_search_header.mustache [deleted file]
theme/bootstrapbase/templates/core_message/message_index.mustache [deleted file]
theme/bootstrapbase/templates/gradereport_singleview/bulk_insert.mustache [deleted file]
theme/bootstrapbase/templates/gradereport_singleview/button.mustache [deleted file]
theme/bootstrapbase/templates/gradereport_singleview/dropdown_attribute.mustache [deleted file]
theme/bootstrapbase/templates/gradereport_singleview/text_attribute.mustache [deleted file]
theme/bootstrapbase/templates/gradingform_guide/comment_chooser.mustache [deleted file]
theme/bootstrapbase/templates/mod_assign/grading_actions.mustache [deleted file]
theme/bootstrapbase/templates/mod_assign/grading_navigation.mustache [deleted file]
theme/bootstrapbase/templates/mod_assign/grading_navigation_user_selector.mustache [deleted file]
theme/bootstrapbase/templates/mod_forum/big_search_form.mustache [deleted file]
theme/bootstrapbase/templates/mod_forum/quick_search_form.mustache [deleted file]
theme/bootstrapbase/templates/mod_quiz/modal_add_random_question.mustache [deleted file]
theme/bootstrapbase/templates/mod_quiz/random_question_form_preview.mustache [deleted file]
theme/bootstrapbase/templates/theme_boost/admin_setting_tabs.mustache [deleted file]
theme/bootstrapbase/templates/tool_lp/progress_bar.mustache [deleted file]
theme/bootstrapbase/templates/tool_usertours/tourstep.mustache [deleted file]
theme/bootstrapbase/tests/behat/behat_theme_bootstrapbase_behat_action_menu.php [deleted file]
theme/bootstrapbase/tests/behat/behat_theme_bootstrapbase_behat_admin.php [deleted file]
theme/bootstrapbase/tests/behat/behat_theme_bootstrapbase_behat_blocks.php [deleted file]
theme/bootstrapbase/tests/behat/behat_theme_bootstrapbase_behat_course.php [deleted file]
theme/bootstrapbase/tests/behat/behat_theme_bootstrapbase_behat_deprecated.php [deleted file]
theme/bootstrapbase/tests/behat/behat_theme_bootstrapbase_behat_filepicker.php [deleted file]
theme/bootstrapbase/tests/behat/behat_theme_bootstrapbase_behat_grade.php [deleted file]
theme/bootstrapbase/tests/behat/behat_theme_bootstrapbase_behat_mod_quiz.php [deleted file]
theme/bootstrapbase/tests/behat/behat_theme_bootstrapbase_behat_navigation.php [deleted file]
theme/bootstrapbase/tests/behat/behat_theme_bootstrapbase_behat_repository_upload.php [deleted file]
theme/bootstrapbase/tests/behat/blacklist.json [deleted file]
theme/bootstrapbase/tests/behat/theme_bootstrapbase_behat_file_helper.php [deleted file]
theme/bootstrapbase/thirdpartylibs.xml [deleted file]
theme/bootstrapbase/upgrade.txt [deleted file]
theme/bootstrapbase/version.php [deleted file]
theme/classic/tests/behat/blacklist.json

index 8afacce..69d933e 100644 (file)
@@ -1,5 +1,3 @@
 **/yui/build/** -diff
 **/amd/build/** -diff
 lib/dml/oci_native_moodle_package.sql text eol=lf
-theme/bootstrapbase/style/editor.css -diff
-theme/bootstrapbase/style/moodle.css -diff
index 57a230e..824a647 100644 (file)
@@ -25,7 +25,6 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) { // sp
     $temp->add(new admin_setting_configcheckbox('allowcohortthemes',  new lang_string('allowcohortthemes', 'admin'), new lang_string('configallowcohortthemes', 'admin'), 0));
     $temp->add(new admin_setting_configcheckbox('allowthemechangeonurl',  new lang_string('allowthemechangeonurl', 'admin'), new lang_string('configallowthemechangeonurl', 'admin'), 0));
     $temp->add(new admin_setting_configcheckbox('allowuserblockhiding', new lang_string('allowuserblockhiding', 'admin'), new lang_string('configallowuserblockhiding', 'admin'), 1));
-    $temp->add(new admin_setting_configcheckbox('allowblockstodock', new lang_string('allowblockstodock', 'admin'), new lang_string('configallowblockstodock', 'admin'), 1));
     $temp->add(new admin_setting_configtextarea('custommenuitems', new lang_string('custommenuitems', 'admin'),
         new lang_string('configcustommenuitems', 'admin'), '', PARAM_RAW, '50', '10'));
     $temp->add(new admin_setting_configtextarea(
index 6d83d20..638a30c 100644 (file)
@@ -1,5 +1,11 @@
 This files describes API changes in /admin/*.
 
+=== 3.7 ===
+
+* Admin setting "Allow blocks to use the dock" (allowblockstodock) has been removed & stings deprecated.
+  Docking of blocks is no longer supported within the core themes (Boost, Classic).
+  Please see MDL-64506 for further details.
+
 === 3.3 ===
 
 * The admin settings admin_setting_configselect and admin_setting_configmultiselect now support the optgroup tag.
index c987586..c1e8aca 100644 (file)
@@ -653,8 +653,7 @@ class block_base {
      * @return bool
      */
     public function instance_can_be_docked() {
-        global $CFG;
-        return (!empty($CFG->allowblockstodock) && $this->page->theme->enable_dock);
+        return false;
     }
 
     /**
index 5f55ca2..94f9b33 100644 (file)
@@ -70,21 +70,6 @@ class behat_blocks extends behat_base {
         }
     }
 
-    /**
-     * Docks a block. Editing mode should be previously enabled.
-     *
-     * @Given /^I dock "(?P<block_name_string>(?:[^"]|\\")*)" block$/
-     * @param string $blockname
-     */
-    public function i_dock_block($blockname) {
-
-        // Looking for both title and alt.
-        $xpath = "//input[@type='image'][@title='" . get_string('dockblock', 'block', $blockname) . "' or @alt='" . get_string('addtodock', 'block') . "']";
-        $this->execute('behat_general::i_click_on_in_the',
-            array($xpath, "xpath_element", $this->escape($blockname), "block")
-        );
-    }
-
     /**
      * Opens a block's actions menu if it is not already opened.
      *
index 2875e39..067c0fa 100644 (file)
Binary files a/course/amd/build/actions.min.js and b/course/amd/build/actions.min.js differ
index 76d4232..27a84b2 100644 (file)
@@ -156,9 +156,8 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/notification', 'core/str'
          * Initialise action menu for the element (section or module)
          *
          * @param {String} elementid CSS id attribute of the element
-         * @param {Boolean} openmenu whether to open menu - this can be used when re-initiating menu after indent action was pressed
          */
-        var initActionMenu = function(elementid, openmenu) {
+        var initActionMenu = function(elementid) {
             // Initialise action menu in the new activity.
             Y.use('moodle-course-coursebase', function() {
                 M.course.coursebase.invoke_function('setup_for_resource', '#' + elementid);
@@ -166,15 +165,6 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/notification', 'core/str'
             if (M.core.actionmenu && M.core.actionmenu.newDOMNode) {
                 M.core.actionmenu.newDOMNode(Y.one('#' + elementid));
             }
-            // Open action menu if the original element had data-keepopen.
-            if (openmenu) {
-                // We must use YUI click simulate here so the toggle works in Clean theme. This toggle is not
-                // needed in Boost because we use standard bootstrapbase action menu.
-                var toggle = Y.one('#' + elementid + ' ' + SELECTOR.MENU).one(SELECTOR.TOGGLE);
-                if (toggle && toggle.simulate) {
-                    toggle.simulate('click');
-                }
-            }
         };
 
         /**
@@ -227,8 +217,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/notification', 'core/str'
          * @param {JQuery} target the element (menu item) that was clicked
          */
         var editModule = function(moduleElement, cmid, target) {
-            var keepopen = target.attr('data-keepopen'),
-                    action = target.attr('data-action');
+            var action = target.attr('data-action');
             var spinner = addActivitySpinner(moduleElement);
             var promises = ajax.call([{
                 methodname: 'core_course_edit_module',
@@ -248,7 +237,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/notification', 'core/str'
                     moduleElement.replaceWith(data);
                     // Initialise action menu for activity(ies) added as a result of this.
                     $('<div>' + data + '</div>').find(SELECTOR.ACTIVITYLI).each(function(index) {
-                        initActionMenu($(this).attr('id'), keepopen);
+                        initActionMenu($(this).attr('id'));
                         if (index === 0) {
                             focusActionItem($(this).attr('id'), action);
                             elementToFocus = null;
@@ -451,7 +440,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/notification', 'core/str'
                 // Find the existing element with the same id and replace its contents with new html.
                 $(SELECTOR.ACTIVITYLI + '#' + id).replaceWith(activityHTML);
                 // Initialise action menu.
-                initActionMenu(id, false);
+                initActionMenu(id);
             });
         };
 
diff --git a/course/tests/behat/activities_edit_with_block_dock.feature b/course/tests/behat/activities_edit_with_block_dock.feature
deleted file mode 100644 (file)
index 4ed3330..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-@core @core_course
-Feature: Open the edit menu when a block is docked
-  In order to edit an activity with a block docked
-  As a teacher
-  I need to open the action menu
-
-  @javascript
-  Scenario: Open the action menu with a block docked
-    Given the following "users" exist:
-      | username | firstname | lastname | email |
-      | teacher1 | Teacher | 1 | teacher1@example.com |
-    And the following "courses" exist:
-      | fullname | shortname | format |
-      | Course 1 | C1 | weeks |
-    And the following "course enrolments" exist:
-      | user | course | role |
-      | teacher1 | C1 | editingteacher |
-    And I log in as "teacher1"
-    And I am on "Course 1" course homepage with editing mode on
-    And I add a "Glossary" to section "1" and I fill the form with:
-      | Name | Test glossary name |
-      | Description | Test glossary description |
-    And I dock "Navigation" block
-    When I open "Test glossary name" actions menu
-    Then "Test glossary name" actions menu should be open
-    And I reload the page
-    When I open "Test glossary name" actions menu
-    Then "Test glossary name" actions menu should be open
index f23e728..0fa88bd 100644 (file)
@@ -28,12 +28,8 @@ if (file_exists(__DIR__.'/../config.php')) {
     die;
 }
 
-// include only the necessary stuff from themes, keep this small otherwise IE will complain...
-
-// MDL-43839 IE9 cannot handle all of our css.
-// Once IE9 is no longer supported we can include 'bootstrapbase/style/moodle.css'
 // and remove some of the CSS in $content.
-$files = array();
+$files = array('boost/style/moodle.css');
 
 $content = '';
 
@@ -114,268 +110,6 @@ fieldset .alert {
     text-align: center;
 }
 
-/*
-MDL-43839 IE9 cannot handle all of our CSS.
-Once IE9 is no longer supported we can include 'bootstrapbase/style/moodle.css' above
-and remove the following.
-*/
-
-#page-footer {
-    padding: 1em 0;
-    margin-top: 1em;
-    border-top: 2px solid #ddd;
-}
-
-.fitem {
-    clear:both;
-    text-align:left;
-    padding: 8px;
-}
-
-.fitemtitle {
-    float: left;
-    width: 245px;
-    text-align: right;
-}
-html[dir=rtl] .fitemtitle {
-    float: right;
-}
-label {
-    font-weight: bold;
-    display: inline-block;
-    margin: 5px;
-}
-
-.fitemelement {
-    margin-left: 265px;
-}
-html[dir=rtl] .fitemelement {
-    margin-right: 265px;
-    margin-left: 0;
-    direction: ltr;
-}
-.alert, .alert h4 {
-    color: #c09853;
-}
-.alert {
-    padding: 8px 35px 8px 14px;
-    margin-bottom: 20px;
-    text-shadow: 0 1px 0 rgba(255,255,255,0.5);
-    background-color: #fcf8e3;
-    border: 1px solid #fbeed5;
-    -webkit-border-radius: 4px;
-    -moz-border-radius: 4px;
-    border-radius: 4px;
-}
-
-.alert-info {
-    color: #3a87ad;
-    background-color: #d9edf7;
-    border-color: #bce8f1;
-}
-
-.alert-success {
-    color: #468847;
-    background-color: #dff0d8;
-    border-color: #d6e9c6;
-}
-
-.alert-error {
-    color: #b94a48;
-    background-color: #f2dede;
-    border-color: #eed3d7;
-}
-
-pre {
-    display: block;
-    padding: 9.5px;
-    margin: 0 0 10px;
-    font-size: 13px;
-    line-height: 20px;
-    word-break: break-all;
-    word-wrap: break-word;
-    white-space: pre;
-    white-space: pre-wrap;
-    background-color: #f5f5f5;
-    border: 1px solid #ccc;
-    border: 1px solid rgba(0,0,0,0.15);
-    -webkit-border-radius: 4px;
-    -moz-border-radius: 4px;
-    border-radius: 4px;
-}
-
-.notifytiny {
-    font-size: 10.5px;
-}
-
-input[type="button"], input[type="submit"] {
-    margin: 0 0 10px 5px;
-    display: inline-block;
-    padding: 4px 12px;
-    font-size: 14px;
-    line-height: 20px;
-    color: #333;
-    text-align: center;
-    text-shadow: 0 1px 1px rgba(255,255,255,0.75);
-    vertical-align: middle;
-    cursor: pointer;
-    background-color: #f5f5f5;
-    background-image: -moz-linear-gradient(top,#fff,#e6e6e6);
-    background-image: -webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));
-    background-image: -webkit-linear-gradient(top,#fff,#e6e6e6);
-    background-image: -o-linear-gradient(top,#fff,#e6e6e6);
-    background-image: linear-gradient(to bottom,#fff,#e6e6e6);
-    background-repeat: repeat-x;
-    border: 1px solid #ccc;
-    border-color: #e6e6e6 #e6e6e6 #bfbfbf;
-    border-color: rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);
-    border-bottom-color: #b3b3b3;
-    -webkit-border-radius: 4px;
-    -moz-border-radius: 4px;
-    border-radius: 4px;
-    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);
-    filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
-    -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
-    -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
-    box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
-}
-
-input[type="button"]:hover, input[type="submit"]:hover, input[type="button"]:focus, input[type="submit"]:focus {
-    color: #333;
-    text-decoration: none;
-    background-position: 0 -15px;
-    -webkit-transition: background-position .1s linear;
-    -moz-transition: background-position .1s linear;
-    -o-transition: background-position .1s linear;
-    transition: background-position .1s linear;
-}
-
-input[type="button"]:hover, input[type="submit"]:hover, input[type="button"]:focus, input[type="submit"]:focus, input[type="button"]:active, input[type="submit"]:active, input[type="button"].active, input[type="submit"].active, input[type="button"].disabled, input[type="submit"].disabled, input[type="reset"].disabled, input[type="submit"][disabled], input[type="reset"][disabled] {
-    color: #333;
-    background-color: #e6e6e6;
-}
-
-button, input, select, textarea {
-    margin: 0;
-}
-
-select, textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"] {
-    display: inline-block;
-    height: 20px;
-    padding: 4px 6px;
-    margin-bottom: 10px;
-    font-size: 14px;
-    line-height: 20px;
-    color: #555;
-    vertical-align: middle;
-    -webkit-border-radius: 4px;
-    -moz-border-radius: 4px;
-    border-radius: 4px;
-}
-
-select {
-    background-color: #fff;
-    border: 1px solid #ccc;
-}
-
-label, select, button, input[type="button"], input[type="submit"], input[type="radio"], input[type="checkbox"] {
-    cursor: pointer;
-}
-
-
-select, textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"] {
-    display: inline-block;
-    height: 20px;
-    padding: 4px 6px;
-    margin-bottom: 10px;
-    font-size: 14px;
-    line-height: 20px;
-    color: #555;
-    vertical-align: middle;
-    -webkit-border-radius: 4px;
-    -moz-border-radius: 4px;
-    border-radius: 4px;
-}
-
-select, input[type="file"] {
-    height: 30px;
-    line-height: 30px;
-}
-
-textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"] {
-    background-color: #fff;
-    border: 1px solid #ccc;
-    -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
-    -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
-    box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
-    -webkit-transition: border linear .2s,box-shadow linear .2s;
-    -moz-transition: border linear .2s,box-shadow linear .2s;
-    -o-transition: border linear .2s,box-shadow linear .2s;
-    transition: border linear .2s,box-shadow linear .2s;
-}
-
-input[disabled], select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] {
-    cursor: not-allowed;
-    background-color: #eee;
-}
-
-input.btn-primary {
-    color: #fff;
-    text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
-    background-color: #005aa8;
-    background-image: -moz-linear-gradient(top,#0070a8,#0038a8);
-    background-image: -webkit-gradient(linear,0 0,0 100%,from(#0070a8),to(#0038a8));
-    background-image: -webkit-linear-gradient(top,#0070a8,#0038a8);
-    background-image: -o-linear-gradient(top,#0070a8,#0038a8);
-    background-image: linear-gradient(to bottom,#0070a8,#0038a8);
-    background-repeat: repeat-x;
-    border-color: #0038a8 #0038a8 #001e5c;
-    border-color: rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);
-    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0070a8',endColorstr='#ff0038a8',GradientType=0);
-    filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
-}
-
-input.btn-primary:hover,
-input.btn-primary:active,
-input.btn-primary:focus {
-    color: #fff;
-    background-color: #0038a8;
-}
-
-
-.breadcrumb {
-    background-color: #f5f5f5;
-}
-.breadcrumb {
-    padding: 8px 15px;
-    margin: 0 0 20px;
-    list-style: none;
-    background-color: #f5f5f5;
-    -webkit-border-radius: 4px;
-    -moz-border-radius: 4px;
-    border-radius: 4px;
-}
-
-.breadcrumb > li {
-    display: inline-block;
-    text-shadow: 0 1px 0 #fff;
-    line-height: 20px;
-}
-
-body {
-    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-    font-size: 14px;
-    line-height: 20px;
-    color: #333;
-}
-.breadcrumb {
-    background-color: rgb(245, 245, 245);
-    padding: 8px 15px;
-}
-/*
-End of MDL-43839 IE9 specific CSS.
-*/
-
 EOF;
 
 // fix used urls
index 48f4661..c8b2644 100644 (file)
@@ -47,7 +47,6 @@ $string['allcountrycodes'] = 'All country codes';
 $string['allowattachments'] = 'Allow attachments';
 $string['allowbeforeblock'] = 'Allowed list will be processed first';
 $string['allowbeforeblockdesc'] = 'By default, entries in the blocked IPs list are matched first. If this option is enabled, entries in the allowed IPs list are processed before the blocked list.';
-$string['allowblockstodock'] = 'Allow blocks to use the dock';
 $string['allowcategorythemes'] = 'Allow category themes';
 $string['allowcohortthemes'] = 'Allow cohort themes';
 $string['allowcoursethemes'] = 'Allow course themes';
@@ -146,7 +145,6 @@ $string['configallowattachments'] = 'If enabled, emails sent from the site can h
 $string['configenableactivitychooser'] = 'The activity chooser is a dialog box with a short description of each activity and resource. If disabled, separate resource and activity drop-down menus are provided instead.';
 $string['configallcountrycodes'] = 'This is the list of countries that may be selected in various places, for example in a user\'s profile. If blank (the default) the list in countries.php in the standard English language pack is used. That is the list from ISO 3166-1. Otherwise, you can specify a comma-separated list of codes, for example \'GB,FR,ES\'. If you add new, non-standard codes here, you will need to add them to countries.php in \'en\' and your language pack.';
 $string['configallowassign'] = 'You can allow people who have the roles on the left side to assign some of the column roles to other people';
-$string['configallowblockstodock'] = 'If enabled and supported by the selected theme users can choose to move blocks to a special dock.';
 $string['configallowcategorythemes'] = 'If you enable this, then themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance.';
 $string['configallowcohortthemes'] = 'If you enable this, then themes can be set at the cohort level. This will affect all users with only one cohort or more than one but with the same theme.';
 $string['configallowcoursethemes'] = 'If you enable this, then courses will be allowed to set their own themes.  Course themes override all other theme choices (site, user, or session themes)';
@@ -1413,3 +1411,6 @@ $string['moodleorghubname'] = 'Moodle.net';
 $string['hubs'] = 'Hubs';
 $string['configloginhttps'] = 'Turning this on will make Moodle use a secure https connection just for the login page (providing a secure login), and then afterwards revert back to the normal http URL for general speed.  CAUTION: this setting REQUIRES https to be specifically enabled on the web server - if it is not then YOU COULD LOCK YOURSELF OUT OF YOUR SITE.';
 $string['loginhttps'] = 'Use HTTPS for logins';
+// Deprecated since Moodle 3.7.
+$string['allowblockstodock'] = 'Allow blocks to use the dock';
+$string['configallowblockstodock'] = 'If enabled and supported by the selected theme users can choose to move blocks to a special dock.';
\ No newline at end of file
index dab291a..da792ee 100644 (file)
@@ -1554,11 +1554,6 @@ class moodle_page {
         }
 
         $this->_theme->setup_blocks($this->pagelayout, $this->blocks);
-        if ($this->_theme->enable_dock && !empty($CFG->allowblockstodock)) {
-            $this->requires->strings_for_js(array('addtodock', 'undockitem', 'dockblock', 'undockblock', 'undockall', 'hidedockpanel', 'hidepanel'), 'block');
-            $this->requires->string_for_js('thisdirectionvertical', 'langconfig');
-            $this->requires->yui_module('moodle-core-dock-loader', 'M.core.dock.loader.initLoader');
-        }
 
         if ($this === $PAGE) {
             $target = null;
index c7a693f..777078b 100644 (file)
@@ -107,6 +107,26 @@ class behat_deprecated extends behat_base {
         $this->execute('behat_theme_boost_behat_navigation::select_from_administration_menu', array($nodelist));
     }
 
+    /**
+     * Docks a block. Editing mode should be previously enabled.
+     * @throws ExpectationException
+     * @param string $blockname
+     * @return void
+     * @deprecated since Moodle 3.7 MDL-64506 - please do not use this definition step any more.
+     * @todo MDL-65215 This will be deleted in Moodle 4.1.
+     */
+    public function i_dock_block($blockname) {
+
+        $message = "Block docking is no longer used as of MDL-64506. Please update your tests.";
+        $this->deprecated_message($message);
+
+        // Looking for both title and alt.
+        $xpath = "//input[@type='image'][@title='" . get_string('dockblock', 'block', $blockname) . "' or @alt='" . get_string('addtodock', 'block') . "']";
+        $this->execute('behat_general::i_click_on_in_the',
+                array($xpath, "xpath_element", $this->escape($blockname), "block")
+        );
+    }
+
     /**
      * Throws an exception if $CFG->behat_usedeprecated is not allowed.
      *
index 1d0c8d8..e37f62b 100644 (file)
@@ -1,7 +1,6 @@
 {
     "features": [
         "lib/tests/behat/action_menu.feature",
-        "course/tests/behat/activities_edit_with_block_dock.feature",
         "blocks/tests/behat/hide_blocks.feature",
         "blocks/tests/behat/move_blocks.feature"
     ]
diff --git a/theme/bootstrapbase/README.txt b/theme/bootstrapbase/README.txt
deleted file mode 100644 (file)
index a4d16af..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-About this theme
-================
-
-This is the Bootstrap theme for Moodle.
-
-* package   Moodle Bootstrap theme
-* copyright 2013 Bas Brands. www.sonsbeekmedia.nl
-* authors   Bas Brands, David Scotson
-* license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
-
-This theme has been created with the help of:
-Stuart Lamour, Mark Aberdour, Paul Hibbitts, Mary Evans
-
-This theme is based on the Twitter Bootstrap CSS framework version 2.3.
-It contains all unmodified less* CSS sources from the Twitter Bootstrap CSS
-framework in folder /less/bootstrap.
-On top of the Bootstrap less CSS sources Moodle CSS is added to create this
-theme.
-
-HTML5 is tags are used in the /layout/general.php file. The structure of this file
-provides a 2-1-3 layout when looking at your Moodle page source. This improves
-accessibility and Search Engine Optimization (SEO).
-
-*less CSS
-Less CSS is a Object Oriented way of writing CSS code. All Less CSS files
-for this theme are stored in the /less folder. A developer can use grunt
-to generate the CSS files in the /style folder. For more
-information read /less/README
-
-JavaScript Libraries
-
-html5shiv.js
-------------
-To provide backwards compatibility for HTML5 for Internet Explorer 7 (IE7) and Internet
-Explorer 8 (IE8) a javascript library call /javascript/html5shiv.js was added. This
-JavaScript converts HTML tags and CSS into Tag that are understood by IE7 and IE8.
-The config.php makes sure these libraries are only loaded for IE7 and IE8.
-
-moodlebootstrap.js
-------------------
-This file initiates the bootstrap library.
-
-headercollapse.js
------------------
-Workaround for the collapse button on the Moodle custom menu. Without this
-Submenu items cannot be opened
-
-Updating Twitter bootstrap and Libraries
-========================================
-
-Twitter bootstrap
------------------
-This theme uses the original unmodified version 2.3.0 Twitter bootstrap less files. These are
-Object Oriented CSS files. The bootstrap repository is available on:
-
-https://github.com/twitter/bootstrap.git
-
-To update to the latest release of twitter bootstrap remove all files from less/bootstrap,
-download the new less files and store them in less/bootstrap
-Inclusion of bootstrap files is configured in less/moodle.less. To generate the new
-Moodle CSS read /less/README
-
-html5shiv.js
-------------
-This theme uses the original unmodified html5shiv.js JavaScript library to enable HTML5 tags in IE7 and IE8.
-This library is available on:
-
-https://github.com/aFarkas/html5shiv/blob/master/src/html5shiv.js
-
-To update to the latest release of html5shiv download and replace:
-javascript/html5shiv.js
-
-Licenses & Authors
-==================
-
-Twitter Bootstrap Copyright and license
----------------------------------------
-Authors: Mark Otto, Jacob Thornton
-URL: http://twitter.github.com/bootstrap/
-License:
-
-Copyright 2012 Twitter, Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this work except in compliance with the License.
-You may obtain a copy of the License in the LICENSE file, or at:
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Html5shiv.js
-------------
-Author: Sjoerd Visscher
-URL: http://en.wikipedia.org/wiki/HTML5_Shiv, https://github.com/aFarkas/html5shiv
-License: MIT/GPL2 Licensed
-
-moodlebootstrap.js
-------------------
-Author: 2013 Bas Brands. www.sonsbeekmedia.nl
-license:  http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
diff --git a/theme/bootstrapbase/amd/build/bootstrap.min.js b/theme/bootstrapbase/amd/build/bootstrap.min.js
deleted file mode 100644 (file)
index 4b0f89d..0000000
Binary files a/theme/bootstrapbase/amd/build/bootstrap.min.js and /dev/null differ
diff --git a/theme/bootstrapbase/amd/src/bootstrap.js b/theme/bootstrapbase/amd/src/bootstrap.js
deleted file mode 100644 (file)
index 35fb020..0000000
+++ /dev/null
@@ -1,2275 +0,0 @@
-/* ===================================================
- * bootstrap-transition.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#transitions
- * ===================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-/* jshint ignore:start */
-define(['jquery'], function($) {
-    $('.h1').hide();
-
-
-  "use strict"; // jshint ;_;
-
-
-  /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
-   * ======================================================= */
-
-  $(function () {
-
-    $.support.transition = (function () {
-
-      var transitionEnd = (function () {
-
-        var el = document.createElement('bootstrap')
-          , transEndEventNames = {
-               'WebkitTransition' : 'webkitTransitionEnd'
-            ,  'MozTransition'    : 'transitionend'
-            ,  'OTransition'      : 'oTransitionEnd otransitionend'
-            ,  'transition'       : 'transitionend'
-            }
-          , name
-
-        for (name in transEndEventNames){
-          if (el.style[name] !== undefined) {
-            return transEndEventNames[name]
-          }
-        }
-
-      }())
-
-      return transitionEnd && {
-        end: transitionEnd
-      }
-
-    })()
-
-  })
-
-/* ==========================================================
- * bootstrap-alert.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#alerts
- * ==========================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-
-
-  "use strict"; // jshint ;_;
-
-
- /* ALERT CLASS DEFINITION
-  * ====================== */
-
-  var dismiss = '[data-dismiss="alert"]'
-    , Alert = function (el) {
-        $(el).on('click', dismiss, this.close)
-      }
-
-  Alert.prototype.close = function (e) {
-    var $this = $(this)
-      , selector = $this.attr('data-target')
-      , $parent
-
-    if (!selector) {
-      selector = $this.attr('href')
-      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
-    }
-
-    $parent = $(selector)
-
-    e && e.preventDefault()
-
-    $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
-
-    $parent.trigger(e = $.Event('close'))
-
-    if (e.isDefaultPrevented()) return
-
-    $parent.removeClass('in')
-
-    function removeElement() {
-      $parent
-        .trigger('closed')
-        .remove()
-    }
-
-    $.support.transition && $parent.hasClass('fade') ?
-      $parent.on($.support.transition.end, removeElement) :
-      removeElement()
-  }
-
-
- /* ALERT PLUGIN DEFINITION
-  * ======================= */
-
-  var old = $.fn.alert
-
-  $.fn.alert = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('alert')
-      if (!data) $this.data('alert', (data = new Alert(this)))
-      if (typeof option == 'string') data[option].call($this)
-    })
-  }
-
-  $.fn.alert.Constructor = Alert
-
-
- /* ALERT NO CONFLICT
-  * ================= */
-
-  $.fn.alert.noConflict = function () {
-    $.fn.alert = old
-    return this
-  }
-
-
- /* ALERT DATA-API
-  * ============== */
-
-  $(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
-
-/* ============================================================
- * bootstrap-button.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#buttons
- * ============================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============================================================ */
-
-
-
-  "use strict"; // jshint ;_;
-
-
- /* BUTTON PUBLIC CLASS DEFINITION
-  * ============================== */
-
-  var Button = function (element, options) {
-    this.$element = $(element)
-    this.options = $.extend({}, $.fn.button.defaults, options)
-  }
-
-  Button.prototype.setState = function (state) {
-    var d = 'disabled'
-      , $el = this.$element
-      , data = $el.data()
-      , val = $el.is('input') ? 'val' : 'html'
-
-    state = state + 'Text'
-    data.resetText || $el.data('resetText', $el[val]())
-
-    $el[val](data[state] || this.options[state])
-
-    // push to event loop to allow forms to submit
-    setTimeout(function () {
-      state == 'loadingText' ?
-        $el.addClass(d).attr(d, d) :
-        $el.removeClass(d).removeAttr(d)
-    }, 0)
-  }
-
-  Button.prototype.toggle = function () {
-    var $parent = this.$element.closest('[data-toggle="buttons-radio"]')
-
-    $parent && $parent
-      .find('.active')
-      .removeClass('active')
-
-    this.$element.toggleClass('active')
-  }
-
-
- /* BUTTON PLUGIN DEFINITION
-  * ======================== */
-
-  var old = $.fn.button
-
-  $.fn.button = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('button')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('button', (data = new Button(this, options)))
-      if (option == 'toggle') data.toggle()
-      else if (option) data.setState(option)
-    })
-  }
-
-  $.fn.button.defaults = {
-    loadingText: 'loading...'
-  }
-
-  $.fn.button.Constructor = Button
-
-
- /* BUTTON NO CONFLICT
-  * ================== */
-
-  $.fn.button.noConflict = function () {
-    $.fn.button = old
-    return this
-  }
-
-
- /* BUTTON DATA-API
-  * =============== */
-
-  $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) {
-    var $btn = $(e.target)
-    if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
-    $btn.button('toggle')
-  })
-
-/* ==========================================================
- * bootstrap-carousel.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#carousel
- * ==========================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-
-
-  "use strict"; // jshint ;_;
-
-
- /* CAROUSEL CLASS DEFINITION
-  * ========================= */
-
-  var Carousel = function (element, options) {
-    this.$element = $(element)
-    this.$indicators = this.$element.find('.carousel-indicators')
-    this.options = options
-    this.options.pause == 'hover' && this.$element
-      .on('mouseenter', $.proxy(this.pause, this))
-      .on('mouseleave', $.proxy(this.cycle, this))
-  }
-
-  Carousel.prototype = {
-
-    cycle: function (e) {
-      if (!e) this.paused = false
-      if (this.interval) clearInterval(this.interval);
-      this.options.interval
-        && !this.paused
-        && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
-      return this
-    }
-
-  , getActiveIndex: function () {
-      this.$active = this.$element.find('.item.active')
-      this.$items = this.$active.parent().children()
-      return this.$items.index(this.$active)
-    }
-
-  , to: function (pos) {
-      var activeIndex = this.getActiveIndex()
-        , that = this
-
-      if (pos > (this.$items.length - 1) || pos < 0) return
-
-      if (this.sliding) {
-        return this.$element.one('slid', function () {
-          that.to(pos)
-        })
-      }
-
-      if (activeIndex == pos) {
-        return this.pause().cycle()
-      }
-
-      return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
-    }
-
-  , pause: function (e) {
-      if (!e) this.paused = true
-      if (this.$element.find('.next, .prev').length && $.support.transition.end) {
-        this.$element.trigger($.support.transition.end)
-        this.cycle(true)
-      }
-      clearInterval(this.interval)
-      this.interval = null
-      return this
-    }
-
-  , next: function () {
-      if (this.sliding) return
-      return this.slide('next')
-    }
-
-  , prev: function () {
-      if (this.sliding) return
-      return this.slide('prev')
-    }
-
-  , slide: function (type, next) {
-      var $active = this.$element.find('.item.active')
-        , $next = next || $active[type]()
-        , isCycling = this.interval
-        , direction = type == 'next' ? 'left' : 'right'
-        , fallback  = type == 'next' ? 'first' : 'last'
-        , that = this
-        , e
-
-      this.sliding = true
-
-      isCycling && this.pause()
-
-      $next = $next.length ? $next : this.$element.find('.item')[fallback]()
-
-      e = $.Event('slide', {
-        relatedTarget: $next[0]
-      , direction: direction
-      })
-
-      if ($next.hasClass('active')) return
-
-      if (this.$indicators.length) {
-        this.$indicators.find('.active').removeClass('active')
-        this.$element.one('slid', function () {
-          var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
-          $nextIndicator && $nextIndicator.addClass('active')
-        })
-      }
-
-      if ($.support.transition && this.$element.hasClass('slide')) {
-        this.$element.trigger(e)
-        if (e.isDefaultPrevented()) return
-        $next.addClass(type)
-        $next[0].offsetWidth // force reflow
-        $active.addClass(direction)
-        $next.addClass(direction)
-        this.$element.one($.support.transition.end, function () {
-          $next.removeClass([type, direction].join(' ')).addClass('active')
-          $active.removeClass(['active', direction].join(' '))
-          that.sliding = false
-          setTimeout(function () { that.$element.trigger('slid') }, 0)
-        })
-      } else {
-        this.$element.trigger(e)
-        if (e.isDefaultPrevented()) return
-        $active.removeClass('active')
-        $next.addClass('active')
-        this.sliding = false
-        this.$element.trigger('slid')
-      }
-
-      isCycling && this.cycle()
-
-      return this
-    }
-
-  }
-
-
- /* CAROUSEL PLUGIN DEFINITION
-  * ========================== */
-
-  var old = $.fn.carousel
-
-  $.fn.carousel = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('carousel')
-        , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
-        , action = typeof option == 'string' ? option : options.slide
-      if (!data) $this.data('carousel', (data = new Carousel(this, options)))
-      if (typeof option == 'number') data.to(option)
-      else if (action) data[action]()
-      else if (options.interval) data.pause().cycle()
-    })
-  }
-
-  $.fn.carousel.defaults = {
-    interval: 5000
-  , pause: 'hover'
-  }
-
-  $.fn.carousel.Constructor = Carousel
-
-
- /* CAROUSEL NO CONFLICT
-  * ==================== */
-
-  $.fn.carousel.noConflict = function () {
-    $.fn.carousel = old
-    return this
-  }
-
- /* CAROUSEL DATA-API
-  * ================= */
-
-  $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
-    var $this = $(this), href
-      , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
-      , options = $.extend({}, $target.data(), $this.data())
-      , slideIndex
-
-    $target.carousel(options)
-
-    if (slideIndex = $this.attr('data-slide-to')) {
-      $target.data('carousel').pause().to(slideIndex).cycle()
-    }
-
-    e.preventDefault()
-  })
-
-/* =============================================================
- * bootstrap-collapse.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#collapse
- * =============================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============================================================ */
-
-
-
-  "use strict"; // jshint ;_;
-
-
- /* COLLAPSE PUBLIC CLASS DEFINITION
-  * ================================ */
-
-  var Collapse = function (element, options) {
-    this.$element = $(element)
-    this.options = $.extend({}, $.fn.collapse.defaults, options)
-
-    if (this.options.parent) {
-      this.$parent = $(this.options.parent)
-    }
-
-    this.options.toggle && this.toggle()
-  }
-
-  Collapse.prototype = {
-
-    constructor: Collapse
-
-  , dimension: function () {
-      var hasWidth = this.$element.hasClass('width')
-      return hasWidth ? 'width' : 'height'
-    }
-
-  , show: function () {
-      var dimension
-        , scroll
-        , actives
-        , hasData
-
-      if (this.transitioning || this.$element.hasClass('in')) return
-
-      dimension = this.dimension()
-      scroll = $.camelCase(['scroll', dimension].join('-'))
-      actives = this.$parent && this.$parent.find('> .accordion-group > .in')
-
-      if (actives && actives.length) {
-        hasData = actives.data('collapse')
-        if (hasData && hasData.transitioning) return
-        actives.collapse('hide')
-        hasData || actives.data('collapse', null)
-      }
-
-      this.$element[dimension](0)
-      this.transition('addClass', $.Event('show'), 'shown')
-      $.support.transition && this.$element[dimension](this.$element[0][scroll])
-    }
-
-  , hide: function () {
-      var dimension
-      if (this.transitioning || !this.$element.hasClass('in')) return
-      dimension = this.dimension()
-      this.reset(this.$element[dimension]())
-      this.transition('removeClass', $.Event('hide'), 'hidden')
-      this.$element[dimension](0)
-    }
-
-  , reset: function (size) {
-      var dimension = this.dimension()
-
-      this.$element
-        .removeClass('collapse')
-        [dimension](size || 'auto')
-        [0].offsetWidth
-
-      this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
-
-      return this
-    }
-
-  , transition: function (method, startEvent, completeEvent) {
-      var that = this
-        , complete = function () {
-            if (startEvent.type == 'show') that.reset()
-            that.transitioning = 0
-            that.$element.trigger(completeEvent)
-          }
-
-      this.$element.trigger(startEvent)
-
-      if (startEvent.isDefaultPrevented()) return
-
-      this.transitioning = 1
-
-      this.$element[method]('in')
-
-      $.support.transition && this.$element.hasClass('collapse') ?
-        this.$element.one($.support.transition.end, complete) :
-        complete()
-    }
-
-  , toggle: function () {
-      this[this.$element.hasClass('in') ? 'hide' : 'show']()
-    }
-
-  }
-
-
- /* COLLAPSE PLUGIN DEFINITION
-  * ========================== */
-
-  var old = $.fn.collapse
-
-  $.fn.collapse = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('collapse')
-        , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
-      if (!data) $this.data('collapse', (data = new Collapse(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.collapse.defaults = {
-    toggle: true
-  }
-
-  $.fn.collapse.Constructor = Collapse
-
-
- /* COLLAPSE NO CONFLICT
-  * ==================== */
-
-  $.fn.collapse.noConflict = function () {
-    $.fn.collapse = old
-    return this
-  }
-
-
- /* COLLAPSE DATA-API
-  * ================= */
-
-  $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
-    var $this = $(this), href
-      , target = $this.attr('data-target')
-        || e.preventDefault()
-        || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
-      , option = $(target).data('collapse') ? 'toggle' : $this.data()
-    $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
-    $(target).collapse(option)
-  })
-
-/* ============================================================
- * bootstrap-dropdown.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#dropdowns
- * ============================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============================================================ */
-
-
-
-  "use strict"; // jshint ;_;
-
-
- /* DROPDOWN CLASS DEFINITION
-  * ========================= */
-
-  var toggle = '[data-toggle=dropdown]'
-    , Dropdown = function (element) {
-        var $el = $(element).on('click.dropdown.data-api', this.toggle)
-        $('html').on('click.dropdown.data-api', function () {
-          $el.parent().removeClass('open')
-        })
-      }
-
-  Dropdown.prototype = {
-
-    constructor: Dropdown
-
-  , toggle: function (e) {
-      var $this = $(this)
-        , $parent
-        , isActive
-
-      if ($this.is('.disabled, :disabled')) return
-
-      $parent = getParent($this)
-
-      isActive = $parent.hasClass('open')
-
-      clearMenus($this)
-
-      if (!isActive) {
-        if ('ontouchstart' in document.documentElement) {
-          // if mobile we we use a backdrop because click events don't delegate
-          $('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
-        }
-      }
-      $parent.toggleClass('open')
-
-      $this.focus()
-
-      return false
-    }
-
-  , keydown: function (e) {
-      var $this
-        , $items
-        , $active
-        , $parent
-        , isActive
-        , index
-
-      if (!/(38|40|27)/.test(e.keyCode)) return
-
-      $this = $(this)
-
-      e.preventDefault()
-      e.stopPropagation()
-
-      if ($this.is('.disabled, :disabled')) return
-
-      $parent = getParent($this)
-
-      isActive = $parent.hasClass('open')
-
-      if (!isActive || (isActive && e.keyCode == 27)) {
-        if (e.which == 27) $parent.find(toggle).focus()
-        return $this.click()
-      }
-
-      $items = $('[role=menu] li:not(.divider):visible a', $parent)
-
-      if (!$items.length) return
-
-      index = $items.index($items.filter(':focus'))
-
-      if (e.keyCode == 38 && index > 0) index--                                        // up
-      if (e.keyCode == 40 && index < $items.length - 1) index++                        // down
-      if (!~index) index = 0
-
-      $items
-        .eq(index)
-        .focus()
-    }
-
-  }
-
-  function clearMenus($e) {
-    $('.dropdown-backdrop').remove()
-    $(toggle).each(function () {
-      var $parent = getParent($(this))
-      if ($e == undefined || $parent.find($e).length == 0) {
-          $parent.removeClass('open')
-      }
-    })
-  }
-
-  function getParent($this) {
-    var selector = $this.attr('data-target')
-      , $parent
-
-    if (!selector) {
-      selector = $this.attr('href')
-      selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
-    }
-
-    $parent = selector && $(selector)
-
-    if (!$parent || !$parent.length) $parent = $this.parent()
-
-    return $parent
-  }
-
-
-  /* DROPDOWN PLUGIN DEFINITION
-   * ========================== */
-
-  var old = $.fn.dropdown
-
-  $.fn.dropdown = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('dropdown')
-      if (!data) $this.data('dropdown', (data = new Dropdown(this)))
-      if (typeof option == 'string') data[option].call($this)
-    })
-  }
-
-  $.fn.dropdown.Constructor = Dropdown
-
-
- /* DROPDOWN NO CONFLICT
-  * ==================== */
-
-  $.fn.dropdown.noConflict = function () {
-    $.fn.dropdown = old
-    return this
-  }
-
-
-  /* APPLY TO STANDARD DROPDOWN ELEMENTS
-   * =================================== */
-
-  $(document)
-    .on('click.dropdown.data-api', clearMenus)
-    .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
-    .on('click.dropdown.data-api'  , toggle, Dropdown.prototype.toggle)
-    .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
-
-
-/* =========================================================
- * bootstrap-modal.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#modals
- * =========================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================= */
-
-
-
-  "use strict"; // jshint ;_;
-
-
- /* MODAL CLASS DEFINITION
-  * ====================== */
-
-  var Modal = function (element, options) {
-    this.options = options
-    this.$element = $(element)
-      .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
-    this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
-  }
-
-  Modal.prototype = {
-
-      constructor: Modal
-
-    , toggle: function () {
-        return this[!this.isShown ? 'show' : 'hide']()
-      }
-
-    , show: function () {
-        var that = this
-          , e = $.Event('show')
-
-        this.$element.trigger(e)
-
-        if (this.isShown || e.isDefaultPrevented()) return
-
-        this.isShown = true
-
-        this.escape()
-
-        this.backdrop(function () {
-          var transition = $.support.transition && that.$element.hasClass('fade')
-
-          if (!that.$element.parent().length) {
-            that.$element.appendTo(document.body) //don't move modals dom position
-          }
-
-          that.$element.show()
-
-          if (transition) {
-            that.$element[0].offsetWidth // force reflow
-          }
-
-          that.$element
-            .addClass('in')
-            .attr('aria-hidden', false)
-
-          that.enforceFocus()
-
-          transition ?
-            that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
-            that.$element.focus().trigger('shown')
-
-        })
-      }
-
-    , hide: function (e) {
-        e && e.preventDefault()
-
-        var that = this
-
-        e = $.Event('hide')
-
-        this.$element.trigger(e)
-
-        if (!this.isShown || e.isDefaultPrevented()) return
-
-        this.isShown = false
-
-        this.escape()
-
-        $(document).off('focusin.modal')
-
-        this.$element
-          .removeClass('in')
-          .attr('aria-hidden', true)
-
-        $.support.transition && this.$element.hasClass('fade') ?
-          this.hideWithTransition() :
-          this.hideModal()
-      }
-
-    , enforceFocus: function () {
-        var that = this
-        $(document).on('focusin.modal', function (e) {
-          if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
-            that.$element.focus()
-          }
-        })
-      }
-
-    , escape: function () {
-        var that = this
-        if (this.isShown && this.options.keyboard) {
-          this.$element.on('keyup.dismiss.modal', function ( e ) {
-            e.which == 27 && that.hide()
-          })
-        } else if (!this.isShown) {
-          this.$element.off('keyup.dismiss.modal')
-        }
-      }
-
-    , hideWithTransition: function () {
-        var that = this
-          , timeout = setTimeout(function () {
-              that.$element.off($.support.transition.end)
-              that.hideModal()
-            }, 500)
-
-        this.$element.one($.support.transition.end, function () {
-          clearTimeout(timeout)
-          that.hideModal()
-        })
-      }
-
-    , hideModal: function () {
-        var that = this
-        this.$element.hide()
-        this.backdrop(function () {
-          that.removeBackdrop()
-          that.$element.trigger('hidden')
-        })
-      }
-
-    , removeBackdrop: function () {
-        this.$backdrop && this.$backdrop.remove()
-        this.$backdrop = null
-      }
-
-    , backdrop: function (callback) {
-        var that = this
-          , animate = this.$element.hasClass('fade') ? 'fade' : ''
-
-        if (this.isShown && this.options.backdrop) {
-          var doAnimate = $.support.transition && animate
-
-          this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
-            .appendTo(document.body)
-
-          this.$backdrop.click(
-            this.options.backdrop == 'static' ?
-              $.proxy(this.$element[0].focus, this.$element[0])
-            : $.proxy(this.hide, this)
-          )
-
-          if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
-
-          this.$backdrop.addClass('in')
-
-          if (!callback) return
-
-          doAnimate ?
-            this.$backdrop.one($.support.transition.end, callback) :
-            callback()
-
-        } else if (!this.isShown && this.$backdrop) {
-          this.$backdrop.removeClass('in')
-
-          $.support.transition && this.$element.hasClass('fade')?
-            this.$backdrop.one($.support.transition.end, callback) :
-            callback()
-
-        } else if (callback) {
-          callback()
-        }
-      }
-  }
-
-
- /* MODAL PLUGIN DEFINITION
-  * ======================= */
-
-  var old = $.fn.modal
-
-  $.fn.modal = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('modal')
-        , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
-      if (!data) $this.data('modal', (data = new Modal(this, options)))
-      if (typeof option == 'string') data[option]()
-      else if (options.show) data.show()
-    })
-  }
-
-  $.fn.modal.defaults = {
-      backdrop: true
-    , keyboard: true
-    , show: true
-  }
-
-  $.fn.modal.Constructor = Modal
-
-
- /* MODAL NO CONFLICT
-  * ================= */
-
-  $.fn.modal.noConflict = function () {
-    $.fn.modal = old
-    return this
-  }
-
-
- /* MODAL DATA-API
-  * ============== */
-
-  $(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
-    var $this = $(this)
-      , href = $this.attr('href')
-      , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
-      , option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
-
-    e.preventDefault()
-
-    $target
-      .modal(option)
-      .one('hide', function () {
-        $this.focus()
-      })
-  })
-
-
-/* ===========================================================
- * bootstrap-tooltip.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#tooltips
- * Inspired by the original jQuery.tipsy by Jason Frame
- * ===========================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-
-
-  "use strict"; // jshint ;_;
-
-
- /* TOOLTIP PUBLIC CLASS DEFINITION
-  * =============================== */
-
-  var Tooltip = function (element, options) {
-    this.init('tooltip', element, options)
-  }
-
-  Tooltip.prototype = {
-
-    constructor: Tooltip
-
-  , init: function (type, element, options) {
-      var eventIn
-        , eventOut
-        , triggers
-        , trigger
-        , i
-
-      this.type = type
-      this.$element = $(element)
-      this.options = this.getOptions(options)
-      this.enabled = true
-
-      triggers = this.options.trigger.split(' ')
-
-      for (i = triggers.length; i--;) {
-        trigger = triggers[i]
-        if (trigger == 'click') {
-          this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
-        } else if (trigger != 'manual') {
-          eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
-          eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
-          this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
-          this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
-        }
-      }
-
-      this.options.selector ?
-        (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
-        this.fixTitle()
-    }
-
-  , getOptions: function (options) {
-      options = $.extend({}, $.fn[this.type].defaults, this.$element.data(), options)
-
-      if (options.delay && typeof options.delay == 'number') {
-        options.delay = {
-          show: options.delay
-        , hide: options.delay
-        }
-      }
-
-      return options
-    }
-
-  , enter: function (e) {
-      var defaults = $.fn[this.type].defaults
-        , options = {}
-        , self
-
-      this._options && $.each(this._options, function (key, value) {
-        if (defaults[key] != value) options[key] = value
-      }, this)
-
-      self = $(e.currentTarget)[this.type](options).data(this.type)
-
-      if (!self.options.delay || !self.options.delay.show) return self.show()
-
-      clearTimeout(this.timeout)
-      self.hoverState = 'in'
-      this.timeout = setTimeout(function() {
-        if (self.hoverState == 'in') self.show()
-      }, self.options.delay.show)
-    }
-
-  , leave: function (e) {
-      var self = $(e.currentTarget)[this.type](this._options).data(this.type)
-
-      if (this.timeout) clearTimeout(this.timeout)
-      if (!self.options.delay || !self.options.delay.hide) return self.hide()
-
-      self.hoverState = 'out'
-      this.timeout = setTimeout(function() {
-        if (self.hoverState == 'out') self.hide()
-      }, self.options.delay.hide)
-    }
-
-  , show: function () {
-      var $tip
-        , pos
-        , actualWidth
-        , actualHeight
-        , placement
-        , tp
-        , e = $.Event('show')
-
-      if (this.hasContent() && this.enabled) {
-        this.$element.trigger(e)
-        if (e.isDefaultPrevented()) return
-        $tip = this.tip()
-        this.setContent()
-
-        if (this.options.animation) {
-          $tip.addClass('fade')
-        }
-
-        placement = typeof this.options.placement == 'function' ?
-          this.options.placement.call(this, $tip[0], this.$element[0]) :
-          this.options.placement
-
-        $tip
-          .detach()
-          .css({ top: 0, left: 0, display: 'block' })
-
-        this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
-
-        pos = this.getPosition()
-
-        actualWidth = $tip[0].offsetWidth
-        actualHeight = $tip[0].offsetHeight
-
-        switch (placement) {
-          case 'bottom':
-            tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
-            break
-          case 'top':
-            tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
-            break
-          case 'left':
-            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
-            break
-          case 'right':
-            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
-            break
-        }
-
-        this.applyPlacement(tp, placement)
-        this.$element.trigger('shown')
-      }
-    }
-
-  , applyPlacement: function(offset, placement){
-      var $tip = this.tip()
-        , width = $tip[0].offsetWidth
-        , height = $tip[0].offsetHeight
-        , actualWidth
-        , actualHeight
-        , delta
-        , replace
-
-      $tip
-        .offset(offset)
-        .addClass(placement)
-        .addClass('in')
-
-      actualWidth = $tip[0].offsetWidth
-      actualHeight = $tip[0].offsetHeight
-
-      if (placement == 'top' && actualHeight != height) {
-        offset.top = offset.top + height - actualHeight
-        replace = true
-      }
-
-      if (placement == 'bottom' || placement == 'top') {
-        delta = 0
-
-        if (offset.left < 0){
-          delta = offset.left * -2
-          offset.left = 0
-          $tip.offset(offset)
-          actualWidth = $tip[0].offsetWidth
-          actualHeight = $tip[0].offsetHeight
-        }
-
-        this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
-      } else {
-        this.replaceArrow(actualHeight - height, actualHeight, 'top')
-      }
-
-      if (replace) $tip.offset(offset)
-    }
-
-  , replaceArrow: function(delta, dimension, position){
-      this
-        .arrow()
-        .css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
-    }
-
-  , setContent: function () {
-      var $tip = this.tip()
-        , title = this.getTitle()
-
-      $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
-      $tip.removeClass('fade in top bottom left right')
-    }
-
-  , hide: function () {
-      var that = this
-        , $tip = this.tip()
-        , e = $.Event('hide')
-
-      this.$element.trigger(e)
-      if (e.isDefaultPrevented()) return
-
-      $tip.removeClass('in')
-
-      function removeWithAnimation() {
-        var timeout = setTimeout(function () {
-          $tip.off($.support.transition.end).detach()
-        }, 500)
-
-        $tip.one($.support.transition.end, function () {
-          clearTimeout(timeout)
-          $tip.detach()
-        })
-      }
-
-      $.support.transition && this.$tip.hasClass('fade') ?
-        removeWithAnimation() :
-        $tip.detach()
-
-      this.$element.trigger('hidden')
-
-      return this
-    }
-
-  , fixTitle: function () {
-      var $e = this.$element
-      if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
-        $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
-      }
-    }
-
-  , hasContent: function () {
-      return this.getTitle()
-    }
-
-  , getPosition: function () {
-      var el = this.$element[0]
-      return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
-        width: el.offsetWidth
-      , height: el.offsetHeight
-      }, this.$element.offset())
-    }
-
-  , getTitle: function () {
-      var title
-        , $e = this.$element
-        , o = this.options
-
-      title = $e.attr('data-original-title')
-        || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)
-
-      return title
-    }
-
-  , tip: function () {
-      return this.$tip = this.$tip || $(this.options.template)
-    }
-
-  , arrow: function(){
-      return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
-    }
-
-  , validate: function () {
-      if (!this.$element[0].parentNode) {
-        this.hide()
-        this.$element = null
-        this.options = null
-      }
-    }
-
-  , enable: function () {
-      this.enabled = true
-    }
-
-  , disable: function () {
-      this.enabled = false
-    }
-
-  , toggleEnabled: function () {
-      this.enabled = !this.enabled
-    }
-
-  , toggle: function (e) {
-      var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
-      self.tip().hasClass('in') ? self.hide() : self.show()
-    }
-
-  , destroy: function () {
-      this.hide().$element.off('.' + this.type).removeData(this.type)
-    }
-
-  }
-
-
- /* TOOLTIP PLUGIN DEFINITION
-  * ========================= */
-
-  var old = $.fn.tooltip
-
-  $.fn.tooltip = function ( option ) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('tooltip')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.tooltip.Constructor = Tooltip
-
-  $.fn.tooltip.defaults = {
-    animation: true
-  , placement: 'top'
-  , selector: false
-  , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
-  , trigger: 'hover focus'
-  , title: ''
-  , delay: 0
-  , html: false
-  , container: false
-  }
-
-
- /* TOOLTIP NO CONFLICT
-  * =================== */
-
-  $.fn.tooltip.noConflict = function () {
-    $.fn.tooltip = old
-    return this
-  }
-
-
-/* ===========================================================
- * bootstrap-popover.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#popovers
- * ===========================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * =========================================================== */
-
-
-
-  "use strict"; // jshint ;_;
-
-
- /* POPOVER PUBLIC CLASS DEFINITION
-  * =============================== */
-
-  var Popover = function (element, options) {
-    this.init('popover', element, options)
-  }
-
-
-  /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
-     ========================================== */
-
-  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
-
-    constructor: Popover
-
-  , setContent: function () {
-      var $tip = this.tip()
-        , title = this.getTitle()
-        , content = this.getContent()
-
-      $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
-      $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
-
-      $tip.removeClass('fade top bottom left right in')
-    }
-
-  , hasContent: function () {
-      return this.getTitle() || this.getContent()
-    }
-
-  , getContent: function () {
-      var content
-        , $e = this.$element
-        , o = this.options
-
-      content = (typeof o.content == 'function' ? o.content.call($e[0]) :  o.content)
-        || $e.attr('data-content')
-
-      return content
-    }
-
-  , tip: function () {
-      if (!this.$tip) {
-        this.$tip = $(this.options.template)
-      }
-      return this.$tip
-    }
-
-  , destroy: function () {
-      this.hide().$element.off('.' + this.type).removeData(this.type)
-    }
-
-  })
-
-
- /* POPOVER PLUGIN DEFINITION
-  * ======================= */
-
-  var old = $.fn.popover
-
-  $.fn.popover = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('popover')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('popover', (data = new Popover(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.popover.Constructor = Popover
-
-  $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
-    placement: 'right'
-  , trigger: 'click'
-  , content: ''
-  , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
-  })
-
-
- /* POPOVER NO CONFLICT
-  * =================== */
-
-  $.fn.popover.noConflict = function () {
-    $.fn.popover = old
-    return this
-  }
-
-
-/* =============================================================
- * bootstrap-scrollspy.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#scrollspy
- * =============================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============================================================== */
-
-
-
-  "use strict"; // jshint ;_;
-
-
- /* SCROLLSPY CLASS DEFINITION
-  * ========================== */
-
-  function ScrollSpy(element, options) {
-    var process = $.proxy(this.process, this)
-      , $element = $(element).is('body') ? $(window) : $(element)
-      , href
-    this.options = $.extend({}, $.fn.scrollspy.defaults, options)
-    this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
-    this.selector = (this.options.target
-      || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
-      || '') + ' .nav li > a'
-    this.$body = $('body')
-    this.refresh()
-    this.process()
-  }
-
-  ScrollSpy.prototype = {
-
-      constructor: ScrollSpy
-
-    , refresh: function () {
-        var self = this
-          , $targets
-
-        this.offsets = $([])
-        this.targets = $([])
-
-        $targets = this.$body
-          .find(this.selector)
-          .map(function () {
-            var $el = $(this)
-              , href = $el.data('target') || $el.attr('href')
-              , $href = /^#\w/.test(href) && $(href)
-            return ( $href
-              && $href.length
-              && [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null
-          })
-          .sort(function (a, b) { return a[0] - b[0] })
-          .each(function () {
-            self.offsets.push(this[0])
-            self.targets.push(this[1])
-          })
-      }
-
-    , process: function () {
-        var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
-          , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
-          , maxScroll = scrollHeight - this.$scrollElement.height()
-          , offsets = this.offsets
-          , targets = this.targets
-          , activeTarget = this.activeTarget
-          , i
-
-        if (scrollTop >= maxScroll) {
-          return activeTarget != (i = targets.last()[0])
-            && this.activate ( i )
-        }
-
-        for (i = offsets.length; i--;) {
-          activeTarget != targets[i]
-            && scrollTop >= offsets[i]
-            && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
-            && this.activate( targets[i] )
-        }
-      }
-
-    , activate: function (target) {
-        var active
-          , selector
-
-        this.activeTarget = target
-
-        $(this.selector)
-          .parent('.active')
-          .removeClass('active')
-
-        selector = this.selector
-          + '[data-target="' + target + '"],'
-          + this.selector + '[href="' + target + '"]'
-
-        active = $(selector)
-          .parent('li')
-          .addClass('active')
-
-        if (active.parent('.dropdown-menu').length)  {
-          active = active.closest('li.dropdown').addClass('active')
-        }
-
-        active.trigger('activate')
-      }
-
-  }
-
-
- /* SCROLLSPY PLUGIN DEFINITION
-  * =========================== */
-
-  var old = $.fn.scrollspy
-
-  $.fn.scrollspy = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('scrollspy')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.scrollspy.Constructor = ScrollSpy
-
-  $.fn.scrollspy.defaults = {
-    offset: 10
-  }
-
-
- /* SCROLLSPY NO CONFLICT
-  * ===================== */
-
-  $.fn.scrollspy.noConflict = function () {
-    $.fn.scrollspy = old
-    return this
-  }
-
-
- /* SCROLLSPY DATA-API
-  * ================== */
-
-  $(window).on('load', function () {
-    $('[data-spy="scroll"]').each(function () {
-      var $spy = $(this)
-      $spy.scrollspy($spy.data())
-    })
-  })
-
-/* ========================================================
- * bootstrap-tab.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#tabs
- * ========================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ======================================================== */
-
-
-
-  "use strict"; // jshint ;_;
-
-
- /* TAB CLASS DEFINITION
-  * ==================== */
-
-  var Tab = function (element) {
-    this.element = $(element)
-  }
-
-  Tab.prototype = {
-
-    constructor: Tab
-
-  , show: function () {
-      var $this = this.element
-        , $ul = $this.closest('ul:not(.dropdown-menu)')
-        , selector = $this.attr('data-target')
-        , previous
-        , $target
-        , e
-
-      if (!selector) {
-        selector = $this.attr('href')
-        selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
-      }
-
-      if ( $this.parent('li').hasClass('active') ) return
-
-      previous = $ul.find('.active:last a')[0]
-
-      e = $.Event('show', {
-        relatedTarget: previous
-      })
-
-      $this.trigger(e)
-
-      if (e.isDefaultPrevented()) return
-
-      $target = $(selector)
-
-      this.activate($this.parent('li'), $ul)
-      this.activate($target, $target.parent(), function () {
-        $this.trigger({
-          type: 'shown'
-        , relatedTarget: previous
-        })
-      })
-    }
-
-  , activate: function ( element, container, callback) {
-      var $active = container.find('> .active')
-        , transition = callback
-            && $.support.transition
-            && $active.hasClass('fade')
-
-      function next() {
-        $active
-          .removeClass('active')
-          .find('> .dropdown-menu > .active')
-          .removeClass('active')
-
-        element.addClass('active')
-
-        if (transition) {
-          element[0].offsetWidth // reflow for transition
-          element.addClass('in')
-        } else {
-          element.removeClass('fade')
-        }
-
-        if ( element.parent('.dropdown-menu') ) {
-          element.closest('li.dropdown').addClass('active')
-        }
-
-        callback && callback()
-      }
-
-      transition ?
-        $active.one($.support.transition.end, next) :
-        next()
-
-      $active.removeClass('in')
-    }
-  }
-
-
- /* TAB PLUGIN DEFINITION
-  * ===================== */
-
-  var old = $.fn.tab
-
-  $.fn.tab = function ( option ) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('tab')
-      if (!data) $this.data('tab', (data = new Tab(this)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.tab.Constructor = Tab
-
-
- /* TAB NO CONFLICT
-  * =============== */
-
-  $.fn.tab.noConflict = function () {
-    $.fn.tab = old
-    return this
-  }
-
-
- /* TAB DATA-API
-  * ============ */
-
-  $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
-    e.preventDefault()
-    $(this).tab('show')
-  })
-
-/* =============================================================
- * bootstrap-typeahead.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#typeahead
- * =============================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============================================================ */
-
-
-
-  "use strict"; // jshint ;_;
-
-
- /* TYPEAHEAD PUBLIC CLASS DEFINITION
-  * ================================= */
-
-  var Typeahead = function (element, options) {
-    this.$element = $(element)
-    this.options = $.extend({}, $.fn.typeahead.defaults, options)
-    this.matcher = this.options.matcher || this.matcher
-    this.sorter = this.options.sorter || this.sorter
-    this.highlighter = this.options.highlighter || this.highlighter
-    this.updater = this.options.updater || this.updater
-    this.source = this.options.source
-    this.$menu = $(this.options.menu)
-    this.shown = false
-    this.listen()
-  }
-
-  Typeahead.prototype = {
-
-    constructor: Typeahead
-
-  , select: function () {
-      var val = this.$menu.find('.active').attr('data-value')
-      this.$element
-        .val(this.updater(val))
-        .change()
-      return this.hide()
-    }
-
-  , updater: function (item) {
-      return item
-    }
-
-  , show: function () {
-      var pos = $.extend({}, this.$element.position(), {
-        height: this.$element[0].offsetHeight
-      })
-
-      this.$menu
-        .insertAfter(this.$element)
-        .css({
-          top: pos.top + pos.height
-        , left: pos.left
-        })
-        .show()
-
-      this.shown = true
-      return this
-    }
-
-  , hide: function () {
-      this.$menu.hide()
-      this.shown = false
-      return this
-    }
-
-  , lookup: function (event) {
-      var items
-
-      this.query = this.$element.val()
-
-      if (!this.query || this.query.length < this.options.minLength) {
-        return this.shown ? this.hide() : this
-      }
-
-      items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source
-
-      return items ? this.process(items) : this
-    }
-
-  , process: function (items) {
-      var that = this
-
-      items = $.grep(items, function (item) {
-        return that.matcher(item)
-      })
-
-      items = this.sorter(items)
-
-      if (!items.length) {
-        return this.shown ? this.hide() : this
-      }
-
-      return this.render(items.slice(0, this.options.items)).show()
-    }
-
-  , matcher: function (item) {
-      return ~item.toLowerCase().indexOf(this.query.toLowerCase())
-    }
-
-  , sorter: function (items) {
-      var beginswith = []
-        , caseSensitive = []
-        , caseInsensitive = []
-        , item
-
-      while (item = items.shift()) {
-        if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item)
-        else if (~item.indexOf(this.query)) caseSensitive.push(item)
-        else caseInsensitive.push(item)
-      }
-
-      return beginswith.concat(caseSensitive, caseInsensitive)
-    }
-
-  , highlighter: function (item) {
-      var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
-      return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
-        return '<strong>' + match + '</strong>'
-      })
-    }
-
-  , render: function (items) {
-      var that = this
-
-      items = $(items).map(function (i, item) {
-        i = $(that.options.item).attr('data-value', item)
-        i.find('a').html(that.highlighter(item))
-        return i[0]
-      })
-
-      items.first().addClass('active')
-      this.$menu.html(items)
-      return this
-    }
-
-  , next: function (event) {
-      var active = this.$menu.find('.active').removeClass('active')
-        , next = active.next()
-
-      if (!next.length) {
-        next = $(this.$menu.find('li')[0])
-      }
-
-      next.addClass('active')
-    }
-
-  , prev: function (event) {
-      var active = this.$menu.find('.active').removeClass('active')
-        , prev = active.prev()
-
-      if (!prev.length) {
-        prev = this.$menu.find('li').last()
-      }
-
-      prev.addClass('active')
-    }
-
-  , listen: function () {
-      this.$element
-        .on('focus',    $.proxy(this.focus, this))
-        .on('blur',     $.proxy(this.blur, this))
-        .on('keypress', $.proxy(this.keypress, this))
-        .on('keyup',    $.proxy(this.keyup, this))
-
-      if (this.eventSupported('keydown')) {
-        this.$element.on('keydown', $.proxy(this.keydown, this))
-      }
-
-      this.$menu
-        .on('click', $.proxy(this.click, this))
-        .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
-        .on('mouseleave', 'li', $.proxy(this.mouseleave, this))
-    }
-
-  , eventSupported: function(eventName) {
-      var isSupported = eventName in this.$element
-      if (!isSupported) {
-        this.$element.setAttribute(eventName, 'return;')
-        isSupported = typeof this.$element[eventName] === 'function'
-      }
-      return isSupported
-    }
-
-  , move: function (e) {
-      if (!this.shown) return
-
-      switch(e.keyCode) {
-        case 9: // tab
-        case 13: // enter
-        case 27: // escape
-          e.preventDefault()
-          break
-
-        case 38: // up arrow
-          e.preventDefault()
-          this.prev()
-          break
-
-        case 40: // down arrow
-          e.preventDefault()
-          this.next()
-          break
-      }
-
-      e.stopPropagation()
-    }
-
-  , keydown: function (e) {
-      this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27])
-      this.move(e)
-    }
-
-  , keypress: function (e) {
-      if (this.suppressKeyPressRepeat) return
-      this.move(e)
-    }
-
-  , keyup: function (e) {
-      switch(e.keyCode) {
-        case 40: // down arrow
-        case 38: // up arrow
-        case 16: // shift
-        case 17: // ctrl
-        case 18: // alt
-          break
-
-        case 9: // tab
-        case 13: // enter
-          if (!this.shown) return
-          this.select()
-          break
-
-        case 27: // escape
-          if (!this.shown) return
-          this.hide()
-          break
-
-        default:
-          this.lookup()
-      }
-
-      e.stopPropagation()
-      e.preventDefault()
-  }
-
-  , focus: function (e) {
-      this.focused = true
-    }
-
-  , blur: function (e) {
-      this.focused = false
-      if (!this.mousedover && this.shown) this.hide()
-    }
-
-  , click: function (e) {
-      e.stopPropagation()
-      e.preventDefault()
-      this.select()
-      this.$element.focus()
-    }
-
-  , mouseenter: function (e) {
-      this.mousedover = true
-      this.$menu.find('.active').removeClass('active')
-      $(e.currentTarget).addClass('active')
-    }
-
-  , mouseleave: function (e) {
-      this.mousedover = false
-      if (!this.focused && this.shown) this.hide()
-    }
-
-  }
-
-
-  /* TYPEAHEAD PLUGIN DEFINITION
-   * =========================== */
-
-  var old = $.fn.typeahead
-
-  $.fn.typeahead = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('typeahead')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('typeahead', (data = new Typeahead(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.typeahead.defaults = {
-    source: []
-  , items: 8
-  , menu: '<ul class="typeahead dropdown-menu"></ul>'
-  , item: '<li><a href="#"></a></li>'
-  , minLength: 1
-  }
-
-  $.fn.typeahead.Constructor = Typeahead
-
-
- /* TYPEAHEAD NO CONFLICT
-  * =================== */
-
-  $.fn.typeahead.noConflict = function () {
-    $.fn.typeahead = old
-    return this
-  }
-
-
- /* TYPEAHEAD DATA-API
-  * ================== */
-
-  $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
-    var $this = $(this)
-    if ($this.data('typeahead')) return
-    $this.typeahead($this.data())
-  })
-
-
-/* ==========================================================
- * bootstrap-affix.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#affix
- * ==========================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-
-
-  "use strict"; // jshint ;_;
-
-
- /* AFFIX CLASS DEFINITION
-  * ====================== */
-
-  var Affix = function (element, options) {
-    this.options = $.extend({}, $.fn.affix.defaults, options)
-    this.$window = $(window)
-      .on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
-      .on('click.affix.data-api',  $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
-    this.$element = $(element)
-    this.checkPosition()
-  }
-
-  Affix.prototype.checkPosition = function () {
-    if (!this.$element.is(':visible')) return
-
-    var scrollHeight = $(document).height()
-      , scrollTop = this.$window.scrollTop()
-      , position = this.$element.offset()
-      , offset = this.options.offset
-      , offsetBottom = offset.bottom
-      , offsetTop = offset.top
-      , reset = 'affix affix-top affix-bottom'
-      , affix
-
-    if (typeof offset != 'object') offsetBottom = offsetTop = offset
-    if (typeof offsetTop == 'function') offsetTop = offset.top()
-    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
-
-    affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ?
-      false    : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ?
-      'bottom' : offsetTop != null && scrollTop <= offsetTop ?
-      'top'    : false
-
-    if (this.affixed === affix) return
-
-    this.affixed = affix
-    this.unpin = affix == 'bottom' ? position.top - scrollTop : null
-
-    this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
-  }
-
-
- /* AFFIX PLUGIN DEFINITION
-  * ======================= */
-
-  var old = $.fn.affix
-
-  $.fn.affix = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('affix')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('affix', (data = new Affix(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.affix.Constructor = Affix
-
-  $.fn.affix.defaults = {
-    offset: 0
-  }
-
-
- /* AFFIX NO CONFLICT
-  * ================= */
-
-  $.fn.affix.noConflict = function () {
-    $.fn.affix = old
-    return this
-  }
-
-
- /* AFFIX DATA-API
-  * ============== */
-
-  $(window).on('load', function () {
-    $('[data-spy="affix"]').each(function () {
-      var $spy = $(this)
-        , data = $spy.data()
-
-      data.offset = data.offset || {}
-
-      data.offsetBottom && (data.offset.bottom = data.offsetBottom)
-      data.offsetTop && (data.offset.top = data.offsetTop)
-
-      $spy.affix(data)
-    })
-  })
-
-
-
-});
-/* jshint ignore:end */
diff --git a/theme/bootstrapbase/classes/privacy/provider.php b/theme/bootstrapbase/classes/privacy/provider.php
deleted file mode 100644 (file)
index 84816bc..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-// This file is part of Moodle - http://moodle.org/
-//
-// Moodle is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Moodle is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
-
-/**
- * Privacy Subsystem implementation for theme_bootstrapbase.
- *
- * @package    theme_bootstrapbase
- * @copyright  2018 Andrew Nicols <andrew@nicols.co.uk>
- * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
- */
-
-namespace theme_bootstrapbase\privacy;
-
-defined('MOODLE_INTERNAL') || die();
-
-/**
- * The bootstrapbase theme does not store any data.
- *
- * @copyright  2018 Andrew Nicols <andrew@nicols.co.uk>
- * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
- */
-class provider implements \core_privacy\local\metadata\null_provider {
-
-    /**
-     * Get the language string identifier with the component's language
-     * file to explain why this plugin stores no data.
-     *
-     * @return  string
-     */
-    public static function get_reason() : string {
-        return 'privacy:metadata';
-    }
-}
diff --git a/theme/bootstrapbase/config.php b/theme/bootstrapbase/config.php
deleted file mode 100644 (file)
index d5ee09e..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-<?php
-// This file is part of Moodle - http://moodle.org/
-//
-// Moodle is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Moodle is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
-
-/**
- * Configuration for Moodle's bootstrap theme.
- *
- * DO NOT MODIFY THIS THEME!
- * COPY IT FIRST, THEN RENAME THE COPY AND MODIFY IT INSTEAD.
- *
- * For full information about creating Moodle themes, see:
- * http://docs.moodle.org/dev/Themes_2.0
- *
- * @package   theme_bootstrapbase
- * @copyright 2013 Bas Brands. www.sonsbeekmedia.nl
- * @author    Bas Brands
- * @author    David Scotson
- * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
- */
-
-$THEME->doctype = 'html5';
-$THEME->yuicssmodules = array();
-$THEME->name = 'bootstrapbase';
-$THEME->parents = array();
-$THEME->sheets = array('moodle');
-$THEME->enable_dock = false;
-$THEME->editor_sheets = array('editor');
-
-$THEME->rendererfactory = 'theme_overridden_renderer_factory';
-
-$THEME->layouts = array(
-    // Most backwards compatible layout without the blocks - this is the layout used by default.
-    'base' => array(
-        'file' => 'columns1.php',
-        'regions' => array(),
-    ),
-    // Standard layout with blocks, this is recommended for most pages with general information.
-    'standard' => array(
-        'file' => 'columns3.php',
-        'regions' => array('side-pre', 'side-post'),
-        'defaultregion' => 'side-pre',
-    ),
-    // Main course page.
-    'course' => array(
-        'file' => 'columns3.php',
-        'regions' => array('side-pre', 'side-post'),
-        'defaultregion' => 'side-pre',
-        'options' => array('langmenu' => true),
-    ),
-    'coursecategory' => array(
-        'file' => 'columns3.php',
-        'regions' => array('side-pre', 'side-post'),
-        'defaultregion' => 'side-pre',
-    ),
-    // Part of course, typical for modules - default page layout if $cm specified in require_login().
-    'incourse' => array(
-        'file' => 'columns3.php',
-        'regions' => array('side-pre', 'side-post'),
-        'defaultregion' => 'side-pre',
-    ),
-    // The site home page.
-    'frontpage' => array(
-        'file' => 'columns3.php',
-        'regions' => array('side-pre', 'side-post'),
-        'defaultregion' => 'side-pre',
-        'options' => array('nonavbar' => true),
-    ),
-    // Server administration scripts.
-    'admin' => array(
-        'file' => 'columns2.php',
-        'regions' => array('side-pre'),
-        'defaultregion' => 'side-pre',
-    ),
-    // My dashboard page.
-    'mydashboard' => array(
-        'file' => 'columns3.php',
-        'regions' => array('side-pre', 'side-post'),
-        'defaultregion' => 'side-pre',
-        'options' => array('langmenu' => true, 'nocontextheader' => true),
-    ),
-    // My public page.
-    'mypublic' => array(
-        'file' => 'columns2.php',
-        'regions' => array('side-pre'),
-        'defaultregion' => 'side-pre',
-    ),
-    'login' => array(
-        'file' => 'columns1.php',
-        'regions' => array(),
-        'options' => array('langmenu' => true),
-    ),
-
-    // Pages that appear in pop-up windows - no navigation, no blocks, no header.
-    'popup' => array(
-        'file' => 'popup.php',
-        'regions' => array(),
-        'options' => array('nofooter' => true, 'nonavbar' => true),
-    ),
-    // No blocks and minimal footer - used for legacy frame layouts only!
-    'frametop' => array(
-        'file' => 'columns1.php',
-        'regions' => array(),
-        'options' => array('nofooter' => true, 'nocoursefooter' => true),
-    ),
-    // Embeded pages, like iframe/object embeded in moodleform - it needs as much space as possible.
-    'embedded' => array(
-        'file' => 'embedded.php',
-        'regions' => array()
-    ),
-    // Used during upgrade and install, and for the 'This site is undergoing maintenance' message.
-    // This must not have any blocks, links, or API calls that would lead to database or cache interaction.
-    // Please be extremely careful if you are modifying this layout.
-    'maintenance' => array(
-        'file' => 'maintenance.php',
-        'regions' => array(),
-    ),
-    // Should display the content and basic headers only.
-    'print' => array(
-        'file' => 'columns1.php',
-        'regions' => array(),
-        'options' => array('nofooter' => true, 'nonavbar' => false),
-    ),
-    // The pagelayout used when a redirection is occuring.
-    'redirect' => array(
-        'file' => 'embedded.php',
-        'regions' => array(),
-    ),
-    // The pagelayout used for reports.
-    'report' => array(
-        'file' => 'columns2.php',
-        'regions' => array('side-pre'),
-        'defaultregion' => 'side-pre',
-    ),
-    // The pagelayout used for safebrowser and securewindow.
-    'secure' => array(
-        'file' => 'secure.php',
-        'regions' => array('side-pre', 'side-post'),
-        'defaultregion' => 'side-pre'
-    ),
-);
-
-$THEME->javascripts = array(
-);
-$THEME->javascripts_footer = array(
-    'moodlebootstrap', 'dock'
-);
-
-if (core_useragent::is_ie() && !core_useragent::check_ie_version('9.0')) {
-    $THEME->javascripts[] = 'html5shiv';
-}
-
-$THEME->hidefromselector = true;
diff --git a/theme/bootstrapbase/javascript/dock.js b/theme/bootstrapbase/javascript/dock.js
deleted file mode 100644 (file)
index 3e29b49..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * Customise the dock for this theme.
- *
- * Tasks we do within this function:
- *   - Add 'block' as a class to the dock panel so that its items are styled the same as they are when being displayed
- *     in page as blocks.
- *   - Constrain the width of the docked block to the window width using a responsible max-width.
- *   - Handle the opening/closing of the Bootstrap collapsible navbar on small screens.
- */
-function customise_dock_for_theme(dock) {
-    // Add the "block" class to docked blocks.
-    // This prevents having to restyle all docked blocks and simply use standard block styling.
-    // First we wait until the panel has been generated.
-    dock.on('dock:panelgenerated', function() {
-        // Then we wait until the panel it is being shown for the first time.
-        dock.get('panel').once('dockpanel:beforeshow', function() {
-            // Finally we add the block class.
-            Y.all('.dockeditempanel_content').addClass('block');
-        });
-        dock.get('panel').on('dockpanel:beforeshow', function() {
-            var content = Y.all('.dockeditempanel_content');
-            // Finally set a responsible max width.
-            content.setStyle('maxWidth', content.get('winWidth') - dock.get('dockNode').get('offsetWidth') - 10);
-        });
-    });
-
-    // Handle the opening/closing of the bootstrap collapsible navbar on small screens.
-    // This is a complex little bit of JS because we need to simulate Bootstrap actions in order to measure height changes
-    // in the dom and apply them as spacing to the dock.
-    dock.on('dock:initialised', function() {
-        var navbar = Y.one('header.navbar'),
-            navbarbtn = Y.one('header.navbar .btn-navbar'),
-            navcollapse = Y.one('header.navbar .nav-collapse'),
-            container = Y.one('#dock .dockeditem_container'),
-            margintop = null,
-            newmargintop = null,
-            diff = null;
-        if (navbar && navbarbtn && container) {
-            margintop = parseInt(container.getStyle('marginTop').replace(/px$/, ''), 10);
-            diff = margintop - parseInt(navbar.get('offsetHeight'), 10);
-            navbarbtn.ancestor().on('click', function() {
-                // We need to fake the collapsible region being active, this JS *ALWAYS* executes before the bootstrap JS.
-                navcollapse.toggleClass('active');
-                if (!this.hasClass('active')) {
-                    newmargintop = (parseInt(navbar.get('offsetHeight'), 10) + diff);
-                    container.setStyle('marginTop', newmargintop + 'px');
-                } else {
-                    container.setStyle('marginTop', margintop + 'px');
-                }
-                // Undo the simulation.
-                navcollapse.toggleClass('active');
-                // Tell the dock things have changed so that it automatically resizes things.
-                dock.fire('dock:itemschanged');
-            }, navbarbtn);
-        }
-    });
-}
\ No newline at end of file
diff --git a/theme/bootstrapbase/javascript/html5shiv.js b/theme/bootstrapbase/javascript/html5shiv.js
deleted file mode 100644 (file)
index 45ea723..0000000
+++ /dev/null
@@ -1,326 +0,0 @@
-/**
-* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
-*/
-;(function(window, document) {
-/*jshint evil:true */
-  /** version */
-  var version = '3.7.3';
-
-  /** Preset options */
-  var options = window.html5 || {};
-
-  /** Used to skip problem elements */
-  var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
-
-  /** Not all elements can be cloned in IE **/
-  var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
-
-  /** Detect whether the browser supports default html5 styles */
-  var supportsHtml5Styles;
-
-  /** Name of the expando, to work with multiple documents or to re-shiv one document */
-  var expando = '_html5shiv';
-
-  /** The id for the the documents expando */
-  var expanID = 0;
-
-  /** Cached data for each document */
-  var expandoData = {};
-
-  /** Detect whether the browser supports unknown elements */
-  var supportsUnknownElements;
-
-  (function() {
-    try {
-        var a = document.createElement('a');
-        a.innerHTML = '<xyz></xyz>';
-        //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
-        supportsHtml5Styles = ('hidden' in a);
-
-        supportsUnknownElements = a.childNodes.length == 1 || (function() {
-          // assign a false positive if unable to shiv
-          (document.createElement)('a');
-          var frag = document.createDocumentFragment();
-          return (
-            typeof frag.cloneNode == 'undefined' ||
-            typeof frag.createDocumentFragment == 'undefined' ||
-            typeof frag.createElement == 'undefined'
-          );
-        }());
-    } catch(e) {
-      // assign a false positive if detection fails => unable to shiv
-      supportsHtml5Styles = true;
-      supportsUnknownElements = true;
-    }
-
-  }());
-
-  /*--------------------------------------------------------------------------*/
-
-  /**
-   * Creates a style sheet with the given CSS text and adds it to the document.
-   * @private
-   * @param {Document} ownerDocument The document.
-   * @param {String} cssText The CSS text.
-   * @returns {StyleSheet} The style element.
-   */
-  function addStyleSheet(ownerDocument, cssText) {
-    var p = ownerDocument.createElement('p'),
-        parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
-
-    p.innerHTML = 'x<style>' + cssText + '</style>';
-    return parent.insertBefore(p.lastChild, parent.firstChild);
-  }
-
-  /**
-   * Returns the value of `html5.elements` as an array.
-   * @private
-   * @returns {Array} An array of shived element node names.
-   */
-  function getElements() {
-    var elements = html5.elements;
-    return typeof elements == 'string' ? elements.split(' ') : elements;
-  }
-
-  /**
-   * Extends the built-in list of html5 elements
-   * @memberOf html5
-   * @param {String|Array} newElements whitespace separated list or array of new element names to shiv
-   * @param {Document} ownerDocument The context document.
-   */
-  function addElements(newElements, ownerDocument) {
-    var elements = html5.elements;
-    if(typeof elements != 'string'){
-      elements = elements.join(' ');
-    }
-    if(typeof newElements != 'string'){
-      newElements = newElements.join(' ');
-    }
-    html5.elements = elements +' '+ newElements;
-    shivDocument(ownerDocument);
-  }
-
-   /**
-   * Returns the data associated to the given document
-   * @private
-   * @param {Document} ownerDocument The document.
-   * @returns {Object} An object of data.
-   */
-  function getExpandoData(ownerDocument) {
-    var data = expandoData[ownerDocument[expando]];
-    if (!data) {
-        data = {};
-        expanID++;
-        ownerDocument[expando] = expanID;
-        expandoData[expanID] = data;
-    }
-    return data;
-  }
-
-  /**
-   * returns a shived element for the given nodeName and document
-   * @memberOf html5
-   * @param {String} nodeName name of the element
-   * @param {Document|DocumentFragment} ownerDocument The context document.
-   * @returns {Object} The shived element.
-   */
-  function createElement(nodeName, ownerDocument, data){
-    if (!ownerDocument) {
-        ownerDocument = document;
-    }
-    if(supportsUnknownElements){
-        return ownerDocument.createElement(nodeName);
-    }
-    if (!data) {
-        data = getExpandoData(ownerDocument);
-    }
-    var node;
-
-    if (data.cache[nodeName]) {
-        node = data.cache[nodeName].cloneNode();
-    } else if (saveClones.test(nodeName)) {
-        node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
-    } else {
-        node = data.createElem(nodeName);
-    }
-
-    // Avoid adding some elements to fragments in IE < 9 because
-    // * Attributes like `name` or `type` cannot be set/changed once an element
-    //   is inserted into a document/fragment
-    // * Link elements with `src` attributes that are inaccessible, as with
-    //   a 403 response, will cause the tab/window to crash
-    // * Script elements appended to fragments will execute when their `src`
-    //   or `text` property is set
-    return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
-  }
-
-&n