1
0
mirror of https://github.com/pierre42100/ComunicWeb synced 2025-07-09 04:42:48 +00:00

Updated 3rdparty structure

This commit is contained in:
Pierre
2017-05-26 08:56:32 +02:00
parent 4c80329362
commit 196bbdc585
2311 changed files with 18 additions and 13 deletions
assets/3rdparty
adminLTE
bootstrap
dist
plugins
bootstrap-slider
bootstrap-wysihtml5
chartjs
ckeditor
CHANGES.mdLICENSE.mdREADME.md
adapters
build-config.jsckeditor.jsconfig.jscontents.css
lang
plugins
samples
skins
styles.js
colorpicker
datatables
dataTables.bootstrap.cssdataTables.bootstrap.jsdataTables.bootstrap.min.js
extensions
AutoFill
ColReorder
ColVis
FixedColumns
FixedHeader
KeyTable
Responsive
Scroller
TableTools
images
jquery.dataTables.cssjquery.dataTables.jsjquery.dataTables.min.cssjquery.dataTables.min.jsjquery.dataTables_themeroller.css
datepicker
daterangepicker
fastclick
flot
font-awesome
fullcalendar
googleFonts
iCheck
input-mask
ionicons
.gitignoreLICENSEbower.json
builder
cheatsheet.htmlcomponent.jsoncomposer.json
css
fonts
less
png
512
alert-circled.pngalert.pngandroid-add-contact.pngandroid-add.pngandroid-alarm.pngandroid-archive.pngandroid-arrow-back.pngandroid-arrow-down-left.pngandroid-arrow-down-right.pngandroid-arrow-forward.pngandroid-arrow-up-left.pngandroid-arrow-up-right.pngandroid-battery.pngandroid-book.pngandroid-calendar.pngandroid-call.pngandroid-camera.pngandroid-chat.pngandroid-checkmark.pngandroid-clock.pngandroid-close.pngandroid-contact.pngandroid-contacts.pngandroid-data.pngandroid-developer.pngandroid-display.pngandroid-download.pngandroid-drawer.pngandroid-dropdown.pngandroid-earth.pngandroid-folder.pngandroid-forums.pngandroid-friends.pngandroid-hand.pngandroid-image.pngandroid-inbox.pngandroid-information.pngandroid-keypad.pngandroid-lightbulb.pngandroid-locate.pngandroid-location.pngandroid-mail.pngandroid-microphone.pngandroid-mixer.pngandroid-more.pngandroid-note.pngandroid-playstore.pngandroid-printer.pngandroid-promotion.pngandroid-reminder.pngandroid-remove.pngandroid-search.pngandroid-send.pngandroid-settings.pngandroid-share.pngandroid-social-user.pngandroid-social.pngandroid-sort.pngandroid-stair-drawer.pngandroid-star.pngandroid-stopwatch.pngandroid-storage.pngandroid-system-back.pngandroid-system-home.pngandroid-system-windows.pngandroid-timer.pngandroid-trash.pngandroid-user-menu.pngandroid-volume.pngandroid-wifi.pngaperture.pngarchive.pngarrow-down-a.pngarrow-down-b.pngarrow-down-c.pngarrow-expand.pngarrow-graph-down-left.pngarrow-graph-down-right.pngarrow-graph-up-left.pngarrow-graph-up-right.pngarrow-left-a.pngarrow-left-b.pngarrow-left-c.pngarrow-move.pngarrow-resize.pngarrow-return-left.pngarrow-return-right.pngarrow-right-a.pngarrow-right-b.pngarrow-right-c.pngarrow-shrink.pngarrow-swap.pngarrow-up-a.pngarrow-up-b.pngarrow-up-c.pngasterisk.pngat.pngbag.pngbattery-charging.pngbattery-empty.pngbattery-full.pngbattery-half.pngbattery-low.pngbeaker.pngbeer.pngbluetooth.pngbonfire.pngbookmark.pngbriefcase.pngbug.pngcalculator.pngcalendar.pngcamera.pngcard.pngcash.pngchatbox-working.pngchatbox.pngchatboxes.pngchatbubble-working.pngchatbubble.pngchatbubbles.pngcheckmark-circled.pngcheckmark-round.pngcheckmark.pngchevron-down.pngchevron-left.pngchevron-right.pngchevron-up.pngclipboard.pngclock.pngclose-circled.pngclose-round.pngclose.pngclosed-captioning.pngcloud.pngcode-download.pngcode-working.pngcode.pngcoffee.pngcompass.pngcompose.pngconnection-bars.pngcontrast.pngcube.pngdisc.pngdocument-text.pngdocument.pngdrag.pngearth.pngedit.pngegg.pngeject.pngemail.pngeye-disabled.pngeye.pngfemale.pngfiling.pngfilm-marker.pngfireball.pngflag.pngflame.pngflash-off.pngflash.pngflask.pngfolder.pngfork-repo.pngfork.pngforward.pngfunnel.pnggame-controller-a.pnggame-controller-b.pnggear-a.pnggear-b.pnggrid.pnghammer.pnghappy.pngheadphone.pngheart-broken.pngheart.pnghelp-buoy.pnghelp-circled.pnghelp.pnghome.pngicecream.pngicon-social-google-plus-outline.pngicon-social-google-plus.pngimage.pngimages.pnginformation-circled.pnginformation.pngionic.pngios7-alarm-outline.pngios7-alarm.pngios7-albums-outline.pngios7-albums.pngios7-americanfootball-outline.pngios7-americanfootball.pngios7-analytics-outline.pngios7-analytics.pngios7-arrow-back.pngios7-arrow-down.pngios7-arrow-forward.pngios7-arrow-left.pngios7-arrow-right.pngios7-arrow-thin-down.pngios7-arrow-thin-left.pngios7-arrow-thin-right.pngios7-arrow-thin-up.pngios7-arrow-up.pngios7-at-outline.pngios7-at.pngios7-barcode-outline.pngios7-barcode.pngios7-baseball-outline.pngios7-baseball.pngios7-basketball-outline.pngios7-basketball.pngios7-bell-outline.pngios7-bell.pngios7-bolt-outline.pngios7-bolt.pngios7-bookmarks-outline.pngios7-bookmarks.pngios7-box-outline.pngios7-box.pngios7-briefcase-outline.pngios7-briefcase.pngios7-browsers-outline.pngios7-browsers.pngios7-calculator-outline.pngios7-calculator.pngios7-calendar-outline.pngios7-calendar.pngios7-camera-outline.pngios7-camera.pngios7-cart-outline.pngios7-cart.pngios7-chatboxes-outline.pngios7-chatboxes.pngios7-chatbubble-outline.pngios7-chatbubble.pngios7-checkmark-empty.pngios7-checkmark-outline.pngios7-checkmark.pngios7-circle-filled.pngios7-circle-outline.pngios7-clock-outline.pngios7-clock.pngios7-close-empty.pngios7-close-outline.pngios7-close.pngios7-cloud-download-outline.pngios7-cloud-download.pngios7-cloud-outline.pngios7-cloud-upload-outline.pngios7-cloud-upload.pngios7-cloud.pngios7-cloudy-night-outline.pngios7-cloudy-night.pngios7-cloudy-outline.pngios7-cloudy.pngios7-cog-outline.pngios7-cog.pngios7-compose-outline.pngios7-compose.pngios7-contact-outline.pngios7-contact.pngios7-copy-outline.pngios7-copy.pngios7-download-outline.pngios7-download.pngios7-drag.pngios7-email-outline.pngios7-email.pngios7-expand.pngios7-eye-outline.pngios7-eye.pngios7-fastforward-outline.pngios7-fastforward.pngios7-filing-outline.pngios7-filing.pngios7-film-outline.pngios7-film.pngios7-flag-outline.pngios7-flag.pngios7-folder-outline.pngios7-folder.pngios7-football-outline.pngios7-football.pngios7-gear-outline.pngios7-gear.pngios7-glasses-outline.pngios7-glasses.pngios7-heart-outline.pngios7-heart.pngios7-help-empty.pngios7-help-outline.pngios7-help.pngios7-home-outline.pngios7-home.pngios7-infinite-outline.pngios7-infinite.pngios7-information-empty.pngios7-information-outline.pngios7-information.pngios7-ionic-outline.pngios7-keypad-outline.pngios7-keypad.pngios7-lightbulb-outline.pngios7-lightbulb.pngios7-location-outline.pngios7-location.pngios7-locked-outline.pngios7-locked.pngios7-loop-strong.pngios7-loop.pngios7-medkit-outline.pngios7-medkit.pngios7-mic-off.pngios7-mic-outline.pngios7-mic.pngios7-minus-empty.pngios7-minus-outline.pngios7-minus.pngios7-monitor-outline.pngios7-monitor.pngios7-moon-outline.pngios7-moon.pngios7-more-outline.pngios7-more.pngios7-musical-note.pngios7-musical-notes.pngios7-navigate-outline.pngios7-navigate.pngios7-paper-outline.pngios7-paper.pngios7-paperplane-outline.pngios7-paperplane.pngios7-partlysunny-outline.pngios7-partlysunny.pngios7-pause-outline.pngios7-pause.pngios7-paw-outline.pngios7-paw.pngios7-people-outline.pngios7-people.pngios7-person-outline.pngios7-person.pngios7-personadd-outline.pngios7-personadd.pngios7-photos-outline.pngios7-photos.pngios7-pie-outline.pngios7-pie.pngios7-play-outline.pngios7-play.pngios7-plus-empty.pngios7-plus-outline.pngios7-plus.pngios7-pricetag-outline.pngios7-pricetag.pngios7-pricetags-outline.pngios7-pricetags.pngios7-printer-outline.pngios7-printer.pngios7-pulse-strong.pngios7-pulse.pngios7-rainy-outline.pngios7-rainy.pngios7-recording-outline.pngios7-recording.pngios7-redo-outline.pngios7-redo.pngios7-refresh-empty.pngios7-refresh-outline.pngios7-refresh.pngios7-reload.pngios7-reverse-camera-outline.pngios7-reverse-camera.pngios7-rewind-outline.pngios7-rewind.pngios7-search-strong.pngios7-search.pngios7-settings-strong.pngios7-settings.pngios7-shrink.pngios7-skipbackward-outline.pngios7-skipbackward.pngios7-skipforward-outline.pngios7-skipforward.pngios7-snowy.pngios7-speedometer-outline.pngios7-speedometer.pngios7-star-half.pngios7-star-outline.pngios7-star.pngios7-stopwatch-outline.pngios7-stopwatch.pngios7-sunny-outline.pngios7-sunny.pngios7-telephone-outline.pngios7-telephone.pngios7-tennisball-outline.pngios7-tennisball.pngios7-thunderstorm-outline.pngios7-thunderstorm.pngios7-time-outline.pngios7-time.pngios7-timer-outline.pngios7-timer.pngios7-toggle-outline.pngios7-toggle.pngios7-trash-outline.pngios7-trash.pngios7-undo-outline.pngios7-undo.pngios7-unlocked-outline.pngios7-unlocked.pngios7-upload-outline.pngios7-upload.pngios7-videocam-outline.pngios7-videocam.pngios7-volume-high.pngios7-volume-low.pngios7-wineglass-outline.pngios7-wineglass.pngios7-world-outline.pngios7-world.pngipad.pngiphone.pngipod.pngjet.pngkey.pngknife.pnglaptop.pngleaf.pnglevels.pnglightbulb.pnglink.pngload-a.pngload-b.pngload-c.pngload-d.pnglocation.pnglocked.pnglog-in.pnglog-out.pngloop.pngmagnet.pngmale.pngman.pngmap.pngmedkit.pngmerge.pngmic-a.pngmic-b.pngmic-c.pngminus-circled.pngminus-round.pngminus.pngmodel-s.pngmonitor.pngmore.pngmouse.pngmusic-note.pngnavicon-round.pngnavicon.pngnavigate.pngnetwork.pngno-smoking.pngnuclear.pngoutlet.pngpaper-airplane.pngpaperclip.pngpause.pngperson-add.pngperson-stalker.pngperson.pngpie-graph.pngpin.pngpinpoint.pngpizza.pngplane.pngplanet.pngplay.pngplaystation.pngplus-circled.pngplus-round.pngplus.pngpodium.pngpound.pngpower.pngpricetag.pngpricetags.pngprinter.pngpull-request.pngqr-scanner.pngquote.pngradio-waves.pngrecord.pngrefresh.pngreply-all.pngreply.pngribbon-a.pngribbon-b.pngsad.pngscissors.pngsearch.pngsettings.pngshare.pngshuffle.pngskip-backward.pngskip-forward.pngsocial-android-outline.pngsocial-android.pngsocial-apple-outline.pngsocial-apple.pngsocial-bitcoin-outline.pngsocial-bitcoin.pngsocial-buffer-outline.pngsocial-buffer.pngsocial-designernews-outline.pngsocial-designernews.pngsocial-dribbble-outline.pngsocial-dribbble.pngsocial-dropbox-outline.pngsocial-dropbox.pngsocial-facebook-outline.pngsocial-facebook.pngsocial-foursquare-outline.pngsocial-foursquare.pngsocial-freebsd-devil.pngsocial-github-outline.pngsocial-github.pngsocial-google-outline.pngsocial-google.pngsocial-googleplus-outline.pngsocial-googleplus.pngsocial-hackernews-outline.pngsocial-hackernews.pngsocial-instagram-outline.pngsocial-instagram.pngsocial-linkedin-outline.pngsocial-linkedin.pngsocial-pinterest-outline.pngsocial-pinterest.pngsocial-reddit-outline.pngsocial-reddit.pngsocial-rss-outline.pngsocial-rss.pngsocial-skype-outline.pngsocial-skype.pngsocial-tumblr-outline.pngsocial-tumblr.pngsocial-tux.pngsocial-twitter-outline.pngsocial-twitter.pngsocial-usd-outline.pngsocial-usd.pngsocial-vimeo-outline.pngsocial-vimeo.pngsocial-windows-outline.pngsocial-windows.pngsocial-wordpress-outline.pngsocial-wordpress.pngsocial-yahoo-outline.pngsocial-yahoo.pngsocial-youtube-outline.pngsocial-youtube.pngspeakerphone.pngspeedometer.pngspoon.pngstar.pngstats-bars.pngsteam.pngstop.pngthermometer.pngthumbsdown.pngthumbsup.pngtoggle-filled.pngtoggle.pngtrash-a.pngtrash-b.pngtrophy.pngumbrella.pnguniversity.pngunlocked.pngupload.pngusb.pngvideocamera.pngvolume-high.pngvolume-low.pngvolume-medium.pngvolume-mute.pngwand.pngwaterdrop.pngwifi.pngwineglass.pngwoman.pngwrench.pngxbox.png
readme.md
scss
src
alert-circled.svgalert.svgandroid-add-circle.svgandroid-add.svgandroid-alarm-clock.svgandroid-alert.svgandroid-apps.svgandroid-archive.svgandroid-arrow-back.svgandroid-arrow-down.svgandroid-arrow-dropdown-circle.svgandroid-arrow-dropdown.svgandroid-arrow-dropleft-circle.svgandroid-arrow-dropleft.svgandroid-arrow-dropright-circle.svgandroid-arrow-dropright.svgandroid-arrow-dropup-circle.svgandroid-arrow-dropup.svgandroid-arrow-forward.svgandroid-arrow-up.svgandroid-attach.svgandroid-bar.svgandroid-bicycle.svgandroid-boat.svgandroid-bookmark.svgandroid-bulb.svgandroid-bus.svgandroid-calendar.svgandroid-call.svgandroid-camera.svgandroid-cancel.svgandroid-car.svgandroid-cart.svgandroid-chat.svgandroid-checkbox-blank.svgandroid-checkbox-outline-blank.svgandroid-checkbox-outline.svgandroid-checkbox.svgandroid-checkmark-circle.svgandroid-clipboard.svgandroid-close.svgandroid-cloud-circle.svgandroid-cloud-done.svgandroid-cloud-outline.svgandroid-cloud.svgandroid-color-palette.svgandroid-compass.svgandroid-contact.svgandroid-contacts.svgandroid-contract.svgandroid-create.svgandroid-delete.svgandroid-desktop.svgandroid-document.svgandroid-done-all.svgandroid-done.svgandroid-download.svgandroid-drafts.svgandroid-exit.svgandroid-expand.svgandroid-favorite-outline.svgandroid-favorite.svgandroid-film.svgandroid-folder-open.svgandroid-folder.svgandroid-funnel.svgandroid-globe.svgandroid-hand.svgandroid-hangout.svgandroid-happy.svgandroid-home.svgandroid-image.svgandroid-laptop.svgandroid-list.svgandroid-locate.svgandroid-lock.svgandroid-mail.svgandroid-map.svgandroid-menu.svgandroid-microphone-off.svgandroid-microphone.svgandroid-more-horizontal.svgandroid-more-vertical.svgandroid-navigate.svgandroid-notifications-none.svgandroid-notifications-off.svgandroid-notifications.svgandroid-open.svgandroid-options.svgandroid-people.svgandroid-person-add.svgandroid-person.svgandroid-phone-landscape.svgandroid-phone-portrait.svgandroid-pin.svgandroid-plane.svgandroid-playstore.svgandroid-print.svgandroid-radio-button-off.svgandroid-radio-button-on.svgandroid-refresh.svgandroid-remove-circle.svgandroid-remove.svgandroid-restaurant.svgandroid-sad.svgandroid-search.svgandroid-send.svgandroid-settings.svgandroid-share-alt.svgandroid-share.svgandroid-star-half.svgandroid-star-outline.svgandroid-star.svgandroid-stopwatch.svgandroid-subway.svgandroid-sunny.svgandroid-sync.svgandroid-textsms.svgandroid-time.svgandroid-train.svgandroid-unlock.svgandroid-upload.svgandroid-volume-down.svgandroid-volume-mute.svgandroid-volume-off.svgandroid-volume-up.svgandroid-walk.svgandroid-warning.svgandroid-watch.svgandroid-wifi.svgaperture.svgarchive.svgarrow-down-a.svgarrow-down-b.svgarrow-down-c.svgarrow-expand.svgarrow-graph-down-left.svgarrow-graph-down-right.svgarrow-graph-up-left.svgarrow-graph-up-right.svgarrow-left-a.svgarrow-left-b.svgarrow-left-c.svgarrow-move.svgarrow-resize.svgarrow-return-left.svgarrow-return-right.svgarrow-right-a.svgarrow-right-b.svgarrow-right-c.svgarrow-shrink.svgarrow-swap.svgarrow-up-a.svgarrow-up-b.svgarrow-up-c.svgasterisk.svgat.svgbackspace-outline.svgbackspace.svgbag.svgbattery-charging.svgbattery-empty.svgbattery-full.svgbattery-half.svgbattery-low.svgbeaker.svgbeer.svgbluetooth.svgbonfire.svgbookmark.svgbowtie.svgbriefcase.svgbug.svgcalculator.svgcalendar.svgcamera.svgcard.svgcash.svgchatbox-working.svgchatbox.svgchatboxes.svgchatbubble-working.svgchatbubble.svgchatbubbles.svgcheckmark-circled.svgcheckmark-round.svgcheckmark.svgchevron-down.svgchevron-left.svgchevron-right.svgchevron-up.svgclipboard.svgclock.svgclose-circled.svgclose-round.svgclose.svgclosed-captioning.svgcloud.svgcode-download.svgcode-working.svgcode.svgcoffee.svgcompass.svgcompose.svgconnection-bars.svgcontrast.svgcrop.svgcube.svgdisc.svgdocument-text.svgdocument.svgdrag.svgearth.svgeasel.svgedit.svgegg.svgeject.svgemail-unread.svgemail.svgerlenmeyer-flask-bubbles.svgerlenmeyer-flask.svgeye-disabled.svgeye.svgfemale.svgfiling.svgfilm-marker.svgfireball.svgflag.svgflame.svgflash-off.svgflash.svgfolder.svgfork-repo.svgfork.svgforward.svgfunnel.svggear-a.svggear-b.svggrid.svghammer.svghappy-outline.svghappy.svgheadphone.svgheart-broken.svgheart.svghelp-buoy.svghelp-circled.svghelp.svghome.svgicecream.svgimage.svgimages.svginformation-circled.svginformation.svgionic.svgios-alarm-outline.svgios-alarm.svgios-albums-outline.svgios-albums.svgios-americanfootball-outline.svgios-americanfootball.svgios-analytics-outline.svgios-analytics.svgios-arrow-back.svgios-arrow-down.svgios-arrow-forward.svgios-arrow-left.svgios-arrow-right.svgios-arrow-thin-down.svgios-arrow-thin-left.svgios-arrow-thin-right.svgios-arrow-thin-up.svgios-arrow-up.svgios-at-outline.svgios-at.svgios-barcode-outline.svgios-barcode.svgios-baseball-outline.svgios-baseball.svgios-basketball-outline.svgios-basketball.svgios-bell-outline.svgios-bell.svgios-body-outline.svgios-body.svgios-bolt-outline.svgios-bolt.svgios-book-outline.svgios-book.svgios-bookmarks-outline.svgios-bookmarks.svgios-box-outline.svgios-box.svgios-briefcase-outline.svgios-briefcase.svgios-browsers-outline.svgios-browsers.svgios-calculator-outline.svgios-calculator.svgios-calendar-outline.svgios-calendar.svgios-camera-outline.svgios-camera.svgios-cart-outline.svgios-cart.svgios-chatboxes-outline.svgios-chatboxes.svgios-chatbubble-outline.svgios-chatbubble.svgios-checkmark-empty.svgios-checkmark-outline.svgios-checkmark.svgios-circle-filled.svgios-circle-outline.svgios-clock-outline.svgios-clock.svgios-close-empty.svgios-close-outline.svgios-close.svgios-cloud-download-outline.svgios-cloud-download.svgios-cloud-outline.svgios-cloud-upload-outline.svgios-cloud-upload.svgios-cloud.svgios-cloudy-night-outline.svgios-cloudy-night.svgios-cloudy-outline.svgios-cloudy.svgios-cog-outline.svgios-cog.svgios-color-filter-outline.svgios-color-filter.svgios-color-wand-outline.svgios-color-wand.svgios-compose-outline.svgios-compose.svgios-contact-outline.svgios-contact.svgios-copy-outline.svgios-copy.svgios-crop-strong.svgios-crop.svgios-download-outline.svgios-download.svgios-drag.svgios-email-outline.svgios-email.svgios-eye-outline.svgios-eye.svgios-fastforward-outline.svgios-fastforward.svgios-filing-outline.svgios-filing.svgios-film-outline.svgios-film.svgios-flag-outline.svgios-flag.svgios-flame-outline.svgios-flame.svgios-flask-outline.svgios-flask.svgios-flower-outline.svgios-flower.svgios-folder-outline.svgios-folder.svgios-football-outline.svgios-football.svgios-game-controller-a-outline.svgios-game-controller-a.svgios-game-controller-b-outline.svgios-game-controller-b.svgios-gear-outline.svgios-gear.svgios-glasses-outline.svgios-glasses.svgios-grid-view-outline.svgios-grid-view.svgios-heart-outline.svgios-heart.svgios-help-empty.svgios-help-outline.svgios-help.svgios-home-outline.svgios-home.svgios-infinite-outline.svgios-infinite.svgios-information-empty.svgios-information-outline.svgios-information.svgios-ionic-outline.svgios-keypad-outline.svgios-keypad.svgios-lightbulb-outline.svgios-lightbulb.svgios-list-outline.svgios-list.svgios-location-outline.svgios-location.svgios-locked-outline.svgios-locked.svgios-loop-strong.svgios-loop.svgios-medical-outline.svgios-medical.svgios-medkit-outline.svgios-medkit.svgios-mic-off.svgios-mic-outline.svgios-mic.svgios-minus-empty.svgios-minus-outline.svgios-minus.svgios-monitor-outline.svgios-monitor.svgios-moon-outline.svgios-moon.svgios-more-outline.svgios-more.svgios-musical-note.svgios-musical-notes.svgios-navigate-outline.svgios-navigate.svgios-nutrition-outline.svgios-nutrition.svgios-paper-outline.svgios-paper.svgios-paperplane-outline.svgios-paperplane.svgios-partlysunny-outline.svgios-partlysunny.svgios-pause-outline.svgios-pause.svgios-paw-outline.svgios-paw.svgios-people-outline.svgios-people.svgios-person-outline.svgios-person.svgios-personadd-outline.svgios-personadd.svgios-photos-outline.svgios-photos.svgios-pie-outline.svgios-pie.svgios-pint-outline.svgios-pint.svgios-play-outline.svgios-play.svgios-plus-empty.svgios-plus-outline.svgios-plus.svgios-pricetag-outline.svgios-pricetag.svgios-pricetags-outline.svgios-pricetags.svgios-printer-outline.svgios-printer.svgios-pulse-strong.svgios-pulse.svgios-rainy-outline.svgios-rainy.svgios-recording-outline.svgios-recording.svgios-redo-outline.svgios-redo.svgios-refresh-empty.svgios-refresh-outline.svgios-refresh.svgios-reload.svgios-reverse-camera-outline.svgios-reverse-camera.svgios-rewind-outline.svgios-rewind.svgios-rose-outline.svgios-rose.svgios-search-strong.svgios-search.svgios-settings-strong.svgios-settings.svgios-shuffle-strong.svgios-shuffle.svgios-skipbackward-outline.svgios-skipbackward.svgios-skipforward-outline.svgios-skipforward.svgios-snowy.svgios-speedometer-outline.svgios-speedometer.svgios-star-half.svgios-star-outline.svgios-star.svgios-stopwatch-outline.svgios-stopwatch.svgios-sunny-outline.svgios-sunny.svgios-telephone-outline.svgios-telephone.svgios-tennisball-outline.svgios-tennisball.svgios-thunderstorm-outline.svgios-thunderstorm.svgios-time-outline.svgios-time.svgios-timer-outline.svgios-timer.svgios-toggle-outline.svgios-toggle.svgios-trash-outline.svgios-trash.svgios-undo-outline.svgios-undo.svgios-unlocked-outline.svgios-unlocked.svgios-upload-outline.svgios-upload.svgios-videocam-outline.svgios-videocam.svgios-volume-high.svgios-volume-low.svgios-wineglass-outline.svgios-wineglass.svgios-world-outline.svgios-world.svgipad.svgiphone.svgipod.svgjet.svgkey.svgknife.svglaptop.svgleaf.svglevels.svglightbulb.svglink.svgload-a.svgload-b.svgload-c.svgload-d.svglocation.svglock-combination.svglocked.svglog-in.svglog-out.svgloop.svgmagnet.svgmale.svgman.svgmap.svgmedkit.svgmerge.svgmic-a.svgmic-b.svgmic-c.svgminus-circled.svgminus-round.svgminus.svgmodel-s.svgmonitor.svgmore.svgmouse.svgmusic-note.svgnavicon-round.svgnavicon.svgnavigate.svgnetwork.svgno-smoking.svgnuclear.svgoutlet.svgpaintbrush.svgpaintbucket.svgpaper-airplane.svgpaperclip.svgpause.svgperson-add.svgperson-stalker.svgperson.svgpie-graph.svgpin.svgpinpoint.svgpizza.svgplane.svgplanet.svgplay.svgplaystation.svgplus-circled.svgplus-round.svgplus.svgpodium.svgpound.svgpower.svgpricetag.svgpricetags.svgprinter.svgpull-request.svgqr-scanner.svgquote.svgradio-waves.svgrecord.svgrefresh.svgreply-all.svgreply.svgribbon-a.svgribbon-b.svgsad-outline.svgsad.svgscissors.svgsearch.svgsettings.svgshare.svgshuffle.svgskip-backward.svgskip-forward.svgsocial-android-outline.svgsocial-android.svgsocial-angular-outline.svgsocial-angular.svgsocial-apple-outline.svgsocial-apple.svgsocial-bitcoin-outline.svgsocial-bitcoin.svgsocial-buffer-outline.svgsocial-buffer.svgsocial-chrome-outline.svgsocial-chrome.svgsocial-codepen-outline.svgsocial-codepen.svgsocial-css3-outline.svgsocial-css3.svgsocial-designernews-outline.svgsocial-designernews.svgsocial-dribbble-outline.svgsocial-dribbble.svgsocial-dropbox-outline.svgsocial-dropbox.svgsocial-euro-outline.svgsocial-euro.svgsocial-facebook-outline.svgsocial-facebook.svgsocial-foursquare-outline.svgsocial-foursquare.svgsocial-freebsd-devil.svgsocial-github-outline.svgsocial-github.svgsocial-google-outline.svgsocial-google.svgsocial-googleplus-outline.svgsocial-googleplus.svgsocial-hackernews-outline.svgsocial-hackernews.svgsocial-html5-outline.svgsocial-html5.svgsocial-instagram-outline.svgsocial-instagram.svgsocial-javascript-outline.svgsocial-javascript.svgsocial-linkedin-outline.svgsocial-linkedin.svgsocial-markdown.svgsocial-nodejs.svgsocial-octocat.svgsocial-pinterest-outline.svgsocial-pinterest.svgsocial-python.svgsocial-reddit-outline.svgsocial-reddit.svgsocial-rss-outline.svgsocial-rss.svgsocial-sass.svgsocial-skype-outline.svgsocial-skype.svgsocial-snapchat-outline.svgsocial-snapchat.svgsocial-tumblr-outline.svgsocial-tumblr.svgsocial-tux.svgsocial-twitch-outline.svgsocial-twitch.svgsocial-twitter-outline.svgsocial-twitter.svgsocial-usd-outline.svgsocial-usd.svgsocial-vimeo-outline.svgsocial-vimeo.svgsocial-whatsapp-outline.svgsocial-whatsapp.svgsocial-windows-outline.svgsocial-windows.svgsocial-wordpress-outline.svgsocial-wordpress.svgsocial-yahoo-outline.svgsocial-yahoo.svgsocial-yen-outline.svgsocial-yen.svgsocial-youtube-outline.svgsocial-youtube.svgsoup-can-outline.svgsoup-can.svgspeakerphone.svgspeedometer.svgspoon.svgstar.svgstats-bars.svgsteam.svgstop.svgthermometer.svgthumbsdown.svgthumbsup.svgtoggle-filled.svgtoggle.svgtransgender.svgtrash-a.svgtrash-b.svgtrophy.svgtshirt-outline.svgtshirt.svgumbrella.svguniversity.svgunlocked.svgupload.svgusb.svgvideocamera.svgvolume-high.svgvolume-low.svgvolume-medium.svgvolume-mute.svgwand.svgwaterdrop.svgwifi.svgwineglass.svgwoman.svgwrench.svgxbox.svg
ionslider
jQuery
jQueryUI
jquery-ui
jvectormap
knob
moment.js
morris
pace
raphael
select2
slimScroll
sparkline
timepicker
bootstrap-notify-3.1.3.min.js
corePage/config

