From 6614d2f7d47e3f0337321776040eb5f03dc8245b Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 10 Feb 2015 10:33:10 +0100 Subject: Sorting for assignments using the mixItUp plugin --- css/businessadmin.css | 7 +++++++ header.php | 1 + include/assignments-overview.php | 16 ++++++++++------ js/businessadmin.js | 22 ++++++++++++++++++++++ js/plugins/jquery.mixitup.min.js | 14 ++++++++++++++ 5 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 js/plugins/jquery.mixitup.min.js diff --git a/css/businessadmin.css b/css/businessadmin.css index 6fc34fe..d181bc1 100644 --- a/css/businessadmin.css +++ b/css/businessadmin.css @@ -79,4 +79,11 @@ td .btn.btn-circle:last-child { .editable { border-bottom: dotted 1px #0088cc !important; +} + +.mixitup .mix { + display: none; /* this is needed for the mixitup plugin */ +} +.mixitup .mixitup-sort { + cursor: pointer; } \ No newline at end of file diff --git a/header.php b/header.php index fa2a3ec..20873b3 100644 --- a/header.php +++ b/header.php @@ -50,6 +50,7 @@ + diff --git a/include/assignments-overview.php b/include/assignments-overview.php index af201f9..4af041c 100644 --- a/include/assignments-overview.php +++ b/include/assignments-overview.php @@ -22,14 +22,14 @@
# | -Offer | +# | +Offer | Briefing | -Time | -Price | +Time | +Price | Tools |
---|---|---|---|---|---|---|---|---|---|
{$assignment->getId()} | #{$assignment->getOffer()->getId()} to {$assignment->getOffer()->getContact()->getName()} ({$assignment->getOffer()->getContact()->getClient()->getName()}) |
diff --git a/js/businessadmin.js b/js/businessadmin.js
index 1a682d6..fecd18a 100644
--- a/js/businessadmin.js
+++ b/js/businessadmin.js
@@ -59,4 +59,26 @@ $(document).ready(function(){
// Use the bootstrap-select plugin on all selects
$('select').selectpicker();
+
+ // Use the MixItUp plugin for sorting tables
+ $('.mixitup').mixItUp({
+ animation: {
+ effects: 'fade'
+ },
+ layout: {
+ display: 'table-row'
+ }
+ });
+ $('.mixitup .mixitup-sort').click(function(){
+ $(this).closest('.mixitup').mixItUp('sort', $(this).data('sort'));
+
+ var mapping = {
+ desc: 'asc',
+ asc: 'desc'
+ }
+ $(this).data('sort', $(this).data('sort').replace(/asc|desc/gi, function(m){ return mapping[m]; }));
+
+ $(this).parent().find('.mixitup-sort').removeClass('active');
+ $(this).addClass('active');
+ });
});
\ No newline at end of file
diff --git a/js/plugins/jquery.mixitup.min.js b/js/plugins/jquery.mixitup.min.js
new file mode 100644
index 0000000..fdfc052
--- /dev/null
+++ b/js/plugins/jquery.mixitup.min.js
@@ -0,0 +1,14 @@
+/**!
+ * MixItUp v2.1.6
+ *
+ * @copyright Copyright 2014 KunkaLabs Limited.
+ * @author KunkaLabs Limited.
+ * @link https://mixitup.kunkalabs.com
+ *
+ * @license Commercial use requires a commercial license.
+ * https://mixitup.kunkalabs.com/licenses/
+ *
+ * Non-commercial use permitted under terms of CC-BY-NC license.
+ * http://creativecommons.org/licenses/by-nc/3.0/
+ */
+!function(a,b){a.MixItUp=function(){var b=this;b._execAction("_constructor",0),a.extend(b,{selectors:{target:".mix",filter:".filter",sort:".sort"},animation:{enable:!0,effects:"fade scale",duration:600,easing:"ease",perspectiveDistance:"3000",perspectiveOrigin:"50% 50%",queue:!0,queueLimit:1,animateChangeLayout:!1,animateResizeContainer:!0,animateResizeTargets:!1,staggerSequence:!1,reverseOut:!1},callbacks:{onMixLoad:!1,onMixStart:!1,onMixBusy:!1,onMixEnd:!1,onMixFail:!1,_user:!1},controls:{enable:!0,live:!1,toggleFilterButtons:!1,toggleLogic:"or",activeClass:"active"},layout:{display:"inline-block",containerClass:"",containerClassFail:"fail"},load:{filter:"all",sort:!1},_$body:null,_$container:null,_$targets:null,_$parent:null,_$sortButtons:null,_$filterButtons:null,_suckMode:!1,_mixing:!1,_sorting:!1,_clicking:!1,_loading:!0,_changingLayout:!1,_changingClass:!1,_changingDisplay:!1,_origOrder:[],_startOrder:[],_newOrder:[],_activeFilter:null,_toggleArray:[],_toggleString:"",_activeSort:"default:asc",_newSort:null,_startHeight:null,_newHeight:null,_incPadding:!0,_newDisplay:null,_newClass:null,_targetsBound:0,_targetsDone:0,_queue:[],_$show:a(),_$hide:a()}),b._execAction("_constructor",1)},a.MixItUp.prototype={constructor:a.MixItUp,_instances:{},_handled:{_filter:{},_sort:{}},_bound:{_filter:{},_sort:{}},_actions:{},_filters:{},extend:function(b){for(var c in b)a.MixItUp.prototype[c]=b[c]},addAction:function(b,c,d,e){a.MixItUp.prototype._addHook("_actions",b,c,d,e)},addFilter:function(b,c,d,e){a.MixItUp.prototype._addHook("_filters",b,c,d,e)},_addHook:function(b,c,d,e,f){var g=a.MixItUp.prototype[b],h={};f=1===f||"post"===f?"post":"pre",h[c]={},h[c][f]={},h[c][f][d]=e,a.extend(!0,g,h)},_init:function(b,c){var d=this;if(d._execAction("_init",0,arguments),c&&a.extend(!0,d,c),d._$body=a("body"),d._domNode=b,d._$container=a(b),d._$container.addClass(d.layout.containerClass),d._id=b.id,d._platformDetect(),d._brake=d._getPrefixedCSS("transition","none"),d._refresh(!0),d._$parent=d._$targets.parent().length?d._$targets.parent():d._$container,d.load.sort&&(d._newSort=d._parseSort(d.load.sort),d._newSortString=d.load.sort,d._activeSort=d.load.sort,d._sort(),d._printSort()),d._activeFilter="all"===d.load.filter?d.selectors.target:"none"===d.load.filter?"":d.load.filter,d.controls.enable&&d._bindHandlers(),d.controls.toggleFilterButtons){d._buildToggleArray();for(var e=0;e |