├── README.md ├── static ├── css │ ├── bootstrap-glyphicons.css │ ├── bootstrap.min.css │ ├── font-awesome.min.css │ ├── sidebar-bootstrap.css │ ├── sidebar.css │ └── styles.css ├── fonts │ ├── glyphiconshalflings-regular.eot │ ├── glyphiconshalflings-regular.otf │ ├── glyphiconshalflings-regular.svg │ ├── glyphiconshalflings-regular.ttf │ └── glyphiconshalflings-regular.woff └── js │ ├── bootstrap.min.js │ ├── hammer.min.js │ ├── jquery.min.js │ ├── modernizr-2.6.2.min.js │ ├── salvattore.min.js │ ├── script.js │ └── sidebar.js └── tasks.html /README.md: -------------------------------------------------------------------------------- 1 | # Tasks 2 | 3 | This project is the code accompanying the [YouTube tutorial](https://www.youtube.com/playlist?list=PL41psiCma00wgiTKkAZwJiwtLTdcyEyc4) which teaches how to write webapps in go without using a framework and is based on the tutoiral, https://github.com/thewhitetulip/web-dev-golang-anti-textbook/. 4 | 5 | There are 17 videos and a branch related to each video. 6 | 7 | Starting from Video3, you'll find actual code related content, check the video3 branch to get the final code of that video, and video for the code corresponding to the n'th video. 8 | 9 | If you want to download the completed app: https://github.com/thewhitetulip/Tasks. 10 | 11 | This series is based on the tutorial https://github.com/thewhitetulip/web-dev-golang-anti-textbook/, you can download it from https://leanpub.com/antitextbookGo/. 12 | 13 | | Branch | Video | 14 | | ---- | ---- | 15 | |[Basic Version](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/Basicversion) | Starting point of this project. This is what you should clone initially into your machine if you want to follow along the series. 16 | |[Video3](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video3)|[3. Writing a basic web server in Go](https://youtu.be/_CgZ7iGVTgU)| 17 | |[Video4](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video4)|[4. Introduction to using templates in Go](https://youtu.be/Jy1cuSGRctw)| 18 | |[Video5](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video5)|[5. Rendering structs with Templates](https://youtu.be/8aaRhxY4p_c)| 19 | |[Video6](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video6)|[6. Rendering an array in templates](https://youtu.be/JgXZc7oK_SY)| 20 | |[Video7](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video7)|[7. Rendering comments](https://youtu.be/_gg2FqM_p5U)| 21 | |[Video8](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video8)|[8. Using sub templates to tidy HTML](https://youtu.be/12MmYFojDOU)| 22 | |[Video9](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video9)|[9. Populating completed tasks](https://youtu.be/24b0jrHfhqU)| 23 | |[Video10](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video10)|[10. Understanding packages](https://youtu.be/sqM04eeU-q8)| 24 | |[Video11](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video11)|[11. Form handling in Go](https://youtu.be/tLfMmjGPRls)| 25 | |[Video12](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video12)|[12. Rendering markdown](https://www.youtube.com/watch?v=2mYiEdqyxLo)| 26 | |[Video13](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video13)|[13. Getting started with using database with Go](https://www.youtube.com/watch?v=A-3MnkvKPlI)| 27 | |[Video14](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video14)|[14. Connecting to sqlite3 ](https://www.youtube.com/watch?v=N88u0uXTkLM)| 28 | |[Video15](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video15)|[15. Updating a value in the database ](https://www.youtube.com/watch?v=946-wzaSdXE)| 29 | |[Video16](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video16)|[16. User authentication](https://www.youtube.com/watch?v=WjrJmtcZeOM)| 30 | |[Video17](https://github.com/thewhitetulip/write-webapps-in-go-video/tree/video17)|[17. Inserting data into database](https://www.youtube.com/watch?v=AC8KjKcoup0)| 31 | -------------------------------------------------------------------------------- /static/css/bootstrap-glyphicons.css: -------------------------------------------------------------------------------- 1 | @font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphiconshalflings-regular.eot');src:url('../fonts/glyphiconshalflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphiconshalflings-regular.woff') format('woff'),url('../fonts/glyphiconshalflings-regular.ttf') format('truetype'),url('../fonts/glyphiconshalflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon:before{font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-plus:before{content:"\002b"}.glyphicon-minus:before{content:"\2212"}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse:before{content:"\e159"}.glyphicon-collapse-top:before{content:"\e160"} 2 | /* This beautiful CSS-File has been crafted with LESS (lesscss.org) and compiled by simpLESS (wearekiss.com/simpless) */ 3 | -------------------------------------------------------------------------------- /static/css/font-awesome.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */@font-face{ 5 | font-family:'FontAwesome'; 6 | src:url('../fonts/fontawesome-webfont.eot?v=4.2.0'); 7 | src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg'); 8 | font-weight:normal; 9 | font-style:normal 10 | } 11 | 12 | .fa{ 13 | display:inline-block; 14 | font:normal normal normal 14px/1 FontAwesome; 15 | font-size:inherit; 16 | text-rendering:auto; 17 | -webkit-font-smoothing:antialiased; 18 | -moz-osx-font-smoothing:grayscale 19 | } 20 | 21 | .fa-lg{ 22 | font-size:1.33333333em; 23 | line-height:.75em; 24 | vertical-align:-15% 25 | } 26 | 27 | .fa-2x{ 28 | font-size:2em 29 | } 30 | 31 | .fa-3x{ 32 | font-size:3em 33 | } 34 | 35 | .fa-4x{ 36 | font-size:4em 37 | } 38 | 39 | .fa-5x{ 40 | font-size:5em 41 | } 42 | 43 | .fa-fw{ 44 | width:1.28571429em; 45 | text-align:center 46 | } 47 | 48 | .fa-ul{ 49 | padding-left:0; 50 | margin-left:2.14285714em; 51 | list-style-type:none 52 | } 53 | 54 | .fa-ul>li{ 55 | position:relative 56 | } 57 | 58 | .fa-li{ 59 | position:absolute; 60 | left:-2.14285714em; 61 | width:2.14285714em; 62 | top:.14285714em; 63 | text-align:center 64 | } 65 | 66 | .fa-li.fa-lg{ 67 | left:-1.85714286em 68 | } 69 | 70 | .fa-border{ 71 | padding:.2em .25em .15em; 72 | border:solid .08em #eee; 73 | border-radius:.1em 74 | } 75 | 76 | .pull-right{ 77 | float:right 78 | } 79 | 80 | .pull-left{ 81 | float:left 82 | } 83 | 84 | .fa.pull-left{ 85 | margin-right:.3em 86 | } 87 | 88 | .fa.pull-right{ 89 | margin-left:.3em 90 | } 91 | 92 | .fa-spin{ 93 | -webkit-animation:fa-spin 2s infinite linear; 94 | animation:fa-spin 2s infinite linear 95 | } 96 | 97 | @-webkit-keyframes fa-spin{ 98 | 0%{ 99 | -webkit-transform:rotate(0deg); 100 | transform:rotate(0deg) 101 | } 102 | 103 | 100%{ 104 | -webkit-transform:rotate(359deg); 105 | transform:rotate(359deg) 106 | } 107 | 108 | } 109 | 110 | @keyframes fa-spin{ 111 | 0%{ 112 | -webkit-transform:rotate(0deg); 113 | transform:rotate(0deg) 114 | } 115 | 116 | 100%{ 117 | -webkit-transform:rotate(359deg); 118 | transform:rotate(359deg) 119 | } 120 | 121 | } 122 | 123 | .fa-rotate-90{ 124 | filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1); 125 | -webkit-transform:rotate(90deg); 126 | -ms-transform:rotate(90deg); 127 | transform:rotate(90deg) 128 | } 129 | 130 | .fa-rotate-180{ 131 | filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2); 132 | -webkit-transform:rotate(180deg); 133 | -ms-transform:rotate(180deg); 134 | transform:rotate(180deg) 135 | } 136 | 137 | .fa-rotate-270{ 138 | filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3); 139 | -webkit-transform:rotate(270deg); 140 | -ms-transform:rotate(270deg); 141 | transform:rotate(270deg) 142 | } 143 | 144 | .fa-flip-horizontal{ 145 | filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); 146 | -webkit-transform:scale(-1, 1); 147 | -ms-transform:scale(-1, 1); 148 | transform:scale(-1, 1) 149 | } 150 | 151 | .fa-flip-vertical{ 152 | filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); 153 | -webkit-transform:scale(1, -1); 154 | -ms-transform:scale(1, -1); 155 | transform:scale(1, -1) 156 | } 157 | 158 | :root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{ 159 | filter:none 160 | } 161 | 162 | .fa-stack{ 163 | position:relative; 164 | display:inline-block; 165 | width:2em; 166 | height:2em; 167 | line-height:2em; 168 | vertical-align:middle 169 | } 170 | 171 | .fa-stack-1x,.fa-stack-2x{ 172 | position:absolute; 173 | left:0; 174 | width:100%; 175 | text-align:center 176 | } 177 | 178 | .fa-stack-1x{ 179 | line-height:inherit 180 | } 181 | 182 | .fa-stack-2x{ 183 | font-size:2em 184 | } 185 | 186 | .fa-inverse{ 187 | color:#fff 188 | } 189 | 190 | .fa-glass:before{ 191 | content:"\f000" 192 | } 193 | 194 | .fa-music:before{ 195 | content:"\f001" 196 | } 197 | 198 | .fa-search:before{ 199 | content:"\f002" 200 | } 201 | 202 | .fa-envelope-o:before{ 203 | content:"\f003" 204 | } 205 | 206 | .fa-heart:before{ 207 | content:"\f004" 208 | } 209 | 210 | .fa-star:before{ 211 | content:"\f005" 212 | } 213 | 214 | .fa-star-o:before{ 215 | content:"\f006" 216 | } 217 | 218 | .fa-user:before{ 219 | content:"\f007" 220 | } 221 | 222 | .fa-film:before{ 223 | content:"\f008" 224 | } 225 | 226 | .fa-th-large:before{ 227 | content:"\f009" 228 | } 229 | 230 | .fa-th:before{ 231 | content:"\f00a" 232 | } 233 | 234 | .fa-th-list:before{ 235 | content:"\f00b" 236 | } 237 | 238 | .fa-check:before{ 239 | content:"\f00c" 240 | } 241 | 242 | .fa-remove:before,.fa-close:before,.fa-times:before{ 243 | content:"\f00d" 244 | } 245 | 246 | .fa-search-plus:before{ 247 | content:"\f00e" 248 | } 249 | 250 | .fa-search-minus:before{ 251 | content:"\f010" 252 | } 253 | 254 | .fa-power-off:before{ 255 | content:"\f011" 256 | } 257 | 258 | .fa-signal:before{ 259 | content:"\f012" 260 | } 261 | 262 | .fa-gear:before,.fa-cog:before{ 263 | content:"\f013" 264 | } 265 | 266 | .fa-trash-o:before{ 267 | content:"\f014" 268 | } 269 | 270 | .fa-home:before{ 271 | content:"\f015" 272 | } 273 | 274 | .fa-file-o:before{ 275 | content:"\f016" 276 | } 277 | 278 | .fa-clock-o:before{ 279 | content:"\f017" 280 | } 281 | 282 | .fa-road:before{ 283 | content:"\f018" 284 | } 285 | 286 | .fa-download:before{ 287 | content:"\f019" 288 | } 289 | 290 | .fa-arrow-circle-o-down:before{ 291 | content:"\f01a" 292 | } 293 | 294 | .fa-arrow-circle-o-up:before{ 295 | content:"\f01b" 296 | } 297 | 298 | .fa-inbox:before{ 299 | content:"\f01c" 300 | } 301 | 302 | .fa-play-circle-o:before{ 303 | content:"\f01d" 304 | } 305 | 306 | .fa-rotate-right:before,.fa-repeat:before{ 307 | content:"\f01e" 308 | } 309 | 310 | .fa-refresh:before{ 311 | content:"\f021" 312 | } 313 | 314 | .fa-list-alt:before{ 315 | content:"\f022" 316 | } 317 | 318 | .fa-lock:before{ 319 | content:"\f023" 320 | } 321 | 322 | .fa-flag:before{ 323 | content:"\f024" 324 | } 325 | 326 | .fa-headphones:before{ 327 | content:"\f025" 328 | } 329 | 330 | .fa-volume-off:before{ 331 | content:"\f026" 332 | } 333 | 334 | .fa-volume-down:before{ 335 | content:"\f027" 336 | } 337 | 338 | .fa-volume-up:before{ 339 | content:"\f028" 340 | } 341 | 342 | .fa-qrcode:before{ 343 | content:"\f029" 344 | } 345 | 346 | .fa-barcode:before{ 347 | content:"\f02a" 348 | } 349 | 350 | .fa-tag:before{ 351 | content:"\f02b" 352 | } 353 | 354 | .fa-tags:before{ 355 | content:"\f02c" 356 | } 357 | 358 | .fa-book:before{ 359 | content:"\f02d" 360 | } 361 | 362 | .fa-bookmark:before{ 363 | content:"\f02e" 364 | } 365 | 366 | .fa-print:before{ 367 | content:"\f02f" 368 | } 369 | 370 | .fa-camera:before{ 371 | content:"\f030" 372 | } 373 | 374 | .fa-font:before{ 375 | content:"\f031" 376 | } 377 | 378 | .fa-bold:before{ 379 | content:"\f032" 380 | } 381 | 382 | .fa-italic:before{ 383 | content:"\f033" 384 | } 385 | 386 | .fa-text-height:before{ 387 | content:"\f034" 388 | } 389 | 390 | .fa-text-width:before{ 391 | content:"\f035" 392 | } 393 | 394 | .fa-align-left:before{ 395 | content:"\f036" 396 | } 397 | 398 | .fa-align-center:before{ 399 | content:"\f037" 400 | } 401 | 402 | .fa-align-right:before{ 403 | content:"\f038" 404 | } 405 | 406 | .fa-align-justify:before{ 407 | content:"\f039" 408 | } 409 | 410 | .fa-list:before{ 411 | content:"\f03a" 412 | } 413 | 414 | .fa-dedent:before,.fa-outdent:before{ 415 | content:"\f03b" 416 | } 417 | 418 | .fa-indent:before{ 419 | content:"\f03c" 420 | } 421 | 422 | .fa-video-camera:before{ 423 | content:"\f03d" 424 | } 425 | 426 | .fa-photo:before,.fa-image:before,.fa-picture-o:before{ 427 | content:"\f03e" 428 | } 429 | 430 | .fa-pencil:before{ 431 | content:"\f040" 432 | } 433 | 434 | .fa-map-marker:before{ 435 | content:"\f041" 436 | } 437 | 438 | .fa-adjust:before{ 439 | content:"\f042" 440 | } 441 | 442 | .fa-tint:before{ 443 | content:"\f043" 444 | } 445 | 446 | .fa-edit:before,.fa-pencil-square-o:before{ 447 | content:"\f044" 448 | } 449 | 450 | .fa-share-square-o:before{ 451 | content:"\f045" 452 | } 453 | 454 | .fa-check-square-o:before{ 455 | content:"\f046" 456 | } 457 | 458 | .fa-arrows:before{ 459 | content:"\f047" 460 | } 461 | 462 | .fa-step-backward:before{ 463 | content:"\f048" 464 | } 465 | 466 | .fa-fast-backward:before{ 467 | content:"\f049" 468 | } 469 | 470 | .fa-backward:before{ 471 | content:"\f04a" 472 | } 473 | 474 | .fa-play:before{ 475 | content:"\f04b" 476 | } 477 | 478 | .fa-pause:before{ 479 | content:"\f04c" 480 | } 481 | 482 | .fa-stop:before{ 483 | content:"\f04d" 484 | } 485 | 486 | .fa-forward:before{ 487 | content:"\f04e" 488 | } 489 | 490 | .fa-fast-forward:before{ 491 | content:"\f050" 492 | } 493 | 494 | .fa-step-forward:before{ 495 | content:"\f051" 496 | } 497 | 498 | .fa-eject:before{ 499 | content:"\f052" 500 | } 501 | 502 | .fa-chevron-left:before{ 503 | content:"\f053" 504 | } 505 | 506 | .fa-chevron-right:before{ 507 | content:"\f054" 508 | } 509 | 510 | .fa-plus-circle:before{ 511 | content:"\f055" 512 | } 513 | 514 | .fa-minus-circle:before{ 515 | content:"\f056" 516 | } 517 | 518 | .fa-times-circle:before{ 519 | content:"\f057" 520 | } 521 | 522 | .fa-check-circle:before{ 523 | content:"\f058" 524 | } 525 | 526 | .fa-question-circle:before{ 527 | content:"\f059" 528 | } 529 | 530 | .fa-info-circle:before{ 531 | content:"\f05a" 532 | } 533 | 534 | .fa-crosshairs:before{ 535 | content:"\f05b" 536 | } 537 | 538 | .fa-times-circle-o:before{ 539 | content:"\f05c" 540 | } 541 | 542 | .fa-check-circle-o:before{ 543 | content:"\f05d" 544 | } 545 | 546 | .fa-ban:before{ 547 | content:"\f05e" 548 | } 549 | 550 | .fa-arrow-left:before{ 551 | content:"\f060" 552 | } 553 | 554 | .fa-arrow-right:before{ 555 | content:"\f061" 556 | } 557 | 558 | .fa-arrow-up:before{ 559 | content:"\f062" 560 | } 561 | 562 | .fa-arrow-down:before{ 563 | content:"\f063" 564 | } 565 | 566 | .fa-mail-forward:before,.fa-share:before{ 567 | content:"\f064" 568 | } 569 | 570 | .fa-expand:before{ 571 | content:"\f065" 572 | } 573 | 574 | .fa-compress:before{ 575 | content:"\f066" 576 | } 577 | 578 | .fa-plus:before{ 579 | content:"\f067" 580 | } 581 | 582 | .fa-minus:before{ 583 | content:"\f068" 584 | } 585 | 586 | .fa-asterisk:before{ 587 | content:"\f069" 588 | } 589 | 590 | .fa-exclamation-circle:before{ 591 | content:"\f06a" 592 | } 593 | 594 | .fa-gift:before{ 595 | content:"\f06b" 596 | } 597 | 598 | .fa-leaf:before{ 599 | content:"\f06c" 600 | } 601 | 602 | .fa-fire:before{ 603 | content:"\f06d" 604 | } 605 | 606 | .fa-eye:before{ 607 | content:"\f06e" 608 | } 609 | 610 | .fa-eye-slash:before{ 611 | content:"\f070" 612 | } 613 | 614 | .fa-warning:before,.fa-exclamation-triangle:before{ 615 | content:"\f071" 616 | } 617 | 618 | .fa-plane:before{ 619 | content:"\f072" 620 | } 621 | 622 | .fa-calendar:before{ 623 | content:"\f073" 624 | } 625 | 626 | .fa-random:before{ 627 | content:"\f074" 628 | } 629 | 630 | .fa-comment:before{ 631 | content:"\f075" 632 | } 633 | 634 | .fa-magnet:before{ 635 | content:"\f076" 636 | } 637 | 638 | .fa-chevron-up:before{ 639 | content:"\f077" 640 | } 641 | 642 | .fa-chevron-down:before{ 643 | content:"\f078" 644 | } 645 | 646 | .fa-retweet:before{ 647 | content:"\f079" 648 | } 649 | 650 | .fa-shopping-cart:before{ 651 | content:"\f07a" 652 | } 653 | 654 | .fa-folder:before{ 655 | content:"\f07b" 656 | } 657 | 658 | .fa-folder-open:before{ 659 | content:"\f07c" 660 | } 661 | 662 | .fa-arrows-v:before{ 663 | content:"\f07d" 664 | } 665 | 666 | .fa-arrows-h:before{ 667 | content:"\f07e" 668 | } 669 | 670 | .fa-bar-chart-o:before,.fa-bar-chart:before{ 671 | content:"\f080" 672 | } 673 | 674 | .fa-twitter-square:before{ 675 | content:"\f081" 676 | } 677 | 678 | .fa-facebook-square:before{ 679 | content:"\f082" 680 | } 681 | 682 | .fa-camera-retro:before{ 683 | content:"\f083" 684 | } 685 | 686 | .fa-key:before{ 687 | content:"\f084" 688 | } 689 | 690 | .fa-gears:before,.fa-cogs:before{ 691 | content:"\f085" 692 | } 693 | 694 | .fa-comments:before{ 695 | content:"\f086" 696 | } 697 | 698 | .fa-thumbs-o-up:before{ 699 | content:"\f087" 700 | } 701 | 702 | .fa-thumbs-o-down:before{ 703 | content:"\f088" 704 | } 705 | 706 | .fa-star-half:before{ 707 | content:"\f089" 708 | } 709 | 710 | .fa-heart-o:before{ 711 | content:"\f08a" 712 | } 713 | 714 | .fa-sign-out:before{ 715 | content:"\f08b" 716 | } 717 | 718 | .fa-linkedin-square:before{ 719 | content:"\f08c" 720 | } 721 | 722 | .fa-thumb-tack:before{ 723 | content:"\f08d" 724 | } 725 | 726 | .fa-external-link:before{ 727 | content:"\f08e" 728 | } 729 | 730 | .fa-sign-in:before{ 731 | content:"\f090" 732 | } 733 | 734 | .fa-trophy:before{ 735 | content:"\f091" 736 | } 737 | 738 | .fa-github-square:before{ 739 | content:"\f092" 740 | } 741 | 742 | .fa-upload:before{ 743 | content:"\f093" 744 | } 745 | 746 | .fa-lemon-o:before{ 747 | content:"\f094" 748 | } 749 | 750 | .fa-phone:before{ 751 | content:"\f095" 752 | } 753 | 754 | .fa-square-o:before{ 755 | content:"\f096" 756 | } 757 | 758 | .fa-bookmark-o:before{ 759 | content:"\f097" 760 | } 761 | 762 | .fa-phone-square:before{ 763 | content:"\f098" 764 | } 765 | 766 | .fa-twitter:before{ 767 | content:"\f099" 768 | } 769 | 770 | .fa-facebook:before{ 771 | content:"\f09a" 772 | } 773 | 774 | .fa-github:before{ 775 | content:"\f09b" 776 | } 777 | 778 | .fa-unlock:before{ 779 | content:"\f09c" 780 | } 781 | 782 | .fa-credit-card:before{ 783 | content:"\f09d" 784 | } 785 | 786 | .fa-rss:before{ 787 | content:"\f09e" 788 | } 789 | 790 | .fa-hdd-o:before{ 791 | content:"\f0a0" 792 | } 793 | 794 | .fa-bullhorn:before{ 795 | content:"\f0a1" 796 | } 797 | 798 | .fa-bell:before{ 799 | content:"\f0f3" 800 | } 801 | 802 | .fa-certificate:before{ 803 | content:"\f0a3" 804 | } 805 | 806 | .fa-hand-o-right:before{ 807 | content:"\f0a4" 808 | } 809 | 810 | .fa-hand-o-left:before{ 811 | content:"\f0a5" 812 | } 813 | 814 | .fa-hand-o-up:before{ 815 | content:"\f0a6" 816 | } 817 | 818 | .fa-hand-o-down:before{ 819 | content:"\f0a7" 820 | } 821 | 822 | .fa-arrow-circle-left:before{ 823 | content:"\f0a8" 824 | } 825 | 826 | .fa-arrow-circle-right:before{ 827 | content:"\f0a9" 828 | } 829 | 830 | .fa-arrow-circle-up:before{ 831 | content:"\f0aa" 832 | } 833 | 834 | .fa-arrow-circle-down:before{ 835 | content:"\f0ab" 836 | } 837 | 838 | .fa-globe:before{ 839 | content:"\f0ac" 840 | } 841 | 842 | .fa-wrench:before{ 843 | content:"\f0ad" 844 | } 845 | 846 | .fa-tasks:before{ 847 | content:"\f0ae" 848 | } 849 | 850 | .fa-filter:before{ 851 | content:"\f0b0" 852 | } 853 | 854 | .fa-briefcase:before{ 855 | content:"\f0b1" 856 | } 857 | 858 | .fa-arrows-alt:before{ 859 | content:"\f0b2" 860 | } 861 | 862 | .fa-group:before,.fa-users:before{ 863 | content:"\f0c0" 864 | } 865 | 866 | .fa-chain:before,.fa-link:before{ 867 | content:"\f0c1" 868 | } 869 | 870 | .fa-cloud:before{ 871 | content:"\f0c2" 872 | } 873 | 874 | .fa-flask:before{ 875 | content:"\f0c3" 876 | } 877 | 878 | .fa-cut:before,.fa-scissors:before{ 879 | content:"\f0c4" 880 | } 881 | 882 | .fa-copy:before,.fa-files-o:before{ 883 | content:"\f0c5" 884 | } 885 | 886 | .fa-paperclip:before{ 887 | content:"\f0c6" 888 | } 889 | 890 | .fa-save:before,.fa-floppy-o:before{ 891 | content:"\f0c7" 892 | } 893 | 894 | .fa-square:before{ 895 | content:"\f0c8" 896 | } 897 | 898 | .fa-navicon:before,.fa-reorder:before,.fa-bars:before{ 899 | content:"\f0c9" 900 | } 901 | 902 | .fa-list-ul:before{ 903 | content:"\f0ca" 904 | } 905 | 906 | .fa-list-ol:before{ 907 | content:"\f0cb" 908 | } 909 | 910 | .fa-strikethrough:before{ 911 | content:"\f0cc" 912 | } 913 | 914 | .fa-underline:before{ 915 | content:"\f0cd" 916 | } 917 | 918 | .fa-table:before{ 919 | content:"\f0ce" 920 | } 921 | 922 | .fa-magic:before{ 923 | content:"\f0d0" 924 | } 925 | 926 | .fa-truck:before{ 927 | content:"\f0d1" 928 | } 929 | 930 | .fa-pinterest:before{ 931 | content:"\f0d2" 932 | } 933 | 934 | .fa-pinterest-square:before{ 935 | content:"\f0d3" 936 | } 937 | 938 | .fa-google-plus-square:before{ 939 | content:"\f0d4" 940 | } 941 | 942 | .fa-google-plus:before{ 943 | content:"\f0d5" 944 | } 945 | 946 | .fa-money:before{ 947 | content:"\f0d6" 948 | } 949 | 950 | .fa-caret-down:before{ 951 | content:"\f0d7" 952 | } 953 | 954 | .fa-caret-up:before{ 955 | content:"\f0d8" 956 | } 957 | 958 | .fa-caret-left:before{ 959 | content:"\f0d9" 960 | } 961 | 962 | .fa-caret-right:before{ 963 | content:"\f0da" 964 | } 965 | 966 | .fa-columns:before{ 967 | content:"\f0db" 968 | } 969 | 970 | .fa-unsorted:before,.fa-sort:before{ 971 | content:"\f0dc" 972 | } 973 | 974 | .fa-sort-down:before,.fa-sort-desc:before{ 975 | content:"\f0dd" 976 | } 977 | 978 | .fa-sort-up:before,.fa-sort-asc:before{ 979 | content:"\f0de" 980 | } 981 | 982 | .fa-envelope:before{ 983 | content:"\f0e0" 984 | } 985 | 986 | .fa-linkedin:before{ 987 | content:"\f0e1" 988 | } 989 | 990 | .fa-rotate-left:before,.fa-undo:before{ 991 | content:"\f0e2" 992 | } 993 | 994 | .fa-legal:before,.fa-gavel:before{ 995 | content:"\f0e3" 996 | } 997 | 998 | .fa-dashboard:before,.fa-tachometer:before{ 999 | content:"\f0e4" 1000 | } 1001 | 1002 | .fa-comment-o:before{ 1003 | content:"\f0e5" 1004 | } 1005 | 1006 | .fa-comments-o:before{ 1007 | content:"\f0e6" 1008 | } 1009 | 1010 | .fa-flash:before,.fa-bolt:before{ 1011 | content:"\f0e7" 1012 | } 1013 | 1014 | .fa-sitemap:before{ 1015 | content:"\f0e8" 1016 | } 1017 | 1018 | .fa-umbrella:before{ 1019 | content:"\f0e9" 1020 | } 1021 | 1022 | .fa-paste:before,.fa-clipboard:before{ 1023 | content:"\f0ea" 1024 | } 1025 | 1026 | .fa-lightbulb-o:before{ 1027 | content:"\f0eb" 1028 | } 1029 | 1030 | .fa-exchange:before{ 1031 | content:"\f0ec" 1032 | } 1033 | 1034 | .fa-cloud-download:before{ 1035 | content:"\f0ed" 1036 | } 1037 | 1038 | .fa-cloud-upload:before{ 1039 | content:"\f0ee" 1040 | } 1041 | 1042 | .fa-user-md:before{ 1043 | content:"\f0f0" 1044 | } 1045 | 1046 | .fa-stethoscope:before{ 1047 | content:"\f0f1" 1048 | } 1049 | 1050 | .fa-suitcase:before{ 1051 | content:"\f0f2" 1052 | } 1053 | 1054 | .fa-bell-o:before{ 1055 | content:"\f0a2" 1056 | } 1057 | 1058 | .fa-coffee:before{ 1059 | content:"\f0f4" 1060 | } 1061 | 1062 | .fa-cutlery:before{ 1063 | content:"\f0f5" 1064 | } 1065 | 1066 | .fa-file-text-o:before{ 1067 | content:"\f0f6" 1068 | } 1069 | 1070 | .fa-building-o:before{ 1071 | content:"\f0f7" 1072 | } 1073 | 1074 | .fa-hospital-o:before{ 1075 | content:"\f0f8" 1076 | } 1077 | 1078 | .fa-ambulance:before{ 1079 | content:"\f0f9" 1080 | } 1081 | 1082 | .fa-medkit:before{ 1083 | content:"\f0fa" 1084 | } 1085 | 1086 | .fa-fighter-jet:before{ 1087 | content:"\f0fb" 1088 | } 1089 | 1090 | .fa-beer:before{ 1091 | content:"\f0fc" 1092 | } 1093 | 1094 | .fa-h-square:before{ 1095 | content:"\f0fd" 1096 | } 1097 | 1098 | .fa-plus-square:before{ 1099 | content:"\f0fe" 1100 | } 1101 | 1102 | .fa-angle-double-left:before{ 1103 | content:"\f100" 1104 | } 1105 | 1106 | .fa-angle-double-right:before{ 1107 | content:"\f101" 1108 | } 1109 | 1110 | .fa-angle-double-up:before{ 1111 | content:"\f102" 1112 | } 1113 | 1114 | .fa-angle-double-down:before{ 1115 | content:"\f103" 1116 | } 1117 | 1118 | .fa-angle-left:before{ 1119 | content:"\f104" 1120 | } 1121 | 1122 | .fa-angle-right:before{ 1123 | content:"\f105" 1124 | } 1125 | 1126 | .fa-angle-up:before{ 1127 | content:"\f106" 1128 | } 1129 | 1130 | .fa-angle-down:before{ 1131 | content:"\f107" 1132 | } 1133 | 1134 | .fa-desktop:before{ 1135 | content:"\f108" 1136 | } 1137 | 1138 | .fa-laptop:before{ 1139 | content:"\f109" 1140 | } 1141 | 1142 | .fa-tablet:before{ 1143 | content:"\f10a" 1144 | } 1145 | 1146 | .fa-mobile-phone:before,.fa-mobile:before{ 1147 | content:"\f10b" 1148 | } 1149 | 1150 | .fa-circle-o:before{ 1151 | content:"\f10c" 1152 | } 1153 | 1154 | .fa-quote-left:before{ 1155 | content:"\f10d" 1156 | } 1157 | 1158 | .fa-quote-right:before{ 1159 | content:"\f10e" 1160 | } 1161 | 1162 | .fa-spinner:before{ 1163 | content:"\f110" 1164 | } 1165 | 1166 | .fa-circle:before{ 1167 | content:"\f111" 1168 | } 1169 | 1170 | .fa-mail-reply:before,.fa-reply:before{ 1171 | content:"\f112" 1172 | } 1173 | 1174 | .fa-github-alt:before{ 1175 | content:"\f113" 1176 | } 1177 | 1178 | .fa-folder-o:before{ 1179 | content:"\f114" 1180 | } 1181 | 1182 | .fa-folder-open-o:before{ 1183 | content:"\f115" 1184 | } 1185 | 1186 | .fa-smile-o:before{ 1187 | content:"\f118" 1188 | } 1189 | 1190 | .fa-frown-o:before{ 1191 | content:"\f119" 1192 | } 1193 | 1194 | .fa-meh-o:before{ 1195 | content:"\f11a" 1196 | } 1197 | 1198 | .fa-gamepad:before{ 1199 | content:"\f11b" 1200 | } 1201 | 1202 | .fa-keyboard-o:before{ 1203 | content:"\f11c" 1204 | } 1205 | 1206 | .fa-flag-o:before{ 1207 | content:"\f11d" 1208 | } 1209 | 1210 | .fa-flag-checkered:before{ 1211 | content:"\f11e" 1212 | } 1213 | 1214 | .fa-terminal:before{ 1215 | content:"\f120" 1216 | } 1217 | 1218 | .fa-code:before{ 1219 | content:"\f121" 1220 | } 1221 | 1222 | .fa-mail-reply-all:before,.fa-reply-all:before{ 1223 | content:"\f122" 1224 | } 1225 | 1226 | .fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{ 1227 | content:"\f123" 1228 | } 1229 | 1230 | .fa-location-arrow:before{ 1231 | content:"\f124" 1232 | } 1233 | 1234 | .fa-crop:before{ 1235 | content:"\f125" 1236 | } 1237 | 1238 | .fa-code-fork:before{ 1239 | content:"\f126" 1240 | } 1241 | 1242 | .fa-unlink:before,.fa-chain-broken:before{ 1243 | content:"\f127" 1244 | } 1245 | 1246 | .fa-question:before{ 1247 | content:"\f128" 1248 | } 1249 | 1250 | .fa-info:before{ 1251 | content:"\f129" 1252 | } 1253 | 1254 | .fa-exclamation:before{ 1255 | content:"\f12a" 1256 | } 1257 | 1258 | .fa-superscript:before{ 1259 | content:"\f12b" 1260 | } 1261 | 1262 | .fa-subscript:before{ 1263 | content:"\f12c" 1264 | } 1265 | 1266 | .fa-eraser:before{ 1267 | content:"\f12d" 1268 | } 1269 | 1270 | .fa-puzzle-piece:before{ 1271 | content:"\f12e" 1272 | } 1273 | 1274 | .fa-microphone:before{ 1275 | content:"\f130" 1276 | } 1277 | 1278 | .fa-microphone-slash:before{ 1279 | content:"\f131" 1280 | } 1281 | 1282 | .fa-shield:before{ 1283 | content:"\f132" 1284 | } 1285 | 1286 | .fa-calendar-o:before{ 1287 | content:"\f133" 1288 | } 1289 | 1290 | .fa-fire-extinguisher:before{ 1291 | content:"\f134" 1292 | } 1293 | 1294 | .fa-rocket:before{ 1295 | content:"\f135" 1296 | } 1297 | 1298 | .fa-maxcdn:before{ 1299 | content:"\f136" 1300 | } 1301 | 1302 | .fa-chevron-circle-left:before{ 1303 | content:"\f137" 1304 | } 1305 | 1306 | .fa-chevron-circle-right:before{ 1307 | content:"\f138" 1308 | } 1309 | 1310 | .fa-chevron-circle-up:before{ 1311 | content:"\f139" 1312 | } 1313 | 1314 | .fa-chevron-circle-down:before{ 1315 | content:"\f13a" 1316 | } 1317 | 1318 | .fa-html5:before{ 1319 | content:"\f13b" 1320 | } 1321 | 1322 | .fa-css3:before{ 1323 | content:"\f13c" 1324 | } 1325 | 1326 | .fa-anchor:before{ 1327 | content:"\f13d" 1328 | } 1329 | 1330 | .fa-unlock-alt:before{ 1331 | content:"\f13e" 1332 | } 1333 | 1334 | .fa-bullseye:before{ 1335 | content:"\f140" 1336 | } 1337 | 1338 | .fa-ellipsis-h:before{ 1339 | content:"\f141" 1340 | } 1341 | 1342 | .fa-ellipsis-v:before{ 1343 | content:"\f142" 1344 | } 1345 | 1346 | .fa-rss-square:before{ 1347 | content:"\f143" 1348 | } 1349 | 1350 | .fa-play-circle:before{ 1351 | content:"\f144" 1352 | } 1353 | 1354 | .fa-ticket:before{ 1355 | content:"\f145" 1356 | } 1357 | 1358 | .fa-minus-square:before{ 1359 | content:"\f146" 1360 | } 1361 | 1362 | .fa-minus-square-o:before{ 1363 | content:"\f147" 1364 | } 1365 | 1366 | .fa-level-up:before{ 1367 | content:"\f148" 1368 | } 1369 | 1370 | .fa-level-down:before{ 1371 | content:"\f149" 1372 | } 1373 | 1374 | .fa-check-square:before{ 1375 | content:"\f14a" 1376 | } 1377 | 1378 | .fa-pencil-square:before{ 1379 | content:"\f14b" 1380 | } 1381 | 1382 | .fa-external-link-square:before{ 1383 | content:"\f14c" 1384 | } 1385 | 1386 | .fa-share-square:before{ 1387 | content:"\f14d" 1388 | } 1389 | 1390 | .fa-compass:before{ 1391 | content:"\f14e" 1392 | } 1393 | 1394 | .fa-toggle-down:before,.fa-caret-square-o-down:before{ 1395 | content:"\f150" 1396 | } 1397 | 1398 | .fa-toggle-up:before,.fa-caret-square-o-up:before{ 1399 | content:"\f151" 1400 | } 1401 | 1402 | .fa-toggle-right:before,.fa-caret-square-o-right:before{ 1403 | content:"\f152" 1404 | } 1405 | 1406 | .fa-euro:before,.fa-eur:before{ 1407 | content:"\f153" 1408 | } 1409 | 1410 | .fa-gbp:before{ 1411 | content:"\f154" 1412 | } 1413 | 1414 | .fa-dollar:before,.fa-usd:before{ 1415 | content:"\f155" 1416 | } 1417 | 1418 | .fa-rupee:before,.fa-inr:before{ 1419 | content:"\f156" 1420 | } 1421 | 1422 | .fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{ 1423 | content:"\f157" 1424 | } 1425 | 1426 | .fa-ruble:before,.fa-rouble:before,.fa-rub:before{ 1427 | content:"\f158" 1428 | } 1429 | 1430 | .fa-won:before,.fa-krw:before{ 1431 | content:"\f159" 1432 | } 1433 | 1434 | .fa-bitcoin:before,.fa-btc:before{ 1435 | content:"\f15a" 1436 | } 1437 | 1438 | .fa-file:before{ 1439 | content:"\f15b" 1440 | } 1441 | 1442 | .fa-file-text:before{ 1443 | content:"\f15c" 1444 | } 1445 | 1446 | .fa-sort-alpha-asc:before{ 1447 | content:"\f15d" 1448 | } 1449 | 1450 | .fa-sort-alpha-desc:before{ 1451 | content:"\f15e" 1452 | } 1453 | 1454 | .fa-sort-amount-asc:before{ 1455 | content:"\f160" 1456 | } 1457 | 1458 | .fa-sort-amount-desc:before{ 1459 | content:"\f161" 1460 | } 1461 | 1462 | .fa-sort-numeric-asc:before{ 1463 | content:"\f162" 1464 | } 1465 | 1466 | .fa-sort-numeric-desc:before{ 1467 | content:"\f163" 1468 | } 1469 | 1470 | .fa-thumbs-up:before{ 1471 | content:"\f164" 1472 | } 1473 | 1474 | .fa-thumbs-down:before{ 1475 | content:"\f165" 1476 | } 1477 | 1478 | .fa-youtube-square:before{ 1479 | content:"\f166" 1480 | } 1481 | 1482 | .fa-youtube:before{ 1483 | content:"\f167" 1484 | } 1485 | 1486 | .fa-xing:before{ 1487 | content:"\f168" 1488 | } 1489 | 1490 | .fa-xing-square:before{ 1491 | content:"\f169" 1492 | } 1493 | 1494 | .fa-youtube-play:before{ 1495 | content:"\f16a" 1496 | } 1497 | 1498 | .fa-dropbox:before{ 1499 | content:"\f16b" 1500 | } 1501 | 1502 | .fa-stack-overflow:before{ 1503 | content:"\f16c" 1504 | } 1505 | 1506 | .fa-instagram:before{ 1507 | content:"\f16d" 1508 | } 1509 | 1510 | .fa-flickr:before{ 1511 | content:"\f16e" 1512 | } 1513 | 1514 | .fa-adn:before{ 1515 | content:"\f170" 1516 | } 1517 | 1518 | .fa-bitbucket:before{ 1519 | content:"\f171" 1520 | } 1521 | 1522 | .fa-bitbucket-square:before{ 1523 | content:"\f172" 1524 | } 1525 | 1526 | .fa-tumblr:before{ 1527 | content:"\f173" 1528 | } 1529 | 1530 | .fa-tumblr-square:before{ 1531 | content:"\f174" 1532 | } 1533 | 1534 | .fa-long-arrow-down:before{ 1535 | content:"\f175" 1536 | } 1537 | 1538 | .fa-long-arrow-up:before{ 1539 | content:"\f176" 1540 | } 1541 | 1542 | .fa-long-arrow-left:before{ 1543 | content:"\f177" 1544 | } 1545 | 1546 | .fa-long-arrow-right:before{ 1547 | content:"\f178" 1548 | } 1549 | 1550 | .fa-apple:before{ 1551 | content:"\f179" 1552 | } 1553 | 1554 | .fa-windows:before{ 1555 | content:"\f17a" 1556 | } 1557 | 1558 | .fa-android:before{ 1559 | content:"\f17b" 1560 | } 1561 | 1562 | .fa-linux:before{ 1563 | content:"\f17c" 1564 | } 1565 | 1566 | .fa-dribbble:before{ 1567 | content:"\f17d" 1568 | } 1569 | 1570 | .fa-skype:before{ 1571 | content:"\f17e" 1572 | } 1573 | 1574 | .fa-foursquare:before{ 1575 | content:"\f180" 1576 | } 1577 | 1578 | .fa-trello:before{ 1579 | content:"\f181" 1580 | } 1581 | 1582 | .fa-female:before{ 1583 | content:"\f182" 1584 | } 1585 | 1586 | .fa-male:before{ 1587 | content:"\f183" 1588 | } 1589 | 1590 | .fa-gittip:before{ 1591 | content:"\f184" 1592 | } 1593 | 1594 | .fa-sun-o:before{ 1595 | content:"\f185" 1596 | } 1597 | 1598 | .fa-moon-o:before{ 1599 | content:"\f186" 1600 | } 1601 | 1602 | .fa-archive:before{ 1603 | content:"\f187" 1604 | } 1605 | 1606 | .fa-bug:before{ 1607 | content:"\f188" 1608 | } 1609 | 1610 | .fa-vk:before{ 1611 | content:"\f189" 1612 | } 1613 | 1614 | .fa-weibo:before{ 1615 | content:"\f18a" 1616 | } 1617 | 1618 | .fa-renren:before{ 1619 | content:"\f18b" 1620 | } 1621 | 1622 | .fa-pagelines:before{ 1623 | content:"\f18c" 1624 | } 1625 | 1626 | .fa-stack-exchange:before{ 1627 | content:"\f18d" 1628 | } 1629 | 1630 | .fa-arrow-circle-o-right:before{ 1631 | content:"\f18e" 1632 | } 1633 | 1634 | .fa-arrow-circle-o-left:before{ 1635 | content:"\f190" 1636 | } 1637 | 1638 | .fa-toggle-left:before,.fa-caret-square-o-left:before{ 1639 | content:"\f191" 1640 | } 1641 | 1642 | .fa-dot-circle-o:before{ 1643 | content:"\f192" 1644 | } 1645 | 1646 | .fa-wheelchair:before{ 1647 | content:"\f193" 1648 | } 1649 | 1650 | .fa-vimeo-square:before{ 1651 | content:"\f194" 1652 | } 1653 | 1654 | .fa-turkish-lira:before,.fa-try:before{ 1655 | content:"\f195" 1656 | } 1657 | 1658 | .fa-plus-square-o:before{ 1659 | content:"\f196" 1660 | } 1661 | 1662 | .fa-space-shuttle:before{ 1663 | content:"\f197" 1664 | } 1665 | 1666 | .fa-slack:before{ 1667 | content:"\f198" 1668 | } 1669 | 1670 | .fa-envelope-square:before{ 1671 | content:"\f199" 1672 | } 1673 | 1674 | .fa-wordpress:before{ 1675 | content:"\f19a" 1676 | } 1677 | 1678 | .fa-openid:before{ 1679 | content:"\f19b" 1680 | } 1681 | 1682 | .fa-institution:before,.fa-bank:before,.fa-university:before{ 1683 | content:"\f19c" 1684 | } 1685 | 1686 | .fa-mortar-board:before,.fa-graduation-cap:before{ 1687 | content:"\f19d" 1688 | } 1689 | 1690 | .fa-yahoo:before{ 1691 | content:"\f19e" 1692 | } 1693 | 1694 | .fa-google:before{ 1695 | content:"\f1a0" 1696 | } 1697 | 1698 | .fa-reddit:before{ 1699 | content:"\f1a1" 1700 | } 1701 | 1702 | .fa-reddit-square:before{ 1703 | content:"\f1a2" 1704 | } 1705 | 1706 | .fa-stumbleupon-circle:before{ 1707 | content:"\f1a3" 1708 | } 1709 | 1710 | .fa-stumbleupon:before{ 1711 | content:"\f1a4" 1712 | } 1713 | 1714 | .fa-delicious:before{ 1715 | content:"\f1a5" 1716 | } 1717 | 1718 | .fa-digg:before{ 1719 | content:"\f1a6" 1720 | } 1721 | 1722 | .fa-pied-piper:before{ 1723 | content:"\f1a7" 1724 | } 1725 | 1726 | .fa-pied-piper-alt:before{ 1727 | content:"\f1a8" 1728 | } 1729 | 1730 | .fa-drupal:before{ 1731 | content:"\f1a9" 1732 | } 1733 | 1734 | .fa-joomla:before{ 1735 | content:"\f1aa" 1736 | } 1737 | 1738 | .fa-language:before{ 1739 | content:"\f1ab" 1740 | } 1741 | 1742 | .fa-fax:before{ 1743 | content:"\f1ac" 1744 | } 1745 | 1746 | .fa-building:before{ 1747 | content:"\f1ad" 1748 | } 1749 | 1750 | .fa-child:before{ 1751 | content:"\f1ae" 1752 | } 1753 | 1754 | .fa-paw:before{ 1755 | content:"\f1b0" 1756 | } 1757 | 1758 | .fa-spoon:before{ 1759 | content:"\f1b1" 1760 | } 1761 | 1762 | .fa-cube:before{ 1763 | content:"\f1b2" 1764 | } 1765 | 1766 | .fa-cubes:before{ 1767 | content:"\f1b3" 1768 | } 1769 | 1770 | .fa-behance:before{ 1771 | content:"\f1b4" 1772 | } 1773 | 1774 | .fa-behance-square:before{ 1775 | content:"\f1b5" 1776 | } 1777 | 1778 | .fa-steam:before{ 1779 | content:"\f1b6" 1780 | } 1781 | 1782 | .fa-steam-square:before{ 1783 | content:"\f1b7" 1784 | } 1785 | 1786 | .fa-recycle:before{ 1787 | content:"\f1b8" 1788 | } 1789 | 1790 | .fa-automobile:before,.fa-car:before{ 1791 | content:"\f1b9" 1792 | } 1793 | 1794 | .fa-cab:before,.fa-taxi:before{ 1795 | content:"\f1ba" 1796 | } 1797 | 1798 | .fa-tree:before{ 1799 | content:"\f1bb" 1800 | } 1801 | 1802 | .fa-spotify:before{ 1803 | content:"\f1bc" 1804 | } 1805 | 1806 | .fa-deviantart:before{ 1807 | content:"\f1bd" 1808 | } 1809 | 1810 | .fa-soundcloud:before{ 1811 | content:"\f1be" 1812 | } 1813 | 1814 | .fa-database:before{ 1815 | content:"\f1c0" 1816 | } 1817 | 1818 | .fa-file-pdf-o:before{ 1819 | content:"\f1c1" 1820 | } 1821 | 1822 | .fa-file-word-o:before{ 1823 | content:"\f1c2" 1824 | } 1825 | 1826 | .fa-file-excel-o:before{ 1827 | content:"\f1c3" 1828 | } 1829 | 1830 | .fa-file-powerpoint-o:before{ 1831 | content:"\f1c4" 1832 | } 1833 | 1834 | .fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{ 1835 | content:"\f1c5" 1836 | } 1837 | 1838 | .fa-file-zip-o:before,.fa-file-archive-o:before{ 1839 | content:"\f1c6" 1840 | } 1841 | 1842 | .fa-file-sound-o:before,.fa-file-audio-o:before{ 1843 | content:"\f1c7" 1844 | } 1845 | 1846 | .fa-file-movie-o:before,.fa-file-video-o:before{ 1847 | content:"\f1c8" 1848 | } 1849 | 1850 | .fa-file-code-o:before{ 1851 | content:"\f1c9" 1852 | } 1853 | 1854 | .fa-vine:before{ 1855 | content:"\f1ca" 1856 | } 1857 | 1858 | .fa-codepen:before{ 1859 | content:"\f1cb" 1860 | } 1861 | 1862 | .fa-jsfiddle:before{ 1863 | content:"\f1cc" 1864 | } 1865 | 1866 | .fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{ 1867 | content:"\f1cd" 1868 | } 1869 | 1870 | .fa-circle-o-notch:before{ 1871 | content:"\f1ce" 1872 | } 1873 | 1874 | .fa-ra:before,.fa-rebel:before{ 1875 | content:"\f1d0" 1876 | } 1877 | 1878 | .fa-ge:before,.fa-empire:before{ 1879 | content:"\f1d1" 1880 | } 1881 | 1882 | .fa-git-square:before{ 1883 | content:"\f1d2" 1884 | } 1885 | 1886 | .fa-git:before{ 1887 | content:"\f1d3" 1888 | } 1889 | 1890 | .fa-hacker-news:before{ 1891 | content:"\f1d4" 1892 | } 1893 | 1894 | .fa-tencent-weibo:before{ 1895 | content:"\f1d5" 1896 | } 1897 | 1898 | .fa-qq:before{ 1899 | content:"\f1d6" 1900 | } 1901 | 1902 | .fa-wechat:before,.fa-weixin:before{ 1903 | content:"\f1d7" 1904 | } 1905 | 1906 | .fa-send:before,.fa-paper-plane:before{ 1907 | content:"\f1d8" 1908 | } 1909 | 1910 | .fa-send-o:before,.fa-paper-plane-o:before{ 1911 | content:"\f1d9" 1912 | } 1913 | 1914 | .fa-history:before{ 1915 | content:"\f1da" 1916 | } 1917 | 1918 | .fa-circle-thin:before{ 1919 | content:"\f1db" 1920 | } 1921 | 1922 | .fa-header:before{ 1923 | content:"\f1dc" 1924 | } 1925 | 1926 | .fa-paragraph:before{ 1927 | content:"\f1dd" 1928 | } 1929 | 1930 | .fa-sliders:before{ 1931 | content:"\f1de" 1932 | } 1933 | 1934 | .fa-share-alt:before{ 1935 | content:"\f1e0" 1936 | } 1937 | 1938 | .fa-share-alt-square:before{ 1939 | content:"\f1e1" 1940 | } 1941 | 1942 | .fa-bomb:before{ 1943 | content:"\f1e2" 1944 | } 1945 | 1946 | .fa-soccer-ball-o:before,.fa-futbol-o:before{ 1947 | content:"\f1e3" 1948 | } 1949 | 1950 | .fa-tty:before{ 1951 | content:"\f1e4" 1952 | } 1953 | 1954 | .fa-binoculars:before{ 1955 | content:"\f1e5" 1956 | } 1957 | 1958 | .fa-plug:before{ 1959 | content:"\f1e6" 1960 | } 1961 | 1962 | .fa-slideshare:before{ 1963 | content:"\f1e7" 1964 | } 1965 | 1966 | .fa-twitch:before{ 1967 | content:"\f1e8" 1968 | } 1969 | 1970 | .fa-yelp:before{ 1971 | content:"\f1e9" 1972 | } 1973 | 1974 | .fa-newspaper-o:before{ 1975 | content:"\f1ea" 1976 | } 1977 | 1978 | .fa-wifi:before{ 1979 | content:"\f1eb" 1980 | } 1981 | 1982 | .fa-calculator:before{ 1983 | content:"\f1ec" 1984 | } 1985 | 1986 | .fa-paypal:before{ 1987 | content:"\f1ed" 1988 | } 1989 | 1990 | .fa-google-wallet:before{ 1991 | content:"\f1ee" 1992 | } 1993 | 1994 | .fa-cc-visa:before{ 1995 | content:"\f1f0" 1996 | } 1997 | 1998 | .fa-cc-mastercard:before{ 1999 | content:"\f1f1" 2000 | } 2001 | 2002 | .fa-cc-discover:before{ 2003 | content:"\f1f2" 2004 | } 2005 | 2006 | .fa-cc-amex:before{ 2007 | content:"\f1f3" 2008 | } 2009 | 2010 | .fa-cc-paypal:before{ 2011 | content:"\f1f4" 2012 | } 2013 | 2014 | .fa-cc-stripe:before{ 2015 | content:"\f1f5" 2016 | } 2017 | 2018 | .fa-bell-slash:before{ 2019 | content:"\f1f6" 2020 | } 2021 | 2022 | .fa-bell-slash-o:before{ 2023 | content:"\f1f7" 2024 | } 2025 | 2026 | .fa-trash:before{ 2027 | content:"\f1f8" 2028 | } 2029 | 2030 | .fa-copyright:before{ 2031 | content:"\f1f9" 2032 | } 2033 | 2034 | .fa-at:before{ 2035 | content:"\f1fa" 2036 | } 2037 | 2038 | .fa-eyedropper:before{ 2039 | content:"\f1fb" 2040 | } 2041 | 2042 | .fa-paint-brush:before{ 2043 | content:"\f1fc" 2044 | } 2045 | 2046 | .fa-birthday-cake:before{ 2047 | content:"\f1fd" 2048 | } 2049 | 2050 | .fa-area-chart:before{ 2051 | content:"\f1fe" 2052 | } 2053 | 2054 | .fa-pie-chart:before{ 2055 | content:"\f200" 2056 | } 2057 | 2058 | .fa-line-chart:before{ 2059 | content:"\f201" 2060 | } 2061 | 2062 | .fa-lastfm:before{ 2063 | content:"\f202" 2064 | } 2065 | 2066 | .fa-lastfm-square:before{ 2067 | content:"\f203" 2068 | } 2069 | 2070 | .fa-toggle-off:before{ 2071 | content:"\f204" 2072 | } 2073 | 2074 | .fa-toggle-on:before{ 2075 | content:"\f205" 2076 | } 2077 | 2078 | .fa-bicycle:before{ 2079 | content:"\f206" 2080 | } 2081 | 2082 | .fa-bus:before{ 2083 | content:"\f207" 2084 | } 2085 | 2086 | .fa-ioxhost:before{ 2087 | content:"\f208" 2088 | } 2089 | 2090 | .fa-angellist:before{ 2091 | content:"\f209" 2092 | } 2093 | 2094 | .fa-cc:before{ 2095 | content:"\f20a" 2096 | } 2097 | 2098 | .fa-shekel:before,.fa-sheqel:before,.fa-ils:before{ 2099 | content:"\f20b" 2100 | } 2101 | 2102 | .fa-meanpath:before{ 2103 | content:"\f20c" 2104 | } 2105 | -------------------------------------------------------------------------------- /static/css/sidebar-bootstrap.css: -------------------------------------------------------------------------------- 1 | .navbar-fixed-top + .sidebar-trigger .sidebar-toggle, 2 | .navbar-fixed-bottom + .sidebar-trigger .sidebar-toggle, 3 | .navbar-fixed-top + .sidebar-trigger + .sidebar-trigger .sidebar-toggle, 4 | .navbar-fixed-bottom + .sidebar-trigger + .sidebar-trigger .sidebar-toggle { 5 | position: fixed; 6 | z-index: 1032; 7 | } 8 | .navbar-fixed-top + .sidebar-trigger .sidebar-wrapper, 9 | .navbar-fixed-bottom + .sidebar-trigger .sidebar-wrapper, 10 | .navbar-fixed-top + .sidebar-trigger + .sidebar-trigger .sidebar-wrapper, 11 | .navbar-fixed-bottom + .sidebar-trigger + .sidebar-trigger .sidebar-wrapper { 12 | z-index: 1033; 13 | } 14 | .navbar-fixed-bottom + .sidebar-trigger .sidebar-toggle, 15 | .navbar-fixed-bottom + .sidebar-trigger + .sidebar-trigger .sidebar-toggle { 16 | top: inherit; 17 | bottom: 0; 18 | } 19 | .navbar-fixed-top + .container, 20 | .navbar-fixed-top + .container-fluid, 21 | .navbar-fixed-top + .sidebar-trigger + .container, 22 | .navbar-fixed-top + .sidebar-trigger + .container-fluid, 23 | .navbar-fixed-top + .sidebar-trigger + .sidebar-trigger + .container, 24 | .navbar-fixed-top + .sidebar-trigger + .sidebar-trigger + .container-fluid { 25 | margin-top: 70px; 26 | } 27 | .navbar-fixed-bottom + .container, 28 | .navbar-fixed-bottom + .container-fluid, 29 | .navbar-fixed-bottom + .sidebar-trigger + .container, 30 | .navbar-fixed-bottom + .sidebar-trigger + .container-fluid, 31 | .navbar-fixed-bottom + .sidebar-trigger + .sidebar-trigger + .container, 32 | .navbar-fixed-bottom + .sidebar-trigger + .sidebar-trigger + .container-fluid { 33 | margin-bottom: 70px; 34 | } 35 | @media (min-width: 992px) { 36 | .sidebar-force-open:not(.sidebar-right) + .container, 37 | .sidebar-force-open:not(.sidebar-right) + .sidebar-trigger + .container { 38 | padding-left: 225px; 39 | } 40 | .sidebar-force-open:not(.sidebar-right) + .container-fluid, 41 | .sidebar-force-open:not(.sidebar-right) + .sidebar-trigger + .container-fluid { 42 | margin-left: 210px; 43 | } 44 | .sidebar-force-open.sidebar-right + .container, 45 | .sidebar-force-open.sidebar-right + .sidebar-trigger + .container { 46 | padding-right: 225px; 47 | } 48 | .sidebar-force-open.sidebar-right + .container-fluid, 49 | .sidebar-force-open.sidebar-right + .sidebar-trigger + .container-fluid { 50 | margin-right: 210px; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /static/css/sidebar.css: -------------------------------------------------------------------------------- 1 | .sidebar-toggle { 2 | position: absolute; 3 | top: 0; 4 | left: 0; 5 | height: 51px; 6 | cursor: pointer; 7 | margin: 0; 8 | padding: 17px 20px 17px 0; 9 | } 10 | .sidebar-toggle .glyphicon{ 11 | color:white; 12 | } 13 | .sidebar-toggle > i { 14 | font-size: 18px; 15 | margin: 0 0 0 -5px; 16 | -webkit-transition: all 0.1s ease-in-out; 17 | transition: all 0.1s ease-in-out; 18 | } 19 | .sidebar-toggle > .fa-sidebar-toggle:before { 20 | content: "\f0c9"; 21 | } 22 | .sidebar-toggle:hover > i, 23 | .sidebar-toggle.sidebar-toggle-opened > i { 24 | margin-left: -9px; 25 | } 26 | .sidebar-toggle + .navbar-brand > img { 27 | margin-left: 10px; 28 | } 29 | .sidebar-togglable .sidebar-toggle { 30 | display: block; 31 | } 32 | .sidebar-wrapper { 33 | position: fixed; 34 | top: 0; 35 | overflow: hidden; 36 | bottom: 0; 37 | width: 210px; 38 | cursor: default; 39 | -moz-user-select: -moz-none; 40 | user-select: none; 41 | -webkit-transform: translate3d(-210px, 0px, 0px); 42 | transform: translate3d(-210px, 0px, 0px); 43 | } 44 | .sidebar-wrapper.sidebar-ready { 45 | -webkit-transition: -webkit-transform 0.2s; 46 | transition: transform 0.2s; 47 | } 48 | .sidebar-wrapper.sidebar-open { 49 | -webkit-transform: translate3d(0px, 0px, 0px); 50 | transform: translate3d(0px, 0px, 0px); 51 | } 52 | .sidebar-wrapper .sidebar-scroller { 53 | position: absolute; 54 | overflow-x: hidden; 55 | overflow-y: scroll; 56 | left: 0; 57 | right: -18px; 58 | height: 100%; 59 | } 60 | .sidebar-wrapper .sidebar-menu { 61 | margin: 0; 62 | padding: 0; 63 | overflow-x: hidden; 64 | list-style: none; 65 | text-align: left; 66 | font-size: 14px; 67 | } 68 | .sidebar-wrapper .sidebar-menu ul { 69 | padding: 0; 70 | margin: 0; 71 | } 72 | .sidebar-wrapper .sidebar-menu li { 73 | display: block; 74 | } 75 | .sidebar-wrapper .sidebar-group > span, 76 | .sidebar-wrapper .sidebar-item > a { 77 | display: block; 78 | height: 100%; 79 | padding: 12px 15px; 80 | text-decoration: none; 81 | } 82 | .sidebar-wrapper .sidebar-item > a.active { 83 | border-left: 5px solid; 84 | padding: 12px 15px 12px 10px; 85 | } 86 | .sidebar-wrapper .sidebar-item.sidebar-item-mini { 87 | font-size: 0.7em; 88 | } 89 | .sidebar-wrapper .sidebar-item.sidebar-item-mini > a { 90 | padding-top: 7px; 91 | padding-bottom: 7px; 92 | } 93 | .sidebar-wrapper .sidebar-group { 94 | margin-top: 20px; 95 | } 96 | .sidebar-wrapper .sidebar-group:first-child { 97 | margin-top: 0; 98 | } 99 | .sidebar-wrapper .sidebar-group > span { 100 | font-family: inherit; 101 | font-size: 24px; 102 | border-bottom: 1px solid transparent; 103 | } 104 | .sidebar-wrapper .sidebar-group.sticky-header { 105 | position: absolute; 106 | height: auto; 107 | top: 0; 108 | left: 0; 109 | right: 0; 110 | z-index: 1; 111 | margin-top: 0; 112 | } 113 | .sidebar-wrapper .sidebar-group + .sidebar-item { 114 | margin-top: 32px; 115 | border-top: 1px solid transparent; 116 | } 117 | .sidebar-wrapper .sidebar-item > a { 118 | cursor: pointer; 119 | } 120 | .sidebar-swipe { 121 | position: fixed; 122 | z-index: 1001; 123 | width: 20px; 124 | left: 0; 125 | top: 0; 126 | bottom: 0; 127 | -moz-user-select: -moz-none; 128 | user-select: none; 129 | } 130 | .sidebar-open + .sidebar-swipe, 131 | .sidebar-force-open .sidebar-swipe { 132 | left: 210px; 133 | } 134 | .sidebar-trigger .sidebar-toggle { 135 | z-index: 1002; 136 | } 137 | .sidebar-trigger .sidebar-wrapper { 138 | z-index: 1003; 139 | } 140 | .sidebar-wrapper.sidebar-default { 141 | color: #222222; 142 | background-color: #ffffff; 143 | } 144 | .sidebar-wrapper.sidebar-default.sidebar-open, 145 | .sidebar-wrapper.sidebar-default.sidebar-dragging { 146 | -webkit-box-shadow: 3px 0 4px rgba(0, 0, 0, 0.18); 147 | box-shadow: 3px 0 4px rgba(0, 0, 0, 0.18); 148 | } 149 | .sidebar-wrapper.sidebar-default .sidebar-group > span { 150 | color: #dbdbdb; 151 | border-bottom-color: #eeeeee; 152 | } 153 | .sidebar-wrapper.sidebar-default .sidebar-group.sticky-header > span { 154 | background-color: #ffffff; 155 | } 156 | .sidebar-wrapper.sidebar-default .sidebar-group + .sidebar-item { 157 | border-top-color: #eeeeee; 158 | } 159 | .sidebar-wrapper.sidebar-default .sidebar-item > a { 160 | color: #222222; 161 | background-color: #ffffff; 162 | } 163 | .sidebar-wrapper.sidebar-default .sidebar-item > a:hover, 164 | .sidebar-wrapper.sidebar-default .sidebar-item > a:focus { 165 | color: #333333; 166 | background-color: #eeeeee; 167 | } 168 | .sidebar-wrapper.sidebar-default .sidebar-item > a.active { 169 | color: #337ab7; 170 | background-color: #ffffff; 171 | } 172 | .sidebar-wrapper.sidebar-default .sidebar-item.sidebar-item-mini > a { 173 | color: #747474; 174 | } 175 | .sidebar-wrapper.sidebar-default .hammer-scrollbar { 176 | background-color: #555555; 177 | } 178 | .sidebar-wrapper.sidebar-inverse { 179 | color: #9d9d9d; 180 | background-color: #2a3542; 181 | } 182 | .sidebar-wrapper.sidebar-inverse.sidebar-open, 183 | .sidebar-wrapper.sidebar-inverse.sidebar-dragging { 184 | -webkit-box-shadow: 3px 0 4px rgba(0, 0, 0, 0.32); 185 | box-shadow: 3px 0 4px rgba(0, 0, 0, 0.32); 186 | } 187 | .sidebar-wrapper.sidebar-inverse .sidebar-group > span { 188 | color: #46586e; 189 | border-bottom-color: #344252; 190 | } 191 | .sidebar-wrapper.sidebar-inverse .sidebar-group.sticky-header > span { 192 | background-color: #2a3542; 193 | } 194 | .sidebar-wrapper.sidebar-inverse .sidebar-group + .sidebar-item { 195 | border-top-color: #344252; 196 | } 197 | .sidebar-wrapper.sidebar-inverse .sidebar-item > a { 198 | color: #9d9d9d; 199 | background-color: #2a3542; 200 | } 201 | .sidebar-wrapper.sidebar-inverse .sidebar-item > a:hover, 202 | .sidebar-wrapper.sidebar-inverse .sidebar-item > a:focus { 203 | color: #ffffff; 204 | background-color: #344252; 205 | } 206 | .sidebar-wrapper.sidebar-inverse .sidebar-item > a.active { 207 | color: #dfecf6; 208 | background-color: #2a3542; 209 | } 210 | .sidebar-wrapper.sidebar-inverse .sidebar-item.sidebar-item-mini > a { 211 | color: #6d85a2; 212 | } 213 | .sidebar-wrapper.sidebar-inverse .hammer-scrollbar { 214 | background-color: #e4e8ed; 215 | } 216 | .navbar-default + .sidebar-trigger .sidebar-toggle > i, 217 | .navbar-default + .sidebar-trigger + .sidebar-trigger .sidebar-toggle > i { 218 | color: #888888; 219 | } 220 | .navbar-default + .sidebar-trigger .sidebar-toggle:hover > i, 221 | .navbar-default + .sidebar-trigger + .sidebar-trigger .sidebar-toggle:hover > i { 222 | color: #333333; 223 | } 224 | .navbar-inverse + .sidebar-trigger .sidebar-toggle > i, 225 | .navbar-inverse + .sidebar-trigger + .sidebar-trigger .sidebar-toggle > i { 226 | color: #ffffff; 227 | } 228 | .navbar-inverse + .sidebar-trigger .sidebar-toggle:hover > i, 229 | .navbar-inverse + .sidebar-trigger + .sidebar-trigger .sidebar-toggle:hover > i { 230 | color: #ffffff; 231 | } 232 | .sidebar-right .sidebar-toggle { 233 | left: auto; 234 | right: 0; 235 | padding-left: 20px; 236 | padding-right: 0; 237 | } 238 | .sidebar-right .sidebar-toggle > i { 239 | margin-left: 0; 240 | margin-right: -5px; 241 | } 242 | .sidebar-right .sidebar-toggle:hover > i, 243 | .sidebar-right .sidebar-toggle.sidebar-toggle-opened > i { 244 | margin-right: -9px; 245 | } 246 | .sidebar-right .sidebar-wrapper { 247 | right: 0; 248 | -webkit-transform: translate3d(210px, 0px, 0px); 249 | transform: translate3d(210px, 0px, 0px); 250 | } 251 | .sidebar-right .sidebar-wrapper.sidebar-open { 252 | -webkit-transform: translate3d(0px, 0px, 0px); 253 | transform: translate3d(0px, 0px, 0px); 254 | } 255 | .sidebar-right .sidebar-wrapper.sidebar-default.sidebar-open, 256 | .sidebar-right .sidebar-wrapper.sidebar-default.sidebar-dragging { 257 | -webkit-box-shadow: -3px 0 4px rgba(0, 0, 0, 0.18); 258 | box-shadow: -3px 0 4px rgba(0, 0, 0, 0.18); 259 | } 260 | .sidebar-right .sidebar-wrapper.sidebar-inverse.sidebar-open, 261 | .sidebar-right .sidebar-wrapper.sidebar-inverse.sidebar-dragging { 262 | -webkit-box-shadow: -3px 0 4px rgba(0, 0, 0, 0.32); 263 | box-shadow: -3px 0 4px rgba(0, 0, 0, 0.32); 264 | } 265 | .sidebar-right .sidebar-wrapper .sidebar-item > a.active { 266 | border-left: inherit; 267 | border-right: 5px solid; 268 | padding: 12px 10px 12px 15px; 269 | } 270 | .sidebar-right .sidebar-swipe { 271 | left: auto; 272 | right: 0; 273 | } 274 | .sidebar-right .sidebar-open + .sidebar-swipe, 275 | .sidebar-right .sidebar-force-open .sidebar-swipe { 276 | right: 210px; 277 | } 278 | @media (max-width: 767px) { 279 | .sidebar-wrapper { 280 | width: 80%; 281 | -webkit-transform: translate3d(-100%, 0px, 0px); 282 | transform: translate3d(-100%, 0px, 0px); 283 | } 284 | .sidebar-open + .sidebar-swipe, 285 | .sidebar-force-open .sidebar-open + .sidebar-swipe { 286 | left: 80%; 287 | } 288 | .sidebar-force-open .sidebar-swipe { 289 | left: 0; 290 | } 291 | .sidebar-right .sidebar-toggle { 292 | padding-left: 7px; 293 | } 294 | .sidebar-right .sidebar-wrapper { 295 | -webkit-transform: translate3d(100%, 0px, 0px); 296 | transform: translate3d(100%, 0px, 0px); 297 | } 298 | .sidebar-right .sidebar-open + .sidebar-swipe { 299 | left: auto; 300 | right: 80%; 301 | } 302 | .sidebar-right .sidebar-force-open .sidebar-swipe { 303 | left: auto; 304 | right: 0; 305 | } 306 | } 307 | @media (max-width: 991px) { 308 | .sidebar-force-open .sidebar-wrapper:not(.sidebar-open) + .sidebar-swipe { 309 | left: 0; 310 | } 311 | } 312 | @media (min-width: 992px) { 313 | .sidebar-trigger.sidebar-locked .sidebar-toggle { 314 | display: none; 315 | } 316 | .sidebar-trigger.sidebar-locked .sidebar-wrapper { 317 | margin-top: 51px; 318 | } 319 | .sidebar-wrapper.sidebar-open-init { 320 | -webkit-transform: translate3d(0px, 0px, 0px); 321 | transform: translate3d(0px, 0px, 0px); 322 | } 323 | .sidebar-force-open .sidebar-wrapper.sidebar-open, 324 | .sidebar-force-open.sidebar-right .sidebar-wrapper.sidebar-open, 325 | .sidebar-force-open .sidebar-wrapper.sidebar-dragging, 326 | .sidebar-force-open.sidebar-right .sidebar-wrapper.sidebar-dragging { 327 | -webkit-box-shadow: none; 328 | box-shadow: none; 329 | } 330 | } 331 | .sidebar-wrapper { 332 | -ms-touch-action: none; 333 | } 334 | .sidebar-swipe { 335 | -ms-touch-action: none; 336 | } 337 | -------------------------------------------------------------------------------- /static/css/styles.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | omninotesweb main stylesheet 4 | ============= 5 | 6 | Author: Suraj Patil 7 | Updated: January 13, 2014 8 | Notes: omninotesweb 9 | 10 | */ 11 | 12 | 13 | /*-------------------------------------- 14 | Layout 15 | -------------------------------------- */ 16 | 17 | .commentslist { 18 | background-color: #f5f5f5; 19 | } 20 | 21 | .comment { 22 | padding-left: 25px; 23 | padding-right: 25px; 24 | padding-top: 15px; 25 | } 26 | 27 | ul{ 28 | list-style-type: none; 29 | } 30 | 31 | .timestamp{ 32 | color: #aaa; 33 | } 34 | 35 | .badge{ 36 | background-color: #1a78c9; 37 | margin-right:10px; 38 | float:right; 39 | } 40 | 41 | .center{ 42 | text-align:center; 43 | } 44 | 45 | .navbar-brand:hover{ 46 | color:white; 47 | } 48 | 49 | .footer{ 50 | height:30px; 51 | width:auto; 52 | text-align:center; 53 | 54 | } 55 | textarea { 56 | resize: vertical; 57 | } 58 | 59 | .floating-action-icon{ 60 | position: fixed; 61 | bottom:40px; 62 | right:30px; 63 | z-index:101; 64 | width: 56px; 65 | height: 56px; 66 | font-size: 20px; 67 | border-radius: 35px; 68 | box-shadow:0 0 4px #111; 69 | padding-top:10px !important; 70 | } 71 | 72 | .notification{ 73 | width: -moz-fit-content; 74 | position: fixed; 75 | right: 10px; 76 | max-width: 400px; 77 | padding: 12px; 78 | background-color: #F2FCFF; 79 | box-shadow: 1px 0px 9px 0px rgba(27, 123, 216, 0.4); 80 | border: 1px solid #5596CE; 81 | border-radius: 10px; 82 | border-radius: 10px; 83 | z-index: 1100; 84 | max-height: 90px; 85 | margin-top: 20px; 86 | min-width: 200px; 87 | } 88 | 89 | #btnMessage { 90 | padding: 1px 12px; 91 | height: 30px; 92 | text-align: center; 93 | float: right; 94 | } 95 | 96 | /*-------------------------------------- 97 | Navbar 98 | -------------------------------------- */ 99 | 100 | .mainHeader{ 101 | background-color: #3f51b5; 102 | border-radius:0px; 103 | 104 | } 105 | 106 | .navbar-brand{ 107 | margin-left: 25px; 108 | font-size:1.5em; 109 | color:white; 110 | max-width: 2000px; 111 | } 112 | 113 | .btn-action{ 114 | background-color: #3f51b5; 115 | } 116 | 117 | #icons{ 118 | text-align:right; 119 | float: right; 120 | height: 50%; 121 | line-height: 52px; 122 | float:right; 123 | margin-top: 10px; 124 | } 125 | 126 | nav .glyphicon{ 127 | color:white; 128 | } 129 | 130 | nav .glyphicon:hover{ 131 | color:black; 132 | } 133 | 134 | .sr-only{ 135 | display:block; 136 | width:20px; 137 | height:3px; 138 | background-color: white; 139 | margin-bottom: 4px; 140 | } 141 | 142 | .hidden{ 143 | display:none; 144 | } 145 | 146 | /*-------------------------------------- 147 | NotesFeed 148 | -------------------------------------- */ 149 | .overdue { 150 | color: red; 151 | margin-top: 1px; 152 | font-size: 12px; 153 | padding-top: -100px; 154 | position: absolute; 155 | padding-left: 5px; 156 | } 157 | 158 | .noteHeading { 159 | font-weight:900; 160 | font-size:17px; 161 | color:#666666; 162 | margin-bottom:0px; 163 | padding-bottom:5px; 164 | } 165 | hr{ 166 | margin: 0; 167 | padding: 0; 168 | 169 | } 170 | 171 | .noteHeading a { 172 | font-weight:400; 173 | font-size:11px; 174 | } 175 | 176 | .noteContent { 177 | padding-top: 7px; 178 | font-size: 0.9em; 179 | display: none; 180 | } 181 | 182 | .noteContent img { 183 | width: 90%; 184 | padding-left: 10%; 185 | } 186 | 187 | .toggle{ 188 | cursor: pointer; 189 | margin-top:-30px; 190 | float:right; 191 | } 192 | 193 | .notefooter{ 194 | color:#aaa; 195 | height: 20px; 196 | } 197 | 198 | /* These are the classes that are going to be applied: */ 199 | .column { 200 | float: left; 201 | } 202 | 203 | .note{ 204 | display: block; 205 | margin: 4px; 206 | margin-bottom: 6px; 207 | padding: 15px; 208 | background-color: white; 209 | box-shadow:1px 1px 2px 1px #7D7470; 210 | border-radius:4px 4px 4px 4px; 211 | height: auto; 212 | 213 | } 214 | 215 | .note:hover{ 216 | border-bottom: 2px solid black; 217 | } 218 | .menu a { 219 | text-decoration: none; 220 | } 221 | .menu li{ 222 | margin-top: -10px; 223 | list-style: none; 224 | float: right; 225 | padding: 5px; 226 | height: 15px; 227 | } 228 | 229 | /*-------------------------------------- 230 | Navigation drawer 231 | -------------------------------------- */ 232 | 233 | .list-group-item{ 234 | border:none; 235 | } 236 | 237 | .sidebar-item h5{ 238 | margin-left:15px; 239 | display: block; 240 | } 241 | 242 | .sidebar-item .glyphicon:hover{ 243 | color:black; 244 | } 245 | 246 | 247 | .col-sm-2 a.list-group-item:hover,a.list-group-item:focus{ 248 | text-decoration:none; 249 | background-color: transparent; 250 | 251 | } 252 | 253 | body{ 254 | background-color: #f5f5f5; 255 | overflow-x:hidden; 256 | overflow-y:auto; 257 | margin-top:70px; 258 | } 259 | 260 | .nav-item{ 261 | padding-left: 10px; 262 | } 263 | 264 | .col-sm-2{ 265 | background-color: white; 266 | } 267 | 268 | .badge{ 269 | background-color: #7D8EF0; 270 | margin-right:10px; 271 | float:right; 272 | } 273 | 274 | /* -------------------------------------- 275 | Global Styles 276 | -------------------------------------- */ 277 | body{ 278 | width:100%; 279 | } 280 | 281 | .main-content{ 282 | color:black; 283 | } 284 | 285 | .highlight{ 286 | background-color: #72CBFF; 287 | } 288 | /* -------------------------------------- 289 | Media Queries 290 | -------------------------------------- */ 291 | 292 | /* Portrait & landscape phone */ 293 | @media (max-width: 480px) { 294 | body{ 295 | margin-top:105px; 296 | } 297 | 298 | .timeline { 299 | overflow: hidden; 300 | width: 100%; 301 | } 302 | 303 | #icons{ 304 | text-align:center; 305 | padding:0; 306 | height: 50%; 307 | line-height: 52px; 308 | float:right; 309 | margin-top: 10px; 310 | } 311 | 312 | .mainHeader h3{ 313 | padding:0px; 314 | text-align:center; 315 | } 316 | 317 | 318 | .note-sm{ 319 | height:150px; 320 | } 321 | 322 | .floating-action-icon{ 323 | position: fixed; 324 | bottom:35px; 325 | right:20px; 326 | z-index:101; 327 | width: 50px; 328 | height: 50px; 329 | padding: 10px 10px; 330 | font-size: 24px; 331 | border-radius: 25px; 332 | text-align:center; 333 | } 334 | 335 | .modal-dialog{ 336 | width:240px; 337 | } 338 | } 339 | 340 | 341 | /* Landscape phone to portrait tablet */ 342 | @media (max-width: 768px) and (min-width:481px) { 343 | #icons{ 344 | text-align:center; 345 | padding:0; 346 | height: 50%; 347 | line-height: 52px; 348 | float:right; 349 | margin-top: 10px; 350 | } 351 | 352 | 353 | body{ 354 | margin-top:105px; 355 | } 356 | .timeline { 357 | overflow: hidden; 358 | width: 100%; 359 | } 360 | 361 | 362 | .mainHeader h3{ 363 | padding:0px; 364 | text-align:center; 365 | } 366 | 367 | .note-lg{ 368 | height:360px; 369 | /*change later*/ 370 | } 371 | .modal-dialog{ 372 | width:250px; 373 | } 374 | 375 | } 376 | 377 | 378 | /* Large desktop */ 379 | @media (max-width: 1400px) and (min-width:769px) { 380 | .timeline { 381 | overflow: hidden; 382 | width: 55%; 383 | margin-left:20%; 384 | } 385 | 386 | } 387 | 388 | /*-------------------------------------- 389 | Sidebar 390 | -------------------------------------- */ 391 | .sidebar-toggle{ 392 | left:10px !important; 393 | } 394 | .sidebar-wrapper.sidebar-default.sidebar-open, .sidebar-wrapper.sidebar-default.sidebar-dragging{ 395 | width:260px; 396 | } 397 | 398 | /*Modal dialog*/ 399 | 400 | .modal-footer { 401 | padding: 10px 15px 15px; 402 | margin:0; 403 | border:none; 404 | } 405 | 406 | .modal-body{ 407 | padding: 20px 20px 10px 20px; 408 | } 409 | 410 | .modal{ 411 | overflow: hidden; 412 | } 413 | -------------------------------------------------------------------------------- /static/fonts/glyphiconshalflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thewhitetulip/write-webapps-in-go-video/3965d4d8b50fc4385a57a116351fe44c2c1479ee/static/fonts/glyphiconshalflings-regular.eot -------------------------------------------------------------------------------- /static/fonts/glyphiconshalflings-regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thewhitetulip/write-webapps-in-go-video/3965d4d8b50fc4385a57a116351fe44c2c1479ee/static/fonts/glyphiconshalflings-regular.otf -------------------------------------------------------------------------------- /static/fonts/glyphiconshalflings-regular.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | -------------------------------------------------------------------------------- /static/fonts/glyphiconshalflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thewhitetulip/write-webapps-in-go-video/3965d4d8b50fc4385a57a116351fe44c2c1479ee/static/fonts/glyphiconshalflings-regular.ttf -------------------------------------------------------------------------------- /static/fonts/glyphiconshalflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thewhitetulip/write-webapps-in-go-video/3965d4d8b50fc4385a57a116351fe44c2c1479ee/static/fonts/glyphiconshalflings-regular.woff -------------------------------------------------------------------------------- /static/js/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * bootstrap.js v3.0.0 by @fat and @mdo 3 | * Copyright 2013 Twitter Inc. 4 | * http://www.apache.org/licenses/LICENSE-2.0 5 | */ 6 | if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("webkitTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger("webkitTransitionEnd")};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active"));"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover"},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h]();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .accordion-group > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find("[data-toggle=collapse][data-parent="+i+"]").not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title:empty").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip},b.prototype.destroy=function(){this.hide().$element.off("."+this.type).removeData(this.type)};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery); -------------------------------------------------------------------------------- /static/js/hammer.min.js: -------------------------------------------------------------------------------- 1 | /*! Hammer.JS - v1.1.3 - 2014-05-20 2 | * http://eightmedia.github.io/hammer.js 3 | * 4 | * Copyright (c) 2014 Jorik Tangelder ; 5 | * Licensed under the MIT license */ 6 | 7 | 8 | !function(a,b){"use strict";function c(){d.READY||(s.determineEventTypes(),r.each(d.gestures,function(a){u.register(a)}),s.onTouch(d.DOCUMENT,n,u.detect),s.onTouch(d.DOCUMENT,o,u.detect),d.READY=!0)}var d=function v(a,b){return new v.Instance(a,b||{})};d.VERSION="1.1.3",d.defaults={behavior:{userSelect:"none",touchAction:"pan-y",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},d.DOCUMENT=document,d.HAS_POINTEREVENTS=navigator.pointerEnabled||navigator.msPointerEnabled,d.HAS_TOUCHEVENTS="ontouchstart"in a,d.IS_MOBILE=/mobile|tablet|ip(ad|hone|od)|android|silk/i.test(navigator.userAgent),d.NO_MOUSEEVENTS=d.HAS_TOUCHEVENTS&&d.IS_MOBILE||d.HAS_POINTEREVENTS,d.CALCULATE_INTERVAL=25;var e={},f=d.DIRECTION_DOWN="down",g=d.DIRECTION_LEFT="left",h=d.DIRECTION_UP="up",i=d.DIRECTION_RIGHT="right",j=d.POINTER_MOUSE="mouse",k=d.POINTER_TOUCH="touch",l=d.POINTER_PEN="pen",m=d.EVENT_START="start",n=d.EVENT_MOVE="move",o=d.EVENT_END="end",p=d.EVENT_RELEASE="release",q=d.EVENT_TOUCH="touch";d.READY=!1,d.plugins=d.plugins||{},d.gestures=d.gestures||{};var r=d.utils={extend:function(a,c,d){for(var e in c)!c.hasOwnProperty(e)||a[e]!==b&&d||(a[e]=c[e]);return a},on:function(a,b,c){a.addEventListener(b,c,!1)},off:function(a,b,c){a.removeEventListener(b,c,!1)},each:function(a,c,d){var e,f;if("forEach"in a)a.forEach(c,d);else if(a.length!==b){for(e=0,f=a.length;f>e;e++)if(c.call(d,a[e],e,a)===!1)return}else for(e in a)if(a.hasOwnProperty(e)&&c.call(d,a[e],e,a)===!1)return},inStr:function(a,b){return a.indexOf(b)>-1},inArray:function(a,b){if(a.indexOf){var c=a.indexOf(b);return-1===c?!1:c}for(var d=0,e=a.length;e>d;d++)if(a[d]===b)return d;return!1},toArray:function(a){return Array.prototype.slice.call(a,0)},hasParent:function(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1},getCenter:function(a){var b=[],c=[],d=[],e=[],f=Math.min,g=Math.max;return 1===a.length?{pageX:a[0].pageX,pageY:a[0].pageY,clientX:a[0].clientX,clientY:a[0].clientY}:(r.each(a,function(a){b.push(a.pageX),c.push(a.pageY),d.push(a.clientX),e.push(a.clientY)}),{pageX:(f.apply(Math,b)+g.apply(Math,b))/2,pageY:(f.apply(Math,c)+g.apply(Math,c))/2,clientX:(f.apply(Math,d)+g.apply(Math,d))/2,clientY:(f.apply(Math,e)+g.apply(Math,e))/2})},getVelocity:function(a,b,c){return{x:Math.abs(b/a)||0,y:Math.abs(c/a)||0}},getAngle:function(a,b){var c=b.clientX-a.clientX,d=b.clientY-a.clientY;return 180*Math.atan2(d,c)/Math.PI},getDirection:function(a,b){var c=Math.abs(a.clientX-b.clientX),d=Math.abs(a.clientY-b.clientY);return c>=d?a.clientX-b.clientX>0?g:i:a.clientY-b.clientY>0?h:f},getDistance:function(a,b){var c=b.clientX-a.clientX,d=b.clientY-a.clientY;return Math.sqrt(c*c+d*d)},getScale:function(a,b){return a.length>=2&&b.length>=2?this.getDistance(b[0],b[1])/this.getDistance(a[0],a[1]):1},getRotation:function(a,b){return a.length>=2&&b.length>=2?this.getAngle(b[1],b[0])-this.getAngle(a[1],a[0]):0},isVertical:function(a){return a==h||a==f},setPrefixedCss:function(a,b,c,d){var e=["","Webkit","Moz","O","ms"];b=r.toCamelCase(b);for(var f=0;f0&&this.started&&(g=n),this.started=!0;var j=this.collectEventData(c,g,e,a);return b!=o&&d.call(u,j),h&&(j.changedLength=i,j.eventType=h,d.call(u,j),j.eventType=g,delete j.changedLength),g==o&&(d.call(u,j),this.started=!1),g},determineEventTypes:function(){var b;return b=d.HAS_POINTEREVENTS?a.PointerEvent?["pointerdown","pointermove","pointerup pointercancel lostpointercapture"]:["MSPointerDown","MSPointerMove","MSPointerUp MSPointerCancel MSLostPointerCapture"]:d.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],e[m]=b[0],e[n]=b[1],e[o]=b[2],e},getTouchList:function(a,b){if(d.HAS_POINTEREVENTS)return t.getTouchList();if(a.touches){if(b==n)return a.touches;var c=[],e=[].concat(r.toArray(a.touches),r.toArray(a.changedTouches)),f=[];return r.each(e,function(a){r.inArray(c,a.identifier)===!1&&f.push(a),c.push(a.identifier)}),f}return a.identifier=1,[a]},collectEventData:function(a,b,c,d){var e=k;return r.inStr(d.type,"mouse")||t.matchType(j,d)?e=j:t.matchType(l,d)&&(e=l),{center:r.getCenter(c),timeStamp:Date.now(),target:d.target,touches:c,eventType:b,pointerType:e,srcEvent:d,preventDefault:function(){var a=this.srcEvent;a.preventManipulation&&a.preventManipulation(),a.preventDefault&&a.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return u.stopDetect()}}}},t=d.PointerEvent={pointers:{},getTouchList:function(){var a=[];return r.each(this.pointers,function(b){a.push(b)}),a},updatePointer:function(a,b){a==o||a!=o&&1!==b.buttons?delete this.pointers[b.pointerId]:(b.identifier=b.pointerId,this.pointers[b.pointerId]=b)},matchType:function(a,b){if(!b.pointerType)return!1;var c=b.pointerType,d={};return d[j]=c===(b.MSPOINTER_TYPE_MOUSE||j),d[k]=c===(b.MSPOINTER_TYPE_TOUCH||k),d[l]=c===(b.MSPOINTER_TYPE_PEN||l),d[a]},reset:function(){this.pointers={}}},u=d.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(a,b){this.current||(this.stopped=!1,this.current={inst:a,startEvent:r.extend({},b),lastEvent:!1,lastCalcEvent:!1,futureCalcEvent:!1,lastCalcData:{},name:""},this.detect(b))},detect:function(a){if(this.current&&!this.stopped){a=this.extendEventData(a);var b=this.current.inst,c=b.options;return r.each(this.gestures,function(d){!this.stopped&&b.enabled&&c[d.name]&&d.handler.call(d,a,b)},this),this.current&&(this.current.lastEvent=a),a.eventType==o&&this.stopDetect(),a}},stopDetect:function(){this.previous=r.extend({},this.current),this.current=null,this.stopped=!0},getCalculatedData:function(a,b,c,e,f){var g=this.current,h=!1,i=g.lastCalcEvent,j=g.lastCalcData;i&&a.timeStamp-i.timeStamp>d.CALCULATE_INTERVAL&&(b=i.center,c=a.timeStamp-i.timeStamp,e=a.center.clientX-i.center.clientX,f=a.center.clientY-i.center.clientY,h=!0),(a.eventType==q||a.eventType==p)&&(g.futureCalcEvent=a),(!g.lastCalcEvent||h)&&(j.velocity=r.getVelocity(c,e,f),j.angle=r.getAngle(b,a.center),j.direction=r.getDirection(b,a.center),g.lastCalcEvent=g.futureCalcEvent||a,g.futureCalcEvent=a),a.velocityX=j.velocity.x,a.velocityY=j.velocity.y,a.interimAngle=j.angle,a.interimDirection=j.direction},extendEventData:function(a){var b=this.current,c=b.startEvent,d=b.lastEvent||c;(a.eventType==q||a.eventType==p)&&(c.touches=[],r.each(a.touches,function(a){c.touches.push({clientX:a.clientX,clientY:a.clientY})}));var e=a.timeStamp-c.timeStamp,f=a.center.clientX-c.center.clientX,g=a.center.clientY-c.center.clientY;return this.getCalculatedData(a,d.center,e,f,g),r.extend(a,{startEvent:c,deltaTime:e,deltaX:f,deltaY:g,distance:r.getDistance(c.center,a.center),angle:r.getAngle(c.center,a.center),direction:r.getDirection(c.center,a.center),scale:r.getScale(c.touches,a.touches),rotation:r.getRotation(c.touches,a.touches)}),a},register:function(a){var c=a.defaults||{};return c[a.name]===b&&(c[a.name]=!0),r.extend(d.defaults,c,!0),a.index=a.index||1e3,this.gestures.push(a),this.gestures.sort(function(a,b){return a.indexb.index?1:0}),this.gestures}};d.Instance=function(a,b){var e=this;c(),this.element=a,this.enabled=!0,r.each(b,function(a,c){delete b[c],b[r.toCamelCase(c)]=a}),this.options=r.extend(r.extend({},d.defaults),b||{}),this.options.behavior&&r.toggleBehavior(this.element,this.options.behavior,!0),this.eventStartHandler=s.onTouch(a,m,function(a){e.enabled&&a.eventType==m?u.startDetect(e,a):a.eventType==q&&u.detect(a)}),this.eventHandlers=[]},d.Instance.prototype={on:function(a,b){var c=this;return s.on(c.element,a,b,function(a){c.eventHandlers.push({gesture:a,handler:b})}),c},off:function(a,b){var c=this;return s.off(c.element,a,b,function(a){var d=r.inArray({gesture:a,handler:b});d!==!1&&c.eventHandlers.splice(d,1)}),c},trigger:function(a,b){b||(b={});var c=d.DOCUMENT.createEvent("Event");c.initEvent(a,!0,!0),c.gesture=b;var e=this.element;return r.hasParent(b.target,e)&&(e=b.target),e.dispatchEvent(c),this},enable:function(a){return this.enabled=a,this},dispose:function(){var a,b;for(r.toggleBehavior(this.element,this.options.behavior,!1),a=-1;b=this.eventHandlers[++a];)r.off(this.element,b.gesture,b.handler);return this.eventHandlers=[],s.off(this.element,e[m],this.eventStartHandler),null}},function(a){function b(b,d){var e=u.current;if(!(d.options.dragMaxTouches>0&&b.touches.length>d.options.dragMaxTouches))switch(b.eventType){case m:c=!1;break;case n:if(b.distance0)){var k=Math.abs(d.options.dragMinDistance/b.distance);j.pageX+=b.deltaX*k,j.pageY+=b.deltaY*k,j.clientX+=b.deltaX*k,j.clientY+=b.deltaY*k,b=u.extendEventData(b)}(e.lastEvent.dragLockToAxis||d.options.dragLockToAxis&&d.options.dragLockMinDistance<=b.distance)&&(b.dragLockToAxis=!0);var l=e.lastEvent.direction;b.dragLockToAxis&&l!==b.direction&&(b.direction=r.isVertical(l)?b.deltaY<0?h:f:b.deltaX<0?g:i),c||(d.trigger(a+"start",b),c=!0),d.trigger(a,b),d.trigger(a+b.direction,b);var q=r.isVertical(b.direction);(d.options.dragBlockVertical&&q||d.options.dragBlockHorizontal&&!q)&&b.preventDefault();break;case p:c&&b.changedLength<=d.options.dragMaxTouches&&(d.trigger(a+"end",b),c=!1);break;case o:c=!1}}var c=!1;d.gestures.Drag={name:a,index:50,handler:b,defaults:{dragMinDistance:10,dragDistanceCorrection:!0,dragMaxTouches:1,dragBlockHorizontal:!1,dragBlockVertical:!1,dragLockToAxis:!1,dragLockMinDistance:25}}}("drag"),d.gestures.Gesture={name:"gesture",index:1337,handler:function(a,b){b.trigger(this.name,a)}},function(a){function b(b,d){var e=d.options,f=u.current;switch(b.eventType){case m:clearTimeout(c),f.name=a,c=setTimeout(function(){f&&f.name==a&&d.trigger(a,b)},e.holdTimeout);break;case n:b.distance>e.holdThreshold&&clearTimeout(c);break;case p:clearTimeout(c)}}var c;d.gestures.Hold={name:a,index:10,defaults:{holdTimeout:500,holdThreshold:2},handler:b}}("hold"),d.gestures.Release={name:"release",index:1/0,handler:function(a,b){a.eventType==p&&b.trigger(this.name,a)}},d.gestures.Swipe={name:"swipe",index:40,defaults:{swipeMinTouches:1,swipeMaxTouches:1,swipeVelocityX:.6,swipeVelocityY:.6},handler:function(a,b){if(a.eventType==p){var c=a.touches.length,d=b.options;if(cd.swipeMaxTouches)return;(a.velocityX>d.swipeVelocityX||a.velocityY>d.swipeVelocityY)&&(b.trigger(this.name,a),b.trigger(this.name+a.direction,a))}}},function(a){function b(b,d){var e,f,g=d.options,h=u.current,i=u.previous;switch(b.eventType){case m:c=!1;break;case n:c=c||b.distance>g.tapMaxDistance;break;case o:!r.inStr(b.srcEvent.type,"cancel")&&b.deltaTimed.options.transformMinRotation&&d.trigger("rotate",b),e>d.options.transformMinScale&&(d.trigger("pinch",b),d.trigger("pinch"+(b.scale<1?"in":"out"),b));break;case p:c&&b.changedLength<2&&(d.trigger(a+"end",b),c=!1)}}var c=!1;d.gestures.Transform={name:a,index:45,defaults:{transformMinScale:.01,transformMinRotation:1},handler:b}}("transform"),"function"==typeof define&&define.amd?define(function(){return d}):"undefined"!=typeof module&&module.exports?module.exports=d:a.Hammer=d}(window); 9 | //# sourceMappingURL=hammer.min.map -------------------------------------------------------------------------------- /static/js/modernizr-2.6.2.min.js: -------------------------------------------------------------------------------- 1 | /* Modernizr 2.6.2 (Custom Build) | MIT & BSD 2 | * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load 3 | */ 4 | ;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;ft;t++){var r=a[t].mql,i=a[t].listeners||[],o=e(r.media).matches;if(o!==r.matches){r.matches=o;for(var c=0,l=i.length;l>c;c++)i[c].call(window,r)}}},30)};window.matchMedia=function(r){var o=e(r),c=[],l=0;return o.addListener=function(e){t&&(n||(n=!0,window.addEventListener("resize",i,!0)),0===l&&(l=a.push({mql:o,listeners:c})),c.push(e))},o.removeListener=function(e){for(var t=0,n=c.length;n>t;t++)c[t]===e&&c.splice(t,1)},o}}(),function(){"use strict";for(var e=0,t=["ms","moz","webkit","o"],n=0;n *:nth-child("+c+"n-"+d+")",s.push(r.querySelectorAll(a));s.forEach(function(e){var n=t.createElement("div"),r=t.createDocumentFragment();n.className=l.join(" "),Array.prototype.forEach.call(e,function(e){r.appendChild(e)}),n.appendChild(r),u.appendChild(n)}),e.appendChild(u),o(e,"columns",c)},n.removeColumns=function(n){var r=t.createRange();r.selectNodeContents(n);var a=Array.prototype.filter.call(r.extractContents().childNodes,function(t){return t instanceof e.HTMLElement}),i=a.length,c=a[0].childNodes.length,l=new Array(c*i);Array.prototype.forEach.call(a,function(e,t){Array.prototype.forEach.call(e.children,function(e,n){l[n*i+t]=e})});var s=t.createElement("div");return o(s,"columns",0),l.filter(function(e){return!!e}).forEach(function(e){s.appendChild(e)}),s},n.recreateColumns=function(t){e.requestAnimationFrame(function(){n.addColumns(t,n.removeColumns(t));var e=new CustomEvent("columnsChange");t.dispatchEvent(e)})},n.mediaQueryChange=function(e){e.matches&&Array.prototype.forEach.call(r,n.recreateColumns)},n.getCSSRules=function(e){var t;try{t=e.sheet.cssRules||e.sheet.rules}catch(n){return[]}return t||[]},n.getStylesheets=function(){return Array.prototype.concat.call(Array.prototype.slice.call(t.querySelectorAll("style[type='text/css']")),Array.prototype.slice.call(t.querySelectorAll("link[rel='stylesheet']")))},n.mediaRuleHasColumnsSelector=function(e){var t,n;try{t=e.length}catch(r){t=0}for(;t--;)if(n=e[t],n.selectorText&&n.selectorText.match(/\[data-columns\](.*)::?before$/))return!0;return!1},n.scanMediaQueries=function(){var t=[];if(e.matchMedia){n.getStylesheets().forEach(function(e){Array.prototype.forEach.call(n.getCSSRules(e),function(e){e.media&&e.cssRules&&n.mediaRuleHasColumnsSelector(e.cssRules)&&t.push(e)})});var r=a.filter(function(e){return-1===t.indexOf(e)});i.filter(function(e){return-1!==r.indexOf(e.rule)}).forEach(function(e){e.mql.removeListener(n.mediaQueryChange)}),i=i.filter(function(e){return-1===r.indexOf(e.rule)}),t.filter(function(e){return-1==a.indexOf(e)}).forEach(function(t){var r=e.matchMedia(t.media.mediaText);r.addListener(n.mediaQueryChange),i.push({rule:t,mql:r})}),a.length=0,a=t}},n.rescanMediaQueries=function(){n.scanMediaQueries(),Array.prototype.forEach.call(r,n.recreateColumns)},n.nextElementColumnIndex=function(e,t){var n,r,a,i=e.children,o=i.length,c=0,l=0;for(a=0;o>a;a++)n=i[a],r=n.children.length+(t[a].children||t[a].childNodes).length,0===c&&(c=r),c>r&&(l=a,c=r);return l},n.createFragmentsList=function(e){for(var n=new Array(e),r=0;r!==e;)n[r]=t.createDocumentFragment(),r++;return n},n.appendElements=function(e,t){var r=e.children,a=r.length,i=n.createFragmentsList(a);Array.prototype.forEach.call(t,function(t){var r=n.nextElementColumnIndex(e,i);i[r].appendChild(t)}),Array.prototype.forEach.call(r,function(e,t){e.appendChild(i[t])})},n.prependElements=function(e,r){var a=e.children,i=a.length,o=n.createFragmentsList(i),c=i-1;r.forEach(function(e){var t=o[c];t.insertBefore(e,t.firstChild),0===c?c=i-1:c--}),Array.prototype.forEach.call(a,function(e,t){e.insertBefore(o[t],e.firstChild)});for(var l=t.createDocumentFragment(),s=r.length%i;0!==s--;)l.appendChild(e.lastChild);e.insertBefore(l,e.firstChild)},n.registerGrid=function(a){if("none"!==e.getComputedStyle(a).display){var i=t.createRange();i.selectNodeContents(a);var c=t.createElement("div");c.appendChild(i.extractContents()),o(c,"columns",0),n.addColumns(a,c),r.push(a)}},n.init=function(){var e=t.createElement("style");e.innerHTML="[data-columns]::before{visibility:hidden;position:absolute;font-size:1px;}",t.head.appendChild(e);var r=t.querySelectorAll("[data-columns]");Array.prototype.forEach.call(r,n.registerGrid),n.scanMediaQueries()},n.init(),{appendElements:n.appendElements,prependElements:n.prependElements,registerGrid:n.registerGrid,recreateColumns:n.recreateColumns,rescanMediaQueries:n.rescanMediaQueries,append_elements:n.appendElements,prepend_elements:n.prependElements,register_grid:n.registerGrid,recreate_columns:n.recreateColumns,rescan_media_queries:n.rescanMediaQueries}}(window,window.document);return e}); -------------------------------------------------------------------------------- /static/js/script.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | This is a javascript file for omninotesweb 4 | ============ 5 | 6 | Author: Suraj patil 7 | Updated: January 2015 8 | keyCode: n-110 9 | */ 10 | 11 | $(document).ready(function(){ 12 | 13 | /*on() is used instead of click because click can be used only on static elements, and on() is to be used when you add 14 | elements dynamically*/ 15 | $('[data-toggle="tooltip"]').tooltip(); 16 | // 17 | // $('.items').openOnHover(function(){ 18 | // alert(); 19 | // }); 20 | 21 | $('.floating-action-icon-add').click(function(){ 22 | $('#addNoteModal').modal('show'); 23 | }); 24 | 25 | $('#editCatFrmBtn').click(function(){ 26 | $('#EditForm').toggleClass('hidden') 27 | }); 28 | 29 | $('#searchFormBtn').click(function(){ 30 | $('#SearchForm').toggleClass('hidden') 31 | }); 32 | 33 | $('#toggleAddFileGrp').click(function(){ 34 | $('#file-group').toggleClass('hidden'); 35 | $('#toggleAddFileGrp').addClass('hidden') ; 36 | }); 37 | 38 | $("#noti").click( 39 | function(){ 40 | this.fadeOut(); 41 | } 42 | ); 43 | if ($('#actlMsg').html()==''){ 44 | $('.notification').addClass('hidden'); 45 | } else { 46 | $('.notification').fadeOut(9000); 47 | } 48 | $('.btnMessage').click(function(){$('.notification').fadeOut()}) 49 | 50 | /*$( document ).keypress( 51 | function(event){ 52 | if ( event.which == 110 ) { //bind the 'n' key to add note 53 | $('#addNoteModal').modal('show'); 54 | } 55 | 56 | if (event.which==109 ) { //binds the 'm' key to show the navigation drawer 57 | $('.sidebar-toggle').click(); 58 | } 59 | } 60 | );*/ 61 | 62 | $("#addNoteBtn").on("click", function() { 63 | this.preventDefaults(); 64 | var task_id = $("#task-id").val(); 65 | $.ajax({ 66 | url: "/tasks/" + task_id, 67 | type: "POST", 68 | data: {'title':'randome note', 'content':'this and that'} 69 | }).done(function(res, status) { 70 | console.log(status, res); 71 | var response = res 72 | $("#timeline").append(response) 73 | }); 74 | }); 75 | 76 | 77 | $('.toggle').click(function(){ 78 | $(this).next().toggle(); 79 | }); 80 | }); 81 | -------------------------------------------------------------------------------- /static/js/sidebar.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the Sonatra package. 3 | * 4 | * (c) François Pluchino 5 | * 6 | * For the full copyright and license information, please view the LICENSE 7 | * file that was distributed with this source code. 8 | */ 9 | 10 | /*global jQuery*/ 11 | /*global window*/ 12 | /*global navigator*/ 13 | /*global document*/ 14 | /*global CSSMatrix*/ 15 | /*global WebKitCSSMatrix*/ 16 | /*global MSCSSMatrix*/ 17 | /*global Hammer*/ 18 | /*global Sidebar*/ 19 | 20 | /** 21 | * @param {jQuery} $ 22 | * 23 | * @typedef {Sidebar} Sidebar 24 | */ 25 | (function ($) { 26 | 'use strict'; 27 | 28 | /** 29 | * Check if is a mobile device. 30 | * 31 | * @returns {boolean} 32 | * 33 | * @private 34 | */ 35 | function mobileCheck() { 36 | return Boolean(navigator.userAgent.match(/Android|iPhone|iPad|iPod|IEMobile|BlackBerry|Opera Mini/i)); 37 | } 38 | 39 | /** 40 | * Binding actions of keyboard. 41 | * 42 | * @param {jQuery.Event|Event} event 43 | * 44 | * @typedef {Sidebar} Event.data The sidebar instance 45 | * 46 | * @private 47 | */ 48 | function keyboardAction(event) { 49 | if (!event instanceof jQuery.Event || event.data.options.disabledKeyboard) { 50 | return; 51 | } 52 | 53 | var self = event.data, 54 | kbe = self.options.keyboardEvent; 55 | 56 | if (event.shiftKey === kbe.shiftKey 57 | && event.ctrlKey === kbe.ctrlKey 58 | && event.altKey === kbe.altKey 59 | && event.keyCode === kbe.keyCode) { 60 | self.toggle(event); 61 | } 62 | } 63 | 64 | /** 65 | * Checks if the window width is wider than the minimum width defined in 66 | * options. 67 | * 68 | * @param {Sidebar} self The sidebar instance 69 | * 70 | * @returns {boolean} 71 | * 72 | * @private 73 | */ 74 | function isOverMinWidth(self) { 75 | var scrollbarWidth = 'scrollbarWidth', 76 | isOver = false, 77 | $window = $(window), 78 | windowWidth = $window.innerWidth(), 79 | widthNoScroll, 80 | inner, 81 | outer; 82 | 83 | if ($('body').height() > $window.innerHeight()) { 84 | if (null === self.scrollbarWidth) { 85 | inner = document.createElement('div'); 86 | outer = document.createElement('div'); 87 | outer.style.visibility = 'hidden'; 88 | outer.style.width = '100px'; 89 | 90 | document.body.appendChild(outer); 91 | 92 | widthNoScroll = outer.offsetWidth; 93 | outer.style.overflow = 'scroll'; 94 | inner.style.width = '100%'; 95 | outer.appendChild(inner); 96 | 97 | self[scrollbarWidth] = widthNoScroll - inner.offsetWidth; 98 | 99 | outer.parentNode.removeChild(outer); 100 | } 101 | 102 | windowWidth += self[scrollbarWidth]; 103 | } 104 | 105 | if (windowWidth >= self.options.minLockWidth) { 106 | isOver = true; 107 | } 108 | 109 | return isOver; 110 | } 111 | 112 | /** 113 | * Close the sidebar since external action. 114 | * 115 | * @param {Event} event The event 116 | * 117 | * @typedef {Sidebar} Event.data The sidebar instance 118 | * 119 | * @private 120 | */ 121 | function closeExternal(event) { 122 | var self = event.data, 123 | $target = $(event.currentTarget.activeElement); 124 | 125 | if ((self.isLocked() && isOverMinWidth(self)) || $(event.target).parents('.' + self.options.classWrapper).size() > 0 || $target.parents('.' + self.options.classWrapper).size() > 0 || $target.hasClass('sidebar-swipe')) { 126 | return; 127 | } 128 | 129 | event.stopPropagation(); 130 | event.preventDefault(); 131 | 132 | if (isOverMinWidth(self)) { 133 | self.close(); 134 | 135 | } else { 136 | self.forceClose(); 137 | } 138 | } 139 | 140 | /** 141 | * Close the sidebar or reopen the locked sidebar on window resize event. 142 | * 143 | * @param {Event} event The event 144 | * 145 | * @typedef {Sidebar} Event.data The sidebar instance 146 | * 147 | * @private 148 | */ 149 | function onResizeWindow(event) { 150 | var self = event.data; 151 | 152 | if (isOverMinWidth(self) && self.isLocked()) { 153 | self.forceOpen(); 154 | 155 | return; 156 | } 157 | 158 | closeExternal(event); 159 | } 160 | 161 | /** 162 | * Get the sidebar wrapper position. 163 | * 164 | * @param {jQuery} $target 165 | * 166 | * @returns {number} The Y axis position 167 | * 168 | * @private 169 | */ 170 | function getWrapperPosition($target) { 171 | var transformCss = $target.css('transform'), 172 | transform = {e: 0, f: 0}, 173 | reMatrix, 174 | match; 175 | 176 | if (transformCss) { 177 | if ('function' === typeof CSSMatrix) { 178 | transform = new CSSMatrix(transformCss); 179 | 180 | } else if ('function' === typeof WebKitCSSMatrix) { 181 | transform = new WebKitCSSMatrix(transformCss); 182 | 183 | } else if ('function' === typeof MSCSSMatrix) { 184 | transform = new MSCSSMatrix(transformCss); 185 | 186 | } else { 187 | reMatrix = /matrix\(\s*-?\d+(?:\.\d+)?\s*,\s*-?\d+(?:\.\d+)?\s*,\s*-?\d+(?:\.\d+)?\s*,\s*-?\d+(?:\.\d+)?\s*,\s*(-?\d+(?:\.\d+)?)\s*,\s*(-?\d+(?:\.\d+)?)\s*\)/; 188 | match = transformCss.match(reMatrix); 189 | 190 | if (match) { 191 | transform.e = parseInt(match[1], 10); 192 | transform.f = parseInt(match[2], 10); 193 | } 194 | } 195 | } 196 | 197 | return transform.e; 198 | } 199 | 200 | /** 201 | * Cleans the hammer configuration on the wrapper element. 202 | * 203 | * @param {Sidebar} self The sidebar instance 204 | * 205 | * @private 206 | */ 207 | function cleanHammer(self) { 208 | self.$wrapper.removeData('drap-start-position'); 209 | self.$wrapper.css('-webkit-transition', ''); 210 | self.$wrapper.css('transition', ''); 211 | self.$wrapper.css('-webkit-transform', ''); 212 | self.$wrapper.css('transform', ''); 213 | self.$wrapper.removeClass(self.options.classOnDragging); 214 | delete self.dragStartPosition; 215 | } 216 | 217 | /** 218 | * Action of "on drag" hammer event. 219 | * 220 | * @param {Sidebar} self The sidebar instance 221 | * @param {Event} event The hammer event 222 | * 223 | * @private 224 | */ 225 | function onDrag(self, event) { 226 | var dragStartPosition = 'dragStartPosition', 227 | horizontal; 228 | 229 | if (undefined !== self.hammerScroll) { 230 | self.hammerScroll.onDrag(event); 231 | } 232 | 233 | if ((Hammer.DIRECTION_LEFT !== event.gesture.direction && Hammer.DIRECTION_RIGHT !== event.gesture.direction) 234 | || (self.options.locked && isOverMinWidth(self))) { 235 | return; 236 | } 237 | 238 | if (undefined === self.dragStartPosition) { 239 | self[dragStartPosition] = getWrapperPosition(self.$wrapper); 240 | } 241 | 242 | horizontal = Math.round(self.dragStartPosition + event.gesture.deltaX); 243 | 244 | if ((Sidebar.POSITION_LEFT === self.getPosition() && horizontal > 0) || (Sidebar.POSITION_RIGHT === self.getPosition() && horizontal < 0)) { 245 | horizontal = 0; 246 | } 247 | 248 | self.$wrapper.addClass(self.options.classOnDragging); 249 | self.$wrapper.css('-webkit-transition', 'none'); 250 | self.$wrapper.css('transition', 'none'); 251 | self.$wrapper.css('-webkit-transform', 'translate3d(' + horizontal + 'px, 0px, 0px)'); 252 | self.$wrapper.css('transform', 'translate3d(' + horizontal + 'px, 0px, 0px)'); 253 | } 254 | 255 | /** 256 | * Action of "on drag end" hammer event. 257 | * 258 | * @param {Sidebar} self The sidebar instance 259 | * @param {Event} event The hammer event 260 | * 261 | * @private 262 | */ 263 | function onDragEnd(self, event) { 264 | var closeGesture = Sidebar.POSITION_LEFT, 265 | openGesture = Sidebar.POSITION_RIGHT; 266 | 267 | if (undefined !== self.hammerScroll) { 268 | self.hammerScroll.onDragEnd(event); 269 | } 270 | 271 | cleanHammer(self); 272 | 273 | if (Math.abs(event.gesture.deltaX) <= (self.$wrapper.innerWidth() / 4)) { 274 | return; 275 | } 276 | 277 | if (Sidebar.POSITION_RIGHT === self.getPosition()) { 278 | closeGesture = Sidebar.POSITION_RIGHT; 279 | openGesture = Sidebar.POSITION_LEFT; 280 | } 281 | 282 | if (self.isOpen() && closeGesture === event.gesture.direction) { 283 | self.forceClose(); 284 | 285 | } else if (openGesture === event.gesture.direction) { 286 | if (self.isOpen() && isOverMinWidth(self) && $.inArray(self.options.forceToggle, [true, 'always']) >= 0) { 287 | self.forceOpen(); 288 | 289 | } else if (isOverMinWidth(self) && 'always' === self.options.forceToggle) { 290 | self.forceOpen(); 291 | 292 | } else { 293 | self.open(); 294 | } 295 | } 296 | } 297 | 298 | /** 299 | * Init the hammer instance. 300 | * 301 | * @param {Sidebar} self The sidebar instance 302 | * 303 | * @private 304 | */ 305 | function initHammer(self) { 306 | if (!Hammer) { 307 | return; 308 | } 309 | 310 | var swipe = '$swipe', 311 | hammer = 'hammer', 312 | hammerScroll = 'hammerScroll'; 313 | 314 | if ($.fn.hammerScroll) { 315 | self[hammerScroll] = $('.sidebar-scroller', self.$wrapper).hammerScroll({ 316 | contentWrapperClass: 'sidebar-scroller-content', 317 | eventDelegated: true, 318 | hammerStickyHeader: self.options.sidebarStickyHeader, 319 | scrollbar: self.options.hammerScrollbar, 320 | scrollbarInverse: Sidebar.POSITION_RIGHT === self.options.position 321 | }).data('st.hammerscroll'); 322 | } 323 | 324 | self[swipe] = $('').appendTo(self.$element); 325 | self[swipe].on('mouseover', function (event) { 326 | event.stopPropagation(); 327 | event.preventDefault(); 328 | }); 329 | 330 | self[hammer] = new Hammer(self.$element[0], { 331 | tap: false, 332 | transform: false, 333 | release: false, 334 | hold: false, 335 | swipe: false, 336 | drag_block_horizontal: true, 337 | drag_block_vertical: $.fn.hammerScroll, 338 | drag_lock_to_axis: false, 339 | drag_min_distance: 5 340 | }) 341 | 342 | .on('drag', function (event) { 343 | onDrag(self, event); 344 | }) 345 | .on('dragend', function (event) { 346 | onDragEnd(self, event); 347 | }); 348 | } 349 | 350 | /** 351 | * Destroy the hammer configuration. 352 | * 353 | * @param {Sidebar} self The sidebar instance 354 | * 355 | * @private 356 | */ 357 | function destroyHammer(self) { 358 | if (!Hammer) { 359 | return; 360 | } 361 | 362 | self.$swipe.off('mouseover'); 363 | self.$element.remove(self.$swipe); 364 | } 365 | 366 | // SIDEBAR CLASS DEFINITION 367 | // ======================== 368 | 369 | /** 370 | * @constructor 371 | * 372 | * @param {string|elements|object|jQuery} element 373 | * @param {object} options 374 | * 375 | * @this Sidebar 376 | */ 377 | var Sidebar = function (element, options) { 378 | this.guid = jQuery.guid; 379 | this.options = $.extend({}, Sidebar.DEFAULTS, options); 380 | this.$element = $(element); 381 | this.$toggle = $('.' + this.options.classToggle, this.$element); 382 | this.$wrapper = $('.' + this.options.classWrapper, this.$element); 383 | this.eventType = mobileCheck() ? 'touchstart' : 'click'; 384 | this.scrollbarWidth = null; 385 | this.hammer = undefined; 386 | this.hammerScroll = undefined; 387 | this.$swipe = undefined; 388 | this.$element.attr('data-sidebar', 'true'); 389 | 390 | var $findToggle; 391 | 392 | if (Sidebar.POSITION_RIGHT !== this.options.position) { 393 | this.options.position = Sidebar.POSITION_LEFT; 394 | 395 | } else { 396 | this.$element.addClass('sidebar-right'); 397 | } 398 | 399 | if (this.$element.hasClass('sidebar-right')) { 400 | this.options.position = Sidebar.POSITION_RIGHT; 401 | } 402 | 403 | if (this.options.locked) { 404 | this.options.forceToggle = 'always'; 405 | this.$element.css('-webkit-transition', 'none'); 406 | this.$element.css('transition', 'none'); 407 | this.$wrapper.css('-webkit-transition', 'none'); 408 | this.$wrapper.css('transition', 'none'); 409 | this.$element.addClass(this.options.classLocked); 410 | this.$element.addClass(this.options.classForceOpen); 411 | this.$wrapper.addClass(this.options.classOpen + '-init'); 412 | } 413 | 414 | if (!mobileCheck() && this.options.openOnHover && null === this.options.toggleId) { 415 | this.$element.on('mouseover.st.sidebar' + this.guid, $.proxy(Sidebar.prototype.open, this)); 416 | this.$element.on('mouseout.st.sidebar' + this.guid, $.proxy(Sidebar.prototype.close, this)); 417 | } 418 | 419 | if (null !== this.options.toggleId) { 420 | $findToggle = $('#' + this.options.toggleId); 421 | 422 | if (1 === $findToggle.size()) { 423 | this.$toggle.remove(); 424 | this.$toggle = $findToggle; 425 | } 426 | 427 | } else { 428 | this.$element.addClass('sidebar-togglable'); 429 | } 430 | 431 | this.$toggle.on(this.eventType + '.st.sidebar' + this.guid, null, this, Sidebar.prototype.toggle); 432 | $(window).on('keyup.st.sidebar' + this.guid, null, this, keyboardAction); 433 | $(window).on('resize.st.sidebar' + this.guid, null, this, onResizeWindow); 434 | 435 | if (this.$wrapper.hasClass(this.options.classOpen + '-init')) { 436 | if (isOverMinWidth(this)) { 437 | this.$wrapper.addClass(this.options.classOpen); 438 | 439 | } else { 440 | this.$wrapper.removeClass(this.options.classOpen); 441 | } 442 | 443 | this.$wrapper.removeClass(this.options.classOpen + '-init'); 444 | } 445 | 446 | if (this.$wrapper.hasClass(this.options.classOpen)) { 447 | $(document).on(this.eventType + '.st.sidebar' + this.guid, null, this, closeExternal); 448 | } 449 | 450 | if (this.options.sidebarStickyHeader && $.fn.stickyHeader && !$.fn.hammerScroll) { 451 | this.stickyHeader = $('.sidebar-scroller', this.$wrapper).stickyHeader().data('st.stickyheader'); 452 | } 453 | 454 | initHammer(this); 455 | 456 | this.$element.css('-webkit-transition', ''); 457 | this.$element.css('transition', ''); 458 | this.$wrapper.css('-webkit-transition', ''); 459 | this.$wrapper.css('transition', ''); 460 | this.$wrapper.addClass('sidebar-ready'); 461 | }, 462 | old; 463 | 464 | /** 465 | * Defaults options. 466 | * 467 | * @type {object} 468 | */ 469 | Sidebar.DEFAULTS = { 470 | classToggle: 'sidebar-toggle', 471 | classWrapper: 'sidebar-wrapper', 472 | classOpen: 'sidebar-open', 473 | classLocked: 'sidebar-locked', 474 | classForceOpen: 'sidebar-force-open', 475 | classOnDragging: 'sidebar-dragging', 476 | openOnHover: false, 477 | forceToggle: false,//false, true, 'always' 478 | locked: false, 479 | position: Sidebar.POSITION_LEFT,//left, right 480 | minLockWidth: 992, 481 | toggleId: null, 482 | sidebarStickyHeader: false, 483 | hammerScrollbar: true, 484 | disabledKeyboard: false, 485 | keyboardEvent: { 486 | ctrlKey: true, 487 | shiftKey: false, 488 | altKey: true, 489 | keyCode: 'S'.charCodeAt(0) 490 | } 491 | }; 492 | 493 | /** 494 | * Left position. 495 | * 496 | * @type {string} 497 | */ 498 | Sidebar.POSITION_LEFT = 'left'; 499 | 500 | /** 501 | * Right position. 502 | * 503 | * @type {string} 504 | */ 505 | Sidebar.POSITION_RIGHT = 'right'; 506 | 507 | /** 508 | * Get sidebar position. 509 | * 510 | * @returns {string} The position (left or right) 511 | * 512 | * @this Sidebar 513 | */ 514 | Sidebar.prototype.getPosition = function () { 515 | return this.options.position; 516 | }; 517 | 518 | /** 519 | * Checks if sidebar is locked (always open). 520 | * 521 | * @returns {boolean} 522 | * 523 | * @this Sidebar 524 | */ 525 | Sidebar.prototype.isLocked = function () { 526 | return this.options.locked; 527 | }; 528 | 529 | /** 530 | * Checks if sidebar is locked (always open). 531 | * 532 | * @returns {boolean} 533 | * 534 | * @this Sidebar 535 | */ 536 | Sidebar.prototype.isOpen = function () { 537 | return this.$wrapper.hasClass(this.options.classOpen); 538 | }; 539 | 540 | /** 541 | * Checks if sidebar is fully opened. 542 | * 543 | * @return {boolean} 544 | * 545 | * @this Sidebar 546 | */ 547 | Sidebar.prototype.isFullyOpened = function () { 548 | return this.$element.hasClass(this.options.classForceOpen); 549 | }; 550 | 551 | /** 552 | * Force open the sidebar. 553 | * 554 | * @this Sidebar 555 | */ 556 | Sidebar.prototype.forceOpen = function () { 557 | if (this.isOpen() && this.isFullyOpened()) { 558 | return; 559 | } 560 | 561 | this.$element.addClass(this.options.classForceOpen); 562 | this.open(); 563 | this.$toggle.removeClass(this.options.classToggle + '-opened'); 564 | }; 565 | 566 | /** 567 | * Force close the sidebar. 568 | * 569 | * @this Sidebar 570 | */ 571 | Sidebar.prototype.forceClose = function () { 572 | if (!this.isOpen() || (this.isLocked() && isOverMinWidth(this))) { 573 | return; 574 | } 575 | 576 | this.$element.removeClass(this.options.classForceOpen); 577 | this.close(); 578 | }; 579 | 580 | /** 581 | * Open the sidebar. 582 | * 583 | * @this Sidebar 584 | */ 585 | Sidebar.prototype.open = function () { 586 | if (this.isOpen()) { 587 | return; 588 | } 589 | 590 | $('[data-sidebar=true]').sidebar('forceClose'); 591 | this.$wrapper.addClass(this.options.classOpen); 592 | this.$toggle.addClass(this.options.classToggle + '-opened'); 593 | $(document).on(this.eventType + '.st.sidebar' + this.guid, null, this, closeExternal); 594 | }; 595 | 596 | /** 597 | * Close open the sidebar. 598 | * 599 | * @this Sidebar 600 | */ 601 | Sidebar.prototype.close = function () { 602 | if (!this.isOpen() || (this.isFullyOpened() && isOverMinWidth(this))) { 603 | return; 604 | } 605 | 606 | this.$wrapper.removeClass(this.options.classOpen); 607 | this.$toggle.removeClass(this.options.classToggle + '-opened'); 608 | $(document).off(this.eventType + '.st.sidebar' + this.guid, closeExternal); 609 | }; 610 | 611 | /** 612 | * Toggle the sidebar ("close, "open", "force open"). 613 | * 614 | * @param {jQuery.Event|Event} [event] 615 | * 616 | * @typedef {Sidebar} Event.data The sidebar instance 617 | * 618 | * @this Sidebar 619 | */ 620 | Sidebar.prototype.toggle = function (event) { 621 | var self = (undefined !== event) ? event.data : this, 622 | $target, 623 | $parents; 624 | 625 | if (event) { 626 | $target = $(event.target); 627 | $parents = $target.parents('.' + self.options.classWrapper); 628 | event.stopPropagation(); 629 | 630 | if ($target.hasClass(self.options.classToggle) || $target.parents('.' + self.options.classToggle).size() > 0) { 631 | event.preventDefault(); 632 | } 633 | 634 | if ($parents.size() > 0 || $target.hasClass('sidebar-swipe')) { 635 | return; 636 | } 637 | } 638 | 639 | if (self.isOpen()) { 640 | if (self.isFullyOpened()) { 641 | self.forceClose(); 642 | 643 | } else if (isOverMinWidth(self) && $.inArray(self.options.forceToggle, [true, 'always']) >= 0) { 644 | self.forceOpen(); 645 | 646 | } else { 647 | self.close(); 648 | } 649 | 650 | } else if (isOverMinWidth(self) && 'always' === self.options.forceToggle) { 651 | self.forceOpen(); 652 | 653 | } else { 654 | self.open(); 655 | } 656 | }; 657 | 658 | /** 659 | * Destroy instance. 660 | * 661 | * @this Sidebar 662 | */ 663 | Sidebar.prototype.destroy = function () { 664 | if (!mobileCheck()) { 665 | this.$element.off('mouseover.st.sidebar' + this.guid, $.proxy(Sidebar.prototype.open, this)); 666 | this.$element.off('mouseout.st.sidebar' + this.guid, $.proxy(Sidebar.prototype.close, this)); 667 | } 668 | 669 | $(document).off(this.eventType + '.st.sidebar' + this.guid, closeExternal); 670 | $(window).off('resize.st.sidebar' + this.guid, onResizeWindow); 671 | this.$toggle.off(this.eventType + '.st.sidebar' + this.guid, Sidebar.prototype.toggle); 672 | $(window).off('keyup.st.sidebar' + this.guid, keyboardAction); 673 | destroyHammer(this); 674 | 675 | if (undefined !== this.stickyHeader) { 676 | this.stickyHeader.destroy(); 677 | } 678 | 679 | this.$element.removeData('st.sidebar'); 680 | }; 681 | 682 | 683 | // SIDEBAR PLUGIN DEFINITION 684 | // ========================= 685 | 686 | function Plugin(option, value) { 687 | return this.each(function () { 688 | var $this = $(this), 689 | data = $this.data('st.sidebar'), 690 | options = typeof option === 'object' && option; 691 | 692 | if (!data && option === 'destroy') { 693 | return; 694 | } 695 | 696 | if (!data) { 697 | $this.data('st.sidebar', (data = new Sidebar(this, options))); 698 | } 699 | 700 | if (typeof option === 'string') { 701 | data[option](value); 702 | } 703 | }); 704 | } 705 | 706 | old = $.fn.sidebar; 707 | 708 | $.fn.sidebar = Plugin; 709 | $.fn.sidebar.Constructor = Sidebar; 710 | 711 | 712 | // SIDEBAR NO CONFLICT 713 | // =================== 714 | 715 | $.fn.sidebar.noConflict = function () { 716 | $.fn.sidebar = old; 717 | 718 | return this; 719 | }; 720 | 721 | 722 | // SIDEBAR DATA-API 723 | // ================ 724 | 725 | $(window).on('load', function () { 726 | $('[data-sidebar="true"]').each(function () { 727 | var $this = $(this); 728 | Plugin.call($this, $this.data()); 729 | }); 730 | }); 731 | 732 | }(jQuery)); 733 | -------------------------------------------------------------------------------- /tasks.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Tasks 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 74 | 75 | 134 | 135 | 136 | 137 | 138 | 184 | 185 |
186 |
187 |

Title of Task 188 |

189 | 190 | 191 | Content 192 |
193 |
194 | tsample comment 195 | suraj 26 April 196 | 197 |
198 | 199 | 200 |
201 |
202 | 203 | 204 | 205 |
206 |
207 |
208 |
209 | 210 | 211 | 231 | 232 |
233 | 234 |
235 |

One task 236 |

237 | 238 | 239 | This is a task 240 | 1 out of 3 is completed 241 |
242 | 243 |
244 | tsample comment 245 | suraj 26 April 246 | 247 |
248 | 249 | 250 |
251 |
252 | 253 | 254 | 255 |
256 |
257 |
258 |
259 | 260 | 261 | 281 | 282 |
283 | 284 | 293 |
294 | 297 | 298 | 299 | 300 | 301 | --------------------------------------------------------------------------------