summaryrefslogtreecommitdiffstats
path: root/idrop-web
diff options
context:
space:
mode:
Diffstat (limited to 'idrop-web')
-rw-r--r--idrop-web/application.properties4
-rwxr-xr-xidrop-web/grails-app/conf/BuildConfig.groovy14
-rwxr-xr-xidrop-web/grails-app/conf/Config.groovy2
-rwxr-xr-xidrop-web/grails-app/conf/spring/resources.groovy6
-rwxr-xr-xidrop-web/grails-app/controllers/org/irods/mydrop/controller/BrowseController.groovy19
-rwxr-xr-xidrop-web/grails-app/controllers/org/irods/mydrop/controller/FileController.groovy2
-rwxr-xr-xidrop-web/grails-app/controllers/org/irods/mydrop/controller/HomeController.groovy4
-rw-r--r--idrop-web/grails-app/controllers/org/irods/mydrop/controller/RuleController.groovy437
-rwxr-xr-xidrop-web/grails-app/i18n/messages.properties21
-rw-r--r--idrop-web/grails-app/services/org/irods/mydrop/service/RuleProcessingService.groovy85
-rw-r--r--idrop-web/grails-app/views/browse/dataObjectInfo.gsp17
-rwxr-xr-xidrop-web/grails-app/views/browse/index.gsp2
-rwxr-xr-xidrop-web/grails-app/views/common/_topbar.gsp1
-rwxr-xr-xidrop-web/grails-app/views/home/link.gsp1
-rw-r--r--idrop-web/grails-app/views/rule/_ruleDelayExecQueueDetails.gsp61
-rw-r--r--idrop-web/grails-app/views/rule/_ruleDetails.gsp95
-rw-r--r--idrop-web/grails-app/views/rule/addParameterDialog.gsp154
-rw-r--r--idrop-web/grails-app/views/rule/delayExecQueue.gsp39
-rw-r--r--idrop-web/grails-app/views/rule/index.gsp229
-rw-r--r--idrop-web/grails-app/views/rule/ruleErrorResult.gsp23
-rw-r--r--idrop-web/grails-app/views/rule/ruleResult.gsp41
-rwxr-xr-xidrop-web/idrop-web-config2.groovy6
-rw-r--r--idrop-web/release_notes.txt6
-rw-r--r--idrop-web/src/groovy/org/irods/mydrop/config/ViewState.groovy5
-rw-r--r--idrop-web/test/unit/org/irods/mydrop/controller/RuleControllerTests.groovy17
-rw-r--r--idrop-web/test/unit/org/irods/mydrop/service/RuleProcessingServiceTests.groovy17
-rw-r--r--idrop-web/web-app/css/blackboard.css28
-rw-r--r--idrop-web/web-app/css/classic-demo.html26
-rw-r--r--idrop-web/web-app/css/codemirror-ui.css122
-rw-r--r--idrop-web/web-app/css/codemirror.css263
-rw-r--r--idrop-web/web-app/css/eclipse.css26
-rw-r--r--idrop-web/web-app/css/elegant.css13
-rw-r--r--idrop-web/web-app/images/autocompletion.gifbin0 -> 359 bytes
-rw-r--r--idrop-web/web-app/images/close.gifbin0 -> 102 bytes
-rw-r--r--idrop-web/web-app/images/fullscreen.gifbin0 -> 198 bytes
-rw-r--r--idrop-web/web-app/images/go_to_line.gifbin0 -> 1053 bytes
-rw-r--r--idrop-web/web-app/images/help.gifbin0 -> 295 bytes
-rw-r--r--idrop-web/web-app/images/highlight.gifbin0 -> 256 bytes
-rw-r--r--idrop-web/web-app/images/load.gifbin0 -> 1041 bytes
-rw-r--r--idrop-web/web-app/images/move.gifbin0 -> 257 bytes
-rw-r--r--idrop-web/web-app/images/newdocument.gifbin0 -> 170 bytes
-rw-r--r--idrop-web/web-app/images/octologo.pngbin0 -> 37704 bytes
-rw-r--r--idrop-web/web-app/images/opacity.pngbin0 -> 147 bytes
-rw-r--r--idrop-web/web-app/images/processing.gifbin0 -> 825 bytes
-rw-r--r--idrop-web/web-app/images/redo.gifbin0 -> 169 bytes
-rw-r--r--idrop-web/web-app/images/reset_highlight.gifbin0 -> 168 bytes
-rw-r--r--idrop-web/web-app/images/save.gifbin0 -> 285 bytes
-rw-r--r--idrop-web/web-app/images/search.gifbin0 -> 191 bytes
-rw-r--r--idrop-web/web-app/images/silk/accept.pngbin0 -> 781 bytes
-rw-r--r--idrop-web/web-app/images/silk/add.pngbin0 -> 733 bytes
-rw-r--r--idrop-web/web-app/images/silk/anchor.pngbin0 -> 523 bytes
-rw-r--r--idrop-web/web-app/images/silk/application.pngbin0 -> 464 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_add.pngbin0 -> 619 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_cascade.pngbin0 -> 524 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_delete.pngbin0 -> 610 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_double.pngbin0 -> 533 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_edit.pngbin0 -> 703 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_error.pngbin0 -> 656 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_form.pngbin0 -> 467 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_form_add.pngbin0 -> 592 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_form_delete.pngbin0 -> 605 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_form_edit.pngbin0 -> 714 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_form_magnify.pngbin0 -> 612 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_get.pngbin0 -> 581 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_go.pngbin0 -> 634 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_home.pngbin0 -> 685 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_key.pngbin0 -> 670 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_lightning.pngbin0 -> 656 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_link.pngbin0 -> 701 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_osx.pngbin0 -> 487 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_osx_terminal.pngbin0 -> 525 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_put.pngbin0 -> 585 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_side_boxes.pngbin0 -> 478 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_side_contract.pngbin0 -> 547 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_side_expand.pngbin0 -> 581 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_side_list.pngbin0 -> 510 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_side_tree.pngbin0 -> 483 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_split.pngbin0 -> 520 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_tile_horizontal.pngbin0 -> 432 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_tile_vertical.pngbin0 -> 492 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_view_columns.pngbin0 -> 493 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_view_detail.pngbin0 -> 576 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_view_gallery.pngbin0 -> 555 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_view_icons.pngbin0 -> 476 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_view_list.pngbin0 -> 473 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_view_tile.pngbin0 -> 465 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_xp.pngbin0 -> 426 bytes
-rw-r--r--idrop-web/web-app/images/silk/application_xp_terminal.pngbin0 -> 507 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_branch.pngbin0 -> 582 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_divide.pngbin0 -> 677 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_down.pngbin0 -> 379 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_in.pngbin0 -> 600 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_inout.pngbin0 -> 551 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_join.pngbin0 -> 626 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_left.pngbin0 -> 345 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_merge.pngbin0 -> 484 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_out.pngbin0 -> 594 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_out_diag.pngbin0 -> 1129 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_redo.pngbin0 -> 625 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_refresh.pngbin0 -> 685 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_refresh_small.pngbin0 -> 506 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_right.pngbin0 -> 349 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_rotate_anticlockwise.pngbin0 -> 608 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_rotate_clockwise.pngbin0 -> 602 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_switch.pngbin0 -> 683 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_turn_left.pngbin0 -> 516 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_turn_right.pngbin0 -> 489 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_undo.pngbin0 -> 631 bytes
-rw-r--r--idrop-web/web-app/images/silk/arrow_up.pngbin0 -> 372 bytes
-rw-r--r--idrop-web/web-app/images/silk/asterisk_orange.pngbin0 -> 760 bytes
-rw-r--r--idrop-web/web-app/images/silk/asterisk_yellow.pngbin0 -> 743 bytes
-rw-r--r--idrop-web/web-app/images/silk/attach.pngbin0 -> 391 bytes
-rw-r--r--idrop-web/web-app/images/silk/award_star_add.pngbin0 -> 853 bytes
-rw-r--r--idrop-web/web-app/images/silk/award_star_bronze_1.pngbin0 -> 733 bytes
-rw-r--r--idrop-web/web-app/images/silk/award_star_bronze_2.pngbin0 -> 755 bytes
-rw-r--r--idrop-web/web-app/images/silk/award_star_bronze_3.pngbin0 -> 754 bytes
-rw-r--r--idrop-web/web-app/images/silk/award_star_delete.pngbin0 -> 849 bytes
-rw-r--r--idrop-web/web-app/images/silk/award_star_gold_1.pngbin0 -> 753 bytes
-rw-r--r--idrop-web/web-app/images/silk/award_star_gold_2.pngbin0 -> 770 bytes
-rw-r--r--idrop-web/web-app/images/silk/award_star_gold_3.pngbin0 -> 781 bytes
-rw-r--r--idrop-web/web-app/images/silk/award_star_silver_1.pngbin0 -> 714 bytes
-rw-r--r--idrop-web/web-app/images/silk/award_star_silver_2.pngbin0 -> 734 bytes
-rw-r--r--idrop-web/web-app/images/silk/award_star_silver_3.pngbin0 -> 738 bytes
-rw-r--r--idrop-web/web-app/images/silk/basket.pngbin0 -> 669 bytes
-rw-r--r--idrop-web/web-app/images/silk/basket_add.pngbin0 -> 752 bytes
-rw-r--r--idrop-web/web-app/images/silk/basket_delete.pngbin0 -> 773 bytes
-rw-r--r--idrop-web/web-app/images/silk/basket_edit.pngbin0 -> 811 bytes
-rw-r--r--idrop-web/web-app/images/silk/basket_error.pngbin0 -> 794 bytes
-rw-r--r--idrop-web/web-app/images/silk/basket_go.pngbin0 -> 777 bytes
-rw-r--r--idrop-web/web-app/images/silk/basket_put.pngbin0 -> 733 bytes
-rw-r--r--idrop-web/web-app/images/silk/basket_remove.pngbin0 -> 738 bytes
-rw-r--r--idrop-web/web-app/images/silk/bell.pngbin0 -> 789 bytes
-rw-r--r--idrop-web/web-app/images/silk/bell_add.pngbin0 -> 816 bytes
-rw-r--r--idrop-web/web-app/images/silk/bell_delete.pngbin0 -> 824 bytes
-rw-r--r--idrop-web/web-app/images/silk/bell_error.pngbin0 -> 813 bytes
-rw-r--r--idrop-web/web-app/images/silk/bell_go.pngbin0 -> 836 bytes
-rw-r--r--idrop-web/web-app/images/silk/bell_link.pngbin0 -> 850 bytes
-rw-r--r--idrop-web/web-app/images/silk/bin.pngbin0 -> 476 bytes
-rw-r--r--idrop-web/web-app/images/silk/bin_closed.pngbin0 -> 363 bytes
-rw-r--r--idrop-web/web-app/images/silk/bin_empty.pngbin0 -> 475 bytes
-rw-r--r--idrop-web/web-app/images/silk/bomb.pngbin0 -> 793 bytes
-rw-r--r--idrop-web/web-app/images/silk/book.pngbin0 -> 593 bytes
-rw-r--r--idrop-web/web-app/images/silk/book_add.pngbin0 -> 714 bytes
-rw-r--r--idrop-web/web-app/images/silk/book_addresses.pngbin0 -> 770 bytes
-rw-r--r--idrop-web/web-app/images/silk/book_delete.pngbin0 -> 719 bytes
-rw-r--r--idrop-web/web-app/images/silk/book_edit.pngbin0 -> 813 bytes
-rw-r--r--idrop-web/web-app/images/silk/book_error.pngbin0 -> 734 bytes
-rw-r--r--idrop-web/web-app/images/silk/book_go.pngbin0 -> 745 bytes
-rw-r--r--idrop-web/web-app/images/silk/book_key.pngbin0 -> 779 bytes
-rw-r--r--idrop-web/web-app/images/silk/book_link.pngbin0 -> 789 bytes
-rw-r--r--idrop-web/web-app/images/silk/book_next.pngbin0 -> 702 bytes
-rw-r--r--idrop-web/web-app/images/silk/book_open.pngbin0 -> 622 bytes
-rw-r--r--idrop-web/web-app/images/silk/book_previous.pngbin0 -> 680 bytes
-rw-r--r--idrop-web/web-app/images/silk/box.pngbin0 -> 555 bytes
-rw-r--r--idrop-web/web-app/images/silk/brick.pngbin0 -> 452 bytes
-rw-r--r--idrop-web/web-app/images/silk/brick_add.pngbin0 -> 729 bytes
-rw-r--r--idrop-web/web-app/images/silk/brick_delete.pngbin0 -> 745 bytes
-rw-r--r--idrop-web/web-app/images/silk/brick_edit.pngbin0 -> 775 bytes
-rw-r--r--idrop-web/web-app/images/silk/brick_error.pngbin0 -> 798 bytes
-rw-r--r--idrop-web/web-app/images/silk/brick_go.pngbin0 -> 790 bytes
-rw-r--r--idrop-web/web-app/images/silk/brick_link.pngbin0 -> 764 bytes
-rw-r--r--idrop-web/web-app/images/silk/bricks.pngbin0 -> 825 bytes
-rw-r--r--idrop-web/web-app/images/silk/briefcase.pngbin0 -> 793 bytes
-rw-r--r--idrop-web/web-app/images/silk/bug.pngbin0 -> 774 bytes
-rw-r--r--idrop-web/web-app/images/silk/bug_add.pngbin0 -> 806 bytes
-rw-r--r--idrop-web/web-app/images/silk/bug_delete.pngbin0 -> 836 bytes
-rw-r--r--idrop-web/web-app/images/silk/bug_edit.pngbin0 -> 873 bytes
-rw-r--r--idrop-web/web-app/images/silk/bug_error.pngbin0 -> 841 bytes
-rw-r--r--idrop-web/web-app/images/silk/bug_go.pngbin0 -> 831 bytes
-rw-r--r--idrop-web/web-app/images/silk/bug_link.pngbin0 -> 847 bytes
-rw-r--r--idrop-web/web-app/images/silk/building.pngbin0 -> 556 bytes
-rw-r--r--idrop-web/web-app/images/silk/building_add.pngbin0 -> 631 bytes
-rw-r--r--idrop-web/web-app/images/silk/building_delete.pngbin0 -> 633 bytes
-rw-r--r--idrop-web/web-app/images/silk/building_edit.pngbin0 -> 731 bytes
-rw-r--r--idrop-web/web-app/images/silk/building_error.pngbin0 -> 653 bytes
-rw-r--r--idrop-web/web-app/images/silk/building_go.pngbin0 -> 665 bytes
-rw-r--r--idrop-web/web-app/images/silk/building_key.pngbin0 -> 705 bytes
-rw-r--r--idrop-web/web-app/images/silk/building_link.pngbin0 -> 668 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_add.pngbin0 -> 286 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_arrow_bottom.pngbin0 -> 229 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_arrow_down.pngbin0 -> 201 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_arrow_top.pngbin0 -> 230 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_arrow_up.pngbin0 -> 201 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_black.pngbin0 -> 211 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_blue.pngbin0 -> 289 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_delete.pngbin0 -> 308 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_disk.pngbin0 -> 483 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_error.pngbin0 -> 454 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_feed.pngbin0 -> 262 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_go.pngbin0 -> 410 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_green.pngbin0 -> 295 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_key.pngbin0 -> 436 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_orange.pngbin0 -> 283 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_picture.pngbin0 -> 470 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_pink.pngbin0 -> 286 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_purple.pngbin0 -> 294 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_red.pngbin0 -> 287 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_star.pngbin0 -> 331 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_toggle_minus.pngbin0 -> 207 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_toggle_plus.pngbin0 -> 209 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_white.pngbin0 -> 201 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_wrench.pngbin0 -> 448 bytes
-rw-r--r--idrop-web/web-app/images/silk/bullet_yellow.pngbin0 -> 287 bytes
-rw-r--r--idrop-web/web-app/images/silk/cake.pngbin0 -> 676 bytes
-rw-r--r--idrop-web/web-app/images/silk/calculator.pngbin0 -> 543 bytes
-rw-r--r--idrop-web/web-app/images/silk/calculator_add.pngbin0 -> 660 bytes
-rw-r--r--idrop-web/web-app/images/silk/calculator_delete.pngbin0 -> 692 bytes
-rw-r--r--idrop-web/web-app/images/silk/calculator_edit.pngbin0 -> 767 bytes
-rw-r--r--idrop-web/web-app/images/silk/calculator_error.pngbin0 -> 731 bytes
-rw-r--r--idrop-web/web-app/images/silk/calculator_link.pngbin0 -> 723 bytes
-rw-r--r--idrop-web/web-app/images/silk/calendar.pngbin0 -> 675 bytes
-rw-r--r--idrop-web/web-app/images/silk/calendar_add.pngbin0 -> 723 bytes
-rw-r--r--idrop-web/web-app/images/silk/calendar_delete.pngbin0 -> 742 bytes
-rw-r--r--idrop-web/web-app/images/silk/calendar_edit.pngbin0 -> 777 bytes
-rw-r--r--idrop-web/web-app/images/silk/calendar_link.pngbin0 -> 795 bytes
-rw-r--r--idrop-web/web-app/images/silk/calendar_view_day.pngbin0 -> 572 bytes
-rw-r--r--idrop-web/web-app/images/silk/calendar_view_month.pngbin0 -> 595 bytes
-rw-r--r--idrop-web/web-app/images/silk/calendar_view_week.pngbin0 -> 480 bytes
-rw-r--r--idrop-web/web-app/images/silk/camera.pngbin0 -> 665 bytes
-rw-r--r--idrop-web/web-app/images/silk/camera_add.pngbin0 -> 800 bytes
-rw-r--r--idrop-web/web-app/images/silk/camera_delete.pngbin0 -> 797 bytes
-rw-r--r--idrop-web/web-app/images/silk/camera_edit.pngbin0 -> 872 bytes
-rw-r--r--idrop-web/web-app/images/silk/camera_error.pngbin0 -> 835 bytes
-rw-r--r--idrop-web/web-app/images/silk/camera_go.pngbin0 -> 809 bytes
-rw-r--r--idrop-web/web-app/images/silk/camera_link.pngbin0 -> 839 bytes
-rw-r--r--idrop-web/web-app/images/silk/camera_small.pngbin0 -> 489 bytes
-rw-r--r--idrop-web/web-app/images/silk/cancel.pngbin0 -> 587 bytes
-rw-r--r--idrop-web/web-app/images/silk/car.pngbin0 -> 610 bytes
-rw-r--r--idrop-web/web-app/images/silk/car_add.pngbin0 -> 677 bytes
-rw-r--r--idrop-web/web-app/images/silk/car_delete.pngbin0 -> 689 bytes
-rw-r--r--idrop-web/web-app/images/silk/cart.pngbin0 -> 421 bytes
-rw-r--r--idrop-web/web-app/images/silk/cart_add.pngbin0 -> 711 bytes
-rw-r--r--idrop-web/web-app/images/silk/cart_delete.pngbin0 -> 742 bytes
-rw-r--r--idrop-web/web-app/images/silk/cart_edit.pngbin0 -> 789 bytes
-rw-r--r--idrop-web/web-app/images/silk/cart_error.pngbin0 -> 790 bytes
-rw-r--r--idrop-web/web-app/images/silk/cart_go.pngbin0 -> 763 bytes
-rw-r--r--idrop-web/web-app/images/silk/cart_put.pngbin0 -> 763 bytes
-rw-r--r--idrop-web/web-app/images/silk/cart_remove.pngbin0 -> 769 bytes
-rw-r--r--idrop-web/web-app/images/silk/cd.pngbin0 -> 673 bytes
-rw-r--r--idrop-web/web-app/images/silk/cd_add.pngbin0 -> 758 bytes
-rw-r--r--idrop-web/web-app/images/silk/cd_burn.pngbin0 -> 756 bytes
-rw-r--r--idrop-web/web-app/images/silk/cd_delete.pngbin0 -> 767 bytes
-rw-r--r--idrop-web/web-app/images/silk/cd_edit.pngbin0 -> 790 bytes
-rw-r--r--idrop-web/web-app/images/silk/cd_eject.pngbin0 -> 786 bytes
-rw-r--r--idrop-web/web-app/images/silk/cd_go.pngbin0 -> 793 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_bar.pngbin0 -> 541 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_bar_add.pngbin0 -> 626 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_bar_delete.pngbin0 -> 636 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_bar_edit.pngbin0 -> 754 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_bar_error.pngbin0 -> 671 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_bar_link.pngbin0 -> 712 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_curve.pngbin0 -> 710 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_curve_add.pngbin0 -> 761 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_curve_delete.pngbin0 -> 782 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_curve_edit.pngbin0 -> 822 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_curve_error.pngbin0 -> 837 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_curve_go.pngbin0 -> 823 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_curve_link.pngbin0 -> 829 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_line.pngbin0 -> 526 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_line_add.pngbin0 -> 655 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_line_delete.pngbin0 -> 675 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_line_edit.pngbin0 -> 718 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_line_error.pngbin0 -> 741 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_line_link.pngbin0 -> 749 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_organisation.pngbin0 -> 444 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_organisation_add.pngbin0 -> 551 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_organisation_delete.pngbin0 -> 563 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_pie.pngbin0 -> 918 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_pie_add.pngbin0 -> 975 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_pie_delete.pngbin0 -> 983 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_pie_edit.pngbin0 -> 986 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_pie_error.pngbin0 -> 989 bytes
-rw-r--r--idrop-web/web-app/images/silk/chart_pie_link.pngbin0 -> 1021 bytes
-rw-r--r--idrop-web/web-app/images/silk/clock.pngbin0 -> 882 bytes
-rw-r--r--idrop-web/web-app/images/silk/clock_add.pngbin0 -> 925 bytes
-rw-r--r--idrop-web/web-app/images/silk/clock_delete.pngbin0 -> 952 bytes
-rw-r--r--idrop-web/web-app/images/silk/clock_edit.pngbin0 -> 967 bytes
-rw-r--r--idrop-web/web-app/images/silk/clock_error.pngbin0 -> 953 bytes
-rw-r--r--idrop-web/web-app/images/silk/clock_go.pngbin0 -> 959 bytes
-rw-r--r--idrop-web/web-app/images/silk/clock_link.pngbin0 -> 961 bytes
-rw-r--r--idrop-web/web-app/images/silk/clock_pause.pngbin0 -> 927 bytes
-rw-r--r--idrop-web/web-app/images/silk/clock_play.pngbin0 -> 943 bytes
-rw-r--r--idrop-web/web-app/images/silk/clock_red.pngbin0 -> 889 bytes
-rw-r--r--idrop-web/web-app/images/silk/clock_stop.pngbin0 -> 922 bytes
-rw-r--r--idrop-web/web-app/images/silk/cog.pngbin0 -> 512 bytes
-rw-r--r--idrop-web/web-app/images/silk/cog_add.pngbin0 -> 814 bytes
-rw-r--r--idrop-web/web-app/images/silk/cog_delete.pngbin0 -> 847 bytes
-rw-r--r--idrop-web/web-app/images/silk/cog_edit.pngbin0 -> 865 bytes
-rw-r--r--idrop-web/web-app/images/silk/cog_error.pngbin0 -> 869 bytes
-rw-r--r--idrop-web/web-app/images/silk/cog_go.pngbin0 -> 859 bytes
-rw-r--r--idrop-web/web-app/images/silk/coins.pngbin0 -> 732 bytes
-rw-r--r--idrop-web/web-app/images/silk/coins_add.pngbin0 -> 789 bytes
-rw-r--r--idrop-web/web-app/images/silk/coins_delete.pngbin0 -> 775 bytes
-rw-r--r--idrop-web/web-app/images/silk/color_swatch.pngbin0 -> 209 bytes
-rw-r--r--idrop-web/web-app/images/silk/color_wheel.pngbin0 -> 892 bytes
-rw-r--r--idrop-web/web-app/images/silk/comment.pngbin0 -> 413 bytes
-rw-r--r--idrop-web/web-app/images/silk/comment_add.pngbin0 -> 530 bytes
-rw-r--r--idrop-web/web-app/images/silk/comment_delete.pngbin0 -> 548 bytes
-rw-r--r--idrop-web/web-app/images/silk/comment_edit.pngbin0 -> 644 bytes
-rw-r--r--idrop-web/web-app/images/silk/comments.pngbin0 -> 557 bytes
-rw-r--r--idrop-web/web-app/images/silk/comments_add.pngbin0 -> 648 bytes
-rw-r--r--idrop-web/web-app/images/silk/comments_delete.pngbin0 -> 670 bytes
-rw-r--r--idrop-web/web-app/images/silk/compress.pngbin0 -> 766 bytes
-rw-r--r--idrop-web/web-app/images/silk/computer.pngbin0 -> 667 bytes
-rw-r--r--idrop-web/web-app/images/silk/computer_add.pngbin0 -> 781 bytes
-rw-r--r--idrop-web/web-app/images/silk/computer_delete.pngbin0 -> 775 bytes
-rw-r--r--idrop-web/web-app/images/silk/computer_edit.pngbin0 -> 792 bytes
-rw-r--r--idrop-web/web-app/images/silk/computer_error.pngbin0 -> 784 bytes
-rw-r--r--idrop-web/web-app/images/silk/computer_go.pngbin0 -> 777 bytes
-rw-r--r--idrop-web/web-app/images/silk/computer_key.pngbin0 -> 771 bytes
-rw-r--r--idrop-web/web-app/images/silk/computer_link.pngbin0 -> 792 bytes
-rw-r--r--idrop-web/web-app/images/silk/connect.pngbin0 -> 748 bytes
-rw-r--r--idrop-web/web-app/images/silk/contrast.pngbin0 -> 434 bytes
-rw-r--r--idrop-web/web-app/images/silk/contrast_decrease.pngbin0 -> 695 bytes
-rw-r--r--idrop-web/web-app/images/silk/contrast_high.pngbin0 -> 435 bytes
-rw-r--r--idrop-web/web-app/images/silk/contrast_increase.pngbin0 -> 717 bytes
-rw-r--r--idrop-web/web-app/images/silk/contrast_low.pngbin0 -> 421 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_eject.pngbin0 -> 603 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_eject_blue.pngbin0 -> 727 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_end.pngbin0 -> 621 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_end_blue.pngbin0 -> 737 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_equalizer.pngbin0 -> 432 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_equalizer_blue.pngbin0 -> 764 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_fastforward.pngbin0 -> 607 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_fastforward_blue.pngbin0 -> 736 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_pause.pngbin0 -> 598 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_pause_blue.pngbin0 -> 721 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_play.pngbin0 -> 592 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_play_blue.pngbin0 -> 717 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_repeat.pngbin0 -> 422 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_repeat_blue.pngbin0 -> 750 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_rewind.pngbin0 -> 614 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_rewind_blue.pngbin0 -> 745 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_start.pngbin0 -> 604 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_start_blue.pngbin0 -> 720 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_stop.pngbin0 -> 403 bytes
-rw-r--r--idrop-web/web-app/images/silk/control_stop_blue.pngbin0 -> 695 bytes
-rw-r--r--idrop-web/web-app/images/silk/controller.pngbin0 -> 666 bytes
-rw-r--r--idrop-web/web-app/images/silk/controller_add.pngbin0 -> 759 bytes
-rw-r--r--idrop-web/web-app/images/silk/controller_delete.pngbin0 -> 770 bytes
-rw-r--r--idrop-web/web-app/images/silk/controller_error.pngbin0 -> 815 bytes
-rw-r--r--idrop-web/web-app/images/silk/creditcards.pngbin0 -> 693 bytes
-rw-r--r--idrop-web/web-app/images/silk/cross.pngbin0 -> 655 bytes
-rw-r--r--idrop-web/web-app/images/silk/css.pngbin0 -> 524 bytes
-rw-r--r--idrop-web/web-app/images/silk/css_add.pngbin0 -> 666 bytes
-rw-r--r--idrop-web/web-app/images/silk/css_delete.pngbin0 -> 654 bytes
-rw-r--r--idrop-web/web-app/images/silk/css_go.pngbin0 -> 655 bytes
-rw-r--r--idrop-web/web-app/images/silk/css_valid.pngbin0 -> 661 bytes
-rw-r--r--idrop-web/web-app/images/silk/cup.pngbin0 -> 633 bytes
-rw-r--r--idrop-web/web-app/images/silk/cup_add.pngbin0 -> 715 bytes
-rw-r--r--idrop-web/web-app/images/silk/cup_delete.pngbin0 -> 731 bytes
-rw-r--r--idrop-web/web-app/images/silk/cup_edit.pngbin0 -> 778 bytes
-rw-r--r--idrop-web/web-app/images/silk/cup_error.pngbin0 -> 790 bytes
-rw-r--r--idrop-web/web-app/images/silk/cup_go.pngbin0 -> 780 bytes
-rw-r--r--idrop-web/web-app/images/silk/cup_key.pngbin0 -> 776 bytes
-rw-r--r--idrop-web/web-app/images/silk/cup_link.pngbin0 -> 760 bytes
-rw-r--r--idrop-web/web-app/images/silk/cursor.pngbin0 -> 354 bytes
-rw-r--r--idrop-web/web-app/images/silk/cut.pngbin0 -> 648 bytes
-rw-r--r--idrop-web/web-app/images/silk/cut_red.pngbin0 -> 650 bytes
-rw-r--r--idrop-web/web-app/images/silk/database.pngbin0 -> 390 bytes
-rw-r--r--idrop-web/web-app/images/silk/database_add.pngbin0 -> 658 bytes
-rw-r--r--idrop-web/web-app/images/silk/database_connect.pngbin0 -> 763 bytes
-rw-r--r--idrop-web/web-app/images/silk/database_delete.pngbin0 -> 659 bytes
-rw-r--r--idrop-web/web-app/images/silk/database_edit.pngbin0 -> 767 bytes
-rw-r--r--idrop-web/web-app/images/silk/database_error.pngbin0 -> 682 bytes
-rw-r--r--idrop-web/web-app/images/silk/database_gear.pngbin0 -> 468 bytes
-rw-r--r--idrop-web/web-app/images/silk/database_go.pngbin0 -> 698 bytes
-rw-r--r--idrop-web/web-app/images/silk/database_key.pngbin0 -> 764 bytes
-rw-r--r--idrop-web/web-app/images/silk/database_lightning.pngbin0 -> 775 bytes
-rw-r--r--idrop-web/web-app/images/silk/database_link.pngbin0 -> 679 bytes
-rw-r--r--idrop-web/web-app/images/silk/database_refresh.pngbin0 -> 770 bytes
-rw-r--r--idrop-web/web-app/images/silk/database_save.pngbin0 -> 755 bytes
-rw-r--r--idrop-web/web-app/images/silk/database_table.pngbin0 -> 726 bytes
-rw-r--r--idrop-web/web-app/images/silk/date.pngbin0 -> 626 bytes
-rw-r--r--idrop-web/web-app/images/silk/date_add.pngbin0 -> 703 bytes
-rw-r--r--idrop-web/web-app/images/silk/date_delete.pngbin0 -> 716 bytes
-rw-r--r--idrop-web/web-app/images/silk/date_edit.pngbin0 -> 799 bytes
-rw-r--r--idrop-web/web-app/images/silk/date_error.pngbin0 -> 753 bytes
-rw-r--r--idrop-web/web-app/images/silk/date_go.pngbin0 -> 753 bytes
-rw-r--r--idrop-web/web-app/images/silk/date_link.pngbin0 -> 764 bytes
-rw-r--r--idrop-web/web-app/images/silk/date_magnify.pngbin0 -> 711 bytes
-rw-r--r--idrop-web/web-app/images/silk/date_next.pngbin0 -> 688 bytes
-rw-r--r--idrop-web/web-app/images/silk/date_previous.pngbin0 -> 720 bytes
-rw-r--r--idrop-web/web-app/images/silk/delete.pngbin0 -> 715 bytes
-rw-r--r--idrop-web/web-app/images/silk/disconnect.pngbin0 -> 796 bytes
-rw-r--r--idrop-web/web-app/images/silk/disk.pngbin0 -> 620 bytes
-rw-r--r--idrop-web/web-app/images/silk/disk_multiple.pngbin0 -> 691 bytes
-rw-r--r--idrop-web/web-app/images/silk/door.pngbin0 -> 412 bytes
-rw-r--r--idrop-web/web-app/images/silk/door_in.pngbin0 -> 693 bytes
-rw-r--r--idrop-web/web-app/images/silk/door_open.pngbin0 -> 508 bytes
-rw-r--r--idrop-web/web-app/images/silk/door_out.pngbin0 -> 688 bytes
-rw-r--r--idrop-web/web-app/images/silk/drink.pngbin0 -> 692 bytes
-rw-r--r--idrop-web/web-app/images/silk/drink_empty.pngbin0 -> 433 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive.pngbin0 -> 346 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_add.pngbin0 -> 623 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_burn.pngbin0 -> 608 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_cd.pngbin0 -> 734 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_cd_empty.pngbin0 -> 341 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_delete.pngbin0 -> 628 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_disk.pngbin0 -> 695 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_edit.pngbin0 -> 714 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_error.pngbin0 -> 705 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_go.pngbin0 -> 661 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_key.pngbin0 -> 681 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_link.pngbin0 -> 679 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_magnify.pngbin0 -> 641 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_network.pngbin0 -> 585 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_rename.pngbin0 -> 494 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_user.pngbin0 -> 712 bytes
-rw-r--r--idrop-web/web-app/images/silk/drive_web.pngbin0 -> 686 bytes
-rw-r--r--idrop-web/web-app/images/silk/dvd.pngbin0 -> 764 bytes
-rw-r--r--idrop-web/web-app/images/silk/dvd_add.pngbin0 -> 788 bytes
-rw-r--r--idrop-web/web-app/images/silk/dvd_delete.pngbin0 -> 800 bytes
-rw-r--r--idrop-web/web-app/images/silk/dvd_edit.pngbin0 -> 844 bytes
-rw-r--r--idrop-web/web-app/images/silk/dvd_error.pngbin0 -> 854 bytes
-rw-r--r--idrop-web/web-app/images/silk/dvd_go.pngbin0 -> 854 bytes
-rw-r--r--idrop-web/web-app/images/silk/dvd_key.pngbin0 -> 816 bytes
-rw-r--r--idrop-web/web-app/images/silk/dvd_link.pngbin0 -> 819 bytes
-rw-r--r--idrop-web/web-app/images/silk/email.pngbin0 -> 641 bytes
-rw-r--r--idrop-web/web-app/images/silk/email_add.pngbin0 -> 761 bytes
-rw-r--r--idrop-web/web-app/images/silk/email_attach.pngbin0 -> 793 bytes
-rw-r--r--idrop-web/web-app/images/silk/email_delete.pngbin0 -> 756 bytes
-rw-r--r--idrop-web/web-app/images/silk/email_edit.pngbin0 -> 756 bytes
-rw-r--r--idrop-web/web-app/images/silk/email_error.pngbin0 -> 792 bytes
-rw-r--r--idrop-web/web-app/images/silk/email_go.pngbin0 -> 754 bytes
-rw-r--r--idrop-web/web-app/images/silk/email_link.pngbin0 -> 821 bytes
-rw-r--r--idrop-web/web-app/images/silk/email_open.pngbin0 -> 783 bytes
-rw-r--r--idrop-web/web-app/images/silk/email_open_image.pngbin0 -> 811 bytes
-rw-r--r--idrop-web/web-app/images/silk/emoticon_evilgrin.pngbin0 -> 727 bytes
-rw-r--r--idrop-web/web-app/images/silk/emoticon_grin.pngbin0 -> 714 bytes
-rw-r--r--idrop-web/web-app/images/silk/emoticon_happy.pngbin0 -> 731 bytes
-rw-r--r--idrop-web/web-app/images/silk/emoticon_smile.pngbin0 -> 725 bytes
-rw-r--r--idrop-web/web-app/images/silk/emoticon_surprised.pngbin0 -> 741 bytes
-rw-r--r--idrop-web/web-app/images/silk/emoticon_tongue.pngbin0 -> 727 bytes
-rw-r--r--idrop-web/web-app/images/silk/emoticon_unhappy.pngbin0 -> 723 bytes
-rw-r--r--idrop-web/web-app/images/silk/emoticon_waii.pngbin0 -> 737 bytes
-rw-r--r--idrop-web/web-app/images/silk/emoticon_wink.pngbin0 -> 712 bytes
-rw-r--r--idrop-web/web-app/images/silk/error.pngbin0 -> 666 bytes
-rw-r--r--idrop-web/web-app/images/silk/error_add.pngbin0 -> 710 bytes
-rw-r--r--idrop-web/web-app/images/silk/error_delete.pngbin0 -> 729 bytes
-rw-r--r--idrop-web/web-app/images/silk/error_go.pngbin0 -> 734 bytes
-rw-r--r--idrop-web/web-app/images/silk/exclamation.pngbin0 -> 701 bytes
-rw-r--r--idrop-web/web-app/images/silk/eye.pngbin0 -> 750 bytes
-rw-r--r--idrop-web/web-app/images/silk/feed.pngbin0 -> 691 bytes
-rw-r--r--idrop-web/web-app/images/silk/feed_add.pngbin0 -> 763 bytes
-rw-r--r--idrop-web/web-app/images/silk/feed_delete.pngbin0 -> 746 bytes
-rw-r--r--idrop-web/web-app/images/silk/feed_disk.pngbin0 -> 738 bytes
-rw-r--r--idrop-web/web-app/images/silk/feed_edit.pngbin0 -> 801 bytes
-rw-r--r--idrop-web/web-app/images/silk/feed_error.pngbin0 -> 770 bytes
-rw-r--r--idrop-web/web-app/images/silk/feed_go.pngbin0 -> 761 bytes
-rw-r--r--idrop-web/web-app/images/silk/feed_key.pngbin0 -> 771 bytes
-rw-r--r--idrop-web/web-app/images/silk/feed_link.pngbin0 -> 806 bytes
-rw-r--r--idrop-web/web-app/images/silk/feed_magnify.pngbin0 -> 737 bytes
-rw-r--r--idrop-web/web-app/images/silk/female.pngbin0 -> 590 bytes
-rw-r--r--idrop-web/web-app/images/silk/film.pngbin0 -> 653 bytes
-rw-r--r--idrop-web/web-app/images/silk/film_add.pngbin0 -> 739 bytes
-rw-r--r--idrop-web/web-app/images/silk/film_delete.pngbin0 -> 730 bytes
-rw-r--r--idrop-web/web-app/images/silk/film_edit.pngbin0 -> 855 bytes
-rw-r--r--idrop-web/web-app/images/silk/film_error.pngbin0 -> 800 bytes
-rw-r--r--idrop-web/web-app/images/silk/film_go.pngbin0 -> 813 bytes
-rw-r--r--idrop-web/web-app/images/silk/film_key.pngbin0 -> 835 bytes
-rw-r--r--idrop-web/web-app/images/silk/film_link.pngbin0 -> 830 bytes
-rw-r--r--idrop-web/web-app/images/silk/film_save.pngbin0 -> 806 bytes
-rw-r--r--idrop-web/web-app/images/silk/find.pngbin0 -> 659 bytes
-rw-r--r--idrop-web/web-app/images/silk/flag_blue.pngbin0 -> 671 bytes
-rw-r--r--idrop-web/web-app/images/silk/flag_green.pngbin0 -> 672 bytes
-rw-r--r--idrop-web/web-app/images/silk/flag_orange.pngbin0 -> 669 bytes
-rw-r--r--idrop-web/web-app/images/silk/flag_pink.pngbin0 -> 651 bytes
-rw-r--r--idrop-web/web-app/images/silk/flag_purple.pngbin0 -> 656 bytes
-rw-r--r--idrop-web/web-app/images/silk/flag_red.pngbin0 -> 665 bytes
-rw-r--r--idrop-web/web-app/images/silk/flag_yellow.pngbin0 -> 671 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder.pngbin0 -> 537 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_add.pngbin0 -> 668 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_bell.pngbin0 -> 781 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_brick.pngbin0 -> 735 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_bug.pngbin0 -> 829 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_camera.pngbin0 -> 729 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_database.pngbin0 -> 687 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_delete.pngbin0 -> 666 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_edit.pngbin0 -> 733 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_error.pngbin0 -> 727 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_explore.pngbin0 -> 679 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_feed.pngbin0 -> 691 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_find.pngbin0 -> 795 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_go.pngbin0 -> 694 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_heart.pngbin0 -> 741 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_image.pngbin0 -> 677 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_key.pngbin0 -> 720 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_lightbulb.pngbin0 -> 741 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_link.pngbin0 -> 785 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_magnify.pngbin0 -> 686 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_page.pngbin0 -> 688 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_page_white.pngbin0 -> 639 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_palette.pngbin0 -> 822 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_picture.pngbin0 -> 713 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_star.pngbin0 -> 755 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_table.pngbin0 -> 675 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_user.pngbin0 -> 730 bytes
-rw-r--r--idrop-web/web-app/images/silk/folder_wrench.pngbin0 -> 740 bytes
-rw-r--r--idrop-web/web-app/images/silk/font.pngbin0 -> 567 bytes
-rw-r--r--idrop-web/web-app/images/silk/font_add.pngbin0 -> 634 bytes
-rw-r--r--idrop-web/web-app/images/silk/font_delete.pngbin0 -> 661 bytes
-rw-r--r--idrop-web/web-app/images/silk/font_go.pngbin0 -> 700 bytes
-rw-r--r--idrop-web/web-app/images/silk/group.pngbin0 -> 753 bytes
-rw-r--r--idrop-web/web-app/images/silk/group_add.pngbin0 -> 807 bytes
-rw-r--r--idrop-web/web-app/images/silk/group_delete.pngbin0 -> 827 bytes
-rw-r--r--idrop-web/web-app/images/silk/group_edit.pngbin0 -> 785 bytes
-rw-r--r--idrop-web/web-app/images/silk/group_error.pngbin0 -> 842 bytes
-rw-r--r--idrop-web/web-app/images/silk/group_gear.pngbin0 -> 824 bytes
-rw-r--r--idrop-web/web-app/images/silk/group_go.pngbin0 -> 842 bytes
-rw-r--r--idrop-web/web-app/images/silk/group_key.pngbin0 -> 813 bytes
-rw-r--r--idrop-web/web-app/images/silk/group_link.pngbin0 -> 858 bytes
-rw-r--r--idrop-web/web-app/images/silk/heart.pngbin0 -> 749 bytes
-rw-r--r--idrop-web/web-app/images/silk/heart_add.pngbin0 -> 820 bytes
-rw-r--r--idrop-web/web-app/images/silk/heart_delete.pngbin0 -> 823 bytes
-rw-r--r--idrop-web/web-app/images/silk/help.pngbin0 -> 786 bytes
-rw-r--r--idrop-web/web-app/images/silk/hourglass.pngbin0 -> 744 bytes
-rw-r--r--idrop-web/web-app/images/silk/hourglass_add.pngbin0 -> 814 bytes
-rw-r--r--idrop-web/web-app/images/silk/hourglass_delete.pngbin0 -> 829 bytes
-rw-r--r--idrop-web/web-app/images/silk/hourglass_go.pngbin0 -> 866 bytes
-rw-r--r--idrop-web/web-app/images/silk/hourglass_link.pngbin0 -> 871 bytes
-rw-r--r--idrop-web/web-app/images/silk/house.pngbin0 -> 806 bytes
-rw-r--r--idrop-web/web-app/images/silk/house_go.pngbin0 -> 861 bytes
-rw-r--r--idrop-web/web-app/images/silk/house_link.pngbin0 -> 868 bytes
-rw-r--r--idrop-web/web-app/images/silk/html.pngbin0 -> 578 bytes
-rw-r--r--idrop-web/web-app/images/silk/html_add.pngbin0 -> 698 bytes
-rw-r--r--idrop-web/web-app/images/silk/html_delete.pngbin0 -> 688 bytes
-rw-r--r--idrop-web/web-app/images/silk/html_go.pngbin0 -> 692 bytes
-rw-r--r--idrop-web/web-app/images/silk/html_valid.pngbin0 -> 704 bytes
-rw-r--r--idrop-web/web-app/images/silk/image.pngbin0 -> 516 bytes
-rw-r--r--idrop-web/web-app/images/silk/image_add.pngbin0 -> 653 bytes
-rw-r--r--idrop-web/web-app/images/silk/image_delete.pngbin0 -> 653 bytes
-rw-r--r--idrop-web/web-app/images/silk/image_edit.pngbin0 -> 783 bytes
-rw-r--r--idrop-web/web-app/images/silk/image_link.pngbin0 -> 773 bytes
-rw-r--r--idrop-web/web-app/images/silk/images.pngbin0 -> 661 bytes
-rw-r--r--idrop-web/web-app/images/silk/information.pngbin0 -> 778 bytes
-rw-r--r--idrop-web/web-app/images/silk/ipod.pngbin0 -> 463 bytes
-rw-r--r--idrop-web/web-app/images/silk/ipod_cast.pngbin0 -> 711 bytes
-rw-r--r--idrop-web/web-app/images/silk/ipod_cast_add.pngbin0 -> 796 bytes
-rw-r--r--idrop-web/web-app/images/silk/ipod_cast_delete.pngbin0 -> 809 bytes
-rw-r--r--idrop-web/web-app/images/silk/ipod_sound.pngbin0 -> 678 bytes
-rw-r--r--idrop-web/web-app/images/silk/joystick.pngbin0 -> 559 bytes
-rw-r--r--idrop-web/web-app/images/silk/joystick_add.pngbin0 -> 669 bytes
-rw-r--r--idrop-web/web-app/images/silk/joystick_delete.pngbin0 -> 671 bytes
-rw-r--r--idrop-web/web-app/images/silk/joystick_error.pngbin0 -> 711 bytes
-rw-r--r--idrop-web/web-app/images/silk/key.pngbin0 -> 612 bytes
-rw-r--r--idrop-web/web-app/images/silk/key_add.pngbin0 -> 703 bytes
-rw-r--r--idrop-web/web-app/images/silk/key_delete.pngbin0 -> 724 bytes
-rw-r--r--idrop-web/web-app/images/silk/key_go.pngbin0 -> 744 bytes
-rw-r--r--idrop-web/web-app/images/silk/keyboard.pngbin0 -> 570 bytes
-rw-r--r--idrop-web/web-app/images/silk/keyboard_add.pngbin0 -> 683 bytes
-rw-r--r--idrop-web/web-app/images/silk/keyboard_delete.pngbin0 -> 681 bytes
-rw-r--r--idrop-web/web-app/images/silk/keyboard_magnify.pngbin0 -> 651 bytes
-rw-r--r--idrop-web/web-app/images/silk/layers.pngbin0 -> 597 bytes
-rw-r--r--idrop-web/web-app/images/silk/layout.pngbin0 -> 480 bytes
-rw-r--r--idrop-web/web-app/images/silk/layout_add.pngbin0 -> 577 bytes
-rw-r--r--idrop-web/web-app/images/silk/layout_content.pngbin0 -> 519 bytes
-rw-r--r--idrop-web/web-app/images/silk/layout_delete.pngbin0 -> 608 bytes
-rw-r--r--idrop-web/web-app/images/silk/layout_edit.pngbin0 -> 716 bytes
-rw-r--r--idrop-web/web-app/images/silk/layout_error.pngbin0 -> 666 bytes
-rw-r--r--idrop-web/web-app/images/silk/layout_header.pngbin0 -> 500 bytes
-rw-r--r--idrop-web/web-app/images/silk/layout_link.pngbin0 -> 660 bytes
-rw-r--r--idrop-web/web-app/images/silk/layout_sidebar.pngbin0 -> 479 bytes
-rw-r--r--idrop-web/web-app/images/silk/lightbulb.pngbin0 -> 782 bytes
-rw-r--r--idrop-web/web-app/images/silk/lightbulb_add.pngbin0 -> 839 bytes
-rw-r--r--idrop-web/web-app/images/silk/lightbulb_delete.pngbin0 -> 857 bytes
-rw-r--r--idrop-web/web-app/images/silk/lightbulb_off.pngbin0 -> 700 bytes
-rw-r--r--idrop-web/web-app/images/silk/lightning.pngbin0 -> 634 bytes
-rw-r--r--idrop-web/web-app/images/silk/lightning_add.pngbin0 -> 746 bytes
-rw-r--r--idrop-web/web-app/images/silk/lightning_delete.pngbin0 -> 745 bytes
-rw-r--r--idrop-web/web-app/images/silk/lightning_go.pngbin0 -> 739 bytes
-rw-r--r--idrop-web/web-app/images/silk/link.pngbin0 -> 343 bytes
-rw-r--r--idrop-web/web-app/images/silk/link_add.pngbin0 -> 570 bytes
-rw-r--r--idrop-web/web-app/images/silk/link_break.pngbin0 -> 657 bytes
-rw-r--r--idrop-web/web-app/images/silk/link_delete.pngbin0 -> 600 bytes
-rw-r--r--idrop-web/web-app/images/silk/link_edit.pngbin0 -> 703 bytes
-rw-r--r--idrop-web/web-app/images/silk/link_error.pngbin0 -> 698 bytes
-rw-r--r--idrop-web/web-app/images/silk/link_go.pngbin0 -> 655 bytes
-rw-r--r--idrop-web/web-app/images/silk/lock.pngbin0 -> 749 bytes
-rw-r--r--idrop-web/web-app/images/silk/lock_add.pngbin0 -> 824 bytes
-rw-r--r--idrop-web/web-app/images/silk/lock_break.pngbin0 -> 771 bytes
-rw-r--r--idrop-web/web-app/images/silk/lock_delete.pngbin0 -> 815 bytes
-rw-r--r--idrop-web/web-app/images/silk/lock_edit.pngbin0 -> 861 bytes
-rw-r--r--idrop-web/web-app/images/silk/lock_go.pngbin0 -> 829 bytes
-rw-r--r--idrop-web/web-app/images/silk/lock_open.pngbin0 -> 727 bytes
-rw-r--r--idrop-web/web-app/images/silk/lorry.pngbin0 -> 582 bytes
-rw-r--r--idrop-web/web-app/images/silk/lorry_add.pngbin0 -> 689 bytes
-rw-r--r--idrop-web/web-app/images/silk/lorry_delete.pngbin0 -> 683 bytes
-rw-r--r--idrop-web/web-app/images/silk/lorry_error.pngbin0 -> 739 bytes
-rw-r--r--idrop-web/web-app/images/silk/lorry_flatbed.pngbin0 -> 450 bytes
-rw-r--r--idrop-web/web-app/images/silk/lorry_go.pngbin0 -> 699 bytes
-rw-r--r--idrop-web/web-app/images/silk/lorry_link.pngbin0 -> 775 bytes
-rw-r--r--idrop-web/web-app/images/silk/magifier_zoom_out.pngbin0 -> 657 bytes
-rw-r--r--idrop-web/web-app/images/silk/magnifier.pngbin0 -> 615 bytes
-rw-r--r--idrop-web/web-app/images/silk/magnifier_zoom_in.pngbin0 -> 680 bytes
-rw-r--r--idrop-web/web-app/images/silk/male.pngbin0 -> 629 bytes
-rw-r--r--idrop-web/web-app/images/silk/map.pngbin0 -> 804 bytes
-rw-r--r--idrop-web/web-app/images/silk/map_add.pngbin0 -> 836 bytes
-rw-r--r--idrop-web/web-app/images/silk/map_delete.pngbin0 -> 835 bytes
-rw-r--r--idrop-web/web-app/images/silk/map_edit.pngbin0 -> 876 bytes
-rw-r--r--idrop-web/web-app/images/silk/map_go.pngbin0 -> 842 bytes
-rw-r--r--idrop-web/web-app/images/silk/map_magnify.pngbin0 -> 797 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_bronze_1.pngbin0 -> 640 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_bronze_2.pngbin0 -> 654 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_bronze_3.pngbin0 -> 646 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_bronze_add.pngbin0 -> 747 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_bronze_delete.pngbin0 -> 730 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_gold_1.pngbin0 -> 629 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_gold_2.pngbin0 -> 641 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_gold_3.pngbin0 -> 634 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_gold_add.pngbin0 -> 733 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_gold_delete.pngbin0 -> 724 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_silver_1.pngbin0 -> 589 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_silver_2.pngbin0 -> 600 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_silver_3.pngbin0 -> 597 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_silver_add.pngbin0 -> 727 bytes
-rw-r--r--idrop-web/web-app/images/silk/medal_silver_delete.pngbin0 -> 714 bytes
-rw-r--r--idrop-web/web-app/images/silk/money.pngbin0 -> 738 bytes
-rw-r--r--idrop-web/web-app/images/silk/money_add.pngbin0 -> 784 bytes
-rw-r--r--idrop-web/web-app/images/silk/money_delete.pngbin0 -> 806 bytes
-rw-r--r--idrop-web/web-app/images/silk/money_dollar.pngbin0 -> 630 bytes
-rw-r--r--idrop-web/web-app/images/silk/money_euro.pngbin0 -> 605 bytes
-rw-r--r--idrop-web/web-app/images/silk/money_pound.pngbin0 -> 565 bytes
-rw-r--r--idrop-web/web-app/images/silk/money_yen.pngbin0 -> 562 bytes
-rw-r--r--idrop-web/web-app/images/silk/monitor.pngbin0 -> 612 bytes
-rw-r--r--idrop-web/web-app/images/silk/monitor_add.pngbin0 -> 692 bytes
-rw-r--r--idrop-web/web-app/images/silk/monitor_delete.pngbin0 -> 691 bytes
-rw-r--r--idrop-web/web-app/images/silk/monitor_edit.pngbin0 -> 769 bytes
-rw-r--r--idrop-web/web-app/images/silk/monitor_error.pngbin0 -> 714 bytes
-rw-r--r--idrop-web/web-app/images/silk/monitor_go.pngbin0 -> 696 bytes
-rw-r--r--idrop-web/web-app/images/silk/monitor_lightning.pngbin0 -> 768 bytes
-rw-r--r--idrop-web/web-app/images/silk/monitor_link.pngbin0 -> 736 bytes
-rw-r--r--idrop-web/web-app/images/silk/mouse.pngbin0 -> 634 bytes
-rw-r--r--idrop-web/web-app/images/silk/mouse_add.pngbin0 -> 729 bytes
-rw-r--r--idrop-web/web-app/images/silk/mouse_delete.pngbin0 -> 741 bytes
-rw-r--r--idrop-web/web-app/images/silk/mouse_error.pngbin0 -> 790 bytes
-rw-r--r--idrop-web/web-app/images/silk/music.pngbin0 -> 385 bytes
-rw-r--r--idrop-web/web-app/images/silk/new.pngbin0 -> 378 bytes
-rw-r--r--idrop-web/web-app/images/silk/newspaper.pngbin0 -> 658 bytes
-rw-r--r--idrop-web/web-app/images/silk/newspaper_add.pngbin0 -> 750 bytes
-rw-r--r--idrop-web/web-app/images/silk/newspaper_delete.pngbin0 -> 775 bytes
-rw-r--r--idrop-web/web-app/images/silk/newspaper_go.pngbin0 -> 779 bytes
-rw-r--r--idrop-web/web-app/images/silk/newspaper_link.pngbin0 -> 787 bytes
-rw-r--r--idrop-web/web-app/images/silk/note.pngbin0 -> 500 bytes
-rw-r--r--idrop-web/web-app/images/silk/note_add.pngbin0 -> 641 bytes
-rw-r--r--idrop-web/web-app/images/silk/note_delete.pngbin0 -> 631 bytes
-rw-r--r--idrop-web/web-app/images/silk/note_edit.pngbin0 -> 731 bytes
-rw-r--r--idrop-web/web-app/images/silk/note_error.pngbin0 -> 680 bytes
-rw-r--r--idrop-web/web-app/images/silk/note_go.pngbin0 -> 661 bytes
-rw-r--r--idrop-web/web-app/images/silk/overlays.pngbin0 -> 716 bytes
-rw-r--r--idrop-web/web-app/images/silk/package.pngbin0 -> 853 bytes
-rw-r--r--idrop-web/web-app/images/silk/package_add.pngbin0 -> 899 bytes
-rw-r--r--idrop-web/web-app/images/silk/package_delete.pngbin0 -> 891 bytes
-rw-r--r--idrop-web/web-app/images/silk/package_go.pngbin0 -> 898 bytes
-rw-r--r--idrop-web/web-app/images/silk/package_green.pngbin0 -> 896 bytes
-rw-r--r--idrop-web/web-app/images/silk/package_link.pngbin0 -> 939 bytes
-rw-r--r--idrop-web/web-app/images/silk/page.pngbin0 -> 635 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_add.pngbin0 -> 739 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_attach.pngbin0 -> 794 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_code.pngbin0 -> 818 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_copy.pngbin0 -> 663 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_delete.pngbin0 -> 740 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_edit.pngbin0 -> 807 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_error.pngbin0 -> 793 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_excel.pngbin0 -> 817 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_find.pngbin0 -> 879 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_gear.pngbin0 -> 833 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_go.pngbin0 -> 779 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_green.pngbin0 -> 621 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_key.pngbin0 -> 801 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_lightning.pngbin0 -> 839 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_link.pngbin0 -> 830 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_paintbrush.pngbin0 -> 813 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_paste.pngbin0 -> 703 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_red.pngbin0 -> 641 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_refresh.pngbin0 -> 858 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_save.pngbin0 -> 774 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white.pngbin0 -> 294 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_acrobat.pngbin0 -> 591 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_actionscript.pngbin0 -> 664 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_add.pngbin0 -> 512 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_c.pngbin0 -> 587 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_camera.pngbin0 -> 656 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_cd.pngbin0 -> 666 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_code.pngbin0 -> 603 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_code_red.pngbin0 -> 587 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_coldfusion.pngbin0 -> 592 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_compressed.pngbin0 -> 724 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_copy.pngbin0 -> 309 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_cplusplus.pngbin0 -> 621 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_csharp.pngbin0 -> 700 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_cup.pngbin0 -> 639 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_database.pngbin0 -> 579 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_delete.pngbin0 -> 536 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_dvd.pngbin0 -> 638 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_edit.pngbin0 -> 618 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_error.pngbin0 -> 623 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_excel.pngbin0 -> 663 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_find.pngbin0 -> 676 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_flash.pngbin0 -> 582 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_freehand.pngbin0 -> 639 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_gear.pngbin0 -> 402 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_get.pngbin0 -> 516 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_go.pngbin0 -> 612 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_h.pngbin0 -> 603 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_horizontal.pngbin0 -> 296 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_key.pngbin0 -> 616 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_lightning.pngbin0 -> 669 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_link.pngbin0 -> 614 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_magnify.pngbin0 -> 554 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_medal.pngbin0 -> 706 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_office.pngbin0 -> 779 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_paint.pngbin0 -> 688 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_paintbrush.pngbin0 -> 618 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_paste.pngbin0 -> 620 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_php.pngbin0 -> 538 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_picture.pngbin0 -> 650 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_powerpoint.pngbin0 -> 588 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_put.pngbin0 -> 523 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_ruby.pngbin0 -> 626 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_stack.pngbin0 -> 317 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_star.pngbin0 -> 565 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_swoosh.pngbin0 -> 634 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_text.pngbin0 -> 342 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_text_width.pngbin0 -> 315 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_tux.pngbin0 -> 668 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_vector.pngbin0 -> 644 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_visualstudio.pngbin0 -> 702 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_width.pngbin0 -> 309 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_word.pngbin0 -> 651 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_world.pngbin0 -> 734 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_wrench.pngbin0 -> 613 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_white_zip.pngbin0 -> 386 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_word.pngbin0 -> 777 bytes
-rw-r--r--idrop-web/web-app/images/silk/page_world.pngbin0 -> 903 bytes
-rw-r--r--idrop-web/web-app/images/silk/paintbrush.pngbin0 -> 548 bytes
-rw-r--r--idrop-web/web-app/images/silk/paintcan.pngbin0 -> 707 bytes
-rw-r--r--idrop-web/web-app/images/silk/palette.pngbin0 -> 856 bytes
-rw-r--r--idrop-web/web-app/images/silk/paste_plain.pngbin0 -> 605 bytes
-rw-r--r--idrop-web/web-app/images/silk/paste_word.pngbin0 -> 701 bytes
-rw-r--r--idrop-web/web-app/images/silk/pencil.pngbin0 -> 450 bytes
-rw-r--r--idrop-web/web-app/images/silk/pencil_add.pngbin0 -> 589 bytes
-rw-r--r--idrop-web/web-app/images/silk/pencil_delete.pngbin0 -> 603 bytes
-rw-r--r--idrop-web/web-app/images/silk/pencil_go.pngbin0 -> 666 bytes
-rw-r--r--idrop-web/web-app/images/silk/phone.pngbin0 -> 488 bytes
-rw-r--r--idrop-web/web-app/images/silk/phone_add.pngbin0 -> 621 bytes
-rw-r--r--idrop-web/web-app/images/silk/phone_delete.pngbin0 -> 615 bytes
-rw-r--r--idrop-web/web-app/images/silk/phone_sound.pngbin0 -> 703 bytes
-rw-r--r--idrop-web/web-app/images/silk/photo.pngbin0 -> 589 bytes
-rw-r--r--idrop-web/web-app/images/silk/photo_add.pngbin0 -> 707 bytes
-rw-r--r--idrop-web/web-app/images/silk/photo_delete.pngbin0 -> 703 bytes
-rw-r--r--idrop-web/web-app/images/silk/photo_link.pngbin0 -> 784 bytes
-rw-r--r--idrop-web/web-app/images/silk/photos.pngbin0 -> 647 bytes
-rw-r--r--idrop-web/web-app/images/silk/picture.pngbin0 -> 606 bytes
-rw-r--r--idrop-web/web-app/images/silk/picture_add.pngbin0 -> 745 bytes
-rw-r--r--idrop-web/web-app/images/silk/picture_delete.pngbin0 -> 744 bytes
-rw-r--r--idrop-web/web-app/images/silk/picture_edit.pngbin0 -> 826 bytes
-rw-r--r--idrop-web/web-app/images/silk/picture_empty.pngbin0 -> 463 bytes
-rw-r--r--idrop-web/web-app/images/silk/picture_error.pngbin0 -> 755 bytes
-rw-r--r--idrop-web/web-app/images/silk/picture_go.pngbin0 -> 758 bytes
-rw-r--r--idrop-web/web-app/images/silk/picture_key.pngbin0 -> 794 bytes
-rw-r--r--idrop-web/web-app/images/silk/picture_link.pngbin0 -> 835 bytes
-rw-r--r--idrop-web/web-app/images/silk/picture_save.pngbin0 -> 755 bytes
-rw-r--r--idrop-web/web-app/images/silk/pictures.pngbin0 -> 704 bytes
-rw-r--r--idrop-web/web-app/images/silk/pilcrow.pngbin0 -> 361 bytes
-rw-r--r--idrop-web/web-app/images/silk/pill.pngbin0 -> 719 bytes
-rw-r--r--idrop-web/web-app/images/silk/pill_add.pngbin0 -> 797 bytes
-rw-r--r--idrop-web/web-app/images/silk/pill_delete.pngbin0 -> 805 bytes
-rw-r--r--idrop-web/web-app/images/silk/pill_go.pngbin0 -> 817 bytes
-rw-r--r--idrop-web/web-app/images/silk/plugin.pngbin0 -> 591 bytes
-rw-r--r--idrop-web/web-app/images/silk/plugin_add.pngbin0 -> 691 bytes
-rw-r--r--idrop-web/web-app/images/silk/plugin_delete.pngbin0 -> 692 bytes
-rw-r--r--idrop-web/web-app/images/silk/plugin_disabled.pngbin0 -> 347 bytes
-rw-r--r--idrop-web/web-app/images/silk/plugin_edit.pngbin0 -> 746 bytes
-rw-r--r--idrop-web/web-app/images/silk/plugin_error.pngbin0 -> 702 bytes
-rw-r--r--idrop-web/web-app/images/silk/plugin_go.pngbin0 -> 694 bytes
-rw-r--r--idrop-web/web-app/images/silk/plugin_link.pngbin0 -> 759 bytes
-rw-r--r--idrop-web/web-app/images/silk/printer.pngbin0 -> 731 bytes
-rw-r--r--idrop-web/web-app/images/silk/printer_add.pngbin0 -> 782 bytes
-rw-r--r--idrop-web/web-app/images/silk/printer_delete.pngbin0 -> 792 bytes
-rw-r--r--idrop-web/web-app/images/silk/printer_empty.pngbin0 -> 350 bytes
-rw-r--r--idrop-web/web-app/images/silk/printer_error.pngbin0 -> 854 bytes
-rw-r--r--idrop-web/web-app/images/silk/rainbow.pngbin0 -> 655 bytes
-rw-r--r--idrop-web/web-app/images/silk/report.pngbin0 -> 649 bytes
-rw-r--r--idrop-web/web-app/images/silk/report_add.pngbin0 -> 714 bytes
-rw-r--r--idrop-web/web-app/images/silk/report_delete.pngbin0 -> 729 bytes
-rw-r--r--idrop-web/web-app/images/silk/report_disk.pngbin0 -> 760 bytes
-rw-r--r--idrop-web/web-app/images/silk/report_edit.pngbin0 -> 762 bytes
-rw-r--r--idrop-web/web-app/images/silk/report_go.pngbin0 -> 756 bytes
-rw-r--r--idrop-web/web-app/images/silk/report_key.pngbin0 -> 760 bytes
-rw-r--r--idrop-web/web-app/images/silk/report_link.pngbin0 -> 754 bytes
-rw-r--r--idrop-web/web-app/images/silk/report_magnify.pngbin0 -> 738 bytes
-rw-r--r--idrop-web/web-app/images/silk/report_picture.pngbin0 -> 733 bytes
-rw-r--r--idrop-web/web-app/images/silk/report_user.pngbin0 -> 785 bytes
-rw-r--r--idrop-web/web-app/images/silk/report_word.pngbin0 -> 731 bytes
-rw-r--r--idrop-web/web-app/images/silk/resultset_first.pngbin0 -> 522 bytes
-rw-r--r--idrop-web/web-app/images/silk/resultset_last.pngbin0 -> 524 bytes
-rw-r--r--idrop-web/web-app/images/silk/resultset_next.pngbin0 -> 395 bytes
-rw-r--r--idrop-web/web-app/images/silk/resultset_previous.pngbin0 -> 389 bytes
-rw-r--r--idrop-web/web-app/images/silk/rosette.pngbin0 -> 673 bytes
-rw-r--r--idrop-web/web-app/images/silk/rss.pngbin0 -> 530 bytes
-rw-r--r--idrop-web/web-app/images/silk/rss_add.pngbin0 -> 649 bytes
-rw-r--r--idrop-web/web-app/images/silk/rss_delete.pngbin0 -> 633 bytes
-rw-r--r--idrop-web/web-app/images/silk/rss_go.pngbin0 -> 635 bytes
-rw-r--r--idrop-web/web-app/images/silk/rss_valid.pngbin0 -> 660 bytes
-rw-r--r--idrop-web/web-app/images/silk/ruby.pngbin0 -> 592 bytes
-rw-r--r--idrop-web/web-app/images/silk/ruby_add.pngbin0 -> 691 bytes
-rw-r--r--idrop-web/web-app/images/silk/ruby_delete.pngbin0 -> 704 bytes
-rw-r--r--idrop-web/web-app/images/silk/ruby_gear.pngbin0 -> 716 bytes
-rw-r--r--idrop-web/web-app/images/silk/ruby_get.pngbin0 -> 692 bytes
-rw-r--r--idrop-web/web-app/images/silk/ruby_go.pngbin0 -> 720 bytes
-rw-r--r--idrop-web/web-app/images/silk/ruby_key.pngbin0 -> 732 bytes
-rw-r--r--idrop-web/web-app/images/silk/ruby_link.pngbin0 -> 767 bytes
-rw-r--r--idrop-web/web-app/images/silk/ruby_put.pngbin0 -> 694 bytes
-rw-r--r--idrop-web/web-app/images/silk/script.pngbin0 -> 748 bytes
-rw-r--r--idrop-web/web-app/images/silk/script_add.pngbin0 -> 811 bytes
-rw-r--r--idrop-web/web-app/images/silk/script_code.pngbin0 -> 859 bytes
-rw-r--r--idrop-web/web-app/images/silk/script_code_red.pngbin0 -> 868 bytes
-rw-r--r--idrop-web/web-app/images/silk/script_delete.pngbin0 -> 811 bytes
-rw-r--r--idrop-web/web-app/images/silk/script_edit.pngbin0 -> 880 bytes
-rw-r--r--idrop-web/web-app/images/silk/script_error.pngbin0 -> 861 bytes
-rw-r--r--idrop-web/web-app/images/silk/script_gear.pngbin0 -> 861 bytes
-rw-r--r--idrop-web/web-app/images/silk/script_go.pngbin0 -> 839 bytes
-rw-r--r--idrop-web/web-app/images/silk/script_key.pngbin0 -> 853 bytes
-rw-r--r--idrop-web/web-app/images/silk/script_lightning.pngbin0 -> 879 bytes
-rw-r--r--idrop-web/web-app/images/silk/script_link.pngbin0 -> 876 bytes
-rw-r--r--idrop-web/web-app/images/silk/script_palette.pngbin0 -> 917 bytes
-rw-r--r--idrop-web/web-app/images/silk/script_save.pngbin0 -> 804 bytes
-rw-r--r--idrop-web/web-app/images/silk/server.pngbin0 -> 530 bytes
-rw-r--r--idrop-web/web-app/images/silk/server_add.pngbin0 -> 676 bytes
-rw-r--r--idrop-web/web-app/images/silk/server_chart.pngbin0 -> 673 bytes
-rw-r--r--idrop-web/web-app/images/silk/server_compressed.pngbin0 -> 721 bytes
-rw-r--r--idrop-web/web-app/images/silk/server_connect.pngbin0 -> 755 bytes
-rw-r--r--idrop-web/web-app/images/silk/server_database.pngbin0 -> 666 bytes
-rw-r--r--idrop-web/web-app/images/silk/server_delete.pngbin0 -> 668 bytes
-rw-r--r--idrop-web/web-app/images/silk/server_edit.pngbin0 -> 749 bytes
-rw-r--r--idrop-web/web-app/images/silk/server_error.pngbin0 -> 678 bytes
-rw-r--r--idrop-web/web-app/images/silk/server_go.pngbin0 -> 706 bytes
-rw-r--r--idrop-web/web-app/images/silk/server_key.pngbin0 -> 746 bytes
-rw-r--r--idrop-web/web-app/images/silk/server_lightning.pngbin0 -> 729 bytes
-rw-r--r--idrop-web/web-app/images/silk/server_link.pngbin0 -> 706 bytes
-rw-r--r--idrop-web/web-app/images/silk/server_uncompressed.pngbin0 -> 669 bytes
-rw-r--r--idrop-web/web-app/images/silk/shading.pngbin0 -> 225 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_align_bottom.pngbin0 -> 398 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_align_center.pngbin0 -> 384 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_align_left.pngbin0 -> 402 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_align_middle.pngbin0 -> 414 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_align_right.pngbin0 -> 401 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_align_top.pngbin0 -> 406 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_flip_horizontal.pngbin0 -> 403 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_flip_vertical.pngbin0 -> 418 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_group.pngbin0 -> 553 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_handles.pngbin0 -> 538 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_move_back.pngbin0 -> 395 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_move_backwards.pngbin0 -> 358 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_move_forwards.pngbin0 -> 381 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_move_front.pngbin0 -> 435 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_rotate_anticlockwise.pngbin0 -> 657 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_rotate_clockwise.pngbin0 -> 673 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_square.pngbin0 -> 353 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_square_add.pngbin0 -> 539 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_square_delete.pngbin0 -> 537 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_square_edit.pngbin0 -> 660 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_square_error.pngbin0 -> 570 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_square_go.pngbin0 -> 566 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_square_key.pngbin0 -> 607 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_square_link.pngbin0 -> 642 bytes
-rw-r--r--idrop-web/web-app/images/silk/shape_ungroup.pngbin0 -> 666 bytes
-rw-r--r--idrop-web/web-app/images/silk/shield.pngbin0 -> 702 bytes
-rw-r--r--idrop-web/web-app/images/silk/shield_add.pngbin0 -> 758 bytes
-rw-r--r--idrop-web/web-app/images/silk/shield_delete.pngbin0 -> 768 bytes
-rw-r--r--idrop-web/web-app/images/silk/shield_go.pngbin0 -> 775 bytes
-rw-r--r--idrop-web/web-app/images/silk/sitemap.pngbin0 -> 278 bytes
-rw-r--r--idrop-web/web-app/images/silk/sitemap_color.pngbin0 -> 406 bytes
-rw-r--r--idrop-web/web-app/images/silk/sound.pngbin0 -> 610 bytes
-rw-r--r--idrop-web/web-app/images/silk/sound_add.pngbin0 -> 684 bytes
-rw-r--r--idrop-web/web-app/images/silk/sound_delete.pngbin0 -> 711 bytes
-rw-r--r--idrop-web/web-app/images/silk/sound_low.pngbin0 -> 524 bytes
-rw-r--r--idrop-web/web-app/images/silk/sound_mute.pngbin0 -> 474 bytes
-rw-r--r--idrop-web/web-app/images/silk/sound_none.pngbin0 -> 417 bytes
-rw-r--r--idrop-web/web-app/images/silk/spellcheck.pngbin0 -> 603 bytes
-rw-r--r--idrop-web/web-app/images/silk/sport_8ball.pngbin0 -> 490 bytes
-rw-r--r--idrop-web/web-app/images/silk/sport_basketball.pngbin0 -> 977 bytes
-rw-r--r--idrop-web/web-app/images/silk/sport_football.pngbin0 -> 875 bytes
-rw-r--r--idrop-web/web-app/images/silk/sport_golf.pngbin0 -> 504 bytes
-rw-r--r--idrop-web/web-app/images/silk/sport_raquet.pngbin0 -> 719 bytes
-rw-r--r--idrop-web/web-app/images/silk/sport_shuttlecock.pngbin0 -> 683 bytes
-rw-r--r--idrop-web/web-app/images/silk/sport_soccer.pngbin0 -> 517 bytes
-rw-r--r--idrop-web/web-app/images/silk/sport_tennis.pngbin0 -> 884 bytes
-rw-r--r--idrop-web/web-app/images/silk/star.pngbin0 -> 670 bytes
-rw-r--r--idrop-web/web-app/images/silk/status_away.pngbin0 -> 794 bytes
-rw-r--r--idrop-web/web-app/images/silk/status_busy.pngbin0 -> 751 bytes
-rw-r--r--idrop-web/web-app/images/silk/status_offline.pngbin0 -> 422 bytes
-rw-r--r--idrop-web/web-app/images/silk/status_online.pngbin0 -> 722 bytes
-rw-r--r--idrop-web/web-app/images/silk/stop.pngbin0 -> 700 bytes
-rw-r--r--idrop-web/web-app/images/silk/style.pngbin0 -> 813 bytes
-rw-r--r--idrop-web/web-app/images/silk/style_add.pngbin0 -> 844 bytes
-rw-r--r--idrop-web/web-app/images/silk/style_delete.pngbin0 -> 865 bytes
-rw-r--r--idrop-web/web-app/images/silk/style_edit.pngbin0 -> 927 bytes
-rw-r--r--idrop-web/web-app/images/silk/style_go.pngbin0 -> 862 bytes
-rw-r--r--idrop-web/web-app/images/silk/sum.pngbin0 -> 289 bytes
-rw-r--r--idrop-web/web-app/images/silk/tab.pngbin0 -> 323 bytes
-rw-r--r--idrop-web/web-app/images/silk/tab_add.pngbin0 -> 488 bytes
-rw-r--r--idrop-web/web-app/images/silk/tab_delete.pngbin0 -> 493 bytes
-rw-r--r--idrop-web/web-app/images/silk/tab_edit.pngbin0 -> 580 bytes
-rw-r--r--idrop-web/web-app/images/silk/tab_go.pngbin0 -> 552 bytes
-rw-r--r--idrop-web/web-app/images/silk/table.pngbin0 -> 566 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_add.pngbin0 -> 663 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_delete.pngbin0 -> 660 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_edit.pngbin0 -> 744 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_error.pngbin0 -> 687 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_gear.pngbin0 -> 714 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_go.pngbin0 -> 683 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_key.pngbin0 -> 746 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_lightning.pngbin0 -> 736 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_link.pngbin0 -> 728 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_multiple.pngbin0 -> 612 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_refresh.pngbin0 -> 795 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_relationship.pngbin0 -> 663 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_row_delete.pngbin0 -> 629 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_row_insert.pngbin0 -> 641 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_save.pngbin0 -> 723 bytes
-rw-r--r--idrop-web/web-app/images/silk/table_sort.pngbin0 -> 678 bytes
-rw-r--r--idrop-web/web-app/images/silk/tag.pngbin0 -> 389 bytes
-rw-r--r--idrop-web/web-app/images/silk/tag_blue.pngbin0 -> 586 bytes
-rw-r--r--idrop-web/web-app/images/silk/tag_blue_add.pngbin0 -> 671 bytes
-rw-r--r--idrop-web/web-app/images/silk/tag_blue_delete.pngbin0 -> 701 bytes
-rw-r--r--idrop-web/web-app/images/silk/tag_blue_edit.pngbin0 -> 748 bytes
-rw-r--r--idrop-web/web-app/images/silk/tag_green.pngbin0 -> 613 bytes
-rw-r--r--idrop-web/web-app/images/silk/tag_orange.pngbin0 -> 586 bytes
-rw-r--r--idrop-web/web-app/images/silk/tag_pink.pngbin0 -> 579 bytes
-rw-r--r--idrop-web/web-app/images/silk/tag_purple.pngbin0 -> 599 bytes
-rw-r--r--idrop-web/web-app/images/silk/tag_red.pngbin0 -> 592 bytes
-rw-r--r--idrop-web/web-app/images/silk/tag_yellow.pngbin0 -> 586 bytes
-rw-r--r--idrop-web/web-app/images/silk/telephone.pngbin0 -> 791 bytes
-rw-r--r--idrop-web/web-app/images/silk/telephone_add.pngbin0 -> 860 bytes
-rw-r--r--idrop-web/web-app/images/silk/telephone_delete.pngbin0 -> 856 bytes
-rw-r--r--idrop-web/web-app/images/silk/telephone_edit.pngbin0 -> 893 bytes
-rw-r--r--idrop-web/web-app/images/silk/telephone_error.pngbin0 -> 884 bytes
-rw-r--r--idrop-web/web-app/images/silk/telephone_go.pngbin0 -> 865 bytes
-rw-r--r--idrop-web/web-app/images/silk/telephone_key.pngbin0 -> 881 bytes
-rw-r--r--idrop-web/web-app/images/silk/telephone_link.pngbin0 -> 909 bytes
-rw-r--r--idrop-web/web-app/images/silk/television.pngbin0 -> 696 bytes
-rw-r--r--idrop-web/web-app/images/silk/television_add.pngbin0 -> 809 bytes
-rw-r--r--idrop-web/web-app/images/silk/television_delete.pngbin0 -> 810 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_align_center.pngbin0 -> 234 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_align_justify.pngbin0 -> 209 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_align_left.pngbin0 -> 209 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_align_right.pngbin0 -> 209 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_allcaps.pngbin0 -> 284 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_bold.pngbin0 -> 304 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_columns.pngbin0 -> 246 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_dropcaps.pngbin0 -> 314 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_heading_1.pngbin0 -> 276 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_heading_2.pngbin0 -> 304 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_heading_3.pngbin0 -> 306 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_heading_4.pngbin0 -> 293 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_heading_5.pngbin0 -> 304 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_heading_6.pngbin0 -> 310 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_horizontalrule.pngbin0 -> 317 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_indent.pngbin0 -> 353 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_indent_remove.pngbin0 -> 351 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_italic.pngbin0 -> 223 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_kerning.pngbin0 -> 495 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_letter_omega.pngbin0 -> 541 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_letterspacing.pngbin0 -> 503 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_linespacing.pngbin0 -> 363 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_list_bullets.pngbin0 -> 344 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_list_numbers.pngbin0 -> 357 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_lowercase.pngbin0 -> 709 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_padding_bottom.pngbin0 -> 237 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_padding_left.pngbin0 -> 271 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_padding_right.pngbin0 -> 271 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_padding_top.pngbin0 -> 236 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_replace.pngbin0 -> 691 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_signature.pngbin0 -> 524 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_smallcaps.pngbin0 -> 260 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_strikethrough.pngbin0 -> 269 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_subscript.pngbin0 -> 422 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_superscript.pngbin0 -> 421 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_underline.pngbin0 -> 273 bytes
-rw-r--r--idrop-web/web-app/images/silk/text_uppercase.pngbin0 -> 747 bytes
-rw-r--r--idrop-web/web-app/images/silk/textfield.pngbin0 -> 153 bytes
-rw-r--r--idrop-web/web-app/images/silk/textfield_add.pngbin0 -> 321 bytes
-rw-r--r--idrop-web/web-app/images/silk/textfield_delete.pngbin0 -> 335 bytes
-rw-r--r--idrop-web/web-app/images/silk/textfield_key.pngbin0 -> 455 bytes
-rw-r--r--idrop-web/web-app/images/silk/textfield_rename.pngbin0 -> 273 bytes
-rw-r--r--idrop-web/web-app/images/silk/thumb_down.pngbin0 -> 601 bytes
-rw-r--r--idrop-web/web-app/images/silk/thumb_up.pngbin0 -> 619 bytes
-rw-r--r--idrop-web/web-app/images/silk/tick.pngbin0 -> 537 bytes
-rw-r--r--idrop-web/web-app/images/silk/time.pngbin0 -> 793 bytes
-rw-r--r--idrop-web/web-app/images/silk/time_add.pngbin0 -> 827 bytes
-rw-r--r--idrop-web/web-app/images/silk/time_delete.pngbin0 -> 853 bytes
-rw-r--r--idrop-web/web-app/images/silk/time_go.pngbin0 -> 882 bytes
-rw-r--r--idrop-web/web-app/images/silk/timeline_marker.pngbin0 -> 327 bytes
-rw-r--r--idrop-web/web-app/images/silk/transmit.pngbin0 -> 749 bytes
-rw-r--r--idrop-web/web-app/images/silk/transmit_add.pngbin0 -> 803 bytes
-rw-r--r--idrop-web/web-app/images/silk/transmit_blue.pngbin0 -> 814 bytes
-rw-r--r--idrop-web/web-app/images/silk/transmit_delete.pngbin0 -> 827 bytes
-rw-r--r--idrop-web/web-app/images/silk/transmit_edit.pngbin0 -> 848 bytes
-rw-r--r--idrop-web/web-app/images/silk/transmit_error.pngbin0 -> 883 bytes
-rw-r--r--idrop-web/web-app/images/silk/transmit_go.pngbin0 -> 842 bytes
-rw-r--r--idrop-web/web-app/images/silk/tux.pngbin0 -> 696 bytes
-rw-r--r--idrop-web/web-app/images/silk/user.pngbin0 -> 741 bytes
-rw-r--r--idrop-web/web-app/images/silk/user_add.pngbin0 -> 746 bytes
-rw-r--r--idrop-web/web-app/images/silk/user_comment.pngbin0 -> 743 bytes
-rw-r--r--idrop-web/web-app/images/silk/user_delete.pngbin0 -> 767 bytes
-rw-r--r--idrop-web/web-app/images/silk/user_edit.pngbin0 -> 833 bytes
-rw-r--r--idrop-web/web-app/images/silk/user_female.pngbin0 -> 663 bytes
-rw-r--r--idrop-web/web-app/images/silk/user_go.pngbin0 -> 793 bytes
-rw-r--r--idrop-web/web-app/images/silk/user_gray.pngbin0 -> 706 bytes
-rw-r--r--idrop-web/web-app/images/silk/user_green.pngbin0 -> 722 bytes
-rw-r--r--idrop-web/web-app/images/silk/user_orange.pngbin0 -> 723 bytes
-rw-r--r--idrop-web/web-app/images/silk/user_red.pngbin0 -> 717 bytes
-rw-r--r--idrop-web/web-app/images/silk/user_suit.pngbin0 -> 748 bytes
-rw-r--r--idrop-web/web-app/images/silk/vcard.pngbin0 -> 533 bytes
-rw-r--r--idrop-web/web-app/images/silk/vcard_add.pngbin0 -> 661 bytes
-rw-r--r--idrop-web/web-app/images/silk/vcard_delete.pngbin0 -> 651 bytes
-rw-r--r--idrop-web/web-app/images/silk/vcard_edit.pngbin0 -> 775 bytes
-rw-r--r--idrop-web/web-app/images/silk/vector.pngbin0 -> 481 bytes
-rw-r--r--idrop-web/web-app/images/silk/vector_add.pngbin0 -> 616 bytes
-rw-r--r--idrop-web/web-app/images/silk/vector_delete.pngbin0 -> 635 bytes
-rw-r--r--idrop-web/web-app/images/silk/wand.pngbin0 -> 570 bytes
-rw-r--r--idrop-web/web-app/images/silk/weather_clouds.pngbin0 -> 581 bytes
-rw-r--r--idrop-web/web-app/images/silk/weather_cloudy.pngbin0 -> 694 bytes
-rw-r--r--idrop-web/web-app/images/silk/weather_lightning.pngbin0 -> 641 bytes
-rw-r--r--idrop-web/web-app/images/silk/weather_rain.pngbin0 -> 626 bytes
-rw-r--r--idrop-web/web-app/images/silk/weather_snow.pngbin0 -> 341 bytes
-rw-r--r--idrop-web/web-app/images/silk/weather_sun.pngbin0 -> 623 bytes
-rw-r--r--idrop-web/web-app/images/silk/webcam.pngbin0 -> 728 bytes
-rw-r--r--idrop-web/web-app/images/silk/webcam_add.pngbin0 -> 786 bytes
-rw-r--r--idrop-web/web-app/images/silk/webcam_delete.pngbin0 -> 805 bytes
-rw-r--r--idrop-web/web-app/images/silk/webcam_error.pngbin0 -> 821 bytes
-rw-r--r--idrop-web/web-app/images/silk/world.pngbin0 -> 923 bytes
-rw-r--r--idrop-web/web-app/images/silk/world_add.pngbin0 -> 940 bytes
-rw-r--r--idrop-web/web-app/images/silk/world_delete.pngbin0 -> 945 bytes
-rw-r--r--idrop-web/web-app/images/silk/world_edit.pngbin0 -> 945 bytes
-rw-r--r--idrop-web/web-app/images/silk/world_go.pngbin0 -> 944 bytes
-rw-r--r--idrop-web/web-app/images/silk/world_link.pngbin0 -> 957 bytes
-rw-r--r--idrop-web/web-app/images/silk/wrench.pngbin0 -> 610 bytes
-rw-r--r--idrop-web/web-app/images/silk/wrench_orange.pngbin0 -> 584 bytes
-rw-r--r--idrop-web/web-app/images/silk/xhtml.pngbin0 -> 595 bytes
-rw-r--r--idrop-web/web-app/images/silk/xhtml_add.pngbin0 -> 703 bytes
-rw-r--r--idrop-web/web-app/images/silk/xhtml_delete.pngbin0 -> 696 bytes
-rw-r--r--idrop-web/web-app/images/silk/xhtml_go.pngbin0 -> 697 bytes
-rw-r--r--idrop-web/web-app/images/silk/xhtml_valid.pngbin0 -> 718 bytes
-rw-r--r--idrop-web/web-app/images/silk/zoom.pngbin0 -> 692 bytes
-rw-r--r--idrop-web/web-app/images/silk/zoom_in.pngbin0 -> 725 bytes
-rw-r--r--idrop-web/web-app/images/silk/zoom_out.pngbin0 -> 708 bytes
-rw-r--r--idrop-web/web-app/images/smooth_selection.gifbin0 -> 174 bytes
-rw-r--r--idrop-web/web-app/images/spacer.gifbin0 -> 43 bytes
-rw-r--r--idrop-web/web-app/images/statusbar_resize.gifbin0 -> 79 bytes
-rw-r--r--idrop-web/web-app/images/undo.gifbin0 -> 175 bytes
-rw-r--r--idrop-web/web-app/images/word_wrap.gifbin0 -> 951 bytes
-rw-r--r--idrop-web/web-app/js/addon/comment/comment.js145
-rw-r--r--idrop-web/web-app/js/addon/comment/continuecomment.js54
-rw-r--r--idrop-web/web-app/js/addon/dialog/dialog.css32
-rw-r--r--idrop-web/web-app/js/addon/dialog/dialog.js80
-rw-r--r--idrop-web/web-app/js/addon/display/fullscreen.css6
-rw-r--r--idrop-web/web-app/js/addon/display/fullscreen.js30
-rw-r--r--idrop-web/web-app/js/addon/display/placeholder.js54
-rw-r--r--idrop-web/web-app/js/addon/edit/closebrackets.js82
-rw-r--r--idrop-web/web-app/js/addon/edit/closetag.js87
-rw-r--r--idrop-web/web-app/js/addon/edit/continuelist.js25
-rw-r--r--idrop-web/web-app/js/addon/edit/matchbrackets.js86
-rw-r--r--idrop-web/web-app/js/addon/edit/matchtags.js56
-rw-r--r--idrop-web/web-app/js/addon/edit/trailingspace.js15
-rw-r--r--idrop-web/web-app/js/addon/fold/brace-fold.js93
-rw-r--r--idrop-web/web-app/js/addon/fold/comment-fold.js40
-rw-r--r--idrop-web/web-app/js/addon/fold/foldcode.js75
-rw-r--r--idrop-web/web-app/js/addon/fold/foldgutter.css21
-rw-r--r--idrop-web/web-app/js/addon/fold/foldgutter.js124
-rw-r--r--idrop-web/web-app/js/addon/fold/indent-fold.js26
-rw-r--r--idrop-web/web-app/js/addon/fold/xml-fold.js167
-rw-r--r--idrop-web/web-app/js/addon/hint/anyword-hint.js34
-rw-r--r--idrop-web/web-app/js/addon/hint/css-hint.js50
-rw-r--r--idrop-web/web-app/js/addon/hint/html-hint.js337
-rw-r--r--idrop-web/web-app/js/addon/hint/javascript-hint.js130
-rw-r--r--idrop-web/web-app/js/addon/hint/pig-hint.js121
-rw-r--r--idrop-web/web-app/js/addon/hint/python-hint.js95
-rw-r--r--idrop-web/web-app/js/addon/hint/show-hint.css38
-rw-r--r--idrop-web/web-app/js/addon/hint/show-hint.js274
-rw-r--r--idrop-web/web-app/js/addon/hint/sql-hint.js105
-rw-r--r--idrop-web/web-app/js/addon/hint/xml-hint.js69
-rw-r--r--idrop-web/web-app/js/addon/lint/coffeescript-lint.js27
-rw-r--r--idrop-web/web-app/js/addon/lint/css-lint.js19
-rw-r--r--idrop-web/web-app/js/addon/lint/javascript-lint.js126
-rw-r--r--idrop-web/web-app/js/addon/lint/json-lint.js17
-rw-r--r--idrop-web/web-app/js/addon/lint/lint.css73
-rw-r--r--idrop-web/web-app/js/addon/lint/lint.js203
-rw-r--r--idrop-web/web-app/js/addon/merge/dep/diff_match_patch.js50
-rw-r--r--idrop-web/web-app/js/addon/merge/merge.css92
-rw-r--r--idrop-web/web-app/js/addon/merge/merge.js474
-rw-r--r--idrop-web/web-app/js/addon/mode/loadmode.js51
-rw-r--r--idrop-web/web-app/js/addon/mode/multiplex.js101
-rw-r--r--idrop-web/web-app/js/addon/mode/multiplex_test.js30
-rw-r--r--idrop-web/web-app/js/addon/mode/overlay.js59
-rw-r--r--idrop-web/web-app/js/addon/runmode/colorize.js29
-rw-r--r--idrop-web/web-app/js/addon/runmode/runmode-standalone.js136
-rw-r--r--idrop-web/web-app/js/addon/runmode/runmode.js56
-rw-r--r--idrop-web/web-app/js/addon/runmode/runmode.node.js103
-rw-r--r--idrop-web/web-app/js/addon/scroll/scrollpastend.js34
-rw-r--r--idrop-web/web-app/js/addon/search/match-highlighter.js91
-rw-r--r--idrop-web/web-app/js/addon/search/search.js133
-rw-r--r--idrop-web/web-app/js/addon/search/searchcursor.js143
-rw-r--r--idrop-web/web-app/js/addon/selection/active-line.js39
-rw-r--r--idrop-web/web-app/js/addon/selection/mark-selection.js108
-rw-r--r--idrop-web/web-app/js/addon/tern/tern.css85
-rw-r--r--idrop-web/web-app/js/addon/tern/tern.js632
-rw-r--r--idrop-web/web-app/js/addon/tern/worker.js41
-rw-r--r--idrop-web/web-app/js/addon/wrap/hardwrap.js99
-rw-r--r--idrop-web/web-app/js/clike.js401
-rw-r--r--idrop-web/web-app/js/codemirror-ui.js503
-rw-r--r--idrop-web/web-app/js/codemirror.js5914
-rw-r--r--idrop-web/web-app/js/highlight.js407
-rw-r--r--idrop-web/web-app/js/mydrop/home.js40
-rwxr-xr-xidrop-web/web-app/js/mydrop/shopping_cart.js4
1117 files changed, 14625 insertions, 32 deletions
diff --git a/idrop-web/application.properties b/idrop-web/application.properties
index 0da8545..8d46448 100644
--- a/idrop-web/application.properties
+++ b/idrop-web/application.properties
@@ -1,6 +1,6 @@
#Grails Metadata file
#Tue Apr 23 11:13:09 EDT 2013
-app.grails.version=2.2.1
+app.grails.version=2.2.3
app.name=idrop-web2
app.servlet.version=2.5
-app.version=2.0.1
+app.version=2.1.0
diff --git a/idrop-web/grails-app/conf/BuildConfig.groovy b/idrop-web/grails-app/conf/BuildConfig.groovy
index bfa180a..4faa39c 100755
--- a/idrop-web/grails-app/conf/BuildConfig.groovy
+++ b/idrop-web/grails-app/conf/BuildConfig.groovy
@@ -28,11 +28,15 @@ grails.project.dependency.resolution = {
test 'org.mockito:mockito-all:1.8.1'
compile 'commons-io:commons-io:2.1'
provided 'junit:junit:4.8.1'
- compile ('org.irods.jargon:jargon-core:3.3.1-SNAPSHOT') { excludes ([group:'org.jglobus'])}
- compile ('org.irods.jargon:jargon-data-utils:3.3.1-SNAPSHOT') { excludes ([group:'org.jglobus'])}
- compile ('org.irods.jargon:jargon-ticket:3.3.1-SNAPSHOT') { excludes ([group:'org.jglobus'])}
- compile ('org.irods.jargon:jargon-user-profile:3.3.1-SNAPSHOT') { excludes ([group:'org.jglobus'])}
- compile ('org.irods.jargon:jargon-user-tagging:3.3.1-SNAPSHOT') { excludes ([group:'org.jglobus'])}
+ compile ('org.irods.jargon:jargon-core:3.3.3-SNAPSHOT') { excludes ([group:'org.jglobus'])}
+ compile ('org.irods.jargon:jargon-data-utils:3.3.3-SNAPSHOT') { excludes ([group:'org.jglobus'])}
+ compile ('org.irods.jargon:jargon-ticket:3.3.3-SNAPSHOT') { excludes ([group:'org.jglobus'])}
+ compile ('org.irods.jargon:jargon-user-profile:3.3.3-SNAPSHOT') { excludes ([group:'org.jglobus'])}
+ compile ('org.irods.jargon:jargon-user-tagging:3.3.3-SNAPSHOT') { excludes ([group:'org.jglobus'])}
+ compile ('org.irods.jargon:jargon-workflow:3.3.3-SNAPSHOT') { excludes ([group:'org.jglobus'])}
+ compile ('org.irods.jargon:jargon-ruleservice:3.3.3-SNAPSHOT') { excludes ([group:'org.jglobus'])}
+
+
provided 'javax.servlet:servlet-api:2.5'
compile 'org.jsoup:jsoup:0.2.2'
diff --git a/idrop-web/grails-app/conf/Config.groovy b/idrop-web/grails-app/conf/Config.groovy
index 9b743cc..50d0426 100755
--- a/idrop-web/grails-app/conf/Config.groovy
+++ b/idrop-web/grails-app/conf/Config.groovy
@@ -48,7 +48,7 @@ environments {
idrop.config.idrop.lite.use.applet.dir=false
*/
-idrop.config.idrop.lite.applet.jar="idrop-lite-2.0.1-SNAPSHOT-jar-with-dependencies.jar"
+idrop.config.idrop.lite.applet.jar="idrop-lite-b964-SNAPSHOT-jar-with-dependencies.jar"
idrop.config.idrop.lite.codebase="http://iren-web.renci.org/idrop-snapshot"
idrop.config.idrop.lite.use.applet.dir=false
diff --git a/idrop-web/grails-app/conf/spring/resources.groovy b/idrop-web/grails-app/conf/spring/resources.groovy
index 0e15cc8..d7f25e6 100755
--- a/idrop-web/grails-app/conf/spring/resources.groovy
+++ b/idrop-web/grails-app/conf/spring/resources.groovy
@@ -7,6 +7,8 @@ beans = {
sharingService(org.irods.mydrop.service.SharingService) { irodsAccessObjectFactory = ref("irodsAccessObjectFactory") }
+ ruleProcessingService(org.irods.mydrop.service.RuleProcessingService) { irodsAccessObjectFactory = ref("irodsAccessObjectFactory") }
+
browseController(org.irods.mydrop.controller.BrowseController) {
irodsAccessObjectFactory = ref("irodsAccessObjectFactory")
@@ -48,6 +50,10 @@ beans = {
homeController(org.irods.mydrop.controller.HomeController) {
irodsAccessObjectFactory = ref("irodsAccessObjectFactory")
}
+
+ ruleController(org.irods.mydrop.controller.RuleController) {
+ irodsAccessObjectFactory = ref("irodsAccessObjectFactory")
+ }
shoppingCartController(org.irods.mydrop.controller.ShoppingCartController) {
diff --git a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/BrowseController.groovy b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/BrowseController.groovy
index 1fee905..235a682 100755
--- a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/BrowseController.groovy
+++ b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/BrowseController.groovy
@@ -14,12 +14,14 @@ import org.irods.jargon.datautils.image.MediaHandlingUtils
import org.irods.jargon.datautils.pagination.PagingActions
import org.irods.jargon.datautils.pagination.PagingAnalyser
import org.irods.jargon.datautils.sharing.*
+import org.irods.jargon.ruleservice.composition.Rule
import org.irods.jargon.ticket.TicketDistributionContext
import org.irods.jargon.usertagging.domain.IRODSStarredFileOrCollection
import org.irods.jargon.usertagging.tags.FreeTaggingService
import org.irods.jargon.usertagging.tags.IRODSTaggingService
import org.irods.jargon.usertagging.tags.TaggingServiceFactory
import org.irods.mydrop.config.ViewState
+import org.irods.mydrop.service.RuleProcessingService
import org.irods.mydrop.service.StarringService
import org.irods.mydrop.service.ViewStateService
@@ -34,6 +36,7 @@ class BrowseController {
TaggingServiceFactory taggingServiceFactory
StarringService starringService
ViewStateService viewStateService
+ RuleProcessingService ruleProcessingService
IRODSAccount irodsAccount
def grailsApplication
@@ -769,9 +772,21 @@ class BrowseController {
if (commentTag) {
comment = commentTag.getTagData()
}
-
+
+
+ Rule rule = null
+ if (ruleProcessingService.isRule(absPath)) {
+ log.info("is a .r file, see if a rule")
+ try {
+
+ rule = ruleProcessingService.loadRuleFromIrodsFile(irodsAccount, absPath)
+ } catch (JargonException je) {
+ log.error("exception attempting to load rule, do not show tab")
+ }
+ }
+
mav.view = "dataObjectInfo"
- mav.model = [dataObject:retObj,tags:freeTags,comment:comment,getThumbnail:getThumbnail,renderMedia:renderMedia,isDataObject:isDataObject,irodsStarredFileOrCollection:irodsStarredFileOrCollection,showLite:collectionAndDataObjectListAndSearchAO.getIRODSServerProperties().isTheIrodsServerAtLeastAtTheGivenReleaseVersion("rods3.0")]
+ mav.model = [dataObject:retObj,tags:freeTags,comment:comment,getThumbnail:getThumbnail,renderMedia:renderMedia,isDataObject:isDataObject,irodsStarredFileOrCollection:irodsStarredFileOrCollection,showLite:collectionAndDataObjectListAndSearchAO.getIRODSServerProperties().isTheIrodsServerAtLeastAtTheGivenReleaseVersion("rods3.0"), rule:rule]
return mav
} else {
log.info("getting free tags for collection")
diff --git a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/FileController.groovy b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/FileController.groovy
index 971b89e..714c505 100755
--- a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/FileController.groovy
+++ b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/FileController.groovy
@@ -236,7 +236,7 @@ class FileController {
IRODSFile targetFile = irodsFileFactory.instanceIRODSFile(absPath)
try {
- targetFile.delete()
+ targetFile.deleteWithForceOption()
log.info("file deleted")
render(view:"deleteResult", model:[absPath:targetFile.parent])
} catch (CatNoAccessException e) {
diff --git a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/HomeController.groovy b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/HomeController.groovy
index e5f0337..171f05c 100755
--- a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/HomeController.groovy
+++ b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/HomeController.groovy
@@ -59,6 +59,10 @@ class HomeController {
// TODO: refactor, add check to see if on same grid, in which case the account should not be changed
String mungedIRODSURI = irodsURIString.replaceAll(" ", "&&space&&")
URI irodsURI = new URI(mungedIRODSURI)
+
+ log.info("irodsURI ${irodsURI}")
+
+
String filePath = irodsURI.getPath()
log.info("irodsFilePath:${filePath}")
filePath = filePath.replaceAll("&&space&&", " ")
diff --git a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/RuleController.groovy b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/RuleController.groovy
new file mode 100644
index 0000000..49c502c
--- /dev/null
+++ b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/RuleController.groovy
@@ -0,0 +1,437 @@
+package org.irods.mydrop.controller
+
+import org.irods.jargon.core.connection.IRODSAccount
+import org.irods.jargon.core.exception.JargonException
+import org.irods.jargon.core.pub.IRODSAccessObjectFactory
+import org.irods.jargon.core.pub.RuleProcessingAO
+import org.irods.jargon.core.pub.domain.DelayedRuleExecution
+import org.irods.jargon.core.rule.IRODSRuleExecResult
+import org.irods.jargon.ruleservice.composition.Rule
+import org.irods.jargon.ruleservice.formatting.HtmlLogTableFormatter
+import org.irods.mydrop.service.RuleProcessingService
+
+
+class RuleController {
+
+ IRODSAccessObjectFactory irodsAccessObjectFactory
+ IRODSAccount irodsAccount
+ RuleProcessingService ruleProcessingService
+ def grailsApplication
+
+ /**
+ * Interceptor grabs IRODSAccount from the SecurityContextHolder
+ */
+ def beforeInterceptor = [action:this.&auth]
+
+ def auth() {
+ if(!session["SPRING_SECURITY_CONTEXT"]) {
+ redirect(controller:"login", action:"login")
+ return false
+ }
+ irodsAccount = session["SPRING_SECURITY_CONTEXT"]
+ }
+
+ def afterInterceptor = {
+ log.debug("closing the session")
+ irodsAccessObjectFactory.closeSession()
+ }
+
+ /**
+ * List the contents of the delayed execution queue
+ * @return
+ */
+ def delayExecQueue() {
+ log.info("delayExecQueue()")
+ List<DelayedRuleExecution> rules = ruleProcessingService.listDelayedRuleExecutions(irodsAccount, 0)
+ render(view:"delayExecQueue", model:[rules:rules])
+ }
+
+
+ def deleteDelayExecQueue = {
+ log.info("deleteDelayExecQueue")
+
+ log.info("params: ${params}")
+
+ def rulesToDelete = params['selectDetail']
+
+ // if nothing selected, just jump out and return a message
+ if (!rulesToDelete) {
+ log.info("no rules to delete")
+ List<DelayedRuleExecution> rules = ruleProcessingService.listDelayedRuleExecutions(irodsAccount, 0)
+ render(view:"_ruleDelayExecQueueDetails", model:[rules:rules])
+ }
+
+ log.info("rulesToDelete: ${rulesToDelete}")
+
+
+ RuleProcessingAO ruleAO = irodsAccessObjectFactory.getRuleProcessingAO(irodsAccount)
+
+ if (!rulesToDelete) {
+ log.info("nothing to delete")
+ } else if (rulesToDelete instanceof Object[]) {
+ log.debug "is array"
+ rulesToDelete.each{
+ log.info "ruleToDelete: ${it}"
+ def idVal = parseRuleId(it)
+ if (idVal != -1) {
+ log.info("deleting id:${idVal}")
+ ruleAO.purgeRuleFromDelayedExecQueue(idVal)
+ }
+ }
+ } else {
+ log.debug "not array"
+ log.info "deleting: ${rulesToDelete}..."
+ def idVal = parseRuleId(rulesToDelete)
+ if (idVal != -1) {
+ log.info("deleting id:${idVal}")
+ ruleAO.purgeRuleFromDelayedExecQueue(idVal)
+ }
+
+ }
+
+ List<DelayedRuleExecution> rules = ruleProcessingService.listDelayedRuleExecutions(irodsAccount, 0)
+
+ render(view:"_ruleDelayExecQueueDetails", model:[rules:rules])
+
+ }
+
+ private int parseRuleId(String ruleId) {
+ if (!ruleId) {
+ throw new IllegalArgumentException("null ruleId")
+ }
+
+ int idx = ruleId.indexOf("select-");
+ if (idx == -1) {
+ return -1
+ }
+
+
+ return Integer.valueOf(ruleId.substring(7))
+
+ }
+
+
+ def updateRule() {
+ log.info("update rule")
+ log.info("params:${params}")
+
+ def absPath = params['ruleAbsPath']
+ if (absPath == null) {
+ log.error "no ruleAbsPath in request "
+ def message = message(code:"error.no.path.provided")
+ response.sendError(500,message)
+ }
+
+ def ruleBody = params['ruleBody']
+ if (!ruleBody) {
+ log.error "no ruleBody in request "
+ def message = message(code:"error.no.rule.body")
+ response.sendError(500,message)
+ }
+
+ List<String> inputParams = new ArrayList<String>()
+ List<String> inputParamValues = new ArrayList<String>()
+ List<String> outputParams = new ArrayList<String>()
+
+ def parmKey = params['inputParamName']
+ def parmValue = params['inputParamValue']
+
+ if (parmKey) {
+
+ if (parmKey instanceof Object[]) {
+ inputParams = parmKey
+ } else {
+ inputParams.add(parmKey)
+ }
+
+ if (!parmValue) {
+ log.error "no param values for param keys in request "
+ def message = message(code:"error.invalid.request")
+ response.sendError(500,message)
+ }
+
+ if (parmValue instanceof Object[]) {
+ inputParamValues = parmValue
+ } else {
+ inputParamValues.add(parmValue)
+ }
+ }
+
+ parmKey = params['outputParamName']
+
+ if (parmKey) {
+
+ if (parmKey instanceof Object[]) {
+ outputParams = parmKey
+ } else {
+ outputParams.add(parmKey)
+ }
+ }
+
+
+ List<String> concatParams = new ArrayList<String>()
+ for (int i = 0; i < inputParams.size(); i++) {
+ concatParams.add(inputParams[i] + "=" + inputParamValues[i])
+ }
+
+ Rule rule = ruleProcessingService.storeRule(irodsAccount, absPath, ruleBody, concatParams, outputParams)
+ log.info("rule stored:${rule}")
+ render(view:"_ruleDetails", model:[absPath:absPath, rule:rule])
+ }
+
+ def addRuleInputParameterDialog() {
+ log.info("addRuleInputParameterDialog()")
+ log.info("params:${params}")
+
+ def absPath = params['ruleAbsPath']
+ if (!absPath) {
+ log.error "no ruleAbsPath in request "
+ def message = message(code:"error.no.path.provided")
+ response.sendError(500,message)
+ }
+
+ render(view:"addParameterDialog", model:[absPath:absPath, isInputParameter:true])
+ }
+
+ def addRuleOutputParameterDialog() {
+ log.info("addRuleOutputParameterDialog()")
+ log.info("params:${params}")
+
+ def absPath = params['ruleAbsPath']
+ if (!absPath) {
+ log.error "no ruleAbsPath in request "
+ def message = message(code:"error.no.path.provided")
+ response.sendError(500,message)
+ }
+
+ render(view:"addParameterDialog", model:[absPath:absPath, isInputParameter:false])
+ }
+
+ def deleteRuleInputParameter() {
+ log.info("deleteRuleInputParameter()")
+ log.info("params:${params}")
+
+ def absPath = params['ruleAbsPath']
+ if (!absPath) {
+ log.error "no ruleAbsPath in request "
+ def message = message(code:"error.no.path.provided")
+ response.sendError(500,message)
+ }
+
+
+ def parmKey = params['inputParamName']
+ if (!parmKey) {
+ log.error "no parmkey in request "
+ def message = message(code:"error.invalid.request")
+ response.sendError(500,message)
+ }
+
+ Rule rule = ruleProcessingService.deleteInputParam(irodsAccount, absPath, parmKey)
+ log.info("rule stored:${rule}")
+ render(view:"_ruleDetails", model:[absPath:absPath, rule:rule])
+ }
+
+ def deleteRuleOutputParameter() {
+ log.info("deleteRuleOutputParameter()")
+ log.info("params:${params}")
+
+ def absPath = params['ruleAbsPath']
+ if (!absPath) {
+ log.error "no ruleAbsPath in request "
+ def message = message(code:"error.no.path.provided")
+ response.sendError(500,message)
+ }
+
+
+ def parmKey = params['outputParamName']
+ if (!parmKey) {
+ log.error "no parmkey in request "
+ def message = message(code:"error.invalid.request")
+ response.sendError(500,message)
+ }
+
+ Rule rule = ruleProcessingService.deleteOutputParam(irodsAccount, absPath, parmKey)
+ log.info("rule stored:${rule}")
+ render(view:"_ruleDetails", model:[absPath:absPath, rule:rule])
+ }
+
+ def reloadRule() {
+
+ log.info("reloadRule()")
+
+ def absPath = params['absPath']
+ if (absPath == null) {
+ log.error "no absPath in request "
+ def message = message(code:"error.no.path.provided")
+ response.sendError(500,message)
+ }
+
+ try {
+ def rule = ruleProcessingService.loadRuleFromIrodsFile(irodsAccount, absPath)
+ log.info("found rule:${rule}")
+ render(view:"_ruleDetails", model:[absPath:absPath, rule:rule])
+ } catch (JargonException je) {
+ log.error("unable to load rule", je)
+ def message = message(code:"error.unable.to.load.rule")
+ response.sendError(500,message)
+ }
+ }
+
+
+
+ def index() {
+
+ log.info("index()")
+
+ def absPath = params['absPath']
+ if (absPath == null) {
+ log.error "no absPath in request "
+ def message = message(code:"error.no.path.provided")
+ response.sendError(500,message)
+ }
+
+ try {
+ def rule = ruleProcessingService.loadRuleFromIrodsFile(irodsAccount, absPath)
+ log.info("found rule:${rule}")
+ render(view:"index", model:[absPath:absPath, rule:rule])
+ } catch (JargonException je) {
+ log.error("unable to load rule", je)
+ def message = message(code:"error.unable.to.load.rule")
+ response.sendError(500,message)
+ }
+ }
+
+
+ def runRule() {
+ log.info("runRule()")
+ log.info("params:${params}")
+
+ def absPath = params['ruleAbsPath']
+ if (absPath == null) {
+ log.error "no ruleAbsPath in request "
+ def message = message(code:"error.no.path.provided")
+ response.sendError(500,message)
+ }
+
+ def ruleBody = params['ruleBody']
+ if (!ruleBody) {
+ log.error "no ruleBody in request "
+ def message = message(code:"error.no.rule.body")
+ response.sendError(500,message)
+ }
+
+ List<String> inputParams = new ArrayList<String>()
+ List<String> inputParamValues = new ArrayList<String>()
+ List<String> outputParams = new ArrayList<String>()
+
+ def parmKey = params['inputParamName']
+ def parmValue = params['inputParamValue']
+
+ if (parmKey) {
+
+ if (parmKey instanceof Object[]) {
+ inputParams = parmKey
+ } else {
+ inputParams.add(parmKey)
+ }
+
+ if (!parmValue) {
+ log.error "no param values for param keys in request "
+ def message = message(code:"error.invalid.request")
+ response.sendError(500,message)
+ }
+
+ if (parmValue instanceof Object[]) {
+ inputParamValues = parmValue
+ } else {
+ inputParamValues.add(parmValue)
+ }
+ }
+
+ parmKey = params['outputParamName']
+
+ if (parmKey) {
+
+ if (parmKey instanceof Object[]) {
+ outputParams = parmKey
+ } else {
+ outputParams.add(parmKey)
+ }
+ }
+
+ List<String> concatParams = new ArrayList<String>()
+ for (int i = 0; i < inputParams.size(); i++) {
+ concatParams.add(inputParams[i] + "=" + inputParamValues[i])
+ }
+
+ try {
+ IRODSRuleExecResult ruleResult = ruleProcessingService.executeRule(irodsAccount, ruleBody, concatParams, outputParams)
+ log.info("rule result:${ruleResult}")
+ def execOut = HtmlLogTableFormatter.formatAsBootstrap2Table(ruleResult.ruleExecOut, "Std Out")
+ def errorOut = HtmlLogTableFormatter.formatAsBootstrap2Table(ruleResult.ruleExecErr, "Error Out")
+ render(view:"ruleResult", model:[ruleResult:ruleResult, execOut:execOut, errorOut:errorOut])
+ } catch (JargonException je) {
+ def message = HtmlLogTableFormatter.formatAsBootstrap2Table(je.message, "Error")
+ def stackTrace = HtmlLogTableFormatter.formatStackTraceAsBootstrap2Table(je)
+ render(view:"ruleErrorResult", model:[message:message,stackTrace:stackTrace])
+ }
+ }
+
+
+ def submitAddOutputParameterDialog() {
+ log.info("submitAddOutputParameterDialog")
+ log.info("params:${params}")
+
+ def absPath = params['ruleAbsPath']
+ if (absPath == null) {
+ log.error "no ruleAbsPath in request "
+ def message = message(code:"error.no.path.provided")
+ response.sendError(500,message)
+ }
+
+ def parmKey = params['addParameterName']
+
+ if (!parmKey) {
+ log.error "no param key in request "
+ def message = message(code:"error.no.param.key")
+ response.sendError(500,message)
+ }
+
+
+ Rule rule = ruleProcessingService.addRuleOutputParam(irodsAccount, absPath, parmKey)
+ log.info("rule stored:${rule}")
+ render(view:"_ruleDetails", model:[absPath:absPath, rule:rule])
+ }
+
+ def submitAddInputParameterDialog() {
+ log.info("submitAddInputParameterDialog")
+ log.info("params:${params}")
+
+ def absPath = params['ruleAbsPath']
+ if (absPath == null) {
+ log.error "no ruleAbsPath in request "
+ def message = message(code:"error.no.path.provided")
+ response.sendError(500,message)
+ }
+
+ def parmKey = params['addParameterName']
+ def parmValue = params['addParameterValue']
+
+ if (!parmKey) {
+ log.error "no param key in request "
+ def message = message(code:"error.no.param.key")
+ response.sendError(500,message)
+ }
+
+ if (!parmValue) {
+ log.error "no param values for param value in request "
+ def message = message(code:"error.no.param.value")
+ response.sendError(500,message)
+ }
+
+
+ Rule rule = ruleProcessingService.addRuleInputParam(irodsAccount, absPath, parmKey, parmValue)
+ log.info("rule stored:${rule}")
+ render(view:"_ruleDetails", model:[absPath:absPath, rule:rule])
+ }
+}
diff --git a/idrop-web/grails-app/i18n/messages.properties b/idrop-web/grails-app/i18n/messages.properties
index 6d60c26..1ba19c7 100755
--- a/idrop-web/grails-app/i18n/messages.properties
+++ b/idrop-web/grails-app/i18n/messages.properties
@@ -3,6 +3,9 @@ text.account=Account
text.actions=Actions
text.add.metadata=Add Metadata
text.add.all.to.cart=Add all selected items to the cart
+text.add.input.parm=Add input parameter
+text.add.output.parm=Add output parameter
+text.add.parameter=Add parameter
text.add.share=Add a share
text.add.to.cart=Add to Cart
text.address=Address
@@ -40,10 +43,10 @@ text.email=Email
text.file=File
text.file.name=File Name
text.first.name=First Name
-text.forward=Page Forward
text.find.path.in.tree=Open the path in the tree
text.folders.shared.with.me=Folders shared with me
text.folders.shared.by.me=Folders shared by me
+text.frequency=Frequency
text.gallery=Gallery
text.grant=Grant public access
text.guest.login=Use a guest login
@@ -52,8 +55,10 @@ text.home=Home
text.host=Host
text.id=ID
text.info=Info
+text.input.parameters=Input Parameters
text.idrop.lite=Idrop Lite
text.irods.uri=iRODS URI
+text.last.exec.time=Last Exec Time
text.last.name=Last Name
text.length=Size
text.login=Login
@@ -64,8 +69,11 @@ text.name=Name
text.new.folder=New Folder
text.object.path=Object Path
text.optional=(Optional)
+text.output.parameters=Output Parameters
text.owner=Owner
text.owner.zone=Owner Zone
+text.parameter.name=Parameter Name
+text.parameter.value=Parameter Value
text.parent=Parent Collection
text.path=Path
text.password=Password
@@ -84,6 +92,9 @@ text.replication.status=Replication Status
text.rename=Rename
text.resource=Resource
text.resource.group=Resource Group
+text.rule=Rule
+text.rule.body=Rule Body
+text.run.rule=Run Rule
text.search=Search
text.set.as.root=Set this as the root of the tree
text.set.default.resource=Set default resource
@@ -125,7 +136,6 @@ text.ticket.file.limit=Write File Limit
text.ticket.url=Ticket URL
text.ticket.url.landing=Show landing page
text.title=Title
-text.tags=Tags
text.timestamp=Timestamp
text.type=Type
text.tools=Tools
@@ -143,7 +153,6 @@ text.nickname=Nick Name
text.value=Value
text.view=View
text.zone=Zone
-text.new.folder=New Folder
# page headings
@@ -179,12 +188,17 @@ browse.page.prompt=Select a directory or file to see info and actions
# messages
error.confirm.password.missing=Confirmation password is null or blank
error.nothing.selected=Nothing was selected for the action
+error.invalid.request=Invalid Request
+error.in.rule.execution=An error occurred in processing the rule
error.no.access.permission=No access permission
error.no.action=No action found
error.no.audit.access=This user does not have permission to view audit data
error.no.data.found=No data found
+error.no.rule.body=No rule body was entered
error.no.share.name=No share name was provided, please enter a share name
error.no.ticket.found=No ticket was found
+error.no.param.key=No key entered for parameter
+error.no.param.value=No value entered for parameter
error.data.error=Invalid data entered
error.unable.to.find.acl=Unable to find ACL data
error.no.description.provided=No description provided
@@ -220,7 +234,6 @@ message.error.in.upload=An error occurred in uploading this file. If the proble
message.login=Please enter your credentials to log into iRODS
message.password.updated=The password was successfully updated
message.resource.updated=Default storage resource updated successfully
-message.update.successful=Update successful
message.no.access=You do not have access rights to perform that operation
message.no.starred=No starred files or folders to display
message.cannot.create.profile=A profile cannot be created for this user, this may be a mis-configuration
diff --git a/idrop-web/grails-app/services/org/irods/mydrop/service/RuleProcessingService.groovy b/idrop-web/grails-app/services/org/irods/mydrop/service/RuleProcessingService.groovy
new file mode 100644
index 0000000..44d74a4
--- /dev/null
+++ b/idrop-web/grails-app/services/org/irods/mydrop/service/RuleProcessingService.groovy
@@ -0,0 +1,85 @@
+package org.irods.mydrop.service
+
+import org.irods.jargon.core.connection.IRODSAccount
+import org.irods.jargon.core.pub.IRODSAccessObjectFactory
+import org.irods.jargon.core.pub.RuleProcessingAO
+import org.irods.jargon.core.utils.LocalFileUtils
+import org.irods.jargon.core.utils.MiscIRODSUtils
+import org.irods.jargon.ruleservice.composition.RuleCompositionService
+import org.irods.jargon.ruleservice.composition.RuleCompositionServiceImpl
+
+
+class RuleProcessingService {
+
+ static transactional = false
+ IRODSAccessObjectFactory irodsAccessObjectFactory
+
+ def loadRuleFromIrodsFile(IRODSAccount irodsAccount, String rulePath) {
+
+ RuleCompositionService ruleService = new RuleCompositionServiceImpl(irodsAccessObjectFactory, irodsAccount)
+ log.info("attempting to retrieve rule for ${rulePath}")
+
+ return ruleService.loadRuleFromIrods(rulePath)
+ }
+
+ def storeRule(IRODSAccount irodsAccount, String rulePath, String ruleBody, List<String> inputParameters, List<String> outputParameters) {
+
+ log.info("storeRule")
+ RuleCompositionService ruleService = new RuleCompositionServiceImpl(irodsAccessObjectFactory, irodsAccount)
+ return ruleService.storeRuleFromParts(rulePath, ruleBody, inputParameters, outputParameters)
+ }
+
+ def executeRule(IRODSAccount irodsAccount, String ruleBody, List<String> inputParameters, List<String> outputParameters) {
+
+ log.info("executeRule")
+ RuleCompositionService ruleService = new RuleCompositionServiceImpl(irodsAccessObjectFactory, irodsAccount)
+ return ruleService.executeRuleFromParts(ruleBody, inputParameters, outputParameters)
+ }
+
+ def isRule(String rulePath) {
+ if (!rulePath) {
+ return false
+ }
+
+ def fileName = MiscIRODSUtils.getLastPathComponentForGiveAbsolutePath(rulePath)
+ def fileExtension = LocalFileUtils.getFileExtension(fileName)
+ log.info("extension is:${fileExtension}")
+
+ if (fileExtension && fileExtension == ".r") {
+ return true
+ } else {
+ return false
+ }
+ }
+
+ def deleteOutputParam(IRODSAccount irodsAccount, String absPath, String parameter) {
+ log.info("deleteOutputParam")
+ RuleCompositionService ruleService = new RuleCompositionServiceImpl(irodsAccessObjectFactory, irodsAccount)
+ return ruleService.deleteOutputParameterFromRule(absPath, parameter)
+ }
+
+
+ def deleteInputParam(IRODSAccount irodsAccount, String absPath, String parameter) {
+ log.info("deleteInputParam")
+ RuleCompositionService ruleService = new RuleCompositionServiceImpl(irodsAccessObjectFactory, irodsAccount)
+ return ruleService.deleteInputParameterFromRule(absPath, parameter)
+ }
+
+ def addRuleInputParam(IRODSAccount irodsAccount, String absPath, String parameterName, String parameterValue) {
+ log.info("addInputParam")
+ RuleCompositionService ruleService = new RuleCompositionServiceImpl(irodsAccessObjectFactory, irodsAccount)
+ return ruleService.addInputParameterToRule(absPath, parameterName, parameterValue)
+ }
+
+ def addRuleOutputParam(IRODSAccount irodsAccount, String absPath, String parameterName) {
+ log.info("addOutputParam")
+ RuleCompositionService ruleService = new RuleCompositionServiceImpl(irodsAccessObjectFactory, irodsAccount)
+ return ruleService.addOutputParameterToRule(absPath, parameterName)
+ }
+
+ def listDelayedRuleExecutions(IRODSAccount irodsAccount, int offset) {
+ log.info("listDelayedRuleExecutions()")
+ RuleProcessingAO ruleProcessingAO = irodsAccessObjectFactory.getRuleProcessingAO(irodsAccount)
+ return ruleProcessingAO.listAllDelayedRuleExecutions(offset)
+ }
+}
diff --git a/idrop-web/grails-app/views/browse/dataObjectInfo.gsp b/idrop-web/grails-app/views/browse/dataObjectInfo.gsp
index e37c7c7..4105810 100644
--- a/idrop-web/grails-app/views/browse/dataObjectInfo.gsp
+++ b/idrop-web/grails-app/views/browse/dataObjectInfo.gsp
@@ -25,8 +25,6 @@
</h3>
</div>
-
-
<ul class="nav nav-tabs" id="infoTabs">
<li class="active"><a href="#info" id="infoTab"><g:message
code="text.info" /></a></li>
@@ -41,6 +39,11 @@
</g:if>
<li><a href="#audit" id="auditTab"><g:message
code="text.audit" /></a></li>
+ <g:if
+ test="${rule}">
+ <li><a href="#rule" id="ruleTab"><g:message
+ code="text.rule" /></a></li>
+ </g:if>
</ul>
<div class="tab-content">
@@ -246,6 +249,12 @@
<div class="tab-pane" id="audit">
<div id="infoAccordionAuditInner"></div>
</div>
+ <g:if
+ test="${rule}">
+ <div class="tab-pane" id="rule">
+ <div id="infoAccordionRuleInner"></div>
+ </div>
+ </g:if>
</div>
</div>
@@ -285,6 +294,10 @@
showAuditView(selectedPath, "#infoAccordionAuditInner");
});
+ $('#ruleTab').on('shown', function(e) {
+ showRuleView(selectedPath, "#infoAccordionRuleInner");
+ });
+
});
function callUpdateTags() {
diff --git a/idrop-web/grails-app/views/browse/index.gsp b/idrop-web/grails-app/views/browse/index.gsp
index ec5ac6b..ab16a69 100755
--- a/idrop-web/grails-app/views/browse/index.gsp
+++ b/idrop-web/grails-app/views/browse/index.gsp
@@ -8,7 +8,7 @@
<g:hiddenField name="mode" id="mode" value="${mode}"/>
<g:hiddenField name="viewStateBrowseOptionVal" id="viewStateBrowseOptionVal" value="${viewState.browseView}"/>
<g:hiddenField name="presetPath" id="presetPath" value="${viewState.rootPath}"/>
- <g:hiddenField id="viewStateSelectedPath" name="viewStateSelectedPath" value="${viewState.selectedPath}"/>
+ <g:hiddenField id="viewStateSelectedPath" name="viewStateSelectedPath" value="${absPath}"/>
<g:render template="/browse/browseTabContent" />
</div>
diff --git a/idrop-web/grails-app/views/common/_topbar.gsp b/idrop-web/grails-app/views/common/_topbar.gsp
index fee43d3..2edf9ce 100755
--- a/idrop-web/grails-app/views/common/_topbar.gsp
+++ b/idrop-web/grails-app/views/common/_topbar.gsp
@@ -29,6 +29,7 @@
<g:message code="text.tools" /><b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="${grailsApplication.config.idrop.config.idrop.jnlp}" id="idropDesktop")>iDrop Desktop</a></li>
+ <li id="topbarRule" class="topbarItem"><g:link controller="rule" action="delayExecQueue">User Rules</g:link></li>
</ul>
</li>
diff --git a/idrop-web/grails-app/views/home/link.gsp b/idrop-web/grails-app/views/home/link.gsp
index d8bfef5..a7e1531 100755
--- a/idrop-web/grails-app/views/home/link.gsp
+++ b/idrop-web/grails-app/views/home/link.gsp
@@ -17,6 +17,7 @@
return false;
}
baseAbsPath = escape(baseAbsPath);
+ //alert(baseAbsPath);
window.location.href = context + "/browse/index?mode=path&absPath=" + baseAbsPath;
});
</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/rule/_ruleDelayExecQueueDetails.gsp b/idrop-web/grails-app/views/rule/_ruleDelayExecQueueDetails.gsp
new file mode 100644
index 0000000..9e9afa9
--- /dev/null
+++ b/idrop-web/grails-app/views/rule/_ruleDelayExecQueueDetails.gsp
@@ -0,0 +1,61 @@
+ <form id="delayExecForm" name="delayExecForm">
+
+<table id="delayExecQueueTable" class="table table-striped table-hover"
+ cellspacing="0" cellpadding="0" border="0">
+ <thead>
+ <tr>
+ <th>
+ <div class="btn-group">
+ <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">Action<span
+ class="caret"></span></a>
+ <ul class="dropdown-menu">
+ <li id="menuDeleteDetails"><a href="#deleteAllDetails"
+ onclick="deleteRulesBulkAction()"><g:message code="text.delete.all" /></a></li>
+ <!-- dropdown menu links -->
+ </ul>
+ </div>
+
+ </th>
+ <th><g:message code="text.name" /></th>
+ <th><g:message code="text.user" /></th>
+ <th><g:message code="text.last.exec.time" /></th>
+ <th><g:message code="text.frequency" /></th>
+
+ </tr>
+ </thead>
+ <tbody>
+ <g:each in="${rules}" var="rule">
+
+ <tr id="rule-${rule.id}">
+
+ <td><g:checkBox name="selectDetail"
+ value="select-${rule.id}" checked="false" />
+ </td>
+ <td>
+ ${rule.name}
+ </td>
+ <td>
+ ${rule.userName}
+ </td>
+ <td>
+ ${rule.lastExecTime}
+ </td>
+ <td>
+ ${rule.frequency}
+ </td>
+ </tr>
+ </g:each>
+
+ </tbody>
+
+ <tfoot>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ </tfoot>
+ </table>
+ </form> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/rule/_ruleDetails.gsp b/idrop-web/grails-app/views/rule/_ruleDetails.gsp
new file mode 100644
index 0000000..96c526d
--- /dev/null
+++ b/idrop-web/grails-app/views/rule/_ruleDetails.gsp
@@ -0,0 +1,95 @@
+
+<g:if test="${flash.error}">
+ <script>
+ $(function() { setErrorMessage("${flash.error}"); });
+ </script>
+ </g:if>
+
+ <g:if test="${flash.message}">
+ <script>
+ $(function() { setMessage("${flash.message}");});
+ </script>
+ </g:if>
+
+
+<div id="addParamDialogDiv">
+<!-- area for hanging dialogs -->
+</div>
+
+<g:form name="ruleDetailsForm" id="ruleDetailsForm">
+ <fieldset>
+ <label></label>
+ <g:textArea id="ruleBody" name="ruleBody" value="${rule.ruleBody}" rows="80" cols="100"/>
+
+ <g:hiddenField name="ruleAbsPath" value="${absPath}" id="ruleAbsPath"/>
+
+ <table class="table alert alert-info">
+ <caption><g:message code="text.input.parameters"/></caption>
+
+ <g:each in="${rule.inputParameters}">
+
+ <tr>
+ <g:hiddenField name="inputParamName" value="${it.uniqueName}" id="inputParamName"/>
+ <td>${it.uniqueName}</td>
+ <td><g:textField name="inputParamValue" id="inputParamValue" value="${it.getStringValue()}" size="80"/></td>
+ <td><i class='icon-remove' onclick='deleteInputParam(${"\"" + it.uniqueName + "\""})'></i></td>
+ </tr>
+
+ </g:each>
+ </table>
+ <div id="inputParamsToolbar" >
+ <button type="button" id="addInputParameterButton"
+ value="addInputParameter"
+ onclick="callAddInputParameter()">
+ <i class="icon-plus"></i><g:message code="text.add.input.parm" />
+ </button>
+ </div>
+
+
+ <br/>
+ <table class="table alert alert-info">
+ <caption><g:message code="text.output.parameters"/></caption>
+
+ <g:each in="${rule.outputParameters}">
+ <tr>
+ <g:hiddenField name="outputParamName" value="${it.uniqueName}" id="outputParamName"/>
+ <td>${it.uniqueName}</td>
+ <td><i class='icon-remove' onclick='deleteOutputParam(${"\"" + it.uniqueName + "\""})'></i></td>
+ </tr>
+
+ </g:each>
+
+ </table>
+ <div id="outputParamsToolbar" >
+ <button type="button" id="addOutputParameterButton"
+ value="addOutputParameter"
+ onclick="callAddOutputParameter()">
+ <i class="icon-plus"></i><g:message code="text.add.output.parm" />
+ </button>
+ </div>
+
+ </fieldset>
+</g:form>
+<script type="text/javascript">
+
+var editor = null;
+$(function() {
+ /* var myCodeMirror = CodeMirror.fromTextArea(document.getElementById('ruleBody'),{
+ mode: 'clike',
+ lineNumbers: true,
+ theme: "blackboard"
+ }); */
+
+ var uiOptions = { path : 'js/', searchMode: 'popup' }
+ var codeMirrorOptions = {
+ mode: 'text/x-rule',
+ lineNumbers: true,
+ theme: "eclipse"
+ }
+
+ //then create the editor
+ editor = new CodeMirrorUI(document.getElementById('ruleBody'),uiOptions,codeMirrorOptions);
+
+});
+</script>
+ \ No newline at end of file
diff --git a/idrop-web/grails-app/views/rule/addParameterDialog.gsp b/idrop-web/grails-app/views/rule/addParameterDialog.gsp
new file mode 100644
index 0000000..f891c31
--- /dev/null
+++ b/idrop-web/grails-app/views/rule/addParameterDialog.gsp
@@ -0,0 +1,154 @@
+<div id="addParameterDialog">
+
+ <div class="modal-header">
+ <h3>
+ <g:message code="text.add.parameter" />
+ </h3>
+ </div>
+
+ <div class="modal-body">
+ <label for="addParameterName"><g:message
+ code="text.parameter.name" />:<g:textField name="addParameterName"
+ id="addParameterName" /></label>
+ <g:hiddenField name="newParameterAbsPath" id="newParameterAbsPath"
+ value="${absPath }" />
+ <g:if test="${isInputParameter}">
+ <label for="addParameterValue"><g:message
+ code="text.parameter.value" />:<g:textField
+ name="addParameterValue" id="addParameterValue" /></label>
+ </g:if>
+ <g:hiddenField name="isInputParameter" id="isInputParameter"
+ value="${isInputParameter}" />
+
+
+ </div>
+
+ <div class="modal-footer">
+ <g:if test="${isInputParameter}">
+ <button type="button" id="updateNewParameterButton" value="update"
+ onclick="submitAddInputParameterDialog()")>
+ <g:message code="default.button.update.label" />
+ </button>
+ </g:if>
+ <g:else>
+ <button type="button" id="updateNewParameterButton" value="update"
+ onclick="submitAddOutputParameterDialog()")>
+ <g:message code="default.button.update.label" />
+ </button>
+ </g:else>
+ <button type="button" id="cancelAddButton" value="cancelAdd"
+ onclick="closeAddParameterDialog()")>
+ <g:message code="text.cancel" />
+ </button>
+ </div>
+
+</div>
+
+<script>
+ $(function() {
+ $("#addParameterDialog").dialog({
+ "modal" : true,
+ "width" : "500px"
+ });
+ });
+
+ function submitAddInputParameterDialog() {
+
+ var absPath = $("#newParameterAbsPath").val();
+ if (absPath == null || absPath == "") {
+ setErrorMessage("no absPath for rule");
+ return false;
+ }
+
+ var inputParamKey = $("#addParameterName").val();
+ if (inputParamKey == null || inputParamKey == "") {
+ setErrorMessage("no input parameter key for rule");
+ return false;
+ }
+
+ var inputParamValue = $("#addParameterValue").val();
+ if (inputParamValue == null || inputParamValue == "") {
+ setErrorMessage("no input parameter value for rule");
+ return false;
+ }
+
+ var params = {
+ ruleAbsPath : absPath,
+ addParameterName : inputParamKey,
+ addParameterValue : inputParamValue
+ }
+ var url = "/rule/submitAddInputParameterDialog";
+
+ showBlockingPanel();
+
+ var jqxhr = $.post(context + url, params, "html")
+ .success(
+ function(returnedData, status, xhr) {
+ var continueReq = checkForSessionTimeout(
+ returnedData, xhr);
+ if (!continueReq) {
+ unblockPanel();
+ return false;
+ }
+ $("#ruleDetailDiv").html(returnedData);
+
+ $("#addParameterDialog").dialog("close");
+ $("#addParameterDialog").html("");
+ unblockPanel();
+
+ }).error(function(xhr, status, error) {
+ unblockPanel();
+
+ setErrorMessage(xhr.responseText);
+ });
+ }
+
+ function closeAddParameterDialog() {
+ $("#addParameterDialog").dialog("close");
+ $("#addParameterDialog").html("");
+ }
+
+ function submitAddOutputParameterDialog() {
+
+ var absPath = $("#newParameterAbsPath").val();
+ if (absPath == null || absPath == "") {
+ setErrorMessage("no absPath for rule");
+ return false;
+ }
+
+ var inputParamKey = $("#addParameterName").val();
+ if (inputParamKey == null || inputParamKey == "") {
+ setErrorMessage("no input parameter key for rule");
+ return false;
+ }
+
+ var params = {
+ ruleAbsPath : absPath,
+ addParameterName : inputParamKey,
+ }
+ var url = "/rule/submitAddOutputParameterDialog";
+
+ showBlockingPanel();
+
+ var jqxhr = $.post(context + url, params, "html")
+ .success(
+ function(returnedData, status, xhr) {
+ var continueReq = checkForSessionTimeout(
+ returnedData, xhr);
+ if (!continueReq) {
+ unblockPanel();
+ return false;
+ }
+ $("#ruleDetailDiv").html(returnedData);
+
+ $("#addParameterDialog").dialog("close");
+ $("#addParameterDialog").html("");
+ unblockPanel();
+
+ }).error(function(xhr, status, error) {
+ unblockPanel();
+
+ setErrorMessage(xhr.responseText);
+ });
+ }
+</script>
diff --git a/idrop-web/grails-app/views/rule/delayExecQueue.gsp b/idrop-web/grails-app/views/rule/delayExecQueue.gsp
new file mode 100644
index 0000000..8ad4dec
--- /dev/null
+++ b/idrop-web/grails-app/views/rule/delayExecQueue.gsp
@@ -0,0 +1,39 @@
+<head>
+<meta name="layout" content="mainNoSidebar" />
+</head>
+<div id="delayExecQueueDiv">
+ <g:render template="ruleDelayExecQueueDetails" />
+</div>
+<script>
+$(document).ready(function() {
+
+ $.ajaxSetup({
+ cache : false
+ });
+ $("#topbarTools").addClass("active");
+ });
+
+
+function deleteRulesBulkAction() {
+
+ var formData = $("#delayExecForm").serializeArray();
+ showBlockingPanel();
+
+ var jqxhr = $.post(context + "/rule/deleteDelayExecQueue", formData, "html")
+ .success(function(returnedData, status, xhr) {
+ var continueReq = checkForSessionTimeout(returnedData, xhr);
+ if (!continueReq) {
+ return false;
+ }
+
+ setMessage("Delete action successful");
+ $("#delayExecQueueDiv").html(returnedData);
+ unblockPanel();
+ }).error(function(xhr, status, error) {
+ setErrorMessage(xhr.responseText);
+ unblockPanel();
+ });
+
+}
+
+</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/rule/index.gsp b/idrop-web/grails-app/views/rule/index.gsp
new file mode 100644
index 0000000..8ee551f
--- /dev/null
+++ b/idrop-web/grails-app/views/rule/index.gsp
@@ -0,0 +1,229 @@
+<head>
+
+<g:javascript library="codemirror" />
+<g:javascript library="addon/search/searchcursor" />
+<g:javascript library="codemirror-ui" />
+
+
+<g:javascript library="clike" />
+<link rel="stylesheet" href="${resource(dir:'css',file:'codemirror.css')}" />
+<link rel="stylesheet" href="${resource(dir:'css',file:'codemirror-ui.css')}" />
+
+<link rel="stylesheet" href="${resource(dir:'css',file:'eclipse.css')}" />
+
+</head>
+<h3><a ><g:message code="text.rule" /></a></h3>
+<div id="detailsTopSection">
+
+ <div id="detailsToolbar" >
+ <button type="button" id="reloadRuleButton" class="ruleEdit"
+ value="reloadRule"
+ onclick="callReloadRule()">
+ <i class="icon-refresh"></i><g:message code="default.button.reload.label" />
+ </button>
+ <span id="saveRuleButton"><button type="button" id="saveRuleButton" class="ruleEdit"
+ value="saveRule"
+ onclick="callSaveRule()"><i class="icon-ok"></i>
+ <g:message code="text.update" />
+ </button></span>
+ <span id="runRuleButton"><button type="button" id="runRuleButton"
+ value="runRule"
+ onclick="callRunRule()"><i class="icon-play"></i>
+ <g:message code="text.run.rule" />
+ </button></span>
+ </button></span>
+ <span id="showRuleButton"><button hidden type="button" id="showRuleButton" class="ruleResultView"
+ value="showRule"
+ onclick="callShowRule()"><i class="icon-edit"></i>
+ <g:message code="text.edit" />
+ </button></span>
+ </div>
+ </div>
+
+ <div id="ruleDetailDiv">
+ <!-- div for audit table -->
+ <g:render template="/rule/ruleDetails" />
+ </div>
+
+ <div id="ruleResultDiv">
+ <!-- result of rule exec -->
+
+
+ </div>
+
+ <script type="text/javascript">
+
+
+ function deleteInputParam(param) {
+
+ if (!param) {
+ return false;
+ }
+
+ var absPath = $("#ruleAbsPath").val();
+ if (absPath == null || absPath == "") {
+ setErrorMessage("no absPath for rule");
+ return false;
+ }
+
+ var params = {
+ ruleAbsPath : absPath,
+ inputParamName : param
+ }
+
+
+ var jqxhr = $.post(context + "/rule/deleteRuleInputParameter", params, "html").success(
+ function(returnedData, status, xhr) {
+ var continueReq = checkForSessionTimeout(returnedData, xhr);
+ if (!continueReq) {
+ return false;
+ }
+ setMessage("Parameter deleted");
+ $("#ruleDetailDiv").html(returnedData);
+ }).error(function(xhr, status, error) {
+ setErrorMessage(xhr.responseText);
+ });
+ }
+
+
+ function deleteOutputParam(param) {
+ var absPath = $("#ruleAbsPath").val();
+ if (absPath == null || absPath == "") {
+ setErrorMessage("no absPath for rule");
+ return false;
+ }
+
+ var params = {
+ ruleAbsPath : absPath,
+ outputParamName : param
+ }
+
+
+ var jqxhr = $.post(context + "/rule/deleteRuleOutputParameter", params, "html").success(
+ function(returnedData, status, xhr) {
+ var continueReq = checkForSessionTimeout(returnedData, xhr);
+ if (!continueReq) {
+ return false;
+ }
+ setMessage("Parameter deleted");
+ $("#ruleDetailDiv").html(returnedData);
+ }).error(function(xhr, status, error) {
+ setErrorMessage(xhr.responseText);
+ }); }
+
+ function callSaveRule() {
+ editor.mirror.save();
+ var formData = $("#ruleDetailsForm").serializeArray();
+ var jqxhr = $.post(context + "/rule/updateRule", formData, "html").success(
+ function(returnedData, status, xhr) {
+ var continueReq = checkForSessionTimeout(returnedData, xhr);
+ if (!continueReq) {
+ return false;
+ }
+ setMessage("rule saved");
+ $("#ruleDetailDiv").html(returnedData);
+ }).error(function(xhr, status, error) {
+ setErrorMessage(xhr.responseText);
+ });
+
+
+ }
+
+ function callShowRule() {
+
+ $("#ruleDetailDiv").show("slow");
+ $(".ruleEdit").show("slow");
+ $("#ruleResultDiv").html("");
+ $("#ruleResultDiv").hide("slow");
+ $(".ruleResultView").hide("slow");
+
+ }
+
+ function callReloadRule(absPath) {
+ var absPath = $("#ruleAbsPath").val();
+ if (absPath == null || absPath == "") {
+ showError("no absPath for rule");
+ return false;
+ }
+
+ var params = {
+ absPath : absPath
+
+ }
+ var jqxhr = $.get(context + "/rule/reloadRule", params, "html").success(
+ function(returnedData, status, xhr) {
+ var continueReq = checkForSessionTimeout(returnedData, xhr);
+ if (!continueReq) {
+ return false;
+ }
+ $("#ruleDetailDiv").html(returnedData);
+ }).error(function(xhr, status, error) {
+ setErrorMessage(xhr.responseText);
+ });
+
+
+ }
+
+ function callRunRule() {
+ editor.mirror.save();
+ var formData = $("#ruleDetailsForm").serializeArray();
+ $("#ruleDetailDiv").hide("slow");
+ $(".ruleEdit").hide("slow");
+ $("#ruleResultDiv").html("");
+ $("#ruleResultDiv").show("slow");
+ $(".ruleResultView").show("slow");
+
+ showBlockingPanel();
+
+ var jqxhr = $.post(context + "/rule/runRule", formData, "html").success(
+ function(returnedData, status, xhr) {
+ var continueReq = checkForSessionTimeout(returnedData, xhr);
+ if (!continueReq) {
+ unblockPanel();
+ return false;
+ }
+ $("#ruleResultDiv").html(returnedData);
+ unblockPanel();
+
+
+
+ }).error(function(xhr, status, error) {
+ unblockPanel();
+
+ setErrorMessage(xhr.responseText);
+ });
+ }
+
+ function callAddInputParameter() {
+
+ var absPath = $("#ruleAbsPath").val();
+ if (absPath == null || absPath == "") {
+ setErrorMessage("no absPath for rule");
+ return false;
+ }
+
+ var params = {
+ ruleAbsPath : absPath
+ }
+ var url = "/rule/addRuleInputParameterDialog";
+
+ lcSendValueWithParamsAndPlugHtmlInDiv(url, params, "#addParamDialogDiv", null);
+ }
+
+ function callAddOutputParameter() {
+ var absPath = $("#ruleAbsPath").val();
+ if (absPath == null || absPath == "") {
+ setErrorMessage("no absPath for rule");
+ return false;
+ }
+
+ var params = {
+ ruleAbsPath : absPath
+ }
+ var url = "/rule/addRuleOutputParameterDialog";
+
+ lcSendValueWithParamsAndPlugHtmlInDiv(url, params, "#addParamDialogDiv", null);
+ }
+
+
+ </script>
diff --git a/idrop-web/grails-app/views/rule/ruleErrorResult.gsp b/idrop-web/grails-app/views/rule/ruleErrorResult.gsp
new file mode 100644
index 0000000..fb05fbf
--- /dev/null
+++ b/idrop-web/grails-app/views/rule/ruleErrorResult.gsp
@@ -0,0 +1,23 @@
+
+<div class="container">
+ <div class="row-fluid content">
+ <div class="span12 alert alert-error">
+ <h2><g:message code="error.in.rule.execution" /></h2>
+ </div>
+ </div>
+ <div class="row-fluid content alert alert-success">
+ <div class="span12">
+ ${message}
+ </div>
+ </div>
+ <div class="row-fluid content alert alert-error">
+ <div class="span12">
+ ${stackTrace}
+ </div>
+ </div>
+</div>
+
+
+
+
+
diff --git a/idrop-web/grails-app/views/rule/ruleResult.gsp b/idrop-web/grails-app/views/rule/ruleResult.gsp
new file mode 100644
index 0000000..077a950
--- /dev/null
+++ b/idrop-web/grails-app/views/rule/ruleResult.gsp
@@ -0,0 +1,41 @@
+
+<div class="container">
+ <div class="row-fluid content">
+ <div class="span12">
+
+ <table class="table">
+ <g:each in="${ruleResult.outputParameterResults.keySet()}">
+
+ <g:if test="${it == "ruleExecOut" || it == "ruleExecErrorOut" }">
+ </g:if>
+ <g:else>
+ <tr>
+ <td>
+ ${it}
+ </td>
+ <td>
+ ${ruleResult.outputParameterResults.get(it).resultObject}
+ </td>
+ </tr>
+ </g:else>
+ </g:each>
+ </table>
+
+ </div>
+ </div>
+ <div class="row-fluid content alert alert-success">
+ <div class="span12">
+ ${execOut}
+ </div>
+ </div>
+ <div class="row-fluid content alert alert-error">
+ <div class="span12">
+ ${errorOut}
+ </div>
+ </div>
+</div>
+
+
+
+
+
diff --git a/idrop-web/idrop-web-config2.groovy b/idrop-web/idrop-web-config2.groovy
index 8c8c3be..35c2862 100755
--- a/idrop-web/idrop-web-config2.groovy
+++ b/idrop-web/idrop-web-config2.groovy
@@ -12,7 +12,7 @@
*/
environments {
- production { grails.serverURL = "http://my.server.name/idrop-web" }
+ production { grails.serverURL = "http://localhost:8080/idrop-web2" }
}
@@ -41,7 +41,7 @@ environments {
idrop.config.idrop.lite.use.applet.dir=false
*/
-idrop.config.idrop.lite.applet.jar="idrop-lite-2.0.1-SNAPSHOT-jar-with-dependencies.jar"
+idrop.config.idrop.lite.applet.jar="idrop-lite-b964-SNAPSHOT-jar-with-dependencies.jar"
idrop.config.idrop.lite.codebase="http://iren-web.renci.org/idrop-snapshot"
idrop.config.idrop.lite.use.applet.dir=false
@@ -56,7 +56,7 @@ idrop.config.idrop.lite.use.applet.dir=false
//idrop.config.idrop.jnlp="http://iren-web.renci.org:8080/idrop/idrop.jnlp"
//drop.config.idrop.jnlp="http://iren-web.renci.org/idrop-snapshot/idrop.jnlp"
-idrop.config.idrop.jnlp="http://iren-web.renci.org/idrop-release/idrop.jnlp"
+idrop.config.idrop.jnlp="http://iren-web.renci.org/idrop-snapshot/idrop.jnlp"
/*
* 5) Customization properties
*/
diff --git a/idrop-web/release_notes.txt b/idrop-web/release_notes.txt
index 9ca5668..b8d3083 100644
--- a/idrop-web/release_notes.txt
+++ b/idrop-web/release_notes.txt
@@ -10,7 +10,8 @@ This is a maintenance release of iDrop web2 and the iDrop suite
==Requirements==
*idrop-web depends on Java 1.6+
-*idrop-web depends on grails 2.2.1
+
+*idrop-web depends on grails 2.2.3
Note that the following bug and feature requests are logged in GForge with related commit information [[https://code.renci.org/gf/project/irodsidrop/tracker/]]
@@ -27,12 +28,15 @@ Note that the following bug and feature requests are logged in GForge with relat
*[#1475] ie fixes for 2.0.1
**Lots of cleanups of html and styles as a result of ie testing on win8
**Fix of login screen rendering on ie
+**Upgrade to grails 2.2.3
*[#1312] fix public link access to not override account if alread logged in
*[#715] check access before download
**Check file access and verify is a data object before doing a download, displaying a nicer error message
+*[#1668] “iDrop Error Message Executing action [screenForDownloadRights] of controller [org.irods.mydrop.controller.FileController] caused exception: Runtime error executing action”
+
==Features==
diff --git a/idrop-web/src/groovy/org/irods/mydrop/config/ViewState.groovy b/idrop-web/src/groovy/org/irods/mydrop/config/ViewState.groovy
index decd742..60daf8a 100644
--- a/idrop-web/src/groovy/org/irods/mydrop/config/ViewState.groovy
+++ b/idrop-web/src/groovy/org/irods/mydrop/config/ViewState.groovy
@@ -1,9 +1,5 @@
-/**
- *
- */
package org.irods.mydrop.config
-import java.io.Serializable
/**
* Value class to hold important iDrop server state in session
@@ -14,5 +10,4 @@ class ViewState implements Serializable {
String rootPath = ""
String browseView = ""
String selectedPath = ""
-
}
diff --git a/idrop-web/test/unit/org/irods/mydrop/controller/RuleControllerTests.groovy b/idrop-web/test/unit/org/irods/mydrop/controller/RuleControllerTests.groovy
new file mode 100644
index 0000000..33ae3f4
--- /dev/null
+++ b/idrop-web/test/unit/org/irods/mydrop/controller/RuleControllerTests.groovy
@@ -0,0 +1,17 @@
+package org.irods.mydrop.controller
+
+
+
+import grails.test.mixin.*
+import org.junit.*
+
+/**
+ * See the API for {@link grails.test.mixin.web.ControllerUnitTestMixin} for usage instructions
+ */
+@TestFor(RuleController)
+class RuleControllerTests {
+
+ void testSomething() {
+ fail "Implement me"
+ }
+}
diff --git a/idrop-web/test/unit/org/irods/mydrop/service/RuleProcessingServiceTests.groovy b/idrop-web/test/unit/org/irods/mydrop/service/RuleProcessingServiceTests.groovy
new file mode 100644
index 0000000..5399407
--- /dev/null
+++ b/idrop-web/test/unit/org/irods/mydrop/service/RuleProcessingServiceTests.groovy
@@ -0,0 +1,17 @@
+package org.irods.mydrop.service
+
+
+
+import grails.test.mixin.*
+import org.junit.*
+
+/**
+ * See the API for {@link grails.test.mixin.services.ServiceUnitTestMixin} for usage instructions
+ */
+@TestFor(RuleProcessingService)
+class RuleProcessingServiceTests {
+
+ void testSomething() {
+ fail "Implement me"
+ }
+}
diff --git a/idrop-web/web-app/css/blackboard.css b/idrop-web/web-app/css/blackboard.css
new file mode 100644
index 0000000..8b76084
--- /dev/null
+++ b/idrop-web/web-app/css/blackboard.css
@@ -0,0 +1,28 @@
+/* Port of TextMate's Blackboard theme */
+
+.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }
+.cm-s-blackboard .CodeMirror-selected { background: #253B76 !important; }
+.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }
+.cm-s-blackboard .CodeMirror-linenumber { color: #888; }
+.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; }
+
+.cm-s-blackboard .cm-keyword { color: #FBDE2D; }
+.cm-s-blackboard .cm-atom { color: #D8FA3C; }
+.cm-s-blackboard .cm-number { color: #D8FA3C; }
+.cm-s-blackboard .cm-def { color: #8DA6CE; }
+.cm-s-blackboard .cm-variable { color: #FF6400; }
+.cm-s-blackboard .cm-operator { color: #FBDE2D;}
+.cm-s-blackboard .cm-comment { color: #AEAEAE; }
+.cm-s-blackboard .cm-string { color: #61CE3C; }
+.cm-s-blackboard .cm-string-2 { color: #61CE3C; }
+.cm-s-blackboard .cm-meta { color: #D8FA3C; }
+.cm-s-blackboard .cm-builtin { color: #8DA6CE; }
+.cm-s-blackboard .cm-tag { color: #8DA6CE; }
+.cm-s-blackboard .cm-attribute { color: #8DA6CE; }
+.cm-s-blackboard .cm-header { color: #FF6400; }
+.cm-s-blackboard .cm-hr { color: #AEAEAE; }
+.cm-s-blackboard .cm-link { color: #8DA6CE; }
+.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }
+
+.cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636 !important;}
+.cm-s-blackboard .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important} \ No newline at end of file
diff --git a/idrop-web/web-app/css/classic-demo.html b/idrop-web/web-app/css/classic-demo.html
new file mode 100644
index 0000000..d2a20c3
--- /dev/null
+++ b/idrop-web/web-app/css/classic-demo.html
@@ -0,0 +1,26 @@
+.cm-s-eclipse span.cm-meta {color: #FF1717;}
+.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }
+.cm-s-eclipse span.cm-atom {color: #219;}
+.cm-s-eclipse span.cm-number {color: #164;}
+.cm-s-eclipse span.cm-def {color: #00f;}
+.cm-s-eclipse span.cm-variable {color: black;}
+.cm-s-eclipse span.cm-variable-2 {color: #0000C0;}
+.cm-s-eclipse span.cm-variable-3 {color: #0000C0;}
+.cm-s-eclipse span.cm-property {color: black;}
+.cm-s-eclipse span.cm-operator {color: black;}
+.cm-s-eclipse span.cm-comment {color: #3F7F5F;}
+.cm-s-eclipse span.cm-string {color: #2A00FF;}
+.cm-s-eclipse span.cm-string-2 {color: #f50;}
+.cm-s-eclipse span.cm-qualifier {color: #555;}
+.cm-s-eclipse span.cm-builtin {color: #30a;}
+.cm-s-eclipse span.cm-bracket {color: #cc7;}
+.cm-s-eclipse span.cm-tag {color: #170;}
+.cm-s-eclipse span.cm-attribute {color: #00c;}
+.cm-s-eclipse span.cm-link {color: #219;}
+.cm-s-eclipse span.cm-error {color: #f00;}
+
+.cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;}
+.cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}
+.cm-s-eclipse span.cm-sVar {color: #C00000;}
+.cm-s-eclipse span.cm-lVar {color: #00C000;}
+.cm-s-eclipse span.cm-code {color: #00C0C0; font-family: courierNew monospace;}
diff --git a/idrop-web/web-app/css/codemirror-ui.css b/idrop-web/web-app/css/codemirror-ui.css
new file mode 100644
index 0000000..81ee758
--- /dev/null
+++ b/idrop-web/web-app/css/codemirror-ui.css
@@ -0,0 +1,122 @@
+.codemirror-ui-button-frame{
+ border-top:1px solid #ccc;
+ border-left:1px solid #ccc;
+ border-right:1px solid #ccc;
+ background:#eee;
+ position:relative;
+}
+
+.codemirror-ui-button-frame input,.codemirror-ui-button-frame label{
+ font-size:0.6em;
+}
+
+.codemirror-ui-button-frame label input{
+ margin:0px 2px;
+ vertical-align:middle;
+}
+.codemirror-ui-button-frame label{
+ padding:0px;
+ margin:2px 5px;
+ margin-top:0px;
+ display:inline-block;
+}
+
+input.codemirror-ui-checkbox{
+
+}
+
+.codemirror-ui-button{
+ display:block;
+ float:left;
+ padding:3px;
+ line-height:0;
+ margin:1px;
+ margin-right:0px;
+}
+
+.codemirror-ui-button:hover{
+ padding:2px;
+ border:1px solid #ccc;
+}
+
+.codemirror-ui-button img{
+ line-height:0;
+}
+
+.codemirror-ui-button.inactive{
+ -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
+ filter: alpha(opacity=50);
+ opacity: .5;
+}
+
+.codemirror-ui-wrap{
+ float:right;
+}
+
+.codemirror-find-replace{
+ border:1px solid black;
+ background : #ddd;
+ padding:10px;
+ position:absolute;
+ width:300px;
+ top:0%;
+ left:50%;
+ margin-left:-150px;
+}
+
+iframe{
+ /*border:1px solid green !important;*/
+}
+
+.codemirror-ui-find-bar{
+ text-align:center;
+}
+
+.codemirror-ui-popup-find-wrap{
+ position:absolute;
+ bottom:100%;
+ left:-1px;
+ border:1px solid #ccc;
+ background:#eee;
+ padding:2px 5px;
+ border-bottom:0px;
+ margin-bottom:-1px;
+ display:none;
+}
+
+.codemirror-ui-popup-find-wrap.active{
+ display:block;
+}
+
+
+.codemirror-ui-popup-find-wrap .codemirror-ui-button{
+ float:left;
+}
+
+.codemirror-ui-popup-find-wrap .codemirror-ui-find-bar{
+ float:left;
+}
+
+.CodeMirror{
+ border:1px solid #ccc;
+ background:white;
+}
+
+/*
+ * This lets us make sure that the fancy-tab-gutter will always enclose the tabs inside it.
+ * We're namspcing it since many frameworks include a .clearfix rule of somesort.
+ */
+
+.codemirror-ui-clearfix:after {
+ visibility: hidden;
+ display: block;
+ font-size: 0;
+ content:"\0020";
+ clear: both;
+ height: 0;
+ }
+.codemirror-ui-clearfix { display: inline-block; }
+/* start commented backslash hack \*/
+* html .codemirror-ui-clearfix { height: 1%; }
+.codemirror-ui-clearfix { display: block; }
+/* close commented backslash hack */
diff --git a/idrop-web/web-app/css/codemirror.css b/idrop-web/web-app/css/codemirror.css
new file mode 100644
index 0000000..23eaf74
--- /dev/null
+++ b/idrop-web/web-app/css/codemirror.css
@@ -0,0 +1,263 @@
+/* BASICS */
+
+.CodeMirror {
+ /* Set height, width, borders, and global font properties here */
+ font-family: monospace;
+ height: 300px;
+}
+.CodeMirror-scroll {
+ /* Set scrolling behaviour here */
+ overflow: auto;
+}
+
+/* PADDING */
+
+.CodeMirror-lines {
+ padding: 4px 0; /* Vertical padding around content */
+}
+.CodeMirror pre {
+ padding: 0 4px; /* Horizontal padding of content */
+}
+
+.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
+ background-color: white; /* The little square between H and V scrollbars */
+}
+
+/* GUTTER */
+
+.CodeMirror-gutters {
+ border-right: 1px solid #ddd;
+ background-color: #f7f7f7;
+ white-space: nowrap;
+}
+.CodeMirror-linenumbers {}
+.CodeMirror-linenumber {
+ padding: 0 3px 0 5px;
+ min-width: 20px;
+ text-align: right;
+ color: #999;
+}
+
+/* CURSOR */
+
+.CodeMirror div.CodeMirror-cursor {
+ border-left: 1px solid black;
+ z-index: 3;
+}
+/* Shown when moving in bi-directional text */
+.CodeMirror div.CodeMirror-secondarycursor {
+ border-left: 1px solid silver;
+}
+.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor {
+ width: auto;
+ border: 0;
+ background: #7e7;
+ z-index: 1;
+}
+/* Can style cursor different in overwrite (non-insert) mode */
+.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite {}
+
+.cm-tab { display: inline-block; }
+
+/* DEFAULT THEME */
+
+.cm-s-default .cm-keyword {color: #708;}
+.cm-s-default .cm-atom {color: #219;}
+.cm-s-default .cm-number {color: #164;}
+.cm-s-default .cm-def {color: #00f;}
+.cm-s-default .cm-variable {color: black;}
+.cm-s-default .cm-variable-2 {color: #05a;}
+.cm-s-default .cm-variable-3 {color: #085;}
+.cm-s-default .cm-property {color: black;}
+.cm-s-default .cm-operator {color: black;}
+.cm-s-default .cm-comment {color: #a50;}
+.cm-s-default .cm-string {color: #a11;}
+.cm-s-default .cm-string-2 {color: #f50;}
+.cm-s-default .cm-meta {color: #555;}
+.cm-s-default .cm-qualifier {color: #555;}
+.cm-s-default .cm-builtin {color: #30a;}
+.cm-s-default .cm-bracket {color: #997;}
+.cm-s-default .cm-tag {color: #170;}
+.cm-s-default .cm-attribute {color: #00c;}
+.cm-s-default .cm-header {color: blue;}
+.cm-s-default .cm-quote {color: #090;}
+.cm-s-default .cm-hr {color: #999;}
+.cm-s-default .cm-link {color: #00c;}
+
+.cm-negative {color: #d44;}
+.cm-positive {color: #292;}
+.cm-header, .cm-strong {font-weight: bold;}
+.cm-em {font-style: italic;}
+.cm-link {text-decoration: underline;}
+
+.cm-s-default .cm-error {color: #f00;}
+.cm-invalidchar {color: #f00;}
+
+div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
+div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
+.CodeMirror-activeline-background {background: #e8f2ff;}
+
+/* STOP */
+
+/* The rest of this file contains styles related to the mechanics of
+ the editor. You probably shouldn't touch them. */
+
+.CodeMirror {
+ line-height: 1;
+ position: relative;
+ overflow: hidden;
+ background: white;
+ color: black;
+}
+
+.CodeMirror-scroll {
+ /* 30px is the magic margin used to hide the element's real scrollbars */
+ /* See overflow: hidden in .CodeMirror */
+ margin-bottom: -30px; margin-right: -30px;
+ padding-bottom: 30px; padding-right: 30px;
+ height: 100%;
+ outline: none; /* Prevent dragging from highlighting the element */
+ position: relative;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+.CodeMirror-sizer {
+ position: relative;
+}
+
+/* The fake, visible scrollbars. Used to force redraw during scrolling
+ before actuall scrolling happens, thus preventing shaking and
+ flickering artifacts. */
+.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
+ position: absolute;
+ z-index: 6;
+ display: none;
+}
+.CodeMirror-vscrollbar {
+ right: 0; top: 0;
+ overflow-x: hidden;
+ overflow-y: scroll;
+}
+.CodeMirror-hscrollbar {
+ bottom: 0; left: 0;
+ overflow-y: hidden;
+ overflow-x: scroll;
+}
+.CodeMirror-scrollbar-filler {
+ right: 0; bottom: 0;
+}
+.CodeMirror-gutter-filler {
+ left: 0; bottom: 0;
+}
+
+.CodeMirror-gutters {
+ position: absolute; left: 0; top: 0;
+ padding-bottom: 30px;
+ z-index: 3;
+}
+.CodeMirror-gutter {
+ white-space: normal;
+ height: 100%;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ padding-bottom: 30px;
+ margin-bottom: -32px;
+ display: inline-block;
+ /* Hack to make IE7 behave */
+ *zoom:1;
+ *display:inline;
+}
+.CodeMirror-gutter-elt {
+ position: absolute;
+ cursor: default;
+ z-index: 4;
+}
+
+.CodeMirror-lines {
+ cursor: text;
+}
+.CodeMirror pre {
+ /* Reset some styles that the rest of the page might have set */
+ -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
+ border-width: 0;
+ background: transparent;
+ font-family: inherit;
+ font-size: inherit;
+ margin: 0;
+ white-space: pre;
+ word-wrap: normal;
+ line-height: inherit;
+ color: inherit;
+ z-index: 2;
+ position: relative;
+ overflow: visible;
+}
+.CodeMirror-wrap pre {
+ word-wrap: break-word;
+ white-space: pre-wrap;
+ word-break: normal;
+}
+.CodeMirror-code pre {
+ border-right: 30px solid transparent;
+ width: -webkit-fit-content;
+ width: -moz-fit-content;
+ width: fit-content;
+}
+.CodeMirror-wrap .CodeMirror-code pre {
+ border-right: none;
+ width: auto;
+}
+.CodeMirror-linebackground {
+ position: absolute;
+ left: 0; right: 0; top: 0; bottom: 0;
+ z-index: 0;
+}
+
+.CodeMirror-linewidget {
+ position: relative;
+ z-index: 2;
+ overflow: auto;
+}
+
+.CodeMirror-widget {}
+
+.CodeMirror-wrap .CodeMirror-scroll {
+ overflow-x: hidden;
+}
+
+.CodeMirror-measure {
+ position: absolute;
+ width: 100%;
+ height: 0;
+ overflow: hidden;
+ visibility: hidden;
+}
+.CodeMirror-measure pre { position: static; }
+
+.CodeMirror div.CodeMirror-cursor {
+ position: absolute;
+ visibility: hidden;
+ border-right: none;
+ width: 0;
+}
+.CodeMirror-focused div.CodeMirror-cursor {
+ visibility: visible;
+}
+
+.CodeMirror-selected { background: #d9d9d9; }
+.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
+
+.cm-searching {
+ background: #ffa;
+ background: rgba(255, 255, 0, .4);
+}
+
+/* IE7 hack to prevent it from returning funny offsetTops on the spans */
+.CodeMirror span { *vertical-align: text-bottom; }
+
+@media print {
+ /* Hide the cursor when printing */
+ .CodeMirror div.CodeMirror-cursor {
+ visibility: hidden;
+ }
+}
diff --git a/idrop-web/web-app/css/eclipse.css b/idrop-web/web-app/css/eclipse.css
new file mode 100644
index 0000000..d2a20c3
--- /dev/null
+++ b/idrop-web/web-app/css/eclipse.css
@@ -0,0 +1,26 @@
+.cm-s-eclipse span.cm-meta {color: #FF1717;}
+.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }
+.cm-s-eclipse span.cm-atom {color: #219;}
+.cm-s-eclipse span.cm-number {color: #164;}
+.cm-s-eclipse span.cm-def {color: #00f;}
+.cm-s-eclipse span.cm-variable {color: black;}
+.cm-s-eclipse span.cm-variable-2 {color: #0000C0;}
+.cm-s-eclipse span.cm-variable-3 {color: #0000C0;}
+.cm-s-eclipse span.cm-property {color: black;}
+.cm-s-eclipse span.cm-operator {color: black;}
+.cm-s-eclipse span.cm-comment {color: #3F7F5F;}
+.cm-s-eclipse span.cm-string {color: #2A00FF;}
+.cm-s-eclipse span.cm-string-2 {color: #f50;}
+.cm-s-eclipse span.cm-qualifier {color: #555;}
+.cm-s-eclipse span.cm-builtin {color: #30a;}
+.cm-s-eclipse span.cm-bracket {color: #cc7;}
+.cm-s-eclipse span.cm-tag {color: #170;}
+.cm-s-eclipse span.cm-attribute {color: #00c;}
+.cm-s-eclipse span.cm-link {color: #219;}
+.cm-s-eclipse span.cm-error {color: #f00;}
+
+.cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;}
+.cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}
+.cm-s-eclipse span.cm-sVar {color: #C00000;}
+.cm-s-eclipse span.cm-lVar {color: #00C000;}
+.cm-s-eclipse span.cm-code {color: #00C0C0; font-family: courierNew monospace;}
diff --git a/idrop-web/web-app/css/elegant.css b/idrop-web/web-app/css/elegant.css
new file mode 100644
index 0000000..dd7df7b
--- /dev/null
+++ b/idrop-web/web-app/css/elegant.css
@@ -0,0 +1,13 @@
+.cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;}
+.cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;}
+.cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;}
+.cm-s-elegant span.cm-variable {color: black;}
+.cm-s-elegant span.cm-variable-2 {color: #b11;}
+.cm-s-elegant span.cm-qualifier {color: #555;}
+.cm-s-elegant span.cm-keyword {color: #730;}
+.cm-s-elegant span.cm-builtin {color: #30a;}
+.cm-s-elegant span.cm-link {color: #762;}
+.cm-s-elegant span.cm-error {background-color: #fdd;}
+
+.cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;}
+.cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}
diff --git a/idrop-web/web-app/images/autocompletion.gif b/idrop-web/web-app/images/autocompletion.gif
new file mode 100644
index 0000000..f3dfc2e
--- /dev/null
+++ b/idrop-web/web-app/images/autocompletion.gif
Binary files differ
diff --git a/idrop-web/web-app/images/close.gif b/idrop-web/web-app/images/close.gif
new file mode 100644
index 0000000..679ca2a
--- /dev/null
+++ b/idrop-web/web-app/images/close.gif
Binary files differ
diff --git a/idrop-web/web-app/images/fullscreen.gif b/idrop-web/web-app/images/fullscreen.gif
new file mode 100644
index 0000000..66fa6d9
--- /dev/null
+++ b/idrop-web/web-app/images/fullscreen.gif
Binary files differ
diff --git a/idrop-web/web-app/images/go_to_line.gif b/idrop-web/web-app/images/go_to_line.gif
new file mode 100644
index 0000000..06042ec
--- /dev/null
+++ b/idrop-web/web-app/images/go_to_line.gif
Binary files differ
diff --git a/idrop-web/web-app/images/help.gif b/idrop-web/web-app/images/help.gif
new file mode 100644
index 0000000..51a1ee4
--- /dev/null
+++ b/idrop-web/web-app/images/help.gif
Binary files differ
diff --git a/idrop-web/web-app/images/highlight.gif b/idrop-web/web-app/images/highlight.gif
new file mode 100644
index 0000000..16491f6
--- /dev/null
+++ b/idrop-web/web-app/images/highlight.gif
Binary files differ
diff --git a/idrop-web/web-app/images/load.gif b/idrop-web/web-app/images/load.gif
new file mode 100644
index 0000000..461698f
--- /dev/null
+++ b/idrop-web/web-app/images/load.gif
Binary files differ
diff --git a/idrop-web/web-app/images/move.gif b/idrop-web/web-app/images/move.gif
new file mode 100644
index 0000000..d15f9f5
--- /dev/null
+++ b/idrop-web/web-app/images/move.gif
Binary files differ
diff --git a/idrop-web/web-app/images/newdocument.gif b/idrop-web/web-app/images/newdocument.gif
new file mode 100644
index 0000000..a9d2938
--- /dev/null
+++ b/idrop-web/web-app/images/newdocument.gif
Binary files differ
diff --git a/idrop-web/web-app/images/octologo.png b/idrop-web/web-app/images/octologo.png
new file mode 100644
index 0000000..f6f97e9
--- /dev/null
+++ b/idrop-web/web-app/images/octologo.png
Binary files differ
diff --git a/idrop-web/web-app/images/opacity.png b/idrop-web/web-app/images/opacity.png
new file mode 100644
index 0000000..b4217cb
--- /dev/null
+++ b/idrop-web/web-app/images/opacity.png
Binary files differ
diff --git a/idrop-web/web-app/images/processing.gif b/idrop-web/web-app/images/processing.gif
new file mode 100644
index 0000000..cce32f2
--- /dev/null
+++ b/idrop-web/web-app/images/processing.gif
Binary files differ
diff --git a/idrop-web/web-app/images/redo.gif b/idrop-web/web-app/images/redo.gif
new file mode 100644
index 0000000..3af9069
--- /dev/null
+++ b/idrop-web/web-app/images/redo.gif
Binary files differ
diff --git a/idrop-web/web-app/images/reset_highlight.gif b/idrop-web/web-app/images/reset_highlight.gif
new file mode 100644
index 0000000..0fa3cb7
--- /dev/null
+++ b/idrop-web/web-app/images/reset_highlight.gif
Binary files differ
diff --git a/idrop-web/web-app/images/save.gif b/idrop-web/web-app/images/save.gif
new file mode 100644
index 0000000..2777beb
--- /dev/null
+++ b/idrop-web/web-app/images/save.gif
Binary files differ
diff --git a/idrop-web/web-app/images/search.gif b/idrop-web/web-app/images/search.gif
new file mode 100644
index 0000000..cfe76b5
--- /dev/null
+++ b/idrop-web/web-app/images/search.gif
Binary files differ
diff --git a/idrop-web/web-app/images/silk/accept.png b/idrop-web/web-app/images/silk/accept.png
new file mode 100644
index 0000000..89c8129
--- /dev/null
+++ b/idrop-web/web-app/images/silk/accept.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/add.png b/idrop-web/web-app/images/silk/add.png
new file mode 100644
index 0000000..6332fef
--- /dev/null
+++ b/idrop-web/web-app/images/silk/add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/anchor.png b/idrop-web/web-app/images/silk/anchor.png
new file mode 100644
index 0000000..9b3422c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/anchor.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application.png b/idrop-web/web-app/images/silk/application.png
new file mode 100644
index 0000000..1dee9e3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_add.png b/idrop-web/web-app/images/silk/application_add.png
new file mode 100644
index 0000000..2e94507
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_cascade.png b/idrop-web/web-app/images/silk/application_cascade.png
new file mode 100644
index 0000000..da5c622
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_cascade.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_delete.png b/idrop-web/web-app/images/silk/application_delete.png
new file mode 100644
index 0000000..0a335ac
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_double.png b/idrop-web/web-app/images/silk/application_double.png
new file mode 100644
index 0000000..647592f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_double.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_edit.png b/idrop-web/web-app/images/silk/application_edit.png
new file mode 100644
index 0000000..fb2efb8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_error.png b/idrop-web/web-app/images/silk/application_error.png
new file mode 100644
index 0000000..b35fa57
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_form.png b/idrop-web/web-app/images/silk/application_form.png
new file mode 100644
index 0000000..807b862
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_form.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_form_add.png b/idrop-web/web-app/images/silk/application_form_add.png
new file mode 100644
index 0000000..28c2175
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_form_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_form_delete.png b/idrop-web/web-app/images/silk/application_form_delete.png
new file mode 100644
index 0000000..cd305ec
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_form_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_form_edit.png b/idrop-web/web-app/images/silk/application_form_edit.png
new file mode 100644
index 0000000..af486c9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_form_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_form_magnify.png b/idrop-web/web-app/images/silk/application_form_magnify.png
new file mode 100644
index 0000000..7b7fbd1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_form_magnify.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_get.png b/idrop-web/web-app/images/silk/application_get.png
new file mode 100644
index 0000000..28e41ea
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_get.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_go.png b/idrop-web/web-app/images/silk/application_go.png
new file mode 100644
index 0000000..5cc2b0d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_home.png b/idrop-web/web-app/images/silk/application_home.png
new file mode 100644
index 0000000..b60d0c8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_home.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_key.png b/idrop-web/web-app/images/silk/application_key.png
new file mode 100644
index 0000000..998d65c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_lightning.png b/idrop-web/web-app/images/silk/application_lightning.png
new file mode 100644
index 0000000..7e91545
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_lightning.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_link.png b/idrop-web/web-app/images/silk/application_link.png
new file mode 100644
index 0000000..f8fbb3e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_osx.png b/idrop-web/web-app/images/silk/application_osx.png
new file mode 100644
index 0000000..9f022ec
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_osx.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_osx_terminal.png b/idrop-web/web-app/images/silk/application_osx_terminal.png
new file mode 100644
index 0000000..b3d8ce0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_osx_terminal.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_put.png b/idrop-web/web-app/images/silk/application_put.png
new file mode 100644
index 0000000..c30cf59
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_put.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_side_boxes.png b/idrop-web/web-app/images/silk/application_side_boxes.png
new file mode 100644
index 0000000..efbf3c4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_side_boxes.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_side_contract.png b/idrop-web/web-app/images/silk/application_side_contract.png
new file mode 100644
index 0000000..3585f94
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_side_contract.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_side_expand.png b/idrop-web/web-app/images/silk/application_side_expand.png
new file mode 100644
index 0000000..030cf7c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_side_expand.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_side_list.png b/idrop-web/web-app/images/silk/application_side_list.png
new file mode 100644
index 0000000..248eaf1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_side_list.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_side_tree.png b/idrop-web/web-app/images/silk/application_side_tree.png
new file mode 100644
index 0000000..f04a52b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_side_tree.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_split.png b/idrop-web/web-app/images/silk/application_split.png
new file mode 100644
index 0000000..a91c78a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_split.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_tile_horizontal.png b/idrop-web/web-app/images/silk/application_tile_horizontal.png
new file mode 100644
index 0000000..8a1191c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_tile_horizontal.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_tile_vertical.png b/idrop-web/web-app/images/silk/application_tile_vertical.png
new file mode 100644
index 0000000..1d40383
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_tile_vertical.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_view_columns.png b/idrop-web/web-app/images/silk/application_view_columns.png
new file mode 100644
index 0000000..dc2e9d5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_view_columns.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_view_detail.png b/idrop-web/web-app/images/silk/application_view_detail.png
new file mode 100644
index 0000000..aba044b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_view_detail.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_view_gallery.png b/idrop-web/web-app/images/silk/application_view_gallery.png
new file mode 100644
index 0000000..851950d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_view_gallery.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_view_icons.png b/idrop-web/web-app/images/silk/application_view_icons.png
new file mode 100644
index 0000000..6a93cda
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_view_icons.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_view_list.png b/idrop-web/web-app/images/silk/application_view_list.png
new file mode 100644
index 0000000..acc30b8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_view_list.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_view_tile.png b/idrop-web/web-app/images/silk/application_view_tile.png
new file mode 100644
index 0000000..3bc0bd3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_view_tile.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_xp.png b/idrop-web/web-app/images/silk/application_xp.png
new file mode 100644
index 0000000..d22860a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_xp.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/application_xp_terminal.png b/idrop-web/web-app/images/silk/application_xp_terminal.png
new file mode 100644
index 0000000..c28dd63
--- /dev/null
+++ b/idrop-web/web-app/images/silk/application_xp_terminal.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_branch.png b/idrop-web/web-app/images/silk/arrow_branch.png
new file mode 100644
index 0000000..7542db1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_branch.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_divide.png b/idrop-web/web-app/images/silk/arrow_divide.png
new file mode 100644
index 0000000..61a7b1d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_divide.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_down.png b/idrop-web/web-app/images/silk/arrow_down.png
new file mode 100644
index 0000000..2c4e279
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_down.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_in.png b/idrop-web/web-app/images/silk/arrow_in.png
new file mode 100644
index 0000000..745c651
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_in.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_inout.png b/idrop-web/web-app/images/silk/arrow_inout.png
new file mode 100644
index 0000000..1b76367
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_inout.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_join.png b/idrop-web/web-app/images/silk/arrow_join.png
new file mode 100644
index 0000000..a128413
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_join.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_left.png b/idrop-web/web-app/images/silk/arrow_left.png
new file mode 100644
index 0000000..5dc6967
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_left.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_merge.png b/idrop-web/web-app/images/silk/arrow_merge.png
new file mode 100644
index 0000000..7502dbb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_merge.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_out.png b/idrop-web/web-app/images/silk/arrow_out.png
new file mode 100644
index 0000000..2e9bc42
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_out.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_out_diag.png b/idrop-web/web-app/images/silk/arrow_out_diag.png
new file mode 100644
index 0000000..c10bbaf
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_out_diag.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_redo.png b/idrop-web/web-app/images/silk/arrow_redo.png
new file mode 100644
index 0000000..fdc394c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_redo.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_refresh.png b/idrop-web/web-app/images/silk/arrow_refresh.png
new file mode 100644
index 0000000..0de2656
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_refresh.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_refresh_small.png b/idrop-web/web-app/images/silk/arrow_refresh_small.png
new file mode 100644
index 0000000..d3087df
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_refresh_small.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_right.png b/idrop-web/web-app/images/silk/arrow_right.png
new file mode 100644
index 0000000..b1a1819
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_right.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_rotate_anticlockwise.png b/idrop-web/web-app/images/silk/arrow_rotate_anticlockwise.png
new file mode 100644
index 0000000..46c75aa
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_rotate_anticlockwise.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_rotate_clockwise.png b/idrop-web/web-app/images/silk/arrow_rotate_clockwise.png
new file mode 100644
index 0000000..aa65210
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_rotate_clockwise.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_switch.png b/idrop-web/web-app/images/silk/arrow_switch.png
new file mode 100644
index 0000000..258c16c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_switch.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_turn_left.png b/idrop-web/web-app/images/silk/arrow_turn_left.png
new file mode 100644
index 0000000..a3d6c9e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_turn_left.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_turn_right.png b/idrop-web/web-app/images/silk/arrow_turn_right.png
new file mode 100644
index 0000000..629f20d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_turn_right.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_undo.png b/idrop-web/web-app/images/silk/arrow_undo.png
new file mode 100644
index 0000000..6972c5e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_undo.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/arrow_up.png b/idrop-web/web-app/images/silk/arrow_up.png
new file mode 100644
index 0000000..1ebb193
--- /dev/null
+++ b/idrop-web/web-app/images/silk/arrow_up.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/asterisk_orange.png b/idrop-web/web-app/images/silk/asterisk_orange.png
new file mode 100644
index 0000000..1ebebde
--- /dev/null
+++ b/idrop-web/web-app/images/silk/asterisk_orange.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/asterisk_yellow.png b/idrop-web/web-app/images/silk/asterisk_yellow.png
new file mode 100644
index 0000000..bab7cc9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/asterisk_yellow.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/attach.png b/idrop-web/web-app/images/silk/attach.png
new file mode 100644
index 0000000..ea897cc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/attach.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/award_star_add.png b/idrop-web/web-app/images/silk/award_star_add.png
new file mode 100644
index 0000000..9c4be9b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/award_star_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/award_star_bronze_1.png b/idrop-web/web-app/images/silk/award_star_bronze_1.png
new file mode 100644
index 0000000..658c711
--- /dev/null
+++ b/idrop-web/web-app/images/silk/award_star_bronze_1.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/award_star_bronze_2.png b/idrop-web/web-app/images/silk/award_star_bronze_2.png
new file mode 100644
index 0000000..e47babd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/award_star_bronze_2.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/award_star_bronze_3.png b/idrop-web/web-app/images/silk/award_star_bronze_3.png
new file mode 100644
index 0000000..396e4b3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/award_star_bronze_3.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/award_star_delete.png b/idrop-web/web-app/images/silk/award_star_delete.png
new file mode 100644
index 0000000..4721b15
--- /dev/null
+++ b/idrop-web/web-app/images/silk/award_star_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/award_star_gold_1.png b/idrop-web/web-app/images/silk/award_star_gold_1.png
new file mode 100644
index 0000000..97a22b7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/award_star_gold_1.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/award_star_gold_2.png b/idrop-web/web-app/images/silk/award_star_gold_2.png
new file mode 100644
index 0000000..0eaa571
--- /dev/null
+++ b/idrop-web/web-app/images/silk/award_star_gold_2.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/award_star_gold_3.png b/idrop-web/web-app/images/silk/award_star_gold_3.png
new file mode 100644
index 0000000..124c991
--- /dev/null
+++ b/idrop-web/web-app/images/silk/award_star_gold_3.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/award_star_silver_1.png b/idrop-web/web-app/images/silk/award_star_silver_1.png
new file mode 100644
index 0000000..028a546
--- /dev/null
+++ b/idrop-web/web-app/images/silk/award_star_silver_1.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/award_star_silver_2.png b/idrop-web/web-app/images/silk/award_star_silver_2.png
new file mode 100644
index 0000000..e487c3a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/award_star_silver_2.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/award_star_silver_3.png b/idrop-web/web-app/images/silk/award_star_silver_3.png
new file mode 100644
index 0000000..1d72d47
--- /dev/null
+++ b/idrop-web/web-app/images/silk/award_star_silver_3.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/basket.png b/idrop-web/web-app/images/silk/basket.png
new file mode 100644
index 0000000..b0686d7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/basket.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/basket_add.png b/idrop-web/web-app/images/silk/basket_add.png
new file mode 100644
index 0000000..3554368
--- /dev/null
+++ b/idrop-web/web-app/images/silk/basket_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/basket_delete.png b/idrop-web/web-app/images/silk/basket_delete.png
new file mode 100644
index 0000000..1349974
--- /dev/null
+++ b/idrop-web/web-app/images/silk/basket_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/basket_edit.png b/idrop-web/web-app/images/silk/basket_edit.png
new file mode 100644
index 0000000..8138bbd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/basket_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/basket_error.png b/idrop-web/web-app/images/silk/basket_error.png
new file mode 100644
index 0000000..3978b29
--- /dev/null
+++ b/idrop-web/web-app/images/silk/basket_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/basket_go.png b/idrop-web/web-app/images/silk/basket_go.png
new file mode 100644
index 0000000..ed8b9a5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/basket_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/basket_put.png b/idrop-web/web-app/images/silk/basket_put.png
new file mode 100644
index 0000000..be62faa
--- /dev/null
+++ b/idrop-web/web-app/images/silk/basket_put.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/basket_remove.png b/idrop-web/web-app/images/silk/basket_remove.png
new file mode 100644
index 0000000..04dd7fd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/basket_remove.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bell.png b/idrop-web/web-app/images/silk/bell.png
new file mode 100644
index 0000000..6e0015d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bell.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bell_add.png b/idrop-web/web-app/images/silk/bell_add.png
new file mode 100644
index 0000000..7db01d6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bell_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bell_delete.png b/idrop-web/web-app/images/silk/bell_delete.png
new file mode 100644
index 0000000..23907bb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bell_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bell_error.png b/idrop-web/web-app/images/silk/bell_error.png
new file mode 100644
index 0000000..a0ddc00
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bell_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bell_go.png b/idrop-web/web-app/images/silk/bell_go.png
new file mode 100644
index 0000000..b89bb34
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bell_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bell_link.png b/idrop-web/web-app/images/silk/bell_link.png
new file mode 100644
index 0000000..b8c64af
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bell_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bin.png b/idrop-web/web-app/images/silk/bin.png
new file mode 100644
index 0000000..ebad933
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bin.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bin_closed.png b/idrop-web/web-app/images/silk/bin_closed.png
new file mode 100644
index 0000000..afe22ba
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bin_closed.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bin_empty.png b/idrop-web/web-app/images/silk/bin_empty.png
new file mode 100644
index 0000000..375b8bf
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bin_empty.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bomb.png b/idrop-web/web-app/images/silk/bomb.png
new file mode 100644
index 0000000..1be3797
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bomb.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/book.png b/idrop-web/web-app/images/silk/book.png
new file mode 100644
index 0000000..b0f4dd7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/book.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/book_add.png b/idrop-web/web-app/images/silk/book_add.png
new file mode 100644
index 0000000..e2f0847
--- /dev/null
+++ b/idrop-web/web-app/images/silk/book_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/book_addresses.png b/idrop-web/web-app/images/silk/book_addresses.png
new file mode 100644
index 0000000..b73419b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/book_addresses.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/book_delete.png b/idrop-web/web-app/images/silk/book_delete.png
new file mode 100644
index 0000000..d9a6340
--- /dev/null
+++ b/idrop-web/web-app/images/silk/book_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/book_edit.png b/idrop-web/web-app/images/silk/book_edit.png
new file mode 100644
index 0000000..6e756cc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/book_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/book_error.png b/idrop-web/web-app/images/silk/book_error.png
new file mode 100644
index 0000000..f3fbed0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/book_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/book_go.png b/idrop-web/web-app/images/silk/book_go.png
new file mode 100644
index 0000000..cd4e196
--- /dev/null
+++ b/idrop-web/web-app/images/silk/book_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/book_key.png b/idrop-web/web-app/images/silk/book_key.png
new file mode 100644
index 0000000..d8e23ec
--- /dev/null
+++ b/idrop-web/web-app/images/silk/book_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/book_link.png b/idrop-web/web-app/images/silk/book_link.png
new file mode 100644
index 0000000..dd0820e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/book_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/book_next.png b/idrop-web/web-app/images/silk/book_next.png
new file mode 100644
index 0000000..ff2ea1a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/book_next.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/book_open.png b/idrop-web/web-app/images/silk/book_open.png
new file mode 100644
index 0000000..7d863f9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/book_open.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/book_previous.png b/idrop-web/web-app/images/silk/book_previous.png
new file mode 100644
index 0000000..2e53c69
--- /dev/null
+++ b/idrop-web/web-app/images/silk/book_previous.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/box.png b/idrop-web/web-app/images/silk/box.png
new file mode 100644
index 0000000..8443c23
--- /dev/null
+++ b/idrop-web/web-app/images/silk/box.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/brick.png b/idrop-web/web-app/images/silk/brick.png
new file mode 100644
index 0000000..7851cf3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/brick.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/brick_add.png b/idrop-web/web-app/images/silk/brick_add.png
new file mode 100644
index 0000000..fac186b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/brick_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/brick_delete.png b/idrop-web/web-app/images/silk/brick_delete.png
new file mode 100644
index 0000000..3a8c373
--- /dev/null
+++ b/idrop-web/web-app/images/silk/brick_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/brick_edit.png b/idrop-web/web-app/images/silk/brick_edit.png
new file mode 100644
index 0000000..eb06df3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/brick_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/brick_error.png b/idrop-web/web-app/images/silk/brick_error.png
new file mode 100644
index 0000000..18ab01e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/brick_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/brick_go.png b/idrop-web/web-app/images/silk/brick_go.png
new file mode 100644
index 0000000..fe0d335
--- /dev/null
+++ b/idrop-web/web-app/images/silk/brick_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/brick_link.png b/idrop-web/web-app/images/silk/brick_link.png
new file mode 100644
index 0000000..9ebf013
--- /dev/null
+++ b/idrop-web/web-app/images/silk/brick_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bricks.png b/idrop-web/web-app/images/silk/bricks.png
new file mode 100644
index 0000000..0905f93
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bricks.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/briefcase.png b/idrop-web/web-app/images/silk/briefcase.png
new file mode 100644
index 0000000..05c5649
--- /dev/null
+++ b/idrop-web/web-app/images/silk/briefcase.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bug.png b/idrop-web/web-app/images/silk/bug.png
new file mode 100644
index 0000000..2d5fb90
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bug.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bug_add.png b/idrop-web/web-app/images/silk/bug_add.png
new file mode 100644
index 0000000..ced7817
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bug_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bug_delete.png b/idrop-web/web-app/images/silk/bug_delete.png
new file mode 100644
index 0000000..e81d757
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bug_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bug_edit.png b/idrop-web/web-app/images/silk/bug_edit.png
new file mode 100644
index 0000000..e5c7dc0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bug_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bug_error.png b/idrop-web/web-app/images/silk/bug_error.png
new file mode 100644
index 0000000..c4e8c28
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bug_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bug_go.png b/idrop-web/web-app/images/silk/bug_go.png
new file mode 100644
index 0000000..4e4ae99
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bug_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bug_link.png b/idrop-web/web-app/images/silk/bug_link.png
new file mode 100644
index 0000000..30e25ab
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bug_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/building.png b/idrop-web/web-app/images/silk/building.png
new file mode 100644
index 0000000..11a017c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/building.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/building_add.png b/idrop-web/web-app/images/silk/building_add.png
new file mode 100644
index 0000000..d88e2b9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/building_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/building_delete.png b/idrop-web/web-app/images/silk/building_delete.png
new file mode 100644
index 0000000..db6455d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/building_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/building_edit.png b/idrop-web/web-app/images/silk/building_edit.png
new file mode 100644
index 0000000..646db36
--- /dev/null
+++ b/idrop-web/web-app/images/silk/building_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/building_error.png b/idrop-web/web-app/images/silk/building_error.png
new file mode 100644
index 0000000..a342eef
--- /dev/null
+++ b/idrop-web/web-app/images/silk/building_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/building_go.png b/idrop-web/web-app/images/silk/building_go.png
new file mode 100644
index 0000000..cdcbcb3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/building_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/building_key.png b/idrop-web/web-app/images/silk/building_key.png
new file mode 100644
index 0000000..8b79e30
--- /dev/null
+++ b/idrop-web/web-app/images/silk/building_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/building_link.png b/idrop-web/web-app/images/silk/building_link.png
new file mode 100644
index 0000000..a340629
--- /dev/null
+++ b/idrop-web/web-app/images/silk/building_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_add.png b/idrop-web/web-app/images/silk/bullet_add.png
new file mode 100644
index 0000000..41ff833
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_arrow_bottom.png b/idrop-web/web-app/images/silk/bullet_arrow_bottom.png
new file mode 100644
index 0000000..1a28d82
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_arrow_bottom.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_arrow_down.png b/idrop-web/web-app/images/silk/bullet_arrow_down.png
new file mode 100644
index 0000000..9b23c06
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_arrow_down.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_arrow_top.png b/idrop-web/web-app/images/silk/bullet_arrow_top.png
new file mode 100644
index 0000000..0ce86d2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_arrow_top.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_arrow_up.png b/idrop-web/web-app/images/silk/bullet_arrow_up.png
new file mode 100644
index 0000000..24df0f4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_arrow_up.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_black.png b/idrop-web/web-app/images/silk/bullet_black.png
new file mode 100644
index 0000000..5761970
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_black.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_blue.png b/idrop-web/web-app/images/silk/bullet_blue.png
new file mode 100644
index 0000000..a7651ec
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_delete.png b/idrop-web/web-app/images/silk/bullet_delete.png
new file mode 100644
index 0000000..bd6271b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_disk.png b/idrop-web/web-app/images/silk/bullet_disk.png
new file mode 100644
index 0000000..209c6a7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_disk.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_error.png b/idrop-web/web-app/images/silk/bullet_error.png
new file mode 100644
index 0000000..bca2b49
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_feed.png b/idrop-web/web-app/images/silk/bullet_feed.png
new file mode 100644
index 0000000..1a0e0f1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_feed.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_go.png b/idrop-web/web-app/images/silk/bullet_go.png
new file mode 100644
index 0000000..bc4faa7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_green.png b/idrop-web/web-app/images/silk/bullet_green.png
new file mode 100644
index 0000000..058ad26
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_green.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_key.png b/idrop-web/web-app/images/silk/bullet_key.png
new file mode 100644
index 0000000..3d37f2e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_orange.png b/idrop-web/web-app/images/silk/bullet_orange.png
new file mode 100644
index 0000000..fa63024
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_orange.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_picture.png b/idrop-web/web-app/images/silk/bullet_picture.png
new file mode 100644
index 0000000..386cb30
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_picture.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_pink.png b/idrop-web/web-app/images/silk/bullet_pink.png
new file mode 100644
index 0000000..0c9f73e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_pink.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_purple.png b/idrop-web/web-app/images/silk/bullet_purple.png
new file mode 100644
index 0000000..52ba503
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_purple.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_red.png b/idrop-web/web-app/images/silk/bullet_red.png
new file mode 100644
index 0000000..0cd8031
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_red.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_star.png b/idrop-web/web-app/images/silk/bullet_star.png
new file mode 100644
index 0000000..fab774a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_star.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_toggle_minus.png b/idrop-web/web-app/images/silk/bullet_toggle_minus.png
new file mode 100644
index 0000000..b47ce55
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_toggle_minus.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_toggle_plus.png b/idrop-web/web-app/images/silk/bullet_toggle_plus.png
new file mode 100644
index 0000000..9ab4a89
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_toggle_plus.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_white.png b/idrop-web/web-app/images/silk/bullet_white.png
new file mode 100644
index 0000000..a9af8d4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_white.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_wrench.png b/idrop-web/web-app/images/silk/bullet_wrench.png
new file mode 100644
index 0000000..67817e6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_wrench.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/bullet_yellow.png b/idrop-web/web-app/images/silk/bullet_yellow.png
new file mode 100644
index 0000000..6469cea
--- /dev/null
+++ b/idrop-web/web-app/images/silk/bullet_yellow.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cake.png b/idrop-web/web-app/images/silk/cake.png
new file mode 100644
index 0000000..4ef151a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cake.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calculator.png b/idrop-web/web-app/images/silk/calculator.png
new file mode 100644
index 0000000..701a60a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calculator.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calculator_add.png b/idrop-web/web-app/images/silk/calculator_add.png
new file mode 100644
index 0000000..fd377bd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calculator_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calculator_delete.png b/idrop-web/web-app/images/silk/calculator_delete.png
new file mode 100644
index 0000000..ac96170
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calculator_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calculator_edit.png b/idrop-web/web-app/images/silk/calculator_edit.png
new file mode 100644
index 0000000..63b06b9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calculator_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calculator_error.png b/idrop-web/web-app/images/silk/calculator_error.png
new file mode 100644
index 0000000..0bc4288
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calculator_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calculator_link.png b/idrop-web/web-app/images/silk/calculator_link.png
new file mode 100644
index 0000000..a2a8fe6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calculator_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calendar.png b/idrop-web/web-app/images/silk/calendar.png
new file mode 100644
index 0000000..6589138
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calendar.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calendar_add.png b/idrop-web/web-app/images/silk/calendar_add.png
new file mode 100644
index 0000000..17679db
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calendar_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calendar_delete.png b/idrop-web/web-app/images/silk/calendar_delete.png
new file mode 100644
index 0000000..69a3b10
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calendar_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calendar_edit.png b/idrop-web/web-app/images/silk/calendar_edit.png
new file mode 100644
index 0000000..d1d2d6e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calendar_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calendar_link.png b/idrop-web/web-app/images/silk/calendar_link.png
new file mode 100644
index 0000000..6b106b9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calendar_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calendar_view_day.png b/idrop-web/web-app/images/silk/calendar_view_day.png
new file mode 100644
index 0000000..9740f76
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calendar_view_day.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calendar_view_month.png b/idrop-web/web-app/images/silk/calendar_view_month.png
new file mode 100644
index 0000000..6cff76c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calendar_view_month.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/calendar_view_week.png b/idrop-web/web-app/images/silk/calendar_view_week.png
new file mode 100644
index 0000000..8fe695f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/calendar_view_week.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/camera.png b/idrop-web/web-app/images/silk/camera.png
new file mode 100644
index 0000000..8536d1a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/camera.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/camera_add.png b/idrop-web/web-app/images/silk/camera_add.png
new file mode 100644
index 0000000..08b5da9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/camera_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/camera_delete.png b/idrop-web/web-app/images/silk/camera_delete.png
new file mode 100644
index 0000000..3846d74
--- /dev/null
+++ b/idrop-web/web-app/images/silk/camera_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/camera_edit.png b/idrop-web/web-app/images/silk/camera_edit.png
new file mode 100644
index 0000000..b5015b1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/camera_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/camera_error.png b/idrop-web/web-app/images/silk/camera_error.png
new file mode 100644
index 0000000..3c1bc95
--- /dev/null
+++ b/idrop-web/web-app/images/silk/camera_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/camera_go.png b/idrop-web/web-app/images/silk/camera_go.png
new file mode 100644
index 0000000..94ce2b2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/camera_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/camera_link.png b/idrop-web/web-app/images/silk/camera_link.png
new file mode 100644
index 0000000..d2ac9f9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/camera_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/camera_small.png b/idrop-web/web-app/images/silk/camera_small.png
new file mode 100644
index 0000000..454b0b0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/camera_small.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cancel.png b/idrop-web/web-app/images/silk/cancel.png
new file mode 100644
index 0000000..c149c2b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cancel.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/car.png b/idrop-web/web-app/images/silk/car.png
new file mode 100644
index 0000000..4f3a770
--- /dev/null
+++ b/idrop-web/web-app/images/silk/car.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/car_add.png b/idrop-web/web-app/images/silk/car_add.png
new file mode 100644
index 0000000..1215a51
--- /dev/null
+++ b/idrop-web/web-app/images/silk/car_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/car_delete.png b/idrop-web/web-app/images/silk/car_delete.png
new file mode 100644
index 0000000..2803b56
--- /dev/null
+++ b/idrop-web/web-app/images/silk/car_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cart.png b/idrop-web/web-app/images/silk/cart.png
new file mode 100644
index 0000000..1baf7b9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cart.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cart_add.png b/idrop-web/web-app/images/silk/cart_add.png
new file mode 100644
index 0000000..45c2900
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cart_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cart_delete.png b/idrop-web/web-app/images/silk/cart_delete.png
new file mode 100644
index 0000000..ac5bce5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cart_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cart_edit.png b/idrop-web/web-app/images/silk/cart_edit.png
new file mode 100644
index 0000000..b94ff88
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cart_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cart_error.png b/idrop-web/web-app/images/silk/cart_error.png
new file mode 100644
index 0000000..144c835
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cart_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cart_go.png b/idrop-web/web-app/images/silk/cart_go.png
new file mode 100644
index 0000000..20ee058
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cart_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cart_put.png b/idrop-web/web-app/images/silk/cart_put.png
new file mode 100644
index 0000000..3aec353
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cart_put.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cart_remove.png b/idrop-web/web-app/images/silk/cart_remove.png
new file mode 100644
index 0000000..360217b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cart_remove.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cd.png b/idrop-web/web-app/images/silk/cd.png
new file mode 100644
index 0000000..ef43223
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cd.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cd_add.png b/idrop-web/web-app/images/silk/cd_add.png
new file mode 100644
index 0000000..b0254ef
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cd_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cd_burn.png b/idrop-web/web-app/images/silk/cd_burn.png
new file mode 100644
index 0000000..157cb0b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cd_burn.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cd_delete.png b/idrop-web/web-app/images/silk/cd_delete.png
new file mode 100644
index 0000000..7d7b3d5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cd_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cd_edit.png b/idrop-web/web-app/images/silk/cd_edit.png
new file mode 100644
index 0000000..b0dc194
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cd_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cd_eject.png b/idrop-web/web-app/images/silk/cd_eject.png
new file mode 100644
index 0000000..762932f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cd_eject.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cd_go.png b/idrop-web/web-app/images/silk/cd_go.png
new file mode 100644
index 0000000..13e0499
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cd_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_bar.png b/idrop-web/web-app/images/silk/chart_bar.png
new file mode 100644
index 0000000..9051fbc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_bar.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_bar_add.png b/idrop-web/web-app/images/silk/chart_bar_add.png
new file mode 100644
index 0000000..d283e84
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_bar_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_bar_delete.png b/idrop-web/web-app/images/silk/chart_bar_delete.png
new file mode 100644
index 0000000..259f686
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_bar_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_bar_edit.png b/idrop-web/web-app/images/silk/chart_bar_edit.png
new file mode 100644
index 0000000..df64d97
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_bar_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_bar_error.png b/idrop-web/web-app/images/silk/chart_bar_error.png
new file mode 100644
index 0000000..bdacea5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_bar_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_bar_link.png b/idrop-web/web-app/images/silk/chart_bar_link.png
new file mode 100644
index 0000000..bf18aed
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_bar_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_curve.png b/idrop-web/web-app/images/silk/chart_curve.png
new file mode 100644
index 0000000..01e933a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_curve.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_curve_add.png b/idrop-web/web-app/images/silk/chart_curve_add.png
new file mode 100644
index 0000000..f9e2050
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_curve_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_curve_delete.png b/idrop-web/web-app/images/silk/chart_curve_delete.png
new file mode 100644
index 0000000..b411391
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_curve_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_curve_edit.png b/idrop-web/web-app/images/silk/chart_curve_edit.png
new file mode 100644
index 0000000..bd07673
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_curve_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_curve_error.png b/idrop-web/web-app/images/silk/chart_curve_error.png
new file mode 100644
index 0000000..906dd03
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_curve_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_curve_go.png b/idrop-web/web-app/images/silk/chart_curve_go.png
new file mode 100644
index 0000000..ac9eda5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_curve_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_curve_link.png b/idrop-web/web-app/images/silk/chart_curve_link.png
new file mode 100644
index 0000000..144eafe
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_curve_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_line.png b/idrop-web/web-app/images/silk/chart_line.png
new file mode 100644
index 0000000..85020f3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_line.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_line_add.png b/idrop-web/web-app/images/silk/chart_line_add.png
new file mode 100644
index 0000000..5571a5e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_line_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_line_delete.png b/idrop-web/web-app/images/silk/chart_line_delete.png
new file mode 100644
index 0000000..5b0aa90
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_line_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_line_edit.png b/idrop-web/web-app/images/silk/chart_line_edit.png
new file mode 100644
index 0000000..9cf6607
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_line_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_line_error.png b/idrop-web/web-app/images/silk/chart_line_error.png
new file mode 100644
index 0000000..ff23c03
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_line_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_line_link.png b/idrop-web/web-app/images/silk/chart_line_link.png
new file mode 100644
index 0000000..f3727d2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_line_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_organisation.png b/idrop-web/web-app/images/silk/chart_organisation.png
new file mode 100644
index 0000000..c32d25c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_organisation.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_organisation_add.png b/idrop-web/web-app/images/silk/chart_organisation_add.png
new file mode 100644
index 0000000..f0dba4a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_organisation_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_organisation_delete.png b/idrop-web/web-app/images/silk/chart_organisation_delete.png
new file mode 100644
index 0000000..7dc8dca
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_organisation_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_pie.png b/idrop-web/web-app/images/silk/chart_pie.png
new file mode 100644
index 0000000..fe00fa0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_pie.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_pie_add.png b/idrop-web/web-app/images/silk/chart_pie_add.png
new file mode 100644
index 0000000..bf0822e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_pie_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_pie_delete.png b/idrop-web/web-app/images/silk/chart_pie_delete.png
new file mode 100644
index 0000000..5ab9efd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_pie_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_pie_edit.png b/idrop-web/web-app/images/silk/chart_pie_edit.png
new file mode 100644
index 0000000..3debc12
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_pie_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_pie_error.png b/idrop-web/web-app/images/silk/chart_pie_error.png
new file mode 100644
index 0000000..7344174
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_pie_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/chart_pie_link.png b/idrop-web/web-app/images/silk/chart_pie_link.png
new file mode 100644
index 0000000..c072f8e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/chart_pie_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/clock.png b/idrop-web/web-app/images/silk/clock.png
new file mode 100644
index 0000000..e2672c2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/clock.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/clock_add.png b/idrop-web/web-app/images/silk/clock_add.png
new file mode 100644
index 0000000..598b839
--- /dev/null
+++ b/idrop-web/web-app/images/silk/clock_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/clock_delete.png b/idrop-web/web-app/images/silk/clock_delete.png
new file mode 100644
index 0000000..8bf9efe
--- /dev/null
+++ b/idrop-web/web-app/images/silk/clock_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/clock_edit.png b/idrop-web/web-app/images/silk/clock_edit.png
new file mode 100644
index 0000000..7d35718
--- /dev/null
+++ b/idrop-web/web-app/images/silk/clock_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/clock_error.png b/idrop-web/web-app/images/silk/clock_error.png
new file mode 100644
index 0000000..a7c461b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/clock_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/clock_go.png b/idrop-web/web-app/images/silk/clock_go.png
new file mode 100644
index 0000000..a1a24d3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/clock_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/clock_link.png b/idrop-web/web-app/images/silk/clock_link.png
new file mode 100644
index 0000000..481cf04
--- /dev/null
+++ b/idrop-web/web-app/images/silk/clock_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/clock_pause.png b/idrop-web/web-app/images/silk/clock_pause.png
new file mode 100644
index 0000000..ba74725
--- /dev/null
+++ b/idrop-web/web-app/images/silk/clock_pause.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/clock_play.png b/idrop-web/web-app/images/silk/clock_play.png
new file mode 100644
index 0000000..fb4ebc8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/clock_play.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/clock_red.png b/idrop-web/web-app/images/silk/clock_red.png
new file mode 100644
index 0000000..2842cc3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/clock_red.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/clock_stop.png b/idrop-web/web-app/images/silk/clock_stop.png
new file mode 100644
index 0000000..6fe8a6f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/clock_stop.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cog.png b/idrop-web/web-app/images/silk/cog.png
new file mode 100644
index 0000000..67de2c6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cog.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cog_add.png b/idrop-web/web-app/images/silk/cog_add.png
new file mode 100644
index 0000000..04f22ba
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cog_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cog_delete.png b/idrop-web/web-app/images/silk/cog_delete.png
new file mode 100644
index 0000000..8ce71c4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cog_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cog_edit.png b/idrop-web/web-app/images/silk/cog_edit.png
new file mode 100644
index 0000000..47b75a4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cog_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cog_error.png b/idrop-web/web-app/images/silk/cog_error.png
new file mode 100644
index 0000000..4766743
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cog_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cog_go.png b/idrop-web/web-app/images/silk/cog_go.png
new file mode 100644
index 0000000..3262767
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cog_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/coins.png b/idrop-web/web-app/images/silk/coins.png
new file mode 100644
index 0000000..0ca9074
--- /dev/null
+++ b/idrop-web/web-app/images/silk/coins.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/coins_add.png b/idrop-web/web-app/images/silk/coins_add.png
new file mode 100644
index 0000000..cdff5d3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/coins_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/coins_delete.png b/idrop-web/web-app/images/silk/coins_delete.png
new file mode 100644
index 0000000..18e0c0f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/coins_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/color_swatch.png b/idrop-web/web-app/images/silk/color_swatch.png
new file mode 100644
index 0000000..6e6e852
--- /dev/null
+++ b/idrop-web/web-app/images/silk/color_swatch.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/color_wheel.png b/idrop-web/web-app/images/silk/color_wheel.png
new file mode 100644
index 0000000..809fb00
--- /dev/null
+++ b/idrop-web/web-app/images/silk/color_wheel.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/comment.png b/idrop-web/web-app/images/silk/comment.png
new file mode 100644
index 0000000..7bc9233
--- /dev/null
+++ b/idrop-web/web-app/images/silk/comment.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/comment_add.png b/idrop-web/web-app/images/silk/comment_add.png
new file mode 100644
index 0000000..75e78de
--- /dev/null
+++ b/idrop-web/web-app/images/silk/comment_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/comment_delete.png b/idrop-web/web-app/images/silk/comment_delete.png
new file mode 100644
index 0000000..643fdbe
--- /dev/null
+++ b/idrop-web/web-app/images/silk/comment_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/comment_edit.png b/idrop-web/web-app/images/silk/comment_edit.png
new file mode 100644
index 0000000..73db110
--- /dev/null
+++ b/idrop-web/web-app/images/silk/comment_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/comments.png b/idrop-web/web-app/images/silk/comments.png
new file mode 100644
index 0000000..39433cf
--- /dev/null
+++ b/idrop-web/web-app/images/silk/comments.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/comments_add.png b/idrop-web/web-app/images/silk/comments_add.png
new file mode 100644
index 0000000..b325634
--- /dev/null
+++ b/idrop-web/web-app/images/silk/comments_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/comments_delete.png b/idrop-web/web-app/images/silk/comments_delete.png
new file mode 100644
index 0000000..6df7376
--- /dev/null
+++ b/idrop-web/web-app/images/silk/comments_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/compress.png b/idrop-web/web-app/images/silk/compress.png
new file mode 100644
index 0000000..8606ff0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/compress.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/computer.png b/idrop-web/web-app/images/silk/computer.png
new file mode 100644
index 0000000..9bc37dc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/computer.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/computer_add.png b/idrop-web/web-app/images/silk/computer_add.png
new file mode 100644
index 0000000..db604ee
--- /dev/null
+++ b/idrop-web/web-app/images/silk/computer_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/computer_delete.png b/idrop-web/web-app/images/silk/computer_delete.png
new file mode 100644
index 0000000..5e9b268
--- /dev/null
+++ b/idrop-web/web-app/images/silk/computer_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/computer_edit.png b/idrop-web/web-app/images/silk/computer_edit.png
new file mode 100644
index 0000000..34c72fe
--- /dev/null
+++ b/idrop-web/web-app/images/silk/computer_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/computer_error.png b/idrop-web/web-app/images/silk/computer_error.png
new file mode 100644
index 0000000..b2c3ed5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/computer_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/computer_go.png b/idrop-web/web-app/images/silk/computer_go.png
new file mode 100644
index 0000000..0b26144
--- /dev/null
+++ b/idrop-web/web-app/images/silk/computer_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/computer_key.png b/idrop-web/web-app/images/silk/computer_key.png
new file mode 100644
index 0000000..eca5430
--- /dev/null
+++ b/idrop-web/web-app/images/silk/computer_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/computer_link.png b/idrop-web/web-app/images/silk/computer_link.png
new file mode 100644
index 0000000..3859db2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/computer_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/connect.png b/idrop-web/web-app/images/silk/connect.png
new file mode 100644
index 0000000..024138e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/connect.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/contrast.png b/idrop-web/web-app/images/silk/contrast.png
new file mode 100644
index 0000000..adcc004
--- /dev/null
+++ b/idrop-web/web-app/images/silk/contrast.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/contrast_decrease.png b/idrop-web/web-app/images/silk/contrast_decrease.png
new file mode 100644
index 0000000..0155bf5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/contrast_decrease.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/contrast_high.png b/idrop-web/web-app/images/silk/contrast_high.png
new file mode 100644
index 0000000..d87c8cb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/contrast_high.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/contrast_increase.png b/idrop-web/web-app/images/silk/contrast_increase.png
new file mode 100644
index 0000000..a3e7f52
--- /dev/null
+++ b/idrop-web/web-app/images/silk/contrast_increase.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/contrast_low.png b/idrop-web/web-app/images/silk/contrast_low.png
new file mode 100644
index 0000000..dc9f4b1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/contrast_low.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_eject.png b/idrop-web/web-app/images/silk/control_eject.png
new file mode 100644
index 0000000..924d817
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_eject.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_eject_blue.png b/idrop-web/web-app/images/silk/control_eject_blue.png
new file mode 100644
index 0000000..2bd4963
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_eject_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_end.png b/idrop-web/web-app/images/silk/control_end.png
new file mode 100644
index 0000000..036e04d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_end.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_end_blue.png b/idrop-web/web-app/images/silk/control_end_blue.png
new file mode 100644
index 0000000..7207935
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_end_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_equalizer.png b/idrop-web/web-app/images/silk/control_equalizer.png
new file mode 100644
index 0000000..4606087
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_equalizer.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_equalizer_blue.png b/idrop-web/web-app/images/silk/control_equalizer_blue.png
new file mode 100644
index 0000000..1b2e6a3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_equalizer_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_fastforward.png b/idrop-web/web-app/images/silk/control_fastforward.png
new file mode 100644
index 0000000..31f7fd3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_fastforward.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_fastforward_blue.png b/idrop-web/web-app/images/silk/control_fastforward_blue.png
new file mode 100644
index 0000000..4a2f9d4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_fastforward_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_pause.png b/idrop-web/web-app/images/silk/control_pause.png
new file mode 100644
index 0000000..2d9ce9c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_pause.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_pause_blue.png b/idrop-web/web-app/images/silk/control_pause_blue.png
new file mode 100644
index 0000000..ec61099
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_pause_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_play.png b/idrop-web/web-app/images/silk/control_play.png
new file mode 100644
index 0000000..0846555
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_play.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_play_blue.png b/idrop-web/web-app/images/silk/control_play_blue.png
new file mode 100644
index 0000000..f8c8ec6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_play_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_repeat.png b/idrop-web/web-app/images/silk/control_repeat.png
new file mode 100644
index 0000000..1c4f57a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_repeat.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_repeat_blue.png b/idrop-web/web-app/images/silk/control_repeat_blue.png
new file mode 100644
index 0000000..406ec33
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_repeat_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_rewind.png b/idrop-web/web-app/images/silk/control_rewind.png
new file mode 100644
index 0000000..c029447
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_rewind.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_rewind_blue.png b/idrop-web/web-app/images/silk/control_rewind_blue.png
new file mode 100644
index 0000000..15d1584
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_rewind_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_start.png b/idrop-web/web-app/images/silk/control_start.png
new file mode 100644
index 0000000..7dd1c07
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_start.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_start_blue.png b/idrop-web/web-app/images/silk/control_start_blue.png
new file mode 100644
index 0000000..6f11fcb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_start_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_stop.png b/idrop-web/web-app/images/silk/control_stop.png
new file mode 100644
index 0000000..893bb60
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_stop.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/control_stop_blue.png b/idrop-web/web-app/images/silk/control_stop_blue.png
new file mode 100644
index 0000000..e6f75d2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/control_stop_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/controller.png b/idrop-web/web-app/images/silk/controller.png
new file mode 100644
index 0000000..5cf76ed
--- /dev/null
+++ b/idrop-web/web-app/images/silk/controller.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/controller_add.png b/idrop-web/web-app/images/silk/controller_add.png
new file mode 100644
index 0000000..efecb38
--- /dev/null
+++ b/idrop-web/web-app/images/silk/controller_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/controller_delete.png b/idrop-web/web-app/images/silk/controller_delete.png
new file mode 100644
index 0000000..3d83bc7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/controller_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/controller_error.png b/idrop-web/web-app/images/silk/controller_error.png
new file mode 100644
index 0000000..7f17c0c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/controller_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/creditcards.png b/idrop-web/web-app/images/silk/creditcards.png
new file mode 100644
index 0000000..4eae583
--- /dev/null
+++ b/idrop-web/web-app/images/silk/creditcards.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cross.png b/idrop-web/web-app/images/silk/cross.png
new file mode 100644
index 0000000..1514d51
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cross.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/css.png b/idrop-web/web-app/images/silk/css.png
new file mode 100644
index 0000000..23f3101
--- /dev/null
+++ b/idrop-web/web-app/images/silk/css.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/css_add.png b/idrop-web/web-app/images/silk/css_add.png
new file mode 100644
index 0000000..e8ea10f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/css_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/css_delete.png b/idrop-web/web-app/images/silk/css_delete.png
new file mode 100644
index 0000000..326aba4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/css_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/css_go.png b/idrop-web/web-app/images/silk/css_go.png
new file mode 100644
index 0000000..6cdf38c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/css_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/css_valid.png b/idrop-web/web-app/images/silk/css_valid.png
new file mode 100644
index 0000000..4c72ca5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/css_valid.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cup.png b/idrop-web/web-app/images/silk/cup.png
new file mode 100644
index 0000000..b7bfcd1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cup.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cup_add.png b/idrop-web/web-app/images/silk/cup_add.png
new file mode 100644
index 0000000..4ecaece
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cup_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cup_delete.png b/idrop-web/web-app/images/silk/cup_delete.png
new file mode 100644
index 0000000..59a6d9c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cup_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cup_edit.png b/idrop-web/web-app/images/silk/cup_edit.png
new file mode 100644
index 0000000..0b8f1e1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cup_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cup_error.png b/idrop-web/web-app/images/silk/cup_error.png
new file mode 100644
index 0000000..6879874
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cup_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cup_go.png b/idrop-web/web-app/images/silk/cup_go.png
new file mode 100644
index 0000000..9527efb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cup_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cup_key.png b/idrop-web/web-app/images/silk/cup_key.png
new file mode 100644
index 0000000..7ae160c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cup_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cup_link.png b/idrop-web/web-app/images/silk/cup_link.png
new file mode 100644
index 0000000..41d1ace
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cup_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cursor.png b/idrop-web/web-app/images/silk/cursor.png
new file mode 100644
index 0000000..532f532
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cursor.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cut.png b/idrop-web/web-app/images/silk/cut.png
new file mode 100644
index 0000000..f215d6f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cut.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/cut_red.png b/idrop-web/web-app/images/silk/cut_red.png
new file mode 100644
index 0000000..85bb2f0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/cut_red.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database.png b/idrop-web/web-app/images/silk/database.png
new file mode 100644
index 0000000..3d09261
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database_add.png b/idrop-web/web-app/images/silk/database_add.png
new file mode 100644
index 0000000..802bd6c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database_connect.png b/idrop-web/web-app/images/silk/database_connect.png
new file mode 100644
index 0000000..3a11197
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database_connect.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database_delete.png b/idrop-web/web-app/images/silk/database_delete.png
new file mode 100644
index 0000000..cce652e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database_edit.png b/idrop-web/web-app/images/silk/database_edit.png
new file mode 100644
index 0000000..e501b66
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database_error.png b/idrop-web/web-app/images/silk/database_error.png
new file mode 100644
index 0000000..578221a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database_gear.png b/idrop-web/web-app/images/silk/database_gear.png
new file mode 100644
index 0000000..7c0ab2b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database_gear.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database_go.png b/idrop-web/web-app/images/silk/database_go.png
new file mode 100644
index 0000000..61a8556
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database_key.png b/idrop-web/web-app/images/silk/database_key.png
new file mode 100644
index 0000000..3334147
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database_lightning.png b/idrop-web/web-app/images/silk/database_lightning.png
new file mode 100644
index 0000000..d9eefc2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database_lightning.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database_link.png b/idrop-web/web-app/images/silk/database_link.png
new file mode 100644
index 0000000..4c8204a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database_refresh.png b/idrop-web/web-app/images/silk/database_refresh.png
new file mode 100644
index 0000000..ff803be
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database_refresh.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database_save.png b/idrop-web/web-app/images/silk/database_save.png
new file mode 100644
index 0000000..44c06dd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database_save.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/database_table.png b/idrop-web/web-app/images/silk/database_table.png
new file mode 100644
index 0000000..693709c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/database_table.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/date.png b/idrop-web/web-app/images/silk/date.png
new file mode 100644
index 0000000..783c833
--- /dev/null
+++ b/idrop-web/web-app/images/silk/date.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/date_add.png b/idrop-web/web-app/images/silk/date_add.png
new file mode 100644
index 0000000..6a7ae02
--- /dev/null
+++ b/idrop-web/web-app/images/silk/date_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/date_delete.png b/idrop-web/web-app/images/silk/date_delete.png
new file mode 100644
index 0000000..969a6b7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/date_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/date_edit.png b/idrop-web/web-app/images/silk/date_edit.png
new file mode 100644
index 0000000..e681065
--- /dev/null
+++ b/idrop-web/web-app/images/silk/date_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/date_error.png b/idrop-web/web-app/images/silk/date_error.png
new file mode 100644
index 0000000..442cd97
--- /dev/null
+++ b/idrop-web/web-app/images/silk/date_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/date_go.png b/idrop-web/web-app/images/silk/date_go.png
new file mode 100644
index 0000000..52dd9f3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/date_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/date_link.png b/idrop-web/web-app/images/silk/date_link.png
new file mode 100644
index 0000000..9f0aada
--- /dev/null
+++ b/idrop-web/web-app/images/silk/date_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/date_magnify.png b/idrop-web/web-app/images/silk/date_magnify.png
new file mode 100644
index 0000000..cd05f19
--- /dev/null
+++ b/idrop-web/web-app/images/silk/date_magnify.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/date_next.png b/idrop-web/web-app/images/silk/date_next.png
new file mode 100644
index 0000000..48d740a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/date_next.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/date_previous.png b/idrop-web/web-app/images/silk/date_previous.png
new file mode 100644
index 0000000..e117a83
--- /dev/null
+++ b/idrop-web/web-app/images/silk/date_previous.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/delete.png b/idrop-web/web-app/images/silk/delete.png
new file mode 100644
index 0000000..08f2493
--- /dev/null
+++ b/idrop-web/web-app/images/silk/delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/disconnect.png b/idrop-web/web-app/images/silk/disconnect.png
new file mode 100644
index 0000000..b335cb1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/disconnect.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/disk.png b/idrop-web/web-app/images/silk/disk.png
new file mode 100644
index 0000000..99d532e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/disk.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/disk_multiple.png b/idrop-web/web-app/images/silk/disk_multiple.png
new file mode 100644
index 0000000..fc5a52f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/disk_multiple.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/door.png b/idrop-web/web-app/images/silk/door.png
new file mode 100644
index 0000000..369fc46
--- /dev/null
+++ b/idrop-web/web-app/images/silk/door.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/door_in.png b/idrop-web/web-app/images/silk/door_in.png
new file mode 100644
index 0000000..41676a0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/door_in.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/door_open.png b/idrop-web/web-app/images/silk/door_open.png
new file mode 100644
index 0000000..64bab57
--- /dev/null
+++ b/idrop-web/web-app/images/silk/door_open.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/door_out.png b/idrop-web/web-app/images/silk/door_out.png
new file mode 100644
index 0000000..2541d2b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/door_out.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drink.png b/idrop-web/web-app/images/silk/drink.png
new file mode 100644
index 0000000..d98359c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drink.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drink_empty.png b/idrop-web/web-app/images/silk/drink_empty.png
new file mode 100644
index 0000000..a40211e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drink_empty.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive.png b/idrop-web/web-app/images/silk/drive.png
new file mode 100644
index 0000000..37b7c9b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_add.png b/idrop-web/web-app/images/silk/drive_add.png
new file mode 100644
index 0000000..29a35d5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_burn.png b/idrop-web/web-app/images/silk/drive_burn.png
new file mode 100644
index 0000000..80fd79f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_burn.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_cd.png b/idrop-web/web-app/images/silk/drive_cd.png
new file mode 100644
index 0000000..1850b70
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_cd.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_cd_empty.png b/idrop-web/web-app/images/silk/drive_cd_empty.png
new file mode 100644
index 0000000..8df38d9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_cd_empty.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_delete.png b/idrop-web/web-app/images/silk/drive_delete.png
new file mode 100644
index 0000000..e6eb186
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_disk.png b/idrop-web/web-app/images/silk/drive_disk.png
new file mode 100644
index 0000000..5a51e81
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_disk.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_edit.png b/idrop-web/web-app/images/silk/drive_edit.png
new file mode 100644
index 0000000..7923fad
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_error.png b/idrop-web/web-app/images/silk/drive_error.png
new file mode 100644
index 0000000..309f639
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_go.png b/idrop-web/web-app/images/silk/drive_go.png
new file mode 100644
index 0000000..fc53379
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_key.png b/idrop-web/web-app/images/silk/drive_key.png
new file mode 100644
index 0000000..d0b3c67
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_link.png b/idrop-web/web-app/images/silk/drive_link.png
new file mode 100644
index 0000000..8679c4b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_magnify.png b/idrop-web/web-app/images/silk/drive_magnify.png
new file mode 100644
index 0000000..0f0f444
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_magnify.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_network.png b/idrop-web/web-app/images/silk/drive_network.png
new file mode 100644
index 0000000..63d2d5d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_network.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_rename.png b/idrop-web/web-app/images/silk/drive_rename.png
new file mode 100644
index 0000000..2a9f38b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_rename.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_user.png b/idrop-web/web-app/images/silk/drive_user.png
new file mode 100644
index 0000000..0b4751c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_user.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/drive_web.png b/idrop-web/web-app/images/silk/drive_web.png
new file mode 100644
index 0000000..8850a83
--- /dev/null
+++ b/idrop-web/web-app/images/silk/drive_web.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/dvd.png b/idrop-web/web-app/images/silk/dvd.png
new file mode 100644
index 0000000..9d94de5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/dvd.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/dvd_add.png b/idrop-web/web-app/images/silk/dvd_add.png
new file mode 100644
index 0000000..517d112
--- /dev/null
+++ b/idrop-web/web-app/images/silk/dvd_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/dvd_delete.png b/idrop-web/web-app/images/silk/dvd_delete.png
new file mode 100644
index 0000000..87bed22
--- /dev/null
+++ b/idrop-web/web-app/images/silk/dvd_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/dvd_edit.png b/idrop-web/web-app/images/silk/dvd_edit.png
new file mode 100644
index 0000000..d6330aa
--- /dev/null
+++ b/idrop-web/web-app/images/silk/dvd_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/dvd_error.png b/idrop-web/web-app/images/silk/dvd_error.png
new file mode 100644
index 0000000..8f6d4be
--- /dev/null
+++ b/idrop-web/web-app/images/silk/dvd_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/dvd_go.png b/idrop-web/web-app/images/silk/dvd_go.png
new file mode 100644
index 0000000..ef6959f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/dvd_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/dvd_key.png b/idrop-web/web-app/images/silk/dvd_key.png
new file mode 100644
index 0000000..da9307f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/dvd_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/dvd_link.png b/idrop-web/web-app/images/silk/dvd_link.png
new file mode 100644
index 0000000..caad726
--- /dev/null
+++ b/idrop-web/web-app/images/silk/dvd_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/email.png b/idrop-web/web-app/images/silk/email.png
new file mode 100644
index 0000000..7348aed
--- /dev/null
+++ b/idrop-web/web-app/images/silk/email.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/email_add.png b/idrop-web/web-app/images/silk/email_add.png
new file mode 100644
index 0000000..6c93368
--- /dev/null
+++ b/idrop-web/web-app/images/silk/email_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/email_attach.png b/idrop-web/web-app/images/silk/email_attach.png
new file mode 100644
index 0000000..1f99485
--- /dev/null
+++ b/idrop-web/web-app/images/silk/email_attach.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/email_delete.png b/idrop-web/web-app/images/silk/email_delete.png
new file mode 100644
index 0000000..a9932b1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/email_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/email_edit.png b/idrop-web/web-app/images/silk/email_edit.png
new file mode 100644
index 0000000..244f04a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/email_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/email_error.png b/idrop-web/web-app/images/silk/email_error.png
new file mode 100644
index 0000000..8bdd330
--- /dev/null
+++ b/idrop-web/web-app/images/silk/email_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/email_go.png b/idrop-web/web-app/images/silk/email_go.png
new file mode 100644
index 0000000..4a6c5d3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/email_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/email_link.png b/idrop-web/web-app/images/silk/email_link.png
new file mode 100644
index 0000000..2c49f78
--- /dev/null
+++ b/idrop-web/web-app/images/silk/email_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/email_open.png b/idrop-web/web-app/images/silk/email_open.png
new file mode 100644
index 0000000..7b6f981
--- /dev/null
+++ b/idrop-web/web-app/images/silk/email_open.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/email_open_image.png b/idrop-web/web-app/images/silk/email_open_image.png
new file mode 100644
index 0000000..e588e2f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/email_open_image.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/emoticon_evilgrin.png b/idrop-web/web-app/images/silk/emoticon_evilgrin.png
new file mode 100644
index 0000000..817bd50
--- /dev/null
+++ b/idrop-web/web-app/images/silk/emoticon_evilgrin.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/emoticon_grin.png b/idrop-web/web-app/images/silk/emoticon_grin.png
new file mode 100644
index 0000000..fc60c5e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/emoticon_grin.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/emoticon_happy.png b/idrop-web/web-app/images/silk/emoticon_happy.png
new file mode 100644
index 0000000..6b7336e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/emoticon_happy.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/emoticon_smile.png b/idrop-web/web-app/images/silk/emoticon_smile.png
new file mode 100644
index 0000000..ade4318
--- /dev/null
+++ b/idrop-web/web-app/images/silk/emoticon_smile.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/emoticon_surprised.png b/idrop-web/web-app/images/silk/emoticon_surprised.png
new file mode 100644
index 0000000..4520cfc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/emoticon_surprised.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/emoticon_tongue.png b/idrop-web/web-app/images/silk/emoticon_tongue.png
new file mode 100644
index 0000000..ecafd2f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/emoticon_tongue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/emoticon_unhappy.png b/idrop-web/web-app/images/silk/emoticon_unhappy.png
new file mode 100644
index 0000000..fd5d030
--- /dev/null
+++ b/idrop-web/web-app/images/silk/emoticon_unhappy.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/emoticon_waii.png b/idrop-web/web-app/images/silk/emoticon_waii.png
new file mode 100644
index 0000000..458f936
--- /dev/null
+++ b/idrop-web/web-app/images/silk/emoticon_waii.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/emoticon_wink.png b/idrop-web/web-app/images/silk/emoticon_wink.png
new file mode 100644
index 0000000..a631949
--- /dev/null
+++ b/idrop-web/web-app/images/silk/emoticon_wink.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/error.png b/idrop-web/web-app/images/silk/error.png
new file mode 100644
index 0000000..628cf2d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/error_add.png b/idrop-web/web-app/images/silk/error_add.png
new file mode 100644
index 0000000..4c97484
--- /dev/null
+++ b/idrop-web/web-app/images/silk/error_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/error_delete.png b/idrop-web/web-app/images/silk/error_delete.png
new file mode 100644
index 0000000..7f78bcc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/error_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/error_go.png b/idrop-web/web-app/images/silk/error_go.png
new file mode 100644
index 0000000..caa1838
--- /dev/null
+++ b/idrop-web/web-app/images/silk/error_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/exclamation.png b/idrop-web/web-app/images/silk/exclamation.png
new file mode 100644
index 0000000..c37bd06
--- /dev/null
+++ b/idrop-web/web-app/images/silk/exclamation.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/eye.png b/idrop-web/web-app/images/silk/eye.png
new file mode 100644
index 0000000..564a1a9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/eye.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/feed.png b/idrop-web/web-app/images/silk/feed.png
new file mode 100644
index 0000000..315c4f4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/feed.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/feed_add.png b/idrop-web/web-app/images/silk/feed_add.png
new file mode 100644
index 0000000..e77d46e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/feed_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/feed_delete.png b/idrop-web/web-app/images/silk/feed_delete.png
new file mode 100644
index 0000000..5e332b4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/feed_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/feed_disk.png b/idrop-web/web-app/images/silk/feed_disk.png
new file mode 100644
index 0000000..a158c99
--- /dev/null
+++ b/idrop-web/web-app/images/silk/feed_disk.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/feed_edit.png b/idrop-web/web-app/images/silk/feed_edit.png
new file mode 100644
index 0000000..f1fde7a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/feed_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/feed_error.png b/idrop-web/web-app/images/silk/feed_error.png
new file mode 100644
index 0000000..c0a801c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/feed_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/feed_go.png b/idrop-web/web-app/images/silk/feed_go.png
new file mode 100644
index 0000000..f2eed1e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/feed_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/feed_key.png b/idrop-web/web-app/images/silk/feed_key.png
new file mode 100644
index 0000000..156bfa9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/feed_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/feed_link.png b/idrop-web/web-app/images/silk/feed_link.png
new file mode 100644
index 0000000..c45a534
--- /dev/null
+++ b/idrop-web/web-app/images/silk/feed_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/feed_magnify.png b/idrop-web/web-app/images/silk/feed_magnify.png
new file mode 100644
index 0000000..3023695
--- /dev/null
+++ b/idrop-web/web-app/images/silk/feed_magnify.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/female.png b/idrop-web/web-app/images/silk/female.png
new file mode 100644
index 0000000..f92958e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/female.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/film.png b/idrop-web/web-app/images/silk/film.png
new file mode 100644
index 0000000..b0ce7bb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/film.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/film_add.png b/idrop-web/web-app/images/silk/film_add.png
new file mode 100644
index 0000000..40d681f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/film_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/film_delete.png b/idrop-web/web-app/images/silk/film_delete.png
new file mode 100644
index 0000000..23a2508
--- /dev/null
+++ b/idrop-web/web-app/images/silk/film_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/film_edit.png b/idrop-web/web-app/images/silk/film_edit.png
new file mode 100644
index 0000000..af66b73
--- /dev/null
+++ b/idrop-web/web-app/images/silk/film_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/film_error.png b/idrop-web/web-app/images/silk/film_error.png
new file mode 100644
index 0000000..88f3d69
--- /dev/null
+++ b/idrop-web/web-app/images/silk/film_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/film_go.png b/idrop-web/web-app/images/silk/film_go.png
new file mode 100644
index 0000000..dd0168e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/film_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/film_key.png b/idrop-web/web-app/images/silk/film_key.png
new file mode 100644
index 0000000..5892162
--- /dev/null
+++ b/idrop-web/web-app/images/silk/film_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/film_link.png b/idrop-web/web-app/images/silk/film_link.png
new file mode 100644
index 0000000..0f24e86
--- /dev/null
+++ b/idrop-web/web-app/images/silk/film_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/film_save.png b/idrop-web/web-app/images/silk/film_save.png
new file mode 100644
index 0000000..bc8c0d3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/film_save.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/find.png b/idrop-web/web-app/images/silk/find.png
new file mode 100644
index 0000000..1547479
--- /dev/null
+++ b/idrop-web/web-app/images/silk/find.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/flag_blue.png b/idrop-web/web-app/images/silk/flag_blue.png
new file mode 100644
index 0000000..003924f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/flag_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/flag_green.png b/idrop-web/web-app/images/silk/flag_green.png
new file mode 100644
index 0000000..e4bc611
--- /dev/null
+++ b/idrop-web/web-app/images/silk/flag_green.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/flag_orange.png b/idrop-web/web-app/images/silk/flag_orange.png
new file mode 100644
index 0000000..e632024
--- /dev/null
+++ b/idrop-web/web-app/images/silk/flag_orange.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/flag_pink.png b/idrop-web/web-app/images/silk/flag_pink.png
new file mode 100644
index 0000000..5f15e52
--- /dev/null
+++ b/idrop-web/web-app/images/silk/flag_pink.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/flag_purple.png b/idrop-web/web-app/images/silk/flag_purple.png
new file mode 100644
index 0000000..d069866
--- /dev/null
+++ b/idrop-web/web-app/images/silk/flag_purple.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/flag_red.png b/idrop-web/web-app/images/silk/flag_red.png
new file mode 100644
index 0000000..e8a602d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/flag_red.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/flag_yellow.png b/idrop-web/web-app/images/silk/flag_yellow.png
new file mode 100644
index 0000000..14c89a5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/flag_yellow.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder.png b/idrop-web/web-app/images/silk/folder.png
new file mode 100644
index 0000000..784e8fa
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_add.png b/idrop-web/web-app/images/silk/folder_add.png
new file mode 100644
index 0000000..529fe8f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_bell.png b/idrop-web/web-app/images/silk/folder_bell.png
new file mode 100644
index 0000000..d04dd7f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_bell.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_brick.png b/idrop-web/web-app/images/silk/folder_brick.png
new file mode 100644
index 0000000..5dea976
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_brick.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_bug.png b/idrop-web/web-app/images/silk/folder_bug.png
new file mode 100644
index 0000000..4f791b6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_bug.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_camera.png b/idrop-web/web-app/images/silk/folder_camera.png
new file mode 100644
index 0000000..c951941
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_camera.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_database.png b/idrop-web/web-app/images/silk/folder_database.png
new file mode 100644
index 0000000..5193e2e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_database.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_delete.png b/idrop-web/web-app/images/silk/folder_delete.png
new file mode 100644
index 0000000..112b016
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_edit.png b/idrop-web/web-app/images/silk/folder_edit.png
new file mode 100644
index 0000000..ad669cc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_error.png b/idrop-web/web-app/images/silk/folder_error.png
new file mode 100644
index 0000000..1af8809
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_explore.png b/idrop-web/web-app/images/silk/folder_explore.png
new file mode 100644
index 0000000..0ba9391
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_explore.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_feed.png b/idrop-web/web-app/images/silk/folder_feed.png
new file mode 100644
index 0000000..d06ee51
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_feed.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_find.png b/idrop-web/web-app/images/silk/folder_find.png
new file mode 100644
index 0000000..c64e2ee
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_find.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_go.png b/idrop-web/web-app/images/silk/folder_go.png
new file mode 100644
index 0000000..34a736f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_heart.png b/idrop-web/web-app/images/silk/folder_heart.png
new file mode 100644
index 0000000..56d7da1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_heart.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_image.png b/idrop-web/web-app/images/silk/folder_image.png
new file mode 100644
index 0000000..d5df75b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_image.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_key.png b/idrop-web/web-app/images/silk/folder_key.png
new file mode 100644
index 0000000..fb9b4c2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_lightbulb.png b/idrop-web/web-app/images/silk/folder_lightbulb.png
new file mode 100644
index 0000000..f367a51
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_lightbulb.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_link.png b/idrop-web/web-app/images/silk/folder_link.png
new file mode 100644
index 0000000..b9b75f6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_magnify.png b/idrop-web/web-app/images/silk/folder_magnify.png
new file mode 100644
index 0000000..0a3e798
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_magnify.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_page.png b/idrop-web/web-app/images/silk/folder_page.png
new file mode 100644
index 0000000..1ef6e11
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_page.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_page_white.png b/idrop-web/web-app/images/silk/folder_page_white.png
new file mode 100644
index 0000000..14d6b61
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_page_white.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_palette.png b/idrop-web/web-app/images/silk/folder_palette.png
new file mode 100644
index 0000000..ba12fe8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_palette.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_picture.png b/idrop-web/web-app/images/silk/folder_picture.png
new file mode 100644
index 0000000..052b336
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_picture.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_star.png b/idrop-web/web-app/images/silk/folder_star.png
new file mode 100644
index 0000000..448e46f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_star.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_table.png b/idrop-web/web-app/images/silk/folder_table.png
new file mode 100644
index 0000000..473cee3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_table.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_user.png b/idrop-web/web-app/images/silk/folder_user.png
new file mode 100644
index 0000000..f021c3e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_user.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/folder_wrench.png b/idrop-web/web-app/images/silk/folder_wrench.png
new file mode 100644
index 0000000..ea3404e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/folder_wrench.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/font.png b/idrop-web/web-app/images/silk/font.png
new file mode 100644
index 0000000..b7960db
--- /dev/null
+++ b/idrop-web/web-app/images/silk/font.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/font_add.png b/idrop-web/web-app/images/silk/font_add.png
new file mode 100644
index 0000000..b709eba
--- /dev/null
+++ b/idrop-web/web-app/images/silk/font_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/font_delete.png b/idrop-web/web-app/images/silk/font_delete.png
new file mode 100644
index 0000000..1d6124d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/font_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/font_go.png b/idrop-web/web-app/images/silk/font_go.png
new file mode 100644
index 0000000..75eba80
--- /dev/null
+++ b/idrop-web/web-app/images/silk/font_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/group.png b/idrop-web/web-app/images/silk/group.png
new file mode 100644
index 0000000..7fb4e1f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/group.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/group_add.png b/idrop-web/web-app/images/silk/group_add.png
new file mode 100644
index 0000000..06c5350
--- /dev/null
+++ b/idrop-web/web-app/images/silk/group_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/group_delete.png b/idrop-web/web-app/images/silk/group_delete.png
new file mode 100644
index 0000000..4489ca2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/group_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/group_edit.png b/idrop-web/web-app/images/silk/group_edit.png
new file mode 100644
index 0000000..c88b945
--- /dev/null
+++ b/idrop-web/web-app/images/silk/group_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/group_error.png b/idrop-web/web-app/images/silk/group_error.png
new file mode 100644
index 0000000..7364a13
--- /dev/null
+++ b/idrop-web/web-app/images/silk/group_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/group_gear.png b/idrop-web/web-app/images/silk/group_gear.png
new file mode 100644
index 0000000..2544f2e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/group_gear.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/group_go.png b/idrop-web/web-app/images/silk/group_go.png
new file mode 100644
index 0000000..1f52333
--- /dev/null
+++ b/idrop-web/web-app/images/silk/group_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/group_key.png b/idrop-web/web-app/images/silk/group_key.png
new file mode 100644
index 0000000..257f111
--- /dev/null
+++ b/idrop-web/web-app/images/silk/group_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/group_link.png b/idrop-web/web-app/images/silk/group_link.png
new file mode 100644
index 0000000..c77ed88
--- /dev/null
+++ b/idrop-web/web-app/images/silk/group_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/heart.png b/idrop-web/web-app/images/silk/heart.png
new file mode 100644
index 0000000..d9ee53e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/heart.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/heart_add.png b/idrop-web/web-app/images/silk/heart_add.png
new file mode 100644
index 0000000..d4195ff
--- /dev/null
+++ b/idrop-web/web-app/images/silk/heart_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/heart_delete.png b/idrop-web/web-app/images/silk/heart_delete.png
new file mode 100644
index 0000000..ce523e3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/heart_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/help.png b/idrop-web/web-app/images/silk/help.png
new file mode 100644
index 0000000..5c87017
--- /dev/null
+++ b/idrop-web/web-app/images/silk/help.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/hourglass.png b/idrop-web/web-app/images/silk/hourglass.png
new file mode 100644
index 0000000..57b03ce
--- /dev/null
+++ b/idrop-web/web-app/images/silk/hourglass.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/hourglass_add.png b/idrop-web/web-app/images/silk/hourglass_add.png
new file mode 100644
index 0000000..170dfff
--- /dev/null
+++ b/idrop-web/web-app/images/silk/hourglass_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/hourglass_delete.png b/idrop-web/web-app/images/silk/hourglass_delete.png
new file mode 100644
index 0000000..4b1337b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/hourglass_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/hourglass_go.png b/idrop-web/web-app/images/silk/hourglass_go.png
new file mode 100644
index 0000000..b2d3a98
--- /dev/null
+++ b/idrop-web/web-app/images/silk/hourglass_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/hourglass_link.png b/idrop-web/web-app/images/silk/hourglass_link.png
new file mode 100644
index 0000000..ecc59b0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/hourglass_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/house.png b/idrop-web/web-app/images/silk/house.png
new file mode 100644
index 0000000..fed6221
--- /dev/null
+++ b/idrop-web/web-app/images/silk/house.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/house_go.png b/idrop-web/web-app/images/silk/house_go.png
new file mode 100644
index 0000000..5457dbd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/house_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/house_link.png b/idrop-web/web-app/images/silk/house_link.png
new file mode 100644
index 0000000..be2c271
--- /dev/null
+++ b/idrop-web/web-app/images/silk/house_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/html.png b/idrop-web/web-app/images/silk/html.png
new file mode 100644
index 0000000..55d1072
--- /dev/null
+++ b/idrop-web/web-app/images/silk/html.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/html_add.png b/idrop-web/web-app/images/silk/html_add.png
new file mode 100644
index 0000000..f1c08b7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/html_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/html_delete.png b/idrop-web/web-app/images/silk/html_delete.png
new file mode 100644
index 0000000..1bd2848
--- /dev/null
+++ b/idrop-web/web-app/images/silk/html_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/html_go.png b/idrop-web/web-app/images/silk/html_go.png
new file mode 100644
index 0000000..a95cede
--- /dev/null
+++ b/idrop-web/web-app/images/silk/html_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/html_valid.png b/idrop-web/web-app/images/silk/html_valid.png
new file mode 100644
index 0000000..71cec92
--- /dev/null
+++ b/idrop-web/web-app/images/silk/html_valid.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/image.png b/idrop-web/web-app/images/silk/image.png
new file mode 100644
index 0000000..fc3c393
--- /dev/null
+++ b/idrop-web/web-app/images/silk/image.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/image_add.png b/idrop-web/web-app/images/silk/image_add.png
new file mode 100644
index 0000000..fc5d613
--- /dev/null
+++ b/idrop-web/web-app/images/silk/image_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/image_delete.png b/idrop-web/web-app/images/silk/image_delete.png
new file mode 100644
index 0000000..c260e1d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/image_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/image_edit.png b/idrop-web/web-app/images/silk/image_edit.png
new file mode 100644
index 0000000..0aa4cc6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/image_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/image_link.png b/idrop-web/web-app/images/silk/image_link.png
new file mode 100644
index 0000000..4bdb354
--- /dev/null
+++ b/idrop-web/web-app/images/silk/image_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/images.png b/idrop-web/web-app/images/silk/images.png
new file mode 100644
index 0000000..184860d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/images.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/information.png b/idrop-web/web-app/images/silk/information.png
new file mode 100644
index 0000000..12cd1ae
--- /dev/null
+++ b/idrop-web/web-app/images/silk/information.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ipod.png b/idrop-web/web-app/images/silk/ipod.png
new file mode 100644
index 0000000..3f768da
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ipod.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ipod_cast.png b/idrop-web/web-app/images/silk/ipod_cast.png
new file mode 100644
index 0000000..6f6d340
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ipod_cast.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ipod_cast_add.png b/idrop-web/web-app/images/silk/ipod_cast_add.png
new file mode 100644
index 0000000..c3257f5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ipod_cast_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ipod_cast_delete.png b/idrop-web/web-app/images/silk/ipod_cast_delete.png
new file mode 100644
index 0000000..377ab69
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ipod_cast_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ipod_sound.png b/idrop-web/web-app/images/silk/ipod_sound.png
new file mode 100644
index 0000000..fef6e8b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ipod_sound.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/joystick.png b/idrop-web/web-app/images/silk/joystick.png
new file mode 100644
index 0000000..62168f5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/joystick.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/joystick_add.png b/idrop-web/web-app/images/silk/joystick_add.png
new file mode 100644
index 0000000..77e7107
--- /dev/null
+++ b/idrop-web/web-app/images/silk/joystick_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/joystick_delete.png b/idrop-web/web-app/images/silk/joystick_delete.png
new file mode 100644
index 0000000..5d44b59
--- /dev/null
+++ b/idrop-web/web-app/images/silk/joystick_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/joystick_error.png b/idrop-web/web-app/images/silk/joystick_error.png
new file mode 100644
index 0000000..b32149e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/joystick_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/key.png b/idrop-web/web-app/images/silk/key.png
new file mode 100644
index 0000000..4ec1a92
--- /dev/null
+++ b/idrop-web/web-app/images/silk/key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/key_add.png b/idrop-web/web-app/images/silk/key_add.png
new file mode 100644
index 0000000..d407403
--- /dev/null
+++ b/idrop-web/web-app/images/silk/key_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/key_delete.png b/idrop-web/web-app/images/silk/key_delete.png
new file mode 100644
index 0000000..00dec80
--- /dev/null
+++ b/idrop-web/web-app/images/silk/key_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/key_go.png b/idrop-web/web-app/images/silk/key_go.png
new file mode 100644
index 0000000..30b0dc3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/key_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/keyboard.png b/idrop-web/web-app/images/silk/keyboard.png
new file mode 100644
index 0000000..898d402
--- /dev/null
+++ b/idrop-web/web-app/images/silk/keyboard.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/keyboard_add.png b/idrop-web/web-app/images/silk/keyboard_add.png
new file mode 100644
index 0000000..26938dd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/keyboard_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/keyboard_delete.png b/idrop-web/web-app/images/silk/keyboard_delete.png
new file mode 100644
index 0000000..1786ed5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/keyboard_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/keyboard_magnify.png b/idrop-web/web-app/images/silk/keyboard_magnify.png
new file mode 100644
index 0000000..928fc17
--- /dev/null
+++ b/idrop-web/web-app/images/silk/keyboard_magnify.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/layers.png b/idrop-web/web-app/images/silk/layers.png
new file mode 100644
index 0000000..00818f6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/layers.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/layout.png b/idrop-web/web-app/images/silk/layout.png
new file mode 100644
index 0000000..ea086b0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/layout.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/layout_add.png b/idrop-web/web-app/images/silk/layout_add.png
new file mode 100644
index 0000000..6203722
--- /dev/null
+++ b/idrop-web/web-app/images/silk/layout_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/layout_content.png b/idrop-web/web-app/images/silk/layout_content.png
new file mode 100644
index 0000000..b4aaad9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/layout_content.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/layout_delete.png b/idrop-web/web-app/images/silk/layout_delete.png
new file mode 100644
index 0000000..4bd45f1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/layout_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/layout_edit.png b/idrop-web/web-app/images/silk/layout_edit.png
new file mode 100644
index 0000000..ab3100b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/layout_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/layout_error.png b/idrop-web/web-app/images/silk/layout_error.png
new file mode 100644
index 0000000..5b5acea
--- /dev/null
+++ b/idrop-web/web-app/images/silk/layout_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/layout_header.png b/idrop-web/web-app/images/silk/layout_header.png
new file mode 100644
index 0000000..c6ea7f2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/layout_header.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/layout_link.png b/idrop-web/web-app/images/silk/layout_link.png
new file mode 100644
index 0000000..3445d42
--- /dev/null
+++ b/idrop-web/web-app/images/silk/layout_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/layout_sidebar.png b/idrop-web/web-app/images/silk/layout_sidebar.png
new file mode 100644
index 0000000..3be27bb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/layout_sidebar.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lightbulb.png b/idrop-web/web-app/images/silk/lightbulb.png
new file mode 100644
index 0000000..d22fde8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lightbulb.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lightbulb_add.png b/idrop-web/web-app/images/silk/lightbulb_add.png
new file mode 100644
index 0000000..0dd848b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lightbulb_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lightbulb_delete.png b/idrop-web/web-app/images/silk/lightbulb_delete.png
new file mode 100644
index 0000000..f4781da
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lightbulb_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lightbulb_off.png b/idrop-web/web-app/images/silk/lightbulb_off.png
new file mode 100644
index 0000000..e95b8c5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lightbulb_off.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lightning.png b/idrop-web/web-app/images/silk/lightning.png
new file mode 100644
index 0000000..9680afd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lightning.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lightning_add.png b/idrop-web/web-app/images/silk/lightning_add.png
new file mode 100644
index 0000000..dac3c90
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lightning_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lightning_delete.png b/idrop-web/web-app/images/silk/lightning_delete.png
new file mode 100644
index 0000000..dfe2770
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lightning_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lightning_go.png b/idrop-web/web-app/images/silk/lightning_go.png
new file mode 100644
index 0000000..29039e6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lightning_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/link.png b/idrop-web/web-app/images/silk/link.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/link_add.png b/idrop-web/web-app/images/silk/link_add.png
new file mode 100644
index 0000000..00be352
--- /dev/null
+++ b/idrop-web/web-app/images/silk/link_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/link_break.png b/idrop-web/web-app/images/silk/link_break.png
new file mode 100644
index 0000000..5235753
--- /dev/null
+++ b/idrop-web/web-app/images/silk/link_break.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/link_delete.png b/idrop-web/web-app/images/silk/link_delete.png
new file mode 100644
index 0000000..f66e297
--- /dev/null
+++ b/idrop-web/web-app/images/silk/link_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/link_edit.png b/idrop-web/web-app/images/silk/link_edit.png
new file mode 100644
index 0000000..5b3aed0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/link_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/link_error.png b/idrop-web/web-app/images/silk/link_error.png
new file mode 100644
index 0000000..ab694b1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/link_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/link_go.png b/idrop-web/web-app/images/silk/link_go.png
new file mode 100644
index 0000000..ae8cae8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/link_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lock.png b/idrop-web/web-app/images/silk/lock.png
new file mode 100644
index 0000000..2ebc4f6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lock.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lock_add.png b/idrop-web/web-app/images/silk/lock_add.png
new file mode 100644
index 0000000..a7b566b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lock_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lock_break.png b/idrop-web/web-app/images/silk/lock_break.png
new file mode 100644
index 0000000..13578ab
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lock_break.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lock_delete.png b/idrop-web/web-app/images/silk/lock_delete.png
new file mode 100644
index 0000000..ecb50a9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lock_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lock_edit.png b/idrop-web/web-app/images/silk/lock_edit.png
new file mode 100644
index 0000000..116aa5b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lock_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lock_go.png b/idrop-web/web-app/images/silk/lock_go.png
new file mode 100644
index 0000000..8c7c89b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lock_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lock_open.png b/idrop-web/web-app/images/silk/lock_open.png
new file mode 100644
index 0000000..a471765
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lock_open.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lorry.png b/idrop-web/web-app/images/silk/lorry.png
new file mode 100644
index 0000000..8f95f5a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lorry.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lorry_add.png b/idrop-web/web-app/images/silk/lorry_add.png
new file mode 100644
index 0000000..a2c5124
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lorry_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lorry_delete.png b/idrop-web/web-app/images/silk/lorry_delete.png
new file mode 100644
index 0000000..66217f5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lorry_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lorry_error.png b/idrop-web/web-app/images/silk/lorry_error.png
new file mode 100644
index 0000000..3619ead
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lorry_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lorry_flatbed.png b/idrop-web/web-app/images/silk/lorry_flatbed.png
new file mode 100644
index 0000000..8b20f55
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lorry_flatbed.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lorry_go.png b/idrop-web/web-app/images/silk/lorry_go.png
new file mode 100644
index 0000000..1c296a6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lorry_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/lorry_link.png b/idrop-web/web-app/images/silk/lorry_link.png
new file mode 100644
index 0000000..5e6663e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/lorry_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/magifier_zoom_out.png b/idrop-web/web-app/images/silk/magifier_zoom_out.png
new file mode 100644
index 0000000..81f2819
--- /dev/null
+++ b/idrop-web/web-app/images/silk/magifier_zoom_out.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/magnifier.png b/idrop-web/web-app/images/silk/magnifier.png
new file mode 100644
index 0000000..cf3d97f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/magnifier.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/magnifier_zoom_in.png b/idrop-web/web-app/images/silk/magnifier_zoom_in.png
new file mode 100644
index 0000000..af4fe07
--- /dev/null
+++ b/idrop-web/web-app/images/silk/magnifier_zoom_in.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/male.png b/idrop-web/web-app/images/silk/male.png
new file mode 100644
index 0000000..25d6ea9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/male.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/map.png b/idrop-web/web-app/images/silk/map.png
new file mode 100644
index 0000000..f90ef25
--- /dev/null
+++ b/idrop-web/web-app/images/silk/map.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/map_add.png b/idrop-web/web-app/images/silk/map_add.png
new file mode 100644
index 0000000..2b72da0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/map_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/map_delete.png b/idrop-web/web-app/images/silk/map_delete.png
new file mode 100644
index 0000000..e74402f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/map_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/map_edit.png b/idrop-web/web-app/images/silk/map_edit.png
new file mode 100644
index 0000000..93d4d7e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/map_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/map_go.png b/idrop-web/web-app/images/silk/map_go.png
new file mode 100644
index 0000000..11eab26
--- /dev/null
+++ b/idrop-web/web-app/images/silk/map_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/map_magnify.png b/idrop-web/web-app/images/silk/map_magnify.png
new file mode 100644
index 0000000..7184c9d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/map_magnify.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_bronze_1.png b/idrop-web/web-app/images/silk/medal_bronze_1.png
new file mode 100644
index 0000000..5f8a6d6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_bronze_1.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_bronze_2.png b/idrop-web/web-app/images/silk/medal_bronze_2.png
new file mode 100644
index 0000000..623d68c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_bronze_2.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_bronze_3.png b/idrop-web/web-app/images/silk/medal_bronze_3.png
new file mode 100644
index 0000000..ed3f43e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_bronze_3.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_bronze_add.png b/idrop-web/web-app/images/silk/medal_bronze_add.png
new file mode 100644
index 0000000..8487b2c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_bronze_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_bronze_delete.png b/idrop-web/web-app/images/silk/medal_bronze_delete.png
new file mode 100644
index 0000000..d32aed7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_bronze_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_gold_1.png b/idrop-web/web-app/images/silk/medal_gold_1.png
new file mode 100644
index 0000000..87584dc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_gold_1.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_gold_2.png b/idrop-web/web-app/images/silk/medal_gold_2.png
new file mode 100644
index 0000000..fa3a15d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_gold_2.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_gold_3.png b/idrop-web/web-app/images/silk/medal_gold_3.png
new file mode 100644
index 0000000..ef1b08b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_gold_3.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_gold_add.png b/idrop-web/web-app/images/silk/medal_gold_add.png
new file mode 100644
index 0000000..dcade0d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_gold_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_gold_delete.png b/idrop-web/web-app/images/silk/medal_gold_delete.png
new file mode 100644
index 0000000..84b06d5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_gold_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_silver_1.png b/idrop-web/web-app/images/silk/medal_silver_1.png
new file mode 100644
index 0000000..75a64da
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_silver_1.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_silver_2.png b/idrop-web/web-app/images/silk/medal_silver_2.png
new file mode 100644
index 0000000..2e0fe75
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_silver_2.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_silver_3.png b/idrop-web/web-app/images/silk/medal_silver_3.png
new file mode 100644
index 0000000..e385b54
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_silver_3.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_silver_add.png b/idrop-web/web-app/images/silk/medal_silver_add.png
new file mode 100644
index 0000000..b0633fa
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_silver_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/medal_silver_delete.png b/idrop-web/web-app/images/silk/medal_silver_delete.png
new file mode 100644
index 0000000..06cab46
--- /dev/null
+++ b/idrop-web/web-app/images/silk/medal_silver_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/money.png b/idrop-web/web-app/images/silk/money.png
new file mode 100644
index 0000000..42c52d0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/money.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/money_add.png b/idrop-web/web-app/images/silk/money_add.png
new file mode 100644
index 0000000..588fa9d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/money_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/money_delete.png b/idrop-web/web-app/images/silk/money_delete.png
new file mode 100644
index 0000000..eae2c52
--- /dev/null
+++ b/idrop-web/web-app/images/silk/money_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/money_dollar.png b/idrop-web/web-app/images/silk/money_dollar.png
new file mode 100644
index 0000000..59af163
--- /dev/null
+++ b/idrop-web/web-app/images/silk/money_dollar.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/money_euro.png b/idrop-web/web-app/images/silk/money_euro.png
new file mode 100644
index 0000000..b322ba9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/money_euro.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/money_pound.png b/idrop-web/web-app/images/silk/money_pound.png
new file mode 100644
index 0000000..b711364
--- /dev/null
+++ b/idrop-web/web-app/images/silk/money_pound.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/money_yen.png b/idrop-web/web-app/images/silk/money_yen.png
new file mode 100644
index 0000000..228a677
--- /dev/null
+++ b/idrop-web/web-app/images/silk/money_yen.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/monitor.png b/idrop-web/web-app/images/silk/monitor.png
new file mode 100644
index 0000000..d040bd0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/monitor.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/monitor_add.png b/idrop-web/web-app/images/silk/monitor_add.png
new file mode 100644
index 0000000..a818066
--- /dev/null
+++ b/idrop-web/web-app/images/silk/monitor_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/monitor_delete.png b/idrop-web/web-app/images/silk/monitor_delete.png
new file mode 100644
index 0000000..3733256
--- /dev/null
+++ b/idrop-web/web-app/images/silk/monitor_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/monitor_edit.png b/idrop-web/web-app/images/silk/monitor_edit.png
new file mode 100644
index 0000000..f772c56
--- /dev/null
+++ b/idrop-web/web-app/images/silk/monitor_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/monitor_error.png b/idrop-web/web-app/images/silk/monitor_error.png
new file mode 100644
index 0000000..270c501
--- /dev/null
+++ b/idrop-web/web-app/images/silk/monitor_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/monitor_go.png b/idrop-web/web-app/images/silk/monitor_go.png
new file mode 100644
index 0000000..8af3eda
--- /dev/null
+++ b/idrop-web/web-app/images/silk/monitor_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/monitor_lightning.png b/idrop-web/web-app/images/silk/monitor_lightning.png
new file mode 100644
index 0000000..06e53a9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/monitor_lightning.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/monitor_link.png b/idrop-web/web-app/images/silk/monitor_link.png
new file mode 100644
index 0000000..a014b02
--- /dev/null
+++ b/idrop-web/web-app/images/silk/monitor_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/mouse.png b/idrop-web/web-app/images/silk/mouse.png
new file mode 100644
index 0000000..63a92fa
--- /dev/null
+++ b/idrop-web/web-app/images/silk/mouse.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/mouse_add.png b/idrop-web/web-app/images/silk/mouse_add.png
new file mode 100644
index 0000000..65bcab5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/mouse_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/mouse_delete.png b/idrop-web/web-app/images/silk/mouse_delete.png
new file mode 100644
index 0000000..7286566
--- /dev/null
+++ b/idrop-web/web-app/images/silk/mouse_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/mouse_error.png b/idrop-web/web-app/images/silk/mouse_error.png
new file mode 100644
index 0000000..bcc1562
--- /dev/null
+++ b/idrop-web/web-app/images/silk/mouse_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/music.png b/idrop-web/web-app/images/silk/music.png
new file mode 100644
index 0000000..a8b3ede
--- /dev/null
+++ b/idrop-web/web-app/images/silk/music.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/new.png b/idrop-web/web-app/images/silk/new.png
new file mode 100644
index 0000000..6a9bf03
--- /dev/null
+++ b/idrop-web/web-app/images/silk/new.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/newspaper.png b/idrop-web/web-app/images/silk/newspaper.png
new file mode 100644
index 0000000..6a2ecce
--- /dev/null
+++ b/idrop-web/web-app/images/silk/newspaper.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/newspaper_add.png b/idrop-web/web-app/images/silk/newspaper_add.png
new file mode 100644
index 0000000..8140e8c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/newspaper_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/newspaper_delete.png b/idrop-web/web-app/images/silk/newspaper_delete.png
new file mode 100644
index 0000000..bde96ce
--- /dev/null
+++ b/idrop-web/web-app/images/silk/newspaper_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/newspaper_go.png b/idrop-web/web-app/images/silk/newspaper_go.png
new file mode 100644
index 0000000..fd61428
--- /dev/null
+++ b/idrop-web/web-app/images/silk/newspaper_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/newspaper_link.png b/idrop-web/web-app/images/silk/newspaper_link.png
new file mode 100644
index 0000000..99e57cb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/newspaper_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/note.png b/idrop-web/web-app/images/silk/note.png
new file mode 100644
index 0000000..244e6ca
--- /dev/null
+++ b/idrop-web/web-app/images/silk/note.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/note_add.png b/idrop-web/web-app/images/silk/note_add.png
new file mode 100644
index 0000000..abdad91
--- /dev/null
+++ b/idrop-web/web-app/images/silk/note_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/note_delete.png b/idrop-web/web-app/images/silk/note_delete.png
new file mode 100644
index 0000000..8a1f0ff
--- /dev/null
+++ b/idrop-web/web-app/images/silk/note_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/note_edit.png b/idrop-web/web-app/images/silk/note_edit.png
new file mode 100644
index 0000000..291bfc7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/note_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/note_error.png b/idrop-web/web-app/images/silk/note_error.png
new file mode 100644
index 0000000..896dadf
--- /dev/null
+++ b/idrop-web/web-app/images/silk/note_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/note_go.png b/idrop-web/web-app/images/silk/note_go.png
new file mode 100644
index 0000000..49e54fd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/note_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/overlays.png b/idrop-web/web-app/images/silk/overlays.png
new file mode 100644
index 0000000..ab3100b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/overlays.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/package.png b/idrop-web/web-app/images/silk/package.png
new file mode 100644
index 0000000..da3c2a2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/package.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/package_add.png b/idrop-web/web-app/images/silk/package_add.png
new file mode 100644
index 0000000..9c8a9da
--- /dev/null
+++ b/idrop-web/web-app/images/silk/package_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/package_delete.png b/idrop-web/web-app/images/silk/package_delete.png
new file mode 100644
index 0000000..86f7fbc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/package_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/package_go.png b/idrop-web/web-app/images/silk/package_go.png
new file mode 100644
index 0000000..aace63a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/package_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/package_green.png b/idrop-web/web-app/images/silk/package_green.png
new file mode 100644
index 0000000..25b28bb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/package_green.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/package_link.png b/idrop-web/web-app/images/silk/package_link.png
new file mode 100644
index 0000000..48e7ab5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/package_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page.png b/idrop-web/web-app/images/silk/page.png
new file mode 100644
index 0000000..03ddd79
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_add.png b/idrop-web/web-app/images/silk/page_add.png
new file mode 100644
index 0000000..d5bfa07
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_attach.png b/idrop-web/web-app/images/silk/page_attach.png
new file mode 100644
index 0000000..89ee2da
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_attach.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_code.png b/idrop-web/web-app/images/silk/page_code.png
new file mode 100644
index 0000000..f7ea904
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_code.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_copy.png b/idrop-web/web-app/images/silk/page_copy.png
new file mode 100644
index 0000000..195dc6d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_copy.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_delete.png b/idrop-web/web-app/images/silk/page_delete.png
new file mode 100644
index 0000000..3141467
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_edit.png b/idrop-web/web-app/images/silk/page_edit.png
new file mode 100644
index 0000000..046811e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_error.png b/idrop-web/web-app/images/silk/page_error.png
new file mode 100644
index 0000000..f07f449
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_excel.png b/idrop-web/web-app/images/silk/page_excel.png
new file mode 100644
index 0000000..eb6158e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_excel.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_find.png b/idrop-web/web-app/images/silk/page_find.png
new file mode 100644
index 0000000..2f19388
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_find.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_gear.png b/idrop-web/web-app/images/silk/page_gear.png
new file mode 100644
index 0000000..8e83281
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_gear.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_go.png b/idrop-web/web-app/images/silk/page_go.png
new file mode 100644
index 0000000..80fe1ed
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_green.png b/idrop-web/web-app/images/silk/page_green.png
new file mode 100644
index 0000000..de8e003
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_green.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_key.png b/idrop-web/web-app/images/silk/page_key.png
new file mode 100644
index 0000000..d6626cb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_lightning.png b/idrop-web/web-app/images/silk/page_lightning.png
new file mode 100644
index 0000000..7e56870
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_lightning.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_link.png b/idrop-web/web-app/images/silk/page_link.png
new file mode 100644
index 0000000..312eab0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_paintbrush.png b/idrop-web/web-app/images/silk/page_paintbrush.png
new file mode 100644
index 0000000..246a2f0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_paintbrush.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_paste.png b/idrop-web/web-app/images/silk/page_paste.png
new file mode 100644
index 0000000..968f073
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_paste.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_red.png b/idrop-web/web-app/images/silk/page_red.png
new file mode 100644
index 0000000..0b18247
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_red.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_refresh.png b/idrop-web/web-app/images/silk/page_refresh.png
new file mode 100644
index 0000000..cf347c7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_refresh.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_save.png b/idrop-web/web-app/images/silk/page_save.png
new file mode 100644
index 0000000..caea546
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_save.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white.png b/idrop-web/web-app/images/silk/page_white.png
new file mode 100644
index 0000000..8b8b1ca
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_acrobat.png b/idrop-web/web-app/images/silk/page_white_acrobat.png
new file mode 100644
index 0000000..8f8095e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_acrobat.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_actionscript.png b/idrop-web/web-app/images/silk/page_white_actionscript.png
new file mode 100644
index 0000000..159b240
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_actionscript.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_add.png b/idrop-web/web-app/images/silk/page_white_add.png
new file mode 100644
index 0000000..aa23dde
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_c.png b/idrop-web/web-app/images/silk/page_white_c.png
new file mode 100644
index 0000000..34a05cc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_c.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_camera.png b/idrop-web/web-app/images/silk/page_white_camera.png
new file mode 100644
index 0000000..f501a59
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_camera.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_cd.png b/idrop-web/web-app/images/silk/page_white_cd.png
new file mode 100644
index 0000000..848bdaf
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_cd.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_code.png b/idrop-web/web-app/images/silk/page_white_code.png
new file mode 100644
index 0000000..0c76bd1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_code.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_code_red.png b/idrop-web/web-app/images/silk/page_white_code_red.png
new file mode 100644
index 0000000..87a6914
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_code_red.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_coldfusion.png b/idrop-web/web-app/images/silk/page_white_coldfusion.png
new file mode 100644
index 0000000..c66011f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_coldfusion.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_compressed.png b/idrop-web/web-app/images/silk/page_white_compressed.png
new file mode 100644
index 0000000..2b6b100
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_compressed.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_copy.png b/idrop-web/web-app/images/silk/page_white_copy.png
new file mode 100644
index 0000000..a9f31a2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_copy.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_cplusplus.png b/idrop-web/web-app/images/silk/page_white_cplusplus.png
new file mode 100644
index 0000000..a87cf84
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_cplusplus.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_csharp.png b/idrop-web/web-app/images/silk/page_white_csharp.png
new file mode 100644
index 0000000..ffb8fc9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_csharp.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_cup.png b/idrop-web/web-app/images/silk/page_white_cup.png
new file mode 100644
index 0000000..0a7d6f4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_cup.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_database.png b/idrop-web/web-app/images/silk/page_white_database.png
new file mode 100644
index 0000000..bddba1f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_database.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_delete.png b/idrop-web/web-app/images/silk/page_white_delete.png
new file mode 100644
index 0000000..af1ecaf
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_dvd.png b/idrop-web/web-app/images/silk/page_white_dvd.png
new file mode 100644
index 0000000..4cc537a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_dvd.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_edit.png b/idrop-web/web-app/images/silk/page_white_edit.png
new file mode 100644
index 0000000..b93e776
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_error.png b/idrop-web/web-app/images/silk/page_white_error.png
new file mode 100644
index 0000000..9fc5a0a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_excel.png b/idrop-web/web-app/images/silk/page_white_excel.png
new file mode 100644
index 0000000..b977d7e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_excel.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_find.png b/idrop-web/web-app/images/silk/page_white_find.png
new file mode 100644
index 0000000..5818436
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_find.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_flash.png b/idrop-web/web-app/images/silk/page_white_flash.png
new file mode 100644
index 0000000..5769120
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_flash.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_freehand.png b/idrop-web/web-app/images/silk/page_white_freehand.png
new file mode 100644
index 0000000..8d719df
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_freehand.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_gear.png b/idrop-web/web-app/images/silk/page_white_gear.png
new file mode 100644
index 0000000..106f5aa
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_gear.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_get.png b/idrop-web/web-app/images/silk/page_white_get.png
new file mode 100644
index 0000000..e4a1ecb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_get.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_go.png b/idrop-web/web-app/images/silk/page_white_go.png
new file mode 100644
index 0000000..7e62a92
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_h.png b/idrop-web/web-app/images/silk/page_white_h.png
new file mode 100644
index 0000000..e902abb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_h.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_horizontal.png b/idrop-web/web-app/images/silk/page_white_horizontal.png
new file mode 100644
index 0000000..1d2d0a4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_horizontal.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_key.png b/idrop-web/web-app/images/silk/page_white_key.png
new file mode 100644
index 0000000..d616484
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_lightning.png b/idrop-web/web-app/images/silk/page_white_lightning.png
new file mode 100644
index 0000000..7215d1e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_lightning.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_link.png b/idrop-web/web-app/images/silk/page_white_link.png
new file mode 100644
index 0000000..bf7bd1c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_magnify.png b/idrop-web/web-app/images/silk/page_white_magnify.png
new file mode 100644
index 0000000..f6b74cc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_magnify.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_medal.png b/idrop-web/web-app/images/silk/page_white_medal.png
new file mode 100644
index 0000000..d3fffb6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_medal.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_office.png b/idrop-web/web-app/images/silk/page_white_office.png
new file mode 100644
index 0000000..a65bcb3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_office.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_paint.png b/idrop-web/web-app/images/silk/page_white_paint.png
new file mode 100644
index 0000000..23a37b8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_paint.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_paintbrush.png b/idrop-web/web-app/images/silk/page_white_paintbrush.png
new file mode 100644
index 0000000..f907e44
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_paintbrush.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_paste.png b/idrop-web/web-app/images/silk/page_white_paste.png
new file mode 100644
index 0000000..5b2cbb3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_paste.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_php.png b/idrop-web/web-app/images/silk/page_white_php.png
new file mode 100644
index 0000000..7868a25
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_php.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_picture.png b/idrop-web/web-app/images/silk/page_white_picture.png
new file mode 100644
index 0000000..134b669
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_picture.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_powerpoint.png b/idrop-web/web-app/images/silk/page_white_powerpoint.png
new file mode 100644
index 0000000..c4eff03
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_powerpoint.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_put.png b/idrop-web/web-app/images/silk/page_white_put.png
new file mode 100644
index 0000000..884ffd6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_put.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_ruby.png b/idrop-web/web-app/images/silk/page_white_ruby.png
new file mode 100644
index 0000000..f59b7c4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_ruby.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_stack.png b/idrop-web/web-app/images/silk/page_white_stack.png
new file mode 100644
index 0000000..44084ad
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_stack.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_star.png b/idrop-web/web-app/images/silk/page_white_star.png
new file mode 100644
index 0000000..3a1441c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_star.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_swoosh.png b/idrop-web/web-app/images/silk/page_white_swoosh.png
new file mode 100644
index 0000000..e770829
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_swoosh.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_text.png b/idrop-web/web-app/images/silk/page_white_text.png
new file mode 100644
index 0000000..813f712
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_text.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_text_width.png b/idrop-web/web-app/images/silk/page_white_text_width.png
new file mode 100644
index 0000000..d9cf132
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_text_width.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_tux.png b/idrop-web/web-app/images/silk/page_white_tux.png
new file mode 100644
index 0000000..52699bf
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_tux.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_vector.png b/idrop-web/web-app/images/silk/page_white_vector.png
new file mode 100644
index 0000000..4a05955
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_vector.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_visualstudio.png b/idrop-web/web-app/images/silk/page_white_visualstudio.png
new file mode 100644
index 0000000..a0a433d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_visualstudio.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_width.png b/idrop-web/web-app/images/silk/page_white_width.png
new file mode 100644
index 0000000..1eb8809
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_width.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_word.png b/idrop-web/web-app/images/silk/page_white_word.png
new file mode 100644
index 0000000..ae8ecbf
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_word.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_world.png b/idrop-web/web-app/images/silk/page_white_world.png
new file mode 100644
index 0000000..6ed2490
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_world.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_wrench.png b/idrop-web/web-app/images/silk/page_white_wrench.png
new file mode 100644
index 0000000..fecadd0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_wrench.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_white_zip.png b/idrop-web/web-app/images/silk/page_white_zip.png
new file mode 100644
index 0000000..fd4bbcc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_white_zip.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_word.png b/idrop-web/web-app/images/silk/page_word.png
new file mode 100644
index 0000000..834cdfa
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_word.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/page_world.png b/idrop-web/web-app/images/silk/page_world.png
new file mode 100644
index 0000000..b8895dd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/page_world.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/paintbrush.png b/idrop-web/web-app/images/silk/paintbrush.png
new file mode 100644
index 0000000..a3ecf87
--- /dev/null
+++ b/idrop-web/web-app/images/silk/paintbrush.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/paintcan.png b/idrop-web/web-app/images/silk/paintcan.png
new file mode 100644
index 0000000..f82a886
--- /dev/null
+++ b/idrop-web/web-app/images/silk/paintcan.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/palette.png b/idrop-web/web-app/images/silk/palette.png
new file mode 100644
index 0000000..73c5b3f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/palette.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/paste_plain.png b/idrop-web/web-app/images/silk/paste_plain.png
new file mode 100644
index 0000000..c0490eb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/paste_plain.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/paste_word.png b/idrop-web/web-app/images/silk/paste_word.png
new file mode 100644
index 0000000..f6b87f8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/paste_word.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/pencil.png b/idrop-web/web-app/images/silk/pencil.png
new file mode 100644
index 0000000..0bfecd5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/pencil.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/pencil_add.png b/idrop-web/web-app/images/silk/pencil_add.png
new file mode 100644
index 0000000..902bbe6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/pencil_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/pencil_delete.png b/idrop-web/web-app/images/silk/pencil_delete.png
new file mode 100644
index 0000000..d8944e6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/pencil_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/pencil_go.png b/idrop-web/web-app/images/silk/pencil_go.png
new file mode 100644
index 0000000..937bded
--- /dev/null
+++ b/idrop-web/web-app/images/silk/pencil_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/phone.png b/idrop-web/web-app/images/silk/phone.png
new file mode 100644
index 0000000..c39f162
--- /dev/null
+++ b/idrop-web/web-app/images/silk/phone.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/phone_add.png b/idrop-web/web-app/images/silk/phone_add.png
new file mode 100644
index 0000000..d3555e0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/phone_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/phone_delete.png b/idrop-web/web-app/images/silk/phone_delete.png
new file mode 100644
index 0000000..bbe4f8a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/phone_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/phone_sound.png b/idrop-web/web-app/images/silk/phone_sound.png
new file mode 100644
index 0000000..7fdf1c5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/phone_sound.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/photo.png b/idrop-web/web-app/images/silk/photo.png
new file mode 100644
index 0000000..6c2aaaa
--- /dev/null
+++ b/idrop-web/web-app/images/silk/photo.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/photo_add.png b/idrop-web/web-app/images/silk/photo_add.png
new file mode 100644
index 0000000..63cc355
--- /dev/null
+++ b/idrop-web/web-app/images/silk/photo_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/photo_delete.png b/idrop-web/web-app/images/silk/photo_delete.png
new file mode 100644
index 0000000..18b67df
--- /dev/null
+++ b/idrop-web/web-app/images/silk/photo_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/photo_link.png b/idrop-web/web-app/images/silk/photo_link.png
new file mode 100644
index 0000000..e6bb35f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/photo_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/photos.png b/idrop-web/web-app/images/silk/photos.png
new file mode 100644
index 0000000..8836fe6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/photos.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/picture.png b/idrop-web/web-app/images/silk/picture.png
new file mode 100644
index 0000000..4a158fe
--- /dev/null
+++ b/idrop-web/web-app/images/silk/picture.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/picture_add.png b/idrop-web/web-app/images/silk/picture_add.png
new file mode 100644
index 0000000..d6d3f85
--- /dev/null
+++ b/idrop-web/web-app/images/silk/picture_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/picture_delete.png b/idrop-web/web-app/images/silk/picture_delete.png
new file mode 100644
index 0000000..cca9f53
--- /dev/null
+++ b/idrop-web/web-app/images/silk/picture_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/picture_edit.png b/idrop-web/web-app/images/silk/picture_edit.png
new file mode 100644
index 0000000..9a70c34
--- /dev/null
+++ b/idrop-web/web-app/images/silk/picture_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/picture_empty.png b/idrop-web/web-app/images/silk/picture_empty.png
new file mode 100644
index 0000000..abd2b9b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/picture_empty.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/picture_error.png b/idrop-web/web-app/images/silk/picture_error.png
new file mode 100644
index 0000000..d41d90d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/picture_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/picture_go.png b/idrop-web/web-app/images/silk/picture_go.png
new file mode 100644
index 0000000..27c63c5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/picture_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/picture_key.png b/idrop-web/web-app/images/silk/picture_key.png
new file mode 100644
index 0000000..667086c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/picture_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/picture_link.png b/idrop-web/web-app/images/silk/picture_link.png
new file mode 100644
index 0000000..42dca74
--- /dev/null
+++ b/idrop-web/web-app/images/silk/picture_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/picture_save.png b/idrop-web/web-app/images/silk/picture_save.png
new file mode 100644
index 0000000..777fb5d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/picture_save.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/pictures.png b/idrop-web/web-app/images/silk/pictures.png
new file mode 100644
index 0000000..d9591c1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/pictures.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/pilcrow.png b/idrop-web/web-app/images/silk/pilcrow.png
new file mode 100644
index 0000000..95704fb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/pilcrow.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/pill.png b/idrop-web/web-app/images/silk/pill.png
new file mode 100644
index 0000000..f2bdef6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/pill.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/pill_add.png b/idrop-web/web-app/images/silk/pill_add.png
new file mode 100644
index 0000000..ac9c2df
--- /dev/null
+++ b/idrop-web/web-app/images/silk/pill_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/pill_delete.png b/idrop-web/web-app/images/silk/pill_delete.png
new file mode 100644
index 0000000..c61592e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/pill_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/pill_go.png b/idrop-web/web-app/images/silk/pill_go.png
new file mode 100644
index 0000000..e5c07d4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/pill_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/plugin.png b/idrop-web/web-app/images/silk/plugin.png
new file mode 100644
index 0000000..6187b15
--- /dev/null
+++ b/idrop-web/web-app/images/silk/plugin.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/plugin_add.png b/idrop-web/web-app/images/silk/plugin_add.png
new file mode 100644
index 0000000..ae43690
--- /dev/null
+++ b/idrop-web/web-app/images/silk/plugin_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/plugin_delete.png b/idrop-web/web-app/images/silk/plugin_delete.png
new file mode 100644
index 0000000..d9c3376
--- /dev/null
+++ b/idrop-web/web-app/images/silk/plugin_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/plugin_disabled.png b/idrop-web/web-app/images/silk/plugin_disabled.png
new file mode 100644
index 0000000..f4f6be5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/plugin_disabled.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/plugin_edit.png b/idrop-web/web-app/images/silk/plugin_edit.png
new file mode 100644
index 0000000..b6cb0ec
--- /dev/null
+++ b/idrop-web/web-app/images/silk/plugin_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/plugin_error.png b/idrop-web/web-app/images/silk/plugin_error.png
new file mode 100644
index 0000000..cff65d7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/plugin_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/plugin_go.png b/idrop-web/web-app/images/silk/plugin_go.png
new file mode 100644
index 0000000..41da991
--- /dev/null
+++ b/idrop-web/web-app/images/silk/plugin_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/plugin_link.png b/idrop-web/web-app/images/silk/plugin_link.png
new file mode 100644
index 0000000..445c188
--- /dev/null
+++ b/idrop-web/web-app/images/silk/plugin_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/printer.png b/idrop-web/web-app/images/silk/printer.png
new file mode 100644
index 0000000..a350d18
--- /dev/null
+++ b/idrop-web/web-app/images/silk/printer.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/printer_add.png b/idrop-web/web-app/images/silk/printer_add.png
new file mode 100644
index 0000000..d228d05
--- /dev/null
+++ b/idrop-web/web-app/images/silk/printer_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/printer_delete.png b/idrop-web/web-app/images/silk/printer_delete.png
new file mode 100644
index 0000000..1d8605f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/printer_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/printer_empty.png b/idrop-web/web-app/images/silk/printer_empty.png
new file mode 100644
index 0000000..94e8c16
--- /dev/null
+++ b/idrop-web/web-app/images/silk/printer_empty.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/printer_error.png b/idrop-web/web-app/images/silk/printer_error.png
new file mode 100644
index 0000000..279ebb0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/printer_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/rainbow.png b/idrop-web/web-app/images/silk/rainbow.png
new file mode 100644
index 0000000..5ede989
--- /dev/null
+++ b/idrop-web/web-app/images/silk/rainbow.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/report.png b/idrop-web/web-app/images/silk/report.png
new file mode 100644
index 0000000..779ad58
--- /dev/null
+++ b/idrop-web/web-app/images/silk/report.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/report_add.png b/idrop-web/web-app/images/silk/report_add.png
new file mode 100644
index 0000000..d5eac9b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/report_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/report_delete.png b/idrop-web/web-app/images/silk/report_delete.png
new file mode 100644
index 0000000..dcce0b6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/report_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/report_disk.png b/idrop-web/web-app/images/silk/report_disk.png
new file mode 100644
index 0000000..1c856cd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/report_disk.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/report_edit.png b/idrop-web/web-app/images/silk/report_edit.png
new file mode 100644
index 0000000..c61a6d8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/report_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/report_go.png b/idrop-web/web-app/images/silk/report_go.png
new file mode 100644
index 0000000..f35a979
--- /dev/null
+++ b/idrop-web/web-app/images/silk/report_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/report_key.png b/idrop-web/web-app/images/silk/report_key.png
new file mode 100644
index 0000000..90b758e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/report_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/report_link.png b/idrop-web/web-app/images/silk/report_link.png
new file mode 100644
index 0000000..23f2611
--- /dev/null
+++ b/idrop-web/web-app/images/silk/report_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/report_magnify.png b/idrop-web/web-app/images/silk/report_magnify.png
new file mode 100644
index 0000000..aeaa889
--- /dev/null
+++ b/idrop-web/web-app/images/silk/report_magnify.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/report_picture.png b/idrop-web/web-app/images/silk/report_picture.png
new file mode 100644
index 0000000..3a9a7e5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/report_picture.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/report_user.png b/idrop-web/web-app/images/silk/report_user.png
new file mode 100644
index 0000000..7766edd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/report_user.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/report_word.png b/idrop-web/web-app/images/silk/report_word.png
new file mode 100644
index 0000000..9951342
--- /dev/null
+++ b/idrop-web/web-app/images/silk/report_word.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/resultset_first.png b/idrop-web/web-app/images/silk/resultset_first.png
new file mode 100644
index 0000000..b03eaf8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/resultset_first.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/resultset_last.png b/idrop-web/web-app/images/silk/resultset_last.png
new file mode 100644
index 0000000..8ec8947
--- /dev/null
+++ b/idrop-web/web-app/images/silk/resultset_last.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/resultset_next.png b/idrop-web/web-app/images/silk/resultset_next.png
new file mode 100644
index 0000000..e252606
--- /dev/null
+++ b/idrop-web/web-app/images/silk/resultset_next.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/resultset_previous.png b/idrop-web/web-app/images/silk/resultset_previous.png
new file mode 100644
index 0000000..18f9cc1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/resultset_previous.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/rosette.png b/idrop-web/web-app/images/silk/rosette.png
new file mode 100644
index 0000000..f233bc7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/rosette.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/rss.png b/idrop-web/web-app/images/silk/rss.png
new file mode 100644
index 0000000..1dc6ff3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/rss.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/rss_add.png b/idrop-web/web-app/images/silk/rss_add.png
new file mode 100644
index 0000000..b590beb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/rss_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/rss_delete.png b/idrop-web/web-app/images/silk/rss_delete.png
new file mode 100644
index 0000000..9deb738
--- /dev/null
+++ b/idrop-web/web-app/images/silk/rss_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/rss_go.png b/idrop-web/web-app/images/silk/rss_go.png
new file mode 100644
index 0000000..43a86bf
--- /dev/null
+++ b/idrop-web/web-app/images/silk/rss_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/rss_valid.png b/idrop-web/web-app/images/silk/rss_valid.png
new file mode 100644
index 0000000..a6d0b0e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/rss_valid.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ruby.png b/idrop-web/web-app/images/silk/ruby.png
new file mode 100644
index 0000000..f763a16
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ruby.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ruby_add.png b/idrop-web/web-app/images/silk/ruby_add.png
new file mode 100644
index 0000000..a2cd648
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ruby_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ruby_delete.png b/idrop-web/web-app/images/silk/ruby_delete.png
new file mode 100644
index 0000000..3002263
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ruby_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ruby_gear.png b/idrop-web/web-app/images/silk/ruby_gear.png
new file mode 100644
index 0000000..4a10590
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ruby_gear.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ruby_get.png b/idrop-web/web-app/images/silk/ruby_get.png
new file mode 100644
index 0000000..f5203c7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ruby_get.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ruby_go.png b/idrop-web/web-app/images/silk/ruby_go.png
new file mode 100644
index 0000000..d8d276e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ruby_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ruby_key.png b/idrop-web/web-app/images/silk/ruby_key.png
new file mode 100644
index 0000000..451cfeb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ruby_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ruby_link.png b/idrop-web/web-app/images/silk/ruby_link.png
new file mode 100644
index 0000000..bf4be52
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ruby_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/ruby_put.png b/idrop-web/web-app/images/silk/ruby_put.png
new file mode 100644
index 0000000..e026323
--- /dev/null
+++ b/idrop-web/web-app/images/silk/ruby_put.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script.png b/idrop-web/web-app/images/silk/script.png
new file mode 100644
index 0000000..0f9ed4d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script_add.png b/idrop-web/web-app/images/silk/script_add.png
new file mode 100644
index 0000000..d650552
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script_code.png b/idrop-web/web-app/images/silk/script_code.png
new file mode 100644
index 0000000..63fe6ce
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script_code.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script_code_red.png b/idrop-web/web-app/images/silk/script_code_red.png
new file mode 100644
index 0000000..8fcf0f0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script_code_red.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script_delete.png b/idrop-web/web-app/images/silk/script_delete.png
new file mode 100644
index 0000000..e6500ce
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script_edit.png b/idrop-web/web-app/images/silk/script_edit.png
new file mode 100644
index 0000000..b4d31ce
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script_error.png b/idrop-web/web-app/images/silk/script_error.png
new file mode 100644
index 0000000..0491954
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script_gear.png b/idrop-web/web-app/images/silk/script_gear.png
new file mode 100644
index 0000000..56fcf84
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script_gear.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script_go.png b/idrop-web/web-app/images/silk/script_go.png
new file mode 100644
index 0000000..8e154e2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script_key.png b/idrop-web/web-app/images/silk/script_key.png
new file mode 100644
index 0000000..49bb24d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script_lightning.png b/idrop-web/web-app/images/silk/script_lightning.png
new file mode 100644
index 0000000..b3fa18c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script_lightning.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script_link.png b/idrop-web/web-app/images/silk/script_link.png
new file mode 100644
index 0000000..bdeb985
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script_palette.png b/idrop-web/web-app/images/silk/script_palette.png
new file mode 100644
index 0000000..6d46962
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script_palette.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/script_save.png b/idrop-web/web-app/images/silk/script_save.png
new file mode 100644
index 0000000..36216d8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/script_save.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server.png b/idrop-web/web-app/images/silk/server.png
new file mode 100644
index 0000000..720a237
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server_add.png b/idrop-web/web-app/images/silk/server_add.png
new file mode 100644
index 0000000..3f10a3a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server_chart.png b/idrop-web/web-app/images/silk/server_chart.png
new file mode 100644
index 0000000..1128d3f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server_chart.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server_compressed.png b/idrop-web/web-app/images/silk/server_compressed.png
new file mode 100644
index 0000000..bf49fad
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server_compressed.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server_connect.png b/idrop-web/web-app/images/silk/server_connect.png
new file mode 100644
index 0000000..49b2691
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server_connect.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server_database.png b/idrop-web/web-app/images/silk/server_database.png
new file mode 100644
index 0000000..b24e826
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server_database.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server_delete.png b/idrop-web/web-app/images/silk/server_delete.png
new file mode 100644
index 0000000..61e740f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server_edit.png b/idrop-web/web-app/images/silk/server_edit.png
new file mode 100644
index 0000000..dc76253
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server_error.png b/idrop-web/web-app/images/silk/server_error.png
new file mode 100644
index 0000000..f640256
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server_go.png b/idrop-web/web-app/images/silk/server_go.png
new file mode 100644
index 0000000..540c8e2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server_key.png b/idrop-web/web-app/images/silk/server_key.png
new file mode 100644
index 0000000..ecd5174
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server_lightning.png b/idrop-web/web-app/images/silk/server_lightning.png
new file mode 100644
index 0000000..b0f4e46
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server_lightning.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server_link.png b/idrop-web/web-app/images/silk/server_link.png
new file mode 100644
index 0000000..e8821df
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/server_uncompressed.png b/idrop-web/web-app/images/silk/server_uncompressed.png
new file mode 100644
index 0000000..86e8325
--- /dev/null
+++ b/idrop-web/web-app/images/silk/server_uncompressed.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shading.png b/idrop-web/web-app/images/silk/shading.png
new file mode 100644
index 0000000..09275f9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shading.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_align_bottom.png b/idrop-web/web-app/images/silk/shape_align_bottom.png
new file mode 100644
index 0000000..55d2694
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_align_bottom.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_align_center.png b/idrop-web/web-app/images/silk/shape_align_center.png
new file mode 100644
index 0000000..efe9a98
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_align_center.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_align_left.png b/idrop-web/web-app/images/silk/shape_align_left.png
new file mode 100644
index 0000000..aaedc41
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_align_left.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_align_middle.png b/idrop-web/web-app/images/silk/shape_align_middle.png
new file mode 100644
index 0000000..d350dd8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_align_middle.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_align_right.png b/idrop-web/web-app/images/silk/shape_align_right.png
new file mode 100644
index 0000000..ff556b6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_align_right.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_align_top.png b/idrop-web/web-app/images/silk/shape_align_top.png
new file mode 100644
index 0000000..1181b43
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_align_top.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_flip_horizontal.png b/idrop-web/web-app/images/silk/shape_flip_horizontal.png
new file mode 100644
index 0000000..8667c81
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_flip_horizontal.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_flip_vertical.png b/idrop-web/web-app/images/silk/shape_flip_vertical.png
new file mode 100644
index 0000000..0bd66d1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_flip_vertical.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_group.png b/idrop-web/web-app/images/silk/shape_group.png
new file mode 100644
index 0000000..bb2ff51
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_group.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_handles.png b/idrop-web/web-app/images/silk/shape_handles.png
new file mode 100644
index 0000000..ce27fe3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_handles.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_move_back.png b/idrop-web/web-app/images/silk/shape_move_back.png
new file mode 100644
index 0000000..a216ffd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_move_back.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_move_backwards.png b/idrop-web/web-app/images/silk/shape_move_backwards.png
new file mode 100644
index 0000000..ee3f9b2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_move_backwards.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_move_forwards.png b/idrop-web/web-app/images/silk/shape_move_forwards.png
new file mode 100644
index 0000000..cfe4493
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_move_forwards.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_move_front.png b/idrop-web/web-app/images/silk/shape_move_front.png
new file mode 100644
index 0000000..b4a4e3b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_move_front.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_rotate_anticlockwise.png b/idrop-web/web-app/images/silk/shape_rotate_anticlockwise.png
new file mode 100644
index 0000000..07a3020
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_rotate_anticlockwise.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_rotate_clockwise.png b/idrop-web/web-app/images/silk/shape_rotate_clockwise.png
new file mode 100644
index 0000000..b99db7d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_rotate_clockwise.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_square.png b/idrop-web/web-app/images/silk/shape_square.png
new file mode 100644
index 0000000..33af046
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_square.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_square_add.png b/idrop-web/web-app/images/silk/shape_square_add.png
new file mode 100644
index 0000000..31edfce
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_square_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_square_delete.png b/idrop-web/web-app/images/silk/shape_square_delete.png
new file mode 100644
index 0000000..ede912d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_square_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_square_edit.png b/idrop-web/web-app/images/silk/shape_square_edit.png
new file mode 100644
index 0000000..d28dc6b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_square_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_square_error.png b/idrop-web/web-app/images/silk/shape_square_error.png
new file mode 100644
index 0000000..0d0dcfa
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_square_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_square_go.png b/idrop-web/web-app/images/silk/shape_square_go.png
new file mode 100644
index 0000000..5a2ad90
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_square_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_square_key.png b/idrop-web/web-app/images/silk/shape_square_key.png
new file mode 100644
index 0000000..c34b982
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_square_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_square_link.png b/idrop-web/web-app/images/silk/shape_square_link.png
new file mode 100644
index 0000000..b885fcc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_square_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shape_ungroup.png b/idrop-web/web-app/images/silk/shape_ungroup.png
new file mode 100644
index 0000000..3a6f369
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shape_ungroup.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shield.png b/idrop-web/web-app/images/silk/shield.png
new file mode 100644
index 0000000..3cb4e25
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shield.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shield_add.png b/idrop-web/web-app/images/silk/shield_add.png
new file mode 100644
index 0000000..e20a1b4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shield_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shield_delete.png b/idrop-web/web-app/images/silk/shield_delete.png
new file mode 100644
index 0000000..22823a7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shield_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/shield_go.png b/idrop-web/web-app/images/silk/shield_go.png
new file mode 100644
index 0000000..e9bd852
--- /dev/null
+++ b/idrop-web/web-app/images/silk/shield_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sitemap.png b/idrop-web/web-app/images/silk/sitemap.png
new file mode 100644
index 0000000..ca779f3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sitemap.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sitemap_color.png b/idrop-web/web-app/images/silk/sitemap_color.png
new file mode 100644
index 0000000..c64582b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sitemap_color.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sound.png b/idrop-web/web-app/images/silk/sound.png
new file mode 100644
index 0000000..6056d23
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sound.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sound_add.png b/idrop-web/web-app/images/silk/sound_add.png
new file mode 100644
index 0000000..965c503
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sound_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sound_delete.png b/idrop-web/web-app/images/silk/sound_delete.png
new file mode 100644
index 0000000..ab9577a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sound_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sound_low.png b/idrop-web/web-app/images/silk/sound_low.png
new file mode 100644
index 0000000..4d91863
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sound_low.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sound_mute.png b/idrop-web/web-app/images/silk/sound_mute.png
new file mode 100644
index 0000000..b652d2a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sound_mute.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sound_none.png b/idrop-web/web-app/images/silk/sound_none.png
new file mode 100644
index 0000000..b497ebd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sound_none.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/spellcheck.png b/idrop-web/web-app/images/silk/spellcheck.png
new file mode 100644
index 0000000..ebc632d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/spellcheck.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sport_8ball.png b/idrop-web/web-app/images/silk/sport_8ball.png
new file mode 100644
index 0000000..4f627b7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sport_8ball.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sport_basketball.png b/idrop-web/web-app/images/silk/sport_basketball.png
new file mode 100644
index 0000000..f7a000b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sport_basketball.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sport_football.png b/idrop-web/web-app/images/silk/sport_football.png
new file mode 100644
index 0000000..199f0f7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sport_football.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sport_golf.png b/idrop-web/web-app/images/silk/sport_golf.png
new file mode 100644
index 0000000..e21fa44
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sport_golf.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sport_raquet.png b/idrop-web/web-app/images/silk/sport_raquet.png
new file mode 100644
index 0000000..f5e0f0c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sport_raquet.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sport_shuttlecock.png b/idrop-web/web-app/images/silk/sport_shuttlecock.png
new file mode 100644
index 0000000..917287f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sport_shuttlecock.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sport_soccer.png b/idrop-web/web-app/images/silk/sport_soccer.png
new file mode 100644
index 0000000..3eb1828
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sport_soccer.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sport_tennis.png b/idrop-web/web-app/images/silk/sport_tennis.png
new file mode 100644
index 0000000..e88a6ef
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sport_tennis.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/star.png b/idrop-web/web-app/images/silk/star.png
new file mode 100644
index 0000000..b88c857
--- /dev/null
+++ b/idrop-web/web-app/images/silk/star.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/status_away.png b/idrop-web/web-app/images/silk/status_away.png
new file mode 100644
index 0000000..70bcbcc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/status_away.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/status_busy.png b/idrop-web/web-app/images/silk/status_busy.png
new file mode 100644
index 0000000..987c806
--- /dev/null
+++ b/idrop-web/web-app/images/silk/status_busy.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/status_offline.png b/idrop-web/web-app/images/silk/status_offline.png
new file mode 100644
index 0000000..a88261a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/status_offline.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/status_online.png b/idrop-web/web-app/images/silk/status_online.png
new file mode 100644
index 0000000..947bd4b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/status_online.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/stop.png b/idrop-web/web-app/images/silk/stop.png
new file mode 100644
index 0000000..0cfd585
--- /dev/null
+++ b/idrop-web/web-app/images/silk/stop.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/style.png b/idrop-web/web-app/images/silk/style.png
new file mode 100644
index 0000000..81e41de
--- /dev/null
+++ b/idrop-web/web-app/images/silk/style.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/style_add.png b/idrop-web/web-app/images/silk/style_add.png
new file mode 100644
index 0000000..e0369c6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/style_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/style_delete.png b/idrop-web/web-app/images/silk/style_delete.png
new file mode 100644
index 0000000..640f187
--- /dev/null
+++ b/idrop-web/web-app/images/silk/style_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/style_edit.png b/idrop-web/web-app/images/silk/style_edit.png
new file mode 100644
index 0000000..25bb5b6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/style_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/style_go.png b/idrop-web/web-app/images/silk/style_go.png
new file mode 100644
index 0000000..25d6181
--- /dev/null
+++ b/idrop-web/web-app/images/silk/style_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/sum.png b/idrop-web/web-app/images/silk/sum.png
new file mode 100644
index 0000000..fd7b32e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/sum.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tab.png b/idrop-web/web-app/images/silk/tab.png
new file mode 100644
index 0000000..3d8207f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tab.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tab_add.png b/idrop-web/web-app/images/silk/tab_add.png
new file mode 100644
index 0000000..d3b9936
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tab_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tab_delete.png b/idrop-web/web-app/images/silk/tab_delete.png
new file mode 100644
index 0000000..100da2f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tab_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tab_edit.png b/idrop-web/web-app/images/silk/tab_edit.png
new file mode 100644
index 0000000..4c09c0f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tab_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tab_go.png b/idrop-web/web-app/images/silk/tab_go.png
new file mode 100644
index 0000000..844ce04
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tab_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table.png b/idrop-web/web-app/images/silk/table.png
new file mode 100644
index 0000000..abcd936
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_add.png b/idrop-web/web-app/images/silk/table_add.png
new file mode 100644
index 0000000..2a3e5c4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_delete.png b/idrop-web/web-app/images/silk/table_delete.png
new file mode 100644
index 0000000..b85916d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_edit.png b/idrop-web/web-app/images/silk/table_edit.png
new file mode 100644
index 0000000..bfcb024
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_error.png b/idrop-web/web-app/images/silk/table_error.png
new file mode 100644
index 0000000..589e92b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_gear.png b/idrop-web/web-app/images/silk/table_gear.png
new file mode 100644
index 0000000..cfc2702
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_gear.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_go.png b/idrop-web/web-app/images/silk/table_go.png
new file mode 100644
index 0000000..0528dfa
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_key.png b/idrop-web/web-app/images/silk/table_key.png
new file mode 100644
index 0000000..34e23e2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_lightning.png b/idrop-web/web-app/images/silk/table_lightning.png
new file mode 100644
index 0000000..612612b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_lightning.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_link.png b/idrop-web/web-app/images/silk/table_link.png
new file mode 100644
index 0000000..decac8a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_multiple.png b/idrop-web/web-app/images/silk/table_multiple.png
new file mode 100644
index 0000000..d76448e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_multiple.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_refresh.png b/idrop-web/web-app/images/silk/table_refresh.png
new file mode 100644
index 0000000..ab92010
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_refresh.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_relationship.png b/idrop-web/web-app/images/silk/table_relationship.png
new file mode 100644
index 0000000..28b8505
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_relationship.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_row_delete.png b/idrop-web/web-app/images/silk/table_row_delete.png
new file mode 100644
index 0000000..54c6969
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_row_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_row_insert.png b/idrop-web/web-app/images/silk/table_row_insert.png
new file mode 100644
index 0000000..ff5925e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_row_insert.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_save.png b/idrop-web/web-app/images/silk/table_save.png
new file mode 100644
index 0000000..25b74d1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_save.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/table_sort.png b/idrop-web/web-app/images/silk/table_sort.png
new file mode 100644
index 0000000..ed6785a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/table_sort.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tag.png b/idrop-web/web-app/images/silk/tag.png
new file mode 100644
index 0000000..e093032
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tag.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tag_blue.png b/idrop-web/web-app/images/silk/tag_blue.png
new file mode 100644
index 0000000..9757fc6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tag_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tag_blue_add.png b/idrop-web/web-app/images/silk/tag_blue_add.png
new file mode 100644
index 0000000..f135248
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tag_blue_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tag_blue_delete.png b/idrop-web/web-app/images/silk/tag_blue_delete.png
new file mode 100644
index 0000000..9fbae67
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tag_blue_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tag_blue_edit.png b/idrop-web/web-app/images/silk/tag_blue_edit.png
new file mode 100644
index 0000000..2a9f626
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tag_blue_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tag_green.png b/idrop-web/web-app/images/silk/tag_green.png
new file mode 100644
index 0000000..83ec984
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tag_green.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tag_orange.png b/idrop-web/web-app/images/silk/tag_orange.png
new file mode 100644
index 0000000..454a59f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tag_orange.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tag_pink.png b/idrop-web/web-app/images/silk/tag_pink.png
new file mode 100644
index 0000000..76e2296
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tag_pink.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tag_purple.png b/idrop-web/web-app/images/silk/tag_purple.png
new file mode 100644
index 0000000..ebaf0e8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tag_purple.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tag_red.png b/idrop-web/web-app/images/silk/tag_red.png
new file mode 100644
index 0000000..6ebb37d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tag_red.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tag_yellow.png b/idrop-web/web-app/images/silk/tag_yellow.png
new file mode 100644
index 0000000..83d1292
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tag_yellow.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/telephone.png b/idrop-web/web-app/images/silk/telephone.png
new file mode 100644
index 0000000..cecc436
--- /dev/null
+++ b/idrop-web/web-app/images/silk/telephone.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/telephone_add.png b/idrop-web/web-app/images/silk/telephone_add.png
new file mode 100644
index 0000000..5591cfc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/telephone_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/telephone_delete.png b/idrop-web/web-app/images/silk/telephone_delete.png
new file mode 100644
index 0000000..0013268
--- /dev/null
+++ b/idrop-web/web-app/images/silk/telephone_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/telephone_edit.png b/idrop-web/web-app/images/silk/telephone_edit.png
new file mode 100644
index 0000000..bcf6d7e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/telephone_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/telephone_error.png b/idrop-web/web-app/images/silk/telephone_error.png
new file mode 100644
index 0000000..d3ec3a1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/telephone_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/telephone_go.png b/idrop-web/web-app/images/silk/telephone_go.png
new file mode 100644
index 0000000..395c8fb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/telephone_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/telephone_key.png b/idrop-web/web-app/images/silk/telephone_key.png
new file mode 100644
index 0000000..cef5dec
--- /dev/null
+++ b/idrop-web/web-app/images/silk/telephone_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/telephone_link.png b/idrop-web/web-app/images/silk/telephone_link.png
new file mode 100644
index 0000000..ef1ee5d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/telephone_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/television.png b/idrop-web/web-app/images/silk/television.png
new file mode 100644
index 0000000..1738a4f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/television.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/television_add.png b/idrop-web/web-app/images/silk/television_add.png
new file mode 100644
index 0000000..2baaad9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/television_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/television_delete.png b/idrop-web/web-app/images/silk/television_delete.png
new file mode 100644
index 0000000..b9a5860
--- /dev/null
+++ b/idrop-web/web-app/images/silk/television_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_align_center.png b/idrop-web/web-app/images/silk/text_align_center.png
new file mode 100644
index 0000000..57beb38
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_align_center.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_align_justify.png b/idrop-web/web-app/images/silk/text_align_justify.png
new file mode 100644
index 0000000..2fbdd69
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_align_justify.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_align_left.png b/idrop-web/web-app/images/silk/text_align_left.png
new file mode 100644
index 0000000..6c8fcc1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_align_left.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_align_right.png b/idrop-web/web-app/images/silk/text_align_right.png
new file mode 100644
index 0000000..a150257
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_align_right.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_allcaps.png b/idrop-web/web-app/images/silk/text_allcaps.png
new file mode 100644
index 0000000..280fd44
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_allcaps.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_bold.png b/idrop-web/web-app/images/silk/text_bold.png
new file mode 100644
index 0000000..889ae80
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_bold.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_columns.png b/idrop-web/web-app/images/silk/text_columns.png
new file mode 100644
index 0000000..97b2e03
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_columns.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_dropcaps.png b/idrop-web/web-app/images/silk/text_dropcaps.png
new file mode 100644
index 0000000..dd65786
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_dropcaps.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_heading_1.png b/idrop-web/web-app/images/silk/text_heading_1.png
new file mode 100644
index 0000000..9c122e9
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_heading_1.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_heading_2.png b/idrop-web/web-app/images/silk/text_heading_2.png
new file mode 100644
index 0000000..fbd8765
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_heading_2.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_heading_3.png b/idrop-web/web-app/images/silk/text_heading_3.png
new file mode 100644
index 0000000..c7836cf
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_heading_3.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_heading_4.png b/idrop-web/web-app/images/silk/text_heading_4.png
new file mode 100644
index 0000000..4e929ea
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_heading_4.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_heading_5.png b/idrop-web/web-app/images/silk/text_heading_5.png
new file mode 100644
index 0000000..30cabeb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_heading_5.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_heading_6.png b/idrop-web/web-app/images/silk/text_heading_6.png
new file mode 100644
index 0000000..058170a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_heading_6.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_horizontalrule.png b/idrop-web/web-app/images/silk/text_horizontalrule.png
new file mode 100644
index 0000000..8dd1da1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_horizontalrule.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_indent.png b/idrop-web/web-app/images/silk/text_indent.png
new file mode 100644
index 0000000..9364532
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_indent.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_indent_remove.png b/idrop-web/web-app/images/silk/text_indent_remove.png
new file mode 100644
index 0000000..1651b07
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_indent_remove.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_italic.png b/idrop-web/web-app/images/silk/text_italic.png
new file mode 100644
index 0000000..8482ac8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_italic.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_kerning.png b/idrop-web/web-app/images/silk/text_kerning.png
new file mode 100644
index 0000000..377def6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_kerning.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_letter_omega.png b/idrop-web/web-app/images/silk/text_letter_omega.png
new file mode 100644
index 0000000..5075ec6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_letter_omega.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_letterspacing.png b/idrop-web/web-app/images/silk/text_letterspacing.png
new file mode 100644
index 0000000..41390f5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_letterspacing.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_linespacing.png b/idrop-web/web-app/images/silk/text_linespacing.png
new file mode 100644
index 0000000..1a91cbd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_linespacing.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_list_bullets.png b/idrop-web/web-app/images/silk/text_list_bullets.png
new file mode 100644
index 0000000..4a8672b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_list_bullets.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_list_numbers.png b/idrop-web/web-app/images/silk/text_list_numbers.png
new file mode 100644
index 0000000..33b0b8d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_list_numbers.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_lowercase.png b/idrop-web/web-app/images/silk/text_lowercase.png
new file mode 100644
index 0000000..382a102
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_lowercase.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_padding_bottom.png b/idrop-web/web-app/images/silk/text_padding_bottom.png
new file mode 100644
index 0000000..4880c43
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_padding_bottom.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_padding_left.png b/idrop-web/web-app/images/silk/text_padding_left.png
new file mode 100644
index 0000000..b55482e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_padding_left.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_padding_right.png b/idrop-web/web-app/images/silk/text_padding_right.png
new file mode 100644
index 0000000..106edae
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_padding_right.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_padding_top.png b/idrop-web/web-app/images/silk/text_padding_top.png
new file mode 100644
index 0000000..c5c45b2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_padding_top.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_replace.png b/idrop-web/web-app/images/silk/text_replace.png
new file mode 100644
index 0000000..877f82f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_replace.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_signature.png b/idrop-web/web-app/images/silk/text_signature.png
new file mode 100644
index 0000000..c72fd80
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_signature.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_smallcaps.png b/idrop-web/web-app/images/silk/text_smallcaps.png
new file mode 100644
index 0000000..5b98a6e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_smallcaps.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_strikethrough.png b/idrop-web/web-app/images/silk/text_strikethrough.png
new file mode 100644
index 0000000..612058a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_strikethrough.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_subscript.png b/idrop-web/web-app/images/silk/text_subscript.png
new file mode 100644
index 0000000..1a2b010
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_subscript.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_superscript.png b/idrop-web/web-app/images/silk/text_superscript.png
new file mode 100644
index 0000000..2fb2a7c
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_superscript.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_underline.png b/idrop-web/web-app/images/silk/text_underline.png
new file mode 100644
index 0000000..90d0df2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_underline.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/text_uppercase.png b/idrop-web/web-app/images/silk/text_uppercase.png
new file mode 100644
index 0000000..8dcc2db
--- /dev/null
+++ b/idrop-web/web-app/images/silk/text_uppercase.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/textfield.png b/idrop-web/web-app/images/silk/textfield.png
new file mode 100644
index 0000000..d37e730
--- /dev/null
+++ b/idrop-web/web-app/images/silk/textfield.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/textfield_add.png b/idrop-web/web-app/images/silk/textfield_add.png
new file mode 100644
index 0000000..204de72
--- /dev/null
+++ b/idrop-web/web-app/images/silk/textfield_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/textfield_delete.png b/idrop-web/web-app/images/silk/textfield_delete.png
new file mode 100644
index 0000000..c7bd58b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/textfield_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/textfield_key.png b/idrop-web/web-app/images/silk/textfield_key.png
new file mode 100644
index 0000000..a9d5e4f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/textfield_key.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/textfield_rename.png b/idrop-web/web-app/images/silk/textfield_rename.png
new file mode 100644
index 0000000..4e3688e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/textfield_rename.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/thumb_down.png b/idrop-web/web-app/images/silk/thumb_down.png
new file mode 100644
index 0000000..3c832d4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/thumb_down.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/thumb_up.png b/idrop-web/web-app/images/silk/thumb_up.png
new file mode 100644
index 0000000..2bd16cc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/thumb_up.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tick.png b/idrop-web/web-app/images/silk/tick.png
new file mode 100644
index 0000000..a9925a0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tick.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/time.png b/idrop-web/web-app/images/silk/time.png
new file mode 100644
index 0000000..911da3f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/time.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/time_add.png b/idrop-web/web-app/images/silk/time_add.png
new file mode 100644
index 0000000..dcc45cb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/time_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/time_delete.png b/idrop-web/web-app/images/silk/time_delete.png
new file mode 100644
index 0000000..5bf8313
--- /dev/null
+++ b/idrop-web/web-app/images/silk/time_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/time_go.png b/idrop-web/web-app/images/silk/time_go.png
new file mode 100644
index 0000000..d451ee0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/time_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/timeline_marker.png b/idrop-web/web-app/images/silk/timeline_marker.png
new file mode 100644
index 0000000..a3fbddf
--- /dev/null
+++ b/idrop-web/web-app/images/silk/timeline_marker.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/transmit.png b/idrop-web/web-app/images/silk/transmit.png
new file mode 100644
index 0000000..f54bf73
--- /dev/null
+++ b/idrop-web/web-app/images/silk/transmit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/transmit_add.png b/idrop-web/web-app/images/silk/transmit_add.png
new file mode 100644
index 0000000..b7fd4e6
--- /dev/null
+++ b/idrop-web/web-app/images/silk/transmit_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/transmit_blue.png b/idrop-web/web-app/images/silk/transmit_blue.png
new file mode 100644
index 0000000..7b1142f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/transmit_blue.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/transmit_delete.png b/idrop-web/web-app/images/silk/transmit_delete.png
new file mode 100644
index 0000000..3d72be2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/transmit_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/transmit_edit.png b/idrop-web/web-app/images/silk/transmit_edit.png
new file mode 100644
index 0000000..eb9a3dd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/transmit_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/transmit_error.png b/idrop-web/web-app/images/silk/transmit_error.png
new file mode 100644
index 0000000..fd1d449
--- /dev/null
+++ b/idrop-web/web-app/images/silk/transmit_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/transmit_go.png b/idrop-web/web-app/images/silk/transmit_go.png
new file mode 100644
index 0000000..10137e5
--- /dev/null
+++ b/idrop-web/web-app/images/silk/transmit_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/tux.png b/idrop-web/web-app/images/silk/tux.png
new file mode 100644
index 0000000..bbefe2e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/tux.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/user.png b/idrop-web/web-app/images/silk/user.png
new file mode 100644
index 0000000..79f35cc
--- /dev/null
+++ b/idrop-web/web-app/images/silk/user.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/user_add.png b/idrop-web/web-app/images/silk/user_add.png
new file mode 100644
index 0000000..deae99b
--- /dev/null
+++ b/idrop-web/web-app/images/silk/user_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/user_comment.png b/idrop-web/web-app/images/silk/user_comment.png
new file mode 100644
index 0000000..e54ebeb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/user_comment.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/user_delete.png b/idrop-web/web-app/images/silk/user_delete.png
new file mode 100644
index 0000000..acbb563
--- /dev/null
+++ b/idrop-web/web-app/images/silk/user_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/user_edit.png b/idrop-web/web-app/images/silk/user_edit.png
new file mode 100644
index 0000000..c1974cd
--- /dev/null
+++ b/idrop-web/web-app/images/silk/user_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/user_female.png b/idrop-web/web-app/images/silk/user_female.png
new file mode 100644
index 0000000..7c71de0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/user_female.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/user_go.png b/idrop-web/web-app/images/silk/user_go.png
new file mode 100644
index 0000000..0468cf0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/user_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/user_gray.png b/idrop-web/web-app/images/silk/user_gray.png
new file mode 100644
index 0000000..8fd539e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/user_gray.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/user_green.png b/idrop-web/web-app/images/silk/user_green.png
new file mode 100644
index 0000000..30383c2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/user_green.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/user_orange.png b/idrop-web/web-app/images/silk/user_orange.png
new file mode 100644
index 0000000..b818127
--- /dev/null
+++ b/idrop-web/web-app/images/silk/user_orange.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/user_red.png b/idrop-web/web-app/images/silk/user_red.png
new file mode 100644
index 0000000..c6f66e8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/user_red.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/user_suit.png b/idrop-web/web-app/images/silk/user_suit.png
new file mode 100644
index 0000000..b3454e1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/user_suit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/vcard.png b/idrop-web/web-app/images/silk/vcard.png
new file mode 100644
index 0000000..c02f315
--- /dev/null
+++ b/idrop-web/web-app/images/silk/vcard.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/vcard_add.png b/idrop-web/web-app/images/silk/vcard_add.png
new file mode 100644
index 0000000..2a68453
--- /dev/null
+++ b/idrop-web/web-app/images/silk/vcard_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/vcard_delete.png b/idrop-web/web-app/images/silk/vcard_delete.png
new file mode 100644
index 0000000..b194b97
--- /dev/null
+++ b/idrop-web/web-app/images/silk/vcard_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/vcard_edit.png b/idrop-web/web-app/images/silk/vcard_edit.png
new file mode 100644
index 0000000..ab0f6e7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/vcard_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/vector.png b/idrop-web/web-app/images/silk/vector.png
new file mode 100644
index 0000000..a1291c2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/vector.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/vector_add.png b/idrop-web/web-app/images/silk/vector_add.png
new file mode 100644
index 0000000..988770f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/vector_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/vector_delete.png b/idrop-web/web-app/images/silk/vector_delete.png
new file mode 100644
index 0000000..ca139e0
--- /dev/null
+++ b/idrop-web/web-app/images/silk/vector_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/wand.png b/idrop-web/web-app/images/silk/wand.png
new file mode 100644
index 0000000..44ccbf8
--- /dev/null
+++ b/idrop-web/web-app/images/silk/wand.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/weather_clouds.png b/idrop-web/web-app/images/silk/weather_clouds.png
new file mode 100644
index 0000000..3f73eaa
--- /dev/null
+++ b/idrop-web/web-app/images/silk/weather_clouds.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/weather_cloudy.png b/idrop-web/web-app/images/silk/weather_cloudy.png
new file mode 100644
index 0000000..5856e1d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/weather_cloudy.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/weather_lightning.png b/idrop-web/web-app/images/silk/weather_lightning.png
new file mode 100644
index 0000000..1d42b36
--- /dev/null
+++ b/idrop-web/web-app/images/silk/weather_lightning.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/weather_rain.png b/idrop-web/web-app/images/silk/weather_rain.png
new file mode 100644
index 0000000..cb3d54d
--- /dev/null
+++ b/idrop-web/web-app/images/silk/weather_rain.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/weather_snow.png b/idrop-web/web-app/images/silk/weather_snow.png
new file mode 100644
index 0000000..45bbdf1
--- /dev/null
+++ b/idrop-web/web-app/images/silk/weather_snow.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/weather_sun.png b/idrop-web/web-app/images/silk/weather_sun.png
new file mode 100644
index 0000000..0156c26
--- /dev/null
+++ b/idrop-web/web-app/images/silk/weather_sun.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/webcam.png b/idrop-web/web-app/images/silk/webcam.png
new file mode 100644
index 0000000..af71c30
--- /dev/null
+++ b/idrop-web/web-app/images/silk/webcam.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/webcam_add.png b/idrop-web/web-app/images/silk/webcam_add.png
new file mode 100644
index 0000000..f02fcfa
--- /dev/null
+++ b/idrop-web/web-app/images/silk/webcam_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/webcam_delete.png b/idrop-web/web-app/images/silk/webcam_delete.png
new file mode 100644
index 0000000..bd6277f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/webcam_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/webcam_error.png b/idrop-web/web-app/images/silk/webcam_error.png
new file mode 100644
index 0000000..2faa706
--- /dev/null
+++ b/idrop-web/web-app/images/silk/webcam_error.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/world.png b/idrop-web/web-app/images/silk/world.png
new file mode 100644
index 0000000..68f21d3
--- /dev/null
+++ b/idrop-web/web-app/images/silk/world.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/world_add.png b/idrop-web/web-app/images/silk/world_add.png
new file mode 100644
index 0000000..6d0d7f7
--- /dev/null
+++ b/idrop-web/web-app/images/silk/world_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/world_delete.png b/idrop-web/web-app/images/silk/world_delete.png
new file mode 100644
index 0000000..ffcd115
--- /dev/null
+++ b/idrop-web/web-app/images/silk/world_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/world_edit.png b/idrop-web/web-app/images/silk/world_edit.png
new file mode 100644
index 0000000..00794d4
--- /dev/null
+++ b/idrop-web/web-app/images/silk/world_edit.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/world_go.png b/idrop-web/web-app/images/silk/world_go.png
new file mode 100644
index 0000000..aee9c97
--- /dev/null
+++ b/idrop-web/web-app/images/silk/world_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/world_link.png b/idrop-web/web-app/images/silk/world_link.png
new file mode 100644
index 0000000..b8edc12
--- /dev/null
+++ b/idrop-web/web-app/images/silk/world_link.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/wrench.png b/idrop-web/web-app/images/silk/wrench.png
new file mode 100644
index 0000000..5c8213f
--- /dev/null
+++ b/idrop-web/web-app/images/silk/wrench.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/wrench_orange.png b/idrop-web/web-app/images/silk/wrench_orange.png
new file mode 100644
index 0000000..565a933
--- /dev/null
+++ b/idrop-web/web-app/images/silk/wrench_orange.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/xhtml.png b/idrop-web/web-app/images/silk/xhtml.png
new file mode 100644
index 0000000..da5dbf2
--- /dev/null
+++ b/idrop-web/web-app/images/silk/xhtml.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/xhtml_add.png b/idrop-web/web-app/images/silk/xhtml_add.png
new file mode 100644
index 0000000..bbaf784
--- /dev/null
+++ b/idrop-web/web-app/images/silk/xhtml_add.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/xhtml_delete.png b/idrop-web/web-app/images/silk/xhtml_delete.png
new file mode 100644
index 0000000..157b520
--- /dev/null
+++ b/idrop-web/web-app/images/silk/xhtml_delete.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/xhtml_go.png b/idrop-web/web-app/images/silk/xhtml_go.png
new file mode 100644
index 0000000..43cf814
--- /dev/null
+++ b/idrop-web/web-app/images/silk/xhtml_go.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/xhtml_valid.png b/idrop-web/web-app/images/silk/xhtml_valid.png
new file mode 100644
index 0000000..d2e1cfb
--- /dev/null
+++ b/idrop-web/web-app/images/silk/xhtml_valid.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/zoom.png b/idrop-web/web-app/images/silk/zoom.png
new file mode 100644
index 0000000..908612e
--- /dev/null
+++ b/idrop-web/web-app/images/silk/zoom.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/zoom_in.png b/idrop-web/web-app/images/silk/zoom_in.png
new file mode 100644
index 0000000..cdf0a52
--- /dev/null
+++ b/idrop-web/web-app/images/silk/zoom_in.png
Binary files differ
diff --git a/idrop-web/web-app/images/silk/zoom_out.png b/idrop-web/web-app/images/silk/zoom_out.png
new file mode 100644
index 0000000..07bf98a
--- /dev/null
+++ b/idrop-web/web-app/images/silk/zoom_out.png
Binary files differ
diff --git a/idrop-web/web-app/images/smooth_selection.gif b/idrop-web/web-app/images/smooth_selection.gif
new file mode 100644
index 0000000..8a532e5
--- /dev/null
+++ b/idrop-web/web-app/images/smooth_selection.gif
Binary files differ
diff --git a/idrop-web/web-app/images/spacer.gif b/idrop-web/web-app/images/spacer.gif
new file mode 100644
index 0000000..3884865
--- /dev/null
+++ b/idrop-web/web-app/images/spacer.gif
Binary files differ
diff --git a/idrop-web/web-app/images/statusbar_resize.gif b/idrop-web/web-app/images/statusbar_resize.gif
new file mode 100644
index 0000000..af89d80
--- /dev/null
+++ b/idrop-web/web-app/images/statusbar_resize.gif
Binary files differ
diff --git a/idrop-web/web-app/images/undo.gif b/idrop-web/web-app/images/undo.gif
new file mode 100644
index 0000000..520796d
--- /dev/null
+++ b/idrop-web/web-app/images/undo.gif
Binary files differ
diff --git a/idrop-web/web-app/images/word_wrap.gif b/idrop-web/web-app/images/word_wrap.gif
new file mode 100644
index 0000000..8f256cc
--- /dev/null
+++ b/idrop-web/web-app/images/word_wrap.gif
Binary files differ
diff --git a/idrop-web/web-app/js/addon/comment/comment.js b/idrop-web/web-app/js/addon/comment/comment.js
new file mode 100644
index 0000000..cd2123e
--- /dev/null
+++ b/idrop-web/web-app/js/addon/comment/comment.js
@@ -0,0 +1,145 @@
+(function() {
+ "use strict";
+
+ var noOptions = {};
+ var nonWS = /[^\s\u00a0]/;
+ var Pos = CodeMirror.Pos;
+
+ function firstNonWS(str) {
+ var found = str.search(nonWS);
+ return found == -1 ? 0 : found;
+ }
+
+ CodeMirror.commands.toggleComment = function(cm) {
+ var from = cm.getCursor("start"), to = cm.getCursor("end");
+ cm.uncomment(from, to) || cm.lineComment(from, to);
+ };
+
+ CodeMirror.defineExtension("lineComment", function(from, to, options) {
+ if (!options) options = noOptions;
+ var self = this, mode = self.getModeAt(from);
+ var commentString = options.lineComment || mode.lineComment;
+ if (!commentString) {
+ if (options.blockCommentStart || mode.blockCommentStart) {
+ options.fullLines = true;
+ self.blockComment(from, to, options);
+ }
+ return;
+ }
+ var firstLine = self.getLine(from.line);
+ if (firstLine == null) return;
+ var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);
+ var pad = options.padding == null ? " " : options.padding;
+ var blankLines = options.commentBlankLines || from.line == to.line;
+
+ self.operation(function() {
+ if (options.indent) {
+ var baseString = firstLine.slice(0, firstNonWS(firstLine));
+ for (var i = from.line; i < end; ++i) {
+ var line = self.getLine(i), cut = baseString.length;
+ if (!blankLines && !nonWS.test(line)) continue;
+ if (line.slice(0, cut) != baseString) cut = firstNonWS(line);
+ self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));
+ }
+ } else {
+ for (var i = from.line; i < end; ++i) {
+ if (blankLines || nonWS.test(self.getLine(i)))
+ self.replaceRange(commentString + pad, Pos(i, 0));
+ }
+ }
+ });
+ });
+
+ CodeMirror.defineExtension("blockComment", function(from, to, options) {
+ if (!options) options = noOptions;
+ var self = this, mode = self.getModeAt(from);
+ var startString = options.blockCommentStart || mode.blockCommentStart;
+ var endString = options.blockCommentEnd || mode.blockCommentEnd;
+ if (!startString || !endString) {
+ if ((options.lineComment || mode.lineComment) && options.fullLines != false)
+ self.lineComment(from, to, options);
+ return;
+ }
+
+ var end = Math.min(to.line, self.lastLine());
+ if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;
+
+ var pad = options.padding == null ? " " : options.padding;
+ if (from.line > end) return;
+
+ self.operation(function() {
+ if (options.fullLines != false) {
+ var lastLineHasText = nonWS.test(self.getLine(end));
+ self.replaceRange(pad + endString, Pos(end));
+ self.replaceRange(startString + pad, Pos(from.line, 0));
+ var lead = options.blockCommentLead || mode.blockCommentLead;
+ if (lead != null) for (var i = from.line + 1; i <= end; ++i)
+ if (i != end || lastLineHasText)
+ self.replaceRange(lead + pad, Pos(i, 0));
+ } else {
+ self.replaceRange(endString, to);
+ self.replaceRange(startString, from);
+ }
+ });
+ });
+
+ CodeMirror.defineExtension("uncomment", function(from, to, options) {
+ if (!options) options = noOptions;
+ var self = this, mode = self.getModeAt(from);
+ var end = Math.min(to.line, self.lastLine()), start = Math.min(from.line, end);
+
+ // Try finding line comments
+ var lineString = options.lineComment || mode.lineComment, lines = [];
+ var pad = options.padding == null ? " " : options.padding, didSomething;
+ lineComment: {
+ if (!lineString) break lineComment;
+ for (var i = start; i <= end; ++i) {
+ var line = self.getLine(i);
+ var found = line.indexOf(lineString);
+ if (found == -1 && (i != end || i == start) && nonWS.test(line)) break lineComment;
+ if (i != start && found > -1 && nonWS.test(line.slice(0, found))) break lineComment;
+ lines.push(line);
+ }
+ self.operation(function() {
+ for (var i = start; i <= end; ++i) {
+ var line = lines[i - start];
+ var pos = line.indexOf(lineString), endPos = pos + lineString.length;
+ if (pos < 0) continue;
+ if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;
+ didSomething = true;
+ self.replaceRange("", Pos(i, pos), Pos(i, endPos));
+ }
+ });
+ if (didSomething) return true;
+ }
+
+ // Try block comments
+ var startString = options.blockCommentStart || mode.blockCommentStart;
+ var endString = options.blockCommentEnd || mode.blockCommentEnd;
+ if (!startString || !endString) return false;
+ var lead = options.blockCommentLead || mode.blockCommentLead;
+ var startLine = self.getLine(start), endLine = end == start ? startLine : self.getLine(end);
+ var open = startLine.indexOf(startString), close = endLine.lastIndexOf(endString);
+ if (close == -1 && start != end) {
+ endLine = self.getLine(--end);
+ close = endLine.lastIndexOf(endString);
+ }
+ if (open == -1 || close == -1) return false;
+
+ self.operation(function() {
+ self.replaceRange("", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),
+ Pos(end, close + endString.length));
+ var openEnd = open + startString.length;
+ if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;
+ self.replaceRange("", Pos(start, open), Pos(start, openEnd));
+ if (lead) for (var i = start + 1; i <= end; ++i) {
+ var line = self.getLine(i), found = line.indexOf(lead);
+ if (found == -1 || nonWS.test(line.slice(0, found))) continue;
+ var foundEnd = found + lead.length;
+ if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;
+ self.replaceRange("", Pos(i, found), Pos(i, foundEnd));
+ }
+ });
+ return true;
+ });
+})();
diff --git a/idrop-web/web-app/js/addon/comment/continuecomment.js b/idrop-web/web-app/js/addon/comment/continuecomment.js
new file mode 100644
index 0000000..94e5a37
--- /dev/null
+++ b/idrop-web/web-app/js/addon/comment/continuecomment.js
@@ -0,0 +1,54 @@
+(function() {
+ var modes = ["clike", "css", "javascript"];
+ for (var i = 0; i < modes.length; ++i)
+ CodeMirror.extendMode(modes[i], {blockCommentContinue: " * "});
+
+ function continueComment(cm) {
+ var pos = cm.getCursor(), token = cm.getTokenAt(pos);
+ if (token.type != "comment") return CodeMirror.Pass;
+ var mode = CodeMirror.innerMode(cm.getMode(), token.state).mode;
+
+ var insert;
+ if (mode.blockCommentStart && mode.blockCommentContinue) {
+ var end = token.string.indexOf(mode.blockCommentEnd);
+ var full = cm.getRange(CodeMirror.Pos(pos.line, 0), CodeMirror.Pos(pos.line, token.end)), found;
+ if (end != -1 && end == token.string.length - mode.blockCommentEnd.length) {
+ // Comment ended, don't continue it
+ } else if (token.string.indexOf(mode.blockCommentStart) == 0) {
+ insert = full.slice(0, token.start);
+ if (!/^\s*$/.test(insert)) {
+ insert = "";
+ for (var i = 0; i < token.start; ++i) insert += " ";
+ }
+ } else if ((found = full.indexOf(mode.blockCommentContinue)) != -1 &&
+ found + mode.blockCommentContinue.length > token.start &&
+ /^\s*$/.test(full.slice(0, found))) {
+ insert = full.slice(0, found);
+ }
+ if (insert != null) insert += mode.blockCommentContinue;
+ }
+ if (insert == null && mode.lineComment) {
+ var line = cm.getLine(pos.line), found = line.indexOf(mode.lineComment);
+ if (found > -1) {
+ insert = line.slice(0, found);
+ if (/\S/.test(insert)) insert = null;
+ else insert += mode.lineComment + line.slice(found + mode.lineComment.length).match(/^\s*/)[0];
+ }
+ }
+
+ if (insert != null)
+ cm.replaceSelection("\n" + insert, "end");
+ else
+ return CodeMirror.Pass;
+ }
+
+ CodeMirror.defineOption("continueComments", null, function(cm, val, prev) {
+ if (prev && prev != CodeMirror.Init)
+ cm.removeKeyMap("continueComment");
+ if (val) {
+ var map = {name: "continueComment"};
+ map[typeof val == "string" ? val : "Enter"] = continueComment;
+ cm.addKeyMap(map);
+ }
+ });
+})();
diff --git a/idrop-web/web-app/js/addon/dialog/dialog.css b/idrop-web/web-app/js/addon/dialog/dialog.css
new file mode 100644
index 0000000..2e7c0fc
--- /dev/null
+++ b/idrop-web/web-app/js/addon/dialog/dialog.css
@@ -0,0 +1,32 @@
+.CodeMirror-dialog {
+ position: absolute;
+ left: 0; right: 0;
+ background: white;
+ z-index: 15;
+ padding: .1em .8em;
+ overflow: hidden;
+ color: #333;
+}
+
+.CodeMirror-dialog-top {
+ border-bottom: 1px solid #eee;
+ top: 0;
+}
+
+.CodeMirror-dialog-bottom {
+ border-top: 1px solid #eee;
+ bottom: 0;
+}
+
+.CodeMirror-dialog input {
+ border: none;
+ outline: none;
+ background: transparent;
+ width: 20em;
+ color: inherit;
+ font-family: monospace;
+}
+
+.CodeMirror-dialog button {
+ font-size: 70%;
+}
diff --git a/idrop-web/web-app/js/addon/dialog/dialog.js b/idrop-web/web-app/js/addon/dialog/dialog.js
new file mode 100644
index 0000000..71e2287
--- /dev/null
+++ b/idrop-web/web-app/js/addon/dialog/dialog.js
@@ -0,0 +1,80 @@
+// Open simple dialogs on top of an editor. Relies on dialog.css.
+
+(function() {
+ function dialogDiv(cm, template, bottom) {
+ var wrap = cm.getWrapperElement();
+ var dialog;
+ dialog = wrap.appendChild(document.createElement("div"));
+ if (bottom) {
+ dialog.className = "CodeMirror-dialog CodeMirror-dialog-bottom";
+ } else {
+ dialog.className = "CodeMirror-dialog CodeMirror-dialog-top";
+ }
+ dialog.innerHTML = template;
+ return dialog;
+ }
+
+ CodeMirror.defineExtension("openDialog", function(template, callback, options) {
+ var dialog = dialogDiv(this, template, options && options.bottom);
+ var closed = false, me = this;
+ function close() {
+ if (closed) return;
+ closed = true;
+ dialog.parentNode.removeChild(dialog);
+ }
+ var inp = dialog.getElementsByTagName("input")[0], button;
+ if (inp) {
+ CodeMirror.on(inp, "keydown", function(e) {
+ if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { return; }
+ if (e.keyCode == 13 || e.keyCode == 27) {
+ CodeMirror.e_stop(e);
+ close();
+ me.focus();
+ if (e.keyCode == 13) callback(inp.value);
+ }
+ });
+ if (options && options.onKeyUp) {
+ CodeMirror.on(inp, "keyup", function(e) {options.onKeyUp(e, inp.value, close);});
+ }
+ if (options && options.value) inp.value = options.value;
+ inp.focus();
+ CodeMirror.on(inp, "blur", close);
+ } else if (button = dialog.getElementsByTagName("button")[0]) {
+ CodeMirror.on(button, "click", function() {
+ close();
+ me.focus();
+ });
+ button.focus();
+ CodeMirror.on(button, "blur", close);
+ }
+ return close;
+ });
+
+ CodeMirror.defineExtension("openConfirm", function(template, callbacks, options) {
+ var dialog = dialogDiv(this, template, options && options.bottom);
+ var buttons = dialog.getElementsByTagName("button");
+ var closed = false, me = this, blurring = 1;
+ function close() {
+ if (closed) return;
+ closed = true;
+ dialog.parentNode.removeChild(dialog);
+ me.focus();
+ }
+ buttons[0].focus();
+ for (var i = 0; i < buttons.length; ++i) {
+ var b = buttons[i];
+ (function(callback) {
+ CodeMirror.on(b, "click", function(e) {
+ CodeMirror.e_preventDefault(e);
+ close();
+ if (callback) callback(me);
+ });
+ })(callbacks[i]);
+ CodeMirror.on(b, "blur", function() {
+ --blurring;
+ setTimeout(function() { if (blurring <= 0) close(); }, 200);
+ });
+ CodeMirror.on(b, "focus", function() { ++blurring; });
+ }
+ });
+})();
diff --git a/idrop-web/web-app/js/addon/display/fullscreen.css b/idrop-web/web-app/js/addon/display/fullscreen.css
new file mode 100644
index 0000000..437acd8
--- /dev/null
+++ b/idrop-web/web-app/js/addon/display/fullscreen.css
@@ -0,0 +1,6 @@
+.CodeMirror-fullscreen {
+ position: fixed;
+ top: 0; left: 0; right: 0; bottom: 0;
+ height: auto;
+ z-index: 9;
+}
diff --git a/idrop-web/web-app/js/addon/display/fullscreen.js b/idrop-web/web-app/js/addon/display/fullscreen.js
new file mode 100644
index 0000000..3c31e97
--- /dev/null
+++ b/idrop-web/web-app/js/addon/display/fullscreen.js
@@ -0,0 +1,30 @@
+(function() {
+ "use strict";
+
+ CodeMirror.defineOption("fullScreen", false, function(cm, val, old) {
+ if (old == CodeMirror.Init) old = false;
+ if (!old == !val) return;
+ if (val) setFullscreen(cm);
+ else setNormal(cm);
+ });
+
+ function setFullscreen(cm) {
+ var wrap = cm.getWrapperElement();
+ cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset,
+ width: wrap.style.width, height: wrap.style.height};
+ wrap.style.width = wrap.style.height = "";
+ wrap.className += " CodeMirror-fullscreen";
+ document.documentElement.style.overflow = "hidden";
+ cm.refresh();
+ }
+
+ function setNormal(cm) {
+ var wrap = cm.getWrapperElement();
+ wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, "");
+ document.documentElement.style.overflow = "";
+ var info = cm.state.fullScreenRestore;
+ wrap.style.width = info.width; wrap.style.height = info.height;
+ window.scrollTo(info.scrollLeft, info.scrollTop);
+ cm.refresh();
+ }
+})();
diff --git a/idrop-web/web-app/js/addon/display/placeholder.js b/idrop-web/web-app/js/addon/display/placeholder.js
new file mode 100644
index 0000000..18f9dff
--- /dev/null
+++ b/idrop-web/web-app/js/addon/display/placeholder.js
@@ -0,0 +1,54 @@
+(function() {
+ CodeMirror.defineOption("placeholder", "", function(cm, val, old) {
+ var prev = old && old != CodeMirror.Init;
+ if (val && !prev) {
+ cm.on("focus", onFocus);
+ cm.on("blur", onBlur);
+ cm.on("change", onChange);
+ onChange(cm);
+ } else if (!val && prev) {
+ cm.off("focus", onFocus);
+ cm.off("blur", onBlur);
+ cm.off("change", onChange);
+ clearPlaceholder(cm);
+ var wrapper = cm.getWrapperElement();
+ wrapper.className = wrapper.className.replace(" CodeMirror-empty", "");
+ }
+
+ if (val && !cm.hasFocus()) onBlur(cm);
+ });
+
+ function clearPlaceholder(cm) {
+ if (cm.state.placeholder) {
+ cm.state.placeholder.parentNode.removeChild(cm.state.placeholder);
+ cm.state.placeholder = null;
+ }
+ }
+ function setPlaceholder(cm) {
+ clearPlaceholder(cm);
+ var elt = cm.state.placeholder = document.createElement("pre");
+ elt.style.cssText = "height: 0; overflow: visible";
+ elt.className = "CodeMirror-placeholder";
+ elt.appendChild(document.createTextNode(cm.getOption("placeholder")));
+ cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild);
+ }
+
+ function onFocus(cm) {
+ clearPlaceholder(cm);
+ }
+ function onBlur(cm) {
+ if (isEmpty(cm)) setPlaceholder(cm);
+ }
+ function onChange(cm) {
+ var wrapper = cm.getWrapperElement(), empty = isEmpty(cm);
+ wrapper.className = wrapper.className.replace(" CodeMirror-empty", "") + (empty ? " CodeMirror-empty" : "");
+
+ if (cm.hasFocus()) return;
+ if (empty) setPlaceholder(cm);
+ else clearPlaceholder(cm);
+ }
+
+ function isEmpty(cm) {
+ return (cm.lineCount() === 1) && (cm.getLine(0) === "");
+ }
+})();
diff --git a/idrop-web/web-app/js/addon/edit/closebrackets.js b/idrop-web/web-app/js/addon/edit/closebrackets.js
new file mode 100644
index 0000000..88718b7
--- /dev/null
+++ b/idrop-web/web-app/js/addon/edit/closebrackets.js
@@ -0,0 +1,82 @@
+(function() {
+ var DEFAULT_BRACKETS = "()[]{}''\"\"";
+ var DEFAULT_EXPLODE_ON_ENTER = "[]{}";
+ var SPACE_CHAR_REGEX = /\s/;
+
+ CodeMirror.defineOption("autoCloseBrackets", false, function(cm, val, old) {
+ if (old != CodeMirror.Init && old)
+ cm.removeKeyMap("autoCloseBrackets");
+ if (!val) return;
+ var pairs = DEFAULT_BRACKETS, explode = DEFAULT_EXPLODE_ON_ENTER;
+ if (typeof val == "string") pairs = val;
+ else if (typeof val == "object") {
+ if (val.pairs != null) pairs = val.pairs;
+ if (val.explode != null) explode = val.explode;
+ }
+ var map = buildKeymap(pairs);
+ if (explode) map.Enter = buildExplodeHandler(explode);
+ cm.addKeyMap(map);
+ });
+
+ function charsAround(cm, pos) {
+ var str = cm.getRange(CodeMirror.Pos(pos.line, pos.ch - 1),
+ CodeMirror.Pos(pos.line, pos.ch + 1));
+ return str.length == 2 ? str : null;
+ }
+
+ function buildKeymap(pairs) {
+ var map = {
+ name : "autoCloseBrackets",
+ Backspace: function(cm) {
+ if (cm.somethingSelected()) return CodeMirror.Pass;
+ var cur = cm.getCursor(), around = charsAround(cm, cur);
+ if (around && pairs.indexOf(around) % 2 == 0)
+ cm.replaceRange("", CodeMirror.Pos(cur.line, cur.ch - 1), CodeMirror.Pos(cur.line, cur.ch + 1));
+ else
+ return CodeMirror.Pass;
+ }
+ };
+ var closingBrackets = "";
+ for (var i = 0; i < pairs.length; i += 2) (function(left, right) {
+ if (left != right) closingBrackets += right;
+ function surround(cm) {
+ var selection = cm.getSelection();
+ cm.replaceSelection(left + selection + right);
+ }
+ function maybeOverwrite(cm) {
+ var cur = cm.getCursor(), ahead = cm.getRange(cur, CodeMirror.Pos(cur.line, cur.ch + 1));
+ if (ahead != right || cm.somethingSelected()) return CodeMirror.Pass;
+ else cm.execCommand("goCharRight");
+ }
+ map["'" + left + "'"] = function(cm) {
+ if (left == "'" && cm.getTokenAt(cm.getCursor()).type == "comment")
+ return CodeMirror.Pass;
+ if (cm.somethingSelected()) return surround(cm);
+ if (left == right && maybeOverwrite(cm) != CodeMirror.Pass) return;
+ var cur = cm.getCursor(), ahead = CodeMirror.Pos(cur.line, cur.ch + 1);
+ var line = cm.getLine(cur.line), nextChar = line.charAt(cur.ch), curChar = cur.ch > 0 ? line.charAt(cur.ch - 1) : "";
+ if (left == right && CodeMirror.isWordChar(curChar))
+ return CodeMirror.Pass;
+ if (line.length == cur.ch || closingBrackets.indexOf(nextChar) >= 0 || SPACE_CHAR_REGEX.test(nextChar))
+ cm.replaceSelection(left + right, {head: ahead, anchor: ahead});
+ else
+ return CodeMirror.Pass;
+ };
+ if (left != right) map["'" + right + "'"] = maybeOverwrite;
+ })(pairs.charAt(i), pairs.charAt(i + 1));
+ return map;
+ }
+
+ function buildExplodeHandler(pairs) {
+ return function(cm) {
+ var cur = cm.getCursor(), around = charsAround(cm, cur);
+ if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;
+ cm.operation(function() {
+ var newPos = CodeMirror.Pos(cur.line + 1, 0);
+ cm.replaceSelection("\n\n", {anchor: newPos, head: newPos}, "+input");
+ cm.indentLine(cur.line + 1, null, true);
+ cm.indentLine(cur.line + 2, null, true);
+ });
+ };
+ }
+})();
diff --git a/idrop-web/web-app/js/addon/edit/closetag.js b/idrop-web/web-app/js/addon/edit/closetag.js
new file mode 100644
index 0000000..d6a8faf
--- /dev/null
+++ b/idrop-web/web-app/js/addon/edit/closetag.js
@@ -0,0 +1,87 @@
+/**
+ * Tag-closer extension for CodeMirror.
+ *
+ * This extension adds an "autoCloseTags" option that can be set to
+ * either true to get the default behavior, or an object to further
+ * configure its behavior.
+ *
+ * These are supported options:
+ *
+ * `whenClosing` (default true)
+ * Whether to autoclose when the '/' of a closing tag is typed.
+ * `whenOpening` (default true)
+ * Whether to autoclose the tag when the final '>' of an opening
+ * tag is typed.
+ * `dontCloseTags` (default is empty tags for HTML, none for XML)
+ * An array of tag names that should not be autoclosed.
+ * `indentTags` (default is block tags for HTML, none for XML)
+ * An array of tag names that should, when opened, cause a
+ * blank line to be added inside the tag, and the blank line and
+ * closing line to be indented.
+ *
+ * See demos/closetag.html for a usage example.
+ */
+
+(function() {
+ CodeMirror.defineOption("autoCloseTags", false, function(cm, val, old) {
+ if (val && (old == CodeMirror.Init || !old)) {
+ var map = {name: "autoCloseTags"};
+ if (typeof val != "object" || val.whenClosing)
+ map["'/'"] = function(cm) { return autoCloseSlash(cm); };
+ if (typeof val != "object" || val.whenOpening)
+ map["'>'"] = function(cm) { return autoCloseGT(cm); };
+ cm.addKeyMap(map);
+ } else if (!val && (old != CodeMirror.Init && old)) {
+ cm.removeKeyMap("autoCloseTags");
+ }
+ });
+
+ var htmlDontClose = ["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param",
+ "source", "track", "wbr"];
+ var htmlIndent = ["applet", "blockquote", "body", "button", "div", "dl", "fieldset", "form", "frameset", "h1", "h2", "h3", "h4",
+ "h5", "h6", "head", "html", "iframe", "layer", "legend", "object", "ol", "p", "select", "table", "ul"];
+
+ function autoCloseGT(cm) {
+ var pos = cm.getCursor(), tok = cm.getTokenAt(pos);
+ var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
+ if (inner.mode.name != "xml" || !state.tagName) return CodeMirror.Pass;
+
+ var opt = cm.getOption("autoCloseTags"), html = inner.mode.configuration == "html";
+ var dontCloseTags = (typeof opt == "object" && opt.dontCloseTags) || (html && htmlDontClose);
+ var indentTags = (typeof opt == "object" && opt.indentTags) || (html && htmlIndent);
+
+ var tagName = state.tagName;
+ if (tok.end > pos.ch) tagName = tagName.slice(0, tagName.length - tok.end + pos.ch);
+ var lowerTagName = tagName.toLowerCase();
+ // Don't process the '>' at the end of an end-tag or self-closing tag
+ if (tok.type == "tag" && state.type == "closeTag" ||
+ tok.string.indexOf("/") == (tok.string.length - 1) || // match something like <someTagName />
+ dontCloseTags && indexOf(dontCloseTags, lowerTagName) > -1)
+ return CodeMirror.Pass;
+
+ var doIndent = indentTags && indexOf(indentTags, lowerTagName) > -1;
+ var curPos = doIndent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1);
+ cm.replaceSelection(">" + (doIndent ? "\n\n" : "") + "</" + tagName + ">",
+ {head: curPos, anchor: curPos});
+ if (doIndent) {
+ cm.indentLine(pos.line + 1);
+ cm.indentLine(pos.line + 2);
+ }
+ }
+
+ function autoCloseSlash(cm) {
+ var pos = cm.getCursor(), tok = cm.getTokenAt(pos);
+ var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
+ if (tok.string.charAt(0) != "<" || tok.start != pos.ch - 1 || inner.mode.name != "xml") return CodeMirror.Pass;
+
+ var tagName = state.context && state.context.tagName;
+ if (tagName) cm.replaceSelection("/" + tagName + ">", "end");
+ }
+
+ function indexOf(collection, elt) {
+ if (collection.indexOf) return collection.indexOf(elt);
+ for (var i = 0, e = collection.length; i < e; ++i)
+ if (collection[i] == elt) return i;
+ return -1;
+ }
+})();
diff --git a/idrop-web/web-app/js/addon/edit/continuelist.js b/idrop-web/web-app/js/addon/edit/continuelist.js
new file mode 100644
index 0000000..826d17d
--- /dev/null
+++ b/idrop-web/web-app/js/addon/edit/continuelist.js
@@ -0,0 +1,25 @@
+(function() {
+ 'use strict';
+
+ var listRE = /^(\s*)([*+-]|(\d+)\.)(\s*)/,
+ unorderedBullets = '*+-';
+
+ CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) {
+ var pos = cm.getCursor(),
+ inList = cm.getStateAfter(pos.line).list !== false,
+ match;
+
+ if (!inList || !(match = cm.getLine(pos.line).match(listRE))) {
+ cm.execCommand('newlineAndIndent');
+ return;
+ }
+
+ var indent = match[1], after = match[4];
+ var bullet = unorderedBullets.indexOf(match[2]) >= 0
+ ? match[2]
+ : (parseInt(match[3], 10) + 1) + '.';
+
+ cm.replaceSelection('\n' + indent + bullet + after, 'end');
+ };
+
+}());
diff --git a/idrop-web/web-app/js/addon/edit/matchbrackets.js b/idrop-web/web-app/js/addon/edit/matchbrackets.js
new file mode 100644
index 0000000..131fe83
--- /dev/null
+++ b/idrop-web/web-app/js/addon/edit/matchbrackets.js
@@ -0,0 +1,86 @@
+(function() {
+ var ie_lt8 = /MSIE \d/.test(navigator.userAgent) &&
+ (document.documentMode == null || document.documentMode < 8);
+
+ var Pos = CodeMirror.Pos;
+
+ var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};
+ function findMatchingBracket(cm, where, strict) {
+ var state = cm.state.matchBrackets;
+ var maxScanLen = (state && state.maxScanLineLength) || 10000;
+
+ var cur = where || cm.getCursor(), line = cm.getLineHandle(cur.line), pos = cur.ch - 1;
+ var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)];
+ if (!match) return null;
+ var forward = match.charAt(1) == ">", d = forward ? 1 : -1;
+ if (strict && forward != (pos == cur.ch)) return null;
+ var style = cm.getTokenTypeAt(Pos(cur.line, pos + 1));
+
+ var stack = [line.text.charAt(pos)], re = /[(){}[\]]/;
+ function scan(line, lineNo, start) {
+ if (!line.text) return;
+ var pos = forward ? 0 : line.text.length - 1, end = forward ? line.text.length : -1;
+ if (line.text.length > maxScanLen) return null;
+ if (start != null) pos = start + d;
+ for (; pos != end; pos += d) {
+ var ch = line.text.charAt(pos);
+ if (re.test(ch) && cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style) {
+ var match = matching[ch];
+ if (match.charAt(1) == ">" == forward) stack.push(ch);
+ else if (stack.pop() != match.charAt(0)) return {pos: pos, match: false};
+ else if (!stack.length) return {pos: pos, match: true};
+ }
+ }
+ }
+ for (var i = cur.line, found, e = forward ? Math.min(i + 100, cm.lineCount()) : Math.max(-1, i - 100); i != e; i+=d) {
+ if (i == cur.line) found = scan(line, i, pos);
+ else found = scan(cm.getLineHandle(i), i);
+ if (found) break;
+ }
+ return {from: Pos(cur.line, pos), to: found && Pos(i, found.pos),
+ match: found && found.match, forward: forward};
+ }
+
+ function matchBrackets(cm, autoclear) {
+ // Disable brace matching in long lines, since it'll cause hugely slow updates
+ var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;
+ var found = findMatchingBracket(cm);
+ if (!found || cm.getLine(found.from.line).length > maxHighlightLen ||
+ found.to && cm.getLine(found.to.line).length > maxHighlightLen)
+ return;
+
+ var style = found.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
+ var one = cm.markText(found.from, Pos(found.from.line, found.from.ch + 1), {className: style});
+ var two = found.to && cm.markText(found.to, Pos(found.to.line, found.to.ch + 1), {className: style});
+ // Kludge to work around the IE bug from issue #1193, where text
+ // input stops going to the textare whever this fires.
+ if (ie_lt8 && cm.state.focused) cm.display.input.focus();
+ var clear = function() {
+ cm.operation(function() { one.clear(); two && two.clear(); });
+ };
+ if (autoclear) setTimeout(clear, 800);
+ else return clear;
+ }
+
+ var currentlyHighlighted = null;
+ function doMatchBrackets(cm) {
+ cm.operation(function() {
+ if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}
+ if (!cm.somethingSelected()) currentlyHighlighted = matchBrackets(cm, false);
+ });
+ }
+
+ CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) {
+ if (old && old != CodeMirror.Init)
+ cm.off("cursorActivity", doMatchBrackets);
+ if (val) {
+ cm.state.matchBrackets = typeof val == "object" ? val : {};
+ cm.on("cursorActivity", doMatchBrackets);
+ }
+ });
+
+ CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);});
+ CodeMirror.defineExtension("findMatchingBracket", function(pos, strict){
+ return findMatchingBracket(this, pos, strict);
+ });
+})();
diff --git a/idrop-web/web-app/js/addon/edit/matchtags.js b/idrop-web/web-app/js/addon/edit/matchtags.js
new file mode 100644
index 0000000..f189c1f
--- /dev/null
+++ b/idrop-web/web-app/js/addon/edit/matchtags.js
@@ -0,0 +1,56 @@
+(function() {
+ "use strict";
+
+ CodeMirror.defineOption("matchTags", false, function(cm, val, old) {
+ if (old && old != CodeMirror.Init) {
+ cm.off("cursorActivity", doMatchTags);
+ cm.off("viewportChange", maybeUpdateMatch);
+ clear(cm);
+ }
+ if (val) {
+ cm.state.matchBothTags = typeof val == "object" && val.bothTags;
+ cm.on("cursorActivity", doMatchTags);
+ cm.on("viewportChange", maybeUpdateMatch);
+ doMatchTags(cm);
+ }
+ });
+
+ function clear(cm) {
+ if (cm.state.tagHit) cm.state.tagHit.clear();
+ if (cm.state.tagOther) cm.state.tagOther.clear();
+ cm.state.tagHit = cm.state.tagOther = null;
+ }
+
+ function doMatchTags(cm) {
+ cm.state.failedTagMatch = false;
+ cm.operation(function() {
+ clear(cm);
+ if (cm.somethingSelected()) return;
+ var cur = cm.getCursor(), range = cm.getViewport();
+ range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to);
+ var match = CodeMirror.findMatchingTag(cm, cur, range);
+ if (!match) return;
+ if (cm.state.matchBothTags) {
+ var hit = match.at == "open" ? match.open : match.close;
+ if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: "CodeMirror-matchingtag"});
+ }
+ var other = match.at == "close" ? match.open : match.close;
+ if (other)
+ cm.state.tagOther = cm.markText(other.from, other.to, {className: "CodeMirror-matchingtag"});
+ else
+ cm.state.failedTagMatch = true;
+ });
+ }
+
+ function maybeUpdateMatch(cm) {
+ if (cm.state.failedTagMatch) doMatchTags(cm);
+ }
+
+ CodeMirror.commands.toMatchingTag = function(cm) {
+ var found = CodeMirror.findMatchingTag(cm, cm.getCursor());
+ if (found) {
+ var other = found.at == "close" ? found.open : found.close;
+ if (other) cm.setSelection(other.to, other.from);
+ }
+ };
+})();
diff --git a/idrop-web/web-app/js/addon/edit/trailingspace.js b/idrop-web/web-app/js/addon/edit/trailingspace.js
new file mode 100644
index 0000000..f6bb026
--- /dev/null
+++ b/idrop-web/web-app/js/addon/edit/trailingspace.js
@@ -0,0 +1,15 @@
+CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) {
+ if (prev == CodeMirror.Init) prev = false;
+ if (prev && !val)
+ cm.removeOverlay("trailingspace");
+ else if (!prev && val)
+ cm.addOverlay({
+ token: function(stream) {
+ for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {}
+ if (i > stream.pos) { stream.pos = i; return null; }
+ stream.pos = l;
+ return "trailingspace";
+ },
+ name: "trailingspace"
+ });
+});
diff --git a/idrop-web/web-app/js/addon/fold/brace-fold.js b/idrop-web/web-app/js/addon/fold/brace-fold.js
new file mode 100644
index 0000000..2560b2b
--- /dev/null
+++ b/idrop-web/web-app/js/addon/fold/brace-fold.js
@@ -0,0 +1,93 @@
+CodeMirror.registerHelper("fold", "brace", function(cm, start) {
+ var line = start.line, lineText = cm.getLine(line);
+ var startCh, tokenType;
+
+ function findOpening(openCh) {
+ for (var at = start.ch, pass = 0;;) {
+ var found = at <= 0 ? -1 : lineText.lastIndexOf(openCh, at - 1);
+ if (found == -1) {
+ if (pass == 1) break;
+ pass = 1;
+ at = lineText.length;
+ continue;
+ }
+ if (pass == 1 && found < start.ch) break;
+ tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1));
+ if (!/^(comment|string)/.test(tokenType)) return found + 1;
+ at = found - 1;
+ }
+ }
+
+ var startToken = "{", endToken = "}", startCh = findOpening("{");
+ if (startCh == null) {
+ startToken = "[", endToken = "]";
+ startCh = findOpening("[");
+ }
+
+ if (startCh == null) return;
+ var count = 1, lastLine = cm.lastLine(), end, endCh;
+ outer: for (var i = line; i <= lastLine; ++i) {
+ var text = cm.getLine(i), pos = i == line ? startCh : 0;
+ for (;;) {
+ var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);
+ if (nextOpen < 0) nextOpen = text.length;
+ if (nextClose < 0) nextClose = text.length;
+ pos = Math.min(nextOpen, nextClose);
+ if (pos == text.length) break;
+ if (cm.getTokenTypeAt(CodeMirror.Pos(i, pos + 1)) == tokenType) {
+ if (pos == nextOpen) ++count;
+ else if (!--count) { end = i; endCh = pos; break outer; }
+ }
+ ++pos;
+ }
+ }
+ if (end == null || line == end && endCh == startCh) return;
+ return {from: CodeMirror.Pos(line, startCh),
+ to: CodeMirror.Pos(end, endCh)};
+});
+CodeMirror.braceRangeFinder = CodeMirror.fold.brace; // deprecated
+
+CodeMirror.registerHelper("fold", "import", function(cm, start) {
+ function hasImport(line) {
+ if (line < cm.firstLine() || line > cm.lastLine()) return null;
+ var start = cm.getTokenAt(CodeMirror.Pos(line, 1));
+ if (!/\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));
+ if (start.type != "keyword" || start.string != "import") return null;
+ // Now find closing semicolon, return its position
+ for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) {
+ var text = cm.getLine(i), semi = text.indexOf(";");
+ if (semi != -1) return {startCh: start.end, end: CodeMirror.Pos(i, semi)};
+ }
+ }
+
+ var start = start.line, has = hasImport(start), prev;
+ if (!has || hasImport(start - 1) || ((prev = hasImport(start - 2)) && prev.end.line == start - 1))
+ return null;
+ for (var end = has.end;;) {
+ var next = hasImport(end.line + 1);
+ if (next == null) break;
+ end = next.end;
+ }
+ return {from: cm.clipPos(CodeMirror.Pos(start, has.startCh + 1)), to: end};
+});
+CodeMirror.importRangeFinder = CodeMirror.fold["import"]; // deprecated
+
+CodeMirror.registerHelper("fold", "include", function(cm, start) {
+ function hasInclude(line) {
+ if (line < cm.firstLine() || line > cm.lastLine()) return null;
+ var start = cm.getTokenAt(CodeMirror.Pos(line, 1));
+ if (!/\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));
+ if (start.type == "meta" && start.string.slice(0, 8) == "#include") return start.start + 8;
+ }
+
+ var start = start.line, has = hasInclude(start);
+ if (has == null || hasInclude(start - 1) != null) return null;
+ for (var end = start;;) {
+ var next = hasInclude(end + 1);
+ if (next == null) break;
+ ++end;
+ }
+ return {from: CodeMirror.Pos(start, has + 1),
+ to: cm.clipPos(CodeMirror.Pos(end))};
+});
+CodeMirror.includeRangeFinder = CodeMirror.fold.include; // deprecated
diff --git a/idrop-web/web-app/js/addon/fold/comment-fold.js b/idrop-web/web-app/js/addon/fold/comment-fold.js
new file mode 100644
index 0000000..a064cf8
--- /dev/null
+++ b/idrop-web/web-app/js/addon/fold/comment-fold.js
@@ -0,0 +1,40 @@
+CodeMirror.registerHelper("fold", "comment", function(cm, start) {
+ var mode = cm.getModeAt(start), startToken = mode.blockCommentStart, endToken = mode.blockCommentEnd;
+ if (!startToken || !endToken) return;
+ var line = start.line, lineText = cm.getLine(line);
+
+ var startCh;
+ for (var at = start.ch, pass = 0;;) {
+ var found = at <= 0 ? -1 : lineText.lastIndexOf(startToken, at - 1);
+ if (found == -1) {
+ if (pass == 1) return;
+ pass = 1;
+ at = lineText.length;
+ continue;
+ }
+ if (pass == 1 && found < start.ch) return;
+ if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1)))) {
+ startCh = found + startToken.length;
+ break;
+ }
+ at = found - 1;
+ }
+
+ var depth = 1, lastLine = cm.lastLine(), end, endCh;
+ outer: for (var i = line; i <= lastLine; ++i) {
+ var text = cm.getLine(i), pos = i == line ? startCh : 0;
+ for (;;) {
+ var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);
+ if (nextOpen < 0) nextOpen = text.length;
+ if (nextClose < 0) nextClose = text.length;
+ pos = Math.min(nextOpen, nextClose);
+ if (pos == text.length) break;
+ if (pos == nextOpen) ++depth;
+ else if (!--depth) { end = i; endCh = pos; break outer; }
+ ++pos;
+ }
+ }
+ if (end == null || line == end && endCh == startCh) return;
+ return {from: CodeMirror.Pos(line, startCh),
+ to: CodeMirror.Pos(end, endCh)};
+});
diff --git a/idrop-web/web-app/js/addon/fold/foldcode.js b/idrop-web/web-app/js/addon/fold/foldcode.js
new file mode 100644
index 0000000..c497bc2
--- /dev/null
+++ b/idrop-web/web-app/js/addon/fold/foldcode.js
@@ -0,0 +1,75 @@
+(function() {
+ "use strict";
+
+ function doFold(cm, pos, options, force) {
+ var finder = options && (options.call ? options : options.rangeFinder);
+ if (!finder) finder = cm.getHelper(pos, "fold");
+ if (!finder) return;
+ if (typeof pos == "number") pos = CodeMirror.Pos(pos, 0);
+ var minSize = options && options.minFoldSize || 0;
+
+ function getRange(allowFolded) {
+ var range = finder(cm, pos);
+ if (!range || range.to.line - range.from.line < minSize) return null;
+ var marks = cm.findMarksAt(range.from);
+ for (var i = 0; i < marks.length; ++i) {
+ if (marks[i].__isFold && force !== "fold") {
+ if (!allowFolded) return null;
+ range.cleared = true;
+ marks[i].clear();
+ }
+ }
+ return range;
+ }
+
+ var range = getRange(true);
+ if (options && options.scanUp) while (!range && pos.line > cm.firstLine()) {
+ pos = CodeMirror.Pos(pos.line - 1, 0);
+ range = getRange(false);
+ }
+ if (!range || range.cleared || force === "unfold") return;
+
+ var myWidget = makeWidget(options);
+ CodeMirror.on(myWidget, "mousedown", function() { myRange.clear(); });
+ var myRange = cm.markText(range.from, range.to, {
+ replacedWith: myWidget,
+ clearOnEnter: true,
+ __isFold: true
+ });
+ myRange.on("clear", function(from, to) {
+ CodeMirror.signal(cm, "unfold", cm, from, to);
+ });
+ CodeMirror.signal(cm, "fold", cm, range.from, range.to);
+ }
+
+ function makeWidget(options) {
+ var widget = (options && options.widget) || "\u2194";
+ if (typeof widget == "string") {
+ var text = document.createTextNode(widget);
+ widget = document.createElement("span");
+ widget.appendChild(text);
+ widget.className = "CodeMirror-foldmarker";
+ }
+ return widget;
+ }
+
+ // Clumsy backwards-compatible interface
+ CodeMirror.newFoldFunction = function(rangeFinder, widget) {
+ return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };
+ };
+
+ // New-style interface
+ CodeMirror.defineExtension("foldCode", function(pos, options, force) {
+ doFold(this, pos, options, force);
+ });
+
+ CodeMirror.registerHelper("fold", "combine", function() {
+ var funcs = Array.prototype.slice.call(arguments, 0);
+ return function(cm, start) {
+ for (var i = 0; i < funcs.length; ++i) {
+ var found = funcs[i](cm, start);
+ if (found) return found;
+ }
+ };
+ });
+})();
diff --git a/idrop-web/web-app/js/addon/fold/foldgutter.css b/idrop-web/web-app/js/addon/fold/foldgutter.css
new file mode 100644
index 0000000..4980539
--- /dev/null
+++ b/idrop-web/web-app/js/addon/fold/foldgutter.css
@@ -0,0 +1,21 @@
+.CodeMirror-foldmarker {
+ color: blue;
+ text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
+ font-family: arial;
+ line-height: .3;
+ cursor: pointer;
+}
+.CodeMirror-foldgutter {
+ width: .7em;
+}
+.CodeMirror-foldgutter-open,
+.CodeMirror-foldgutter-folded {
+ color: #555;
+ cursor: pointer;
+}
+.CodeMirror-foldgutter-open:after {
+ content: "\25BE";
+}
+.CodeMirror-foldgutter-folded:after {
+ content: "\25B8";
+}
diff --git a/idrop-web/web-app/js/addon/fold/foldgutter.js b/idrop-web/web-app/js/addon/fold/foldgutter.js
new file mode 100644
index 0000000..e3c52bc
--- /dev/null
+++ b/idrop-web/web-app/js/addon/fold/foldgutter.js
@@ -0,0 +1,124 @@
+(function() {
+ "use strict";
+
+ CodeMirror.defineOption("foldGutter", false, function(cm, val, old) {
+ if (old && old != CodeMirror.Init) {
+ cm.clearGutter(cm.state.foldGutter.options.gutter);
+ cm.state.foldGutter = null;
+ cm.off("gutterClick", onGutterClick);
+ cm.off("change", onChange);
+ cm.off("viewportChange", onViewportChange);
+ cm.off("fold", onFold);
+ cm.off("unfold", onFold);
+ cm.off("swapDoc", updateInViewport);
+ }
+ if (val) {
+ cm.state.foldGutter = new State(parseOptions(val));
+ updateInViewport(cm);
+ cm.on("gutterClick", onGutterClick);
+ cm.on("change", onChange);
+ cm.on("viewportChange", onViewportChange);
+ cm.on("fold", onFold);
+ cm.on("unfold", onFold);
+ cm.on("swapDoc", updateInViewport);
+ }
+ });
+
+ var Pos = CodeMirror.Pos;
+
+ function State(options) {
+ this.options = options;
+ this.from = this.to = 0;
+ }
+
+ function parseOptions(opts) {
+ if (opts === true) opts = {};
+ if (opts.gutter == null) opts.gutter = "CodeMirror-foldgutter";
+ if (opts.indicatorOpen == null) opts.indicatorOpen = "CodeMirror-foldgutter-open";
+ if (opts.indicatorFolded == null) opts.indicatorFolded = "CodeMirror-foldgutter-folded";
+ return opts;
+ }
+
+ function isFolded(cm, line) {
+ var marks = cm.findMarksAt(Pos(line));
+ for (var i = 0; i < marks.length; ++i)
+ if (marks[i].__isFold && marks[i].find().from.line == line) return true;
+ }
+
+ function marker(spec) {
+ if (typeof spec == "string") {
+ var elt = document.createElement("div");
+ elt.className = spec;
+ return elt;
+ } else {
+ return spec.cloneNode(true);
+ }
+ }
+
+ function updateFoldInfo(cm, from, to) {
+ var opts = cm.state.foldGutter.options, cur = from;
+ cm.eachLine(from, to, function(line) {
+ var mark = null;
+ if (isFolded(cm, cur)) {
+ mark = marker(opts.indicatorFolded);
+ } else {
+ var pos = Pos(cur, 0), func = opts.rangeFinder || cm.getHelper(pos, "fold");
+ var range = func && func(cm, pos);
+ if (range && range.from.line + 1 < range.to.line)
+ mark = marker(opts.indicatorOpen);
+ }
+ cm.setGutterMarker(line, opts.gutter, mark);
+ ++cur;
+ });
+ }
+
+ function updateInViewport(cm) {
+ var vp = cm.getViewport(), state = cm.state.foldGutter;
+ if (!state) return;
+ cm.operation(function() {
+ updateFoldInfo(cm, vp.from, vp.to);
+ });
+ state.from = vp.from; state.to = vp.to;
+ }
+
+ function onGutterClick(cm, line, gutter) {
+ var opts = cm.state.foldGutter.options;
+ if (gutter != opts.gutter) return;
+ cm.foldCode(Pos(line, 0), opts.rangeFinder);
+ }
+
+ function onChange(cm) {
+ var state = cm.state.foldGutter;
+ state.from = state.to = 0;
+ clearTimeout(state.changeUpdate);
+ state.changeUpdate = setTimeout(function() { updateInViewport(cm); }, 600);
+ }
+
+ function onViewportChange(cm) {
+ var state = cm.state.foldGutter;
+ clearTimeout(state.changeUpdate);
+ state.changeUpdate = setTimeout(function() {
+ var vp = cm.getViewport();
+ if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {
+ updateInViewport(cm);
+ } else {
+ cm.operation(function() {
+ if (vp.from < state.from) {
+ updateFoldInfo(cm, vp.from, state.from);
+ state.from = vp.from;
+ }
+ if (vp.to > state.to) {
+ updateFoldInfo(cm, state.to, vp.to);
+ state.to = vp.to;
+ }
+ });
+ }
+ }, 400);
+ }
+
+ function onFold(cm, from) {
+ var state = cm.state.foldGutter, line = from.line;
+ if (line >= state.from && line < state.to)
+ updateFoldInfo(cm, line, line + 1);
+ }
+})();
diff --git a/idrop-web/web-app/js/addon/fold/indent-fold.js b/idrop-web/web-app/js/addon/fold/indent-fold.js
new file mode 100644
index 0000000..b54da34
--- /dev/null
+++ b/idrop-web/web-app/js/addon/fold/indent-fold.js
@@ -0,0 +1,26 @@
+CodeMirror.registerHelper("fold", "indent", function(cm, start) {
+ var lastLine = cm.lastLine(),
+ tabSize = cm.getOption("tabSize"),
+ firstLine = cm.getLine(start.line),
+ myIndent = CodeMirror.countColumn(firstLine, null, tabSize);
+
+ function foldEnded(curColumn, prevColumn) {
+ return curColumn < myIndent ||
+ (curColumn == myIndent && prevColumn >= myIndent) ||
+ (curColumn > myIndent && i == lastLine);
+ }
+
+ for (var i = start.line + 1; i <= lastLine; i++) {
+ var curColumn = CodeMirror.countColumn(cm.getLine(i), null, tabSize);
+ var prevColumn = CodeMirror.countColumn(cm.getLine(i-1), null, tabSize);
+
+ if (foldEnded(curColumn, prevColumn)) {
+ var lastFoldLineNumber = curColumn > myIndent && i == lastLine ? i : i-1;
+ var lastFoldLine = cm.getLine(lastFoldLineNumber);
+ return {from: CodeMirror.Pos(start.line, firstLine.length),
+ to: CodeMirror.Pos(lastFoldLineNumber, lastFoldLine.length)};
+ }
+ }
+});
+
+CodeMirror.indentRangeFinder = CodeMirror.fold.indent; // deprecated
diff --git a/idrop-web/web-app/js/addon/fold/xml-fold.js b/idrop-web/web-app/js/addon/fold/xml-fold.js
new file mode 100644
index 0000000..88a107c
--- /dev/null
+++ b/idrop-web/web-app/js/addon/fold/xml-fold.js
@@ -0,0 +1,167 @@
+(function() {
+ "use strict";
+
+ var Pos = CodeMirror.Pos;
+ function cmp(a, b) { return a.line - b.line || a.ch - b.ch; }
+
+ var nameStartChar = "A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD";
+ var nameChar = nameStartChar + "\-\:\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040";
+ var xmlTagStart = new RegExp("<(/?)([" + nameStartChar + "][" + nameChar + "]*)", "g");
+
+ function Iter(cm, line, ch, range) {
+ this.line = line; this.ch = ch;
+ this.cm = cm; this.text = cm.getLine(line);
+ this.min = range ? range.from : cm.firstLine();
+ this.max = range ? range.to - 1 : cm.lastLine();
+ }
+
+ function tagAt(iter, ch) {
+ var type = iter.cm.getTokenTypeAt(Pos(iter.line, ch));
+ return type && /\btag\b/.test(type);
+ }
+
+ function nextLine(iter) {
+ if (iter.line >= iter.max) return;
+ iter.ch = 0;
+ iter.text = iter.cm.getLine(++iter.line);
+ return true;
+ }
+ function prevLine(iter) {
+ if (iter.line <= iter.min) return;
+ iter.text = iter.cm.getLine(--iter.line);
+ iter.ch = iter.text.length;
+ return true;
+ }
+
+ function toTagEnd(iter) {
+ for (;;) {
+ var gt = iter.text.indexOf(">", iter.ch);
+ if (gt == -1) { if (nextLine(iter)) continue; else return; }
+ if (!tagAt(iter, gt + 1)) { iter.ch = gt + 1; continue; }
+ var lastSlash = iter.text.lastIndexOf("/", gt);
+ var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt));
+ iter.ch = gt + 1;
+ return selfClose ? "selfClose" : "regular";
+ }
+ }
+ function toTagStart(iter) {
+ for (;;) {
+ var lt = iter.ch ? iter.text.lastIndexOf("<", iter.ch - 1) : -1;
+ if (lt == -1) { if (prevLine(iter)) continue; else return; }
+ if (!tagAt(iter, lt + 1)) { iter.ch = lt; continue; }
+ xmlTagStart.lastIndex = lt;
+ iter.ch = lt;
+ var match = xmlTagStart.exec(iter.text);
+ if (match && match.index == lt) return match;
+ }
+ }
+
+ function toNextTag(iter) {
+ for (;;) {
+ xmlTagStart.lastIndex = iter.ch;
+ var found = xmlTagStart.exec(iter.text);
+ if (!found) { if (nextLine(iter)) continue; else return; }
+ if (!tagAt(iter, found.index + 1)) { iter.ch = found.index + 1; continue; }
+ iter.ch = found.index + found[0].length;
+ return found;
+ }
+ }
+ function toPrevTag(iter) {
+ for (;;) {
+ var gt = iter.ch ? iter.text.lastIndexOf(">", iter.ch - 1) : -1;
+ if (gt == -1) { if (prevLine(iter)) continue; else return; }
+ if (!tagAt(iter, gt + 1)) { iter.ch = gt; continue; }
+ var lastSlash = iter.text.lastIndexOf("/", gt);
+ var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt));
+ iter.ch = gt + 1;
+ return selfClose ? "selfClose" : "regular";
+ }
+ }
+
+ function findMatchingClose(iter, tag) {
+ var stack = [];
+ for (;;) {
+ var next = toNextTag(iter), end, startLine = iter.line, startCh = iter.ch - (next ? next[0].length : 0);
+ if (!next || !(end = toTagEnd(iter))) return;
+ if (end == "selfClose") continue;
+ if (next[1]) { // closing tag
+ for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == next[2]) {
+ stack.length = i;
+ break;
+ }
+ if (i < 0 && (!tag || tag == next[2])) return {
+ tag: next[2],
+ from: Pos(startLine, startCh),
+ to: Pos(iter.line, iter.ch)
+ };
+ } else { // opening tag
+ stack.push(next[2]);
+ }
+ }
+ }
+ function findMatchingOpen(iter, tag) {
+ var stack = [];
+ for (;;) {
+ var prev = toPrevTag(iter);
+ if (!prev) return;
+ if (prev == "selfClose") { toTagStart(iter); continue; }
+ var endLine = iter.line, endCh = iter.ch;
+ var start = toTagStart(iter);
+ if (!start) return;
+ if (start[1]) { // closing tag
+ stack.push(start[2]);
+ } else { // opening tag
+ for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == start[2]) {
+ stack.length = i;
+ break;
+ }
+ if (i < 0 && (!tag || tag == start[2])) return {
+ tag: start[2],
+ from: Pos(iter.line, iter.ch),
+ to: Pos(endLine, endCh)
+ };
+ }
+ }
+ }
+
+ CodeMirror.registerHelper("fold", "xml", function(cm, start) {
+ var iter = new Iter(cm, start.line, 0);
+ for (;;) {
+ var openTag = toNextTag(iter), end;
+ if (!openTag || iter.line != start.line || !(end = toTagEnd(iter))) return;
+ if (!openTag[1] && end != "selfClose") {
+ var start = Pos(iter.line, iter.ch);
+ var close = findMatchingClose(iter, openTag[2]);
+ return close && {from: start, to: close.from};
+ }
+ }
+ });
+ CodeMirror.tagRangeFinder = CodeMirror.fold.xml; // deprecated
+
+ CodeMirror.findMatchingTag = function(cm, pos, range) {
+ var iter = new Iter(cm, pos.line, pos.ch, range);
+ if (iter.text.indexOf(">") == -1 && iter.text.indexOf("<") == -1) return;
+ var end = toTagEnd(iter), to = end && Pos(iter.line, iter.ch);
+ var start = end && toTagStart(iter);
+ if (!end || end == "selfClose" || !start || cmp(iter, pos) > 0) return;
+ var here = {from: Pos(iter.line, iter.ch), to: to, tag: start[2]};
+
+ if (start[1]) { // closing tag
+ return {open: findMatchingOpen(iter, start[2]), close: here, at: "close"};
+ } else { // opening tag
+ iter = new Iter(cm, to.line, to.ch, range);
+ return {open: here, close: findMatchingClose(iter, start[2]), at: "open"};
+ }
+ };
+
+ CodeMirror.findEnclosingTag = function(cm, pos, range) {
+ var iter = new Iter(cm, pos.line, pos.ch, range);
+ for (;;) {
+ var open = findMatchingOpen(iter);
+ if (!open) break;
+ var forward = new Iter(cm, pos.line, pos.ch, range);
+ var close = findMatchingClose(forward, open.tag);
+ if (close) return {open: open, close: close};
+ }
+ };
+})();
diff --git a/idrop-web/web-app/js/addon/hint/anyword-hint.js b/idrop-web/web-app/js/addon/hint/anyword-hint.js
new file mode 100644
index 0000000..36ff618
--- /dev/null
+++ b/idrop-web/web-app/js/addon/hint/anyword-hint.js
@@ -0,0 +1,34 @@
+(function() {
+ "use strict";
+
+ var WORD = /[\w$]+/, RANGE = 500;
+
+ CodeMirror.registerHelper("hint", "anyword", function(editor, options) {
+ var word = options && options.word || WORD;
+ var range = options && options.range || RANGE;
+ var cur = editor.getCursor(), curLine = editor.getLine(cur.line);
+ var start = cur.ch, end = start;
+ while (end < curLine.length && word.test(curLine.charAt(end))) ++end;
+ while (start && word.test(curLine.charAt(start - 1))) --start;
+ var curWord = start != end && curLine.slice(start, end);
+
+ var list = [], seen = {};
+ function scan(dir) {
+ var line = cur.line, end = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir;
+ for (; line != end; line += dir) {
+ var text = editor.getLine(line), m;
+ var re = new RegExp(word.source, "g");
+ while (m = re.exec(text)) {
+ if (line == cur.line && m[0] === curWord) continue;
+ if ((!curWord || m[0].indexOf(curWord) == 0) && !seen.hasOwnProperty(m[0])) {
+ seen[m[0]] = true;
+ list.push(m[0]);
+ }
+ }
+ }
+ }
+ scan(-1);
+ scan(1);
+ return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)};
+ });
+})();
diff --git a/idrop-web/web-app/js/addon/hint/css-hint.js b/idrop-web/web-app/js/addon/hint/css-hint.js
new file mode 100644
index 0000000..2b15300
--- /dev/null
+++ b/idrop-web/web-app/js/addon/hint/css-hint.js
@@ -0,0 +1,50 @@
+(function () {
+ "use strict";
+
+ function getHints(cm) {
+ var cur = cm.getCursor(), token = cm.getTokenAt(cur);
+ var inner = CodeMirror.innerMode(cm.getMode(), token.state);
+ if (inner.mode.name != "css") return;
+
+ // If it's not a 'word-style' token, ignore the token.
+ if (!/^[\w$_-]*$/.test(token.string)) {
+ token = {
+ start: cur.ch, end: cur.ch, string: "", state: token.state,
+ type: null
+ };
+ var stack = token.state.stack;
+ var lastToken = stack && stack.length > 0 ? stack[stack.length - 1] : "";
+ if (token.string == ":" || lastToken.indexOf("property") == 0)
+ token.type = "variable";
+ else if (token.string == "{" || lastToken.indexOf("rule") == 0)
+ token.type = "property";
+ }
+
+ if (!token.type)
+ return;
+
+ var spec = CodeMirror.resolveMode("text/css");
+ var keywords = null;
+ if (token.type.indexOf("property") == 0)
+ keywords = spec.propertyKeywords;
+ else if (token.type.indexOf("variable") == 0)
+ keywords = spec.valueKeywords;
+
+ if (!keywords)
+ return;
+
+ var result = [];
+ for (var name in keywords) {
+ if (name.indexOf(token.string) == 0 /* > -1 */)
+ result.push(name);
+ }
+
+ return {
+ list: result,
+ from: CodeMirror.Pos(cur.line, token.start),
+ to: CodeMirror.Pos(cur.line, token.end)
+ };
+ }
+
+ CodeMirror.registerHelper("hint", "css", getHints);
+})();
diff --git a/idrop-web/web-app/js/addon/hint/html-hint.js b/idrop-web/web-app/js/addon/hint/html-hint.js
new file mode 100644
index 0000000..cf25685
--- /dev/null
+++ b/idrop-web/web-app/js/addon/hint/html-hint.js
@@ -0,0 +1,337 @@
+(function () {
+ var langs = "ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu".split(" ");
+ var targets = ["_blank", "_self", "_top", "_parent"];
+ var charsets = ["ascii", "utf-8", "utf-16", "latin1", "latin1"];
+ var methods = ["get", "post", "put", "delete"];
+ var encs = ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"];
+ var media = ["all", "screen", "print", "embossed", "braille", "handheld", "print", "projection", "screen", "tty", "tv", "speech",
+ "3d-glasses", "resolution [>][<][=] [X]", "device-aspect-ratio: X/Y", "orientation:portrait",
+ "orientation:landscape", "device-height: [X]", "device-width: [X]"];
+ var s = { attrs: {} }; // Simple tag, reused for a whole lot of tags
+
+ var data = {
+ a: {
+ attrs: {
+ href: null, ping: null, type: null,
+ media: media,
+ target: targets,
+ hreflang: langs
+ }
+ },
+ abbr: s,
+ acronym: s,
+ address: s,
+ applet: s,
+ area: {
+ attrs: {
+ alt: null, coords: null, href: null, target: null, ping: null,
+ media: media, hreflang: langs, type: null,
+ shape: ["default", "rect", "circle", "poly"]
+ }
+ },
+ article: s,
+ aside: s,
+ audio: {
+ attrs: {
+ src: null, mediagroup: null,
+ crossorigin: ["anonymous", "use-credentials"],
+ preload: ["none", "metadata", "auto"],
+ autoplay: ["", "autoplay"],
+ loop: ["", "loop"],
+ controls: ["", "controls"]
+ }
+ },
+ b: s,
+ base: { attrs: { href: null, target: targets } },
+ basefont: s,
+ bdi: s,
+ bdo: s,
+ big: s,
+ blockquote: { attrs: { cite: null } },
+ body: s,
+ br: s,
+ button: {
+ attrs: {
+ form: null, formaction: null, name: null, value: null,
+ autofocus: ["", "autofocus"],
+ disabled: ["", "autofocus"],
+ formenctype: encs,
+ formmethod: methods,
+ formnovalidate: ["", "novalidate"],
+ formtarget: targets,
+ type: ["submit", "reset", "button"]
+ }
+ },
+ canvas: { attrs: { width: null, height: null } },
+ caption: s,
+ center: s,
+ cite: s,
+ code: s,
+ col: { attrs: { span: null } },
+ colgroup: { attrs: { span: null } },
+ command: {
+ attrs: {
+ type: ["command", "checkbox", "radio"],
+ label: null, icon: null, radiogroup: null, command: null, title: null,
+ disabled: ["", "disabled"],
+ checked: ["", "checked"]
+ }
+ },
+ data: { attrs: { value: null } },
+ datagrid: { attrs: { disabled: ["", "disabled"], multiple: ["", "multiple"] } },
+ datalist: { attrs: { data: null } },
+ dd: s,
+ del: { attrs: { cite: null, datetime: null } },
+ details: { attrs: { open: ["", "open"] } },
+ dfn: s,
+ dir: s,
+ div: s,
+ dl: s,
+ dt: s,
+ em: s,
+ embed: { attrs: { src: null, type: null, width: null, height: null } },
+ eventsource: { attrs: { src: null } },
+ fieldset: { attrs: { disabled: ["", "disabled"], form: null, name: null } },
+ figcaption: s,
+ figure: s,
+ font: s,
+ footer: s,
+ form: {
+ attrs: {
+ action: null, name: null,
+ "accept-charset": charsets,
+ autocomplete: ["on", "off"],
+ enctype: encs,
+ method: methods,
+ novalidate: ["", "novalidate"],
+ target: targets
+ }
+ },
+ frame: s,
+ frameset: s,
+ h1: s, h2: s, h3: s, h4: s, h5: s, h6: s,
+ head: {
+ attrs: {},
+ children: ["title", "base", "link", "style", "meta", "script", "noscript", "command"]
+ },
+ header: s,
+ hgroup: s,
+ hr: s,
+ html: {
+ attrs: { manifest: null },
+ children: ["head", "body"]
+ },
+ i: s,
+ iframe: {
+ attrs: {
+ src: null, srcdoc: null, name: null, width: null, height: null,
+ sandbox: ["allow-top-navigation", "allow-same-origin", "allow-forms", "allow-scripts"],
+ seamless: ["", "seamless"]
+ }
+ },
+ img: {
+ attrs: {
+ alt: null, src: null, ismap: null, usemap: null, width: null, height: null,
+ crossorigin: ["anonymous", "use-credentials"]
+ }
+ },
+ input: {
+ attrs: {
+ alt: null, dirname: null, form: null, formaction: null,
+ height: null, list: null, max: null, maxlength: null, min: null,
+ name: null, pattern: null, placeholder: null, size: null, src: null,
+ step: null, value: null, width: null,
+ accept: ["audio/*", "video/*", "image/*"],
+ autocomplete: ["on", "off"],
+ autofocus: ["", "autofocus"],
+ checked: ["", "checked"],
+ disabled: ["", "disabled"],
+ formenctype: encs,
+ formmethod: methods,
+ formnovalidate: ["", "novalidate"],
+ formtarget: targets,
+ multiple: ["", "multiple"],
+ readonly: ["", "readonly"],
+ required: ["", "required"],
+ type: ["hidden", "text", "search", "tel", "url", "email", "password", "datetime", "date", "month",
+ "week", "time", "datetime-local", "number", "range", "color", "checkbox", "radio",
+ "file", "submit", "image", "reset", "button"]
+ }
+ },
+ ins: { attrs: { cite: null, datetime: null } },
+ kbd: s,
+ keygen: {
+ attrs: {
+ challenge: null, form: null, name: null,
+ autofocus: ["", "autofocus"],
+ disabled: ["", "disabled"],
+ keytype: ["RSA"]
+ }
+ },
+ label: { attrs: { "for": null, form: null } },
+ legend: s,
+ li: { attrs: { value: null } },
+ link: {
+ attrs: {
+ href: null, type: null,
+ hreflang: langs,
+ media: media,
+ sizes: ["all", "16x16", "16x16 32x32", "16x16 32x32 64x64"]
+ }
+ },
+ map: { attrs: { name: null } },
+ mark: s,
+ menu: { attrs: { label: null, type: ["list", "context", "toolbar"] } },
+ meta: {
+ attrs: {
+ content: null,
+ charset: charsets,
+ name: ["viewport", "application-name", "author", "description", "generator", "keywords"],
+ "http-equiv": ["content-language", "content-type", "default-style", "refresh"]
+ }
+ },
+ meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },
+ nav: s,
+ noframes: s,
+ noscript: s,
+ object: {
+ attrs: {
+ data: null, type: null, name: null, usemap: null, form: null, width: null, height: null,
+ typemustmatch: ["", "typemustmatch"]
+ }
+ },
+ ol: { attrs: { reversed: ["", "reversed"], start: null, type: ["1", "a", "A", "i", "I"] } },
+ optgroup: { attrs: { disabled: ["", "disabled"], label: null } },
+ option: { attrs: { disabled: ["", "disabled"], label: null, selected: ["", "selected"], value: null } },
+ output: { attrs: { "for": null, form: null, name: null } },
+ p: s,
+ param: { attrs: { name: null, value: null } },
+ pre: s,
+ progress: { attrs: { value: null, max: null } },
+ q: { attrs: { cite: null } },
+ rp: s,
+ rt: s,
+ ruby: s,
+ s: s,
+ samp: s,
+ script: {
+ attrs: {
+ type: ["text/javascript"],
+ src: null,
+ async: ["", "async"],
+ defer: ["", "defer"],
+ charset: charsets
+ }
+ },
+ section: s,
+ select: {
+ attrs: {
+ form: null, name: null, size: null,
+ autofocus: ["", "autofocus"],
+ disabled: ["", "disabled"],
+ multiple: ["", "multiple"]
+ }
+ },
+ small: s,
+ source: { attrs: { src: null, type: null, media: null } },
+ span: s,
+ strike: s,
+ strong: s,
+ style: {
+ attrs: {
+ type: ["text/css"],
+ media: media,
+ scoped: null
+ }
+ },
+ sub: s,
+ summary: s,
+ sup: s,
+ table: s,
+ tbody: s,
+ td: { attrs: { colspan: null, rowspan: null, headers: null } },
+ textarea: {
+ attrs: {
+ dirname: null, form: null, maxlength: null, name: null, placeholder: null,
+ rows: null, cols: null,
+ autofocus: ["", "autofocus"],
+ disabled: ["", "disabled"],
+ readonly: ["", "readonly"],
+ required: ["", "required"],
+ wrap: ["soft", "hard"]
+ }
+ },
+ tfoot: s,
+ th: { attrs: { colspan: null, rowspan: null, headers: null, scope: ["row", "col", "rowgroup", "colgroup"] } },
+ thead: s,
+ time: { attrs: { datetime: null } },
+ title: s,
+ tr: s,
+ track: {
+ attrs: {
+ src: null, label: null, "default": null,
+ kind: ["subtitles", "captions", "descriptions", "chapters", "metadata"],
+ srclang: langs
+ }
+ },
+ tt: s,
+ u: s,
+ ul: s,
+ "var": s,
+ video: {
+ attrs: {
+ src: null, poster: null, width: null, height: null,
+ crossorigin: ["anonymous", "use-credentials"],
+ preload: ["auto", "metadata", "none"],
+ autoplay: ["", "autoplay"],
+ mediagroup: ["movie"],
+ muted: ["", "muted"],
+ controls: ["", "controls"]
+ }
+ },
+ wbr: s
+ };
+
+ var globalAttrs = {
+ accesskey: ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
+ "class": null,
+ contenteditable: ["true", "false"],
+ contextmenu: null,
+ dir: ["ltr", "rtl", "auto"],
+ draggable: ["true", "false", "auto"],
+ dropzone: ["copy", "move", "link", "string:", "file:"],
+ hidden: ["hidden"],
+ id: null,
+ inert: ["inert"],
+ itemid: null,
+ itemprop: null,
+ itemref: null,
+ itemscope: ["itemscope"],
+ itemtype: null,
+ lang: ["en", "es"],
+ spellcheck: ["true", "false"],
+ style: null,
+ tabindex: ["1", "2", "3", "4", "5", "6", "7", "8", "9"],
+ title: null,
+ translate: ["yes", "no"],
+ onclick: null,
+ rel: ["stylesheet", "alternate", "author", "bookmark", "help", "license", "next", "nofollow", "noreferrer", "prefetch", "prev", "search", "tag"]
+ };
+ function populate(obj) {
+ for (var attr in globalAttrs) if (globalAttrs.hasOwnProperty(attr))
+ obj.attrs[attr] = globalAttrs[attr];
+ }
+
+ populate(s);
+ for (var tag in data) if (data.hasOwnProperty(tag) && data[tag] != s)
+ populate(data[tag]);
+
+ CodeMirror.htmlSchema = data;
+ function htmlHint(cm, options) {
+ var local = {schemaInfo: data};
+ if (options) for (var opt in options) local[opt] = options[opt];
+ return CodeMirror.hint.xml(cm, local);
+ }
+ CodeMirror.htmlHint = htmlHint; // deprecated
+ CodeMirror.registerHelper("hint", "html", htmlHint);
+})();
diff --git a/idrop-web/web-app/js/addon/hint/javascript-hint.js b/idrop-web/web-app/js/addon/hint/javascript-hint.js
new file mode 100644
index 0000000..513fb78
--- /dev/null
+++ b/idrop-web/web-app/js/addon/hint/javascript-hint.js
@@ -0,0 +1,130 @@
+(function () {
+ var Pos = CodeMirror.Pos;
+
+ function forEach(arr, f) {
+ for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);
+ }
+
+ function arrayContains(arr, item) {
+ if (!Array.prototype.indexOf) {
+ var i = arr.length;
+ while (i--) {
+ if (arr[i] === item) {
+ return true;
+ }
+ }
+ return false;
+ }
+ return arr.indexOf(item) != -1;
+ }
+
+ function scriptHint(editor, keywords, getToken, options) {
+ // Find the token at the cursor
+ var cur = editor.getCursor(), token = getToken(editor, cur), tprop = token;
+ token.state = CodeMirror.innerMode(editor.getMode(), token.state).state;
+
+ // If it's not a 'word-style' token, ignore the token.
+ if (!/^[\w$_]*$/.test(token.string)) {
+ token = tprop = {start: cur.ch, end: cur.ch, string: "", state: token.state,
+ type: token.string == "." ? "property" : null};
+ }
+ // If it is a property, find out what it is a property of.
+ while (tprop.type == "property") {
+ tprop = getToken(editor, Pos(cur.line, tprop.start));
+ if (tprop.string != ".") return;
+ tprop = getToken(editor, Pos(cur.line, tprop.start));
+ if (!context) var context = [];
+ context.push(tprop);
+ }
+ return {list: getCompletions(token, context, keywords, options),
+ from: Pos(cur.line, token.start),
+ to: Pos(cur.line, token.end)};
+ }
+
+ function javascriptHint(editor, options) {
+ return scriptHint(editor, javascriptKeywords,
+ function (e, cur) {return e.getTokenAt(cur);},
+ options);
+ };
+ CodeMirror.javascriptHint = javascriptHint; // deprecated
+ CodeMirror.registerHelper("hint", "javascript", javascriptHint);
+
+ function getCoffeeScriptToken(editor, cur) {
+ // This getToken, it is for coffeescript, imitates the behavior of
+ // getTokenAt method in javascript.js, that is, returning "property"
+ // type and treat "." as indepenent token.
+ var token = editor.getTokenAt(cur);
+ if (cur.ch == token.start + 1 && token.string.charAt(0) == '.') {
+ token.end = token.start;
+ token.string = '.';
+ token.type = "property";
+ }
+ else if (/^\.[\w$_]*$/.test(token.string)) {
+ token.type = "property";
+ token.start++;
+ token.string = token.string.replace(/\./, '');
+ }
+ return token;
+ }
+
+ function coffeescriptHint(editor, options) {
+ return scriptHint(editor, coffeescriptKeywords, getCoffeeScriptToken, options);
+ }
+ CodeMirror.coffeescriptHint = coffeescriptHint; // deprecated
+ CodeMirror.registerHelper("hint", "coffeescript", coffeescriptHint);
+
+ var stringProps = ("charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight " +
+ "toUpperCase toLowerCase split concat match replace search").split(" ");
+ var arrayProps = ("length concat join splice push pop shift unshift slice reverse sort indexOf " +
+ "lastIndexOf every some filter forEach map reduce reduceRight ").split(" ");
+ var funcProps = "prototype apply call bind".split(" ");
+ var javascriptKeywords = ("break case catch continue debugger default delete do else false finally for function " +
+ "if in instanceof new null return switch throw true try typeof var void while with").split(" ");
+ var coffeescriptKeywords = ("and break catch class continue delete do else extends false finally for " +
+ "if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes").split(" ");
+
+ function getCompletions(token, context, keywords, options) {
+ var found = [], start = token.string;
+ function maybeAdd(str) {
+ if (str.indexOf(start) == 0 && !arrayContains(found, str)) found.push(str);
+ }
+ function gatherCompletions(obj) {
+ if (typeof obj == "string") forEach(stringProps, maybeAdd);
+ else if (obj instanceof Array) forEach(arrayProps, maybeAdd);
+ else if (obj instanceof Function) forEach(funcProps, maybeAdd);
+ for (var name in obj) maybeAdd(name);
+ }
+
+ if (context && context.length) {
+ // If this is a property, see if it belongs to some object we can
+ // find in the current environment.
+ var obj = context.pop(), base;
+ if (obj.type && obj.type.indexOf("variable") === 0) {
+ if (options && options.additionalContext)
+ base = options.additionalContext[obj.string];
+ base = base || window[obj.string];
+ } else if (obj.type == "string") {
+ base = "";
+ } else if (obj.type == "atom") {
+ base = 1;
+ } else if (obj.type == "function") {
+ if (window.jQuery != null && (obj.string == '$' || obj.string == 'jQuery') &&
+ (typeof window.jQuery == 'function'))
+ base = window.jQuery();
+ else if (window._ != null && (obj.string == '_') && (typeof window._ == 'function'))
+ base = window._();
+ }
+ while (base != null && context.length)
+ base = base[context.pop().string];
+ if (base != null) gatherCompletions(base);
+ } else {
+ // If not, just look in the window object and any local scope
+ // (reading into JS mode internals to get at the local and global variables)
+ for (var v = token.state.localVars; v; v = v.next) maybeAdd(v.name);
+ for (var v = token.state.globalVars; v; v = v.next) maybeAdd(v.name);
+ gatherCompletions(window);
+ forEach(keywords, maybeAdd);
+ }
+ return found;
+ }
+})();
diff --git a/idrop-web/web-app/js/addon/hint/pig-hint.js b/idrop-web/web-app/js/addon/hint/pig-hint.js
new file mode 100644
index 0000000..7ef336c
--- /dev/null
+++ b/idrop-web/web-app/js/addon/hint/pig-hint.js
@@ -0,0 +1,121 @@
+(function () {
+ "use strict";
+
+ function forEach(arr, f) {
+ for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);
+ }
+
+ function arrayContains(arr, item) {
+ if (!Array.prototype.indexOf) {
+ var i = arr.length;
+ while (i--) {
+ if (arr[i] === item) {
+ return true;
+ }
+ }
+ return false;
+ }
+ return arr.indexOf(item) != -1;
+ }
+
+ function scriptHint(editor, _keywords, getToken) {
+ // Find the token at the cursor
+ var cur = editor.getCursor(), token = getToken(editor, cur), tprop = token;
+ // If it's not a 'word-style' token, ignore the token.
+
+ if (!/^[\w$_]*$/.test(token.string)) {
+ token = tprop = {start: cur.ch, end: cur.ch, string: "", state: token.state,
+ className: token.string == ":" ? "pig-type" : null};
+ }
+
+ if (!context) var context = [];
+ context.push(tprop);
+
+ var completionList = getCompletions(token, context);
+ completionList = completionList.sort();
+ //prevent autocomplete for last word, instead show dropdown with one word
+ if(completionList.length == 1) {
+ completionList.push(" ");
+ }
+
+ return {list: completionList,
+ from: CodeMirror.Pos(cur.line, token.start),
+ to: CodeMirror.Pos(cur.line, token.end)};
+ }
+
+ function pigHint(editor) {
+ return scriptHint(editor, pigKeywordsU, function (e, cur) {return e.getTokenAt(cur);});
+ }
+ CodeMirror.pigHint = pigHint; // deprecated
+ CodeMirror.registerHelper("hint", "pig", pigHint);
+
+ var pigKeywords = "VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP "
+ + "JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL "
+ + "PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE "
+ + "SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE "
+ + "NEQ MATCHES TRUE FALSE";
+ var pigKeywordsU = pigKeywords.split(" ");
+ var pigKeywordsL = pigKeywords.toLowerCase().split(" ");
+
+ var pigTypes = "BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP";
+ var pigTypesU = pigTypes.split(" ");
+ var pigTypesL = pigTypes.toLowerCase().split(" ");
+
+ var pigBuiltins = "ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL "
+ + "CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS "
+ + "DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG "
+ + "FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN "
+ + "INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER "
+ + "ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS "
+ + "LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA "
+ + "PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE "
+ + "SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG "
+ + "TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER";
+ var pigBuiltinsU = pigBuiltins.split(" ").join("() ").split(" ");
+ var pigBuiltinsL = pigBuiltins.toLowerCase().split(" ").join("() ").split(" ");
+ var pigBuiltinsC = ("BagSize BinStorage Bloom BuildBloom ConstantSize CubeDimensions DoubleAbs "
+ + "DoubleAvg DoubleBase DoubleMax DoubleMin DoubleRound DoubleSum FloatAbs FloatAvg FloatMax "
+ + "FloatMin FloatRound FloatSum GenericInvoker IntAbs IntAvg IntMax IntMin IntSum "
+ + "InvokeForDouble InvokeForFloat InvokeForInt InvokeForLong InvokeForString Invoker "
+ + "IsEmpty JsonLoader JsonMetadata JsonStorage LongAbs LongAvg LongMax LongMin LongSum MapSize "
+ + "MonitoredUDF Nondeterministic OutputSchema PigStorage PigStreaming StringConcat StringMax "
+ + "StringMin StringSize TextLoader TupleSize Utf8StorageConverter").split(" ").join("() ").split(" ");
+
+ function getCompletions(token, context) {
+ var found = [], start = token.string;
+ function maybeAdd(str) {
+ if (str.indexOf(start) == 0 && !arrayContains(found, str)) found.push(str);
+ }
+
+ function gatherCompletions(obj) {
+ if(obj == ":") {
+ forEach(pigTypesL, maybeAdd);
+ }
+ else {
+ forEach(pigBuiltinsU, maybeAdd);
+ forEach(pigBuiltinsL, maybeAdd);
+ forEach(pigBuiltinsC, maybeAdd);
+ forEach(pigTypesU, maybeAdd);
+ forEach(pigTypesL, maybeAdd);
+ forEach(pigKeywordsU, maybeAdd);
+ forEach(pigKeywordsL, maybeAdd);
+ }
+ }
+
+ if (context) {
+ // If this is a property, see if it belongs to some object we can
+ // find in the current environment.
+ var obj = context.pop(), base;
+
+ if (obj.type == "variable")
+ base = obj.string;
+ else if(obj.type == "variable-3")
+ base = ":" + obj.string;
+
+ while (base != null && context.length)
+ base = base[context.pop().string];
+ if (base != null) gatherCompletions(base);
+ }
+ return found;
+ }
+})();
diff --git a/idrop-web/web-app/js/addon/hint/python-hint.js b/idrop-web/web-app/js/addon/hint/python-hint.js
new file mode 100644
index 0000000..98d2a58
--- /dev/null
+++ b/idrop-web/web-app/js/addon/hint/python-hint.js
@@ -0,0 +1,95 @@
+(function () {
+ function forEach(arr, f) {
+ for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);
+ }
+
+ function arrayContains(arr, item) {
+ if (!Array.prototype.indexOf) {
+ var i = arr.length;
+ while (i--) {
+ if (arr[i] === item) {
+ return true;
+ }
+ }
+ return false;
+ }
+ return arr.indexOf(item) != -1;
+ }
+
+ function scriptHint(editor, _keywords, getToken) {
+ // Find the token at the cursor
+ var cur = editor.getCursor(), token = getToken(editor, cur), tprop = token;
+ // If it's not a 'word-style' token, ignore the token.
+
+ if (!/^[\w$_]*$/.test(token.string)) {
+ token = tprop = {start: cur.ch, end: cur.ch, string: "", state: token.state,
+ className: token.string == ":" ? "python-type" : null};
+ }
+
+ if (!context) var context = [];
+ context.push(tprop);
+
+ var completionList = getCompletions(token, context);
+ completionList = completionList.sort();
+ //prevent autocomplete for last word, instead show dropdown with one word
+ if(completionList.length == 1) {
+ completionList.push(" ");
+ }
+
+ return {list: completionList,
+ from: CodeMirror.Pos(cur.line, token.start),
+ to: CodeMirror.Pos(cur.line, token.end)};
+ }
+
+ function pythonHint(editor) {
+ return scriptHint(editor, pythonKeywordsU, function (e, cur) {return e.getTokenAt(cur);});
+ }
+ CodeMirror.pythonHint = pythonHint; // deprecated
+ CodeMirror.registerHelper("hint", "python", pythonHint);
+
+ var pythonKeywords = "and del from not while as elif global or with assert else if pass yield"
++ "break except import print class exec in raise continue finally is return def for lambda try";
+ var pythonKeywordsL = pythonKeywords.split(" ");
+ var pythonKeywordsU = pythonKeywords.toUpperCase().split(" ");
+
+ var pythonBuiltins = "abs divmod input open staticmethod all enumerate int ord str "
++ "any eval isinstance pow sum basestring execfile issubclass print super"
++ "bin file iter property tuple bool filter len range type"
++ "bytearray float list raw_input unichr callable format locals reduce unicode"
++ "chr frozenset long reload vars classmethod getattr map repr xrange"
++ "cmp globals max reversed zip compile hasattr memoryview round __import__"
++ "complex hash min set apply delattr help next setattr buffer"
++ "dict hex object slice coerce dir id oct sorted intern ";
+ var pythonBuiltinsL = pythonBuiltins.split(" ").join("() ").split(" ");
+ var pythonBuiltinsU = pythonBuiltins.toUpperCase().split(" ").join("() ").split(" ");
+
+ function getCompletions(token, context) {
+ var found = [], start = token.string;
+ function maybeAdd(str) {
+ if (str.indexOf(start) == 0 && !arrayContains(found, str)) found.push(str);
+ }
+
+ function gatherCompletions(_obj) {
+ forEach(pythonBuiltinsL, maybeAdd);
+ forEach(pythonBuiltinsU, maybeAdd);
+ forEach(pythonKeywordsL, maybeAdd);
+ forEach(pythonKeywordsU, maybeAdd);
+ }
+
+ if (context) {
+ // If this is a property, see if it belongs to some object we can
+ // find in the current environment.
+ var obj = context.pop(), base;
+
+ if (obj.type == "variable")
+ base = obj.string;
+ else if(obj.type == "variable-3")
+ base = ":" + obj.string;
+
+ while (base != null && context.length)
+ base = base[context.pop().string];
+ if (base != null) gatherCompletions(base);
+ }
+ return found;
+ }
+})();
diff --git a/idrop-web/web-app/js/addon/hint/show-hint.css b/idrop-web/web-app/js/addon/hint/show-hint.css
new file mode 100644
index 0000000..8a4ff05
--- /dev/null
+++ b/idrop-web/web-app/js/addon/hint/show-hint.css
@@ -0,0 +1,38 @@
+.CodeMirror-hints {
+ position: absolute;
+ z-index: 10;
+ overflow: hidden;
+ list-style: none;
+
+ margin: 0;
+ padding: 2px;
+
+ -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
+ -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
+ box-shadow: 2px 3px 5px rgba(0,0,0,.2);
+ border-radius: 3px;
+ border: 1px solid silver;
+
+ background: white;
+ font-size: 90%;
+ font-family: monospace;
+
+ max-height: 20em;
+ overflow-y: auto;
+}
+
+.CodeMirror-hint {
+ margin: 0;
+ padding: 0 4px;
+ border-radius: 2px;
+ max-width: 19em;
+ overflow: hidden;
+ white-space: pre;
+ color: black;
+ cursor: pointer;
+}
+
+.CodeMirror-hint-active {
+ background: #08f;
+ color: white;
+}
diff --git a/idrop-web/web-app/js/addon/hint/show-hint.js b/idrop-web/web-app/js/addon/hint/show-hint.js
new file mode 100644
index 0000000..dbf4155
--- /dev/null
+++ b/idrop-web/web-app/js/addon/hint/show-hint.js
@@ -0,0 +1,274 @@
+(function() {
+ "use strict";
+
+ CodeMirror.showHint = function(cm, getHints, options) {
+ // We want a single cursor position.
+ if (cm.somethingSelected()) return;
+ if (getHints == null) getHints = cm.getHelper(cm.getCursor(), "hint");
+ if (getHints == null) return;
+
+ if (cm.state.completionActive) cm.state.completionActive.close();
+
+ var completion = cm.state.completionActive = new Completion(cm, getHints, options || {});
+ CodeMirror.signal(cm, "startCompletion", cm);
+ if (completion.options.async)
+ getHints(cm, function(hints) { completion.showHints(hints); }, completion.options);
+ else
+ return completion.showHints(getHints(cm, completion.options));
+ };
+
+ function Completion(cm, getHints, options) {
+ this.cm = cm;
+ this.getHints = getHints;
+ this.options = options;
+ this.widget = this.onClose = null;
+ }
+
+ Completion.prototype = {
+ close: function() {
+ if (!this.active()) return;
+ this.cm.state.completionActive = null;
+
+ if (this.widget) this.widget.close();
+ if (this.onClose) this.onClose();
+ CodeMirror.signal(this.cm, "endCompletion", this.cm);
+ },
+
+ active: function() {
+ return this.cm.state.completionActive == this;
+ },
+
+ pick: function(data, i) {
+ var completion = data.list[i];
+ if (completion.hint) completion.hint(this.cm, data, completion);
+ else this.cm.replaceRange(getText(completion), data.from, data.to);
+ this.close();
+ },
+
+ showHints: function(data) {
+ if (!data || !data.list.length || !this.active()) return this.close();
+
+ if (this.options.completeSingle != false && data.list.length == 1)
+ this.pick(data, 0);
+ else
+ this.showWidget(data);
+ },
+
+ showWidget: function(data) {
+ this.widget = new Widget(this, data);
+ CodeMirror.signal(data, "shown");
+
+ var debounce = null, completion = this, finished;
+ var closeOn = this.options.closeCharacters || /[\s()\[\]{};:>,]/;
+ var startPos = this.cm.getCursor(), startLen = this.cm.getLine(startPos.line).length;
+
+ function done() {
+ if (finished) return;
+ finished = true;
+ completion.close();
+ completion.cm.off("cursorActivity", activity);
+ if (data) CodeMirror.signal(data, "close");
+ }
+
+ function update() {
+ if (finished) return;
+ CodeMirror.signal(data, "update");
+ if (completion.options.async)
+ completion.getHints(completion.cm, finishUpdate, completion.options);
+ else
+ finishUpdate(completion.getHints(completion.cm, completion.options));
+ }
+ function finishUpdate(data_) {
+ data = data_;
+ if (finished) return;
+ if (!data || !data.list.length) return done();
+ completion.widget = new Widget(completion, data);
+ }
+
+ function activity() {
+ clearTimeout(debounce);
+ var pos = completion.cm.getCursor(), line = completion.cm.getLine(pos.line);
+ if (pos.line != startPos.line || line.length - pos.ch != startLen - startPos.ch ||
+ pos.ch < startPos.ch || completion.cm.somethingSelected() ||
+ (pos.ch && closeOn.test(line.charAt(pos.ch - 1)))) {
+ completion.close();
+ } else {
+ debounce = setTimeout(update, 170);
+ if (completion.widget) completion.widget.close();
+ }
+ }
+ this.cm.on("cursorActivity", activity);
+ this.onClose = done;
+ }
+ };
+
+ function getText(completion) {
+ if (typeof completion == "string") return completion;
+ else return completion.text;
+ }
+
+ function buildKeyMap(options, handle) {
+ var baseMap = {
+ Up: function() {handle.moveFocus(-1);},
+ Down: function() {handle.moveFocus(1);},
+ PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);},
+ PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);},
+ Home: function() {handle.setFocus(0);},
+ End: function() {handle.setFocus(handle.length - 1);},
+ Enter: handle.pick,
+ Tab: handle.pick,
+ Esc: handle.close
+ };
+ var ourMap = options.customKeys ? {} : baseMap;
+ function addBinding(key, val) {
+ var bound;
+ if (typeof val != "string")
+ bound = function(cm) { return val(cm, handle); };
+ // This mechanism is deprecated
+ else if (baseMap.hasOwnProperty(val))
+ bound = baseMap[val];
+ else
+ bound = val;
+ ourMap[key] = bound;
+ }
+ if (options.customKeys)
+ for (var key in options.customKeys) if (options.customKeys.hasOwnProperty(key))
+ addBinding(key, options.customKeys[key]);
+ if (options.extraKeys)
+ for (var key in options.extraKeys) if (options.extraKeys.hasOwnProperty(key))
+ addBinding(key, options.extraKeys[key]);
+ return ourMap;
+ }
+
+ function Widget(completion, data) {
+ this.completion = completion;
+ this.data = data;
+ var widget = this, cm = completion.cm, options = completion.options;
+
+ var hints = this.hints = document.createElement("ul");
+ hints.className = "CodeMirror-hints";
+ this.selectedHint = 0;
+
+ var completions = data.list;
+ for (var i = 0; i < completions.length; ++i) {
+ var elt = hints.appendChild(document.createElement("li")), cur = completions[i];
+ var className = "CodeMirror-hint" + (i ? "" : " CodeMirror-hint-active");
+ if (cur.className != null) className = cur.className + " " + className;
+ elt.className = className;
+ if (cur.render) cur.render(elt, data, cur);
+ else elt.appendChild(document.createTextNode(cur.displayText || getText(cur)));
+ elt.hintId = i;
+ }
+
+ var pos = cm.cursorCoords(options.alignWithWord !== false ? data.from : null);
+ var left = pos.left, top = pos.bottom, below = true;
+ hints.style.left = left + "px";
+ hints.style.top = top + "px";
+ // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.
+ var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth);
+ var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight);
+ (options.container || document.body).appendChild(hints);
+ var box = hints.getBoundingClientRect();
+ var overlapX = box.right - winW, overlapY = box.bottom - winH;
+ if (overlapX > 0) {
+ if (box.right - box.left > winW) {
+ hints.style.width = (winW - 5) + "px";
+ overlapX -= (box.right - box.left) - winW;
+ }
+ hints.style.left = (left = pos.left - overlapX) + "px";
+ }
+ if (overlapY > 0) {
+ var height = box.bottom - box.top;
+ if (box.top - (pos.bottom - pos.top) - height > 0) {
+ overlapY = height + (pos.bottom - pos.top);
+ below = false;
+ } else if (height > winH) {
+ hints.style.height = (winH - 5) + "px";
+ overlapY -= height - winH;
+ }
+ hints.style.top = (top = pos.bottom - overlapY) + "px";
+ }
+
+ cm.addKeyMap(this.keyMap = buildKeyMap(options, {
+ moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); },
+ setFocus: function(n) { widget.changeActive(n); },
+ menuSize: function() { return widget.screenAmount(); },
+ length: completions.length,
+ close: function() { completion.close(); },
+ pick: function() { widget.pick(); }
+ }));
+
+ if (options.closeOnUnfocus !== false) {
+ var closingOnBlur;
+ cm.on("blur", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); });
+ cm.on("focus", this.onFocus = function() { clearTimeout(closingOnBlur); });
+ }
+
+ var startScroll = cm.getScrollInfo();
+ cm.on("scroll", this.onScroll = function() {
+ var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();
+ var newTop = top + startScroll.top - curScroll.top;
+ var point = newTop - (window.pageYOffset || (document.documentElement || document.body).scrollTop);
+ if (!below) point += hints.offsetHeight;
+ if (point <= editor.top || point >= editor.bottom) return completion.close();
+ hints.style.top = newTop + "px";
+ hints.style.left = (left + startScroll.left - curScroll.left) + "px";
+ });
+
+ CodeMirror.on(hints, "dblclick", function(e) {
+ var t = e.target || e.srcElement;
+ if (t.hintId != null) {widget.changeActive(t.hintId); widget.pick();}
+ });
+ CodeMirror.on(hints, "click", function(e) {
+ var t = e.target || e.srcElement;
+ if (t.hintId != null) widget.changeActive(t.hintId);
+ });
+ CodeMirror.on(hints, "mousedown", function() {
+ setTimeout(function(){cm.focus();}, 20);
+ });
+
+ CodeMirror.signal(data, "select", completions[0], hints.firstChild);
+ return true;
+ }
+
+ Widget.prototype = {
+ close: function() {
+ if (this.completion.widget != this) return;
+ this.completion.widget = null;
+ this.hints.parentNode.removeChild(this.hints);
+ this.completion.cm.removeKeyMap(this.keyMap);
+
+ var cm = this.completion.cm;
+ if (this.completion.options.closeOnUnfocus !== false) {
+ cm.off("blur", this.onBlur);
+ cm.off("focus", this.onFocus);
+ }
+ cm.off("scroll", this.onScroll);
+ },
+
+ pick: function() {
+ this.completion.pick(this.data, this.selectedHint);
+ },
+
+ changeActive: function(i, avoidWrap) {
+ if (i >= this.data.list.length)
+ i = avoidWrap ? this.data.list.length - 1 : 0;
+ else if (i < 0)
+ i = avoidWrap ? 0 : this.data.list.length - 1;
+ if (this.selectedHint == i) return;
+ var node = this.hints.childNodes[this.selectedHint];
+ node.className = node.className.replace(" CodeMirror-hint-active", "");
+ node = this.hints.childNodes[this.selectedHint = i];
+ node.className += " CodeMirror-hint-active";
+ if (node.offsetTop < this.hints.scrollTop)
+ this.hints.scrollTop = node.offsetTop - 3;
+ else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight)
+ this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3;
+ CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node);
+ },
+
+ screenAmount: function() {
+ return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1;
+ }
+ };
+})();
diff --git a/idrop-web/web-app/js/addon/hint/sql-hint.js b/idrop-web/web-app/js/addon/hint/sql-hint.js
new file mode 100644
index 0000000..95f6b50
--- /dev/null
+++ b/idrop-web/web-app/js/addon/hint/sql-hint.js
@@ -0,0 +1,105 @@
+(function () {
+ "use strict";
+
+ var tables;
+ var keywords;
+
+ function getKeywords(editor) {
+ var mode = editor.doc.modeOption;
+ if(mode === "sql") mode = "text/x-sql";
+ return CodeMirror.resolveMode(mode).keywords;
+ }
+
+ function match(string, word) {
+ var len = string.length;
+ var sub = word.substr(0, len);
+ return string.toUpperCase() === sub.toUpperCase();
+ }
+
+ function addMatches(result, search, wordlist, formatter) {
+ for(var word in wordlist) {
+ if(!wordlist.hasOwnProperty(word)) continue;
+ if(Array.isArray(wordlist)) {
+ word = wordlist[word];
+ }
+ if(match(search, word)) {
+ result.push(formatter(word));
+ }
+ }
+ }
+
+ function columnCompletion(result, editor) {
+ var cur = editor.getCursor();
+ var token = editor.getTokenAt(cur);
+ var string = token.string.substr(1);
+ var prevCur = CodeMirror.Pos(cur.line, token.start);
+ var table = editor.getTokenAt(prevCur).string;
+ var columns = tables[table];
+ if(!columns) {
+ table = findTableByAlias(table, editor);
+ }
+ columns = tables[table];
+ if(!columns) {
+ return;
+ }
+ addMatches(result, string, columns,
+ function(w) {return "." + w;});
+ }
+
+ function eachWord(line, f) {
+ var words = line.text.split(" ");
+ for(var i = 0; i < words.length; i++) {
+ f(words[i]);
+ }
+ }
+
+ // Tries to find possible table name from alias.
+ function findTableByAlias(alias, editor) {
+ var aliasUpperCase = alias.toUpperCase();
+ var previousWord = "";
+ var table = "";
+
+ editor.eachLine(function(line) {
+ eachWord(line, function(word) {
+ var wordUpperCase = word.toUpperCase();
+ if(wordUpperCase === aliasUpperCase) {
+ if(tables.hasOwnProperty(previousWord)) {
+ table = previousWord;
+ }
+ }
+ if(wordUpperCase !== "AS") {
+ previousWord = word;
+ }
+ });
+ });
+ return table;
+ }
+
+ function sqlHint(editor, options) {
+ tables = (options && options.tables) || {};
+ keywords = keywords || getKeywords(editor);
+ var cur = editor.getCursor();
+ var token = editor.getTokenAt(cur);
+
+ var result = [];
+
+ var search = token.string.trim();
+
+ addMatches(result, search, keywords,
+ function(w) {return w.toUpperCase();});
+
+ addMatches(result, search, tables,
+ function(w) {return w;});
+
+ if(search.lastIndexOf('.') === 0) {
+ columnCompletion(result, editor);
+ }
+
+ return {
+ list: result,
+ from: CodeMirror.Pos(cur.line, token.start),
+ to: CodeMirror.Pos(cur.line, token.end)
+ };
+ }
+ CodeMirror.registerHelper("hint", "sql", sqlHint);
+})();
diff --git a/idrop-web/web-app/js/addon/hint/xml-hint.js b/idrop-web/web-app/js/addon/hint/xml-hint.js
new file mode 100644
index 0000000..a721743
--- /dev/null
+++ b/idrop-web/web-app/js/addon/hint/xml-hint.js
@@ -0,0 +1,69 @@
+(function() {
+ "use strict";
+
+ var Pos = CodeMirror.Pos;
+
+ function getHints(cm, options) {
+ var tags = options && options.schemaInfo;
+ var quote = (options && options.quoteChar) || '"';
+ if (!tags) return;
+ var cur = cm.getCursor(), token = cm.getTokenAt(cur);
+ var inner = CodeMirror.innerMode(cm.getMode(), token.state);
+ if (inner.mode.name != "xml") return;
+ var result = [], replaceToken = false, prefix;
+ var isTag = token.string.charAt(0) == "<";
+ if (!inner.state.tagName || isTag) { // Tag completion
+ if (isTag) {
+ prefix = token.string.slice(1);
+ replaceToken = true;
+ }
+ var cx = inner.state.context, curTag = cx && tags[cx.tagName];
+ var childList = cx ? curTag && curTag.children : tags["!top"];
+ if (childList) {
+ for (var i = 0; i < childList.length; ++i) if (!prefix || childList[i].indexOf(prefix) == 0)
+ result.push("<" + childList[i]);
+ } else {
+ for (var name in tags) if (tags.hasOwnProperty(name) && name != "!top" && (!prefix || name.indexOf(prefix) == 0))
+ result.push("<" + name);
+ }
+ if (cx && (!prefix || ("/" + cx.tagName).indexOf(prefix) == 0))
+ result.push("</" + cx.tagName + ">");
+ } else {
+ // Attribute completion
+ var curTag = tags[inner.state.tagName], attrs = curTag && curTag.attrs;
+ if (!attrs) return;
+ if (token.type == "string" || token.string == "=") { // A value
+ var before = cm.getRange(Pos(cur.line, Math.max(0, cur.ch - 60)),
+ Pos(cur.line, token.type == "string" ? token.start : token.end));
+ var atName = before.match(/([^\s\u00a0=<>\"\']+)=$/), atValues;
+ if (!atName || !attrs.hasOwnProperty(atName[1]) || !(atValues = attrs[atName[1]])) return;
+ if (typeof atValues == 'function') atValues = atValues.call(this, cm); // Functions can be used to supply values for autocomplete widget
+ if (token.type == "string") {
+ prefix = token.string;
+ if (/['"]/.test(token.string.charAt(0))) {
+ quote = token.string.charAt(0);
+ prefix = token.string.slice(1);
+ }
+ replaceToken = true;
+ }
+ for (var i = 0; i < atValues.length; ++i) if (!prefix || atValues[i].indexOf(prefix) == 0)
+ result.push(quote + atValues[i] + quote);
+ } else { // An attribute name
+ if (token.type == "attribute") {
+ prefix = token.string;
+ replaceToken = true;
+ }
+ for (var attr in attrs) if (attrs.hasOwnProperty(attr) && (!prefix || attr.indexOf(prefix) == 0))
+ result.push(attr);
+ }
+ }
+ return {
+ list: result,
+ from: replaceToken ? Pos(cur.line, token.start) : cur,
+ to: replaceToken ? Pos(cur.line, token.end) : cur
+ };
+ }
+
+ CodeMirror.xmlHint = getHints; // deprecated
+ CodeMirror.registerHelper("hint", "xml", getHints);
+})();
diff --git a/idrop-web/web-app/js/addon/lint/coffeescript-lint.js b/idrop-web/web-app/js/addon/lint/coffeescript-lint.js
new file mode 100644
index 0000000..7f55a29
--- /dev/null
+++ b/idrop-web/web-app/js/addon/lint/coffeescript-lint.js
@@ -0,0 +1,27 @@
+// Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js
+
+// declare global: coffeelint
+
+CodeMirror.registerHelper("lint", "coffeescript", function(text) {
+ var found = [];
+ var parseError = function(err) {
+ var loc = err.lineNumber;
+ found.push({from: CodeMirror.Pos(loc-1, 0),
+ to: CodeMirror.Pos(loc, 0),
+ severity: err.level,
+ message: err.message});
+ };
+ try {
+ var res = coffeelint.lint(text);
+ for(var i = 0; i < res.length; i++) {
+ parseError(res[i]);
+ }
+ } catch(e) {
+ found.push({from: CodeMirror.Pos(e.location.first_line, 0),
+ to: CodeMirror.Pos(e.location.last_line, e.location.last_column),
+ severity: 'error',
+ message: e.message});
+ }
+ return found;
+});
+CodeMirror.coffeeValidator = CodeMirror.lint.coffeescript; // deprecated
diff --git a/idrop-web/web-app/js/addon/lint/css-lint.js b/idrop-web/web-app/js/addon/lint/css-lint.js
new file mode 100644
index 0000000..1de71fb
--- /dev/null
+++ b/idrop-web/web-app/js/addon/lint/css-lint.js
@@ -0,0 +1,19 @@
+// Depends on csslint.js from https://github.com/stubbornella/csslint
+
+// declare global: CSSLint
+
+CodeMirror.registerHelper("lint", "css", function(text) {
+ var found = [];
+ var results = CSSLint.verify(text), messages = results.messages, message = null;
+ for ( var i = 0; i < messages.length; i++) {
+ message = messages[i];
+ var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col;
+ found.push({
+ from: CodeMirror.Pos(startLine, startCol),
+ to: CodeMirror.Pos(endLine, endCol),
+ message: message.message,
+ severity : message.type
+ });
+ }
+ return found;
+});
diff --git a/idrop-web/web-app/js/addon/lint/javascript-lint.js b/idrop-web/web-app/js/addon/lint/javascript-lint.js
new file mode 100644
index 0000000..7123ab7
--- /dev/null
+++ b/idrop-web/web-app/js/addon/lint/javascript-lint.js
@@ -0,0 +1,126 @@
+(function() {
+ "use strict";
+ // declare global: JSHINT
+
+ var bogus = [ "Dangerous comment" ];
+
+ var warnings = [ [ "Expected '{'",
+ "Statement body should be inside '{ }' braces." ] ];
+
+ var errors = [ "Missing semicolon", "Extra comma", "Missing property name",
+ "Unmatched ", " and instead saw", " is not defined",
+ "Unclosed string", "Stopping, unable to continue" ];
+
+ function validator(text, options) {
+ JSHINT(text, options);
+ var errors = JSHINT.data().errors, result = [];
+ if (errors) parseErrors(errors, result);
+ return result;
+ }
+
+ CodeMirror.registerHelper("lint", "javascript", validator);
+ CodeMirror.javascriptValidator = CodeMirror.lint.javascript; // deprecated
+
+ function cleanup(error) {
+ // All problems are warnings by default
+ fixWith(error, warnings, "warning", true);
+ fixWith(error, errors, "error");
+
+ return isBogus(error) ? null : error;
+ }
+
+ function fixWith(error, fixes, severity, force) {
+ var description, fix, find, replace, found;
+
+ description = error.description;
+
+ for ( var i = 0; i < fixes.length; i++) {
+ fix = fixes[i];
+ find = (typeof fix === "string" ? fix : fix[0]);
+ replace = (typeof fix === "string" ? null : fix[1]);
+ found = description.indexOf(find) !== -1;
+
+ if (force || found) {
+ error.severity = severity;
+ }
+ if (found && replace) {
+ error.description = replace;
+ }
+ }
+ }
+
+ function isBogus(error) {
+ var description = error.description;
+ for ( var i = 0; i < bogus.length; i++) {
+ if (description.indexOf(bogus[i]) !== -1) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ function parseErrors(errors, output) {
+ for ( var i = 0; i < errors.length; i++) {
+ var error = errors[i];
+ if (error) {
+ var linetabpositions, index;
+
+ linetabpositions = [];
+
+ // This next block is to fix a problem in jshint. Jshint
+ // replaces
+ // all tabs with spaces then performs some checks. The error
+ // positions (character/space) are then reported incorrectly,
+ // not taking the replacement step into account. Here we look
+ // at the evidence line and try to adjust the character position
+ // to the correct value.
+ if (error.evidence) {
+ // Tab positions are computed once per line and cached
+ var tabpositions = linetabpositions[error.line];
+ if (!tabpositions) {
+ var evidence = error.evidence;
+ tabpositions = [];
+ // ugggh phantomjs does not like this
+ // forEachChar(evidence, function(item, index) {
+ Array.prototype.forEach.call(evidence, function(item,
+ index) {
+ if (item === '\t') {
+ // First col is 1 (not 0) to match error
+ // positions
+ tabpositions.push(index + 1);
+ }
+ });
+ linetabpositions[error.line] = tabpositions;
+