@ -0,0 +1,873 @@
/*! Responsive 1.0.6
* 2014-2015 SpryMedia Ltd - datatables.net/license
*/
/**
* @summary Responsive
* @description Responsive tables plug-in for DataTables
* @version 1.0.6
* @file dataTables.responsive.js
* @author SpryMedia Ltd (www.sprymedia.co.uk)
* @contact www.sprymedia.co.uk/contact
* @copyright Copyright 2014-2015 SpryMedia Ltd.
*
* This source file is free software, available under the following license:
* MIT license - http://datatables.net/license/mit
*
* This source file 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 license files for details.
*
* For details please refer to: http://www.datatables.net
*/
(function(window, document, undefined) {
var factory = function( $, DataTable ) {
"use strict";
/**
* Responsive is a plug-in for the DataTables library that makes use of
* DataTables' ability to change the visibility of columns, changing the
* visibility of columns so the displayed columns fit into the table container.
* The end result is that complex tables will be dynamically adjusted to fit
* into the viewport, be it on a desktop, tablet or mobile browser.
*
* Responsive for DataTables has two modes of operation, which can used
* individually or combined:
*
* * Class name based control - columns assigned class names that match the
* breakpoint logic can be shown / hidden as required for each breakpoint.
* * Automatic control - columns are automatically hidden when there is no
* room left to display them. Columns removed from the right.
*
* In additional to column visibility control, Responsive also has built into
* options to use DataTables' child row display to show / hide the information
* from the table that has been hidden. There are also two modes of operation
* for this child row display:
*
* * Inline - when the control element that the user can use to show / hide
* child rows is displayed inside the first column of the table.
* * Column - where a whole column is dedicated to be the show / hide control.
*
* Initialisation of Responsive is performed by:
*
* * Adding the class `responsive` or `dt-responsive` to the table. In this case
* Responsive will automatically be initialised with the default configuration
* options when the DataTable is created.
* * Using the `responsive` option in the DataTables configuration options. This
* can also be used to specify the configuration options, or simply set to
* `true` to use the defaults.
*
* @class
* @param {object} settings DataTables settings object for the host table
* @param {object} [opts] Configuration options
* @requires jQuery 1.7+
* @requires DataTables 1.10.1+
*
* @example
* $('#example').DataTable( {
* responsive: true
* } );
* } );
*/
var Responsive = function ( settings, opts ) {
// Sanity check that we are using DataTables 1.10 or newer
if ( ! DataTable.versionCheck || ! DataTable.versionCheck( '1.10.1' ) ) {
throw 'DataTables Responsive requires DataTables 1.10.1 or newer';
}
this.s = {
dt: new DataTable.Api( settings ),
columns: []
};
// Check if responsive has already been initialised on this table
if ( this.s.dt.settings()[0].responsive ) {
return;
}
// details is an object, but for simplicity the user can give it as a string
if ( opts && typeof opts.details === 'string' ) {
opts.details = { type: opts.details };
}
this.c = $.extend( true, {}, Responsive.defaults, DataTable.defaults.responsive, opts );
settings.responsive = this;
this._constructor();
};
Responsive.prototype = {
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Constructor
*/
/**
* Initialise the Responsive instance
*
* @private
*/
_constructor: function ()
{
var that = this;
var dt = this.s.dt;
dt.settings()[0]._responsive = this;
// Use DataTables' private throttle function to avoid processor thrashing
$(window).on( 'resize.dtr orientationchange.dtr', dt.settings()[0].oApi._fnThrottle( function () {
that._resize();
} ) );
// Destroy event handler
dt.on( 'destroy.dtr', function () {
$(window).off( 'resize.dtr orientationchange.dtr draw.dtr' );
} );
// Reorder the breakpoints array here in case they have been added out
// of order
this.c.breakpoints.sort( function (a, b) {
return a.width < b.width ? 1 :
a.width > b.width ? -1 : 0;
} );
// Determine which columns are already hidden, and should therefore
// remain hidden. todo - should this be done? See thread 22677
//
// this.s.alwaysHidden = dt.columns(':hidden').indexes();
this._classLogic();
this._resizeAuto();
// Details handler
var details = this.c.details;
if ( details.type ) {
that._detailsInit();
this._detailsVis();
dt.on( 'column-visibility.dtr', function () {
that._detailsVis();
} );
// Redraw the details box on each draw. This is used until
// DataTables implements a native `updated` event for rows
dt.on( 'draw.dtr', function () {
dt.rows( {page: 'current'} ).iterator( 'row', function ( settings, idx ) {
var row = dt.row( idx );
if ( row.child.isShown() ) {
var info = that.c.details.renderer( dt, idx );
row.child( info, 'child' ).show();
}
} );
} );
$(dt.table().node()).addClass( 'dtr-'+details.type );
}
// First pass - draw the table for the current viewport size
this._resize();
},
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Private methods
*/
/**
* Calculate the visibility for the columns in a table for a given
* breakpoint. The result is pre-determined based on the class logic if
* class names are used to control all columns, but the width of the table
* is also used if there are columns which are to be automatically shown
* and hidden.
*
* @param {string} breakpoint Breakpoint name to use for the calculation
* @return {array} Array of boolean values initiating the visibility of each
* column.
* @private
*/
_columnsVisiblity: function ( breakpoint )
{
var dt = this.s.dt;
var columns = this.s.columns;
var i, ien;
// Class logic - determine which columns are in this breakpoint based
// on the classes. If no class control (i.e. `auto`) then `-` is used
// to indicate this to the rest of the function
var display = $.map( columns, function ( col ) {
return col.auto && col.minWidth === null ?
false :
col.auto === true ?
'-' :
$.inArray( breakpoint, col.includeIn ) !== -1;
} );
// Auto column control - first pass: how much width is taken by the
// ones that must be included from the non-auto columns
var requiredWidth = 0;
for ( i=0, ien=display.length ; i<ien ; i++ ) {
if ( display[i] === true ) {
requiredWidth += columns[i].minWidth;
}
}
// Second pass, use up any remaining width for other columns. For
// scrolling tables we need to subtract the width of the scrollbar. It
// may not be requires which makes this sub-optimal, but it would
// require another full redraw to make complete use of those extra few
// pixels
var scrolling = dt.settings()[0].oScroll;
var bar = scrolling.sY || scrolling.sX ? scrolling.iBarWidth : 0;
var widthAvailable = dt.table().container().offsetWidth - bar;
var usedWidth = widthAvailable - requiredWidth;
// Control column needs to always be included. This makes it sub-
// optimal in terms of using the available with, but to stop layout
// thrashing or overflow. Also we need to account for the control column
// width first so we know how much width is available for the other
// columns, since the control column might not be the first one shown
for ( i=0, ien=display.length ; i<ien ; i++ ) {
if ( columns[i].control ) {
usedWidth -= columns[i].minWidth;
}
}
// Allow columns to be shown (counting from the left) until we run out
// of room
var empty = false;
for ( i=0, ien=display.length ; i<ien ; i++ ) {
if ( display[i] === '-' && ! columns[i].control ) {
// Once we've found a column that won't fit we don't let any
// others display either, or columns might disappear in the
// middle of the table
if ( empty || usedWidth - columns[i].minWidth < 0 ) {
empty = true;
display[i] = false;
}
else {
display[i] = true;
}
usedWidth -= columns[i].minWidth;
}
}
// Determine if the 'control' column should be shown (if there is one).
// This is the case when there is a hidden column (that is not the
// control column). The two loops look inefficient here, but they are
// trivial and will fly through. We need to know the outcome from the
// first , before the action in the second can be taken
var showControl = false;
for ( i=0, ien=columns.length ; i<ien ; i++ ) {
if ( ! columns[i].control && ! columns[i].never && ! display[i] ) {
showControl = true;
break;
}
}
for ( i=0, ien=columns.length ; i<ien ; i++ ) {
if ( columns[i].control ) {
display[i] = showControl;
}
}
// Finally we need to make sure that there is at least one column that
// is visible
if ( $.inArray( true, display ) === -1 ) {
display[0] = true;
}
return display;
},
/**
* Create the internal `columns` array with information about the columns
* for the table. This includes determining which breakpoints the column
* will appear in, based upon class names in the column, which makes up the
* vast majority of this method.
*
* @private
*/
_classLogic: function ()
{
var that = this;
var calc = {};
var breakpoints = this.c.breakpoints;
var columns = this.s.dt.columns().eq(0).map( function (i) {
var className = this.column(i).header().className;
return {
className: className,
includeIn: [],
auto: false,
control: false,
never: className.match(/\bnever\b/) ? true : false
};
} );
// Simply add a breakpoint to `includeIn` array, ensuring that there are
// no duplicates
var add = function ( colIdx, name ) {
var includeIn = columns[ colIdx ].includeIn;
if ( $.inArray( name, includeIn ) === -1 ) {
includeIn.push( name );
}
};
var column = function ( colIdx, name, operator, matched ) {
var size, i, ien;
if ( ! operator ) {
columns[ colIdx ].includeIn.push( name );
}
else if ( operator === 'max-' ) {
// Add this breakpoint and all smaller
size = that._find( name ).width;
for ( i=0, ien=breakpoints.length ; i<ien ; i++ ) {
if ( breakpoints[i].width <= size ) {
add( colIdx, breakpoints[i].name );
}
}
}
else if ( operator === 'min-' ) {
// Add this breakpoint and all larger
size = that._find( name ).width;
for ( i=0, ien=breakpoints.length ; i<ien ; i++ ) {
if ( breakpoints[i].width >= size ) {
add( colIdx, breakpoints[i].name );
}
}
}
else if ( operator === 'not-' ) {
// Add all but this breakpoint (xxx need extra information)
for ( i=0, ien=breakpoints.length ; i<ien ; i++ ) {
if ( breakpoints[i].name.indexOf( matched ) === -1 ) {
add( colIdx, breakpoints[i].name );
}
}
}
};
// Loop over each column and determine if it has a responsive control
// class
columns.each( function ( col, i ) {
var classNames = col.className.split(' ');
var hasClass = false;
// Split the class name up so multiple rules can be applied if needed
for ( var k=0, ken=classNames.length ; k<ken ; k++ ) {
var className = $.trim( classNames[k] );
if ( className === 'all' ) {
// Include in all
hasClass = true;
col.includeIn = $.map( breakpoints, function (a) {
return a.name;
} );
return;
}
else if ( className === 'none' || className === 'never' ) {
// Include in none (default) and no auto
hasClass = true;
return;
}
else if ( className === 'control' ) {
// Special column that is only visible, when one of the other
// columns is hidden. This is used for the details control
hasClass = true;
col.control = true;
return;
}
$.each( breakpoints, function ( j, breakpoint ) {
// Does this column have a class that matches this breakpoint?
var brokenPoint = breakpoint.name.split('-');
var re = new RegExp( '(min\\-|max\\-|not\\-)?('+brokenPoint[0]+')(\\-[_a-zA-Z0-9])?' );
var match = className.match( re );
if ( match ) {
hasClass = true;
if ( match[2] === brokenPoint[0] && match[3] === '-'+brokenPoint[1] ) {
// Class name matches breakpoint name fully
column( i, breakpoint.name, match[1], match[2]+match[3] );
}
else if ( match[2] === brokenPoint[0] && ! match[3] ) {
// Class name matched primary breakpoint name with no qualifier
column( i, breakpoint.name, match[1], match[2] );
}
}
} );
}
// If there was no control class, then automatic sizing is used
if ( ! hasClass ) {
col.auto = true;
}
} );
this.s.columns = columns;
},
/**
* Initialisation for the details handler
*
* @private
*/
_detailsInit: function ()
{
var that = this;
var dt = this.s.dt;
var details = this.c.details;
// The inline type always uses the first child as the target
if ( details.type === 'inline' ) {
details.target = 'td:first-child';
}
// type.target can be a string jQuery selector or a column index
var target = details.target;
var selector = typeof target === 'string' ? target : 'td';
// Click handler to show / hide the details rows when they are available
$( dt.table().body() ).on( 'click', selector, function (e) {
// If the table is not collapsed (i.e. there is no hidden columns)
// then take no action
if ( ! $(dt.table().node()).hasClass('collapsed' ) ) {
return;
}
// Check that the row is actually a DataTable's controlled node
if ( ! dt.row( $(this).closest('tr') ).length ) {
return;
}
// For column index, we determine if we should act or not in the
// handler - otherwise it is already okay
if ( typeof target === 'number' ) {
var targetIdx = target < 0 ?
dt.columns().eq(0).length + target :
target;
if ( dt.cell( this ).index().column !== targetIdx ) {
return;
}
}
// $().closest() includes itself in its check
var row = dt.row( $(this).closest('tr') );
if ( row.child.isShown() ) {
row.child( false );
$( row.node() ).removeClass( 'parent' );
}
else {
var info = that.c.details.renderer( dt, row[0] );
row.child( info, 'child' ).show();
$( row.node() ).addClass( 'parent' );
}
} );
},
/**
* Update the child rows in the table whenever the column visibility changes
*
* @private
*/
_detailsVis: function ()
{
var that = this;
var dt = this.s.dt;
// Find how many columns are hidden
var hiddenColumns = dt.columns().indexes().filter( function ( idx ) {
var col = dt.column( idx );
if ( col.visible() ) {
return null;
}
// Only counts as hidden if it doesn't have the `never` class
return $( col.header() ).hasClass( 'never' ) ? null : idx;
} );
var haveHidden = true;
if ( hiddenColumns.length === 0 || ( hiddenColumns.length === 1 && this.s.columns[ hiddenColumns[0] ].control ) ) {
haveHidden = false;
}
if ( haveHidden ) {
// Show all existing child rows
dt.rows( { page: 'current' } ).eq(0).each( function (idx) {
var row = dt.row( idx );
if ( row.child() ) {
var info = that.c.details.renderer( dt, row[0] );
// The renderer can return false to have no child row
if ( info === false ) {
row.child.hide();
}
else {
row.child( info, 'child' ).show();
}
}
} );
}
else {
// Hide all existing child rows
dt.rows( { page: 'current' } ).eq(0).each( function (idx) {
dt.row( idx ).child.hide();
} );
}
},
/**
* Find a breakpoint object from a name
* @param {string} name Breakpoint name to find
* @return {object} Breakpoint description object
*/
_find: function ( name )
{
var breakpoints = this.c.breakpoints;
for ( var i=0, ien=breakpoints.length ; i<ien ; i++ ) {
if ( breakpoints[i].name === name ) {
return breakpoints[i];
}
}
},
/**
* Alter the table display for a resized viewport. This involves first
* determining what breakpoint the window currently is in, getting the
* column visibilities to apply and then setting them.
*
* @private
*/
_resize: function ()
{
var dt = this.s.dt;
var width = $(window).width();
var breakpoints = this.c.breakpoints;
var breakpoint = breakpoints[0].name;
var columns = this.s.columns;
var i, ien;
// Determine what breakpoint we are currently at
for ( i=breakpoints.length-1 ; i>=0 ; i-- ) {
if ( width <= breakpoints[i].width ) {
breakpoint = breakpoints[i].name;
break;
}
}
// Show the columns for that break point
var columnsVis = this._columnsVisiblity( breakpoint );
// Set the class before the column visibility is changed so event
// listeners know what the state is. Need to determine if there are
// any columns that are not visible but can be shown
var collapsedClass = false;
for ( i=0, ien=columns.length ; i<ien ; i++ ) {
if ( columnsVis[i] === false && ! columns[i].never ) {
collapsedClass = true;
break;
}
}
$( dt.table().node() ).toggleClass('collapsed', collapsedClass );
dt.columns().eq(0).each( function ( colIdx, i ) {
dt.column( colIdx ).visible( columnsVis[i] );
} );
},
/**
* Determine the width of each column in the table so the auto column hiding
* has that information to work with. This method is never going to be 100%
* perfect since column widths can change slightly per page, but without
* seriously compromising performance this is quite effective.
*
* @private
*/
_resizeAuto: function ()
{
var dt = this.s.dt;
var columns = this.s.columns;
// Are we allowed to do auto sizing?
if ( ! this.c.auto ) {
return;
}
// Are there any columns that actually need auto-sizing, or do they all
// have classes defined
if ( $.inArray( true, $.map( columns, function (c) { return c.auto; } ) ) === -1 ) {
return;
}
// Clone the table with the current data in it
var tableWidth = dt.table().node().offsetWidth;
var columnWidths = dt.columns;
var clonedTable = dt.table().node().cloneNode( false );
var clonedHeader = $( dt.table().header().cloneNode( false ) ).appendTo( clonedTable );
var clonedBody = $( dt.table().body().cloneNode( false ) ).appendTo( clonedTable );
$( dt.table().footer() ).clone( false ).appendTo( clonedTable );
// This is a bit slow, but we need to get a clone of each row that
// includes all columns. As such, try to do this as little as possible.
dt.rows( { page: 'current' } ).indexes().flatten().each( function ( idx ) {
var clone = dt.row( idx ).node().cloneNode( true );
if ( dt.columns( ':hidden' ).flatten().length ) {
$(clone).append( dt.cells( idx, ':hidden' ).nodes().to$().clone() );
}
$(clone).appendTo( clonedBody );
} );
var cells = dt.columns().header().to$().clone( false );
$('<tr/>')
.append( cells )
.appendTo( clonedHeader );
// In the inline case extra padding is applied to the first column to
// give space for the show / hide icon. We need to use this in the
// calculation
if ( this.c.details.type === 'inline' ) {
$(clonedTable).addClass( 'dtr-inline collapsed' );
}
var inserted = $('<div/>')
.css( {
width: 1,
height: 1,
overflow: 'hidden'
} )
.append( clonedTable );
// Remove columns which are not to be included
inserted.find('th.never, td.never').remove();
inserted.insertBefore( dt.table().node() );
// The cloned header now contains the smallest that each column can be
dt.columns().eq(0).each( function ( idx ) {
columns[idx].minWidth = cells[ idx ].offsetWidth || 0;
} );
inserted.remove();
}
};
/**
* List of default breakpoints. Each item in the array is an object with two
* properties:
*
* * `name` - the breakpoint name.
* * `width` - the breakpoint width
*
* @name Responsive.breakpoints
* @static
*/
Responsive.breakpoints = [
{ name: 'desktop', width: Infinity },
{ name: 'tablet-l', width: 1024 },
{ name: 'tablet-p', width: 768 },
{ name: 'mobile-l', width: 480 },
{ name: 'mobile-p', width: 320 }
];
/**
* Responsive default settings for initialisation
*
* @namespace
* @name Responsive.defaults
* @static
*/
Responsive.defaults = {
/**
* List of breakpoints for the instance. Note that this means that each
* instance can have its own breakpoints. Additionally, the breakpoints
* cannot be changed once an instance has been creased.
*
* @type {Array}
* @default Takes the value of `Responsive.breakpoints`
*/
breakpoints: Responsive.breakpoints,
/**
* Enable / disable auto hiding calculations. It can help to increase
* performance slightly if you disable this option, but all columns would
* need to have breakpoint classes assigned to them
*
* @type {Boolean}
* @default `true`
*/
auto: true,
/**
* Details control. If given as a string value, the `type` property of the
* default object is set to that value, and the defaults used for the rest
* of the object - this is for ease of implementation.
*
* The object consists of the following properties:
*
* * `renderer` - function that is called for display of the child row data.
* The default function will show the data from the hidden columns
* * `target` - Used as the selector for what objects to attach the child
* open / close to
* * `type` - `false` to disable the details display, `inline` or `column`
* for the two control types
*
* @type {Object|string}
*/
details: {
renderer: function ( api, rowIdx ) {
var data = api.cells( rowIdx, ':hidden' ).eq(0).map( function ( cell ) {
var header = $( api.column( cell.column ).header() );
var idx = api.cell( cell ).index();
if ( header.hasClass( 'control' ) || header.hasClass( 'never' ) ) {
return '';
}
// Use a non-public DT API method to render the data for display
// This needs to be updated when DT adds a suitable method for
// this type of data retrieval
var dtPrivate = api.settings()[0];
var cellData = dtPrivate.oApi._fnGetCellData(
dtPrivate, idx.row, idx.column, 'display'
);
var title = header.text();
if ( title ) {
title = title + ':';
}
return '<li data-dtr-index="'+idx.column+'">'+
'<span class="dtr-title">'+
title+
'</span> '+
'<span class="dtr-data">'+
cellData+
'</span>'+
'</li>';
} ).toArray().join('');
return data ?
$('<ul data-dtr-index="'+rowIdx+'"/>').append( data ) :
false;
},
target: 0,
type: 'inline'
}
};
/*
* API
*/
var Api = $.fn.dataTable.Api;
// Doesn't do anything - work around for a bug in DT... Not documented
Api.register( 'responsive()', function () {
return this;
} );
Api.register( 'responsive.index()', function ( li ) {
li = $(li);
return {
column: li.data('dtr-index'),
row: li.parent().data('dtr-index')
};
} );
Api.register( 'responsive.rebuild()', function () {
return this.iterator( 'table', function ( ctx ) {
if ( ctx._responsive ) {
ctx._responsive._classLogic();
}
} );
} );
Api.register( 'responsive.recalc()', function () {
return this.iterator( 'table', function ( ctx ) {
if ( ctx._responsive ) {
ctx._responsive._resizeAuto();
ctx._responsive._resize();
}
} );
} );
/**
* Version information
*
* @name Responsive.version
* @static
*/
Responsive.version = '1.0.6';
$.fn.dataTable.Responsive = Responsive;
$.fn.DataTable.Responsive = Responsive;
// Attach a listener to the document which listens for DataTables initialisation
// events so we can automatically initialise
$(document).on( 'init.dt.dtr', function (e, settings, json) {
if ( e.namespace !== 'dt' ) {
return;
}
if ( $(settings.nTable).hasClass( 'responsive' ) ||
$(settings.nTable).hasClass( 'dt-responsive' ) ||
settings.oInit.responsive ||
DataTable.defaults.responsive
) {
var init = settings.oInit.responsive;
if ( init !== false ) {
new Responsive( settings, $.isPlainObject( init ) ? init : {} );
}
}
} );
return Responsive;
}; // /factory
// Define as an AMD module if possible
if ( typeof define === 'function' && define.amd ) {
define( ['jquery', 'datatables'], factory );
}
else if ( typeof exports === 'object' ) {
// Node/CommonJS
factory( require('jquery'), require('datatables') );
}
else if ( jQuery && !jQuery.fn.dataTable.Responsive ) {
// Otherwise simply initialise as normal, stopping multiple evaluation
factory( jQuery, jQuery.fn.dataTable );
}
})(window, document);

