From ea16f2ce37c6bd7f823ecea9df26b7302c245e0f Mon Sep 17 00:00:00 2001 From: albert Date: Thu, 26 Jan 2012 14:33:46 -0500 Subject: [PATCH] wip: mobile layout, remove is_deleted constraint by default --- .../stylesheets/common/000_vars.css.scss | 43 ------------------- .../stylesheets/mobile/020_base.css.scss | 3 ++ .../stylesheets/mobile/main_layout.css.scss | 4 ++ .../stylesheets/mobile/page_header.css.scss | 33 ++++++++++++++ .../stylesheets/mobile/paginator.css.scss | 1 - app/assets/stylesheets/mobile/posts.css.scss | 23 +++++----- app/controllers/mobile/posts_controller.rb | 35 +++++++++++++++ app/models/post.rb | 7 +-- app/views/layouts/mobile.html.erb | 33 ++++++++++++-- app/views/mobile/posts/index.html.erb | 14 ++++++ config/routes.rb | 4 ++ 11 files changed, 135 insertions(+), 65 deletions(-) create mode 100644 app/assets/stylesheets/mobile/020_base.css.scss create mode 100644 app/assets/stylesheets/mobile/main_layout.css.scss create mode 100644 app/assets/stylesheets/mobile/page_header.css.scss create mode 100644 app/controllers/mobile/posts_controller.rb create mode 100644 app/views/mobile/posts/index.html.erb diff --git a/app/assets/stylesheets/common/000_vars.css.scss b/app/assets/stylesheets/common/000_vars.css.scss index 40fd5255b..811f92f92 100644 --- a/app/assets/stylesheets/common/000_vars.css.scss +++ b/app/assets/stylesheets/common/000_vars.css.scss @@ -53,46 +53,3 @@ $basefont: 100%; *vertical-align: auto; } -@mixin vertical-gradient ($startColor: #555, $endColor: #333) { - background-color: $endColor; - background-repeat: repeat-x; - background-image: -moz-linear-gradient(top, $startColor, $endColor); // FF 3.6+ - background-image: -ms-linear-gradient(top, $startColor, $endColor); // IE10 - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, $startColor), color-stop(100%, $endColor)); // Safari 4+, Chrome 2+ - background-image: -webkit-linear-gradient(top, $startColor, $endColor); // Safari 5.1+, Chrome 10+ - background-image: -o-linear-gradient(top, $startColor, $endColor); // Opera 11.10 - background-image: linear-gradient(top, $startColor, $endColor); // The standard - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$startColor}', endColorstr='#{$endColor}', GradientType=0); // IE9 and down -} - -@mixin gradientBar($primaryColor, $secondaryColor) { - @include vertical-gradient($primaryColor, $secondaryColor); - text-shadow: 0 -1px 0 rgba(0,0,0,0.25); - border-color: $secondaryColor $secondaryColor darken($secondaryColor, 15%); - border-color: rgba(0,0,0,0.1) rgba(0,0,0,0.1) opacify(rgba(0,0,0,0.1), 0.15); -} - -@mixin transition($transition) { - -webkit-transition: $transition; - -moz-transition: $transition; - -ms-transition: $transition; - -o-transition: $transition; - transition: $transition; -} - -@mixin vertical-three-colors-gradient($startColor: #00b3ee, $midColor: #7a43b6, $colorStop: 50%, $endColor: #c3325f) { - background-color: $endColor; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from($startColor), color-stop($colorStop, $midColor), to($endColor)); - background-image: -webkit-linear-gradient($startColor, $midColor $colorStop, $endColor); - background-image: -moz-linear-gradient($startColor, $midColor $colorStop, $endColor); - background-image: -ms-linear-gradient($startColor, $midColor $colorStop, $endColor); - background-image: -o-linear-gradient($startColor, $midColor $colorStop, $endColor); - background-image: linear-gradient($startColor, $midColor $colorStop, $endColor); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$startColor}', endColorstr='#{$endColor}', GradientType=0); // IE9 and down, gets no color-stop at all the proper fallback -} - -// Reset filters for IE -@mixin reset-filter() { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} diff --git a/app/assets/stylesheets/mobile/020_base.css.scss b/app/assets/stylesheets/mobile/020_base.css.scss new file mode 100644 index 000000000..51bee1713 --- /dev/null +++ b/app/assets/stylesheets/mobile/020_base.css.scss @@ -0,0 +1,3 @@ +body { + width: 100%; +} \ No newline at end of file diff --git a/app/assets/stylesheets/mobile/main_layout.css.scss b/app/assets/stylesheets/mobile/main_layout.css.scss new file mode 100644 index 000000000..1fbb12bce --- /dev/null +++ b/app/assets/stylesheets/mobile/main_layout.css.scss @@ -0,0 +1,4 @@ +div#page { + overflow: visible; + margin: 0 5px; +} \ No newline at end of file diff --git a/app/assets/stylesheets/mobile/page_header.css.scss b/app/assets/stylesheets/mobile/page_header.css.scss new file mode 100644 index 000000000..f4c37cb8c --- /dev/null +++ b/app/assets/stylesheets/mobile/page_header.css.scss @@ -0,0 +1,33 @@ +@import "../common/000_vars.css.scss"; + +header#top { + h1 { + font-size: 2.5em; + margin: 5px 5px 0 5px; + } + + menu { + margin-top: -2px; + background: $menu_color; + padding: 3px 10px; + + li { + margin: 0; + padding: 0; + } + + li a { + padding: 6px 10px; + } + } + + menu.main { + margin-top: 0px; + background: white; + + li.current a { + background: $menu_color; + font-weight: bold; + } + } +} diff --git a/app/assets/stylesheets/mobile/paginator.css.scss b/app/assets/stylesheets/mobile/paginator.css.scss index bdbc8d05a..572988b9c 100644 --- a/app/assets/stylesheets/mobile/paginator.css.scss +++ b/app/assets/stylesheets/mobile/paginator.css.scss @@ -1,3 +1,2 @@ div.paginator { - font-size: 3em; } diff --git a/app/assets/stylesheets/mobile/posts.css.scss b/app/assets/stylesheets/mobile/posts.css.scss index 4e0f47d30..ae1f92ec6 100644 --- a/app/assets/stylesheets/mobile/posts.css.scss +++ b/app/assets/stylesheets/mobile/posts.css.scss @@ -1,15 +1,12 @@ -a.search-inc-tag { - display: none; -} +@import "../common/000_vars.css.scss"; -a.search-exl-tag { - display: none; -} - -.post-count { - display: none; -} - -section#mode-box { - display: none; +article.post-preview { + height: 150px; + width: 150px; + margin-right: 5px; + margin-bottom: 5px; + float: left; + text-align: center; + vertical-align: middle; + @include inline-block; } \ No newline at end of file diff --git a/app/controllers/mobile/posts_controller.rb b/app/controllers/mobile/posts_controller.rb new file mode 100644 index 000000000..08d8abd51 --- /dev/null +++ b/app/controllers/mobile/posts_controller.rb @@ -0,0 +1,35 @@ +module Mobile + class PostsController < ApplicationController + before_filter :member_only, :except => [:show, :index] + respond_to :html + rescue_from PostSets::SearchError, :with => :search_error + layout "mobile" + + def index + @post_set = PostSets::Post.new(tag_query, params[:page]) + @posts = @post_set.posts + end + + def show + @post = Post.find(params[:id]) + end + + private + def search_error(exception) + @exception = exception + render :action => "error" + end + + def tag_query + params[:tags] || (params[:post] && params[:post][:tags]) + end + + def save_recent_tags + if tag_query + tags = Tag.scan_tags(tag_query) + tags = TagAlias.to_aliased(tags) + Tag.scan_tags(session[:recent_tags]) + session[:recent_tags] = tags.uniq.slice(0, 40).join(" ") + end + end + end +end diff --git a/app/models/post.rb b/app/models/post.rb index 891b688df..ab9a3022f 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -661,8 +661,9 @@ class Post < ActiveRecord::Base q = Tag.parse_query(q) end + constraint = false relation = Post.scoped - + relation = add_range_relation(q[:post_id], "posts.id", relation) relation = add_range_relation(q[:mpixels], "posts.width * posts.height / 1000000.0", relation) relation = add_range_relation(q[:width], "posts.image_width", relation) @@ -686,10 +687,6 @@ class Post < ActiveRecord::Base relation = relation.where("posts.is_flagged = TRUE") elsif q[:status] == "deleted" relation = relation.where("posts.is_deleted = TRUE") - elsif q[:status] == "all" || q[:status] == "any" - # do nothing - else - relation = relation.where("posts.is_deleted <> TRUE") end if q[:source] diff --git a/app/views/layouts/mobile.html.erb b/app/views/layouts/mobile.html.erb index e8cfc9b8b..ffdeeef98 100644 --- a/app/views/layouts/mobile.html.erb +++ b/app/views/layouts/mobile.html.erb @@ -3,12 +3,39 @@ <%= yield :page_title %> <%= csrf_meta_tag %> - <%= stylesheet_link_tag "mobile", :media => "screen" %> - <%= javascript_include_tag "mobile" %> + <%= stylesheet_link_tag "application", :media => "screen" %> + <%= stylesheet_link_tag "mobile", :media => "only screen and (max-width: 480px), only screen and (max-device-width: 480px)" %> + <%= javascript_include_tag "application" %> + + <%= yield :html_header %> -
+
+ <%= render "news_updates/listing" %> + +

<%= link_to Danbooru.config.app_name, "/" %>

+ + + <%= render "layouts/more_links" %> +
+ +
+ <%- if flash[:notice] -%> +
<%= flash[:notice] %>
+ <%- else -%> + + <%- end -%> + <%= yield :layout %>
+ +
+ <%= yield :page_footer_content %> +
+ + <%= render "static/footer" %> diff --git a/app/views/mobile/posts/index.html.erb b/app/views/mobile/posts/index.html.erb new file mode 100644 index 000000000..50063525f --- /dev/null +++ b/app/views/mobile/posts/index.html.erb @@ -0,0 +1,14 @@ +
+
+ <%= render "posts/partials/index/posts", :post_set => @post_set %> + <%= render "posts/partials/common/secondary_links" %> +
+
+ +<% content_for(:page_title) do %> + <% if @post_set.tag_string.present? %> + <%= @post_set.tag_string %> - <%= Danbooru.config.app_name %> + <% else %> + <%= Danbooru.config.app_name %> + <% end %> +<% end %> diff --git a/config/routes.rb b/config/routes.rb index f51fc018e..e3deae9fc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -176,6 +176,10 @@ Danbooru::Application.routes.draw do end resources :wiki_page_versions, :only => [:index, :show] + namespace :mobile do + resources :posts + end + # aliases resources :wpages, :controller => "wiki_pages" resources :ftopics, :controller => "forum_topics"