├── .gitignore ├── Readme.md ├── css ├── framework7 │ ├── framework7.css │ ├── framework7.min.css │ ├── framework7.rtl.css │ ├── framework7.rtl.min.css │ ├── framework7.themes.css │ └── framework7.themes.min.css ├── img │ ├── i-f7.png │ ├── i-form-calendar.png │ ├── i-form-comment.png │ ├── i-form-email.png │ ├── i-form-gender.png │ ├── i-form-name.png │ ├── i-form-password.png │ ├── i-form-settings.png │ ├── i-form-tel.png │ ├── i-form-toggle.png │ └── i-form-url.png └── my-app.css ├── index.html └── js ├── framework7 └── framework7.min.js └── my-app.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | ## Framework7 and Parse 2 | 3 | > *Note: this is an old, not maintained project and the frameworks used in it have changed since. We decided to still leave this project on GitHub as a reference for multiple tutorials which were based on this code repositary. You have been warned.* 4 | 5 | 6 | This repository holds an example web application built with [Framework7](http://www.idangero.us/framework7/#.VSRQUovF87Y) mobile web framework and powered by [Parse.com](https://www.parse.com) for user account data storage. 7 | 8 | Application implements user registration and user login funcionality. 9 | 10 | You can find step by step tutorial about creating this mobile web application on [Htmlcenter](https://www.htmlcenter.com/blog/html5-frameworks-for-mobile-web-applications/). It describes how I have built this source code from ground up. 11 | 12 | by [@sauliuz](https://twitter.com/sauliuz). 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /css/framework7/framework7.rtl.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Framework7 1.0.1 3 | * Full Featured Mobile HTML Framework For Building iOS Apps 4 | * 5 | * http://www.idangero.us/framework7 6 | * 7 | * Copyright 2015, Vladimir Kharlampidi 8 | * The iDangero.us 9 | * http://www.idangero.us/ 10 | * 11 | * Licensed under MIT 12 | * 13 | * Released on: February 13, 2015 14 | */ 15 | /*============= 16 | Framework 7 RTL Additions 17 | =============*/ 18 | html { 19 | direction: rtl; 20 | } 21 | /* === Lists === */ 22 | .list-block ul ul { 23 | padding-left: 0; 24 | padding-right: 45px; 25 | } 26 | .list-block .item-content { 27 | padding-left: 0; 28 | padding-right: 15px; 29 | } 30 | .list-block .item-inner { 31 | padding-right: 0; 32 | padding-left: 15px; 33 | } 34 | .list-block .item-after { 35 | margin-left: 0; 36 | margin-right: 5px; 37 | } 38 | .list-block .item-media i + i, 39 | .list-block .item-media i + img { 40 | margin-left: 0; 41 | margin-right: 5px; 42 | } 43 | .list-block .item-media + .item-inner { 44 | margin-left: 0; 45 | margin-right: 15px; 46 | } 47 | .list-block .item-link .item-inner { 48 | padding-right: 0; 49 | padding-left: 35px; 50 | background-position: 15px center; 51 | background-image: url("data:image/svg+xml;charset=utf-8,"); 52 | } 53 | .list-block.media-list .item-link .item-inner, 54 | .list-block li.media-item .item-link .item-inner { 55 | padding-right: 0; 56 | padding-left: 15px; 57 | } 58 | .list-block.media-list .item-link .item-title-row, 59 | .list-block li.media-item .item-link .item-title-row { 60 | padding-right: 0; 61 | padding-left: 20px; 62 | background-position: center left; 63 | background-image: url("data:image/svg+xml;charset=utf-8,"); 64 | } 65 | .list-block .sortable-handler { 66 | right: auto; 67 | left: 0; 68 | } 69 | .list-block.sortable-opened .item-inner, 70 | .list-block.sortable-opened .item-link .item-inner { 71 | padding-right: 0; 72 | padding-left: 35px; 73 | } 74 | .list-block.sortable-opened .item-link .item-inner, 75 | .list-block.sortable-opened .item-link .item-title-row { 76 | background-image: none; 77 | } 78 | .list-block .swipeout-actions-left, 79 | .list-block .swipeout-actions-right { 80 | direction: ltr; 81 | } 82 | /* === Toolbars === */ 83 | .navbar a.link i + span, 84 | .toolbar a.link i + span, 85 | .navbar a.link i + i, 86 | .toolbar a.link i + i, 87 | .navbar a.link span + i, 88 | .toolbar a.link span + i, 89 | .navbar a.link span + span, 90 | .toolbar a.link span + span { 91 | margin-left: 0; 92 | margin-right: 7px; 93 | } 94 | .navbar .left a + a, 95 | .navbar .right a + a { 96 | margin-left: 0; 97 | margin-right: 15px; 98 | } 99 | .navbar .left { 100 | margin-right: 0px; 101 | margin-left: 10px; 102 | } 103 | .navbar .right { 104 | margin-left: 0px; 105 | margin-right: 10px; 106 | } 107 | .navbar .right:first-child { 108 | right: auto; 109 | left: 8px; 110 | } 111 | /* === Forms === */ 112 | .list-block input[type="text"], 113 | .list-block input[type="password"], 114 | .list-block input[type="email"], 115 | .list-block input[type="tel"], 116 | .list-block input[type="url"], 117 | .list-block input[type="date"], 118 | .list-block input[type="datetime-local"], 119 | .list-block input[type="number"], 120 | .list-block select, 121 | .list-block textarea { 122 | padding-left: 0; 123 | padding-right: 5px; 124 | } 125 | .buttons-row .button:first-child { 126 | border-radius: 0 5px 5px 0; 127 | border-left: none; 128 | } 129 | .buttons-row .button:last-child { 130 | border-radius: 5px 0 0 5px; 131 | border-left-width: 1px; 132 | border-left-style: solid; 133 | } 134 | .buttons-row .button.button-round:first-child { 135 | border-radius: 0 27px 27px 0; 136 | } 137 | .buttons-row .button.button-round:last-child { 138 | border-radius: 27px 0 0 27px; 139 | } 140 | .label-switch input[type="checkbox"] + .checkbox:before { 141 | left: auto; 142 | right: 2px; 143 | } 144 | .label-switch input[type="checkbox"] + .checkbox:after { 145 | right: 2px; 146 | left: auto; 147 | -webkit-transform: translate3d(0, 0, 0); 148 | transform: translate3d(0, 0, 0); 149 | } 150 | .label-switch input[type="checkbox"]:checked + .checkbox:after { 151 | left: auto; 152 | right: 22px; 153 | } 154 | .range-slider { 155 | padding-left: 0; 156 | padding-right: 0; 157 | margin-left: 0; 158 | padding-right: 3px; 159 | padding-left: 3px; 160 | margin-right: -1px; 161 | } 162 | .range-slider input[type="range"]:after { 163 | left: auto; 164 | right: -5px; 165 | } 166 | .range-slider input[type="range"]::-webkit-slider-thumb:after { 167 | left: auto; 168 | right: 0; 169 | } 170 | .range-slider input[type="range"]::-webkit-slider-thumb:before { 171 | right: auto; 172 | left: 100%; 173 | } 174 | label.label-radio input[type="checkbox"] ~ .item-inner, 175 | label.label-radio input[type="radio"] ~ .item-inner { 176 | padding-left: 35px; 177 | padding-right: 0; 178 | } 179 | label.label-radio input[type="checkbox"]:checked ~ .item-inner, 180 | label.label-radio input[type="radio"]:checked ~ .item-inner { 181 | background-position: 15px center; 182 | } 183 | /* === Search Bar === */ 184 | .searchbar input[type="search"] { 185 | background-position: right center; 186 | background-position: -webkit-calc(100% - 8px) center; 187 | background-position: calc(100% - 8px) center; 188 | } 189 | .searchbar .searchbar-clear { 190 | right: auto; 191 | left: 0; 192 | } 193 | .searchbar.searchbar-active .searchbar-cancel { 194 | margin-left: 0; 195 | margin-right: 8px; 196 | } 197 | /* === Message Bar === */ 198 | .messagebar .link + textarea { 199 | margin-left: 0; 200 | margin-right: 8px; 201 | } 202 | .messagebar textarea + .link { 203 | margin-left: 0; 204 | margin-right: 8px; 205 | } 206 | /* === Modals === */ 207 | .modal-button:first-child { 208 | border-radius: 0 0 7px 0; 209 | border-right: none; 210 | } 211 | .modal-button:last-child { 212 | border-right: 1px solid #b5b5b5; 213 | border-radius: 0 0 0 7px; 214 | } 215 | .modal-button:first-child:last-child { 216 | border-radius: 0 0 7px 7px; 217 | } 218 | /* === Content Block === */ 219 | .content-block-inner { 220 | margin-left: 0; 221 | margin-right: -15px; 222 | } 223 | /* === Pages === */ 224 | .page-on-left { 225 | -webkit-transform: translate3d(20%, 0, 0); 226 | transform: translate3d(20%, 0, 0); 227 | } 228 | .page-on-right { 229 | -webkit-transform: translate3d(-100%, 0, 0); 230 | transform: translate3d(-100%, 0, 0); 231 | } 232 | @-webkit-keyframes pageFromRightToCenter { 233 | from { 234 | -webkit-box-shadow: none; 235 | box-shadow: none; 236 | -webkit-transform: translate3d(-100%, 0, 0); 237 | } 238 | to { 239 | -webkit-box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 240 | box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 241 | -webkit-transform: translate3d(0, 0, 0); 242 | } 243 | } 244 | @-webkit-keyframes pageFromCenterToRight { 245 | from { 246 | -webkit-box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 247 | box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 248 | -webkit-transform: translate3d(0, 0, 0); 249 | } 250 | to { 251 | -webkit-box-shadow: none; 252 | box-shadow: none; 253 | -webkit-transform: translate3d(-100%, 0, 0); 254 | } 255 | } 256 | @keyframes pageFromRightToCenter { 257 | from { 258 | -webkit-box-shadow: none; 259 | box-shadow: none; 260 | transform: translate3d(-100%, 0, 0); 261 | } 262 | to { 263 | -webkit-box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 264 | box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 265 | transform: translate3d(0, 0, 0); 266 | } 267 | } 268 | @keyframes pageFromCenterToRight { 269 | from { 270 | -webkit-box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 271 | box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 272 | transform: translate3d(0, 0, 0); 273 | } 274 | to { 275 | -webkit-box-shadow: none; 276 | box-shadow: none; 277 | transform: translate3d(100%, 0, 0); 278 | } 279 | } 280 | @-webkit-keyframes pageFromCenterToLeft { 281 | from { 282 | opacity: 1; 283 | -webkit-transform: translate3d(0, 0, 0); 284 | } 285 | to { 286 | opacity: 0.9; 287 | -webkit-transform: translate3d(20%, 0, 0); 288 | } 289 | } 290 | @-webkit-keyframes pageFromLeftToCenter { 291 | from { 292 | opacity: 0.9; 293 | -webkit-transform: translate3d(20%, 0, 0); 294 | } 295 | to { 296 | opacity: 1; 297 | -webkit-transform: translate3d(0, 0, 0); 298 | } 299 | } 300 | @keyframes pageFromCenterToLeft { 301 | from { 302 | opacity: 1; 303 | transform: translate3d(0, 0, 0); 304 | } 305 | to { 306 | opacity: 0.9; 307 | transform: translate3d(20%, 0, 0); 308 | } 309 | } 310 | @keyframes pageFromLeftToCenter { 311 | from { 312 | opacity: 0.9; 313 | transform: translate3d(20%, 0, 0); 314 | } 315 | to { 316 | opacity: 1; 317 | transform: translate3d(0, 0, 0); 318 | } 319 | } 320 | @-webkit-keyframes pageFromRightToCenterDegrade { 321 | from { 322 | -webkit-transform: translate3d(-100%, 0, 0); 323 | } 324 | to { 325 | -webkit-transform: translate3d(0, 0, 0); 326 | } 327 | } 328 | @-webkit-keyframes pageFromCenterToRightDegrade { 329 | from { 330 | -webkit-transform: translate3d(0, 0, 0); 331 | } 332 | to { 333 | -webkit-transform: translate3d(-100%, 0, 0); 334 | } 335 | } 336 | @keyframes pageFromRightToCenterDegrade { 337 | from { 338 | transform: translate3d(-100%, 0, 0); 339 | } 340 | to { 341 | transform: translate3d(0, 0, 0); 342 | } 343 | } 344 | @keyframes pageFromCenterToRightDegrade { 345 | from { 346 | transform: translate3d(0, 0, 0); 347 | } 348 | to { 349 | transform: translate3d(-100%, 0, 0); 350 | } 351 | } 352 | /* === Messages === */ 353 | .message-received { 354 | -ms-flex-item-align: end; 355 | -webkit-align-self: flex-end; 356 | align-self: flex-end; 357 | -webkit-box-align: end; 358 | -ms-flex-align: end; 359 | -webkit-align-items: flex-end; 360 | align-items: flex-end; 361 | } 362 | .message-sent { 363 | -ms-flex-item-align: start; 364 | -webkit-align-self: flex-start; 365 | align-self: flex-start; 366 | -webkit-box-align: start; 367 | -ms-flex-align: start; 368 | -webkit-align-items: flex-start; 369 | align-items: flex-start; 370 | } 371 | /* === Back Icons === */ 372 | i.icon.icon-back { 373 | background-image: url("data:image/svg+xml;charset=utf-8,"); 374 | } 375 | i.icon.icon-forward { 376 | background-image: url("data:image/svg+xml;charset=utf-8,"); 377 | } 378 | i.icon.icon-next { 379 | background: url("data:image/svg+xml;charset=utf-8,"); 380 | } 381 | i.icon.icon-prev { 382 | background: url("data:image/svg+xml;charset=utf-8,"); 383 | } 384 | i.icon-back.color-gray, 385 | i.icon-back.theme-gray, 386 | .theme-gray i.icon-back { 387 | background-image: url("data:image/svg+xml;charset=utf-8,"); 388 | } 389 | i.icon-forward.color-gray, 390 | i.icon-forward.theme-gray, 391 | .theme-gray i.icon-forward { 392 | background-image: url("data:image/svg+xml;charset=utf-8,"); 393 | } 394 | i.icon-next.color-gray, 395 | i.icon-next.theme-gray, 396 | .theme-gray i.icon-next { 397 | background: url("data:image/svg+xml;charset=utf-8,"); 398 | } 399 | i.icon-prev.color-gray, 400 | i.icon-prev.theme-gray, 401 | .theme-gray i.icon-prev { 402 | background: url("data:image/svg+xml;charset=utf-8,"); 403 | } 404 | i.icon-back.color-white, 405 | i.icon-back.theme-white, 406 | .theme-white i.icon-back { 407 | background-image: url("data:image/svg+xml;charset=utf-8,"); 408 | } 409 | i.icon-forward.color-white, 410 | i.icon-forward.theme-white, 411 | .theme-white i.icon-forward { 412 | background-image: url("data:image/svg+xml;charset=utf-8,"); 413 | } 414 | i.icon-next.color-white, 415 | i.icon-next.theme-white, 416 | .theme-white i.icon-next { 417 | background: url("data:image/svg+xml;charset=utf-8,"); 418 | } 419 | i.icon-prev.color-white, 420 | i.icon-prev.theme-white, 421 | .theme-white i.icon-prev { 422 | background: url("data:image/svg+xml;charset=utf-8,"); 423 | } 424 | i.icon-back.color-black, 425 | i.icon-back.theme-black, 426 | .theme-black i.icon-back { 427 | background-image: url("data:image/svg+xml;charset=utf-8,"); 428 | } 429 | i.icon-forward.color-black, 430 | i.icon-forward.theme-black, 431 | .theme-black i.icon-forward { 432 | background-image: url("data:image/svg+xml;charset=utf-8,"); 433 | } 434 | i.icon-next.color-black, 435 | i.icon-next.theme-black, 436 | .theme-black i.icon-next { 437 | background: url("data:image/svg+xml;charset=utf-8,"); 438 | } 439 | i.icon-prev.color-black, 440 | i.icon-prev.theme-black, 441 | .theme-black i.icon-prev { 442 | background: url("data:image/svg+xml;charset=utf-8,"); 443 | } 444 | i.icon-back.color-lightblue, 445 | i.icon-back.theme-lightblue, 446 | .theme-lightblue i.icon-back { 447 | background-image: url("data:image/svg+xml;charset=utf-8,"); 448 | } 449 | i.icon-forward.color-lightblue, 450 | i.icon-forward.theme-lightblue, 451 | .theme-lightblue i.icon-forward { 452 | background-image: url("data:image/svg+xml;charset=utf-8,"); 453 | } 454 | i.icon-next.color-lightblue, 455 | i.icon-next.theme-lightblue, 456 | .theme-lightblue i.icon-next { 457 | background: url("data:image/svg+xml;charset=utf-8,"); 458 | } 459 | i.icon-prev.color-lightblue, 460 | i.icon-prev.theme-lightblue, 461 | .theme-lightblue i.icon-prev { 462 | background: url("data:image/svg+xml;charset=utf-8,"); 463 | } 464 | i.icon-back.color-yellow, 465 | i.icon-back.theme-yellow, 466 | .theme-yellow i.icon-back { 467 | background-image: url("data:image/svg+xml;charset=utf-8,"); 468 | } 469 | i.icon-forward.color-yellow, 470 | i.icon-forward.theme-yellow, 471 | .theme-yellow i.icon-forward { 472 | background-image: url("data:image/svg+xml;charset=utf-8,"); 473 | } 474 | i.icon-next.color-yellow, 475 | i.icon-next.theme-yellow, 476 | .theme-yellow i.icon-next { 477 | background: url("data:image/svg+xml;charset=utf-8,"); 478 | } 479 | i.icon-prev.color-yellow, 480 | i.icon-prev.theme-yellow, 481 | .theme-yellow i.icon-prev { 482 | background: url("data:image/svg+xml;charset=utf-8,"); 483 | } 484 | i.icon-back.color-orange, 485 | i.icon-back.theme-orange, 486 | .theme-orange i.icon-back { 487 | background-image: url("data:image/svg+xml;charset=utf-8,"); 488 | } 489 | i.icon-forward.color-orange, 490 | i.icon-forward.theme-orange, 491 | .theme-orange i.icon-forward { 492 | background-image: url("data:image/svg+xml;charset=utf-8,"); 493 | } 494 | i.icon-next.color-orange, 495 | i.icon-next.theme-orange, 496 | .theme-orange i.icon-next { 497 | background: url("data:image/svg+xml;charset=utf-8,"); 498 | } 499 | i.icon-prev.color-orange, 500 | i.icon-prev.theme-orange, 501 | .theme-orange i.icon-prev { 502 | background: url("data:image/svg+xml;charset=utf-8,"); 503 | } 504 | i.icon-back.color-pink, 505 | i.icon-back.theme-pink, 506 | .theme-pink i.icon-back { 507 | background-image: url("data:image/svg+xml;charset=utf-8,"); 508 | } 509 | i.icon-forward.color-pink, 510 | i.icon-forward.theme-pink, 511 | .theme-pink i.icon-forward { 512 | background-image: url("data:image/svg+xml;charset=utf-8,"); 513 | } 514 | i.icon-next.color-pink, 515 | i.icon-next.theme-pink, 516 | .theme-pink i.icon-next { 517 | background: url("data:image/svg+xml;charset=utf-8,"); 518 | } 519 | i.icon-prev.color-pink, 520 | i.icon-prev.theme-pink, 521 | .theme-pink i.icon-prev { 522 | background: url("data:image/svg+xml;charset=utf-8,"); 523 | } 524 | i.icon-back.color-blue, 525 | i.icon-back.theme-blue, 526 | .theme-blue i.icon-back { 527 | background-image: url("data:image/svg+xml;charset=utf-8,"); 528 | } 529 | i.icon-forward.color-blue, 530 | i.icon-forward.theme-blue, 531 | .theme-blue i.icon-forward { 532 | background-image: url("data:image/svg+xml;charset=utf-8,"); 533 | } 534 | i.icon-next.color-blue, 535 | i.icon-next.theme-blue, 536 | .theme-blue i.icon-next { 537 | background: url("data:image/svg+xml;charset=utf-8,"); 538 | } 539 | i.icon-prev.color-blue, 540 | i.icon-prev.theme-blue, 541 | .theme-blue i.icon-prev { 542 | background: url("data:image/svg+xml;charset=utf-8,"); 543 | } 544 | i.icon-back.color-green, 545 | i.icon-back.theme-green, 546 | .theme-green i.icon-back { 547 | background-image: url("data:image/svg+xml;charset=utf-8,"); 548 | } 549 | i.icon-forward.color-green, 550 | i.icon-forward.theme-green, 551 | .theme-green i.icon-forward { 552 | background-image: url("data:image/svg+xml;charset=utf-8,"); 553 | } 554 | i.icon-next.color-green, 555 | i.icon-next.theme-green, 556 | .theme-green i.icon-next { 557 | background: url("data:image/svg+xml;charset=utf-8,"); 558 | } 559 | i.icon-prev.color-green, 560 | i.icon-prev.theme-green, 561 | .theme-green i.icon-prev { 562 | background: url("data:image/svg+xml;charset=utf-8,"); 563 | } 564 | i.icon-back.color-red, 565 | i.icon-back.theme-red, 566 | .theme-red i.icon-back { 567 | background-image: url("data:image/svg+xml;charset=utf-8,"); 568 | } 569 | i.icon-forward.color-red, 570 | i.icon-forward.theme-red, 571 | .theme-red i.icon-forward { 572 | background-image: url("data:image/svg+xml;charset=utf-8,"); 573 | } 574 | i.icon-next.color-red, 575 | i.icon-next.theme-red, 576 | .theme-red i.icon-next { 577 | background: url("data:image/svg+xml;charset=utf-8,"); 578 | } 579 | i.icon-prev.color-red, 580 | i.icon-prev.theme-red, 581 | .theme-red i.icon-prev { 582 | background: url("data:image/svg+xml;charset=utf-8,"); 583 | } 584 | /* === Accordion === */ 585 | .list-block .accordion-toggle .item-inner { 586 | padding-right: 0; 587 | padding-left: 35px; 588 | background-position: 15px center; 589 | background-image: url("data:image/svg+xml;charset=utf-8,"); 590 | } 591 | .list-block .accordion-item-expanded .accordion-toggle .item-inner, 592 | .list-block .accordion-item-expanded > .item-link .item-inner { 593 | background-image: url("data:image/svg+xml;charset=utf-8,"); 594 | } 595 | .list-block .accordion-item ul { 596 | padding-right: 0; 597 | } 598 | -------------------------------------------------------------------------------- /css/framework7/framework7.rtl.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Framework7 1.0.1 3 | * Full Featured Mobile HTML Framework For Building iOS Apps 4 | * 5 | * http://www.idangero.us/framework7 6 | * 7 | * Copyright 2015, Vladimir Kharlampidi 8 | * The iDangero.us 9 | * http://www.idangero.us/ 10 | * 11 | * Licensed under MIT 12 | * 13 | * Released on: February 13, 2015 14 | */ 15 | html{direction:rtl}.list-block ul ul{padding-left:0;padding-right:45px}.list-block .item-content{padding-left:0;padding-right:15px}.list-block .item-inner{padding-right:0;padding-left:15px}.list-block .item-after,.list-block .item-media i+i,.list-block .item-media i+img{margin-left:0;margin-right:5px}.list-block .item-media+.item-inner{margin-left:0;margin-right:15px}.list-block .item-link .item-inner{padding-right:0;padding-left:35px;background-position:15px center;background-image:url("data:image/svg+xml;charset=utf-8,")}.list-block li.media-item .item-link .item-inner,.list-block.media-list .item-link .item-inner{padding-right:0;padding-left:15px}.list-block li.media-item .item-link .item-title-row,.list-block.media-list .item-link .item-title-row{padding-right:0;padding-left:20px;background-position:center left;background-image:url("data:image/svg+xml;charset=utf-8,")}.list-block .sortable-handler{right:auto;left:0}.list-block.sortable-opened .item-inner,.list-block.sortable-opened .item-link .item-inner{padding-right:0;padding-left:35px}.list-block.sortable-opened .item-link .item-inner,.list-block.sortable-opened .item-link .item-title-row{background-image:none}.list-block .swipeout-actions-left,.list-block .swipeout-actions-right{direction:ltr}.navbar a.link i+i,.navbar a.link i+span,.navbar a.link span+i,.navbar a.link span+span,.toolbar a.link i+i,.toolbar a.link i+span,.toolbar a.link span+i,.toolbar a.link span+span{margin-left:0;margin-right:7px}.navbar .left a+a,.navbar .right a+a{margin-left:0;margin-right:15px}.navbar .left{margin-right:0;margin-left:10px}.navbar .right{margin-left:0;margin-right:10px}.navbar .right:first-child{right:auto;left:8px}.list-block input[type=text],.list-block input[type=password],.list-block input[type=email],.list-block input[type=tel],.list-block input[type=url],.list-block input[type=date],.list-block input[type=datetime-local],.list-block input[type=number],.list-block select,.list-block textarea{padding-left:0;padding-right:5px}.buttons-row .button:first-child{border-radius:0 5px 5px 0;border-left:none}.buttons-row .button:last-child{border-radius:5px 0 0 5px;border-left-width:1px;border-left-style:solid}.buttons-row .button.button-round:first-child{border-radius:0 27px 27px 0}.buttons-row .button.button-round:last-child{border-radius:27px 0 0 27px}.label-switch input[type=checkbox]+.checkbox:before{left:auto;right:2px}.label-switch input[type=checkbox]+.checkbox:after{right:2px;left:auto;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.label-switch input[type=checkbox]:checked+.checkbox:after{left:auto;right:22px}.range-slider{margin-left:0;padding-right:3px;padding-left:3px;margin-right:-1px}.range-slider input[type=range]:after{left:auto;right:-5px}.range-slider input[type=range]::-webkit-slider-thumb:after{left:auto;right:0}.range-slider input[type=range]::-webkit-slider-thumb:before{right:auto;left:100%}label.label-radio input[type=radio]~.item-inner,label.label-radio input[type=checkbox]~.item-inner{padding-left:35px;padding-right:0}label.label-radio input[type=radio]:checked~.item-inner,label.label-radio input[type=checkbox]:checked~.item-inner{background-position:15px center}.searchbar input[type=search]{background-position:calc(100% - 8px) center}.searchbar .searchbar-clear{right:auto;left:0}.messagebar .link+textarea,.messagebar textarea+.link,.searchbar.searchbar-active .searchbar-cancel{margin-left:0;margin-right:8px}.modal-button:first-child{border-radius:0 0 7px;border-right:none}.modal-button:last-child{border-right:1px solid #b5b5b5;border-radius:0 0 0 7px}.modal-button:first-child:last-child{border-radius:0 0 7px 7px}.content-block-inner{margin-left:0;margin-right:-15px}.page-on-left{-webkit-transform:translate3d(20%,0,0);transform:translate3d(20%,0,0)}.page-on-right{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}@-webkit-keyframes pageFromRightToCenter{from{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:translate3d(-100%,0,0)}to{-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);-webkit-transform:translate3d(0,0,0)}}@-webkit-keyframes pageFromCenterToRight{from{-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);-webkit-transform:translate3d(0,0,0)}to{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:translate3d(-100%,0,0)}}@keyframes pageFromRightToCenter{from{-webkit-box-shadow:none;box-shadow:none;transform:translate3d(-100%,0,0)}to{-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);transform:translate3d(0,0,0)}}@keyframes pageFromCenterToRight{from{-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);transform:translate3d(0,0,0)}to{-webkit-box-shadow:none;box-shadow:none;transform:translate3d(100%,0,0)}}@-webkit-keyframes pageFromCenterToLeft{from{opacity:1;-webkit-transform:translate3d(0,0,0)}to{opacity:.9;-webkit-transform:translate3d(20%,0,0)}}@-webkit-keyframes pageFromLeftToCenter{from{opacity:.9;-webkit-transform:translate3d(20%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0)}}@keyframes pageFromCenterToLeft{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:.9;transform:translate3d(20%,0,0)}}@keyframes pageFromLeftToCenter{from{opacity:.9;transform:translate3d(20%,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}@-webkit-keyframes pageFromRightToCenterDegrade{from{-webkit-transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-webkit-keyframes pageFromCenterToRightDegrade{from{-webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-100%,0,0)}}@keyframes pageFromRightToCenterDegrade{from{transform:translate3d(-100%,0,0)}to{transform:translate3d(0,0,0)}}@keyframes pageFromCenterToRightDegrade{from{transform:translate3d(0,0,0)}to{transform:translate3d(-100%,0,0)}}.message-received{-ms-flex-item-align:end;-webkit-align-self:flex-end;align-self:flex-end;-webkit-box-align:end;-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end}.message-sent{-ms-flex-item-align:start;-webkit-align-self:flex-start;align-self:flex-start;-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}i.icon.icon-back{background-image:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-forward{background-image:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-next{background:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-prev{background:url("data:image/svg+xml;charset=utf-8,")}.theme-gray i.icon-back,i.icon-back.color-gray,i.icon-back.theme-gray{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-gray i.icon-forward,i.icon-forward.color-gray,i.icon-forward.theme-gray{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-gray i.icon-next,i.icon-next.color-gray,i.icon-next.theme-gray{background:url("data:image/svg+xml;charset=utf-8,")}.theme-gray i.icon-prev,i.icon-prev.color-gray,i.icon-prev.theme-gray{background:url("data:image/svg+xml;charset=utf-8,")}.theme-white i.icon-back,i.icon-back.color-white,i.icon-back.theme-white{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-white i.icon-forward,i.icon-forward.color-white,i.icon-forward.theme-white{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-white i.icon-next,i.icon-next.color-white,i.icon-next.theme-white{background:url("data:image/svg+xml;charset=utf-8,")}.theme-white i.icon-prev,i.icon-prev.color-white,i.icon-prev.theme-white{background:url("data:image/svg+xml;charset=utf-8,")}.theme-black i.icon-back,i.icon-back.color-black,i.icon-back.theme-black{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-black i.icon-forward,i.icon-forward.color-black,i.icon-forward.theme-black{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-black i.icon-next,i.icon-next.color-black,i.icon-next.theme-black{background:url("data:image/svg+xml;charset=utf-8,")}.theme-black i.icon-prev,i.icon-prev.color-black,i.icon-prev.theme-black{background:url("data:image/svg+xml;charset=utf-8,")}.theme-lightblue i.icon-back,i.icon-back.color-lightblue,i.icon-back.theme-lightblue{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-lightblue i.icon-forward,i.icon-forward.color-lightblue,i.icon-forward.theme-lightblue{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-lightblue i.icon-next,i.icon-next.color-lightblue,i.icon-next.theme-lightblue{background:url("data:image/svg+xml;charset=utf-8,")}.theme-lightblue i.icon-prev,i.icon-prev.color-lightblue,i.icon-prev.theme-lightblue{background:url("data:image/svg+xml;charset=utf-8,")}.theme-yellow i.icon-back,i.icon-back.color-yellow,i.icon-back.theme-yellow{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-yellow i.icon-forward,i.icon-forward.color-yellow,i.icon-forward.theme-yellow{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-yellow i.icon-next,i.icon-next.color-yellow,i.icon-next.theme-yellow{background:url("data:image/svg+xml;charset=utf-8,")}.theme-yellow i.icon-prev,i.icon-prev.color-yellow,i.icon-prev.theme-yellow{background:url("data:image/svg+xml;charset=utf-8,")}.theme-orange i.icon-back,i.icon-back.color-orange,i.icon-back.theme-orange{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-orange i.icon-forward,i.icon-forward.color-orange,i.icon-forward.theme-orange{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-orange i.icon-next,i.icon-next.color-orange,i.icon-next.theme-orange{background:url("data:image/svg+xml;charset=utf-8,")}.theme-orange i.icon-prev,i.icon-prev.color-orange,i.icon-prev.theme-orange{background:url("data:image/svg+xml;charset=utf-8,")}.theme-pink i.icon-back,i.icon-back.color-pink,i.icon-back.theme-pink{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-pink i.icon-forward,i.icon-forward.color-pink,i.icon-forward.theme-pink{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-pink i.icon-next,i.icon-next.color-pink,i.icon-next.theme-pink{background:url("data:image/svg+xml;charset=utf-8,")}.theme-pink i.icon-prev,i.icon-prev.color-pink,i.icon-prev.theme-pink{background:url("data:image/svg+xml;charset=utf-8,")}.theme-blue i.icon-back,i.icon-back.color-blue,i.icon-back.theme-blue{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-blue i.icon-forward,i.icon-forward.color-blue,i.icon-forward.theme-blue{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-blue i.icon-next,i.icon-next.color-blue,i.icon-next.theme-blue{background:url("data:image/svg+xml;charset=utf-8,")}.theme-blue i.icon-prev,i.icon-prev.color-blue,i.icon-prev.theme-blue{background:url("data:image/svg+xml;charset=utf-8,")}.theme-green i.icon-back,i.icon-back.color-green,i.icon-back.theme-green{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-green i.icon-forward,i.icon-forward.color-green,i.icon-forward.theme-green{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-green i.icon-next,i.icon-next.color-green,i.icon-next.theme-green{background:url("data:image/svg+xml;charset=utf-8,")}.theme-green i.icon-prev,i.icon-prev.color-green,i.icon-prev.theme-green{background:url("data:image/svg+xml;charset=utf-8,")}.theme-red i.icon-back,i.icon-back.color-red,i.icon-back.theme-red{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-red i.icon-forward,i.icon-forward.color-red,i.icon-forward.theme-red{background-image:url("data:image/svg+xml;charset=utf-8,")}.theme-red i.icon-next,i.icon-next.color-red,i.icon-next.theme-red{background:url("data:image/svg+xml;charset=utf-8,")}.theme-red i.icon-prev,i.icon-prev.color-red,i.icon-prev.theme-red{background:url("data:image/svg+xml;charset=utf-8,")}.list-block .accordion-toggle .item-inner{padding-right:0;padding-left:35px;background-position:15px center;background-image:url("data:image/svg+xml;charset=utf-8,")}.list-block .accordion-item-expanded .accordion-toggle .item-inner,.list-block .accordion-item-expanded>.item-link .item-inner{background-image:url("data:image/svg+xml;charset=utf-8,")}.list-block .accordion-item ul{padding-right:0} -------------------------------------------------------------------------------- /css/framework7/framework7.themes.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Framework7 1.0.1 3 | * Full Featured Mobile HTML Framework For Building iOS Apps 4 | * 5 | * http://www.idangero.us/framework7 6 | * 7 | * Copyright 2015, Vladimir Kharlampidi 8 | * The iDangero.us 9 | * http://www.idangero.us/ 10 | * 11 | * Licensed under MIT 12 | * 13 | * Released on: February 13, 2015 14 | */ 15 | /*========================== 16 | Framework7 Layouts Themes 17 | ==========================*/ 18 | /* === Dark layout === */ 19 | .layout-dark .navbar, 20 | .navbar.layout-dark, 21 | .layout-dark .subnavbar, 22 | .subnavbar.layout-dark { 23 | background-color: #131313; 24 | color: #ffffff; 25 | } 26 | .layout-dark .navbar:after, 27 | .navbar.layout-dark:after, 28 | .layout-dark .subnavbar:after, 29 | .subnavbar.layout-dark:after { 30 | background-color: #333333; 31 | } 32 | .layout-dark .toolbar, 33 | .toolbar.layout-dark { 34 | background-color: #131313; 35 | color: #ffffff; 36 | } 37 | .layout-dark .toolbar:before, 38 | .toolbar.layout-dark:before { 39 | background-color: #333333; 40 | } 41 | .layout-dark .picker-calendar-week-days { 42 | color: #fff; 43 | background-color: #131313; 44 | } 45 | .layout-dark .popover .picker-modal .picker-center-highlight:before, 46 | .layout-dark .picker-modal.picker-modal-inline .picker-center-highlight:before { 47 | background-color: #333333; 48 | } 49 | .layout-dark .popover .picker-modal .picker-center-highlight:after, 50 | .layout-dark .picker-modal.picker-modal-inline .picker-center-highlight:after { 51 | background-color: #333333; 52 | } 53 | .layout-dark .popover .picker-modal .picker-item.picker-selected, 54 | .layout-dark .picker-modal.picker-modal-inline .picker-item.picker-selected { 55 | color: #fff; 56 | } 57 | .layout-dark .popover .picker-modal .picker-calendar-week-days, 58 | .layout-dark .picker-modal.picker-modal-inline .picker-calendar-week-days { 59 | color: #fff; 60 | } 61 | .layout-dark .popover .picker-modal .picker-calendar-day, 62 | .layout-dark .picker-modal.picker-modal-inline .picker-calendar-day { 63 | color: #fff; 64 | } 65 | .layout-dark .popover .picker-modal .picker-calendar-day.picker-calendar-day-prev, 66 | .layout-dark .picker-modal.picker-modal-inline .picker-calendar-day.picker-calendar-day-prev, 67 | .layout-dark .popover .picker-modal .picker-calendar-day.picker-calendar-day-next, 68 | .layout-dark .picker-modal.picker-modal-inline .picker-calendar-day.picker-calendar-day-next { 69 | color: #777; 70 | } 71 | .layout-dark .popover .picker-modal .picker-calendar-day.picker-calendar-day-disabled, 72 | .layout-dark .picker-modal.picker-modal-inline .picker-calendar-day.picker-calendar-day-disabled { 73 | color: #555; 74 | } 75 | .layout-dark .popover .picker-modal .picker-calendar-day.picker-calendar-day-today span, 76 | .layout-dark .picker-modal.picker-modal-inline .picker-calendar-day.picker-calendar-day-today span { 77 | background: #444; 78 | } 79 | .layout-dark .popover .picker-modal .picker-calendar-week-days:after, 80 | .layout-dark .picker-modal.picker-modal-inline .picker-calendar-week-days:after, 81 | .layout-dark .popover .picker-modal .picker-calendar-row:after, 82 | .layout-dark .picker-modal.picker-modal-inline .picker-calendar-row:after { 83 | background-color: #333333; 84 | } 85 | .layout-dark .popover .picker-modal .toolbar ~ .picker-modal-inner .picker-calendar-months:before, 86 | .layout-dark .picker-modal.picker-modal-inline .toolbar ~ .picker-modal-inner .picker-calendar-months:before, 87 | .layout-dark .popover .picker-modal .picker-calendar-week-days ~ .picker-calendar-months:before, 88 | .layout-dark .picker-modal.picker-modal-inline .picker-calendar-week-days ~ .picker-calendar-months:before { 89 | background-color: #333333; 90 | } 91 | .layout-dark .popover .picker-modal .toolbar:after { 92 | background-color: #333333; 93 | } 94 | .layout-dark .photo-browser .navbar, 95 | .photo-browser.layout-dark .navbar, 96 | .layout-dark .view[data-page="photo-browser-slides"] .navbar, 97 | .view[data-page="photo-browser-slides"].layout-dark .navbar, 98 | .layout-dark .photo-browser .toolbar, 99 | .photo-browser.layout-dark .toolbar, 100 | .layout-dark .view[data-page="photo-browser-slides"] .toolbar, 101 | .view[data-page="photo-browser-slides"].layout-dark .toolbar { 102 | background: rgba(19, 19, 19, 0.95); 103 | } 104 | .layout-dark .tabbar a:not(.active) { 105 | color: #ffffff; 106 | } 107 | .layout-dark .page, 108 | .layout-dark .login-screen-content, 109 | .page.layout-dark, 110 | .layout-dark .panel, 111 | .panel.layout-dark { 112 | background-color: #222426; 113 | color: #dddddd; 114 | } 115 | .layout-dark .content-block-title { 116 | color: #ffffff; 117 | } 118 | .layout-dark .content-block, 119 | .content-block.layout-dark { 120 | color: #bbbbbb; 121 | } 122 | .layout-dark .content-block-inner { 123 | background: #1c1d1f; 124 | color: #dddddd; 125 | } 126 | .layout-dark .content-block-inner:before { 127 | background-color: #393939; 128 | } 129 | .layout-dark .content-block-inner:after { 130 | background-color: #393939; 131 | } 132 | .layout-dark .list-block ul, 133 | .list-block.layout-dark ul { 134 | background: #1c1d1f; 135 | } 136 | .layout-dark .list-block ul:before, 137 | .list-block.layout-dark ul:before { 138 | background-color: #393939; 139 | } 140 | .layout-dark .list-block ul:after, 141 | .list-block.layout-dark ul:after { 142 | background-color: #393939; 143 | } 144 | .layout-dark .list-block.inset ul, 145 | .list-block.layout-dark.inset ul { 146 | background: #1c1d1f; 147 | } 148 | .layout-dark .list-block.notifications > ul, 149 | .list-block.layout-dark.notifications > ul { 150 | background: none; 151 | } 152 | .layout-dark .card { 153 | background: #1c1d1f; 154 | } 155 | .layout-dark .card-header:after { 156 | background-color: #393939; 157 | } 158 | .layout-dark .card-footer { 159 | color: #bbbbbb; 160 | } 161 | .layout-dark .card-footer:before { 162 | background-color: #393939; 163 | } 164 | .layout-dark .popover, 165 | .popover.layout-dark { 166 | background: rgba(0, 0, 0, 0.8); 167 | } 168 | .layout-dark .popover .popover-angle:after, 169 | .popover.layout-dark .popover-angle:after { 170 | background: rgba(0, 0, 0, 0.8); 171 | } 172 | .layout-dark .popover .list-block ul, 173 | .popover.layout-dark .list-block ul { 174 | background: none; 175 | } 176 | .layout-dark .actions-popover .list-block ul:before { 177 | background-color: #393939; 178 | } 179 | .layout-dark .actions-popover .list-block ul:after { 180 | background-color: #393939; 181 | } 182 | .layout-dark .actions-popover .actions-popover-label:after { 183 | background-color: #393939; 184 | } 185 | .layout-dark li.sorting { 186 | background-color: #29292f; 187 | } 188 | .layout-dark .swipeout-actions-left a, 189 | .layout-dark .swipeout-actions-right a { 190 | background-color: #444444; 191 | } 192 | .layout-dark .item-inner:after, 193 | .layout-dark .list-block ul ul li:last-child .item-inner:after { 194 | background-color: #393939; 195 | } 196 | .layout-dark .item-after { 197 | color: #bbbbbb; 198 | } 199 | html:not(.watch-active-state) .layout-dark .item-link:active, 200 | html:not(.watch-active-state) .layout-dark label.label-checkbox:active, 201 | html:not(.watch-active-state) .layout-dark label.label-radio:active, 202 | .layout-dark .item-link.active-state, 203 | .layout-dark label.label-checkbox.active-state, 204 | .layout-dark label.label-radio.active-state { 205 | background-color: #29292f; 206 | } 207 | .layout-dark .item-link.list-button:after { 208 | background-color: #393939; 209 | } 210 | .layout-dark .list-block-label { 211 | color: #bbbbbb; 212 | } 213 | .layout-dark .item-divider, 214 | .layout-dark .list-group-title { 215 | background: #1a1a1a; 216 | color: #bbbbbb; 217 | } 218 | .layout-dark .item-divider:before, 219 | .layout-dark .list-group-title:before { 220 | background-color: #393939; 221 | } 222 | .layout-dark .searchbar { 223 | background: #333333; 224 | } 225 | .layout-dark .searchbar:after { 226 | background-color: #333333; 227 | } 228 | .layout-dark .list-block input[type="text"], 229 | .list-block.layout-dark input[type="text"], 230 | .layout-dark .list-block input[type="password"], 231 | .list-block.layout-dark input[type="password"], 232 | .layout-dark .list-block input[type="email"], 233 | .list-block.layout-dark input[type="email"], 234 | .layout-dark .list-block input[type="tel"], 235 | .list-block.layout-dark input[type="tel"], 236 | .layout-dark .list-block input[type="url"], 237 | .list-block.layout-dark input[type="url"], 238 | .layout-dark .list-block input[type="date"], 239 | .list-block.layout-dark input[type="date"], 240 | .layout-dark .list-block input[type="datetime-local"], 241 | .list-block.layout-dark input[type="datetime-local"], 242 | .layout-dark .list-block input[type="number"], 243 | .list-block.layout-dark input[type="number"], 244 | .layout-dark .list-block select, 245 | .list-block.layout-dark select, 246 | .layout-dark .list-block textarea, 247 | .list-block.layout-dark textarea { 248 | color: #ffffff; 249 | } 250 | .layout-dark .label-switch .checkbox { 251 | background-color: #393939; 252 | } 253 | .layout-dark .label-switch .checkbox:before { 254 | background-color: #1c1d1f; 255 | } 256 | .layout-dark .range-slider input[type="range"]:after { 257 | background: #1c1d1f; 258 | } 259 | /* === White layout === */ 260 | .layout-white .navbar, 261 | .navbar.layout-white, 262 | .layout-white .subnavbar, 263 | .subnavbar.layout-white { 264 | background-color: #ffffff; 265 | color: #000000; 266 | } 267 | .layout-white .navbar:after, 268 | .navbar.layout-white:after, 269 | .layout-white .subnavbar:after, 270 | .subnavbar.layout-white:after { 271 | background-color: #dddddd; 272 | } 273 | .layout-white .toolbar, 274 | .toolbar.layout-white { 275 | background-color: #ffffff; 276 | color: #000000; 277 | } 278 | .layout-white .toolbar:before, 279 | .toolbar.layout-white:before { 280 | background-color: #dddddd; 281 | } 282 | .layout-white .popover .picker-modal .picker-center-highlight:before, 283 | .layout-white .picker-modal.picker-modal-inline .picker-center-highlight:before { 284 | background-color: #dddddd; 285 | } 286 | .layout-white .popover .picker-modal .picker-center-highlight:after, 287 | .layout-white .picker-modal.picker-modal-inline .picker-center-highlight:after { 288 | background-color: #dddddd; 289 | } 290 | .layout-white .popover .picker-modal .picker-calendar-week-days:after, 291 | .layout-white .picker-modal.picker-modal-inline .picker-calendar-week-days:after, 292 | .layout-white .popover .picker-modal .picker-calendar-row:after, 293 | .layout-white .picker-modal.picker-modal-inline .picker-calendar-row:after { 294 | background-color: #dddddd; 295 | } 296 | .layout-white .popover .picker-modal .toolbar ~ .picker-modal-inner .picker-calendar-months:before, 297 | .layout-white .picker-modal.picker-modal-inline .toolbar ~ .picker-modal-inner .picker-calendar-months:before, 298 | .layout-white .popover .picker-modal .picker-calendar-week-days ~ .picker-calendar-months:before, 299 | .layout-white .picker-modal.picker-modal-inline .picker-calendar-week-days ~ .picker-calendar-months:before { 300 | background-color: #dddddd; 301 | } 302 | .layout-white .popover .picker-modal .toolbar:after { 303 | background-color: #dddddd; 304 | } 305 | .layout-white .photo-browser .navbar, 306 | .photo-browser.layout-white .navbar, 307 | .layout-white .view[data-page="photo-browser-slides"] .navbar, 308 | .view[data-page="photo-browser-slides"].layout-white .navbar, 309 | .layout-white .photo-browser .toolbar, 310 | .photo-browser.layout-white .toolbar, 311 | .layout-white .view[data-page="photo-browser-slides"] .toolbar, 312 | .view[data-page="photo-browser-slides"].layout-white .toolbar { 313 | background: rgba(255, 255, 255, 0.95); 314 | } 315 | .layout-white .tabbar a:not(.active) { 316 | color: #777777; 317 | } 318 | .layout-white .page, 319 | .layout-white .login-screen-content, 320 | .page.layout-white, 321 | .layout-white .panel, 322 | .panel.layout-white { 323 | background-color: #ffffff; 324 | color: #000000; 325 | } 326 | .layout-white .content-block-title { 327 | color: #777777; 328 | } 329 | .layout-white .content-block, 330 | .content-block.layout-white { 331 | color: #777777; 332 | } 333 | .layout-white .content-block-inner { 334 | background: #fafafa; 335 | color: #000000; 336 | } 337 | .layout-white .content-block-inner:after { 338 | background-color: #dddddd; 339 | } 340 | .layout-white .content-block-inner:before { 341 | background-color: #dddddd; 342 | } 343 | .layout-white .list-block ul, 344 | .list-block.layout-white ul { 345 | background: #ffffff; 346 | } 347 | .layout-white .list-block ul:after, 348 | .list-block.layout-white ul:after { 349 | background-color: #dddddd; 350 | } 351 | .layout-white .list-block ul:before, 352 | .list-block.layout-white ul:before { 353 | background-color: #dddddd; 354 | } 355 | .layout-white .list-block.inset ul, 356 | .list-block.layout-white.inset ul { 357 | background: #fafafa; 358 | } 359 | .layout-white .list-block.notifications > ul, 360 | .list-block.layout-white.notifications > ul { 361 | background: none; 362 | } 363 | .layout-white .popover-inner > .list-block ul { 364 | background: none; 365 | } 366 | .layout-white li.sorting { 367 | background-color: #eeeeee; 368 | } 369 | .layout-white .swipeout-actions-left a, 370 | .layout-white .swipeout-actions-right a { 371 | background-color: #c7c7cc; 372 | } 373 | .layout-white .item-inner, 374 | .layout-white .list-block ul ul li:last-child .item-inner { 375 | border-color: #dddddd; 376 | } 377 | .layout-white .item-inner:after, 378 | .layout-white .list-block ul ul li:last-child .item-inner:after { 379 | background-color: #dddddd; 380 | } 381 | .layout-white .item-after { 382 | color: #8e8e93; 383 | } 384 | html:not(.watch-active-state) .layout-white .item-link:active, 385 | html:not(.watch-active-state) .layout-white label.label-checkbox:active, 386 | html:not(.watch-active-state) .layout-white label.label-radio:active, 387 | .layout-white .item-link.active-state, 388 | .layout-white label.label-checkbox.active-state, 389 | .layout-white label.label-radio.active-state { 390 | background-color: #eeeeee; 391 | } 392 | .layout-white .item-link.list-button:after { 393 | background-color: #dddddd; 394 | } 395 | .layout-white .list-block-label { 396 | color: #777777; 397 | } 398 | .layout-white .item-divider, 399 | .layout-white .list-group-title { 400 | background: #f7f7f7; 401 | color: #777777; 402 | } 403 | .layout-white .item-divider:before, 404 | .layout-white .list-group-title:before { 405 | background-color: #dddddd; 406 | } 407 | .layout-white .searchbar { 408 | background: #c9c9ce; 409 | } 410 | .layout-white .searchbar:after { 411 | background-color: #b4b4b4; 412 | } 413 | .layout-white .list-block input[type="text"], 414 | .list-block.layout-white input[type="text"], 415 | .layout-white .list-block input[type="password"], 416 | .list-block.layout-white input[type="password"], 417 | .layout-white .list-block input[type="email"], 418 | .list-block.layout-white input[type="email"], 419 | .layout-white .list-block input[type="tel"], 420 | .list-block.layout-white input[type="tel"], 421 | .layout-white .list-block input[type="url"], 422 | .list-block.layout-white input[type="url"], 423 | .layout-white .list-block input[type="date"], 424 | .list-block.layout-white input[type="date"], 425 | .layout-white .list-block input[type="datetime-local"], 426 | .list-block.layout-white input[type="datetime-local"], 427 | .layout-white .list-block input[type="number"], 428 | .list-block.layout-white input[type="number"], 429 | .layout-white .list-block select, 430 | .list-block.layout-white select, 431 | .layout-white .list-block textarea, 432 | .list-block.layout-white textarea { 433 | color: #777777; 434 | } 435 | .layout-white .label-switch .checkbox { 436 | background-color: #e5e5e5; 437 | } 438 | .layout-white .label-switch .checkbox:before { 439 | background-color: #ffffff; 440 | } 441 | .layout-white .range-slider input[type="range"]:after { 442 | background: #ffffff; 443 | } 444 | -------------------------------------------------------------------------------- /css/framework7/framework7.themes.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Framework7 1.0.1 3 | * Full Featured Mobile HTML Framework For Building iOS Apps 4 | * 5 | * http://www.idangero.us/framework7 6 | * 7 | * Copyright 2015, Vladimir Kharlampidi 8 | * The iDangero.us 9 | * http://www.idangero.us/ 10 | * 11 | * Licensed under MIT 12 | * 13 | * Released on: February 13, 2015 14 | */ 15 | .layout-dark .navbar,.layout-dark .subnavbar,.navbar.layout-dark,.subnavbar.layout-dark{background-color:#131313;color:#fff}.layout-dark .navbar:after,.layout-dark .subnavbar:after,.navbar.layout-dark:after,.subnavbar.layout-dark:after{background-color:#333}.layout-dark .toolbar,.toolbar.layout-dark{background-color:#131313;color:#fff}.layout-dark .toolbar:before,.toolbar.layout-dark:before{background-color:#333}.layout-dark .picker-calendar-week-days{color:#fff;background-color:#131313}.layout-dark .picker-modal.picker-modal-inline .picker-center-highlight:after,.layout-dark .picker-modal.picker-modal-inline .picker-center-highlight:before,.layout-dark .popover .picker-modal .picker-center-highlight:after,.layout-dark .popover .picker-modal .picker-center-highlight:before{background-color:#333}.layout-dark .picker-modal.picker-modal-inline .picker-calendar-day,.layout-dark .picker-modal.picker-modal-inline .picker-calendar-week-days,.layout-dark .picker-modal.picker-modal-inline .picker-item.picker-selected,.layout-dark .popover .picker-modal .picker-calendar-day,.layout-dark .popover .picker-modal .picker-calendar-week-days,.layout-dark .popover .picker-modal .picker-item.picker-selected{color:#fff}.layout-dark .picker-modal.picker-modal-inline .picker-calendar-day.picker-calendar-day-next,.layout-dark .picker-modal.picker-modal-inline .picker-calendar-day.picker-calendar-day-prev,.layout-dark .popover .picker-modal .picker-calendar-day.picker-calendar-day-next,.layout-dark .popover .picker-modal .picker-calendar-day.picker-calendar-day-prev{color:#777}.layout-dark .picker-modal.picker-modal-inline .picker-calendar-day.picker-calendar-day-disabled,.layout-dark .popover .picker-modal .picker-calendar-day.picker-calendar-day-disabled{color:#555}.layout-dark .picker-modal.picker-modal-inline .picker-calendar-day.picker-calendar-day-today span,.layout-dark .popover .picker-modal .picker-calendar-day.picker-calendar-day-today span{background:#444}.layout-dark .picker-modal.picker-modal-inline .picker-calendar-row:after,.layout-dark .picker-modal.picker-modal-inline .picker-calendar-week-days:after,.layout-dark .picker-modal.picker-modal-inline .picker-calendar-week-days~.picker-calendar-months:before,.layout-dark .picker-modal.picker-modal-inline .toolbar~.picker-modal-inner .picker-calendar-months:before,.layout-dark .popover .picker-modal .picker-calendar-row:after,.layout-dark .popover .picker-modal .picker-calendar-week-days:after,.layout-dark .popover .picker-modal .picker-calendar-week-days~.picker-calendar-months:before,.layout-dark .popover .picker-modal .toolbar:after,.layout-dark .popover .picker-modal .toolbar~.picker-modal-inner .picker-calendar-months:before{background-color:#333}.layout-dark .photo-browser .navbar,.layout-dark .photo-browser .toolbar,.layout-dark .view[data-page=photo-browser-slides] .navbar,.layout-dark .view[data-page=photo-browser-slides] .toolbar,.photo-browser.layout-dark .navbar,.photo-browser.layout-dark .toolbar,.view[data-page=photo-browser-slides].layout-dark .navbar,.view[data-page=photo-browser-slides].layout-dark .toolbar{background:rgba(19,19,19,.95)}.layout-dark .tabbar a:not(.active){color:#fff}.layout-dark .login-screen-content,.layout-dark .page,.layout-dark .panel,.page.layout-dark,.panel.layout-dark{background-color:#222426;color:#ddd}.layout-dark .content-block-title{color:#fff}.content-block.layout-dark,.layout-dark .content-block{color:#bbb}.layout-dark .content-block-inner{background:#1c1d1f;color:#ddd}.layout-dark .content-block-inner:after,.layout-dark .content-block-inner:before{background-color:#393939}.layout-dark .list-block ul,.list-block.layout-dark ul{background:#1c1d1f}.layout-dark .list-block ul:after,.layout-dark .list-block ul:before,.list-block.layout-dark ul:after,.list-block.layout-dark ul:before{background-color:#393939}.layout-dark .list-block.inset ul,.list-block.layout-dark.inset ul{background:#1c1d1f}.layout-dark .list-block.notifications>ul,.list-block.layout-dark.notifications>ul{background:0 0}.layout-dark .card{background:#1c1d1f}.layout-dark .card-header:after{background-color:#393939}.layout-dark .card-footer{color:#bbb}.layout-dark .card-footer:before{background-color:#393939}.layout-dark .popover,.layout-dark .popover .popover-angle:after,.popover.layout-dark,.popover.layout-dark .popover-angle:after{background:rgba(0,0,0,.8)}.layout-dark .popover .list-block ul,.popover.layout-dark .list-block ul{background:0 0}.layout-dark .actions-popover .actions-popover-label:after,.layout-dark .actions-popover .list-block ul:after,.layout-dark .actions-popover .list-block ul:before{background-color:#393939}.layout-dark li.sorting{background-color:#29292f}.layout-dark .swipeout-actions-left a,.layout-dark .swipeout-actions-right a{background-color:#444}.layout-dark .item-inner:after,.layout-dark .list-block ul ul li:last-child .item-inner:after{background-color:#393939}.layout-dark .item-after{color:#bbb}.layout-dark .item-link.active-state,.layout-dark label.label-checkbox.active-state,.layout-dark label.label-radio.active-state,html:not(.watch-active-state) .layout-dark .item-link:active,html:not(.watch-active-state) .layout-dark label.label-checkbox:active,html:not(.watch-active-state) .layout-dark label.label-radio:active{background-color:#29292f}.layout-dark .item-link.list-button:after{background-color:#393939}.layout-dark .list-block-label{color:#bbb}.layout-dark .item-divider,.layout-dark .list-group-title{background:#1a1a1a;color:#bbb}.layout-dark .item-divider:before,.layout-dark .list-group-title:before{background-color:#393939}.layout-dark .searchbar{background:#333}.layout-dark .searchbar:after{background-color:#333}.layout-dark .list-block input[type=text],.layout-dark .list-block input[type=password],.layout-dark .list-block input[type=email],.layout-dark .list-block input[type=tel],.layout-dark .list-block input[type=url],.layout-dark .list-block input[type=date],.layout-dark .list-block input[type=datetime-local],.layout-dark .list-block input[type=number],.layout-dark .list-block select,.layout-dark .list-block textarea,.list-block.layout-dark input[type=text],.list-block.layout-dark input[type=password],.list-block.layout-dark input[type=email],.list-block.layout-dark input[type=tel],.list-block.layout-dark input[type=url],.list-block.layout-dark input[type=date],.list-block.layout-dark input[type=datetime-local],.list-block.layout-dark input[type=number],.list-block.layout-dark select,.list-block.layout-dark textarea{color:#fff}.layout-dark .label-switch .checkbox{background-color:#393939}.layout-dark .label-switch .checkbox:before{background-color:#1c1d1f}.layout-dark .range-slider input[type=range]:after{background:#1c1d1f}.layout-white .navbar,.layout-white .subnavbar,.navbar.layout-white,.subnavbar.layout-white{background-color:#fff;color:#000}.layout-white .navbar:after,.layout-white .subnavbar:after,.navbar.layout-white:after,.subnavbar.layout-white:after{background-color:#ddd}.layout-white .toolbar,.toolbar.layout-white{background-color:#fff;color:#000}.layout-white .picker-modal.picker-modal-inline .picker-calendar-row:after,.layout-white .picker-modal.picker-modal-inline .picker-calendar-week-days:after,.layout-white .picker-modal.picker-modal-inline .picker-calendar-week-days~.picker-calendar-months:before,.layout-white .picker-modal.picker-modal-inline .picker-center-highlight:after,.layout-white .picker-modal.picker-modal-inline .picker-center-highlight:before,.layout-white .picker-modal.picker-modal-inline .toolbar~.picker-modal-inner .picker-calendar-months:before,.layout-white .popover .picker-modal .picker-calendar-row:after,.layout-white .popover .picker-modal .picker-calendar-week-days:after,.layout-white .popover .picker-modal .picker-calendar-week-days~.picker-calendar-months:before,.layout-white .popover .picker-modal .picker-center-highlight:after,.layout-white .popover .picker-modal .picker-center-highlight:before,.layout-white .popover .picker-modal .toolbar:after,.layout-white .popover .picker-modal .toolbar~.picker-modal-inner .picker-calendar-months:before,.layout-white .toolbar:before,.toolbar.layout-white:before{background-color:#ddd}.layout-white .photo-browser .navbar,.layout-white .photo-browser .toolbar,.layout-white .view[data-page=photo-browser-slides] .navbar,.layout-white .view[data-page=photo-browser-slides] .toolbar,.photo-browser.layout-white .navbar,.photo-browser.layout-white .toolbar,.view[data-page=photo-browser-slides].layout-white .navbar,.view[data-page=photo-browser-slides].layout-white .toolbar{background:rgba(255,255,255,.95)}.layout-white .tabbar a:not(.active){color:#777}.layout-white .login-screen-content,.layout-white .page,.layout-white .panel,.page.layout-white,.panel.layout-white{background-color:#fff;color:#000}.content-block.layout-white,.layout-white .content-block,.layout-white .content-block-title{color:#777}.layout-white .content-block-inner{background:#fafafa;color:#000}.layout-white .content-block-inner:after,.layout-white .content-block-inner:before{background-color:#ddd}.layout-white .list-block ul,.list-block.layout-white ul{background:#fff}.layout-white .list-block ul:after,.layout-white .list-block ul:before,.list-block.layout-white ul:after,.list-block.layout-white ul:before{background-color:#ddd}.layout-white .list-block.inset ul,.list-block.layout-white.inset ul{background:#fafafa}.layout-white .list-block.notifications>ul,.layout-white .popover-inner>.list-block ul,.list-block.layout-white.notifications>ul{background:0 0}.layout-white li.sorting{background-color:#eee}.layout-white .swipeout-actions-left a,.layout-white .swipeout-actions-right a{background-color:#c7c7cc}.layout-white .item-inner,.layout-white .list-block ul ul li:last-child .item-inner{border-color:#ddd}.layout-white .item-inner:after,.layout-white .list-block ul ul li:last-child .item-inner:after{background-color:#ddd}.layout-white .item-after{color:#8e8e93}.layout-white .item-link.active-state,.layout-white label.label-checkbox.active-state,.layout-white label.label-radio.active-state,html:not(.watch-active-state) .layout-white .item-link:active,html:not(.watch-active-state) .layout-white label.label-checkbox:active,html:not(.watch-active-state) .layout-white label.label-radio:active{background-color:#eee}.layout-white .item-link.list-button:after{background-color:#ddd}.layout-white .list-block-label{color:#777}.layout-white .item-divider,.layout-white .list-group-title{background:#f7f7f7;color:#777}.layout-white .item-divider:before,.layout-white .list-group-title:before{background-color:#ddd}.layout-white .searchbar{background:#c9c9ce}.layout-white .searchbar:after{background-color:#b4b4b4}.layout-white .list-block input[type=text],.layout-white .list-block input[type=password],.layout-white .list-block input[type=email],.layout-white .list-block input[type=tel],.layout-white .list-block input[type=url],.layout-white .list-block input[type=date],.layout-white .list-block input[type=datetime-local],.layout-white .list-block input[type=number],.layout-white .list-block select,.layout-white .list-block textarea,.list-block.layout-white input[type=text],.list-block.layout-white input[type=password],.list-block.layout-white input[type=email],.list-block.layout-white input[type=tel],.list-block.layout-white input[type=url],.list-block.layout-white input[type=date],.list-block.layout-white input[type=datetime-local],.list-block.layout-white input[type=number],.list-block.layout-white select,.list-block.layout-white textarea{color:#777}.layout-white .label-switch .checkbox{background-color:#e5e5e5}.layout-white .label-switch .checkbox:before{background-color:#fff}.layout-white .range-slider input[type=range]:after{background:#fff} -------------------------------------------------------------------------------- /css/img/i-f7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/popularowl/framework7-parse/5f9b79ab3f51e22d8a905f7ebbb67dead267c3e7/css/img/i-f7.png -------------------------------------------------------------------------------- /css/img/i-form-calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/popularowl/framework7-parse/5f9b79ab3f51e22d8a905f7ebbb67dead267c3e7/css/img/i-form-calendar.png -------------------------------------------------------------------------------- /css/img/i-form-comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/popularowl/framework7-parse/5f9b79ab3f51e22d8a905f7ebbb67dead267c3e7/css/img/i-form-comment.png -------------------------------------------------------------------------------- /css/img/i-form-email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/popularowl/framework7-parse/5f9b79ab3f51e22d8a905f7ebbb67dead267c3e7/css/img/i-form-email.png -------------------------------------------------------------------------------- /css/img/i-form-gender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/popularowl/framework7-parse/5f9b79ab3f51e22d8a905f7ebbb67dead267c3e7/css/img/i-form-gender.png -------------------------------------------------------------------------------- /css/img/i-form-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/popularowl/framework7-parse/5f9b79ab3f51e22d8a905f7ebbb67dead267c3e7/css/img/i-form-name.png -------------------------------------------------------------------------------- /css/img/i-form-password.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/popularowl/framework7-parse/5f9b79ab3f51e22d8a905f7ebbb67dead267c3e7/css/img/i-form-password.png -------------------------------------------------------------------------------- /css/img/i-form-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/popularowl/framework7-parse/5f9b79ab3f51e22d8a905f7ebbb67dead267c3e7/css/img/i-form-settings.png -------------------------------------------------------------------------------- /css/img/i-form-tel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/popularowl/framework7-parse/5f9b79ab3f51e22d8a905f7ebbb67dead267c3e7/css/img/i-form-tel.png -------------------------------------------------------------------------------- /css/img/i-form-toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/popularowl/framework7-parse/5f9b79ab3f51e22d8a905f7ebbb67dead267c3e7/css/img/i-form-toggle.png -------------------------------------------------------------------------------- /css/img/i-form-url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/popularowl/framework7-parse/5f9b79ab3f51e22d8a905f7ebbb67dead267c3e7/css/img/i-form-url.png -------------------------------------------------------------------------------- /css/my-app.css: -------------------------------------------------------------------------------- 1 | /* Your app custom files in this file */ 2 | /* Tab bar icons */ 3 | i.tabbar-demo-icon-1 { 4 | width: 30px; 5 | height: 30px; 6 | background-image: url("data:image/svg+xml;charset=utf-8,"); 7 | } 8 | .active i.tabbar-demo-icon-1 { 9 | background-image: url("data:image/svg+xml;charset=utf-8,"); 10 | } 11 | i.tabbar-demo-icon-2 { 12 | width: 25px; 13 | height: 30px; 14 | background-image: url("data:image/svg+xml;charset=utf-8,"); 15 | } 16 | .active i.tabbar-demo-icon-2 { 17 | background-image: url("data:image/svg+xml;charset=utf-8,"); 18 | } 19 | i.tabbar-demo-icon-3 { 20 | width: 30px; 21 | height: 30px; 22 | background-image: url("data:image/svg+xml;charset=utf-8,"); 23 | } 24 | .active i.tabbar-demo-icon-3 { 25 | background-image: url("data:image/svg+xml;charset=utf-8,"); 26 | } 27 | i.tabbar-demo-icon-4 { 28 | width: 25px; 29 | height: 30px; 30 | background-image: url("data:image/svg+xml;charset=utf-8,"); 31 | } 32 | .active i.tabbar-demo-icon-4 { 33 | background-image: url("data:image/svg+xml;charset=utf-8,"); 34 | } 35 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | HTMLCenter 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 |
19 | 20 |
21 |
22 |

