1
0
mirror of https://github.com/pierre42100/ComunicWeb synced 2025-07-10 21:22:53 +00:00

First commit

This commit is contained in:
Pierre
2017-01-04 19:14:27 +01:00
parent 665fbbbb6a
commit d8e5c85b58
3051 changed files with 441706 additions and 0 deletions
assets
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
.gitignore.npmignoreCONTRIBUTING.mdGemfileGemfile.lockHELP-US-OUT.txtREADME.md_config.ymlbower.jsoncomponent.jsoncomposer.json
css
fonts
less
package.json
scss
src
3.2.1
CNAMEMakefile
assets
css
font-awesome.zip
font-awesome
ico
img
js
less
cheatsheet
community
design.html
examples
get-started
icon
adjust
adn
align-center
align-justify
align-left
align-right
ambulance
anchor
android
angle-down
angle-left
angle-right
angle-up
apple
archive
arrow-down
arrow-left
arrow-right
arrow-up
asterisk
backward
ban-circle
bar-chart
barcode
beaker
beer
bell-alt
bell
bitbucket-sign
bitbucket
bold
bolt
book
bookmark-empty
bookmark
briefcase
btc
bug
building
bullhorn
bullseye
calendar-empty
calendar
camera-retro
camera
caret-down
caret-left
caret-right
caret-up
certificate
check-empty
check-minus
check-sign
check
chevron-down
chevron-left
chevron-right
chevron-sign-down
chevron-sign-left
chevron-sign-right
chevron-sign-up
chevron-up
circle-arrow-down
circle-arrow-left
circle-arrow-right
circle-arrow-up
circle-blank
circle
cloud-download
cloud-upload
cloud
cny
code-fork
code
coffee
cog
cogs
collapse-alt
collapse-top
collapse
columns
comment-alt
comment
comments-alt
comments
compass
copy
credit-card
crop
css3
cut
dashboard
desktop
double-angle-down
double-angle-left
double-angle-right
double-angle-up
download-alt
download
dribbble
dropbox
edit-sign
edit
eject
ellipsis-horizontal
ellipsis-vertical
envelope-alt
envelope
eraser
eur
exchange
exclamation-sign
exclamation
expand-alt
expand
external-link-sign
external-link
eye-close
eye-open
facebook-sign
facebook
facetime-video
fast-backward
fast-forward
female
fighter-jet
file-alt
file-text-alt
file-text
file
film
filter
fire-extinguisher
fire
flag-alt
flag-checkered
flag
flickr
folder-close-alt
folder-close
folder-open-alt
folder-open
font
food
forward
foursquare
frown
fullscreen
gamepad
gbp
gift
github-alt
github-sign
github
gittip
glass
globe
google-plus-sign
google-plus
group
h-sign
hand-down
hand-left
hand-right
hand-up
hdd
headphones
heart-empty
heart
home
hospital
html5
inbox
indent-left
indent-right
info-sign
info
inr
instagram
italic
jpy
key
keyboard
krw
laptop
leaf
legal
lemon
level-down
level-up
lightbulb
link
linkedin-sign
linkedin
linux
list-alt
list-ol
list-ul
list
location-arrow
lock
long-arrow-down
long-arrow-left
long-arrow-right
long-arrow-up
magic
magnet
mail-reply-all
male
map-marker
maxcdn
medkit
meh
microphone-off
microphone
minus-sign-alt
minus-sign
minus
mobile-phone
money
moon
move
music
off
ok-circle
ok-sign
ok
paper-clip
paste
pause
pencil
phone-sign
phone
picture
pinterest-sign
pinterest
plane
play-circle
play-sign
play
plus-sign-alt
plus-sign
plus
print
pushpin
puzzle-piece
qrcode
question-sign
question
quote-left
quote-right
random
refresh
remove-circle
remove-sign
remove
renren
reorder
repeat
reply-all
reply
resize-full
resize-horizontal
resize-small
resize-vertical
retweet
road
rocket
rss-sign
rss
save
screenshot
search
share-alt
share-sign
share
shield
shopping-cart
sign-blank
signal
signin
signout
sitemap
skype
smile
sort-by-alphabet-alt
sort-by-alphabet
sort-by-attributes-alt
sort-by-attributes
sort-by-order-alt
sort-by-order
sort-down
sort-up
sort
spinner
stackexchange
star-empty
star-half-empty
star-half
star
step-backward
step-forward
stethoscope
stop
strikethrough
subscript
suitcase
sun
superscript
table
tablet
tag
tags
tasks
terminal
text-height
text-width
th-large
th-list
th
thumbs-down-alt
thumbs-down
thumbs-up-alt
thumbs-up
ticket
time
tint
trash
trello
trophy
truck
tumblr-sign
tumblr
twitter-sign
twitter
umbrella
underline
undo
unlink
unlock-alt
unlock
upload-alt
upload
usd
user-md
user
vk
volume-down
volume-off
volume-up
warning-sign
weibo
windows
wrench
xing-sign
xing
youtube-play
youtube-sign
youtube
zoom-in
zoom-out
icons.yml
icons
index.html
license
test
whats-new
CNAMEMakefileREADME.md-nobuild
_includes
_layouts
_plugins
assets
css
font-awesome
ico
img
js
less
cheatsheet.htmlcommunity.htmldesign.htmlexamples.htmlget-started.htmlglyphicons-test.htmlicons.htmlicons.ymlindex.htmllicense.htmltest-2.3.2.htmltest.htmlthanks.htmlwhats-new.html
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
js
corePage
index.php

