lalala 4.0.0.dev.46
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +23 -0
- data/.gitmodules +6 -0
- data/.travis.yml +17 -0
- data/Gemfile +8 -0
- data/LICENSE.txt +22 -0
- data/README.md +25 -0
- data/Rakefile +63 -0
- data/app/assets/images/.DS_Store +0 -0
- data/app/assets/images/lalala/icons/accept.png +0 -0
- data/app/assets/images/lalala/icons/add.png +0 -0
- data/app/assets/images/lalala/icons/anchor.png +0 -0
- data/app/assets/images/lalala/icons/application.png +0 -0
- data/app/assets/images/lalala/icons/application_add.png +0 -0
- data/app/assets/images/lalala/icons/application_cascade.png +0 -0
- data/app/assets/images/lalala/icons/application_delete.png +0 -0
- data/app/assets/images/lalala/icons/application_double.png +0 -0
- data/app/assets/images/lalala/icons/application_edit.png +0 -0
- data/app/assets/images/lalala/icons/application_error.png +0 -0
- data/app/assets/images/lalala/icons/application_form.png +0 -0
- data/app/assets/images/lalala/icons/application_form_add.png +0 -0
- data/app/assets/images/lalala/icons/application_form_delete.png +0 -0
- data/app/assets/images/lalala/icons/application_form_edit.png +0 -0
- data/app/assets/images/lalala/icons/application_form_magnify.png +0 -0
- data/app/assets/images/lalala/icons/application_get.png +0 -0
- data/app/assets/images/lalala/icons/application_go.png +0 -0
- data/app/assets/images/lalala/icons/application_home.png +0 -0
- data/app/assets/images/lalala/icons/application_key.png +0 -0
- data/app/assets/images/lalala/icons/application_lightning.png +0 -0
- data/app/assets/images/lalala/icons/application_link.png +0 -0
- data/app/assets/images/lalala/icons/application_osx.png +0 -0
- data/app/assets/images/lalala/icons/application_osx_terminal.png +0 -0
- data/app/assets/images/lalala/icons/application_put.png +0 -0
- data/app/assets/images/lalala/icons/application_side_boxes.png +0 -0
- data/app/assets/images/lalala/icons/application_side_contract.png +0 -0
- data/app/assets/images/lalala/icons/application_side_expand.png +0 -0
- data/app/assets/images/lalala/icons/application_side_list.png +0 -0
- data/app/assets/images/lalala/icons/application_side_tree.png +0 -0
- data/app/assets/images/lalala/icons/application_split.png +0 -0
- data/app/assets/images/lalala/icons/application_tile_horizontal.png +0 -0
- data/app/assets/images/lalala/icons/application_tile_vertical.png +0 -0
- data/app/assets/images/lalala/icons/application_view_columns.png +0 -0
- data/app/assets/images/lalala/icons/application_view_detail.png +0 -0
- data/app/assets/images/lalala/icons/application_view_gallery.png +0 -0
- data/app/assets/images/lalala/icons/application_view_icons.png +0 -0
- data/app/assets/images/lalala/icons/application_view_list.png +0 -0
- data/app/assets/images/lalala/icons/application_view_tile.png +0 -0
- data/app/assets/images/lalala/icons/application_xp.png +0 -0
- data/app/assets/images/lalala/icons/application_xp_terminal.png +0 -0
- data/app/assets/images/lalala/icons/architect.png +0 -0
- data/app/assets/images/lalala/icons/arrow_branch.png +0 -0
- data/app/assets/images/lalala/icons/arrow_divide.png +0 -0
- data/app/assets/images/lalala/icons/arrow_down.png +0 -0
- data/app/assets/images/lalala/icons/arrow_in.png +0 -0
- data/app/assets/images/lalala/icons/arrow_inout.png +0 -0
- data/app/assets/images/lalala/icons/arrow_join.png +0 -0
- data/app/assets/images/lalala/icons/arrow_left.png +0 -0
- data/app/assets/images/lalala/icons/arrow_merge.png +0 -0
- data/app/assets/images/lalala/icons/arrow_out.png +0 -0
- data/app/assets/images/lalala/icons/arrow_redo.png +0 -0
- data/app/assets/images/lalala/icons/arrow_refresh.png +0 -0
- data/app/assets/images/lalala/icons/arrow_refresh_small.png +0 -0
- data/app/assets/images/lalala/icons/arrow_right.png +0 -0
- data/app/assets/images/lalala/icons/arrow_rotate_anticlockwise.png +0 -0
- data/app/assets/images/lalala/icons/arrow_rotate_clockwise.png +0 -0
- data/app/assets/images/lalala/icons/arrow_switch.png +0 -0
- data/app/assets/images/lalala/icons/arrow_turn_left.png +0 -0
- data/app/assets/images/lalala/icons/arrow_turn_right.png +0 -0
- data/app/assets/images/lalala/icons/arrow_undo.png +0 -0
- data/app/assets/images/lalala/icons/arrow_up.png +0 -0
- data/app/assets/images/lalala/icons/arrow_white_left.png +0 -0
- data/app/assets/images/lalala/icons/arrow_white_right.png +0 -0
- data/app/assets/images/lalala/icons/asterisk_orange.png +0 -0
- data/app/assets/images/lalala/icons/asterisk_yellow.png +0 -0
- data/app/assets/images/lalala/icons/attach.png +0 -0
- data/app/assets/images/lalala/icons/award_star_add.png +0 -0
- data/app/assets/images/lalala/icons/award_star_bronze_1.png +0 -0
- data/app/assets/images/lalala/icons/award_star_bronze_2.png +0 -0
- data/app/assets/images/lalala/icons/award_star_bronze_3.png +0 -0
- data/app/assets/images/lalala/icons/award_star_delete.png +0 -0
- data/app/assets/images/lalala/icons/award_star_gold_1.png +0 -0
- data/app/assets/images/lalala/icons/award_star_gold_2.png +0 -0
- data/app/assets/images/lalala/icons/award_star_gold_3.png +0 -0
- data/app/assets/images/lalala/icons/award_star_silver_1.png +0 -0
- data/app/assets/images/lalala/icons/award_star_silver_2.png +0 -0
- data/app/assets/images/lalala/icons/award_star_silver_3.png +0 -0
- data/app/assets/images/lalala/icons/basket.png +0 -0
- data/app/assets/images/lalala/icons/basket_add.png +0 -0
- data/app/assets/images/lalala/icons/basket_delete.png +0 -0
- data/app/assets/images/lalala/icons/basket_edit.png +0 -0
- data/app/assets/images/lalala/icons/basket_error.png +0 -0
- data/app/assets/images/lalala/icons/basket_go.png +0 -0
- data/app/assets/images/lalala/icons/basket_put.png +0 -0
- data/app/assets/images/lalala/icons/basket_remove.png +0 -0
- data/app/assets/images/lalala/icons/bell.png +0 -0
- data/app/assets/images/lalala/icons/bell_add.png +0 -0
- data/app/assets/images/lalala/icons/bell_delete.png +0 -0
- data/app/assets/images/lalala/icons/bell_error.png +0 -0
- data/app/assets/images/lalala/icons/bell_go.png +0 -0
- data/app/assets/images/lalala/icons/bell_link.png +0 -0
- data/app/assets/images/lalala/icons/bin.png +0 -0
- data/app/assets/images/lalala/icons/bin_closed.png +0 -0
- data/app/assets/images/lalala/icons/bin_empty.png +0 -0
- data/app/assets/images/lalala/icons/bomb.png +0 -0
- data/app/assets/images/lalala/icons/book.png +0 -0
- data/app/assets/images/lalala/icons/book_add.png +0 -0
- data/app/assets/images/lalala/icons/book_addresses.png +0 -0
- data/app/assets/images/lalala/icons/book_delete.png +0 -0
- data/app/assets/images/lalala/icons/book_edit.png +0 -0
- data/app/assets/images/lalala/icons/book_error.png +0 -0
- data/app/assets/images/lalala/icons/book_go.png +0 -0
- data/app/assets/images/lalala/icons/book_key.png +0 -0
- data/app/assets/images/lalala/icons/book_link.png +0 -0
- data/app/assets/images/lalala/icons/book_next.png +0 -0
- data/app/assets/images/lalala/icons/book_open.png +0 -0
- data/app/assets/images/lalala/icons/book_previous.png +0 -0
- data/app/assets/images/lalala/icons/box.png +0 -0
- data/app/assets/images/lalala/icons/brick.png +0 -0
- data/app/assets/images/lalala/icons/brick_add.png +0 -0
- data/app/assets/images/lalala/icons/brick_delete.png +0 -0
- data/app/assets/images/lalala/icons/brick_edit.png +0 -0
- data/app/assets/images/lalala/icons/brick_error.png +0 -0
- data/app/assets/images/lalala/icons/brick_go.png +0 -0
- data/app/assets/images/lalala/icons/brick_link.png +0 -0
- data/app/assets/images/lalala/icons/bricks.png +0 -0
- data/app/assets/images/lalala/icons/briefcase.png +0 -0
- data/app/assets/images/lalala/icons/bug.png +0 -0
- data/app/assets/images/lalala/icons/bug_add.png +0 -0
- data/app/assets/images/lalala/icons/bug_delete.png +0 -0
- data/app/assets/images/lalala/icons/bug_edit.png +0 -0
- data/app/assets/images/lalala/icons/bug_error.png +0 -0
- data/app/assets/images/lalala/icons/bug_go.png +0 -0
- data/app/assets/images/lalala/icons/bug_link.png +0 -0
- data/app/assets/images/lalala/icons/building.png +0 -0
- data/app/assets/images/lalala/icons/building_add.png +0 -0
- data/app/assets/images/lalala/icons/building_delete.png +0 -0
- data/app/assets/images/lalala/icons/building_edit.png +0 -0
- data/app/assets/images/lalala/icons/building_error.png +0 -0
- data/app/assets/images/lalala/icons/building_go.png +0 -0
- data/app/assets/images/lalala/icons/building_key.png +0 -0
- data/app/assets/images/lalala/icons/building_link.png +0 -0
- data/app/assets/images/lalala/icons/bullet_add.png +0 -0
- data/app/assets/images/lalala/icons/bullet_arrow_bottom.png +0 -0
- data/app/assets/images/lalala/icons/bullet_arrow_down.png +0 -0
- data/app/assets/images/lalala/icons/bullet_arrow_top.png +0 -0
- data/app/assets/images/lalala/icons/bullet_arrow_up.png +0 -0
- data/app/assets/images/lalala/icons/bullet_black.png +0 -0
- data/app/assets/images/lalala/icons/bullet_blue.png +0 -0
- data/app/assets/images/lalala/icons/bullet_delete.png +0 -0
- data/app/assets/images/lalala/icons/bullet_disk.png +0 -0
- data/app/assets/images/lalala/icons/bullet_error.png +0 -0
- data/app/assets/images/lalala/icons/bullet_feed.png +0 -0
- data/app/assets/images/lalala/icons/bullet_go.png +0 -0
- data/app/assets/images/lalala/icons/bullet_green.png +0 -0
- data/app/assets/images/lalala/icons/bullet_key.png +0 -0
- data/app/assets/images/lalala/icons/bullet_orange.png +0 -0
- data/app/assets/images/lalala/icons/bullet_picture.png +0 -0
- data/app/assets/images/lalala/icons/bullet_pink.png +0 -0
- data/app/assets/images/lalala/icons/bullet_purple.png +0 -0
- data/app/assets/images/lalala/icons/bullet_red.png +0 -0
- data/app/assets/images/lalala/icons/bullet_star.png +0 -0
- data/app/assets/images/lalala/icons/bullet_toggle_minus.png +0 -0
- data/app/assets/images/lalala/icons/bullet_toggle_plus.png +0 -0
- data/app/assets/images/lalala/icons/bullet_white.png +0 -0
- data/app/assets/images/lalala/icons/bullet_wrench.png +0 -0
- data/app/assets/images/lalala/icons/bullet_yellow.png +0 -0
- data/app/assets/images/lalala/icons/cake.png +0 -0
- data/app/assets/images/lalala/icons/calculator.png +0 -0
- data/app/assets/images/lalala/icons/calculator_add.png +0 -0
- data/app/assets/images/lalala/icons/calculator_delete.png +0 -0
- data/app/assets/images/lalala/icons/calculator_edit.png +0 -0
- data/app/assets/images/lalala/icons/calculator_error.png +0 -0
- data/app/assets/images/lalala/icons/calculator_link.png +0 -0
- data/app/assets/images/lalala/icons/calendar.png +0 -0
- data/app/assets/images/lalala/icons/calendar_add.png +0 -0
- data/app/assets/images/lalala/icons/calendar_delete.png +0 -0
- data/app/assets/images/lalala/icons/calendar_edit.png +0 -0
- data/app/assets/images/lalala/icons/calendar_link.png +0 -0
- data/app/assets/images/lalala/icons/calendar_view_day.png +0 -0
- data/app/assets/images/lalala/icons/calendar_view_month.png +0 -0
- data/app/assets/images/lalala/icons/calendar_view_week.png +0 -0
- data/app/assets/images/lalala/icons/camera.png +0 -0
- data/app/assets/images/lalala/icons/camera_add.png +0 -0
- data/app/assets/images/lalala/icons/camera_delete.png +0 -0
- data/app/assets/images/lalala/icons/camera_edit.png +0 -0
- data/app/assets/images/lalala/icons/camera_error.png +0 -0
- data/app/assets/images/lalala/icons/camera_go.png +0 -0
- data/app/assets/images/lalala/icons/camera_link.png +0 -0
- data/app/assets/images/lalala/icons/camera_small.png +0 -0
- data/app/assets/images/lalala/icons/cancel.png +0 -0
- data/app/assets/images/lalala/icons/car.png +0 -0
- data/app/assets/images/lalala/icons/car_add.png +0 -0
- data/app/assets/images/lalala/icons/car_delete.png +0 -0
- data/app/assets/images/lalala/icons/cart.png +0 -0
- data/app/assets/images/lalala/icons/cart_add.png +0 -0
- data/app/assets/images/lalala/icons/cart_delete.png +0 -0
- data/app/assets/images/lalala/icons/cart_edit.png +0 -0
- data/app/assets/images/lalala/icons/cart_error.png +0 -0
- data/app/assets/images/lalala/icons/cart_go.png +0 -0
- data/app/assets/images/lalala/icons/cart_put.png +0 -0
- data/app/assets/images/lalala/icons/cart_remove.png +0 -0
- data/app/assets/images/lalala/icons/cd.png +0 -0
- data/app/assets/images/lalala/icons/cd_add.png +0 -0
- data/app/assets/images/lalala/icons/cd_burn.png +0 -0
- data/app/assets/images/lalala/icons/cd_delete.png +0 -0
- data/app/assets/images/lalala/icons/cd_edit.png +0 -0
- data/app/assets/images/lalala/icons/cd_eject.png +0 -0
- data/app/assets/images/lalala/icons/cd_go.png +0 -0
- data/app/assets/images/lalala/icons/chart_bar.png +0 -0
- data/app/assets/images/lalala/icons/chart_bar_add.png +0 -0
- data/app/assets/images/lalala/icons/chart_bar_delete.png +0 -0
- data/app/assets/images/lalala/icons/chart_bar_edit.png +0 -0
- data/app/assets/images/lalala/icons/chart_bar_error.png +0 -0
- data/app/assets/images/lalala/icons/chart_bar_link.png +0 -0
- data/app/assets/images/lalala/icons/chart_curve.png +0 -0
- data/app/assets/images/lalala/icons/chart_curve_add.png +0 -0
- data/app/assets/images/lalala/icons/chart_curve_delete.png +0 -0
- data/app/assets/images/lalala/icons/chart_curve_edit.png +0 -0
- data/app/assets/images/lalala/icons/chart_curve_error.png +0 -0
- data/app/assets/images/lalala/icons/chart_curve_go.png +0 -0
- data/app/assets/images/lalala/icons/chart_curve_link.png +0 -0
- data/app/assets/images/lalala/icons/chart_line.png +0 -0
- data/app/assets/images/lalala/icons/chart_line_add.png +0 -0
- data/app/assets/images/lalala/icons/chart_line_delete.png +0 -0
- data/app/assets/images/lalala/icons/chart_line_edit.png +0 -0
- data/app/assets/images/lalala/icons/chart_line_error.png +0 -0
- data/app/assets/images/lalala/icons/chart_line_link.png +0 -0
- data/app/assets/images/lalala/icons/chart_organisation.png +0 -0
- data/app/assets/images/lalala/icons/chart_organisation_add.png +0 -0
- data/app/assets/images/lalala/icons/chart_organisation_delete.png +0 -0
- data/app/assets/images/lalala/icons/chart_pie.png +0 -0
- data/app/assets/images/lalala/icons/chart_pie_add.png +0 -0
- data/app/assets/images/lalala/icons/chart_pie_delete.png +0 -0
- data/app/assets/images/lalala/icons/chart_pie_edit.png +0 -0
- data/app/assets/images/lalala/icons/chart_pie_error.png +0 -0
- data/app/assets/images/lalala/icons/chart_pie_link.png +0 -0
- data/app/assets/images/lalala/icons/clock.png +0 -0
- data/app/assets/images/lalala/icons/clock_add.png +0 -0
- data/app/assets/images/lalala/icons/clock_delete.png +0 -0
- data/app/assets/images/lalala/icons/clock_edit.png +0 -0
- data/app/assets/images/lalala/icons/clock_error.png +0 -0
- data/app/assets/images/lalala/icons/clock_go.png +0 -0
- data/app/assets/images/lalala/icons/clock_link.png +0 -0
- data/app/assets/images/lalala/icons/clock_pause.png +0 -0
- data/app/assets/images/lalala/icons/clock_play.png +0 -0
- data/app/assets/images/lalala/icons/clock_red.png +0 -0
- data/app/assets/images/lalala/icons/clock_stop.png +0 -0
- data/app/assets/images/lalala/icons/close.png +0 -0
- data/app/assets/images/lalala/icons/cog.png +0 -0
- data/app/assets/images/lalala/icons/cog_add.png +0 -0
- data/app/assets/images/lalala/icons/cog_delete.png +0 -0
- data/app/assets/images/lalala/icons/cog_edit.png +0 -0
- data/app/assets/images/lalala/icons/cog_error.png +0 -0
- data/app/assets/images/lalala/icons/cog_go.png +0 -0
- data/app/assets/images/lalala/icons/coins.png +0 -0
- data/app/assets/images/lalala/icons/coins_add.png +0 -0
- data/app/assets/images/lalala/icons/coins_delete.png +0 -0
- data/app/assets/images/lalala/icons/color_swatch.png +0 -0
- data/app/assets/images/lalala/icons/color_wheel.png +0 -0
- data/app/assets/images/lalala/icons/comment.png +0 -0
- data/app/assets/images/lalala/icons/comment_add.png +0 -0
- data/app/assets/images/lalala/icons/comment_delete.png +0 -0
- data/app/assets/images/lalala/icons/comment_edit.png +0 -0
- data/app/assets/images/lalala/icons/comments.png +0 -0
- data/app/assets/images/lalala/icons/comments_add.png +0 -0
- data/app/assets/images/lalala/icons/comments_delete.png +0 -0
- data/app/assets/images/lalala/icons/compress.png +0 -0
- data/app/assets/images/lalala/icons/computer.png +0 -0
- data/app/assets/images/lalala/icons/computer_add.png +0 -0
- data/app/assets/images/lalala/icons/computer_delete.png +0 -0
- data/app/assets/images/lalala/icons/computer_edit.png +0 -0
- data/app/assets/images/lalala/icons/computer_error.png +0 -0
- data/app/assets/images/lalala/icons/computer_go.png +0 -0
- data/app/assets/images/lalala/icons/computer_key.png +0 -0
- data/app/assets/images/lalala/icons/computer_link.png +0 -0
- data/app/assets/images/lalala/icons/connect.png +0 -0
- data/app/assets/images/lalala/icons/contrast.png +0 -0
- data/app/assets/images/lalala/icons/contrast_decrease.png +0 -0
- data/app/assets/images/lalala/icons/contrast_high.png +0 -0
- data/app/assets/images/lalala/icons/contrast_increase.png +0 -0
- data/app/assets/images/lalala/icons/contrast_low.png +0 -0
- data/app/assets/images/lalala/icons/control_eject.png +0 -0
- data/app/assets/images/lalala/icons/control_eject_blue.png +0 -0
- data/app/assets/images/lalala/icons/control_end.png +0 -0
- data/app/assets/images/lalala/icons/control_end_blue.png +0 -0
- data/app/assets/images/lalala/icons/control_equalizer.png +0 -0
- data/app/assets/images/lalala/icons/control_equalizer_blue.png +0 -0
- data/app/assets/images/lalala/icons/control_fastforward.png +0 -0
- data/app/assets/images/lalala/icons/control_fastforward_blue.png +0 -0
- data/app/assets/images/lalala/icons/control_pause.png +0 -0
- data/app/assets/images/lalala/icons/control_pause_blue.png +0 -0
- data/app/assets/images/lalala/icons/control_play.png +0 -0
- data/app/assets/images/lalala/icons/control_play_blue.png +0 -0
- data/app/assets/images/lalala/icons/control_repeat.png +0 -0
- data/app/assets/images/lalala/icons/control_repeat_blue.png +0 -0
- data/app/assets/images/lalala/icons/control_rewind.png +0 -0
- data/app/assets/images/lalala/icons/control_rewind_blue.png +0 -0
- data/app/assets/images/lalala/icons/control_start.png +0 -0
- data/app/assets/images/lalala/icons/control_start_blue.png +0 -0
- data/app/assets/images/lalala/icons/control_stop.png +0 -0
- data/app/assets/images/lalala/icons/control_stop_blue.png +0 -0
- data/app/assets/images/lalala/icons/controller.png +0 -0
- data/app/assets/images/lalala/icons/controller_add.png +0 -0
- data/app/assets/images/lalala/icons/controller_delete.png +0 -0
- data/app/assets/images/lalala/icons/controller_error.png +0 -0
- data/app/assets/images/lalala/icons/creditcards.png +0 -0
- data/app/assets/images/lalala/icons/cross.png +0 -0
- data/app/assets/images/lalala/icons/crosshair.png +0 -0
- data/app/assets/images/lalala/icons/css.png +0 -0
- data/app/assets/images/lalala/icons/css_add.png +0 -0
- data/app/assets/images/lalala/icons/css_delete.png +0 -0
- data/app/assets/images/lalala/icons/css_go.png +0 -0
- data/app/assets/images/lalala/icons/css_valid.png +0 -0
- data/app/assets/images/lalala/icons/cup.png +0 -0
- data/app/assets/images/lalala/icons/cup_add.png +0 -0
- data/app/assets/images/lalala/icons/cup_delete.png +0 -0
- data/app/assets/images/lalala/icons/cup_edit.png +0 -0
- data/app/assets/images/lalala/icons/cup_error.png +0 -0
- data/app/assets/images/lalala/icons/cup_go.png +0 -0
- data/app/assets/images/lalala/icons/cup_key.png +0 -0
- data/app/assets/images/lalala/icons/cup_link.png +0 -0
- data/app/assets/images/lalala/icons/cursor.png +0 -0
- data/app/assets/images/lalala/icons/cut.png +0 -0
- data/app/assets/images/lalala/icons/cut_red.png +0 -0
- data/app/assets/images/lalala/icons/database.png +0 -0
- data/app/assets/images/lalala/icons/database_add.png +0 -0
- data/app/assets/images/lalala/icons/database_connect.png +0 -0
- data/app/assets/images/lalala/icons/database_delete.png +0 -0
- data/app/assets/images/lalala/icons/database_edit.png +0 -0
- data/app/assets/images/lalala/icons/database_error.png +0 -0
- data/app/assets/images/lalala/icons/database_gear.png +0 -0
- data/app/assets/images/lalala/icons/database_go.png +0 -0
- data/app/assets/images/lalala/icons/database_key.png +0 -0
- data/app/assets/images/lalala/icons/database_lightning.png +0 -0
- data/app/assets/images/lalala/icons/database_link.png +0 -0
- data/app/assets/images/lalala/icons/database_refresh.png +0 -0
- data/app/assets/images/lalala/icons/database_save.png +0 -0
- data/app/assets/images/lalala/icons/database_table.png +0 -0
- data/app/assets/images/lalala/icons/date.png +0 -0
- data/app/assets/images/lalala/icons/date_add.png +0 -0
- data/app/assets/images/lalala/icons/date_delete.png +0 -0
- data/app/assets/images/lalala/icons/date_disabled.png +0 -0
- data/app/assets/images/lalala/icons/date_edit.png +0 -0
- data/app/assets/images/lalala/icons/date_error.png +0 -0
- data/app/assets/images/lalala/icons/date_go.png +0 -0
- data/app/assets/images/lalala/icons/date_link.png +0 -0
- data/app/assets/images/lalala/icons/date_magnify.png +0 -0
- data/app/assets/images/lalala/icons/date_next.png +0 -0
- data/app/assets/images/lalala/icons/date_previous.png +0 -0
- data/app/assets/images/lalala/icons/delete.png +0 -0
- data/app/assets/images/lalala/icons/disconnect.png +0 -0
- data/app/assets/images/lalala/icons/disk.png +0 -0
- data/app/assets/images/lalala/icons/disk_multiple.png +0 -0
- data/app/assets/images/lalala/icons/door.png +0 -0
- data/app/assets/images/lalala/icons/door_in.png +0 -0
- data/app/assets/images/lalala/icons/door_open.png +0 -0
- data/app/assets/images/lalala/icons/door_out.png +0 -0
- data/app/assets/images/lalala/icons/drink.png +0 -0
- data/app/assets/images/lalala/icons/drink_empty.png +0 -0
- data/app/assets/images/lalala/icons/drive.png +0 -0
- data/app/assets/images/lalala/icons/drive_add.png +0 -0
- data/app/assets/images/lalala/icons/drive_burn.png +0 -0
- data/app/assets/images/lalala/icons/drive_cd.png +0 -0
- data/app/assets/images/lalala/icons/drive_cd_empty.png +0 -0
- data/app/assets/images/lalala/icons/drive_delete.png +0 -0
- data/app/assets/images/lalala/icons/drive_disk.png +0 -0
- data/app/assets/images/lalala/icons/drive_edit.png +0 -0
- data/app/assets/images/lalala/icons/drive_error.png +0 -0
- data/app/assets/images/lalala/icons/drive_go.png +0 -0
- data/app/assets/images/lalala/icons/drive_key.png +0 -0
- data/app/assets/images/lalala/icons/drive_link.png +0 -0
- data/app/assets/images/lalala/icons/drive_magnify.png +0 -0
- data/app/assets/images/lalala/icons/drive_network.png +0 -0
- data/app/assets/images/lalala/icons/drive_rename.png +0 -0
- data/app/assets/images/lalala/icons/drive_user.png +0 -0
- data/app/assets/images/lalala/icons/drive_web.png +0 -0
- data/app/assets/images/lalala/icons/dvd.png +0 -0
- data/app/assets/images/lalala/icons/dvd_add.png +0 -0
- data/app/assets/images/lalala/icons/dvd_delete.png +0 -0
- data/app/assets/images/lalala/icons/dvd_edit.png +0 -0
- data/app/assets/images/lalala/icons/dvd_error.png +0 -0
- data/app/assets/images/lalala/icons/dvd_go.png +0 -0
- data/app/assets/images/lalala/icons/dvd_key.png +0 -0
- data/app/assets/images/lalala/icons/dvd_link.png +0 -0
- data/app/assets/images/lalala/icons/email.png +0 -0
- data/app/assets/images/lalala/icons/email_add.png +0 -0
- data/app/assets/images/lalala/icons/email_attach.png +0 -0
- data/app/assets/images/lalala/icons/email_delete.png +0 -0
- data/app/assets/images/lalala/icons/email_edit.png +0 -0
- data/app/assets/images/lalala/icons/email_error.png +0 -0
- data/app/assets/images/lalala/icons/email_go.png +0 -0
- data/app/assets/images/lalala/icons/email_link.png +0 -0
- data/app/assets/images/lalala/icons/email_open.png +0 -0
- data/app/assets/images/lalala/icons/email_open_image.png +0 -0
- data/app/assets/images/lalala/icons/emoticon_evilgrin.png +0 -0
- data/app/assets/images/lalala/icons/emoticon_grin.png +0 -0
- data/app/assets/images/lalala/icons/emoticon_happy.png +0 -0
- data/app/assets/images/lalala/icons/emoticon_smile.png +0 -0
- data/app/assets/images/lalala/icons/emoticon_surprised.png +0 -0
- data/app/assets/images/lalala/icons/emoticon_tongue.png +0 -0
- data/app/assets/images/lalala/icons/emoticon_unhappy.png +0 -0
- data/app/assets/images/lalala/icons/emoticon_waii.png +0 -0
- data/app/assets/images/lalala/icons/emoticon_wink.png +0 -0
- data/app/assets/images/lalala/icons/error.png +0 -0
- data/app/assets/images/lalala/icons/error_add.png +0 -0
- data/app/assets/images/lalala/icons/error_delete.png +0 -0
- data/app/assets/images/lalala/icons/error_go.png +0 -0
- data/app/assets/images/lalala/icons/exclamation.png +0 -0
- data/app/assets/images/lalala/icons/eye.png +0 -0
- data/app/assets/images/lalala/icons/feed.png +0 -0
- data/app/assets/images/lalala/icons/feed_add.png +0 -0
- data/app/assets/images/lalala/icons/feed_delete.png +0 -0
- data/app/assets/images/lalala/icons/feed_disk.png +0 -0
- data/app/assets/images/lalala/icons/feed_edit.png +0 -0
- data/app/assets/images/lalala/icons/feed_error.png +0 -0
- data/app/assets/images/lalala/icons/feed_go.png +0 -0
- data/app/assets/images/lalala/icons/feed_key.png +0 -0
- data/app/assets/images/lalala/icons/feed_link.png +0 -0
- data/app/assets/images/lalala/icons/feed_magnify.png +0 -0
- data/app/assets/images/lalala/icons/female.png +0 -0
- data/app/assets/images/lalala/icons/film.png +0 -0
- data/app/assets/images/lalala/icons/film_add.png +0 -0
- data/app/assets/images/lalala/icons/film_delete.png +0 -0
- data/app/assets/images/lalala/icons/film_edit.png +0 -0
- data/app/assets/images/lalala/icons/film_error.png +0 -0
- data/app/assets/images/lalala/icons/film_go.png +0 -0
- data/app/assets/images/lalala/icons/film_key.png +0 -0
- data/app/assets/images/lalala/icons/film_link.png +0 -0
- data/app/assets/images/lalala/icons/film_save.png +0 -0
- data/app/assets/images/lalala/icons/find.png +0 -0
- data/app/assets/images/lalala/icons/flag_blue.png +0 -0
- data/app/assets/images/lalala/icons/flag_green.png +0 -0
- data/app/assets/images/lalala/icons/flag_orange.png +0 -0
- data/app/assets/images/lalala/icons/flag_pink.png +0 -0
- data/app/assets/images/lalala/icons/flag_purple.png +0 -0
- data/app/assets/images/lalala/icons/flag_red.png +0 -0
- data/app/assets/images/lalala/icons/flag_yellow.png +0 -0
- data/app/assets/images/lalala/icons/folder.png +0 -0
- data/app/assets/images/lalala/icons/folder_add.png +0 -0
- data/app/assets/images/lalala/icons/folder_bell.png +0 -0
- data/app/assets/images/lalala/icons/folder_brick.png +0 -0
- data/app/assets/images/lalala/icons/folder_bug.png +0 -0
- data/app/assets/images/lalala/icons/folder_camera.png +0 -0
- data/app/assets/images/lalala/icons/folder_closed.png +0 -0
- data/app/assets/images/lalala/icons/folder_database.png +0 -0
- data/app/assets/images/lalala/icons/folder_delete.png +0 -0
- data/app/assets/images/lalala/icons/folder_edit.png +0 -0
- data/app/assets/images/lalala/icons/folder_error.png +0 -0
- data/app/assets/images/lalala/icons/folder_explore.png +0 -0
- data/app/assets/images/lalala/icons/folder_feed.png +0 -0
- data/app/assets/images/lalala/icons/folder_find.png +0 -0
- data/app/assets/images/lalala/icons/folder_go.png +0 -0
- data/app/assets/images/lalala/icons/folder_heart.png +0 -0
- data/app/assets/images/lalala/icons/folder_image.png +0 -0
- data/app/assets/images/lalala/icons/folder_key.png +0 -0
- data/app/assets/images/lalala/icons/folder_lightbulb.png +0 -0
- data/app/assets/images/lalala/icons/folder_link.png +0 -0
- data/app/assets/images/lalala/icons/folder_magnify.png +0 -0
- data/app/assets/images/lalala/icons/folder_open.png +0 -0
- data/app/assets/images/lalala/icons/folder_page.png +0 -0
- data/app/assets/images/lalala/icons/folder_page_white.png +0 -0
- data/app/assets/images/lalala/icons/folder_palette.png +0 -0
- data/app/assets/images/lalala/icons/folder_picture.png +0 -0
- data/app/assets/images/lalala/icons/folder_star.png +0 -0
- data/app/assets/images/lalala/icons/folder_table.png +0 -0
- data/app/assets/images/lalala/icons/folder_user.png +0 -0
- data/app/assets/images/lalala/icons/folder_wrench.png +0 -0
- data/app/assets/images/lalala/icons/font.png +0 -0
- data/app/assets/images/lalala/icons/font_add.png +0 -0
- data/app/assets/images/lalala/icons/font_delete.png +0 -0
- data/app/assets/images/lalala/icons/font_go.png +0 -0
- data/app/assets/images/lalala/icons/group.png +0 -0
- data/app/assets/images/lalala/icons/group_add.png +0 -0
- data/app/assets/images/lalala/icons/group_delete.png +0 -0
- data/app/assets/images/lalala/icons/group_edit.png +0 -0
- data/app/assets/images/lalala/icons/group_error.png +0 -0
- data/app/assets/images/lalala/icons/group_gear.png +0 -0
- data/app/assets/images/lalala/icons/group_go.png +0 -0
- data/app/assets/images/lalala/icons/group_key.png +0 -0
- data/app/assets/images/lalala/icons/group_link.png +0 -0
- data/app/assets/images/lalala/icons/handbag.png +0 -0
- data/app/assets/images/lalala/icons/heart.png +0 -0
- data/app/assets/images/lalala/icons/heart_add.png +0 -0
- data/app/assets/images/lalala/icons/heart_delete.png +0 -0
- data/app/assets/images/lalala/icons/help.png +0 -0
- data/app/assets/images/lalala/icons/hourglass.png +0 -0
- data/app/assets/images/lalala/icons/hourglass_add.png +0 -0
- data/app/assets/images/lalala/icons/hourglass_delete.png +0 -0
- data/app/assets/images/lalala/icons/hourglass_go.png +0 -0
- data/app/assets/images/lalala/icons/hourglass_link.png +0 -0
- data/app/assets/images/lalala/icons/house.png +0 -0
- data/app/assets/images/lalala/icons/house_go.png +0 -0
- data/app/assets/images/lalala/icons/house_link.png +0 -0
- data/app/assets/images/lalala/icons/html.png +0 -0
- data/app/assets/images/lalala/icons/html_add.png +0 -0
- data/app/assets/images/lalala/icons/html_delete.png +0 -0
- data/app/assets/images/lalala/icons/html_go.png +0 -0
- data/app/assets/images/lalala/icons/html_valid.png +0 -0
- data/app/assets/images/lalala/icons/image.png +0 -0
- data/app/assets/images/lalala/icons/image_add.png +0 -0
- data/app/assets/images/lalala/icons/image_delete.png +0 -0
- data/app/assets/images/lalala/icons/image_edit.png +0 -0
- data/app/assets/images/lalala/icons/image_link.png +0 -0
- data/app/assets/images/lalala/icons/images.png +0 -0
- data/app/assets/images/lalala/icons/information.png +0 -0
- data/app/assets/images/lalala/icons/ipod.png +0 -0
- data/app/assets/images/lalala/icons/ipod_cast.png +0 -0
- data/app/assets/images/lalala/icons/ipod_cast_add.png +0 -0
- data/app/assets/images/lalala/icons/ipod_cast_delete.png +0 -0
- data/app/assets/images/lalala/icons/ipod_sound.png +0 -0
- data/app/assets/images/lalala/icons/joystick.png +0 -0
- data/app/assets/images/lalala/icons/joystick_add.png +0 -0
- data/app/assets/images/lalala/icons/joystick_delete.png +0 -0
- data/app/assets/images/lalala/icons/joystick_error.png +0 -0
- data/app/assets/images/lalala/icons/key.png +0 -0
- data/app/assets/images/lalala/icons/key_add.png +0 -0
- data/app/assets/images/lalala/icons/key_delete.png +0 -0
- data/app/assets/images/lalala/icons/key_go.png +0 -0
- data/app/assets/images/lalala/icons/keyboard.png +0 -0
- data/app/assets/images/lalala/icons/keyboard_add.png +0 -0
- data/app/assets/images/lalala/icons/keyboard_delete.png +0 -0
- data/app/assets/images/lalala/icons/keyboard_magnify.png +0 -0
- data/app/assets/images/lalala/icons/layers.png +0 -0
- data/app/assets/images/lalala/icons/layout.png +0 -0
- data/app/assets/images/lalala/icons/layout_add.png +0 -0
- data/app/assets/images/lalala/icons/layout_content.png +0 -0
- data/app/assets/images/lalala/icons/layout_delete.png +0 -0
- data/app/assets/images/lalala/icons/layout_edit.png +0 -0
- data/app/assets/images/lalala/icons/layout_error.png +0 -0
- data/app/assets/images/lalala/icons/layout_header.png +0 -0
- data/app/assets/images/lalala/icons/layout_link.png +0 -0
- data/app/assets/images/lalala/icons/layout_sidebar.png +0 -0
- data/app/assets/images/lalala/icons/lightbulb.png +0 -0
- data/app/assets/images/lalala/icons/lightbulb_add.png +0 -0
- data/app/assets/images/lalala/icons/lightbulb_delete.png +0 -0
- data/app/assets/images/lalala/icons/lightbulb_off.png +0 -0
- data/app/assets/images/lalala/icons/lightning.png +0 -0
- data/app/assets/images/lalala/icons/lightning_add.png +0 -0
- data/app/assets/images/lalala/icons/lightning_delete.png +0 -0
- data/app/assets/images/lalala/icons/lightning_go.png +0 -0
- data/app/assets/images/lalala/icons/link.png +0 -0
- data/app/assets/images/lalala/icons/link_add.png +0 -0
- data/app/assets/images/lalala/icons/link_break.png +0 -0
- data/app/assets/images/lalala/icons/link_delete.png +0 -0
- data/app/assets/images/lalala/icons/link_edit.png +0 -0
- data/app/assets/images/lalala/icons/link_error.png +0 -0
- data/app/assets/images/lalala/icons/link_go.png +0 -0
- data/app/assets/images/lalala/icons/lock.png +0 -0
- data/app/assets/images/lalala/icons/lock_add.png +0 -0
- data/app/assets/images/lalala/icons/lock_break.png +0 -0
- data/app/assets/images/lalala/icons/lock_delete.png +0 -0
- data/app/assets/images/lalala/icons/lock_edit.png +0 -0
- data/app/assets/images/lalala/icons/lock_go.png +0 -0
- data/app/assets/images/lalala/icons/lock_open.png +0 -0
- data/app/assets/images/lalala/icons/lorry.png +0 -0
- data/app/assets/images/lalala/icons/lorry_add.png +0 -0
- data/app/assets/images/lalala/icons/lorry_delete.png +0 -0
- data/app/assets/images/lalala/icons/lorry_error.png +0 -0
- data/app/assets/images/lalala/icons/lorry_flatbed.png +0 -0
- data/app/assets/images/lalala/icons/lorry_go.png +0 -0
- data/app/assets/images/lalala/icons/lorry_link.png +0 -0
- data/app/assets/images/lalala/icons/magifier_zoom_out.png +0 -0
- data/app/assets/images/lalala/icons/magnifier.png +0 -0
- data/app/assets/images/lalala/icons/magnifier_zoom_in.png +0 -0
- data/app/assets/images/lalala/icons/male.png +0 -0
- data/app/assets/images/lalala/icons/map.png +0 -0
- data/app/assets/images/lalala/icons/map_add.png +0 -0
- data/app/assets/images/lalala/icons/map_delete.png +0 -0
- data/app/assets/images/lalala/icons/map_edit.png +0 -0
- data/app/assets/images/lalala/icons/map_go.png +0 -0
- data/app/assets/images/lalala/icons/map_magnify.png +0 -0
- data/app/assets/images/lalala/icons/medal_bronze_1.png +0 -0
- data/app/assets/images/lalala/icons/medal_bronze_2.png +0 -0
- data/app/assets/images/lalala/icons/medal_bronze_3.png +0 -0
- data/app/assets/images/lalala/icons/medal_bronze_add.png +0 -0
- data/app/assets/images/lalala/icons/medal_bronze_delete.png +0 -0
- data/app/assets/images/lalala/icons/medal_gold_1.png +0 -0
- data/app/assets/images/lalala/icons/medal_gold_2.png +0 -0
- data/app/assets/images/lalala/icons/medal_gold_3.png +0 -0
- data/app/assets/images/lalala/icons/medal_gold_add.png +0 -0
- data/app/assets/images/lalala/icons/medal_gold_delete.png +0 -0
- data/app/assets/images/lalala/icons/medal_silver_1.png +0 -0
- data/app/assets/images/lalala/icons/medal_silver_2.png +0 -0
- data/app/assets/images/lalala/icons/medal_silver_3.png +0 -0
- data/app/assets/images/lalala/icons/medal_silver_add.png +0 -0
- data/app/assets/images/lalala/icons/medal_silver_delete.png +0 -0
- data/app/assets/images/lalala/icons/money.png +0 -0
- data/app/assets/images/lalala/icons/money_add.png +0 -0
- data/app/assets/images/lalala/icons/money_delete.png +0 -0
- data/app/assets/images/lalala/icons/money_dollar.png +0 -0
- data/app/assets/images/lalala/icons/money_euro.png +0 -0
- data/app/assets/images/lalala/icons/money_pound.png +0 -0
- data/app/assets/images/lalala/icons/money_yen.png +0 -0
- data/app/assets/images/lalala/icons/monitor.png +0 -0
- data/app/assets/images/lalala/icons/monitor_add.png +0 -0
- data/app/assets/images/lalala/icons/monitor_delete.png +0 -0
- data/app/assets/images/lalala/icons/monitor_edit.png +0 -0
- data/app/assets/images/lalala/icons/monitor_error.png +0 -0
- data/app/assets/images/lalala/icons/monitor_go.png +0 -0
- data/app/assets/images/lalala/icons/monitor_lightning.png +0 -0
- data/app/assets/images/lalala/icons/monitor_link.png +0 -0
- data/app/assets/images/lalala/icons/mouse.png +0 -0
- data/app/assets/images/lalala/icons/mouse_add.png +0 -0
- data/app/assets/images/lalala/icons/mouse_delete.png +0 -0
- data/app/assets/images/lalala/icons/mouse_error.png +0 -0
- data/app/assets/images/lalala/icons/music.png +0 -0
- data/app/assets/images/lalala/icons/new.png +0 -0
- data/app/assets/images/lalala/icons/newspaper.png +0 -0
- data/app/assets/images/lalala/icons/newspaper_add.png +0 -0
- data/app/assets/images/lalala/icons/newspaper_delete.png +0 -0
- data/app/assets/images/lalala/icons/newspaper_go.png +0 -0
- data/app/assets/images/lalala/icons/newspaper_link.png +0 -0
- data/app/assets/images/lalala/icons/note.png +0 -0
- data/app/assets/images/lalala/icons/note_add.png +0 -0
- data/app/assets/images/lalala/icons/note_delete.png +0 -0
- data/app/assets/images/lalala/icons/note_edit.png +0 -0
- data/app/assets/images/lalala/icons/note_error.png +0 -0
- data/app/assets/images/lalala/icons/note_go.png +0 -0
- data/app/assets/images/lalala/icons/overlays.png +0 -0
- data/app/assets/images/lalala/icons/package.png +0 -0
- data/app/assets/images/lalala/icons/package_add.png +0 -0
- data/app/assets/images/lalala/icons/package_delete.png +0 -0
- data/app/assets/images/lalala/icons/package_go.png +0 -0
- data/app/assets/images/lalala/icons/package_green.png +0 -0
- data/app/assets/images/lalala/icons/package_link.png +0 -0
- data/app/assets/images/lalala/icons/page.png +0 -0
- data/app/assets/images/lalala/icons/page_add.png +0 -0
- data/app/assets/images/lalala/icons/page_attach.png +0 -0
- data/app/assets/images/lalala/icons/page_code.png +0 -0
- data/app/assets/images/lalala/icons/page_copy.png +0 -0
- data/app/assets/images/lalala/icons/page_delete.png +0 -0
- data/app/assets/images/lalala/icons/page_edit.png +0 -0
- data/app/assets/images/lalala/icons/page_error.png +0 -0
- data/app/assets/images/lalala/icons/page_excel.png +0 -0
- data/app/assets/images/lalala/icons/page_find.png +0 -0
- data/app/assets/images/lalala/icons/page_gear.png +0 -0
- data/app/assets/images/lalala/icons/page_go.png +0 -0
- data/app/assets/images/lalala/icons/page_green.png +0 -0
- data/app/assets/images/lalala/icons/page_key.png +0 -0
- data/app/assets/images/lalala/icons/page_lightning.png +0 -0
- data/app/assets/images/lalala/icons/page_link.png +0 -0
- data/app/assets/images/lalala/icons/page_paintbrush.png +0 -0
- data/app/assets/images/lalala/icons/page_paste.png +0 -0
- data/app/assets/images/lalala/icons/page_red.png +0 -0
- data/app/assets/images/lalala/icons/page_refresh.png +0 -0
- data/app/assets/images/lalala/icons/page_save.png +0 -0
- data/app/assets/images/lalala/icons/page_white.png +0 -0
- data/app/assets/images/lalala/icons/page_white_acrobat.png +0 -0
- data/app/assets/images/lalala/icons/page_white_actionscript.png +0 -0
- data/app/assets/images/lalala/icons/page_white_add.png +0 -0
- data/app/assets/images/lalala/icons/page_white_c.png +0 -0
- data/app/assets/images/lalala/icons/page_white_camera.png +0 -0
- data/app/assets/images/lalala/icons/page_white_cd.png +0 -0
- data/app/assets/images/lalala/icons/page_white_code.png +0 -0
- data/app/assets/images/lalala/icons/page_white_code_red.png +0 -0
- data/app/assets/images/lalala/icons/page_white_coldfusion.png +0 -0
- data/app/assets/images/lalala/icons/page_white_compressed.png +0 -0
- data/app/assets/images/lalala/icons/page_white_copy.png +0 -0
- data/app/assets/images/lalala/icons/page_white_cplusplus.png +0 -0
- data/app/assets/images/lalala/icons/page_white_csharp.png +0 -0
- data/app/assets/images/lalala/icons/page_white_cup.png +0 -0
- data/app/assets/images/lalala/icons/page_white_database.png +0 -0
- data/app/assets/images/lalala/icons/page_white_delete.png +0 -0
- data/app/assets/images/lalala/icons/page_white_dvd.png +0 -0
- data/app/assets/images/lalala/icons/page_white_edit.png +0 -0
- data/app/assets/images/lalala/icons/page_white_error.png +0 -0
- data/app/assets/images/lalala/icons/page_white_excel.png +0 -0
- data/app/assets/images/lalala/icons/page_white_find.png +0 -0
- data/app/assets/images/lalala/icons/page_white_flash.png +0 -0
- data/app/assets/images/lalala/icons/page_white_freehand.png +0 -0
- data/app/assets/images/lalala/icons/page_white_gear.png +0 -0
- data/app/assets/images/lalala/icons/page_white_get.png +0 -0
- data/app/assets/images/lalala/icons/page_white_go.png +0 -0
- data/app/assets/images/lalala/icons/page_white_h.png +0 -0
- data/app/assets/images/lalala/icons/page_white_horizontal.png +0 -0
- data/app/assets/images/lalala/icons/page_white_key.png +0 -0
- data/app/assets/images/lalala/icons/page_white_lightning.png +0 -0
- data/app/assets/images/lalala/icons/page_white_link.png +0 -0
- data/app/assets/images/lalala/icons/page_white_magnify.png +0 -0
- data/app/assets/images/lalala/icons/page_white_medal.png +0 -0
- data/app/assets/images/lalala/icons/page_white_office.png +0 -0
- data/app/assets/images/lalala/icons/page_white_paint.png +0 -0
- data/app/assets/images/lalala/icons/page_white_paintbrush.png +0 -0
- data/app/assets/images/lalala/icons/page_white_paste.png +0 -0
- data/app/assets/images/lalala/icons/page_white_php.png +0 -0
- data/app/assets/images/lalala/icons/page_white_picture.png +0 -0
- data/app/assets/images/lalala/icons/page_white_powerpoint.png +0 -0
- data/app/assets/images/lalala/icons/page_white_put.png +0 -0
- data/app/assets/images/lalala/icons/page_white_ruby.png +0 -0
- data/app/assets/images/lalala/icons/page_white_stack.png +0 -0
- data/app/assets/images/lalala/icons/page_white_star.png +0 -0
- data/app/assets/images/lalala/icons/page_white_swoosh.png +0 -0
- data/app/assets/images/lalala/icons/page_white_text.png +0 -0
- data/app/assets/images/lalala/icons/page_white_text_width.png +0 -0
- data/app/assets/images/lalala/icons/page_white_tux.png +0 -0
- data/app/assets/images/lalala/icons/page_white_vector.png +0 -0
- data/app/assets/images/lalala/icons/page_white_visualstudio.png +0 -0
- data/app/assets/images/lalala/icons/page_white_width.png +0 -0
- data/app/assets/images/lalala/icons/page_white_word.png +0 -0
- data/app/assets/images/lalala/icons/page_white_world.png +0 -0
- data/app/assets/images/lalala/icons/page_white_wrench.png +0 -0
- data/app/assets/images/lalala/icons/page_white_zip.png +0 -0
- data/app/assets/images/lalala/icons/page_word.png +0 -0
- data/app/assets/images/lalala/icons/page_world.png +0 -0
- data/app/assets/images/lalala/icons/paintbrush.png +0 -0
- data/app/assets/images/lalala/icons/paintcan.png +0 -0
- data/app/assets/images/lalala/icons/palette.png +0 -0
- data/app/assets/images/lalala/icons/paste_plain.png +0 -0
- data/app/assets/images/lalala/icons/paste_word.png +0 -0
- data/app/assets/images/lalala/icons/pencil.png +0 -0
- data/app/assets/images/lalala/icons/pencil_add.png +0 -0
- data/app/assets/images/lalala/icons/pencil_delete.png +0 -0
- data/app/assets/images/lalala/icons/pencil_go.png +0 -0
- data/app/assets/images/lalala/icons/phone.png +0 -0
- data/app/assets/images/lalala/icons/phone_add.png +0 -0
- data/app/assets/images/lalala/icons/phone_delete.png +0 -0
- data/app/assets/images/lalala/icons/phone_sound.png +0 -0
- data/app/assets/images/lalala/icons/photo.png +0 -0
- data/app/assets/images/lalala/icons/photo_add.png +0 -0
- data/app/assets/images/lalala/icons/photo_delete.png +0 -0
- data/app/assets/images/lalala/icons/photo_link.png +0 -0
- data/app/assets/images/lalala/icons/photos.png +0 -0
- data/app/assets/images/lalala/icons/picture.png +0 -0
- data/app/assets/images/lalala/icons/picture_add.png +0 -0
- data/app/assets/images/lalala/icons/picture_delete.png +0 -0
- data/app/assets/images/lalala/icons/picture_edit.png +0 -0
- data/app/assets/images/lalala/icons/picture_empty.png +0 -0
- data/app/assets/images/lalala/icons/picture_error.png +0 -0
- data/app/assets/images/lalala/icons/picture_go.png +0 -0
- data/app/assets/images/lalala/icons/picture_key.png +0 -0
- data/app/assets/images/lalala/icons/picture_link.png +0 -0
- data/app/assets/images/lalala/icons/picture_save.png +0 -0
- data/app/assets/images/lalala/icons/pictures.png +0 -0
- data/app/assets/images/lalala/icons/pilcrow.png +0 -0
- data/app/assets/images/lalala/icons/pill.png +0 -0
- data/app/assets/images/lalala/icons/pill_add.png +0 -0
- data/app/assets/images/lalala/icons/pill_delete.png +0 -0
- data/app/assets/images/lalala/icons/pill_go.png +0 -0
- data/app/assets/images/lalala/icons/plugin.png +0 -0
- data/app/assets/images/lalala/icons/plugin_add.png +0 -0
- data/app/assets/images/lalala/icons/plugin_delete.png +0 -0
- data/app/assets/images/lalala/icons/plugin_disabled.png +0 -0
- data/app/assets/images/lalala/icons/plugin_edit.png +0 -0
- data/app/assets/images/lalala/icons/plugin_error.png +0 -0
- data/app/assets/images/lalala/icons/plugin_go.png +0 -0
- data/app/assets/images/lalala/icons/plugin_link.png +0 -0
- data/app/assets/images/lalala/icons/printer.png +0 -0
- data/app/assets/images/lalala/icons/printer_add.png +0 -0
- data/app/assets/images/lalala/icons/printer_delete.png +0 -0
- data/app/assets/images/lalala/icons/printer_empty.png +0 -0
- data/app/assets/images/lalala/icons/printer_error.png +0 -0
- data/app/assets/images/lalala/icons/rainbow.png +0 -0
- data/app/assets/images/lalala/icons/report.png +0 -0
- data/app/assets/images/lalala/icons/report_add.png +0 -0
- data/app/assets/images/lalala/icons/report_delete.png +0 -0
- data/app/assets/images/lalala/icons/report_disk.png +0 -0
- data/app/assets/images/lalala/icons/report_edit.png +0 -0
- data/app/assets/images/lalala/icons/report_go.png +0 -0
- data/app/assets/images/lalala/icons/report_key.png +0 -0
- data/app/assets/images/lalala/icons/report_link.png +0 -0
- data/app/assets/images/lalala/icons/report_magnify.png +0 -0
- data/app/assets/images/lalala/icons/report_picture.png +0 -0
- data/app/assets/images/lalala/icons/report_user.png +0 -0
- data/app/assets/images/lalala/icons/report_word.png +0 -0
- data/app/assets/images/lalala/icons/resultset_first.png +0 -0
- data/app/assets/images/lalala/icons/resultset_last.png +0 -0
- data/app/assets/images/lalala/icons/resultset_next.png +0 -0
- data/app/assets/images/lalala/icons/resultset_previous.png +0 -0
- data/app/assets/images/lalala/icons/rosette.png +0 -0
- data/app/assets/images/lalala/icons/rss.png +0 -0
- data/app/assets/images/lalala/icons/rss_add.png +0 -0
- data/app/assets/images/lalala/icons/rss_delete.png +0 -0
- data/app/assets/images/lalala/icons/rss_go.png +0 -0
- data/app/assets/images/lalala/icons/rss_valid.png +0 -0
- data/app/assets/images/lalala/icons/ruby.png +0 -0
- data/app/assets/images/lalala/icons/ruby_add.png +0 -0
- data/app/assets/images/lalala/icons/ruby_delete.png +0 -0
- data/app/assets/images/lalala/icons/ruby_gear.png +0 -0
- data/app/assets/images/lalala/icons/ruby_get.png +0 -0
- data/app/assets/images/lalala/icons/ruby_go.png +0 -0
- data/app/assets/images/lalala/icons/ruby_key.png +0 -0
- data/app/assets/images/lalala/icons/ruby_link.png +0 -0
- data/app/assets/images/lalala/icons/ruby_put.png +0 -0
- data/app/assets/images/lalala/icons/scarf.png +0 -0
- data/app/assets/images/lalala/icons/script.png +0 -0
- data/app/assets/images/lalala/icons/script_add.png +0 -0
- data/app/assets/images/lalala/icons/script_code.png +0 -0
- data/app/assets/images/lalala/icons/script_code_red.png +0 -0
- data/app/assets/images/lalala/icons/script_delete.png +0 -0
- data/app/assets/images/lalala/icons/script_edit.png +0 -0
- data/app/assets/images/lalala/icons/script_error.png +0 -0
- data/app/assets/images/lalala/icons/script_gear.png +0 -0
- data/app/assets/images/lalala/icons/script_go.png +0 -0
- data/app/assets/images/lalala/icons/script_key.png +0 -0
- data/app/assets/images/lalala/icons/script_lightning.png +0 -0
- data/app/assets/images/lalala/icons/script_link.png +0 -0
- data/app/assets/images/lalala/icons/script_palette.png +0 -0
- data/app/assets/images/lalala/icons/script_save.png +0 -0
- data/app/assets/images/lalala/icons/search.png +0 -0
- data/app/assets/images/lalala/icons/server.png +0 -0
- data/app/assets/images/lalala/icons/server_add.png +0 -0
- data/app/assets/images/lalala/icons/server_chart.png +0 -0
- data/app/assets/images/lalala/icons/server_compressed.png +0 -0
- data/app/assets/images/lalala/icons/server_connect.png +0 -0
- data/app/assets/images/lalala/icons/server_database.png +0 -0
- data/app/assets/images/lalala/icons/server_delete.png +0 -0
- data/app/assets/images/lalala/icons/server_edit.png +0 -0
- data/app/assets/images/lalala/icons/server_error.png +0 -0
- data/app/assets/images/lalala/icons/server_go.png +0 -0
- data/app/assets/images/lalala/icons/server_key.png +0 -0
- data/app/assets/images/lalala/icons/server_lightning.png +0 -0
- data/app/assets/images/lalala/icons/server_link.png +0 -0
- data/app/assets/images/lalala/icons/server_uncompressed.png +0 -0
- data/app/assets/images/lalala/icons/shading.png +0 -0
- data/app/assets/images/lalala/icons/shape_align_bottom.png +0 -0
- data/app/assets/images/lalala/icons/shape_align_center.png +0 -0
- data/app/assets/images/lalala/icons/shape_align_left.png +0 -0
- data/app/assets/images/lalala/icons/shape_align_middle.png +0 -0
- data/app/assets/images/lalala/icons/shape_align_right.png +0 -0
- data/app/assets/images/lalala/icons/shape_align_top.png +0 -0
- data/app/assets/images/lalala/icons/shape_flip_horizontal.png +0 -0
- data/app/assets/images/lalala/icons/shape_flip_vertical.png +0 -0
- data/app/assets/images/lalala/icons/shape_group.png +0 -0
- data/app/assets/images/lalala/icons/shape_handles.png +0 -0
- data/app/assets/images/lalala/icons/shape_move_back.png +0 -0
- data/app/assets/images/lalala/icons/shape_move_backwards.png +0 -0
- data/app/assets/images/lalala/icons/shape_move_forwards.png +0 -0
- data/app/assets/images/lalala/icons/shape_move_front.png +0 -0
- data/app/assets/images/lalala/icons/shape_rotate_anticlockwise.png +0 -0
- data/app/assets/images/lalala/icons/shape_rotate_clockwise.png +0 -0
- data/app/assets/images/lalala/icons/shape_square.png +0 -0
- data/app/assets/images/lalala/icons/shape_square_add.png +0 -0
- data/app/assets/images/lalala/icons/shape_square_delete.png +0 -0
- data/app/assets/images/lalala/icons/shape_square_edit.png +0 -0
- data/app/assets/images/lalala/icons/shape_square_error.png +0 -0
- data/app/assets/images/lalala/icons/shape_square_go.png +0 -0
- data/app/assets/images/lalala/icons/shape_square_key.png +0 -0
- data/app/assets/images/lalala/icons/shape_square_link.png +0 -0
- data/app/assets/images/lalala/icons/shape_ungroup.png +0 -0
- data/app/assets/images/lalala/icons/shield.png +0 -0
- data/app/assets/images/lalala/icons/shield_add.png +0 -0
- data/app/assets/images/lalala/icons/shield_delete.png +0 -0
- data/app/assets/images/lalala/icons/shield_go.png +0 -0
- data/app/assets/images/lalala/icons/sitemap.png +0 -0
- data/app/assets/images/lalala/icons/sitemap_color.png +0 -0
- data/app/assets/images/lalala/icons/sound.png +0 -0
- data/app/assets/images/lalala/icons/sound_add.png +0 -0
- data/app/assets/images/lalala/icons/sound_delete.png +0 -0
- data/app/assets/images/lalala/icons/sound_low.png +0 -0
- data/app/assets/images/lalala/icons/sound_mute.png +0 -0
- data/app/assets/images/lalala/icons/sound_none.png +0 -0
- data/app/assets/images/lalala/icons/spellcheck.png +0 -0
- data/app/assets/images/lalala/icons/sport_8ball.png +0 -0
- data/app/assets/images/lalala/icons/sport_basketball.png +0 -0
- data/app/assets/images/lalala/icons/sport_football.png +0 -0
- data/app/assets/images/lalala/icons/sport_golf.png +0 -0
- data/app/assets/images/lalala/icons/sport_raquet.png +0 -0
- data/app/assets/images/lalala/icons/sport_shuttlecock.png +0 -0
- data/app/assets/images/lalala/icons/sport_soccer.png +0 -0
- data/app/assets/images/lalala/icons/sport_tennis.png +0 -0
- data/app/assets/images/lalala/icons/star.png +0 -0
- data/app/assets/images/lalala/icons/status_away.png +0 -0
- data/app/assets/images/lalala/icons/status_busy.png +0 -0
- data/app/assets/images/lalala/icons/status_offline.png +0 -0
- data/app/assets/images/lalala/icons/status_online.png +0 -0
- data/app/assets/images/lalala/icons/stop.png +0 -0
- data/app/assets/images/lalala/icons/style.png +0 -0
- data/app/assets/images/lalala/icons/style_add.png +0 -0
- data/app/assets/images/lalala/icons/style_delete.png +0 -0
- data/app/assets/images/lalala/icons/style_edit.png +0 -0
- data/app/assets/images/lalala/icons/style_go.png +0 -0
- data/app/assets/images/lalala/icons/sum.png +0 -0
- data/app/assets/images/lalala/icons/tab.png +0 -0
- data/app/assets/images/lalala/icons/tab_add.png +0 -0
- data/app/assets/images/lalala/icons/tab_delete.png +0 -0
- data/app/assets/images/lalala/icons/tab_edit.png +0 -0
- data/app/assets/images/lalala/icons/tab_go.png +0 -0
- data/app/assets/images/lalala/icons/table.png +0 -0
- data/app/assets/images/lalala/icons/table_add.png +0 -0
- data/app/assets/images/lalala/icons/table_delete.png +0 -0
- data/app/assets/images/lalala/icons/table_edit.png +0 -0
- data/app/assets/images/lalala/icons/table_error.png +0 -0
- data/app/assets/images/lalala/icons/table_gear.png +0 -0
- data/app/assets/images/lalala/icons/table_go.png +0 -0
- data/app/assets/images/lalala/icons/table_key.png +0 -0
- data/app/assets/images/lalala/icons/table_lightning.png +0 -0
- data/app/assets/images/lalala/icons/table_link.png +0 -0
- data/app/assets/images/lalala/icons/table_multiple.png +0 -0
- data/app/assets/images/lalala/icons/table_refresh.png +0 -0
- data/app/assets/images/lalala/icons/table_relationship.png +0 -0
- data/app/assets/images/lalala/icons/table_row_delete.png +0 -0
- data/app/assets/images/lalala/icons/table_row_insert.png +0 -0
- data/app/assets/images/lalala/icons/table_save.png +0 -0
- data/app/assets/images/lalala/icons/table_sort.png +0 -0
- data/app/assets/images/lalala/icons/tag.png +0 -0
- data/app/assets/images/lalala/icons/tag_blue.png +0 -0
- data/app/assets/images/lalala/icons/tag_blue_add.png +0 -0
- data/app/assets/images/lalala/icons/tag_blue_delete.png +0 -0
- data/app/assets/images/lalala/icons/tag_blue_edit.png +0 -0
- data/app/assets/images/lalala/icons/tag_green.png +0 -0
- data/app/assets/images/lalala/icons/tag_orange.png +0 -0
- data/app/assets/images/lalala/icons/tag_pink.png +0 -0
- data/app/assets/images/lalala/icons/tag_purple.png +0 -0
- data/app/assets/images/lalala/icons/tag_red.png +0 -0
- data/app/assets/images/lalala/icons/tag_yellow.png +0 -0
- data/app/assets/images/lalala/icons/telephone.png +0 -0
- data/app/assets/images/lalala/icons/telephone_add.png +0 -0
- data/app/assets/images/lalala/icons/telephone_delete.png +0 -0
- data/app/assets/images/lalala/icons/telephone_edit.png +0 -0
- data/app/assets/images/lalala/icons/telephone_error.png +0 -0
- data/app/assets/images/lalala/icons/telephone_go.png +0 -0
- data/app/assets/images/lalala/icons/telephone_key.png +0 -0
- data/app/assets/images/lalala/icons/telephone_link.png +0 -0
- data/app/assets/images/lalala/icons/television.png +0 -0
- data/app/assets/images/lalala/icons/television_add.png +0 -0
- data/app/assets/images/lalala/icons/television_delete.png +0 -0
- data/app/assets/images/lalala/icons/text_align_center.png +0 -0
- data/app/assets/images/lalala/icons/text_align_justify.png +0 -0
- data/app/assets/images/lalala/icons/text_align_left.png +0 -0
- data/app/assets/images/lalala/icons/text_align_right.png +0 -0
- data/app/assets/images/lalala/icons/text_allcaps.png +0 -0
- data/app/assets/images/lalala/icons/text_bold.png +0 -0
- data/app/assets/images/lalala/icons/text_columns.png +0 -0
- data/app/assets/images/lalala/icons/text_dropcaps.png +0 -0
- data/app/assets/images/lalala/icons/text_heading_1.png +0 -0
- data/app/assets/images/lalala/icons/text_heading_2.png +0 -0
- data/app/assets/images/lalala/icons/text_heading_3.png +0 -0
- data/app/assets/images/lalala/icons/text_heading_4.png +0 -0
- data/app/assets/images/lalala/icons/text_heading_5.png +0 -0
- data/app/assets/images/lalala/icons/text_heading_6.png +0 -0
- data/app/assets/images/lalala/icons/text_horizontalrule.png +0 -0
- data/app/assets/images/lalala/icons/text_indent.png +0 -0
- data/app/assets/images/lalala/icons/text_indent_remove.png +0 -0
- data/app/assets/images/lalala/icons/text_italic.png +0 -0
- data/app/assets/images/lalala/icons/text_kerning.png +0 -0
- data/app/assets/images/lalala/icons/text_letter_omega.png +0 -0
- data/app/assets/images/lalala/icons/text_letterspacing.png +0 -0
- data/app/assets/images/lalala/icons/text_linespacing.png +0 -0
- data/app/assets/images/lalala/icons/text_list_bullets.png +0 -0
- data/app/assets/images/lalala/icons/text_list_numbers.png +0 -0
- data/app/assets/images/lalala/icons/text_lowercase.png +0 -0
- data/app/assets/images/lalala/icons/text_padding_bottom.png +0 -0
- data/app/assets/images/lalala/icons/text_padding_left.png +0 -0
- data/app/assets/images/lalala/icons/text_padding_right.png +0 -0
- data/app/assets/images/lalala/icons/text_padding_top.png +0 -0
- data/app/assets/images/lalala/icons/text_replace.png +0 -0
- data/app/assets/images/lalala/icons/text_signature.png +0 -0
- data/app/assets/images/lalala/icons/text_smallcaps.png +0 -0
- data/app/assets/images/lalala/icons/text_strikethrough.png +0 -0
- data/app/assets/images/lalala/icons/text_subscript.png +0 -0
- data/app/assets/images/lalala/icons/text_superscript.png +0 -0
- data/app/assets/images/lalala/icons/text_underline.png +0 -0
- data/app/assets/images/lalala/icons/text_uppercase.png +0 -0
- data/app/assets/images/lalala/icons/textfield.png +0 -0
- data/app/assets/images/lalala/icons/textfield_add.png +0 -0
- data/app/assets/images/lalala/icons/textfield_delete.png +0 -0
- data/app/assets/images/lalala/icons/textfield_key.png +0 -0
- data/app/assets/images/lalala/icons/textfield_rename.png +0 -0
- data/app/assets/images/lalala/icons/thumb_down.png +0 -0
- data/app/assets/images/lalala/icons/thumb_up.png +0 -0
- data/app/assets/images/lalala/icons/tick.png +0 -0
- data/app/assets/images/lalala/icons/time.png +0 -0
- data/app/assets/images/lalala/icons/time_add.png +0 -0
- data/app/assets/images/lalala/icons/time_delete.png +0 -0
- data/app/assets/images/lalala/icons/time_go.png +0 -0
- data/app/assets/images/lalala/icons/timeline_marker.png +0 -0
- data/app/assets/images/lalala/icons/tokens.png +0 -0
- data/app/assets/images/lalala/icons/transmit.png +0 -0
- data/app/assets/images/lalala/icons/transmit_add.png +0 -0
- data/app/assets/images/lalala/icons/transmit_blue.png +0 -0
- data/app/assets/images/lalala/icons/transmit_delete.png +0 -0
- data/app/assets/images/lalala/icons/transmit_edit.png +0 -0
- data/app/assets/images/lalala/icons/transmit_error.png +0 -0
- data/app/assets/images/lalala/icons/transmit_go.png +0 -0
- data/app/assets/images/lalala/icons/tux.png +0 -0
- data/app/assets/images/lalala/icons/user.png +0 -0
- data/app/assets/images/lalala/icons/user_add.png +0 -0
- data/app/assets/images/lalala/icons/user_comment.png +0 -0
- data/app/assets/images/lalala/icons/user_delete.png +0 -0
- data/app/assets/images/lalala/icons/user_edit.png +0 -0
- data/app/assets/images/lalala/icons/user_female.png +0 -0
- data/app/assets/images/lalala/icons/user_go.png +0 -0
- data/app/assets/images/lalala/icons/user_gray.png +0 -0
- data/app/assets/images/lalala/icons/user_green.png +0 -0
- data/app/assets/images/lalala/icons/user_orange.png +0 -0
- data/app/assets/images/lalala/icons/user_red.png +0 -0
- data/app/assets/images/lalala/icons/user_suit.png +0 -0
- data/app/assets/images/lalala/icons/vcard.png +0 -0
- data/app/assets/images/lalala/icons/vcard_add.png +0 -0
- data/app/assets/images/lalala/icons/vcard_delete.png +0 -0
- data/app/assets/images/lalala/icons/vcard_edit.png +0 -0
- data/app/assets/images/lalala/icons/vector.png +0 -0
- data/app/assets/images/lalala/icons/vector_add.png +0 -0
- data/app/assets/images/lalala/icons/vector_delete.png +0 -0
- data/app/assets/images/lalala/icons/wand.png +0 -0
- data/app/assets/images/lalala/icons/weather_clouds.png +0 -0
- data/app/assets/images/lalala/icons/weather_cloudy.png +0 -0
- data/app/assets/images/lalala/icons/weather_lightning.png +0 -0
- data/app/assets/images/lalala/icons/weather_rain.png +0 -0
- data/app/assets/images/lalala/icons/weather_snow.png +0 -0
- data/app/assets/images/lalala/icons/weather_sun.png +0 -0
- data/app/assets/images/lalala/icons/webcam.png +0 -0
- data/app/assets/images/lalala/icons/webcam_add.png +0 -0
- data/app/assets/images/lalala/icons/webcam_delete.png +0 -0
- data/app/assets/images/lalala/icons/webcam_error.png +0 -0
- data/app/assets/images/lalala/icons/world.png +0 -0
- data/app/assets/images/lalala/icons/world_add.png +0 -0
- data/app/assets/images/lalala/icons/world_delete.png +0 -0
- data/app/assets/images/lalala/icons/world_edit.png +0 -0
- data/app/assets/images/lalala/icons/world_go.png +0 -0
- data/app/assets/images/lalala/icons/world_link.png +0 -0
- data/app/assets/images/lalala/icons/wrench.png +0 -0
- data/app/assets/images/lalala/icons/wrench_orange.png +0 -0
- data/app/assets/images/lalala/icons/xhtml.png +0 -0
- data/app/assets/images/lalala/icons/xhtml_add.png +0 -0
- data/app/assets/images/lalala/icons/xhtml_delete.png +0 -0
- data/app/assets/images/lalala/icons/xhtml_go.png +0 -0
- data/app/assets/images/lalala/icons/xhtml_valid.png +0 -0
- data/app/assets/images/lalala/icons/zoom.png +0 -0
- data/app/assets/images/lalala/icons/zoom_in.png +0 -0
- data/app/assets/images/lalala/icons/zoom_out.png +0 -0
- data/app/assets/images/lalala/jquery-ui/animated-overlay.gif +0 -0
- data/app/assets/images/lalala/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/images/lalala/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/images/lalala/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/app/assets/images/lalala/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/images/lalala/jquery-ui/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/app/assets/images/lalala/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/app/assets/images/lalala/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/images/lalala/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/app/assets/images/lalala/jquery-ui/ui-icons_222222_256x240.png +0 -0
- data/app/assets/images/lalala/jquery-ui/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/images/lalala/jquery-ui/ui-icons_454545_256x240.png +0 -0
- data/app/assets/images/lalala/jquery-ui/ui-icons_888888_256x240.png +0 -0
- data/app/assets/images/lalala/jquery-ui/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/images/lalala/users/.DS_Store +0 -0
- data/app/assets/images/lalala/users/default.jpg +0 -0
- data/app/assets/javascripts/.DS_Store +0 -0
- data/app/assets/javascripts/browser/console.module.js +16 -0
- data/app/assets/javascripts/browser/document.module.js +2 -0
- data/app/assets/javascripts/browser/history.module.js +2 -0
- data/app/assets/javascripts/browser/index.module.js +7 -0
- data/app/assets/javascripts/browser/location.module.js +2 -0
- data/app/assets/javascripts/browser/navigator.module.js +2 -0
- data/app/assets/javascripts/browser/screen.module.js +2 -0
- data/app/assets/javascripts/browser/window.module.js +1 -0
- data/app/assets/javascripts/lalala/base.js +8 -0
- data/app/assets/javascripts/lalala/lib/jquery-chosen.js +1089 -0
- data/app/assets/javascripts/lalala/lib/jquery-markitup.js +665 -0
- data/app/assets/javascripts/lalala/lib/moment.js +1400 -0
- data/app/assets/javascripts/lalala/lib/pikaday.js +816 -0
- data/app/assets/javascripts/lalala/modules/calendar.module.js +110 -0
- data/app/assets/javascripts/lalala/modules/editor.module.js +102 -0
- data/app/assets/javascripts/lalala/modules/init.module.js +12 -0
- data/app/assets/javascripts/lalala/modules/locale_chooser.module.js +51 -0
- data/app/assets/javascripts/lalala/modules/storage.module.js +15 -0
- data/app/assets/stylesheets/.DS_Store +0 -0
- data/app/assets/stylesheets/lalala/_base.css.scss +33 -0
- data/app/assets/stylesheets/lalala/base/_base.css.scss +17 -0
- data/app/assets/stylesheets/lalala/base/_layout.css.scss +105 -0
- data/app/assets/stylesheets/lalala/base/_mixins.css.scss +57 -0
- data/app/assets/stylesheets/lalala/base/_variables.css.scss +24 -0
- data/app/assets/stylesheets/lalala/components/_buttons.css.scss +131 -0
- data/app/assets/stylesheets/lalala/components/_forms.css.scss +206 -0
- data/app/assets/stylesheets/lalala/components/_icons.css.scss +42 -0
- data/app/assets/stylesheets/lalala/components/_tables.css.scss +145 -0
- data/app/assets/stylesheets/lalala/editor-preview.css.scss +14 -0
- data/app/assets/stylesheets/lalala/lib/.DS_Store +0 -0
- data/app/assets/stylesheets/lalala/lib/_chosen.css.scss +370 -0
- data/app/assets/stylesheets/lalala/lib/_jquery-ui.css.scss +649 -0
- data/app/assets/stylesheets/lalala/lib/_pikaday.css +170 -0
- data/app/assets/stylesheets/lalala/modules/_action-items.css.scss +10 -0
- data/app/assets/stylesheets/lalala/modules/_dropdown-menu.css.scss +124 -0
- data/app/assets/stylesheets/lalala/modules/_editor-cheatsheet.css.scss +17 -0
- data/app/assets/stylesheets/lalala/modules/_editor-preview.css.scss +23 -0
- data/app/assets/stylesheets/lalala/modules/_editor.css.scss +189 -0
- data/app/assets/stylesheets/lalala/modules/_filter-form.css.scss +26 -0
- data/app/assets/stylesheets/lalala/modules/_flashes.css.scss +36 -0
- data/app/assets/stylesheets/lalala/modules/_footer.css.scss +9 -0
- data/app/assets/stylesheets/lalala/modules/_grids.css.scss +69 -0
- data/app/assets/stylesheets/lalala/modules/_header.css.scss +92 -0
- data/app/assets/stylesheets/lalala/modules/_index-as-table.css.scss +3 -0
- data/app/assets/stylesheets/lalala/modules/_index-as-tree-table.css.scss +16 -0
- data/app/assets/stylesheets/lalala/modules/_index-footer.css.scss +91 -0
- data/app/assets/stylesheets/lalala/modules/_login.css.scss +61 -0
- data/app/assets/stylesheets/lalala/modules/_sidebar-section.css.scss +18 -0
- data/app/assets/stylesheets/lalala/modules/_table-tools.css.scss +3 -0
- data/app/assets/stylesheets/lalala/modules/_title-bar.css.scss +70 -0
- data/app/assets/stylesheets/lalala/modules/_utility-nav.css.scss +43 -0
- data/app/controllers/lalala/markdown_controller.rb +7 -0
- data/app/controllers/lalala/public/errors_controller.rb +26 -0
- data/app/controllers/lalala/public/pages_controller.rb +21 -0
- data/app/models/lalala/page.rb +288 -0
- data/app/views/lalala/markdown/cheatsheet.html.erb +137 -0
- data/app/views/lalala/markdown/preview.html.erb +1 -0
- data/app/views/lalala/public/errors/internal_server_error.html.erb +25 -0
- data/app/views/lalala/public/errors/not_found.html.erb +26 -0
- data/app/views/lalala/public/errors/unprocessable_entity.html.erb +26 -0
- data/app/views/lalala/public/pages/show.html.erb +7 -0
- data/app/views/layouts/lalala/markdown.html.erb +10 -0
- data/config/initializers/active_admin.rb +24 -0
- data/config/routes.rb +18 -0
- data/lalala-assets.gemspec +40 -0
- data/lalala-development.gemspec +35 -0
- data/lalala-test.gemspec +35 -0
- data/lalala.gemspec +62 -0
- data/lib/generators/lalala/assets/assets_generator.rb +19 -0
- data/lib/generators/lalala/assets/templates/active_admin.css.scss +28 -0
- data/lib/generators/lalala/assets/templates/active_admin.js +1 -0
- data/lib/generators/lalala/devise/devise_generator.rb +58 -0
- data/lib/generators/lalala/install/install_generator.rb +65 -0
- data/lib/generators/lalala/install/templates/active_admin.rb.erb +152 -0
- data/lib/generators/lalala/install/templates/admin_pages.rb +9 -0
- data/lib/generators/lalala/install/templates/admin_user.rb.erb +20 -0
- data/lib/generators/lalala/install/templates/application_page.rb +9 -0
- data/lib/generators/lalala/install/templates/dashboard.rb +33 -0
- data/lib/generators/lalala/install/templates/errors_controller.rb +18 -0
- data/lib/generators/lalala/install/templates/migrations/1_create_admin_notes.rb +17 -0
- data/lib/generators/lalala/install/templates/migrations/2_move_admin_notes_to_comments.rb +26 -0
- data/lib/generators/lalala/install/templates/migrations/3_create_pages.rb +42 -0
- data/lib/generators/lalala/install/templates/pages_controller.rb +2 -0
- data/lib/generators/lalala/install/templates/routes.rb.erb +3 -0
- data/lib/generators/lalala/page/page_generator.rb +17 -0
- data/lib/generators/lalala/page/templates/page.rb +19 -0
- data/lib/generators/lalala/resource/USAGE +17 -0
- data/lib/generators/lalala/resource/resource_generator.rb +14 -0
- data/lib/lalala/admin/pages.rb +88 -0
- data/lib/lalala/assets.rb +17 -0
- data/lib/lalala/core/class_inheritable_setting.rb +37 -0
- data/lib/lalala/development.rb +51 -0
- data/lib/lalala/engine.rb +66 -0
- data/lib/lalala/ext_active_record/i18n_translations_writer.rb +38 -0
- data/lib/lalala/ext_active_record/schema/join_table.rb +94 -0
- data/lib/lalala/ext_active_record/schema/join_table_inverter.rb +8 -0
- data/lib/lalala/ext_active_record/schema.rb +6 -0
- data/lib/lalala/ext_active_record.rb +6 -0
- data/lib/lalala/ext_i18n/input_helper.rb +65 -0
- data/lib/lalala/ext_i18n/negotiation_adapter.rb +27 -0
- data/lib/lalala/ext_i18n/test_negotiation_adapter.rb +21 -0
- data/lib/lalala/ext_i18n.rb +7 -0
- data/lib/lalala/ext_rack/canonical_url.rb +46 -0
- data/lib/lalala/ext_rack/i18n_negotiator.rb +217 -0
- data/lib/lalala/ext_rack/page_loader.rb +54 -0
- data/lib/lalala/ext_rack.rb +8 -0
- data/lib/lalala/markdown/active_model.rb +51 -0
- data/lib/lalala/markdown/handlers/base.rb +17 -0
- data/lib/lalala/markdown/handlers/youtube.rb +32 -0
- data/lib/lalala/markdown/html_renderer.rb +109 -0
- data/lib/lalala/markdown/markdown_renderer.rb +251 -0
- data/lib/lalala/markdown/preview.rb +39 -0
- data/lib/lalala/markdown.rb +99 -0
- data/lib/lalala/pages/child_type_validator.rb +43 -0
- data/lib/lalala/pages/children_length_validator.rb +45 -0
- data/lib/lalala/pages/page_type_constraint.rb +17 -0
- data/lib/lalala/pages/path_handler.rb +38 -0
- data/lib/lalala/pages/route_mapper.rb +31 -0
- data/lib/lalala/pages.rb +11 -0
- data/lib/lalala/test.rb +18 -0
- data/lib/lalala/utils/intall_template.rb +41 -0
- data/lib/lalala/vendor.rb +21 -0
- data/lib/lalala/version.rb +10 -0
- data/lib/lalala/views/index_as_tree_table.rb +229 -0
- data/lib/lalala/views/title_bar.rb +32 -0
- data/lib/lalala/views/tree_table_for.rb +80 -0
- data/lib/lalala.rb +61 -0
- data/lib/tasks/lalala_tasks.rake +4 -0
- data/script/ci +115 -0
- data/script/rails +9 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/admin/admin_pages.rb +9 -0
- data/test/dummy/app/admin/admin_users.rb +20 -0
- data/test/dummy/app/admin/dashboard.rb +33 -0
- data/test/dummy/app/assets/javascripts/active_admin.js +1 -0
- data/test/dummy/app/assets/javascripts/application.js +15 -0
- data/test/dummy/app/assets/stylesheets/active_admin.css.scss +28 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/controllers/errors_controller.rb +18 -0
- data/test/dummy/app/controllers/pages_controller.rb +2 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/mailers/.gitkeep +0 -0
- data/test/dummy/app/models/.gitkeep +0 -0
- data/test/dummy/app/models/admin_user.rb +11 -0
- data/test/dummy/app/pages/application_page.rb +9 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config/application.rb +59 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +35 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/active_admin.rb +152 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/devise.rb +240 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/.gitkeep +0 -0
- data/test/dummy/db/migrate/20130327213850_devise_create_admin_users.rb +52 -0
- data/test/dummy/db/migrate/20130327213856_create_admin_notes.rb +17 -0
- data/test/dummy/db/migrate/20130327213857_move_admin_notes_to_comments.rb +26 -0
- data/test/dummy/db/migrate/20130327213858_create_pages.rb +42 -0
- data/test/dummy/db/schema.rb +79 -0
- data/test/dummy/lib/assets/.gitkeep +0 -0
- data/test/dummy/log/.gitkeep +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/test/fixtures/admin_users.yml +11 -0
- data/test/dummy/test/unit/admin_user_test.rb +7 -0
- data/test/dummy/tmp/cache/.gitkeep +0 -0
- data/test/i18n/router_test.rb +227 -0
- data/test/integration/login_test.rb +23 -0
- data/test/lalala_test.rb +7 -0
- data/test/test_helper.rb +15 -0
- data/vendor/deps/active_admin/.document +5 -0
- data/vendor/deps/active_admin/.gitignore +39 -0
- data/vendor/deps/active_admin/.travis.yml +15 -0
- data/vendor/deps/active_admin/.yardopts +8 -0
- data/vendor/deps/active_admin/CHANGELOG.md +739 -0
- data/vendor/deps/active_admin/CONTRIBUTING.md +111 -0
- data/vendor/deps/active_admin/Gemfile +47 -0
- data/vendor/deps/active_admin/Guardfile +7 -0
- data/vendor/deps/active_admin/LICENSE +25 -0
- data/vendor/deps/active_admin/README.rdoc +115 -0
- data/vendor/deps/active_admin/Rakefile +27 -0
- data/vendor/deps/active_admin/activeadmin.gemspec +32 -0
- data/vendor/deps/active_admin/app/assets/images/active_admin/admin_notes_icon.png +0 -0
- data/vendor/deps/active_admin/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
- data/vendor/deps/active_admin/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
- data/vendor/deps/active_admin/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
- data/vendor/deps/active_admin/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
- data/vendor/deps/active_admin/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
- data/vendor/deps/active_admin/app/assets/images/active_admin/loading.gif +0 -0
- data/vendor/deps/active_admin/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
- data/vendor/deps/active_admin/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
- data/vendor/deps/active_admin/app/assets/images/active_admin/orderable.png +0 -0
- data/vendor/deps/active_admin/app/assets/javascripts/active_admin/application.js +3 -0
- data/vendor/deps/active_admin/app/assets/javascripts/active_admin/base.js +5 -0
- data/vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee +64 -0
- data/vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +105 -0
- data/vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +97 -0
- data/vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.table-checkbox-toggler.js.coffee +27 -0
- data/vendor/deps/active_admin/app/assets/javascripts/active_admin/lib/namespace.js.coffee +3 -0
- data/vendor/deps/active_admin/app/assets/javascripts/active_admin/pages/application.js.coffee +16 -0
- data/vendor/deps/active_admin/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +26 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/_base.css.scss +45 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/_forms.css.scss +281 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/_header.css.scss +140 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/_mixins.css.scss +1 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/_typography.css.scss +100 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +11 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_blank_slates.scss +31 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_buttons.scss +11 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_comments.css.scss +41 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +123 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +151 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +39 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_pagination.scss +34 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_popovers.css.scss +123 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_scopes.scss +10 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +95 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/components/_tables.css.scss +108 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/mixins/_all.css.scss +11 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +66 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +37 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +24 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/mixins/_reset.css.scss +165 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +43 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/mixins/_sections.css.scss +36 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/mixins/_shadows.css.scss +22 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/mixins/_utilities.scss +26 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +24 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/pages/_dashboard.scss +5 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/print.css.scss +290 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/structure/_main_structure.scss +26 -0
- data/vendor/deps/active_admin/app/assets/stylesheets/active_admin/structure/_title_bar.scss +44 -0
- data/vendor/deps/active_admin/app/views/active_admin/dashboard/index.html.arb +1 -0
- data/vendor/deps/active_admin/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/vendor/deps/active_admin/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
- data/vendor/deps/active_admin/app/views/active_admin/devise/passwords/edit.html.erb +19 -0
- data/vendor/deps/active_admin/app/views/active_admin/devise/passwords/new.html.erb +14 -0
- data/vendor/deps/active_admin/app/views/active_admin/devise/sessions/new.html.erb +18 -0
- data/vendor/deps/active_admin/app/views/active_admin/devise/shared/_links.erb +20 -0
- data/vendor/deps/active_admin/app/views/active_admin/devise/unlocks/new.html.erb +14 -0
- data/vendor/deps/active_admin/app/views/active_admin/page/index.html.arb +1 -0
- data/vendor/deps/active_admin/app/views/active_admin/resource/edit.html.arb +1 -0
- data/vendor/deps/active_admin/app/views/active_admin/resource/index.csv.erb +23 -0
- data/vendor/deps/active_admin/app/views/active_admin/resource/index.html.arb +1 -0
- data/vendor/deps/active_admin/app/views/active_admin/resource/new.html.arb +1 -0
- data/vendor/deps/active_admin/app/views/active_admin/resource/show.html.arb +1 -0
- data/vendor/deps/active_admin/app/views/layouts/active_admin.html.arb +1 -0
- data/vendor/deps/active_admin/app/views/layouts/active_admin_logged_out.html.erb +35 -0
- data/vendor/deps/active_admin/cucumber.yml +3 -0
- data/vendor/deps/active_admin/docs/0-installation.md +52 -0
- data/vendor/deps/active_admin/docs/1-general-configuration.md +129 -0
- data/vendor/deps/active_admin/docs/10-custom-pages.md +96 -0
- data/vendor/deps/active_admin/docs/11-decorators.md +48 -0
- data/vendor/deps/active_admin/docs/12-arbre-components.md +145 -0
- data/vendor/deps/active_admin/docs/13-authorization-adapter.md +206 -0
- data/vendor/deps/active_admin/docs/2-resource-customization.md +256 -0
- data/vendor/deps/active_admin/docs/3-index-pages/index-as-block.md +16 -0
- data/vendor/deps/active_admin/docs/3-index-pages/index-as-blog.md +61 -0
- data/vendor/deps/active_admin/docs/3-index-pages/index-as-grid.md +21 -0
- data/vendor/deps/active_admin/docs/3-index-pages/index-as-table.md +105 -0
- data/vendor/deps/active_admin/docs/3-index-pages.md +141 -0
- data/vendor/deps/active_admin/docs/4-csv-format.md +32 -0
- data/vendor/deps/active_admin/docs/5-forms.md +39 -0
- data/vendor/deps/active_admin/docs/6-show-screens.md +43 -0
- data/vendor/deps/active_admin/docs/7-sidebars.md +42 -0
- data/vendor/deps/active_admin/docs/8-custom-actions.md +139 -0
- data/vendor/deps/active_admin/docs/9-batch-actions.md +161 -0
- data/vendor/deps/active_admin/features/action_item.feature +73 -0
- data/vendor/deps/active_admin/features/authorization.feature +64 -0
- data/vendor/deps/active_admin/features/authorization_cancan.feature +52 -0
- data/vendor/deps/active_admin/features/belongs_to.feature +63 -0
- data/vendor/deps/active_admin/features/breadcrumb.feature +27 -0
- data/vendor/deps/active_admin/features/comments/commenting.feature +126 -0
- data/vendor/deps/active_admin/features/comments/viewing_index.feature +19 -0
- data/vendor/deps/active_admin/features/dashboard.feature +67 -0
- data/vendor/deps/active_admin/features/decorators.feature +41 -0
- data/vendor/deps/active_admin/features/development_reloading.feature +43 -0
- data/vendor/deps/active_admin/features/edit_page.feature +106 -0
- data/vendor/deps/active_admin/features/first_boot.feature +16 -0
- data/vendor/deps/active_admin/features/global_navigation.feature +30 -0
- data/vendor/deps/active_admin/features/i18n.feature +42 -0
- data/vendor/deps/active_admin/features/index/batch_actions.feature +98 -0
- data/vendor/deps/active_admin/features/index/filters.feature +94 -0
- data/vendor/deps/active_admin/features/index/format_as_csv.feature +118 -0
- data/vendor/deps/active_admin/features/index/formats.feature +39 -0
- data/vendor/deps/active_admin/features/index/index_as_block.feature +15 -0
- data/vendor/deps/active_admin/features/index/index_as_blog.feature +50 -0
- data/vendor/deps/active_admin/features/index/index_as_grid.feature +45 -0
- data/vendor/deps/active_admin/features/index/index_as_table.feature +195 -0
- data/vendor/deps/active_admin/features/index/index_blank_slate.feature +61 -0
- data/vendor/deps/active_admin/features/index/index_parameters.feature +81 -0
- data/vendor/deps/active_admin/features/index/index_scope_to.feature +32 -0
- data/vendor/deps/active_admin/features/index/index_scopes.feature +239 -0
- data/vendor/deps/active_admin/features/index/page_title.feature +30 -0
- data/vendor/deps/active_admin/features/index/pagination.feature +44 -0
- data/vendor/deps/active_admin/features/menu.feature +39 -0
- data/vendor/deps/active_admin/features/new_page.feature +98 -0
- data/vendor/deps/active_admin/features/registering_assets.feature +35 -0
- data/vendor/deps/active_admin/features/registering_pages.feature +148 -0
- data/vendor/deps/active_admin/features/registering_resources.feature +33 -0
- data/vendor/deps/active_admin/features/root_to.feature +17 -0
- data/vendor/deps/active_admin/features/show/default_content.feature +43 -0
- data/vendor/deps/active_admin/features/show/page_title.feature +47 -0
- data/vendor/deps/active_admin/features/sidebar_sections.feature +198 -0
- data/vendor/deps/active_admin/features/site_title.feature +47 -0
- data/vendor/deps/active_admin/features/specifying_actions.feature +93 -0
- data/vendor/deps/active_admin/features/step_definitions/action_item_steps.rb +7 -0
- data/vendor/deps/active_admin/features/step_definitions/action_link_steps.rb +7 -0
- data/vendor/deps/active_admin/features/step_definitions/additional_web_steps.rb +95 -0
- data/vendor/deps/active_admin/features/step_definitions/asset_steps.rb +11 -0
- data/vendor/deps/active_admin/features/step_definitions/attribute_steps.rb +13 -0
- data/vendor/deps/active_admin/features/step_definitions/batch_action_steps.rb +94 -0
- data/vendor/deps/active_admin/features/step_definitions/breadcrumb_steps.rb +5 -0
- data/vendor/deps/active_admin/features/step_definitions/comment_steps.rb +13 -0
- data/vendor/deps/active_admin/features/step_definitions/configuration_steps.rb +109 -0
- data/vendor/deps/active_admin/features/step_definitions/dashboard_steps.rb +15 -0
- data/vendor/deps/active_admin/features/step_definitions/factory_steps.rb +49 -0
- data/vendor/deps/active_admin/features/step_definitions/filter_steps.rb +17 -0
- data/vendor/deps/active_admin/features/step_definitions/flash_steps.rb +11 -0
- data/vendor/deps/active_admin/features/step_definitions/format_steps.rb +56 -0
- data/vendor/deps/active_admin/features/step_definitions/i18n_steps.rb +3 -0
- data/vendor/deps/active_admin/features/step_definitions/index_scope_steps.rb +37 -0
- data/vendor/deps/active_admin/features/step_definitions/layout_steps.rb +3 -0
- data/vendor/deps/active_admin/features/step_definitions/member_link_steps.rb +7 -0
- data/vendor/deps/active_admin/features/step_definitions/menu_steps.rb +7 -0
- data/vendor/deps/active_admin/features/step_definitions/pagination_steps.rb +8 -0
- data/vendor/deps/active_admin/features/step_definitions/sidebar_steps.rb +7 -0
- data/vendor/deps/active_admin/features/step_definitions/site_title_steps.rb +15 -0
- data/vendor/deps/active_admin/features/step_definitions/tab_steps.rb +3 -0
- data/vendor/deps/active_admin/features/step_definitions/table_steps.rb +114 -0
- data/vendor/deps/active_admin/features/step_definitions/user_steps.rb +55 -0
- data/vendor/deps/active_admin/features/step_definitions/web_steps.rb +211 -0
- data/vendor/deps/active_admin/features/sti_resource.feature +61 -0
- data/vendor/deps/active_admin/features/support/env.rb +139 -0
- data/vendor/deps/active_admin/features/support/paths.rb +61 -0
- data/vendor/deps/active_admin/features/support/selectors.rb +45 -0
- data/vendor/deps/active_admin/features/users/logging_in.feature +34 -0
- data/vendor/deps/active_admin/features/users/logging_out.feature +25 -0
- data/vendor/deps/active_admin/features/users/resetting_password.feature +34 -0
- data/vendor/deps/active_admin/lib/active_admin/abstract_view_factory.rb +95 -0
- data/vendor/deps/active_admin/lib/active_admin/application.rb +305 -0
- data/vendor/deps/active_admin/lib/active_admin/asset_registration.rb +47 -0
- data/vendor/deps/active_admin/lib/active_admin/authorization_adapter.rb +128 -0
- data/vendor/deps/active_admin/lib/active_admin/base_controller/authorization.rb +153 -0
- data/vendor/deps/active_admin/lib/active_admin/base_controller/menu.rb +34 -0
- data/vendor/deps/active_admin/lib/active_admin/base_controller.rb +78 -0
- data/vendor/deps/active_admin/lib/active_admin/batch_actions/controller.rb +25 -0
- data/vendor/deps/active_admin/lib/active_admin/batch_actions/resource_extension.rb +126 -0
- data/vendor/deps/active_admin/lib/active_admin/batch_actions/views/batch_action_form.rb +35 -0
- data/vendor/deps/active_admin/lib/active_admin/batch_actions/views/batch_action_popover.rb +28 -0
- data/vendor/deps/active_admin/lib/active_admin/batch_actions/views/batch_action_selector.rb +66 -0
- data/vendor/deps/active_admin/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
- data/vendor/deps/active_admin/lib/active_admin/batch_actions.rb +17 -0
- data/vendor/deps/active_admin/lib/active_admin/callbacks.rb +87 -0
- data/vendor/deps/active_admin/lib/active_admin/cancan_adapter.rb +40 -0
- data/vendor/deps/active_admin/lib/active_admin/comments/comment.rb +49 -0
- data/vendor/deps/active_admin/lib/active_admin/comments/namespace_helper.rb +14 -0
- data/vendor/deps/active_admin/lib/active_admin/comments/resource_helper.rb +17 -0
- data/vendor/deps/active_admin/lib/active_admin/comments/show_page_helper.rb +23 -0
- data/vendor/deps/active_admin/lib/active_admin/comments/views/active_admin_comment.rb +0 -0
- data/vendor/deps/active_admin/lib/active_admin/comments/views/active_admin_comments.rb +86 -0
- data/vendor/deps/active_admin/lib/active_admin/comments/views.rb +3 -0
- data/vendor/deps/active_admin/lib/active_admin/comments.rb +85 -0
- data/vendor/deps/active_admin/lib/active_admin/component.rb +5 -0
- data/vendor/deps/active_admin/lib/active_admin/controller_action.rb +12 -0
- data/vendor/deps/active_admin/lib/active_admin/csv_builder.rb +51 -0
- data/vendor/deps/active_admin/lib/active_admin/dashboards/dashboard_controller.rb +50 -0
- data/vendor/deps/active_admin/lib/active_admin/dashboards/section.rb +34 -0
- data/vendor/deps/active_admin/lib/active_admin/dashboards.rb +68 -0
- data/vendor/deps/active_admin/lib/active_admin/dependency_checker.rb +42 -0
- data/vendor/deps/active_admin/lib/active_admin/deprecation.rb +36 -0
- data/vendor/deps/active_admin/lib/active_admin/devise.rb +60 -0
- data/vendor/deps/active_admin/lib/active_admin/dsl.rb +166 -0
- data/vendor/deps/active_admin/lib/active_admin/engine.rb +9 -0
- data/vendor/deps/active_admin/lib/active_admin/event.rb +33 -0
- data/vendor/deps/active_admin/lib/active_admin/filters/dsl.rb +21 -0
- data/vendor/deps/active_admin/lib/active_admin/filters/forms.rb +97 -0
- data/vendor/deps/active_admin/lib/active_admin/filters/resource_extension.rb +122 -0
- data/vendor/deps/active_admin/lib/active_admin/filters.rb +8 -0
- data/vendor/deps/active_admin/lib/active_admin/form_builder.rb +196 -0
- data/vendor/deps/active_admin/lib/active_admin/helpers/collection.rb +23 -0
- data/vendor/deps/active_admin/lib/active_admin/helpers/optional_display.rb +40 -0
- data/vendor/deps/active_admin/lib/active_admin/helpers/scope_chain.rb +23 -0
- data/vendor/deps/active_admin/lib/active_admin/helpers/settings.rb +66 -0
- data/vendor/deps/active_admin/lib/active_admin/iconic/icons.rb +142 -0
- data/vendor/deps/active_admin/lib/active_admin/iconic.rb +51 -0
- data/vendor/deps/active_admin/lib/active_admin/inputs/datepicker_input.rb +11 -0
- data/vendor/deps/active_admin/lib/active_admin/inputs/filter_base.rb +46 -0
- data/vendor/deps/active_admin/lib/active_admin/inputs/filter_boolean_input.rb +40 -0
- data/vendor/deps/active_admin/lib/active_admin/inputs/filter_check_boxes_input.rb +40 -0
- data/vendor/deps/active_admin/lib/active_admin/inputs/filter_date_range_input.rb +34 -0
- data/vendor/deps/active_admin/lib/active_admin/inputs/filter_numeric_input.rb +55 -0
- data/vendor/deps/active_admin/lib/active_admin/inputs/filter_select_input.rb +27 -0
- data/vendor/deps/active_admin/lib/active_admin/inputs/filter_string_input.rb +26 -0
- data/vendor/deps/active_admin/lib/active_admin/inputs.rb +15 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/bg.yml +77 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/ca.yml +81 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/cs.yml +83 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/da.yml +80 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/de.yml +109 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/en.yml +86 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/es.yml +98 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/fr.yml +81 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/he.yml +81 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/hr.yml +85 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/hu.yml +67 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/it.yml +81 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/ja.yml +79 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/ko.yml +76 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/lt.yml +81 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/lv.yml +81 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/nl.yml +82 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/no-NB.yml +77 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/pl.yml +85 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/pt-BR.yml +81 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/ro.yml +68 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/ru.yml +81 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/sv-SE.yml +81 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/tr.yml +81 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/vi.yml +81 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/zh-CN.yml +81 -0
- data/vendor/deps/active_admin/lib/active_admin/locales/zh-TW.yml +81 -0
- data/vendor/deps/active_admin/lib/active_admin/menu.rb +94 -0
- data/vendor/deps/active_admin/lib/active_admin/menu_collection.rb +96 -0
- data/vendor/deps/active_admin/lib/active_admin/menu_item.rb +85 -0
- data/vendor/deps/active_admin/lib/active_admin/namespace.rb +253 -0
- data/vendor/deps/active_admin/lib/active_admin/page.rb +88 -0
- data/vendor/deps/active_admin/lib/active_admin/page_controller.rb +29 -0
- data/vendor/deps/active_admin/lib/active_admin/page_dsl.rb +28 -0
- data/vendor/deps/active_admin/lib/active_admin/page_presenter.rb +32 -0
- data/vendor/deps/active_admin/lib/active_admin/reloader.rb +130 -0
- data/vendor/deps/active_admin/lib/active_admin/resource/action_items.rb +93 -0
- data/vendor/deps/active_admin/lib/active_admin/resource/belongs_to.rb +33 -0
- data/vendor/deps/active_admin/lib/active_admin/resource/controllers.rb +18 -0
- data/vendor/deps/active_admin/lib/active_admin/resource/menu.rb +77 -0
- data/vendor/deps/active_admin/lib/active_admin/resource/naming.rb +82 -0
- data/vendor/deps/active_admin/lib/active_admin/resource/page_presenters.rb +28 -0
- data/vendor/deps/active_admin/lib/active_admin/resource/pagination.rb +19 -0
- data/vendor/deps/active_admin/lib/active_admin/resource/routes.rb +46 -0
- data/vendor/deps/active_admin/lib/active_admin/resource/scopes.rb +46 -0
- data/vendor/deps/active_admin/lib/active_admin/resource/sidebars.rb +27 -0
- data/vendor/deps/active_admin/lib/active_admin/resource.rb +170 -0
- data/vendor/deps/active_admin/lib/active_admin/resource_collection.rb +88 -0
- data/vendor/deps/active_admin/lib/active_admin/resource_controller/action_builder.rb +21 -0
- data/vendor/deps/active_admin/lib/active_admin/resource_controller/actions.rb +81 -0
- data/vendor/deps/active_admin/lib/active_admin/resource_controller/data_access.rb +299 -0
- data/vendor/deps/active_admin/lib/active_admin/resource_controller/decorators.rb +20 -0
- data/vendor/deps/active_admin/lib/active_admin/resource_controller/resource_class_methods.rb +24 -0
- data/vendor/deps/active_admin/lib/active_admin/resource_controller/scoping.rb +36 -0
- data/vendor/deps/active_admin/lib/active_admin/resource_controller/sidebars.rb +18 -0
- data/vendor/deps/active_admin/lib/active_admin/resource_controller.rb +56 -0
- data/vendor/deps/active_admin/lib/active_admin/resource_dsl.rb +161 -0
- data/vendor/deps/active_admin/lib/active_admin/router.rb +117 -0
- data/vendor/deps/active_admin/lib/active_admin/sass/active_admin.scss +3 -0
- data/vendor/deps/active_admin/lib/active_admin/sass/css_loader.rb +16 -0
- data/vendor/deps/active_admin/lib/active_admin/sass/helpers.rb +45 -0
- data/vendor/deps/active_admin/lib/active_admin/scope.rb +45 -0
- data/vendor/deps/active_admin/lib/active_admin/sidebar_section.rb +37 -0
- data/vendor/deps/active_admin/lib/active_admin/version.rb +3 -0
- data/vendor/deps/active_admin/lib/active_admin/view_factory.rb +28 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +7 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/auto_link_helper.rb +34 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/breadcrumb_helper.rb +26 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/display_helper.rb +38 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/download_format_links_helper.rb +50 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/fields_for.rb +50 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/flash_helper.rb +13 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/form_helper.rb +19 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/icon_helper.rb +12 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/method_or_proc_helper.rb +78 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/title_helper.rb +11 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
- data/vendor/deps/active_admin/lib/active_admin/view_helpers.rb +21 -0
- data/vendor/deps/active_admin/lib/active_admin/views/action_items.rb +17 -0
- data/vendor/deps/active_admin/lib/active_admin/views/components/action_list_popover.rb +29 -0
- data/vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb +73 -0
- data/vendor/deps/active_admin/lib/active_admin/views/components/blank_slate.rb +17 -0
- data/vendor/deps/active_admin/lib/active_admin/views/components/columns.rb +150 -0
- data/vendor/deps/active_admin/lib/active_admin/views/components/dropdown_menu.rb +73 -0
- data/vendor/deps/active_admin/lib/active_admin/views/components/paginated_collection.rb +115 -0
- data/vendor/deps/active_admin/lib/active_admin/views/components/panel.rb +34 -0
- data/vendor/deps/active_admin/lib/active_admin/views/components/popover.rb +27 -0
- data/vendor/deps/active_admin/lib/active_admin/views/components/scopes.rb +64 -0
- data/vendor/deps/active_admin/lib/active_admin/views/components/sidebar_section.rb +28 -0
- data/vendor/deps/active_admin/lib/active_admin/views/components/site_title.rb +55 -0
- data/vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb +56 -0
- data/vendor/deps/active_admin/lib/active_admin/views/components/table_for.rb +191 -0
- data/vendor/deps/active_admin/lib/active_admin/views/dashboard_section_renderer.rb +19 -0
- data/vendor/deps/active_admin/lib/active_admin/views/footer.rb +20 -0
- data/vendor/deps/active_admin/lib/active_admin/views/header.rb +32 -0
- data/vendor/deps/active_admin/lib/active_admin/views/index_as_block.rb +32 -0
- data/vendor/deps/active_admin/lib/active_admin/views/index_as_blog.rb +133 -0
- data/vendor/deps/active_admin/lib/active_admin/views/index_as_grid.rb +72 -0
- data/vendor/deps/active_admin/lib/active_admin/views/index_as_table.rb +234 -0
- data/vendor/deps/active_admin/lib/active_admin/views/pages/base.rb +134 -0
- data/vendor/deps/active_admin/lib/active_admin/views/pages/dashboard.rb +62 -0
- data/vendor/deps/active_admin/lib/active_admin/views/pages/form.rb +51 -0
- data/vendor/deps/active_admin/lib/active_admin/views/pages/index.rb +142 -0
- data/vendor/deps/active_admin/lib/active_admin/views/pages/layout.rb +26 -0
- data/vendor/deps/active_admin/lib/active_admin/views/pages/page.rb +30 -0
- data/vendor/deps/active_admin/lib/active_admin/views/pages/show.rb +59 -0
- data/vendor/deps/active_admin/lib/active_admin/views/tabbed_navigation.rb +135 -0
- data/vendor/deps/active_admin/lib/active_admin/views/title_bar.rb +53 -0
- data/vendor/deps/active_admin/lib/active_admin/views.rb +8 -0
- data/vendor/deps/active_admin/lib/active_admin.rb +141 -0
- data/vendor/deps/active_admin/lib/activeadmin.rb +1 -0
- data/vendor/deps/active_admin/lib/generators/active_admin/assets/assets_generator.rb +39 -0
- data/vendor/deps/active_admin/lib/generators/active_admin/assets/templates/3.0/active_admin.js +1 -0
- data/vendor/deps/active_admin/lib/generators/active_admin/assets/templates/3.1/active_admin.css.scss +29 -0
- data/vendor/deps/active_admin/lib/generators/active_admin/assets/templates/3.1/active_admin.js +1 -0
- data/vendor/deps/active_admin/lib/generators/active_admin/devise/devise_generator.rb +58 -0
- data/vendor/deps/active_admin/lib/generators/active_admin/install/install_generator.rb +50 -0
- data/vendor/deps/active_admin/lib/generators/active_admin/install/templates/active_admin.rb.erb +210 -0
- data/vendor/deps/active_admin/lib/generators/active_admin/install/templates/admin_user.rb.erb +20 -0
- data/vendor/deps/active_admin/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
- data/vendor/deps/active_admin/lib/generators/active_admin/install/templates/migrations/1_create_admin_notes.rb +17 -0
- data/vendor/deps/active_admin/lib/generators/active_admin/install/templates/migrations/2_move_admin_notes_to_comments.rb +26 -0
- data/vendor/deps/active_admin/lib/generators/active_admin/resource/resource_generator.rb +16 -0
- data/vendor/deps/active_admin/lib/generators/active_admin/resource/templates/admin.rb +3 -0
- data/vendor/deps/active_admin/script/local +44 -0
- data/vendor/deps/active_admin/script/use_rails +53 -0
- data/vendor/deps/active_admin/spec/integration/default_namespace.rb +77 -0
- data/vendor/deps/active_admin/spec/integration/javascript_spec.rb +20 -0
- data/vendor/deps/active_admin/spec/integration/memory_spec.rb +28 -0
- data/vendor/deps/active_admin/spec/integration/stylesheets_spec.rb +41 -0
- data/vendor/deps/active_admin/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
- data/vendor/deps/active_admin/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +82 -0
- data/vendor/deps/active_admin/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
- data/vendor/deps/active_admin/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +60 -0
- data/vendor/deps/active_admin/spec/javascripts/compiled/jquery.aa.popover-spec.js +106 -0
- data/vendor/deps/active_admin/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +37 -0
- data/vendor/deps/active_admin/spec/javascripts/fixtures/checkboxes.html +9 -0
- data/vendor/deps/active_admin/spec/javascripts/fixtures/table_checkboxes.html +17 -0
- data/vendor/deps/active_admin/spec/javascripts/helpers/SpecHelper.js +3 -0
- data/vendor/deps/active_admin/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +108 -0
- data/vendor/deps/active_admin/spec/javascripts/helpers/vendor/jasmine-jquery.js +288 -0
- data/vendor/deps/active_admin/spec/javascripts/helpers/vendor/sinon-1.2.0.js +2915 -0
- data/vendor/deps/active_admin/spec/javascripts/support/jasmine.yml +74 -0
- data/vendor/deps/active_admin/spec/javascripts/support/jasmine_config.rb +23 -0
- data/vendor/deps/active_admin/spec/javascripts/support/jasmine_runner.rb +32 -0
- data/vendor/deps/active_admin/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +34 -0
- data/vendor/deps/active_admin/spec/javascripts/support/jquery.min.js +4 -0
- data/vendor/deps/active_admin/spec/spec_helper.rb +165 -0
- data/vendor/deps/active_admin/spec/spec_helper_without_rails.rb +9 -0
- data/vendor/deps/active_admin/spec/support/detect_rails_version.rb +42 -0
- data/vendor/deps/active_admin/spec/support/integration_example_group.rb +31 -0
- data/vendor/deps/active_admin/spec/support/jslint.yml +80 -0
- data/vendor/deps/active_admin/spec/support/rails_template.rb +112 -0
- data/vendor/deps/active_admin/spec/support/rails_template_with_data.rb +59 -0
- data/vendor/deps/active_admin/spec/support/templates/admin/stores.rb +1 -0
- data/vendor/deps/active_admin/spec/support/templates/cucumber.rb +24 -0
- data/vendor/deps/active_admin/spec/support/templates/cucumber_with_reloading.rb +5 -0
- data/vendor/deps/active_admin/spec/support/templates/en.yml +8 -0
- data/vendor/deps/active_admin/spec/support/templates/post_decorator.rb +53 -0
- data/vendor/deps/active_admin/spec/unit/abstract_view_factory_spec.rb +79 -0
- data/vendor/deps/active_admin/spec/unit/action_builder_spec.rb +126 -0
- data/vendor/deps/active_admin/spec/unit/active_admin_spec.rb +25 -0
- data/vendor/deps/active_admin/spec/unit/application_spec.rb +142 -0
- data/vendor/deps/active_admin/spec/unit/asset_registration_spec.rb +43 -0
- data/vendor/deps/active_admin/spec/unit/authorization/authorization_adapter_spec.rb +61 -0
- data/vendor/deps/active_admin/spec/unit/authorization/controller_authorization_spec.rb +47 -0
- data/vendor/deps/active_admin/spec/unit/auto_link_spec.rb +39 -0
- data/vendor/deps/active_admin/spec/unit/base_controller_spec.rb +6 -0
- data/vendor/deps/active_admin/spec/unit/batch_actions/resource_spec.rb +91 -0
- data/vendor/deps/active_admin/spec/unit/batch_actions/settings_spec.rb +61 -0
- data/vendor/deps/active_admin/spec/unit/belongs_to_spec.rb +42 -0
- data/vendor/deps/active_admin/spec/unit/breadcrumbs_spec.rb +143 -0
- data/vendor/deps/active_admin/spec/unit/cancan_adapter_spec.rb +35 -0
- data/vendor/deps/active_admin/spec/unit/comments_spec.rb +124 -0
- data/vendor/deps/active_admin/spec/unit/component_spec.rb +18 -0
- data/vendor/deps/active_admin/spec/unit/config_shared_examples.rb +59 -0
- data/vendor/deps/active_admin/spec/unit/controller_filters_spec.rb +34 -0
- data/vendor/deps/active_admin/spec/unit/csv_builder_spec.rb +103 -0
- data/vendor/deps/active_admin/spec/unit/dashboard_controller_spec.rb +76 -0
- data/vendor/deps/active_admin/spec/unit/dashboard_section_spec.rb +56 -0
- data/vendor/deps/active_admin/spec/unit/dashboards_spec.rb +59 -0
- data/vendor/deps/active_admin/spec/unit/devise_spec.rb +87 -0
- data/vendor/deps/active_admin/spec/unit/display_name_spec.rb +29 -0
- data/vendor/deps/active_admin/spec/unit/dsl_spec.rb +61 -0
- data/vendor/deps/active_admin/spec/unit/event_spec.rb +47 -0
- data/vendor/deps/active_admin/spec/unit/filters/filter_form_builder_spec.rb +281 -0
- data/vendor/deps/active_admin/spec/unit/filters/resource_spec.rb +74 -0
- data/vendor/deps/active_admin/spec/unit/form_builder_spec.rb +426 -0
- data/vendor/deps/active_admin/spec/unit/generators/install_rails_3_1_spec.rb +16 -0
- data/vendor/deps/active_admin/spec/unit/helpers/collection_spec.rb +65 -0
- data/vendor/deps/active_admin/spec/unit/helpers/scope_chain_spec.rb +36 -0
- data/vendor/deps/active_admin/spec/unit/helpers/settings_spec.rb +30 -0
- data/vendor/deps/active_admin/spec/unit/menu_collection_spec.rb +62 -0
- data/vendor/deps/active_admin/spec/unit/menu_item_spec.rb +141 -0
- data/vendor/deps/active_admin/spec/unit/menu_spec.rb +56 -0
- data/vendor/deps/active_admin/spec/unit/namespace/authorization_spec.rb +31 -0
- data/vendor/deps/active_admin/spec/unit/namespace/register_page_spec.rb +99 -0
- data/vendor/deps/active_admin/spec/unit/namespace/register_resource_spec.rb +187 -0
- data/vendor/deps/active_admin/spec/unit/namespace_spec.rb +109 -0
- data/vendor/deps/active_admin/spec/unit/page_controller_spec.rb +5 -0
- data/vendor/deps/active_admin/spec/unit/page_spec.rb +72 -0
- data/vendor/deps/active_admin/spec/unit/pretty_format_spec.rb +35 -0
- data/vendor/deps/active_admin/spec/unit/rails_spec.rb +43 -0
- data/vendor/deps/active_admin/spec/unit/reloader_spec.rb +124 -0
- data/vendor/deps/active_admin/spec/unit/resource/action_items_spec.rb +62 -0
- data/vendor/deps/active_admin/spec/unit/resource/menu_spec.rb +18 -0
- data/vendor/deps/active_admin/spec/unit/resource/naming_spec.rb +81 -0
- data/vendor/deps/active_admin/spec/unit/resource/page_presenters_spec.rb +32 -0
- data/vendor/deps/active_admin/spec/unit/resource/pagination_spec.rb +38 -0
- data/vendor/deps/active_admin/spec/unit/resource/scopes_spec.rb +43 -0
- data/vendor/deps/active_admin/spec/unit/resource/sidebars_spec.rb +43 -0
- data/vendor/deps/active_admin/spec/unit/resource_collection_spec.rb +101 -0
- data/vendor/deps/active_admin/spec/unit/resource_controller/data_access_spec.rb +74 -0
- data/vendor/deps/active_admin/spec/unit/resource_controller/sidebars_spec.rb +46 -0
- data/vendor/deps/active_admin/spec/unit/resource_controller_spec.rb +266 -0
- data/vendor/deps/active_admin/spec/unit/resource_registration_spec.rb +65 -0
- data/vendor/deps/active_admin/spec/unit/resource_spec.rb +250 -0
- data/vendor/deps/active_admin/spec/unit/routing_spec.rb +183 -0
- data/vendor/deps/active_admin/spec/unit/sass/helpers_spec.rb +47 -0
- data/vendor/deps/active_admin/spec/unit/scope_spec.rb +76 -0
- data/vendor/deps/active_admin/spec/unit/view_factory_spec.rb +21 -0
- data/vendor/deps/active_admin/spec/unit/view_helpers/download_format_links_helper_spec.rb +39 -0
- data/vendor/deps/active_admin/spec/unit/view_helpers/fields_for_spec.rb +50 -0
- data/vendor/deps/active_admin/spec/unit/view_helpers/form_helper_spec.rb +22 -0
- data/vendor/deps/active_admin/spec/unit/view_helpers/method_or_proc_helper_spec.rb +97 -0
- data/vendor/deps/active_admin/spec/unit/views/components/action_list_popover_spec.rb +30 -0
- data/vendor/deps/active_admin/spec/unit/views/components/attributes_table_spec.rb +123 -0
- data/vendor/deps/active_admin/spec/unit/views/components/batch_action_popover_spec.rb +33 -0
- data/vendor/deps/active_admin/spec/unit/views/components/blank_slate_spec.rb +17 -0
- data/vendor/deps/active_admin/spec/unit/views/components/columns_spec.rb +142 -0
- data/vendor/deps/active_admin/spec/unit/views/components/paginated_collection_spec.rb +205 -0
- data/vendor/deps/active_admin/spec/unit/views/components/panel_spec.rb +43 -0
- data/vendor/deps/active_admin/spec/unit/views/components/popover_spec.rb +33 -0
- data/vendor/deps/active_admin/spec/unit/views/components/sidebar_section_spec.rb +37 -0
- data/vendor/deps/active_admin/spec/unit/views/components/site_title_spec.rb +78 -0
- data/vendor/deps/active_admin/spec/unit/views/components/status_tag_spec.rb +95 -0
- data/vendor/deps/active_admin/spec/unit/views/components/table_for_spec.rb +182 -0
- data/vendor/deps/active_admin/spec/unit/views/pages/layout_spec.rb +63 -0
- data/vendor/deps/active_admin/spec/unit/views/pages/show_spec.rb +21 -0
- data/vendor/deps/active_admin/spec/unit/views/tabbed_navigation_spec.rb +152 -0
- data/vendor/deps/active_admin/tasks/docs.rake +39 -0
- data/vendor/deps/active_admin/tasks/js.rake +32 -0
- data/vendor/deps/active_admin/tasks/parallel_tests.rake +60 -0
- data/vendor/deps/active_admin/tasks/test.rake +76 -0
- data/vendor/deps/active_admin/tasks/yard.rake +6 -0
- data/vendor/deps/closure_tree/.gitignore +12 -0
- data/vendor/deps/closure_tree/.travis.yml +22 -0
- data/vendor/deps/closure_tree/.yardopts +3 -0
- data/vendor/deps/closure_tree/Gemfile +2 -0
- data/vendor/deps/closure_tree/MIT-LICENSE +19 -0
- data/vendor/deps/closure_tree/README.md +641 -0
- data/vendor/deps/closure_tree/Rakefile +26 -0
- data/vendor/deps/closure_tree/ci/Gemfile.rails-3.0.x +5 -0
- data/vendor/deps/closure_tree/ci/Gemfile.rails-3.1.x +4 -0
- data/vendor/deps/closure_tree/ci/Gemfile.rails-3.2.x +4 -0
- data/vendor/deps/closure_tree/closure_tree.gemspec +31 -0
- data/vendor/deps/closure_tree/lib/closure_tree/acts_as_tree.rb +55 -0
- data/vendor/deps/closure_tree/lib/closure_tree/columns.rb +123 -0
- data/vendor/deps/closure_tree/lib/closure_tree/deterministic_ordering.rb +49 -0
- data/vendor/deps/closure_tree/lib/closure_tree/model.rb +386 -0
- data/vendor/deps/closure_tree/lib/closure_tree/numeric_deterministic_ordering.rb +93 -0
- data/vendor/deps/closure_tree/lib/closure_tree/version.rb +3 -0
- data/vendor/deps/closure_tree/lib/closure_tree/with_advisory_lock.rb +18 -0
- data/vendor/deps/closure_tree/lib/closure_tree.rb +8 -0
- data/vendor/deps/closure_tree/spec/cuisine_type_spec.rb +30 -0
- data/vendor/deps/closure_tree/spec/db/database.yml +19 -0
- data/vendor/deps/closure_tree/spec/db/schema.rb +109 -0
- data/vendor/deps/closure_tree/spec/fixtures/labels.yml +55 -0
- data/vendor/deps/closure_tree/spec/fixtures/tags.yml +98 -0
- data/vendor/deps/closure_tree/spec/hash_tree_spec.rb +91 -0
- data/vendor/deps/closure_tree/spec/label_spec.rb +356 -0
- data/vendor/deps/closure_tree/spec/namespace_type_spec.rb +13 -0
- data/vendor/deps/closure_tree/spec/parallel_prepend_sibling_spec.rb +45 -0
- data/vendor/deps/closure_tree/spec/parallel_spec.rb +59 -0
- data/vendor/deps/closure_tree/spec/spec_helper.rb +57 -0
- data/vendor/deps/closure_tree/spec/support/models.rb +74 -0
- data/vendor/deps/closure_tree/spec/tag_spec.rb +469 -0
- data/vendor/deps/closure_tree/spec/user_spec.rb +136 -0
- data/vendor/deps/closure_tree/tests.sh +19 -0
- metadata +2136 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
$:.push File.expand_path("../lib", __FILE__)
|
2
|
+
require "closure_tree/version"
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.name = "closure_tree"
|
6
|
+
gem.version = ::ClosureTree::VERSION
|
7
|
+
gem.authors = ["Matthew McEachen"]
|
8
|
+
gem.email = ["matthew-github@mceachen.org"]
|
9
|
+
gem.homepage = "http://matthew.mceachen.us/closure_tree"
|
10
|
+
|
11
|
+
gem.summary = %q{Easily and efficiently make your ActiveRecord model support hierarchies}
|
12
|
+
gem.description = %q{Easily and efficiently make your ActiveRecord model support hierarchies}
|
13
|
+
|
14
|
+
gem.files = Dir["lib/**/*"] + ["MIT-LICENSE", "Rakefile", "README.md"]
|
15
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
|
+
|
17
|
+
gem.add_runtime_dependency 'activerecord', '>= 3.0.0'
|
18
|
+
gem.add_runtime_dependency 'with_advisory_lock', '>= 0.0.6' # <- to prevent duplicate roots
|
19
|
+
|
20
|
+
gem.add_development_dependency 'rake'
|
21
|
+
gem.add_development_dependency 'yard'
|
22
|
+
gem.add_development_dependency 'rspec'
|
23
|
+
gem.add_development_dependency 'rails' # FIXME: just for rspec fixture support (!!)
|
24
|
+
gem.add_development_dependency 'rspec-rails' # FIXME: just for rspec fixture support (!!)
|
25
|
+
gem.add_development_dependency 'mysql2'
|
26
|
+
gem.add_development_dependency 'pg'
|
27
|
+
gem.add_development_dependency 'sqlite3'
|
28
|
+
gem.add_development_dependency 'uuidtools'
|
29
|
+
gem.add_development_dependency 'strong_parameters'
|
30
|
+
# TODO: gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
|
31
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'closure_tree/columns'
|
2
|
+
require 'closure_tree/deterministic_ordering'
|
3
|
+
require 'closure_tree/model'
|
4
|
+
require 'closure_tree/numeric_deterministic_ordering'
|
5
|
+
require 'closure_tree/with_advisory_lock'
|
6
|
+
|
7
|
+
module ClosureTree
|
8
|
+
module ActsAsTree
|
9
|
+
def acts_as_tree(options = {})
|
10
|
+
|
11
|
+
class_attribute :closure_tree_options
|
12
|
+
|
13
|
+
self.closure_tree_options = {
|
14
|
+
:ct_base_class => self,
|
15
|
+
:parent_column_name => 'parent_id',
|
16
|
+
:dependent => :nullify, # or :destroy or :delete_all -- see the README
|
17
|
+
:name_column => 'name',
|
18
|
+
:with_advisory_lock => true
|
19
|
+
}.merge(options)
|
20
|
+
|
21
|
+
raise IllegalArgumentException, "name_column can't be 'path'" if closure_tree_options[:name_column] == 'path'
|
22
|
+
|
23
|
+
include ClosureTree::Columns
|
24
|
+
extend ClosureTree::Columns
|
25
|
+
|
26
|
+
include ClosureTree::WithAdvisoryLock
|
27
|
+
extend ClosureTree::WithAdvisoryLock
|
28
|
+
|
29
|
+
# Auto-inject the hierarchy table
|
30
|
+
# See https://github.com/patshaughnessy/class_factory/blob/master/lib/class_factory/class_factory.rb
|
31
|
+
class_attribute :hierarchy_class
|
32
|
+
self.hierarchy_class = ct_class.parent.const_set short_hierarchy_class_name, Class.new(ActiveRecord::Base)
|
33
|
+
|
34
|
+
self.hierarchy_class.class_eval <<-RUBY
|
35
|
+
belongs_to :ancestor, :class_name => "#{ct_class.to_s}"
|
36
|
+
belongs_to :descendant, :class_name => "#{ct_class.to_s}"
|
37
|
+
attr_accessible :ancestor, :descendant, :generations
|
38
|
+
def ==(comparison_object)
|
39
|
+
comparison_object.instance_of?(self.class) &&
|
40
|
+
self.attributes == comparison_object.attributes
|
41
|
+
end
|
42
|
+
alias :eql? :==
|
43
|
+
RUBY
|
44
|
+
|
45
|
+
self.hierarchy_class.table_name = hierarchy_table_name
|
46
|
+
|
47
|
+
include ClosureTree::Model
|
48
|
+
unless order_option.nil?
|
49
|
+
include ClosureTree::DeterministicOrdering
|
50
|
+
include ClosureTree::DeterministicNumericOrdering if order_is_numeric
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,123 @@
|
|
1
|
+
module ClosureTree
|
2
|
+
|
3
|
+
# Mixed into both classes and instances to provide easy access to the column names
|
4
|
+
module Columns
|
5
|
+
|
6
|
+
def parent_column_name
|
7
|
+
closure_tree_options[:parent_column_name]
|
8
|
+
end
|
9
|
+
|
10
|
+
def parent_column_sym
|
11
|
+
parent_column_name.to_sym
|
12
|
+
end
|
13
|
+
|
14
|
+
def has_name?
|
15
|
+
ct_class.new.attributes.include? closure_tree_options[:name_column]
|
16
|
+
end
|
17
|
+
|
18
|
+
def name_column
|
19
|
+
closure_tree_options[:name_column]
|
20
|
+
end
|
21
|
+
|
22
|
+
def name_sym
|
23
|
+
name_column.to_sym
|
24
|
+
end
|
25
|
+
|
26
|
+
def hierarchy_table_name
|
27
|
+
# We need to use the table_name, not something like ct_class.to_s.demodulize + "_hierarchies",
|
28
|
+
# because they may have overridden the table name, which is what we want to be consistent with
|
29
|
+
# in order for the schema to make sense.
|
30
|
+
tablename = closure_tree_options[:hierarchy_table_name] ||
|
31
|
+
remove_prefix_and_suffix(ct_table_name).singularize + "_hierarchies"
|
32
|
+
|
33
|
+
ActiveRecord::Base.table_name_prefix + tablename + ActiveRecord::Base.table_name_suffix
|
34
|
+
end
|
35
|
+
|
36
|
+
def hierarchy_class_name
|
37
|
+
closure_tree_options[:hierarchy_class_name] || ct_class.to_s + "Hierarchy"
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
#
|
42
|
+
# Returns the constant name of the hierarchy_class
|
43
|
+
#
|
44
|
+
# @return [String] the constant name
|
45
|
+
#
|
46
|
+
# @example
|
47
|
+
# Namespace::Model.hierarchy_class_name # => "Namespace::ModelHierarchy"
|
48
|
+
# Namespace::Model.short_hierarchy_class_name # => "ModelHierarchy"
|
49
|
+
def short_hierarchy_class_name
|
50
|
+
hierarchy_class_name.split('::').last
|
51
|
+
end
|
52
|
+
|
53
|
+
def quoted_hierarchy_table_name
|
54
|
+
connection.quote_table_name hierarchy_table_name
|
55
|
+
end
|
56
|
+
|
57
|
+
def quoted_parent_column_name
|
58
|
+
connection.quote_column_name parent_column_name
|
59
|
+
end
|
60
|
+
|
61
|
+
def quoted_name_column
|
62
|
+
connection.quote_column_name name_column
|
63
|
+
end
|
64
|
+
|
65
|
+
def ct_quote(field)
|
66
|
+
connection.quote(field)
|
67
|
+
end
|
68
|
+
|
69
|
+
def order_option
|
70
|
+
closure_tree_options[:order]
|
71
|
+
end
|
72
|
+
|
73
|
+
def with_order_option(options)
|
74
|
+
order_option ? options.merge(:order => order_option) : options
|
75
|
+
end
|
76
|
+
|
77
|
+
def append_order(order_by)
|
78
|
+
order_option ? "#{order_by}, #{order_option}" : order_by
|
79
|
+
end
|
80
|
+
|
81
|
+
def order_is_numeric
|
82
|
+
# The table might not exist yet (in the case of ActiveRecord::Observer use, see issue 32)
|
83
|
+
return false if order_option.nil? || !self.table_exists?
|
84
|
+
c = ct_class.columns_hash[order_option]
|
85
|
+
c && c.type == :integer
|
86
|
+
end
|
87
|
+
|
88
|
+
def ct_class
|
89
|
+
(self.is_a?(Class) ? self : self.class)
|
90
|
+
end
|
91
|
+
|
92
|
+
# This is the "topmost" class. This will only potentially not be ct_class if you are using STI.
|
93
|
+
def ct_base_class
|
94
|
+
ct_class.closure_tree_options[:ct_base_class]
|
95
|
+
end
|
96
|
+
|
97
|
+
def ct_subclass?
|
98
|
+
ct_class != ct_class.base_class
|
99
|
+
end
|
100
|
+
|
101
|
+
def ct_attribute_names
|
102
|
+
@ct_attr_names ||= ct_class.new.attributes.keys - ct_class.protected_attributes.to_a
|
103
|
+
end
|
104
|
+
|
105
|
+
def ct_has_type?
|
106
|
+
ct_attribute_names.include? 'type'
|
107
|
+
end
|
108
|
+
|
109
|
+
def ct_table_name
|
110
|
+
ct_class.table_name
|
111
|
+
end
|
112
|
+
|
113
|
+
def quoted_table_name
|
114
|
+
connection.quote_table_name ct_table_name
|
115
|
+
end
|
116
|
+
|
117
|
+
def remove_prefix_and_suffix(table_name)
|
118
|
+
prefix = Regexp.escape(ActiveRecord::Base.table_name_prefix)
|
119
|
+
suffix = Regexp.escape(ActiveRecord::Base.table_name_suffix)
|
120
|
+
table_name.gsub(/^#{prefix}(.+)#{suffix}$/, "\\1")
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module ClosureTree
|
2
|
+
module DeterministicOrdering
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
module ClassAndInstanceMethods
|
6
|
+
def order_column
|
7
|
+
o = order_option
|
8
|
+
o.split(' ', 2).first if o
|
9
|
+
end
|
10
|
+
|
11
|
+
def require_order_column
|
12
|
+
raise ":order value, '#{order_option}', isn't a column" if order_column.nil?
|
13
|
+
end
|
14
|
+
|
15
|
+
def order_column_sym
|
16
|
+
require_order_column
|
17
|
+
order_column.to_sym
|
18
|
+
end
|
19
|
+
|
20
|
+
def quoted_order_column(include_table_name = true)
|
21
|
+
require_order_column
|
22
|
+
prefix = include_table_name ? "#{quoted_table_name}." : ""
|
23
|
+
"#{prefix}#{connection.quote_column_name(order_column)}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
include ClassAndInstanceMethods
|
28
|
+
|
29
|
+
module ClassMethods
|
30
|
+
include ClassAndInstanceMethods
|
31
|
+
end
|
32
|
+
|
33
|
+
def order_value
|
34
|
+
read_attribute(order_column_sym)
|
35
|
+
end
|
36
|
+
|
37
|
+
def order_value=(new_order_value)
|
38
|
+
write_attribute(order_column_sym, new_order_value)
|
39
|
+
end
|
40
|
+
|
41
|
+
def siblings_before
|
42
|
+
siblings.where(["#{quoted_order_column} < ?", order_value])
|
43
|
+
end
|
44
|
+
|
45
|
+
def siblings_after
|
46
|
+
siblings.where(["#{quoted_order_column} > ?", order_value])
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,386 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
|
3
|
+
module ClosureTree
|
4
|
+
module Model
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
validate :ct_validate
|
9
|
+
before_save :ct_before_save
|
10
|
+
after_save :ct_after_save
|
11
|
+
before_destroy :ct_before_destroy
|
12
|
+
|
13
|
+
belongs_to :parent,
|
14
|
+
:class_name => ct_class.to_s,
|
15
|
+
:foreign_key => parent_column_name
|
16
|
+
|
17
|
+
unless defined?(ActiveModel::ForbiddenAttributesProtection) && ancestors.include?(ActiveModel::ForbiddenAttributesProtection)
|
18
|
+
attr_accessible :parent
|
19
|
+
end
|
20
|
+
|
21
|
+
has_many :children, with_order_option(
|
22
|
+
:class_name => ct_class.to_s,
|
23
|
+
:foreign_key => parent_column_name,
|
24
|
+
:dependent => closure_tree_options[:dependent]
|
25
|
+
)
|
26
|
+
|
27
|
+
has_many :ancestor_hierarchies,
|
28
|
+
:class_name => hierarchy_class_name,
|
29
|
+
:foreign_key => "descendant_id",
|
30
|
+
:order => "#{quoted_hierarchy_table_name}.generations asc"
|
31
|
+
|
32
|
+
has_many :self_and_ancestors,
|
33
|
+
:through => :ancestor_hierarchies,
|
34
|
+
:source => :ancestor,
|
35
|
+
:order => "#{quoted_hierarchy_table_name}.generations asc"
|
36
|
+
|
37
|
+
has_many :descendant_hierarchies,
|
38
|
+
:class_name => hierarchy_class_name,
|
39
|
+
:foreign_key => "ancestor_id",
|
40
|
+
:order => "#{quoted_hierarchy_table_name}.generations asc"
|
41
|
+
# TODO: FIXME: this collection currently ignores sort_order
|
42
|
+
# (because the quoted_table_named would need to be joined in to get to the order column)
|
43
|
+
|
44
|
+
has_many :self_and_descendants,
|
45
|
+
:through => :descendant_hierarchies,
|
46
|
+
:source => :descendant,
|
47
|
+
:order => append_order("#{quoted_hierarchy_table_name}.generations asc")
|
48
|
+
end
|
49
|
+
|
50
|
+
# Returns true if this node has no parents.
|
51
|
+
def root?
|
52
|
+
ct_parent_id.nil?
|
53
|
+
end
|
54
|
+
|
55
|
+
# Returns true if this node has a parent, and is not a root.
|
56
|
+
def child?
|
57
|
+
!parent.nil?
|
58
|
+
end
|
59
|
+
|
60
|
+
# Returns true if this node has no children.
|
61
|
+
def leaf?
|
62
|
+
children.empty?
|
63
|
+
end
|
64
|
+
|
65
|
+
# Returns the farthest ancestor, or self if +root?+
|
66
|
+
def root
|
67
|
+
self_and_ancestors.where(parent_column_name.to_sym => nil).first
|
68
|
+
end
|
69
|
+
|
70
|
+
def leaves
|
71
|
+
self_and_descendants.leaves
|
72
|
+
end
|
73
|
+
|
74
|
+
def depth
|
75
|
+
ancestors.size
|
76
|
+
end
|
77
|
+
|
78
|
+
alias :level :depth
|
79
|
+
|
80
|
+
def ancestors
|
81
|
+
without_self(self_and_ancestors)
|
82
|
+
end
|
83
|
+
|
84
|
+
def ancestor_ids
|
85
|
+
ids_from(ancestors)
|
86
|
+
end
|
87
|
+
|
88
|
+
# Returns an array, root first, of self_and_ancestors' values of the +to_s_column+, which defaults
|
89
|
+
# to the +name_column+.
|
90
|
+
# (so child.ancestry_path == +%w{grandparent parent child}+
|
91
|
+
def ancestry_path(to_s_column = name_column)
|
92
|
+
self_and_ancestors.reverse.collect { |n| n.send to_s_column.to_sym }
|
93
|
+
end
|
94
|
+
|
95
|
+
def child_ids
|
96
|
+
ids_from(children)
|
97
|
+
end
|
98
|
+
|
99
|
+
def descendants
|
100
|
+
without_self(self_and_descendants)
|
101
|
+
end
|
102
|
+
|
103
|
+
def descendant_ids
|
104
|
+
ids_from(descendants)
|
105
|
+
end
|
106
|
+
|
107
|
+
def self_and_siblings
|
108
|
+
s = ct_base_class.where(parent_column_sym => parent)
|
109
|
+
order_option.present? ? s.order(quoted_order_column) : s
|
110
|
+
end
|
111
|
+
|
112
|
+
def siblings
|
113
|
+
without_self(self_and_siblings)
|
114
|
+
end
|
115
|
+
|
116
|
+
def sibling_ids
|
117
|
+
ids_from(siblings)
|
118
|
+
end
|
119
|
+
|
120
|
+
# Alias for appending to the children collection.
|
121
|
+
# You can also add directly to the children collection, if you'd prefer.
|
122
|
+
def add_child(child_node)
|
123
|
+
children << child_node
|
124
|
+
child_node
|
125
|
+
end
|
126
|
+
|
127
|
+
# Find a child node whose +ancestry_path+ minus self.ancestry_path is +path+.
|
128
|
+
def find_by_path(path)
|
129
|
+
return self if path.empty?
|
130
|
+
parent_constraint = "#{quoted_parent_column_name} = #{ct_quote(id)}"
|
131
|
+
ct_class.ct_scoped_to_path(path, parent_constraint).first
|
132
|
+
end
|
133
|
+
|
134
|
+
# Find a child node whose +ancestry_path+ minus self.ancestry_path is +path+
|
135
|
+
def find_or_create_by_path(path, attributes = {}, find_before_lock = true)
|
136
|
+
(find_before_lock && find_by_path(path)) || begin
|
137
|
+
ct_with_advisory_lock do
|
138
|
+
subpath = path.is_a?(Enumerable) ? path.dup : [path]
|
139
|
+
child_name = subpath.shift
|
140
|
+
return self unless child_name
|
141
|
+
child = transaction do
|
142
|
+
attrs = {name_sym => child_name}
|
143
|
+
attrs[:type] = self.type if ct_subclass? && ct_has_type?
|
144
|
+
self.children.where(attrs).first || begin
|
145
|
+
child = self.class.new(attributes.merge(attrs))
|
146
|
+
self.children << child
|
147
|
+
child
|
148
|
+
end
|
149
|
+
end
|
150
|
+
child.find_or_create_by_path(subpath, attributes, false)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
def find_all_by_generation(generation_level)
|
156
|
+
s = ct_base_class.joins(<<-SQL)
|
157
|
+
INNER JOIN (
|
158
|
+
SELECT descendant_id
|
159
|
+
FROM #{quoted_hierarchy_table_name}
|
160
|
+
WHERE ancestor_id = #{ct_quote(self.id)}
|
161
|
+
GROUP BY 1
|
162
|
+
HAVING MAX(#{quoted_hierarchy_table_name}.generations) = #{generation_level.to_i}
|
163
|
+
) AS descendants ON (#{quoted_table_name}.#{ct_base_class.primary_key} = descendants.descendant_id)
|
164
|
+
SQL
|
165
|
+
order_option ? s.order(order_option) : s
|
166
|
+
end
|
167
|
+
|
168
|
+
def hash_tree_scope(limit_depth = nil)
|
169
|
+
scope = self_and_descendants
|
170
|
+
if limit_depth
|
171
|
+
scope.where("#{quoted_hierarchy_table_name}.generations <= #{limit_depth - 1}")
|
172
|
+
else
|
173
|
+
scope
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
def hash_tree(options = {})
|
178
|
+
self.class.build_hash_tree(hash_tree_scope(options[:limit_depth]))
|
179
|
+
end
|
180
|
+
|
181
|
+
def ct_parent_id
|
182
|
+
read_attribute(parent_column_sym)
|
183
|
+
end
|
184
|
+
|
185
|
+
def ct_validate
|
186
|
+
if changes[parent_column_name] &&
|
187
|
+
parent.present? &&
|
188
|
+
parent.self_and_ancestors.include?(self)
|
189
|
+
errors.add(parent_column_sym, "You cannot add an ancestor as a descendant")
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
def ct_before_save
|
194
|
+
@was_new_record = new_record?
|
195
|
+
true # don't cancel the save
|
196
|
+
end
|
197
|
+
|
198
|
+
def ct_after_save
|
199
|
+
rebuild! if changes[parent_column_name] || @was_new_record
|
200
|
+
@was_new_record = false # we aren't new anymore.
|
201
|
+
true # don't cancel anything.
|
202
|
+
end
|
203
|
+
|
204
|
+
def rebuild!
|
205
|
+
ct_with_advisory_lock do
|
206
|
+
delete_hierarchy_references unless @was_new_record
|
207
|
+
hierarchy_class.create!(:ancestor => self, :descendant => self, :generations => 0)
|
208
|
+
unless root?
|
209
|
+
sql = <<-SQL
|
210
|
+
INSERT INTO #{quoted_hierarchy_table_name}
|
211
|
+
(ancestor_id, descendant_id, generations)
|
212
|
+
SELECT x.ancestor_id, #{ct_quote(id)}, x.generations + 1
|
213
|
+
FROM #{quoted_hierarchy_table_name} x
|
214
|
+
WHERE x.descendant_id = #{ct_quote(self.ct_parent_id)}
|
215
|
+
SQL
|
216
|
+
connection.execute sql.strip
|
217
|
+
end
|
218
|
+
children.each { |c| c.rebuild! }
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
def ct_before_destroy
|
223
|
+
delete_hierarchy_references
|
224
|
+
if closure_tree_options[:dependent] == :nullify
|
225
|
+
children.each { |c| c.rebuild! }
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
def delete_hierarchy_references
|
230
|
+
# The crazy double-wrapped sub-subselect works around MySQL's limitation of subselects on the same table that is being mutated.
|
231
|
+
# It shouldn't affect performance of postgresql.
|
232
|
+
# See http://dev.mysql.com/doc/refman/5.0/en/subquery-errors.html
|
233
|
+
# Also: PostgreSQL doesn't support INNER JOIN on DELETE, so we can't use that.
|
234
|
+
connection.execute <<-SQL
|
235
|
+
DELETE FROM #{quoted_hierarchy_table_name}
|
236
|
+
WHERE descendant_id IN (
|
237
|
+
SELECT DISTINCT descendant_id
|
238
|
+
FROM ( SELECT descendant_id
|
239
|
+
FROM #{quoted_hierarchy_table_name}
|
240
|
+
WHERE ancestor_id = #{ct_quote(id)}
|
241
|
+
) AS x )
|
242
|
+
OR descendant_id = #{ct_quote(id)}
|
243
|
+
SQL
|
244
|
+
end
|
245
|
+
|
246
|
+
def without_self(scope)
|
247
|
+
scope.where(["#{quoted_table_name}.#{ct_base_class.primary_key} != ?", self])
|
248
|
+
end
|
249
|
+
|
250
|
+
def ids_from(scope)
|
251
|
+
if scope.respond_to? :pluck
|
252
|
+
scope.pluck(:id)
|
253
|
+
else
|
254
|
+
scope.select(:id).collect(&:id)
|
255
|
+
end
|
256
|
+
end
|
257
|
+
|
258
|
+
# TODO: _parent_id will be removed in the next major version
|
259
|
+
alias :_parent_id :ct_parent_id
|
260
|
+
|
261
|
+
module ClassMethods
|
262
|
+
def roots
|
263
|
+
where(parent_column_name => nil)
|
264
|
+
end
|
265
|
+
|
266
|
+
# Returns an arbitrary node that has no parents.
|
267
|
+
def root
|
268
|
+
roots.first
|
269
|
+
end
|
270
|
+
|
271
|
+
# There is no default depth limit. This might be crazy-big, depending
|
272
|
+
# on your tree shape. Hash huge trees at your own peril!
|
273
|
+
def hash_tree(options = {})
|
274
|
+
build_hash_tree(hash_tree_scope(options[:limit_depth]))
|
275
|
+
end
|
276
|
+
|
277
|
+
def leaves
|
278
|
+
s = joins(<<-SQL)
|
279
|
+
INNER JOIN (
|
280
|
+
SELECT ancestor_id
|
281
|
+
FROM #{quoted_hierarchy_table_name}
|
282
|
+
GROUP BY 1
|
283
|
+
HAVING MAX(#{quoted_hierarchy_table_name}.generations) = 0
|
284
|
+
) AS leaves ON (#{quoted_table_name}.#{primary_key} = leaves.ancestor_id)
|
285
|
+
SQL
|
286
|
+
order_option ? s.order(order_option) : s
|
287
|
+
end
|
288
|
+
|
289
|
+
# Rebuilds the hierarchy table based on the parent_id column in the database.
|
290
|
+
# Note that the hierarchy table will be truncated.
|
291
|
+
def rebuild!
|
292
|
+
ct_with_advisory_lock do
|
293
|
+
hierarchy_class.delete_all # not destroy_all -- we just want a simple truncate.
|
294
|
+
roots.each { |n| n.send(:rebuild!) } # roots just uses the parent_id column, so this is safe.
|
295
|
+
end
|
296
|
+
nil
|
297
|
+
end
|
298
|
+
|
299
|
+
def find_all_by_generation(generation_level)
|
300
|
+
s = joins(<<-SQL)
|
301
|
+
INNER JOIN (
|
302
|
+
SELECT #{primary_key} as root_id
|
303
|
+
FROM #{quoted_table_name}
|
304
|
+
WHERE #{quoted_parent_column_name} IS NULL
|
305
|
+
) AS roots ON (1 = 1)
|
306
|
+
INNER JOIN (
|
307
|
+
SELECT ancestor_id, descendant_id
|
308
|
+
FROM #{quoted_hierarchy_table_name}
|
309
|
+
GROUP BY 1, 2
|
310
|
+
HAVING MAX(generations) = #{generation_level.to_i}
|
311
|
+
) AS descendants ON (
|
312
|
+
#{quoted_table_name}.#{primary_key} = descendants.descendant_id
|
313
|
+
AND roots.root_id = descendants.ancestor_id
|
314
|
+
)
|
315
|
+
SQL
|
316
|
+
order_option ? s.order(order_option) : s
|
317
|
+
end
|
318
|
+
|
319
|
+
# Find the node whose +ancestry_path+ is +path+
|
320
|
+
def find_by_path(path)
|
321
|
+
parent_constraint = "#{quoted_parent_column_name} IS NULL"
|
322
|
+
ct_scoped_to_path(path, parent_constraint).first
|
323
|
+
end
|
324
|
+
|
325
|
+
def ct_scoped_to_path(path, parent_constraint)
|
326
|
+
path = path.is_a?(Enumerable) ? path.dup : [path]
|
327
|
+
scope = scoped.where(name_sym => path.last).readonly(false)
|
328
|
+
path[0..-2].reverse.each_with_index do |ea, idx|
|
329
|
+
subtable = idx == 0 ? quoted_table_name : "p#{idx - 1}"
|
330
|
+
scope = scope.joins(<<-SQL)
|
331
|
+
INNER JOIN #{quoted_table_name} AS p#{idx} ON p#{idx}.id = #{subtable}.#{parent_column_name}
|
332
|
+
SQL
|
333
|
+
scope = scope.where("p#{idx}.#{quoted_name_column} = #{ct_quote(ea)}")
|
334
|
+
end
|
335
|
+
root_table_name = path.size > 1 ? "p#{path.size - 2}" : quoted_table_name
|
336
|
+
scope.where("#{root_table_name}.#{parent_constraint}")
|
337
|
+
end
|
338
|
+
|
339
|
+
# Find or create nodes such that the +ancestry_path+ is +path+
|
340
|
+
def find_or_create_by_path(path, attributes = {})
|
341
|
+
find_by_path(path) || begin
|
342
|
+
subpath = path.dup
|
343
|
+
root_name = subpath.shift
|
344
|
+
ct_with_advisory_lock do
|
345
|
+
# shenanigans because find_or_create can't infer we want the same class as this:
|
346
|
+
# Note that roots will already be constrained to this subclass (in the case of polymorphism):
|
347
|
+
root = roots.where(name_sym => root_name).first
|
348
|
+
root ||= create!(attributes.merge(name_sym => root_name))
|
349
|
+
root.find_or_create_by_path(subpath, attributes)
|
350
|
+
end
|
351
|
+
end
|
352
|
+
end
|
353
|
+
|
354
|
+
def hash_tree_scope(limit_depth = nil)
|
355
|
+
# Deepest generation, within limit, for each descendant
|
356
|
+
# NOTE: Postgres requires HAVING clauses to always contains aggregate functions (!!)
|
357
|
+
generation_depth = <<-SQL
|
358
|
+
INNER JOIN (
|
359
|
+
SELECT descendant_id, MAX(generations) as depth
|
360
|
+
FROM #{quoted_hierarchy_table_name}
|
361
|
+
GROUP BY descendant_id
|
362
|
+
#{limit_depth ? "HAVING MAX(generations) <= #{limit_depth - 1}" : ""}
|
363
|
+
) AS generation_depth
|
364
|
+
ON #{quoted_table_name}.#{primary_key} = generation_depth.descendant_id
|
365
|
+
SQL
|
366
|
+
scoped.joins(generation_depth).order(append_order("generation_depth.depth"))
|
367
|
+
end
|
368
|
+
|
369
|
+
# Builds nested hash structure using the scope returned from the passed in scope
|
370
|
+
def build_hash_tree(tree_scope)
|
371
|
+
tree = ActiveSupport::OrderedHash.new
|
372
|
+
id_to_hash = {}
|
373
|
+
|
374
|
+
tree_scope.each do |ea|
|
375
|
+
h = id_to_hash[ea.id] = ActiveSupport::OrderedHash.new
|
376
|
+
if ea.root? || tree.empty? # We're at the top of the tree.
|
377
|
+
tree[ea] = h
|
378
|
+
else
|
379
|
+
id_to_hash[ea.ct_parent_id][ea] = h
|
380
|
+
end
|
381
|
+
end
|
382
|
+
tree
|
383
|
+
end
|
384
|
+
end
|
385
|
+
end
|
386
|
+
end
|