Left pannel can have custom content.
23 | Another line
24 | Yet another line
25 |

26 |
27 |
28 | 29 |
30 |
31 |

Right pannel can have custom content.
32 | Another line
33 | Yet another line
34 |

35 |
36 |
37 | 38 |
39 | 40 |
41 | 42 | 76 | 77 | 284 | 285 | 289 | 290 |
291 |
292 | 293 | 294 | 295 | 296 | 297 | -------------------------------------------------------------------------------- /js/my-app.js: -------------------------------------------------------------------------------- 1 | // Initialize your app 2 | var myApp = new Framework7({ 3 | animateNavBackIcon:true, 4 | template7Pages: true, 5 | precompileTemplates: true 6 | }); 7 | 8 | // Export selectors engine 9 | var $$ = Dom7; 10 | 11 | // Add main View 12 | var mainView = myApp.addView('.view-main', { 13 | // Enable dynamic Navbar 14 | dynamicNavbar: true, 15 | // Enable Dom Cache so we can use all inline pages 16 | domCache: true 17 | }); 18 | 19 | // @TODO Parse.com credentials 20 | // Setup your Parse.com applicationId and API key 21 | var applicationId = 'xxx'; 22 | var restApiKey = 'yyy'; 23 | 24 | 25 | // Funcion to handle Cancel button on Login page 26 | $$('#cancel-login').on('click', function () { 27 | // Clear field values 28 | $$('#login-email').val(''); 29 | $$('#login-password').val(''); 30 | }); 31 | 32 | // Funcion to handle Submit button on Login page 33 | $$('#submmit-login').on('click', function () { 34 | 35 | var username = $$('#login-email').val(); 36 | var password = $$('#login-password').val(); 37 | 38 | console.log('Submit clicked'); 39 | console.log('username: ' +username); 40 | console.log('password: ' +password); 41 | 42 | var query = 'https://api.parse.com/1/login?username='+username+'&password='+password; 43 | myApp.showIndicator(); 44 | 45 | // Using Ajax for communication with Parse backend 46 | // Note mandatory headers with credentials required 47 | // by Parse. HTTP communication responses are handled 48 | // in success / error callbacks 49 | $$.ajax({ 50 | url: query, 51 | headers: {"X-Parse-Application-Id":applicationId,"X-Parse-REST-API-Key":restApiKey}, 52 | type: "GET", 53 | // if successful response received (http 2xx) 54 | success: function(data, textStatus ){ 55 | 56 | // We have received response and can hide activity indicator 57 | myApp.hideIndicator(); 58 | 59 | data = JSON.parse(data); 60 | if (!data.username) {return} 61 | 62 | var username = data.username; 63 | 64 | // Will pass context with retrieved user name 65 | // to welcome page. Redirect to welcome page 66 | mainView.router.load({ 67 | template: Template7.templates.welcomeTemplate, 68 | context: { 69 | name: username 70 | } 71 | }); 72 | }, 73 | error: function(xhr, textStatus, errorThrown){ 74 | // We have received response and can hide activity indicator 75 | myApp.hideIndicator(); 76 | myApp.alert('Login was unsuccessful, please verify username and password and try again'); 77 | 78 | $$('#login-email').val(''); 79 | $$('#login-password').val(''); 80 | } 81 | }); 82 | }); 83 | 84 | 85 | // Function to handle Submit button on Register page 86 | $$('#submmit-register').on('click', function () { 87 | 88 | var username = $$('#register-username').val(); 89 | var email = $$('#register-email').val(); 90 | var password = $$('#register-password').val(); 91 | 92 | console.log('Submit clicked'); 93 | console.log('username: ' +username+ 'and password: '+password+ 'and email: '+email); 94 | 95 | if (!username || !password || !email){ 96 | myApp.alert('Please fill in all Registration form fields'); 97 | return; 98 | } 99 | 100 | // Methods to handle speciffic HTTP response codes 101 | var success201 = function(data, textStatus, jqXHR) { 102 | 103 | // We have received response and can hide activity indicator 104 | myApp.hideIndicator(); 105 | 106 | console.log('Response body: '+data); 107 | 108 | // Will pass context with retrieved user name 109 | // to welcome page. Redirect to welcome page 110 | mainView.router.load({ 111 | template: Template7.templates.welcomeTemplate, 112 | context: { 113 | name: username 114 | } 115 | }); 116 | }; 117 | 118 | var notsuccess = function(data, textStatus, jqXHR) { 119 | // We have received response and can hide activity indicator 120 | myApp.hideIndicator(); 121 | myApp.alert('Login was unsuccessful, please try again'); 122 | }; 123 | 124 | var query = 'https://api.parse.com/1/users'; 125 | var postdata = {}; 126 | postdata.username = username; 127 | postdata.password = password; 128 | postdata.email = email; 129 | 130 | myApp.showIndicator(); 131 | 132 | // Using Ajax for communication with Parse backend 133 | // Note mandatory headers with credentials required 134 | // by Parse. HTTP communication responses are handled 135 | // based on HTTP response codes 136 | $$.ajax({ 137 | url: query, 138 | headers: {"X-Parse-Application-Id":applicationId,"X-Parse-REST-API-Key":restApiKey}, 139 | type: "POST", 140 | contentType: "application/json", 141 | data: JSON.stringify(postdata), 142 | 143 | statusCode: { 144 | 201: success201, 145 | 400: notsuccess, 146 | 500: notsuccess 147 | } 148 | }); 149 | 150 | }); 151 | 152 | 153 | 154 | --------------------------------------------------------------------------------