b83ad077 by Jeff Balicki

resources

Signed-off-by: Jeff <jeff@gotenzing.com>
1 parent 2566d956
.wp-admin .media-toolbar-secondary select {
margin: 11px 16px 0 0;
}
.media-term-section {
margin: 0 0 20px;
}
.media-terms {
background: #fff;
border: 1px solid #dfdfdf;
border-radius: 3px;
max-height: 145px;
overflow: auto;
padding: 6px 8px;
}
.wp-admin .media-terms label {
display: block;
}
.wp-admin .media-terms input[type="checkbox"] {
margin: 0 5px 0 0;
position: relative;
top: -1px;
width: auto;
}
.media-terms ul ul {
padding: 10px 0 5px 10px;
}
.media-terms ul li:last-child {
margin: 0;
}
.add-new-term {
display: none;
}
.media-save-terms {
position: relative;
}
.media-save-terms:before {
background: url( '../images/saving.gif ') no-repeat #fff;
content: '';
display: block;
height: 16px;
position: absolute;
right: 5px;
top: 5px;
width: 16px
}
.media-save-terms label {
opacity: .5
}
/* Add new media term */
.toggle-add-media-term {
display: inline-block;
margin: 5px 0;
}
.toggle-add-media-term:before {
content: '+ ';
}
.add-new-term {
margin: 0 0 5px;
}
jQuery(document).ready(function(){
var media = wp.media;
/*
// for debug : trace every event triggered in the Region controller
var originalTrigger = wp.media.view.MediaFrame.prototype.trigger;
wp.media.view.MediaFrame.prototype.trigger = function(){
console.log('MediaFrame Event: ', arguments[0]);
originalTrigger.apply(this, Array.prototype.slice.call(arguments));
}; //
// for Network debug
var originalAjax = media.ajax;
media.ajax = function( action ) {
console.log( 'media.ajax: action = ' + JSON.stringify( action ) );
return originalAjax.apply(this, Array.prototype.slice.call(arguments));
};
*/
/**
* Extended Filters dropdown with taxonomy term selection values
*/
if ( media ) {
jQuery.each(mediaTaxonomies,function(key,label){
media.view.AttachmentFilters[key] = media.view.AttachmentFilters.extend({
className: key,
createFilters: function() {
var filters = {};
_.each( mediaTerms[key] || {}, function( term ) {
var query = {};
query[key] = {
taxonomy: key,
term_id: parseInt( term.id, 10 ),
term_slug: term.slug
};
filters[ term.slug ] = {
text: term.label,
props: query
};
});
this.filters = filters;
}
});
/**
* Replace the media-toolbar with our own
*/
var myDrop = media.view.AttachmentsBrowser;
media.view.AttachmentsBrowser = media.view.AttachmentsBrowser.extend({
createToolbar: function() {
media.model.Query.defaultArgs.filterSource = 'filter-media-taxonomies';
myDrop.prototype.createToolbar.apply(this,arguments);
this.toolbar.set( key, new media.view.AttachmentFilters[key]({
controller: this.controller,
model: this.collection.props,
priority: -80
}).render()
);
}
});
});
}
/* Save taxonomy */
jQuery('html').delegate( '.media-terms input', 'change', function(){
var obj = jQuery(this),
container = obj.parents('.media-terms'),
row = container.parent(),
data = {
action: 'save-media-terms',
term_ids: [],
attachment_id: container.data('id'),
taxonomy: container.data('taxonomy')
};
container.find('input:checked').each(function(){
data.term_ids.push( jQuery(this).val() );
});
row.addClass('media-save-terms');
container.find('input').prop('disabled', 'disabled');
jQuery.post( ajaxurl, data, function( response ){
row.removeClass('media-save-terms');
container.find('input').removeProp('disabled');
});
});
// Add new taxonomy
jQuery('html').delegate('.toggle-add-media-term', 'click', function(e){
e.preventDefault();
jQuery(this).parent().find('.add-new-term').toggle();
});
// Save new taxnomy
jQuery('html').delegate('.save-media-term', 'click', function(e){
var obj = jQuery(this),
termField = obj.parent().find('input'),
termParent = obj.parent().find('select'),
data = {
action: 'add-media-term',
attachment_id: obj.data('id'),
taxonomy: obj.data('taxonomy'),
parent: termParent.val(),
term: termField.val()
};
// No val
if ( '' == data.term ) {
termField.focus();
return;
}
jQuery.post(ajaxurl, data, function(response){
obj.parents('.field').find('.media-terms ul:first').html( response.checkboxes );
obj.parents('.field').find('select').replaceWith( response.selectbox );
console.log( response );
termField.val('');
}, 'json' );
});
});
msgid ""
msgstr ""
"Project-Id-Version: Media Taxonomies v1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2013-09-15 16:27:14+0000\n"
"Last-Translator: horttcore <me@horttcore.de>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: CSL v1.x\n"
"X-Poedit-Language: German\n"
"X-Poedit-Country: GERMANY\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
"X-Poedit-Basepath: \n"
"X-Poedit-Bookmarks: \n"
"X-Poedit-SearchPath-0: .\n"
"X-Textdomain-Support: yes"
#: media-taxonomies.php:223
#@ default
msgctxt "taxonomy general name"
msgid "Categories"
msgstr ""
#: media-taxonomies.php:224
#@ default
msgctxt "taxonomy singular name"
msgid "Category"
msgstr ""
#: media-taxonomies.php:225
#@ default
msgid "Search Categories"
msgstr ""
#: media-taxonomies.php:226
#@ default
msgid "All Categories"
msgstr ""
#: media-taxonomies.php:227
#@ default
msgid "Parent Category"
msgstr ""
#: media-taxonomies.php:228
#@ default
msgid "Parent Category:"
msgstr ""
#: media-taxonomies.php:229
#@ default
msgid "Edit Category"
msgstr ""
#: media-taxonomies.php:230
#@ default
msgid "Update Category"
msgstr ""
#: media-taxonomies.php:231
#@ default
msgid "Add New Category"
msgstr ""
#: media-taxonomies.php:232
#@ default
msgid "New Category Name"
msgstr ""
#: media-taxonomies.php:233
#@ default
msgid "Categories"
msgstr ""
#: media-taxonomies.php:237
#@ media-taxonomies
msgctxt "Category Slug"
msgid "media-category"
msgstr "medien-kategorie"
#: media-taxonomies.php:245
#@ default
msgctxt "taxonomy general name"
msgid "Tags"
msgstr ""
#: media-taxonomies.php:246
#@ default
msgctxt "taxonomy singular name"
msgid "Tag"
msgstr ""
#: media-taxonomies.php:247
#@ default
msgid "Search Tags"
msgstr ""
#: media-taxonomies.php:248
#@ default
msgid "All Tags"
msgstr ""
#: media-taxonomies.php:249
#@ default
msgid "Parent Tag"
msgstr ""
#: media-taxonomies.php:250
#@ default
msgid "Parent Tag:"
msgstr ""
#: media-taxonomies.php:251
#@ default
msgid "Edit Tag"
msgstr ""
#: media-taxonomies.php:252
#@ default
msgid "Update Tag"
msgstr ""
#: media-taxonomies.php:253
#@ default
msgid "Add New Tag"
msgstr ""
#: media-taxonomies.php:254
#@ default
msgid "New Tag Name"
msgstr ""
#: media-taxonomies.php:255
#@ default
msgid "Tags"
msgstr ""
#: media-taxonomies.php:259
#@ media-taxonomies
msgctxt "Tag Slug"
msgid "media-tag"
msgstr "medien-schlagwort"
#: media-taxonomies.php:287
#, php-format
#@ media-taxonomies
msgctxt "%1$s = plural, %2$s = singular"
msgid "View all %s"
msgstr "Alle %s"
=== Media Taxonomies ===
Contributors: Horttcore
Donate link: http://horttcore.de
Tags: media, taxonomies
Requires at least: 3.8
Tested up to: 4.0
Stable tag: 1.3.0
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
WordPress taxonomies for media files.
== Description ==
WordPress taxonomies for media files.
Plugin ships with media-category and media-tag taxonomy
== Installation ==
* Put the plugin file in your plugin directory and activate it in your WP backend.
* Go to your media library and add some categories
== FAQ ==
= Why does my term count not match if I add another taxonomy? =
This might be a failure in your register_taxanomy function.
You have to set `update_count_callback` to `_update_generic_term_count` in the taxonomy registration
Visit for more information http://codex.wordpress.org/Function_Reference/register_taxonomy
= I added another taxonomy for attachments, but don't want to use the features of this plugin. =
Ok, use the `media-taxonomies` hook to remove your taxonomy from the list
= Known Bugs =
* Registering a core taxonomy via `register_taxonomy_for_object_type( 'post_tag', 'attachment' )` won't work
== Screenshots ==
1. This screen shot description corresponds to screenshot-1.(png|jpg|jpeg|gif). Note that the screenshot is taken from
the /assets directory or the directory that contains the stable readme.txt (tags or trunk). Screenshots in the /assets
directory take precedence. For example, `/assets/screenshot-1.png` would win over `/tags/4.3/screenshot-1.png`
(or jpg, jpeg, gif).
2. This is the second screen shot
== Changelog ==
= 1.3 =
* Add new terms functionality
* Small improvements
= 1.2.2 =
* Small improvements
= 1.2.1 =
* Enhancement: Modal select box label changed to use WordPress standard - props Dirk
= 1.2 =
* Bugfix: Media modal filter did not work, broke due last versions fix
= 1.1 =
* Bugfix: Media overview filter did not work
= 1.0 =
* Added integrated modal filter - props Wyck
* Added german language file
= 0.9.1 =
* Added modal filter
= 0.9 =
* Preview version
== ToDo ==
* implement wp.media like 'All' selection, this is currently achieved by a workaround
......@@ -15453,7 +15453,7 @@ label[for=quicksearch] {
background-color: #2C2C2C;
}
.course-list .element-item {
.course-list:not(.resources) .element-item {
position: relative;
float: left;
width: calc(33.33% - 30px);
......@@ -15462,6 +15462,15 @@ label[for=quicksearch] {
padding: 10px;
}
.course-list.resources .element-item {
position: relative;
float: left;
width: 100%;
height: 60px;
margin: 15px;
padding: 10px;
}
.view-plan {
width: 100%;
text-align: center;
......@@ -15489,6 +15498,10 @@ label[for=quicksearch] {
display: none;
}
.isotope-pager .pager {
display: inline-block;
}
.type-sfwd-courses {
margin-top: 30px;
}
......
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
......@@ -11,6 +11,9 @@ include 'inc/menu-widgets.php';
include 'inc/blocks.php';
include 'inc/custom-post-type.php';
include 'inc/shortcodes.php';
include 'inc/shortcodes-course.php';
include 'inc/shortcodes-resources.php';
/**
......
<?php
add_shortcode('course-list', 'course_list');
function course_list(){
$custom_args = array(
'post_type' => 'sfwd-courses',
'posts_per_page' => -1,
'paged' => 1,
);
$custom_query = new \WP_Query($custom_args);
ob_start();
$uniqid = uniqid();
if ($custom_query->have_posts()):?>
<div class="course-list">
<label for="quicksearch">Search programs:</label><input type="text" id="quicksearch" placeholder="" />
<div class="filters">
<a href="#" id="filter-more">FILTERS <span aria-hidden="true" class="glyphicon glyphicon-chevron-up"></span></a>
<div class="filter-group">
<div class="category-filter-group">
<?php $terms = get_terms( array( 'taxonomy' => 'ld_course_category' ,'parent' => 0) );
foreach($terms as $term){ ?>
<div class="category-filter"> <input id="<?php echo $term->slug ; ?>" value=".<?php echo $term->slug ; ?>" type="checkbox" class="sr-only"><label for="<?php echo $term->slug ; ?>"><?php echo $term->name ; ?></label></div>
<?php }; ?>
</div>
<div class="btn-group sort-button-group align-self-end">
<button class="btn btn-light" data-sort-direction="asc" data-sort-value="coursename" type="button">Name <span aria-hidden="true" class="glyphicon glyphicon-chevron-up"></span></button>
<button class="btn btn-light" data-sort-direction="asc" data-sort-value="coursedate" type="button">Date <span aria-hidden="true" class="glyphicon glyphicon-chevron-up"></span></button>
</div>
</div>
</div>
<div class="grid course">
<?php while ($custom_query->have_posts()): $custom_query->the_post();
echo course_card(get_the_ID());
endwhile; ?>
</div>
</div>
<?php endif;
wp_reset_query();
$output = ob_get_clean();
return $output;
}
function course_card($id){
ob_start();
$post = get_post($id);
$text = str_replace(']]>', ']]&gt;', apply_filters( 'the_content', strip_shortcodes($post->post_content)));
$excerpt_length = apply_filters( 'excerpt_length', 20 );
$text = wp_trim_words( $text, $excerpt_length, ' ...' );
$categories = get_the_terms( $id, 'ld_course_category' );
$cat =""; foreach( $categories as $category ) { $cat .= " ".$category->slug; }; ?>
<div class="element-item <?php echo $cat; ?> " data-category="<?php echo $cat; ?>">
<article id="post-<?php echo $id; ?>" class="post post-<?php echo $id; ?> sfwd-courses type-sfwd-courses">
<div class="card">
<div class="thumbnail"><div class="ribbon"><?php echo get_post_meta( $id, '_learndash_course_grid_custom_ribbon_text', true);?></div>
<div class="image">
<?php echo get_the_post_thumbnail($id, 'full' ); ?>
</div>
</div>
<div class="content">
<h3 class="entry-title"><?php echo $post->post_title; ?></h3>
<div class="entry-content">
<p><?php echo $text; ?></p>
</div>
<a class="btn" role="button" href="<?php echo get_permalink($id); ?>" rel="bookmark">LEARN MORE</a>
</div>
</div>
</article>
</div>
<?php
$output = ob_get_clean();
return $output;
}
\ No newline at end of file
<?php
add_shortcode('resources-list', 'resources_list');
function resources_list(){
$custom_args = array(
'post_type' => 'attachment',
'posts_per_page' => -1,
'paged' => 1,
'post_status' => 'any',
);
$custom_query = new \WP_Query($custom_args);
ob_start();
$uniqid = uniqid();
if ($custom_query->have_posts()):
?>
<div class="course-list resources">
<label for="quicksearch">Search programs:</label><input type="text" id="quicksearch" placeholder="" />
<div class="filters">
<a href="#" id="filter-more">FILTERS <span aria-hidden="true" class="glyphicon glyphicon-chevron-up"></span></a>
<div class="filter-group">
<div class="category-filter-group">
<?php $terms = get_terms( array( 'taxonomy' => 'media-category' ,'parent' => 17) );
foreach($terms as $term){ ?>
<div class="category-filter"> <input id="<?php echo $term->slug ; ?>" value=".<?php echo $term->slug ; ?>" type="checkbox" class="sr-only"><label for="<?php echo $term->slug ; ?>"><?php echo $term->name ; ?></label></div>
<?php }; ?>
<?php $terms = get_terms( array( 'taxonomy' => 'media-category' ,'parent' => 22) );
foreach($terms as $term){ ?>
<div class="category-filter"> <input id="<?php echo $term->slug ; ?>" value=".<?php echo $term->slug ; ?>" type="checkbox" class="sr-only"><label for="<?php echo $term->slug ; ?>"><?php echo $term->name ; ?></label></div>
<?php }; ?>
</div>
<div class="btn-group sort-button-group align-self-end">
<button class="btn btn-light" data-sort-direction="asc" data-sort-value="coursename" type="button">Name <span aria-hidden="true" class="glyphicon glyphicon-chevron-up"></span></button>
<button class="btn btn-light" data-sort-direction="asc" data-sort-value="coursedate" type="button">Date <span aria-hidden="true" class="glyphicon glyphicon-chevron-up"></span></button>
</div>
</div>
</div>
<div class="grid resources">
<?php while ($custom_query->have_posts()): $custom_query->the_post();
echo resources(get_the_ID());
endwhile; ?>
</div>
</div>
<?php endif;
wp_reset_query();
$output = ob_get_clean();
return $output;
}
function resources($id){
ob_start();
$post = get_post($id);
$categories = get_the_terms( $id, 'media-category' );
$cat ="";
if(is_array( $categories)){
foreach( $categories as $category ) { $cat .= " ".$category->slug; };
} ?>
<div class="table-like__item element-item <?php echo $cat; ?> " data-category="<?php echo $cat; ?>">
<a role="button" href="<?php echo get_permalink($id); ?>"><?php echo $post->post_title; ?></a><br>
<?php echo wp_get_attachment_caption($id) ?>
</div>
<?php
$output = ob_get_clean();
return $output;
}
\ No newline at end of file
......@@ -99,87 +99,3 @@ function share_this($atts){
<?php
return ob_get_clean();
}
add_shortcode('course-list', 'course_list');
function course_list(){
$custom_args = array(
'post_type' => 'sfwd-courses',
'posts_per_page' => -1,
'paged' => 1,
);
$custom_query = new \WP_Query($custom_args);
ob_start();
$uniqid = uniqid();
if ($custom_query->have_posts()):?>
<div class="course-list">
<label for="quicksearch">Search programs:</label><input type="text" id="quicksearch" placeholder="" />
<div class="filters">
<a href="#" id="filter-more">FILTERS <span aria-hidden="true" class="glyphicon glyphicon-chevron-up"></span></a>
<div class="filter-group">
<div class="category-filter-group">
<?php $terms = get_terms( array( 'taxonomy' => 'ld_course_category' ,'parent' => 0) );
foreach($terms as $term){ ?>
<div class="category-filter"> <input id="<?php echo $term->slug ; ?>" value=".<?php echo $term->slug ; ?>" type="checkbox" class="sr-only"><label for="<?php echo $term->slug ; ?>"><?php echo $term->name ; ?></label></div>
<?php }; ?>
</div>
<div class="btn-group sort-button-group align-self-end">
<button class="btn btn-light" data-sort-direction="asc" data-sort-value="coursename" type="button">Name <span aria-hidden="true" class="glyphicon glyphicon-chevron-up"></span></button>
<button class="btn btn-light" data-sort-direction="asc" data-sort-value="coursedate" type="button">Date <span aria-hidden="true" class="glyphicon glyphicon-chevron-up"></span></button>
</div>
</div>
</div>
<div class="grid">
<?php while ($custom_query->have_posts()): $custom_query->the_post();
echo course_card(get_the_ID());
endwhile; ?>
</div>
</div>
<?php endif;
wp_reset_query();
$output = ob_get_clean();
return $output;
}
function course_card($id){
ob_start();
$post = get_post($id);
$text = str_replace(']]>', ']]&gt;', apply_filters( 'the_content', strip_shortcodes($post->post_content)));
$excerpt_length = apply_filters( 'excerpt_length', 20 );
$text = wp_trim_words( $text, $excerpt_length, ' ...' );
$categories = get_the_terms( $id, 'ld_course_category' );
$cat =""; foreach( $categories as $category ) { $cat .= " ".$category->slug; }; ?>
<div class="element-item <?php echo $cat; ?> " data-category="<?php echo $cat; ?>">
<article id="post-<?php echo $id; ?>" class="post post-<?php echo $id; ?> sfwd-courses type-sfwd-courses">
<div class="card">
<div class="thumbnail"><div class="ribbon"><?php echo get_post_meta( $id, '_learndash_course_grid_custom_ribbon_text', true);?></div>
<div class="image">
<?php echo get_the_post_thumbnail($id, 'full' ); ?>
</div>
</div>
<div class="content">
<h3 class="entry-title"><?php echo $post->post_title; ?></h3>
<div class="entry-content">
<p><?php echo $text; ?></p>
</div>
<a class="btn" role="button" href="<?php echo get_permalink($id); ?>" rel="bookmark">LEARN MORE</a>
</div>
</div>
</article>
</div>
<?php
$output = ob_get_clean();
return $output;
}
\ No newline at end of file
......
......@@ -17636,28 +17636,114 @@
if ($('.grid').length) {
// quick search regex
var qsRegex;
// init Isotope
var $grid = $('.grid').isotope({
itemSelector: '.element-item',
layoutMode: 'fitRows',
getSortData: {
coursename: '.name',
date: '[data-ticks]'
},
filter: function () {
var $this = $(this);
var filterText = qsRegex ? $(this).text().match(qsRegex) : true;
var buttonResult = filterValue ? $this.is(filterValue) : true;
return filterText && buttonResult;
}
});
if ($('.grid.course').length) {
// init Isotope
var $grid = $('.grid.course').isotope({
itemSelector: '.element-item',
layoutMode: 'fitRows',
getSortData: {
coursename: '.name',
date: '[data-ticks]'
},
filter: function () {
var $this = $(this);
var filterText = qsRegex ? $(this).text().match(qsRegex) : true;
var buttonResult = filterValue ? $this.is(filterValue) : true;
return filterText && buttonResult;
}
});
}
if ($('.grid.resources').length) {
var $grid = $('.grid.resources').isotope({
itemSelector: '.element-item',
layoutMode: 'vertical',
getSortData: {
coursename: '.name',
date: '[data-ticks]'
},
filter: function () {
var $this = $(this);
var filterText = qsRegex ? $(this).text().match(qsRegex) : true;
var buttonResult = filterValue ? $this.is(filterValue) : true;
return filterText && buttonResult;
}
});
var itemsPerPageDefault = 5;
var itemsPerPage = defineItemsPerPage();
var itemSelector = '.element-item';
var currentNumberPages = 1;
var currentPage = 1;
var currentFilter = '*';
var filterAtribute = 'data-filter';
var pageAtribute = 'data-page';
var pagerClass = 'isotope-pager';
setPagination();
goToPage(1);
}
function changeFilter(selector) {
$grid.isotope({
filter: selector
});
}
function getFilterSelector() {
var selector = itemSelector;
if (currentFilter != '*') {
selector += `[${filterAtribute}~="${currentFilter}"]`;
}
return selector;
}
function goToPage(n) {
currentPage = n;
var selector = getFilterSelector();
selector += `[${pageAtribute}="${currentPage}"]`;
changeFilter(selector);
}
function defineItemsPerPage() {
var pages = itemsPerPageDefault;
return pages;
}
function setPagination() {
(function () {
$grid.children(itemSelector).length;
var item = 1;
var page = 1;
var selector = getFilterSelector();
$grid.children(selector).each(function () {
if (item > itemsPerPage) {
page++;
item = 1;
}
$(this).attr(pageAtribute, page);
item++;
});
currentNumberPages = page;
})();
(function () {
var $isotopePager = $('.' + pagerClass).length == 0 ? $('<div class="' + pagerClass + '"></div>') : $('.' + pagerClass);
$isotopePager.html('');
for (var i = 0; i < currentNumberPages; i++) {
var $pager = $('<a href="javascript:void(0);" class="pager" ' + pageAtribute + '="' + (i + 1) + '"></a>');
$pager.html(i + 1);
$pager.click(function () {
var page = $(this).eq(0).attr(pageAtribute);
goToPage(page);
});
$pager.appendTo($isotopePager);
}
$grid.after($isotopePager);
})();
}
// use value of search field to filter
var $quicksearch = $('#quicksearch').keyup(debounce(function () {
console.log($quicksearch.val());
qsRegex = new RegExp($quicksearch.val(), 'gi');
$grid.isotope();
updateFilterCounts();
if ($('.grid.resources').length) {
setPagination();
goToPage(1);
}
}, 200));
// debounce so filtering doesn't happen every millisecond
......@@ -17734,59 +17820,60 @@
}
$grid.isotope('layout');
}
if ($('.grid.course').length) {
//****************************
// Isotope Load more button
//****************************
var initShow = 3; //number of images loaded on init & onclick load more button
var counter = initShow; //counter for load more button
var iso = $grid.data('isotope'); // get Isotope instance
console.log('iso');
console.log(iso);
console.log(iso.elemCount);
loadMore(initShow); //execute function onload
function loadMore(toShow) {
$grid.find(".hidden").removeClass("hidden");
var hiddenElems = iso.filteredItems.slice(toShow, iso.filteredItems.length).map(function (item) {
console.log('hiddenElem');
console.log(item.element);
return item.element;
});
$(hiddenElems).addClass('hidden');
$grid.isotope('layout');
//****************************
// Isotope Load more button
//****************************
var initShow = 3; //number of images loaded on init & onclick load more button
var counter = initShow; //counter for load more button
var iso = $grid.data('isotope'); // get Isotope instance
console.log('iso');
console.log(iso);
console.log(iso.elemCount);
loadMore(initShow); //execute function onload
function loadMore(toShow) {
$grid.find(".hidden").removeClass("hidden");
var hiddenElems = iso.filteredItems.slice(toShow, iso.filteredItems.length).map(function (item) {
console.log('hiddenElem');
console.log(item.element);
return item.element;
});
$(hiddenElems).addClass('hidden');
$grid.isotope('layout');
//when no more to load, hide show more button
if (hiddenElems.length == 0) {
$("#load-more").hide();
} else {
$("#load-more").show();
//when no more to load, hide show more button
if (hiddenElems.length == 0) {
$("#load-more").hide();
} else {
$("#load-more").show();
}
}
}
//append load more button
$grid.after('<div class="view-plan"><a class="btn" href="#" id="load-more">LOAD MORE programs</a></div>');
//append load more button
$grid.after('<div class="view-plan"><a class="btn" href="#" id="load-more">LOAD MORE programs</a></div>');
//when load more button clicked
$(document).on("click", "#load-more", function (e) {
e.preventDefault();
if ($('#filters').data('clicked')) {
//when filter button clicked, set initial value for counter
counter = initShow;
j$('#filters').data('clicked', false);
} else {
counter = counter;
}
counter = counter + initShow;
loadMore(counter);
});
$(document).on("click", "#filter-more", function (e) {
e.preventDefault();
$('.filter-group').toggleClass('open');
var span = $(this).find('.glyphicon');
span.toggleClass('glyphicon-chevron-up glyphicon-chevron-down');
});
//when load more button clicked
$(document).on("click", "#load-more", function (e) {
e.preventDefault();
if ($('#filters').data('clicked')) {
//when filter button clicked, set initial value for counter
counter = initShow;
j$('#filters').data('clicked', false);
} else {
counter = counter;
}
counter = counter + initShow;
loadMore(counter);
});
$(document).on("click", "#filter-more", function (e) {
e.preventDefault();
$('.filter-group').toggleClass('open');
var span = $(this).find('.glyphicon');
span.toggleClass('glyphicon-chevron-up glyphicon-chevron-down');
});
}
}
});
......
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
......@@ -7,27 +7,145 @@ jQueryBridget( 'isotope', Isotope, $ );
jQuery( document ).ready(function($) {
if($('.grid').length){
// quick search regex
var qsRegex;
if($('.grid.course').length){
// init Isotope
var $grid = $('.grid').isotope({
itemSelector: '.element-item',
layoutMode: 'fitRows',
getSortData: {
coursename: '.name',
date: '[data-ticks]',
},
filter: function() {
var $this = $(this);
var filterText = qsRegex ? $(this).text().match( qsRegex ) : true;
var buttonResult = filterValue ? $this.is( filterValue ) : true;
return filterText && buttonResult;
var $grid = $('.grid.course').isotope({
itemSelector: '.element-item',
layoutMode: 'fitRows',
getSortData: {
coursename: '.name',
date: '[data-ticks]',
},
filter: function() {
var $this = $(this);
var filterText = qsRegex ? $(this).text().match( qsRegex ) : true;
var buttonResult = filterValue ? $this.is( filterValue ) : true;
return filterText && buttonResult;
}
});
}
if($('.grid.resources').length){
var $grid = $('.grid.resources').isotope({
itemSelector: '.element-item',
layoutMode: 'vertical',
getSortData: {
coursename: '.name',
date: '[data-ticks]',
},
filter: function() {
var $this = $(this);
var filterText = qsRegex ? $(this).text().match( qsRegex ) : true;
var buttonResult = filterValue ? $this.is( filterValue ) : true;
return filterText && buttonResult;
}
});
var itemsPerPageDefault = 5;
var itemsPerPage = defineItemsPerPage();
var itemSelector = '.element-item';
var currentNumberPages = 1;
var currentPage = 1;
var currentFilter = '*';
var filterAtribute = 'data-filter';
var pageAtribute = 'data-page';
var pagerClass = 'isotope-pager';
setPagination();
goToPage(1);
var responsiveIsotope = [
[480, 4],
[720, 6]
];
}
function changeFilter(selector) {
$grid.isotope({
filter: selector
});
}
function getFilterSelector() {
var selector = itemSelector;
if (currentFilter != '*') {
selector += `[${filterAtribute}~="${currentFilter}"]`
}
});
return selector;
}
function goToPage(n) {
currentPage = n;
var selector = getFilterSelector();
selector += `[${pageAtribute}="${currentPage}"]`;
changeFilter(selector);
}
function defineItemsPerPage() {
var pages = itemsPerPageDefault;
return pages;
}
function setPagination() {
var SettingsPagesOnItems = function(){
var itemsLength = $grid.children(itemSelector).length;
var pages = Math.ceil(itemsLength / itemsPerPage);
var item = 1;
var page = 1;
var selector = getFilterSelector();
$grid.children(selector).each(function(){
if( item > itemsPerPage ) {
page++;
item = 1;
}
$(this).attr(pageAtribute, page);
item++;
});
currentNumberPages = page;
}();
var CreatePagers = function() {
var $isotopePager = ( $('.'+pagerClass).length == 0 ) ? $('<div class="'+pagerClass+'"></div>') : $('.'+pagerClass);
$isotopePager.html('');
for( var i = 0; i < currentNumberPages; i++ ) {
var $pager = $('<a href="javascript:void(0);" class="pager" '+pageAtribute+'="'+(i+1)+'"></a>');
$pager.html(i+1);
$pager.click(function(){
var page = $(this).eq(0).attr(pageAtribute);
goToPage(page);
});
$pager.appendTo($isotopePager);
}
$grid.after($isotopePager);
}();
}
......@@ -36,6 +154,11 @@ var $quicksearch = $('#quicksearch').keyup( debounce( function() {
console.log($quicksearch.val());
qsRegex = new RegExp( $quicksearch.val(), 'gi' );
$grid.isotope();
updateFilterCounts();
if($('.grid.resources').length){
setPagination();
goToPage(1);
}
}, 200 ) );
// debounce so filtering doesn't happen every millisecond
......@@ -126,7 +249,7 @@ function updateFilterCounts() {
}
if($('.grid.course').length){
//****************************
// Isotope Load more button
......@@ -191,4 +314,6 @@ function updateFilterCounts() {
});
}
}
});
......
......@@ -223,7 +223,7 @@ label[for=quicksearch]{
.course-list{
.course-list:not(.resources){
.element-item {
position: relative;
float: left;
......@@ -234,6 +234,17 @@ label[for=quicksearch]{
}
}
.course-list.resources{
.element-item {
position: relative;
float: left;
width: 100%;
height: 60px;
margin: 15px;
padding: 10px;
}
}
.view-plan{
width: 100%;
......@@ -259,4 +270,10 @@ label[for=quicksearch]{
margin:0px!important;
padding:0px!important;
display:none;
}
\ No newline at end of file
}
.isotope-pager .pager {
display: inline-block;
}
\ No newline at end of file
......