@ -0,0 +1,43 @@
# Scroller
Scroller is a virtual rendering plug-in for DataTables which allows large datasets to be drawn on screen every quickly. What the virtual rendering means is that only the visible portion of the table (and a bit to either side to make the scrolling smooth) is drawn, while the scrolling container gives the visual impression that the whole table is visible. This is done by making use of the pagination abilities of DataTables and moving the table around in the scrolling container DataTables adds to the page. The scrolling container is forced to the height it would be for the full table display using an extra element.
Key features include:
* Speed! The aim of Scroller for DataTables is to make rendering large data sets fast
* Full compatibility with DataTables' deferred rendering for maximum speed
* Integration with state saving in DataTables (scrolling position is saved)
* Support for scrolling with millions of rows
* Easy to use
# Installation
To use Scroller, first download DataTables ( http://datatables.net/download ) and place the unzipped Scroller package into a `extensions` directory in the DataTables package. This will allow the pages in the examples to operate correctly. To see the examples running, open the `examples` directory in your web-browser.
# Basic usage
Scroller is initialised by simply including the letter `dt-string S` in the `dt-init dom` for the table you want to have this feature enabled on. Note that the `dt-string S` must come after the `dt-string t` parameter in `dom`. For example:
```js
$(document).ready( function () {
$('#example').DataTable( {
dom: 'lfrtipS'
} );
} );
```
Note that rows in the table must all be the same height. Information in a cell which expands on to multiple lines will cause some odd behaviour in the scrolling. Additionally, the table's `cellspacing` parameter must be set to 0, again to ensure the information display is correct.
# Documentation / support
* Documentation: http://datatables.net/extensions/scroller/
* DataTables support forums: http://datatables.net/forums
# GitHub
If you fancy getting involved with the development of Scroller and help make it better, please refer to its GitHub repo: https://github.com/DataTables/Scroller

@ -0,0 +1,44 @@
/*
* Namespace: DTS (DataTables Scroller)
*/
div.DTS tbody th,
div.DTS tbody td {
white-space: nowrap;
}
div.DTS tbody tr.even {
background-color: white;
}
div.DTS div.DTS_Loading {
position: absolute;
top: 50%;
left: 50%;
width: 200px;
height: 20px;
margin-top: -20px;
margin-left: -100px;
z-index: 1;
border: 1px solid #999;
padding: 20px 0;
text-align: center;
background-color: white;
background-color: rgba(255, 255, 255, 0.5);
}
div.DTS div.dataTables_scrollHead,
div.DTS div.dataTables_scrollFoot {
background-color: white;
}
div.DTS div.dataTables_scrollBody {
z-index: 2;
}
div.DTS div.dataTables_scroll {
background: url('../images/loading-background.png') repeat 0 0;
}

@ -0,0 +1 @@
div.DTS tbody th,div.DTS tbody td{white-space:nowrap}div.DTS tbody tr.even{background-color:white}div.DTS div.DTS_Loading{position:absolute;top:50%;left:50%;width:200px;height:20px;margin-top:-20px;margin-left:-100px;z-index:1;border:1px solid #999;padding:20px 0;text-align:center;background-color:white;background-color:rgba(255,255,255,0.5)}div.DTS div.dataTables_scrollHead,div.DTS div.dataTables_scrollFoot{background-color:white}div.DTS div.dataTables_scrollBody{z-index:2}div.DTS div.dataTables_scroll{background:url("../images/loading-background.png") repeat 0 0}

@ -0,0 +1,174 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/favicon.ico">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
<title>Scroller example - API</title>
<link rel="stylesheet" type="text/css" href="../../../media/css/jquery.dataTables.css">
<link rel="stylesheet" type="text/css" href="../css/dataTables.scroller.css">
<link rel="stylesheet" type="text/css" href="../../../examples/resources/syntax/shCore.css">
<link rel="stylesheet" type="text/css" href="../../../examples/resources/demo.css">
<style type="text/css" class="init">
</style>
<script type="text/javascript" language="javascript" src="../../../media/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="../../../media/js/jquery.dataTables.js"></script>
<script type="text/javascript" language="javascript" src="../js/dataTables.scroller.js"></script>
<script type="text/javascript" language="javascript" src="../../../examples/resources/syntax/shCore.js"></script>
<script type="text/javascript" language="javascript" src="../../../examples/resources/demo.js"></script>
<script type="text/javascript" language="javascript" class="init">
$(document).ready(function() {
$('#example').DataTable( {
ajax: "data/2500.txt",
deferRender: true,
dom: "frtiS",
scrollY: 200,
scrollCollapse: true,
initComplete: function () {
var api = this.api();
api.scroller().scrollToRow( 1000 );
}
} );
} );
</script>
</head>
<body class="dt-example">
<div class="container">
<section>
<h1>Scroller example <span>API</span></h1>
<div class="info">
<p>This example shows a trivial use of the API methods that Scroller adds to the DataTables API to
scroll to a row once the table's data has been loaded. In this case
<code>scroller().scrollToRow()</code> is used to jump to row 1000.</p>
</div>
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>ID</th>
<th>First name</th>
<th>Last name</th>
<th>ZIP / Post code</th>
<th>Country</th>
</tr>
</thead>
</table>
<ul class="tabs">
<li class="active">Javascript</li>
<li>HTML</li>
<li>CSS</li>
<li>Ajax</li>
<li>Server-side script</li>
</ul>
<div class="tabs">
<div class="js">
<p>The Javascript shown below is used to initialise the table shown in this
example:</p><code class="multiline brush: js;">$(document).ready(function() {
$('#example').DataTable( {
ajax: &quot;data/2500.txt&quot;,
deferRender: true,
dom: &quot;frtiS&quot;,
scrollY: 200,
scrollCollapse: true,
initComplete: function () {
var api = this.api();
api.scroller().scrollToRow( 1000 );
}
} );
} );</code>
<p>In addition to the above code, the following Javascript library files are loaded for use in this
example:</p>
<ul>
<li><a href="../../../media/js/jquery.js">../../../media/js/jquery.js</a></li>
<li><a href=
"../../../media/js/jquery.dataTables.js">../../../media/js/jquery.dataTables.js</a></li>
<li><a href="../js/dataTables.scroller.js">../js/dataTables.scroller.js</a></li>
</ul>
</div>
<div class="table">
<p>The HTML shown below is the raw HTML table element, before it has been enhanced by
DataTables:</p>
</div>
<div class="css">
<div>
<p>This example uses a little bit of additional CSS beyond what is loaded from the library
files (below), in order to correctly display the table. The additional CSS used is shown
below:</p><code class="multiline brush: js;"></code>
</div>
<p>The following CSS library files are loaded for use in this example to provide the styling of the
table:</p>
<ul>
<li><a href=
"../../../media/css/jquery.dataTables.css">../../../media/css/jquery.dataTables.css</a></li>
<li><a href="../css/dataTables.scroller.css">../css/dataTables.scroller.css</a></li>
</ul>
</div>
<div class="ajax">
<p>This table loads data by Ajax. The latest data that has been loaded is shown below. This data
will update automatically as any additional data is loaded.</p>
</div>
<div class="php">
<p>The script used to perform the server-side processing for this table is shown below. Please note
that this is just an example script using PHP. Server-side processing scripts can be written in any
language, using <a href="//datatables.net/manual/server-side">the protocol described in the
DataTables documentation</a>.</p>
</div>
</div>
</section>
</div>
<section>
<div class="footer">
<div class="gradient"></div>
<div class="liner">
<h2>Other examples</h2>
<div class="toc">
<div class="toc-group">
<h3><a href="./index.html">Examples</a></h3>
<ul class="toc active">
<li><a href="./simple.html">Basic initialisation</a></li>
<li><a href="./state_saving.html">State saving</a></li>
<li><a href="./large_js_source.html">Client-side data source (50,000 rows)</a></li>
<li><a href="./server-side_processing.html">Server-side processing (5,000,000
rows)</a></li>
<li class="active"><a href="./api_scrolling.html">API</a></li>
</ul>
</div>
</div>
<div class="epilogue">
<p>Please refer to the <a href="http://www.datatables.net">DataTables documentation</a> for full
information about its API properties and methods.<br>
Additionally, there are a wide range of <a href="http://www.datatables.net/extras">extras</a> and
<a href="http://www.datatables.net/plug-ins">plug-ins</a> which extend the capabilities of
DataTables.</p>
<p class="copyright">DataTables designed and created by <a href=
"http://www.sprymedia.co.uk">SpryMedia Ltd</a> &#169; 2007-2014<br>
DataTables is licensed under the <a href="http://www.datatables.net/mit">MIT license</a>.</p>
</div>
</div>
</div>
</section>
</body>
</html>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,58 @@
<?php
/*
* DataTables example server-side processing script.
*
* Please note that this script is intentionally extremely simply to show how
* server-side processing can be implemented, and probably shouldn't be used as
* the basis for a large complex system. It is suitable for simple use cases as
* for learning.
*
* See http://datatables.net/usage/server-side for full details on the server-
* side processing requirements of DataTables.
*
* @license MIT - http://datatables.net/license_mit
*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Easy set variables
*/
// DB table to use
$table = 'massive';
// Table's primary key
$primaryKey = 'id';
// Array of database columns which should be read and sent back to DataTables.
// The `db` parameter represents the column name in the database, while the `dt`
// parameter represents the DataTables column identifier. In this case simple
// indexes
$columns = array(
array( 'db' => 'id', 'dt' => 0 ),
array( 'db' => 'firstname', 'dt' => 1 ),
array( 'db' => 'surname', 'dt' => 2 ),
array( 'db' => 'zip', 'dt' => 3 ),
array( 'db' => 'country', 'dt' => 4 )
);
// SQL server connection information
$sql_details = array(
'user' => '',
'pass' => '',
'db' => '',
'host' => ''
);
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* If you just want to use the basic configuration for DataTables with PHP
* server-side, there is no need to edit below this line.
*/
require( '../../../../examples/server_side/scripts/ssp.class.php' );
echo json_encode(
SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
);

@ -0,0 +1,83 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/favicon.ico">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
<link rel="stylesheet" type="text/css" href="../../../examples/resources/syntax/shCore.css">
<link rel="stylesheet" type="text/css" href="../../../examples/resources/demo.css">
<script type="text/javascript" language="javascript" src="../../../media/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="../../../examples/resources/syntax/shCore.js"></script>
<script type="text/javascript" language="javascript" src="../../../examples/resources/demo.js"></script>
<title>Scroller examples - Scroller examples</title>
</head>
<body class="dt-example">
<div class="container">
<section>
<h1>Scroller example <span>Scroller examples</span></h1>
<div class="info">
<p>Scroller is a virtual rendering plug-in for DataTables which allows large datasets to be drawn on
screen every quickly. What the virtual rendering means is that only the visible portion of the table
(and a bit to either side to make the scrolling smooth) is drawn, while the scrolling container gives
the visual impression that the whole table is visible. This is done by making use of the pagination
abilities of DataTables and moving the table around in the scrolling container DataTables adds to the
page. The scrolling container is forced to the height it would be for the full table display using an
extra element.</p>
<p>Scroller is initialised by simply including the letter <code>S</code> in the <a href=
"//datatables.net/reference/option/dom"><code class="option" title=
"DataTables initialisation option">dom<span>DT</span></code></a> for the table you want to have this
feature enabled on. Note that the <code>S</code> must come after the <code>t</code> parameter in
<a href="//datatables.net/reference/option/dom"><code class="option" title=
"DataTables initialisation option">dom<span>DT</span></code></a>.</p>
<p>Key features include:</p>
<ul class="markdown">
<li>Speed! The aim of Scroller for DataTables is to make rendering large data sets fast</li>
<li>Full compatibility with DataTables' deferred rendering for maximum speed</li>
<li>Integration with state saving in DataTables (scrolling position is saved)</li>
<li>Easy to use</li>
</ul>
</div>
</section>
</div>
<section>
<div class="footer">
<div class="gradient"></div>
<div class="liner">
<div class="toc">
<div class="toc-group">
<h3><a href="./index.html">Examples</a></h3>
<ul class="toc">
<li><a href="./simple.html">Basic initialisation</a></li>
<li><a href="./state_saving.html">State saving</a></li>
<li><a href="./large_js_source.html">Client-side data source (50,000 rows)</a></li>
<li><a href="./server-side_processing.html">Server-side processing (5,000,000
rows)</a></li>
<li><a href="./api_scrolling.html">API</a></li>
</ul>
</div>
</div>
<div class="epilogue">
<p>Please refer to the <a href="http://www.datatables.net">DataTables documentation</a> for full
information about its API properties and methods.<br>
Additionally, there are a wide range of <a href="http://www.datatables.net/extras">extras</a> and
<a href="http://www.datatables.net/plug-ins">plug-ins</a> which extend the capabilities of
DataTables.</p>
<p class="copyright">DataTables designed and created by <a href=
"http://www.sprymedia.co.uk">SpryMedia Ltd</a> &#169; 2007-2014<br>
DataTables is licensed under the <a href="http://www.datatables.net/mit">MIT license</a>.</p>
</div>
</div>
</div>
</section>
</body>
</html>

@ -0,0 +1,182 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/favicon.ico">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
<title>Scroller example - Client-side data source (50,000 rows)</title>
<link rel="stylesheet" type="text/css" href="../../../media/css/jquery.dataTables.css">
<link rel="stylesheet" type="text/css" href="../css/dataTables.scroller.css">
<link rel="stylesheet" type="text/css" href="../../../examples/resources/syntax/shCore.css">
<link rel="stylesheet" type="text/css" href="../../../examples/resources/demo.css">
<style type="text/css" class="init">
</style>
<script type="text/javascript" language="javascript" src="../../../media/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="../../../media/js/jquery.dataTables.js"></script>
<script type="text/javascript" language="javascript" src="../js/dataTables.scroller.js"></script>
<script type="text/javascript" language="javascript" src="../../../examples/resources/syntax/shCore.js"></script>
<script type="text/javascript" language="javascript" src="../../../examples/resources/demo.js"></script>
<script type="text/javascript" language="javascript" class="init">
$(document).ready(function() {
var data = [];
for ( var i=0 ; i<50000 ; i++ ) {
data.push( [ i, i, i, i, i ] );
}
var oTable = $('#example').dataTable( {
data: data,
deferRender: true,
dom: "frtiS",
scrollY: 200,
scrollCollapse: true
} );
} );
</script>
</head>
<body class="dt-example">
<div class="container">
<section>
<h1>Scroller example <span>Client-side data source (50,000 rows)</span></h1>
<div class="info">
<p>This example is completely artificial in that the data generated is created on the client-side by
just looping around a Javascript array and then passing that to DataTables. However, it does show quite
nicely that DataTables and Scroller can cope with large amounts of data on the client-side quite
nicely. Typically data such as this would be Ajax sourced and server-side processing should be
considered.</p>
<p>Please be aware that the performance of this page will depend on your browser as the array of data
is generated - for example IE6 will crawl!</p>
</div>
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>ID</th>
<th>First name</th>
<th>Last name</th>
<th>ZIP / Post code</th>
<th>Country</th>
</tr>
</thead>
</table>
<ul class="tabs">
<li class="active">Javascript</li>
<li>HTML</li>
<li>CSS</li>
<li>Ajax</li>
<li>Server-side script</li>
</ul>
<div class="tabs">
<div class="js">
<p>The Javascript shown below is used to initialise the table shown in this
example:</p><code class="multiline brush: js;">$(document).ready(function() {
var data = [];
for ( var i=0 ; i&lt;50000 ; i++ ) {
data.push( [ i, i, i, i, i ] );
}
var oTable = $('#example').dataTable( {
data: data,
deferRender: true,
dom: &quot;frtiS&quot;,
scrollY: 200,
scrollCollapse: true
} );
} );</code>
<p>In addition to the above code, the following Javascript library files are loaded for use in this
example:</p>
<ul>
<li><a href="../../../media/js/jquery.js">../../../media/js/jquery.js</a></li>
<li><a href=
"../../../media/js/jquery.dataTables.js">../../../media/js/jquery.dataTables.js</a></li>
<li><a href="../js/dataTables.scroller.js">../js/dataTables.scroller.js</a></li>
</ul>
</div>
<div class="table">
<p>The HTML shown below is the raw HTML table element, before it has been enhanced by
DataTables:</p>
</div>
<div class="css">
<div>
<p>This example uses a little bit of additional CSS beyond what is loaded from the library
files (below), in order to correctly display the table. The additional CSS used is shown
below:</p><code class="multiline brush: js;"></code>
</div>
<p>The following CSS library files are loaded for use in this example to provide the styling of the
table:</p>
<ul>
<li><a href=
"../../../media/css/jquery.dataTables.css">../../../media/css/jquery.dataTables.css</a></li>
<li><a href="../css/dataTables.scroller.css">../css/dataTables.scroller.css</a></li>
</ul>
</div>
<div class="ajax">
<p>This table loads data by Ajax. The latest data that has been loaded is shown below. This data
will update automatically as any additional data is loaded.</p>
</div>
<div class="php">
<p>The script used to perform the server-side processing for this table is shown below. Please note
that this is just an example script using PHP. Server-side processing scripts can be written in any
language, using <a href="//datatables.net/manual/server-side">the protocol described in the
DataTables documentation</a>.</p>
</div>
</div>
</section>
</div>
<section>
<div class="footer">
<div class="gradient"></div>
<div class="liner">
<h2>Other examples</h2>
<div class="toc">
<div class="toc-group">
<h3><a href="./index.html">Examples</a></h3>
<ul class="toc active">
<li><a href="./simple.html">Basic initialisation</a></li>
<li><a href="./state_saving.html">State saving</a></li>
<li class="active"><a href="./large_js_source.html">Client-side data source (50,000
rows)</a></li>
<li><a href="./server-side_processing.html">Server-side processing (5,000,000
rows)</a></li>
<li><a href="./api_scrolling.html">API</a></li>
</ul>
</div>
</div>
<div class="epilogue">
<p>Please refer to the <a href="http://www.datatables.net">DataTables documentation</a> for full
information about its API properties and methods.<br>
Additionally, there are a wide range of <a href="http://www.datatables.net/extras">extras</a> and
<a href="http://www.datatables.net/plug-ins">plug-ins</a> which extend the capabilities of
DataTables.</p>
<p class="copyright">DataTables designed and created by <a href=
"http://www.sprymedia.co.uk">SpryMedia Ltd</a> &#169; 2007-2014<br>
DataTables is licensed under the <a href="http://www.datatables.net/mit">MIT license</a>.</p>
</div>
</div>
</div>
</section>
</body>
</html>

@ -0,0 +1,220 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/favicon.ico">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
<title>Scroller example - Server-side processing (5,000,000 rows)</title>
<link rel="stylesheet" type="text/css" href="../../../media/css/jquery.dataTables.css">
<link rel="stylesheet" type="text/css" href="../css/dataTables.scroller.css">
<link rel="stylesheet" type="text/css" href="../../../examples/resources/syntax/shCore.css">
<link rel="stylesheet" type="text/css" href="../../../examples/resources/demo.css">
<style type="text/css" class="init">
</style>
<script type="text/javascript" language="javascript" src="../../../media/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="../../../media/js/jquery.dataTables.js"></script>
<script type="text/javascript" language="javascript" src="../js/dataTables.scroller.js"></script>
<script type="text/javascript" language="javascript" src="../../../examples/resources/syntax/shCore.js"></script>
<script type="text/javascript" language="javascript" src="../../../examples/resources/demo.js"></script>
<script type="text/javascript" language="javascript" class="init">
$(document).ready(function() {
$('#example').DataTable( {
serverSide: true,
ordering: false,
searching: false,
ajax: function ( data, callback, settings ) {
var out = [];
for ( var i=data.start, ien=data.start+data.length ; i<ien ; i++ ) {
out.push( [ i+'-1', i+'-2', i+'-3', i+'-4', i+'-5' ] );
}
setTimeout( function () {
callback( {
draw: data.draw,
data: out,
recordsTotal: 5000000,
recordsFiltered: 5000000
} );
}, 50 );
},
dom: "rtiS",
scrollY: 200,
scroller: {
loadingIndicator: true
}
} );
} );
</script>
</head>
<body class="dt-example">
<div class="container">
<section>
<h1>Scroller example <span>Server-side processing (5,000,000 rows)</span></h1>
<div class="info">
<p>DataTables' server-side processing mode is a feature that naturally fits in with Scroller perfectly.
Server-side processing can be used to show large data sets, with the server being used to do the data
processing, and Scroller optimising the display of the data in a scrolling viewport.</p>
<p>When using server-side processing, Scroller will wait a small amount of time to allow the scrolling
to finish before requesting more data from the server (200mS by default). This prevents you from DoSing
your own server!</p>
<p>This example shows Scroller using server-side processing mode and 5 million rows.
<strong>Important</strong> This particular example uses <a href=
"//datatables.net/reference/option/ajax"><code class="option" title=
"DataTables initialisation option">ajax<span>DT</span></code></a> as a function to 'fake' the data to
show Scroller's ability to show large data sets. It does not have a real database behind it! You would
normally not use <a href="//datatables.net/reference/option/ajax"><code class="option" title=
"DataTables initialisation option">ajax<span>DT</span></code></a> as a function to generate data, but
rather as a url for where to fetch the real data!</p>
<p>In this example we also enable the <code>loadingIndicator</code> option of Scroller to show the end
user what is happening when they scroll passed the currently loaded data.</p>
</div>
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>ID</th>
<th>First name</th>
<th>Last name</th>
<th>ZIP / Post code</th>
<th>Country</th>
</tr>
</thead>
</table>
<ul class="tabs">
<li class="active">Javascript</li>
<li>HTML</li>
<li>CSS</li>
<li>Ajax</li>
<li>Server-side script</li>
</ul>
<div class="tabs">
<div class="js">
<p>The Javascript shown below is used to initialise the table shown in this
example:</p><code class="multiline brush: js;">$(document).ready(function() {
$('#example').DataTable( {
serverSide: true,
ordering: false,
searching: false,
ajax: function ( data, callback, settings ) {
var out = [];
for ( var i=data.start, ien=data.start+data.length ; i&lt;ien ; i++ ) {
out.push( [ i+'-1', i+'-2', i+'-3', i+'-4', i+'-5' ] );
}
setTimeout( function () {
callback( {
draw: data.draw,
data: out,
recordsTotal: 5000000,
recordsFiltered: 5000000
} );
}, 50 );
},
dom: &quot;rtiS&quot;,
scrollY: 200,
scroller: {
loadingIndicator: true
}
} );
} );</code>
<p>In addition to the above code, the following Javascript library files are loaded for use in this
example:</p>
<ul>
<li><a href="../../../media/js/jquery.js">../../../media/js/jquery.js</a></li>
<li><a href=
"../../../media/js/jquery.dataTables.js">../../../media/js/jquery.dataTables.js</a></li>
<li><a href="../js/dataTables.scroller.js">../js/dataTables.scroller.js</a></li>
</ul>
</div>
<div class="table">
<p>The HTML shown below is the raw HTML table element, before it has been enhanced by
DataTables:</p>
</div>
<div class="css">
<div>
<p>This example uses a little bit of additional CSS beyond what is loaded from the library
files (below), in order to correctly display the table. The additional CSS used is shown
below:</p><code class="multiline brush: js;"></code>
</div>
<p>The following CSS library files are loaded for use in this example to provide the styling of the
table:</p>
<ul>
<li><a href=
"../../../media/css/jquery.dataTables.css">../../../media/css/jquery.dataTables.css</a></li>
<li><a href="../css/dataTables.scroller.css">../css/dataTables.scroller.css</a></li>
</ul>
</div>
<div class="ajax">
<p>This table loads data by Ajax. The latest data that has been loaded is shown below. This data
will update automatically as any additional data is loaded.</p>
</div>
<div class="php">
<p>The script used to perform the server-side processing for this table is shown below. Please note
that this is just an example script using PHP. Server-side processing scripts can be written in any
language, using <a href="//datatables.net/manual/server-side">the protocol described in the
DataTables documentation</a>.</p>
</div>
</div>
</section>
</div>
<section>
<div class="footer">
<div class="gradient"></div>
<div class="liner">
<h2>Other examples</h2>
<div class="toc">
<div class="toc-group">
<h3><a href="./index.html">Examples</a></h3>
<ul class="toc active">
<li><a href="./simple.html">Basic initialisation</a></li>
<li><a href="./state_saving.html">State saving</a></li>
<li><a href="./large_js_source.html">Client-side data source (50,000 rows)</a></li>
<li class="active"><a href="./server-side_processing.html">Server-side processing
(5,000,000 rows)</a></li>
<li><a href="./api_scrolling.html">API</a></li>
</ul>
</div>
</div>
<div class="epilogue">
<p>Please refer to the <a href="http://www.datatables.net">DataTables documentation</a> for full
information about its API properties and methods.<br>
Additionally, there are a wide range of <a href="http://www.datatables.net/extras">extras</a> and
<a href="http://www.datatables.net/plug-ins">plug-ins</a> which extend the capabilities of
DataTables.</p>
<p class="copyright">DataTables designed and created by <a href=
"http://www.sprymedia.co.uk">SpryMedia Ltd</a> &#169; 2007-2014<br>
DataTables is licensed under the <a href="http://www.datatables.net/mit">MIT license</a>.</p>
</div>
</div>
</div>
</section>
</body>
</html>

@ -0,0 +1,175 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/favicon.ico">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
<title>Scroller example - Basic initialisation</title>
<link rel="stylesheet" type="text/css" href="../../../media/css/jquery.dataTables.css">
<link rel="stylesheet" type="text/css" href="../css/dataTables.scroller.css">
<link rel="stylesheet" type="text/css" href="../../../examples/resources/syntax/shCore.css">
<link rel="stylesheet" type="text/css" href="../../../examples/resources/demo.css">
<style type="text/css" class="init">
</style>
<script type="text/javascript" language="javascript" src="../../../media/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="../../../media/js/jquery.dataTables.js"></script>
<script type="text/javascript" language="javascript" src="../js/dataTables.scroller.js"></script>
<script type="text/javascript" language="javascript" src="../../../examples/resources/syntax/shCore.js"></script>
<script type="text/javascript" language="javascript" src="../../../examples/resources/demo.js"></script>
<script type="text/javascript" language="javascript" class="init">
$(document).ready(function() {
$('#example').DataTable( {
ajax: "data/2500.txt",
deferRender: true,
dom: "frtiS",
scrollY: 200,
scrollCollapse: true
} );
} );
</script>
</head>
<body class="dt-example">
<div class="container">
<section>
<h1>Scroller example <span>Basic initialisation</span></h1>
<div class="info">
<p>Scroller is a plug-in for DataTables which enhances DataTables' built-in scrolling features to allow
large amounts of data to be rendered on page very quickly. This is done by Scroller through the use of
a virtual rendering technique that will render only the part of the table that is actually required for
the current view.</p>
<p>Note that Scroller assumes that all rows are of the same height (in order to preform the required
calculations. You can use <code>td { white-space: nowrap; }</code> in your CSS to ensure that text in
rows does not wrap.</p>
<p>This example shows how Scroller for DataTables can be initialised by simply including the character
<code>S</code> in sDom (note that the <code>S</code> must come after the <code>t</code> in sDom).
Deferred rendering an and Ajax data source are also used in this example.</p>
</div>
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>ID</th>
<th>First name</th>
<th>Last name</th>
<th>ZIP / Post code</th>
<th>Country</th>
</tr>
</thead>
</table>
<ul class="tabs">
<li class="active">Javascript</li>
<li>HTML</li>
<li>CSS</li>
<li>Ajax</li>
<li>Server-side script</li>
</ul>
<div class="tabs">
<div class="js">
<p>The Javascript shown below is used to initialise the table shown in this
example:</p><code class="multiline brush: js;">$(document).ready(function() {
$('#example').DataTable( {
ajax: &quot;data/2500.txt&quot;,
deferRender: true,
dom: &quot;frtiS&quot;,
scrollY: 200,
scrollCollapse: true
} );
} );</code>
<p>In addition to the above code, the following Javascript library files are loaded for use in this
example:</p>
<ul>
<li><a href="../../../media/js/jquery.js">../../../media/js/jquery.js</a></li>
<li><a href=
"../../../media/js/jquery.dataTables.js">../../../media/js/jquery.dataTables.js</a></li>
<li><a href="../js/dataTables.scroller.js">../js/dataTables.scroller.js</a></li>
</ul>
</div>
<div class="table">
<p>The HTML shown below is the raw HTML table element, before it has been enhanced by
DataTables:</p>
</div>
<div class="css">
<div>
<p>This example uses a little bit of additional CSS beyond what is loaded from the library
files (below), in order to correctly display the table. The additional CSS used is shown
below:</p><code class="multiline brush: js;"></code>
</div>
<p>The following CSS library files are loaded for use in this example to provide the styling of the
table:</p>
<ul>
<li><a href=
"../../../media/css/jquery.dataTables.css">../../../media/css/jquery.dataTables.css</a></li>
<li><a href="../css/dataTables.scroller.css">../css/dataTables.scroller.css</a></li>
</ul>
</div>
<div class="ajax">
<p>This table loads data by Ajax. The latest data that has been loaded is shown below. This data
will update automatically as any additional data is loaded.</p>
</div>
<div class="php">
<p>The script used to perform the server-side processing for this table is shown below. Please note
that this is just an example script using PHP. Server-side processing scripts can be written in any
language, using <a href="//datatables.net/manual/server-side">the protocol described in the
DataTables documentation</a>.</p>
</div>
</div>
</section>
</div>
<section>
<div class="footer">
<div class="gradient"></div>
<div class="liner">
<h2>Other examples</h2>
<div class="toc">
<div class="toc-group">
<h3><a href="./index.html">Examples</a></h3>
<ul class="toc active">
<li class="active"><a href="./simple.html">Basic initialisation</a></li>
<li><a href="./state_saving.html">State saving</a></li>
<li><a href="./large_js_source.html">Client-side data source (50,000 rows)</a></li>
<li><a href="./server-side_processing.html">Server-side processing (5,000,000
rows)</a></li>
<li><a href="./api_scrolling.html">API</a></li>
</ul>
</div>
</div>
<div class="epilogue">
<p>Please refer to the <a href="http://www.datatables.net">DataTables documentation</a> for full
information about its API properties and methods.<br>
Additionally, there are a wide range of <a href="http://www.datatables.net/extras">extras</a> and
<a href="http://www.datatables.net/plug-ins">plug-ins</a> which extend the capabilities of
DataTables.</p>
<p class="copyright">DataTables designed and created by <a href=
"http://www.sprymedia.co.uk">SpryMedia Ltd</a> &#169; 2007-2014<br>
DataTables is licensed under the <a href="http://www.datatables.net/mit">MIT license</a>.</p>
</div>
</div>
</div>
</section>
</body>
</html>

@ -0,0 +1,170 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/favicon.ico">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
<title>Scroller example - State saving</title>
<link rel="stylesheet" type="text/css" href="../../../media/css/jquery.dataTables.css">
<link rel="stylesheet" type="text/css" href="../css/dataTables.scroller.css">
<link rel="stylesheet" type="text/css" href="../../../examples/resources/syntax/shCore.css">
<link rel="stylesheet" type="text/css" href="../../../examples/resources/demo.css">
<style type="text/css" class="init">
</style>
<script type="text/javascript" language="javascript" src="../../../media/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="../../../media/js/jquery.dataTables.js"></script>
<script type="text/javascript" language="javascript" src="../js/dataTables.scroller.js"></script>
<script type="text/javascript" language="javascript" src="../../../examples/resources/syntax/shCore.js"></script>
<script type="text/javascript" language="javascript" src="../../../examples/resources/demo.js"></script>
<script type="text/javascript" language="javascript" class="init">
$(document).ready(function() {
$('#example').DataTable( {
ajax: "data/2500.txt",
deferRender: true,
dom: "frtiS",
scrollY: 200,
scrollCollapse: true,
stateSave: true
} );
} );
</script>
</head>
<body class="dt-example">
<div class="container">
<section>
<h1>Scroller example <span>State saving</span></h1>
<div class="info">
<p>Scroller will automatically integrate with DataTables in order to save the scrolling position of the
table, if state saving is enabled in the DataTable (<a href=
"//datatables.net/reference/option/stateSave"><code class="option" title=
"DataTables initialisation option">stateSave<span>DT</span></code></a>). This example shows that in
practice - to demonstrate, scroll the table and then reload the page.</p>
</div>
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>ID</th>
<th>First name</th>
<th>Last name</th>
<th>ZIP / Post code</th>
<th>Country</th>
</tr>
</thead>
</table>
<ul class="tabs">
<li class="active">Javascript</li>
<li>HTML</li>
<li>CSS</li>
<li>Ajax</li>
<li>Server-side script</li>
</ul>
<div class="tabs">
<div class="js">
<p>The Javascript shown below is used to initialise the table shown in this
example:</p><code class="multiline brush: js;">$(document).ready(function() {
$('#example').DataTable( {
ajax: &quot;data/2500.txt&quot;,
deferRender: true,
dom: &quot;frtiS&quot;,
scrollY: 200,
scrollCollapse: true,
stateSave: true
} );
} );</code>
<p>In addition to the above code, the following Javascript library files are loaded for use in this
example:</p>
<ul>
<li><a href="../../../media/js/jquery.js">../../../media/js/jquery.js</a></li>
<li><a href=
"../../../media/js/jquery.dataTables.js">../../../media/js/jquery.dataTables.js</a></li>
<li><a href="../js/dataTables.scroller.js">../js/dataTables.scroller.js</a></li>
</ul>
</div>
<div class="table">
<p>The HTML shown below is the raw HTML table element, before it has been enhanced by
DataTables:</p>
</div>
<div class="css">
<div>
<p>This example uses a little bit of additional CSS beyond what is loaded from the library
files (below), in order to correctly display the table. The additional CSS used is shown
below:</p><code class="multiline brush: js;"></code>
</div>
<p>The following CSS library files are loaded for use in this example to provide the styling of the
table:</p>
<ul>
<li><a href=
"../../../media/css/jquery.dataTables.css">../../../media/css/jquery.dataTables.css</a></li>
<li><a href="../css/dataTables.scroller.css">../css/dataTables.scroller.css</a></li>
</ul>
</div>
<div class="ajax">
<p>This table loads data by Ajax. The latest data that has been loaded is shown below. This data
will update automatically as any additional data is loaded.</p>
</div>
<div class="php">
<p>The script used to perform the server-side processing for this table is shown below. Please note
that this is just an example script using PHP. Server-side processing scripts can be written in any
language, using <a href="//datatables.net/manual/server-side">the protocol described in the
DataTables documentation</a>.</p>
</div>
</div>
</section>
</div>
<section>
<div class="footer">
<div class="gradient"></div>
<div class="liner">
<h2>Other examples</h2>
<div class="toc">
<div class="toc-group">
<h3><a href="./index.html">Examples</a></h3>
<ul class="toc active">
<li><a href="./simple.html">Basic initialisation</a></li>
<li class="active"><a href="./state_saving.html">State saving</a></li>
<li><a href="./large_js_source.html">Client-side data source (50,000 rows)</a></li>
<li><a href="./server-side_processing.html">Server-side processing (5,000,000
rows)</a></li>
<li><a href="./api_scrolling.html">API</a></li>
</ul>
</div>
</div>
<div class="epilogue">
<p>Please refer to the <a href="http://www.datatables.net">DataTables documentation</a> for full
information about its API properties and methods.<br>
Additionally, there are a wide range of <a href="http://www.datatables.net/extras">extras</a> and
<a href="http://www.datatables.net/plug-ins">plug-ins</a> which extend the capabilities of
DataTables.</p>
<p class="copyright">DataTables designed and created by <a href=
"http://www.sprymedia.co.uk">SpryMedia Ltd</a> &#169; 2007-2014<br>
DataTables is licensed under the <a href="http://www.datatables.net/mit">MIT license</a>.</p>
</div>
</div>
</div>
</section>
</body>
</html>

Binary file not shown.

After

(image error) Size: 1013 B

File diff suppressed because it is too large Load Diff

@ -0,0 +1,25 @@
/*!
Scroller 1.2.2
©2011-2014 SpryMedia Ltd - datatables.net/license
*/
(function(m,n,k){var l=function(e){var g=function(a,b){!this instanceof g?alert("Scroller warning: Scroller must be initialised with the 'new' keyword."):("undefined"==typeof b&&(b={}),this.s={dt:a,tableTop:0,tableBottom:0,redrawTop:0,redrawBottom:0,autoHeight:!0,viewportRows:0,stateTO:null,drawTO:null,heights:{jump:null,page:null,virtual:null,scroll:null,row:null,viewport:null},topRowFloat:0,scrollDrawDiff:null,loaderVisible:!1},this.s=e.extend(this.s,g.oDefaults,b),this.s.heights.row=this.s.rowHeight,
this.dom={force:n.createElement("div"),scroller:null,table:null,loader:null},this.s.dt.oScroller=this,this._fnConstruct())};g.prototype={fnRowToPixels:function(a,b,c){a=c?this._domain("virtualToPhysical",a*this.s.heights.row):this.s.baseScrollTop+(a-this.s.baseRowTop)*this.s.heights.row;return b||b===k?parseInt(a,10):a},fnPixelsToRow:function(a,b,c){var d=a-this.s.baseScrollTop,a=c?this._domain("physicalToVirtual",a)/this.s.heights.row:d/this.s.heights.row+this.s.baseRowTop;return b||b===k?parseInt(a,
10):a},fnScrollToRow:function(a,b){var c=this,d=!1,f=this.fnRowToPixels(a),h=a-(this.s.displayBuffer-1)/2*this.s.viewportRows;0>h&&(h=0);if((f>this.s.redrawBottom||f<this.s.redrawTop)&&this.s.dt._iDisplayStart!==h)d=!0,f=this.fnRowToPixels(a,!1,!0);"undefined"==typeof b||b?(this.s.ani=d,e(this.dom.scroller).animate({scrollTop:f},function(){setTimeout(function(){c.s.ani=!1},25)})):e(this.dom.scroller).scrollTop(f)},fnMeasure:function(a){this.s.autoHeight&&this._fnCalcRowHeight();var b=this.s.heights;
b.viewport=e(this.dom.scroller).height();this.s.viewportRows=parseInt(b.viewport/b.row,10)+1;this.s.dt._iDisplayLength=this.s.viewportRows*this.s.displayBuffer;(a===k||a)&&this.s.dt.oInstance.fnDraw()},_fnConstruct:function(){var a=this;if(this.s.dt.oFeatures.bPaginate){this.dom.force.style.position="absolute";this.dom.force.style.top="0px";this.dom.force.style.left="0px";this.dom.force.style.width="1px";this.dom.scroller=e("div."+this.s.dt.oClasses.sScrollBody,this.s.dt.nTableWrapper)[0];this.dom.scroller.appendChild(this.dom.force);
this.dom.scroller.style.position="relative";this.dom.table=e(">table",this.dom.scroller)[0];this.dom.table.style.position="absolute";this.dom.table.style.top="0px";this.dom.table.style.left="0px";e(this.s.dt.nTableWrapper).addClass("DTS");this.s.loadingIndicator&&(this.dom.loader=e('<div class="DTS_Loading">'+this.s.dt.oLanguage.sLoadingRecords+"</div>").css("display","none"),e(this.dom.scroller.parentNode).css("position","relative").append(this.dom.loader));this.s.heights.row&&"auto"!=this.s.heights.row&&
(this.s.autoHeight=!1);this.fnMeasure(!1);this.s.ingnoreScroll=!0;this.s.stateSaveThrottle=this.s.dt.oApi._fnThrottle(function(){a.s.dt.oApi._fnSaveState(a.s.dt)},500);e(this.dom.scroller).on("scroll.DTS",function(){a._fnScroll.call(a)});e(this.dom.scroller).on("touchstart.DTS",function(){a._fnScroll.call(a)});this.s.dt.aoDrawCallback.push({fn:function(){a.s.dt.bInitialised&&a._fnDrawCallback.call(a)},sName:"Scroller"});e(m).on("resize.DTS",function(){a.fnMeasure(false);a._fnInfo()});var b=!0;this.s.dt.oApi._fnCallbackReg(this.s.dt,
"aoStateSaveParams",function(c,d){if(b&&a.s.dt.oLoadedState){d.iScroller=a.s.dt.oLoadedState.iScroller;d.iScrollerTopRow=a.s.dt.oLoadedState.iScrollerTopRow;b=false}else{d.iScroller=a.dom.scroller.scrollTop;d.iScrollerTopRow=a.s.topRowFloat}},"Scroller_State");this.s.dt.oLoadedState&&(this.s.topRowFloat=this.s.dt.oLoadedState.iScrollerTopRow||0);this.s.dt.aoDestroyCallback.push({sName:"Scroller",fn:function(){e(m).off("resize.DTS");e(a.dom.scroller).off("touchstart.DTS scroll.DTS");e(a.s.dt.nTableWrapper).removeClass("DTS");
e("div.DTS_Loading",a.dom.scroller.parentNode).remove();a.dom.table.style.position="";a.dom.table.style.top="";a.dom.table.style.left=""}})}else this.s.dt.oApi._fnLog(this.s.dt,0,"Pagination must be enabled for Scroller")},_fnScroll:function(){var a=this,b=this.s.heights,c=this.dom.scroller.scrollTop,d;if(!this.s.skip&&!this.s.ingnoreScroll)if(this.s.dt.bFiltered||this.s.dt.bSorted)this.s.lastScrollTop=0;else{this._fnInfo();clearTimeout(this.s.stateTO);this.s.stateTO=setTimeout(function(){a.s.dt.oApi._fnSaveState(a.s.dt)},
250);if(c<this.s.redrawTop||c>this.s.redrawBottom){var f=Math.ceil((this.s.displayBuffer-1)/2*this.s.viewportRows);Math.abs(c-this.s.lastScrollTop)>b.viewport||this.s.ani?(d=parseInt(this._domain("physicalToVirtual",c)/b.row,10)-f,this.s.topRowFloat=this._domain("physicalToVirtual",c)/b.row):(d=this.fnPixelsToRow(c)-f,this.s.topRowFloat=this.fnPixelsToRow(c,!1));0>=d?d=0:d+this.s.dt._iDisplayLength>this.s.dt.fnRecordsDisplay()?(d=this.s.dt.fnRecordsDisplay()-this.s.dt._iDisplayLength,0>d&&(d=0)):
0!==d%2&&d++;if(d!=this.s.dt._iDisplayStart&&(this.s.tableTop=e(this.s.dt.nTable).offset().top,this.s.tableBottom=e(this.s.dt.nTable).height()+this.s.tableTop,b=function(){if(a.s.scrollDrawReq===null)a.s.scrollDrawReq=c;a.s.dt._iDisplayStart=d;a.s.dt.oApi._fnCalculateEnd&&a.s.dt.oApi._fnCalculateEnd(a.s.dt);a.s.dt.oApi._fnDraw(a.s.dt)},this.s.dt.oFeatures.bServerSide?(clearTimeout(this.s.drawTO),this.s.drawTO=setTimeout(b,this.s.serverWait)):b(),this.dom.loader&&!this.s.loaderVisible))this.dom.loader.css("display",
"block"),this.s.loaderVisible=!0}this.s.lastScrollTop=c;this.s.stateSaveThrottle()}},_domain:function(a,b){var c=this.s.heights,d;if(c.virtual===c.scroll){d=(c.virtual-c.viewport)/(c.scroll-c.viewport);if("virtualToPhysical"===a)return b/d;if("physicalToVirtual"===a)return b*d}var e=(c.scroll-c.viewport)/2,h=(c.virtual-c.viewport)/2;d=h/(e*e);if("virtualToPhysical"===a){if(b<h)return Math.pow(b/d,0.5);b=2*h-b;return 0>b?c.scroll:2*e-Math.pow(b/d,0.5)}if("physicalToVirtual"===a){if(b<e)return b*b*
d;b=2*e-b;return 0>b?c.virtual:2*h-b*b*d}},_fnDrawCallback:function(){var a=this,b=this.s.heights,c=this.dom.scroller.scrollTop,d=e(this.s.dt.nTable).height(),f=this.s.dt._iDisplayStart,h=this.s.dt._iDisplayLength,g=this.s.dt.fnRecordsDisplay();this.s.skip=!0;this._fnScrollForce();c=0===f?this.s.topRowFloat*b.row:f+h>=g?b.scroll-(g-this.s.topRowFloat)*b.row:this._domain("virtualToPhysical",this.s.topRowFloat*b.row);this.dom.scroller.scrollTop=c;this.s.baseScrollTop=c;this.s.baseRowTop=this.s.topRowFloat;
var j=c-(this.s.topRowFloat-f)*b.row;0===f?j=0:f+h>=g&&(j=b.scroll-d);this.dom.table.style.top=j+"px";this.s.tableTop=j;this.s.tableBottom=d+this.s.tableTop;d=(c-this.s.tableTop)*this.s.boundaryScale;this.s.redrawTop=c-d;this.s.redrawBottom=c+d;this.s.skip=!1;this.s.dt.oFeatures.bStateSave&&null!==this.s.dt.oLoadedState&&"undefined"!=typeof this.s.dt.oLoadedState.iScroller?((c=(this.s.dt.sAjaxSource||a.s.dt.ajax)&&!this.s.dt.oFeatures.bServerSide?!0:!1)&&2==this.s.dt.iDraw||!c&&1==this.s.dt.iDraw)&&
setTimeout(function(){e(a.dom.scroller).scrollTop(a.s.dt.oLoadedState.iScroller);a.s.redrawTop=a.s.dt.oLoadedState.iScroller-b.viewport/2;setTimeout(function(){a.s.ingnoreScroll=!1},0)},0):a.s.ingnoreScroll=!1;setTimeout(function(){a._fnInfo.call(a)},0);this.dom.loader&&this.s.loaderVisible&&(this.dom.loader.css("display","none"),this.s.loaderVisible=!1)},_fnScrollForce:function(){var a=this.s.heights;a.virtual=a.row*this.s.dt.fnRecordsDisplay();a.scroll=a.virtual;1E6<a.scroll&&(a.scroll=1E6);this.dom.force.style.height=
a.scroll+"px"},_fnCalcRowHeight:function(){var a=this.s.dt,b=a.nTable,c=b.cloneNode(!1),d=e("<tbody/>").appendTo(c),f=e('<div class="'+a.oClasses.sWrapper+' DTS"><div class="'+a.oClasses.sScrollWrapper+'"><div class="'+a.oClasses.sScrollBody+'"></div></div></div>');for(e("tbody tr:lt(4)",b).clone().appendTo(d);3>e("tr",d).length;)d.append("<tr><td>&nbsp;</td></tr>");e("div."+a.oClasses.sScrollBody,f).append(c);a._bInitComplete?a=b.parentNode:(this.s.dt.nHolding||(this.s.dt.nHolding=e("<div></div>").insertBefore(this.s.dt.nTable)),
a=this.s.dt.nHolding);f.appendTo(a);this.s.heights.row=e("tr",d).eq(1).outerHeight();f.remove()},_fnInfo:function(){if(this.s.dt.oFeatures.bInfo){var a=this.s.dt,b=a.oLanguage,c=this.dom.scroller.scrollTop,d=Math.floor(this.fnPixelsToRow(c,!1,this.s.ani)+1),f=a.fnRecordsTotal(),h=a.fnRecordsDisplay(),c=Math.ceil(this.fnPixelsToRow(c+this.s.heights.viewport,!1,this.s.ani)),c=h<c?h:c,g=a.fnFormatNumber(d),j=a.fnFormatNumber(c),i=a.fnFormatNumber(f),k=a.fnFormatNumber(h),g=0===a.fnRecordsDisplay()&&
a.fnRecordsDisplay()==a.fnRecordsTotal()?b.sInfoEmpty+b.sInfoPostFix:0===a.fnRecordsDisplay()?b.sInfoEmpty+" "+b.sInfoFiltered.replace("_MAX_",i)+b.sInfoPostFix:a.fnRecordsDisplay()==a.fnRecordsTotal()?b.sInfo.replace("_START_",g).replace("_END_",j).replace("_MAX_",i).replace("_TOTAL_",k)+b.sInfoPostFix:b.sInfo.replace("_START_",g).replace("_END_",j).replace("_MAX_",i).replace("_TOTAL_",k)+" "+b.sInfoFiltered.replace("_MAX_",a.fnFormatNumber(a.fnRecordsTotal()))+b.sInfoPostFix;(b=b.fnInfoCallback)&&
(g=b.call(a.oInstance,a,d,c,f,h,g));a=a.aanFeatures.i;if("undefined"!=typeof a){d=0;for(f=a.length;d<f;d++)e(a[d]).html(g)}}}};g.defaults={trace:!1,rowHeight:"auto",serverWait:200,displayBuffer:9,boundaryScale:0.5,loadingIndicator:!1};g.oDefaults=g.defaults;g.version="1.2.2";"function"==typeof e.fn.dataTable&&"function"==typeof e.fn.dataTableExt.fnVersionCheck&&e.fn.dataTableExt.fnVersionCheck("1.9.0")?e.fn.dataTableExt.aoFeatures.push({fnInit:function(a){var b=a.oInit;return(new g(a,b.scroller||
b.oScroller||{})).dom.wrapper},cFeature:"S",sFeature:"Scroller"}):alert("Warning: Scroller requires DataTables 1.9.0 or greater - www.datatables.net/download");e.fn.dataTable.Scroller=g;e.fn.DataTable.Scroller=g;if(e.fn.dataTable.Api){var i=e.fn.dataTable.Api;i.register("scroller()",function(){return this});i.register("scroller().rowToPixels()",function(a,b,c){var d=this.context;if(d.length&&d[0].oScroller)return d[0].oScroller.fnRowToPixels(a,b,c)});i.register("scroller().pixelsToRow()",function(a,
b,c){var d=this.context;if(d.length&&d[0].oScroller)return d[0].oScroller.fnPixelsToRow(a,b,c)});i.register("scroller().scrollToRow()",function(a,b){this.iterator("table",function(c){c.oScroller&&c.oScroller.fnScrollToRow(a,b)});return this});i.register("scroller().measure()",function(a){this.iterator("table",function(b){b.oScroller&&b.oScroller.fnMeasure(a)});return this})}return g};"function"===typeof define&&define.amd?define(["jquery","datatables"],l):"object"===typeof exports?l(require("jquery"),
require("datatables")):jQuery&&!jQuery.fn.dataTable.Scroller&&l(jQuery,jQuery.fn.dataTable)})(window,document);