@ -0,0 +1,19 @@
/*!
Responsive 1.0.6
2014-2015 SpryMedia Ltd - datatables.net/license
*/
(function(n,p){var o=function(e,k){var h=function(d,a){if(!k.versionCheck||!k.versionCheck("1.10.1"))throw"DataTables Responsive requires DataTables 1.10.1 or newer";this.s={dt:new k.Api(d),columns:[]};this.s.dt.settings()[0].responsive||(a&&"string"===typeof a.details&&(a.details={type:a.details}),this.c=e.extend(!0,{},h.defaults,k.defaults.responsive,a),d.responsive=this,this._constructor())};h.prototype={_constructor:function(){var d=this,a=this.s.dt;a.settings()[0]._responsive=this;e(n).on("resize.dtr orientationchange.dtr",
a.settings()[0].oApi._fnThrottle(function(){d._resize()}));a.on("destroy.dtr",function(){e(n).off("resize.dtr orientationchange.dtr draw.dtr")});this.c.breakpoints.sort(function(a,c){return a.width<c.width?1:a.width>c.width?-1:0});this._classLogic();this._resizeAuto();var c=this.c.details;c.type&&(d._detailsInit(),this._detailsVis(),a.on("column-visibility.dtr",function(){d._detailsVis()}),a.on("draw.dtr",function(){a.rows({page:"current"}).iterator("row",function(b,c){var f=a.row(c);if(f.child.isShown()){var i=
d.c.details.renderer(a,c);f.child(i,"child").show()}})}),e(a.table().node()).addClass("dtr-"+c.type));this._resize()},_columnsVisiblity:function(d){var a=this.s.dt,c=this.s.columns,b,g,f=e.map(c,function(a){return a.auto&&null===a.minWidth?!1:!0===a.auto?"-":-1!==e.inArray(d,a.includeIn)}),i=0;b=0;for(g=f.length;b<g;b++)!0===f[b]&&(i+=c[b].minWidth);b=a.settings()[0].oScroll;b=b.sY||b.sX?b.iBarWidth:0;a=a.table().container().offsetWidth-b-i;b=0;for(g=f.length;b<g;b++)c[b].control&&(a-=c[b].minWidth);
i=!1;b=0;for(g=f.length;b<g;b++)"-"===f[b]&&!c[b].control&&(i||0>a-c[b].minWidth?(i=!0,f[b]=!1):f[b]=!0,a-=c[b].minWidth);a=!1;b=0;for(g=c.length;b<g;b++)if(!c[b].control&&!c[b].never&&!f[b]){a=!0;break}b=0;for(g=c.length;b<g;b++)c[b].control&&(f[b]=a);-1===e.inArray(!0,f)&&(f[0]=!0);return f},_classLogic:function(){var d=this,a=this.c.breakpoints,c=this.s.dt.columns().eq(0).map(function(a){a=this.column(a).header().className;return{className:a,includeIn:[],auto:!1,control:!1,never:a.match(/\bnever\b/)?
!0:!1}}),b=function(a,b){var d=c[a].includeIn;-1===e.inArray(b,d)&&d.push(b)},g=function(f,g,e,j){if(e)if("max-"===e){j=d._find(g).width;g=0;for(e=a.length;g<e;g++)a[g].width<=j&&b(f,a[g].name)}else if("min-"===e){j=d._find(g).width;g=0;for(e=a.length;g<e;g++)a[g].width>=j&&b(f,a[g].name)}else{if("not-"===e){g=0;for(e=a.length;g<e;g++)-1===a[g].name.indexOf(j)&&b(f,a[g].name)}}else c[f].includeIn.push(g)};c.each(function(b,c){for(var d=b.className.split(" "),j=!1,h=0,k=d.length;h<k;h++){var l=e.trim(d[h]);
if("all"===l){j=!0;b.includeIn=e.map(a,function(a){return a.name});return}if("none"===l||"never"===l){j=!0;return}if("control"===l){j=!0;b.control=!0;return}e.each(a,function(a,b){var d=b.name.split("-"),e=l.match(RegExp("(min\\-|max\\-|not\\-)?("+d[0]+")(\\-[_a-zA-Z0-9])?"));e&&(j=!0,e[2]===d[0]&&e[3]==="-"+d[1]?g(c,b.name,e[1],e[2]+e[3]):e[2]===d[0]&&!e[3]&&g(c,b.name,e[1],e[2]))})}j||(b.auto=!0)});this.s.columns=c},_detailsInit:function(){var d=this,a=this.s.dt,c=this.c.details;"inline"===c.type&&
(c.target="td:first-child");var b=c.target;e(a.table().body()).on("click","string"===typeof b?b:"td",function(){if(e(a.table().node()).hasClass("collapsed")&&a.row(e(this).closest("tr")).length){if(typeof b==="number"){var c=b<0?a.columns().eq(0).length+b:b;if(a.cell(this).index().column!==c)return}c=a.row(e(this).closest("tr"));if(c.child.isShown()){c.child(false);e(c.node()).removeClass("parent")}else{var f=d.c.details.renderer(a,c[0]);c.child(f,"child").show();e(c.node()).addClass("parent")}}})},
_detailsVis:function(){var d=this,a=this.s.dt,c=a.columns().indexes().filter(function(b){var c=a.column(b);return c.visible()?null:e(c.header()).hasClass("never")?null:b}),b=!0;if(0===c.length||1===c.length&&this.s.columns[c[0]].control)b=!1;b?a.rows({page:"current"}).eq(0).each(function(b){b=a.row(b);if(b.child()){var c=d.c.details.renderer(a,b[0]);!1===c?b.child.hide():b.child(c,"child").show()}}):a.rows({page:"current"}).eq(0).each(function(b){a.row(b).child.hide()})},_find:function(d){for(var a=
this.c.breakpoints,c=0,b=a.length;c<b;c++)if(a[c].name===d)return a[c]},_resize:function(){var d=this.s.dt,a=e(n).width(),c=this.c.breakpoints,b=c[0].name,g=this.s.columns,f;for(f=c.length-1;0<=f;f--)if(a<=c[f].width){b=c[f].name;break}var i=this._columnsVisiblity(b),c=!1;f=0;for(a=g.length;f<a;f++)if(!1===i[f]&&!g[f].never){c=!0;break}e(d.table().node()).toggleClass("collapsed",c);d.columns().eq(0).each(function(a,b){d.column(a).visible(i[b])})},_resizeAuto:function(){var d=this.s.dt,a=this.s.columns;
if(this.c.auto&&-1!==e.inArray(!0,e.map(a,function(a){return a.auto}))){d.table().node();var c=d.table().node().cloneNode(!1),b=e(d.table().header().cloneNode(!1)).appendTo(c),g=e(d.table().body().cloneNode(!1)).appendTo(c);e(d.table().footer()).clone(!1).appendTo(c);d.rows({page:"current"}).indexes().flatten().each(function(a){var b=d.row(a).node().cloneNode(!0);d.columns(":hidden").flatten().length&&e(b).append(d.cells(a,":hidden").nodes().to$().clone());e(b).appendTo(g)});var f=d.columns().header().to$().clone(!1);
e("<tr/>").append(f).appendTo(b);"inline"===this.c.details.type&&e(c).addClass("dtr-inline collapsed");c=e("<div/>").css({width:1,height:1,overflow:"hidden"}).append(c);c.find("th.never, td.never").remove();c.insertBefore(d.table().node());d.columns().eq(0).each(function(b){a[b].minWidth=f[b].offsetWidth||0});c.remove()}}};h.breakpoints=[{name:"desktop",width:Infinity},{name:"tablet-l",width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];h.defaults={breakpoints:h.breakpoints,
auto:!0,details:{renderer:function(d,a){var c=d.cells(a,":hidden").eq(0).map(function(a){var c=e(d.column(a.column).header()),a=d.cell(a).index();if(c.hasClass("control")||c.hasClass("never"))return"";var f=d.settings()[0],f=f.oApi._fnGetCellData(f,a.row,a.column,"display");(c=c.text())&&(c+=":");return'<li data-dtr-index="'+a.column+'"><span class="dtr-title">'+c+'</span> <span class="dtr-data">'+f+"</span></li>"}).toArray().join("");return c?e('<ul data-dtr-index="'+a+'"/>').append(c):!1},target:0,
type:"inline"}};var m=e.fn.dataTable.Api;m.register("responsive()",function(){return this});m.register("responsive.index()",function(d){d=e(d);return{column:d.data("dtr-index"),row:d.parent().data("dtr-index")}});m.register("responsive.rebuild()",function(){return this.iterator("table",function(d){d._responsive&&d._responsive._classLogic()})});m.register("responsive.recalc()",function(){return this.iterator("table",function(d){d._responsive&&(d._responsive._resizeAuto(),d._responsive._resize())})});
h.version="1.0.6";e.fn.dataTable.Responsive=h;e.fn.DataTable.Responsive=h;e(p).on("init.dt.dtr",function(d,a){if("dt"===d.namespace&&(e(a.nTable).hasClass("responsive")||e(a.nTable).hasClass("dt-responsive")||a.oInit.responsive||k.defaults.responsive)){var c=a.oInit.responsive;!1!==c&&new h(a,e.isPlainObject(c)?c:{})}});return h};"function"===typeof define&&define.amd?define(["jquery","datatables"],o):"object"===typeof exports?o(require("jquery"),require("datatables")):jQuery&&!jQuery.fn.dataTable.Responsive&&
o(jQuery,jQuery.fn.dataTable)})(window,document);