diff --git a/.gitignore b/.gitignore index 44247461a..52cf51417 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,5 @@ log /log/development.scm.stderr.log test/* tmp/* +/app/models/tag.rb +/app/models/tag.rb diff --git a/Client.html b/Client.html new file mode 100644 index 000000000..5ba9775f1 --- /dev/null +++ b/Client.html @@ -0,0 +1,25 @@ + + + + +Client + + + + +
+

这是一张图片

+

photo Share A

+
+ +

这是一段视频

+

Text Share B

+
+ +

这是一篇文章

+

Text Share C

+
+ + + + \ No newline at end of file diff --git a/app/assets/javascripts/shares.js b/app/assets/javascripts/shares.js new file mode 100644 index 000000000..dee720fac --- /dev/null +++ b/app/assets/javascripts/shares.js @@ -0,0 +1,2 @@ +// Place all the behaviors and hooks related to the matching controller here. +// All this logic will automatically be available in application.js. diff --git a/app/assets/stylesheets/scaffold.css b/app/assets/stylesheets/scaffold.css new file mode 100644 index 000000000..1ae700029 --- /dev/null +++ b/app/assets/stylesheets/scaffold.css @@ -0,0 +1,56 @@ +body { background-color: #fff; color: #333; } + +body, p, ol, ul, td { + font-family: verdana, arial, helvetica, sans-serif; + font-size: 13px; + line-height: 18px; +} + +pre { + background-color: #eee; + padding: 10px; + font-size: 11px; +} + +a { color: #000; } +a:visited { color: #666; } +a:hover { color: #fff; background-color:#000; } + +div.field, div.actions { + margin-bottom: 10px; +} + +#notice { + color: green; +} + +.field_with_errors { + padding: 2px; + background-color: red; + display: table; +} + +#error_explanation { + width: 450px; + border: 2px solid red; + padding: 7px; + padding-bottom: 0; + margin-bottom: 20px; + background-color: #f0f0f0; +} + +#error_explanation h2 { + text-align: left; + font-weight: bold; + padding: 5px 5px 5px 15px; + font-size: 12px; + margin: -7px; + margin-bottom: 0px; + background-color: #c00; + color: #fff; +} + +#error_explanation ul li { + font-size: 12px; + list-style: square; +} diff --git a/app/assets/stylesheets/shares.css b/app/assets/stylesheets/shares.css new file mode 100644 index 000000000..afad32db0 --- /dev/null +++ b/app/assets/stylesheets/shares.css @@ -0,0 +1,4 @@ +/* + Place all the styles related to the matching controller here. + They will automatically be included in application.css. +*/ diff --git a/app/controllers/bids_controller.rb b/app/controllers/bids_controller.rb index e785ff381..749d40a7d 100644 --- a/app/controllers/bids_controller.rb +++ b/app/controllers/bids_controller.rb @@ -3,6 +3,7 @@ class BidsController < ApplicationController before_filter :find_bid, :only => [:show, :show_project, :create, :destroy, :more, :back, :add] helper :watchers + def index if params[:bid_title] Bid.creat_bids(params[:bid_budget], params[:bid_deadline], params[:bid_title] , params[:bid_description]) @@ -32,6 +33,13 @@ class BidsController < ApplicationController end def show_project + @membership = User.current.memberships.all(:conditions => Project.visible_condition(User.current)) + @option = [] + @membership.each do |membership| + @option << membership.project + end + # a = [1] + # @project = Project.where("id in []", a) @user = @bid.author @bidding_project = @bid.biding_projects respond_to do |format| @@ -43,9 +51,9 @@ class BidsController < ApplicationController end def add - project_id = params[:bid_for_save][:project_id] + project = Project.where('name = ?', params[:bid]).first bid_message = params[:bid_for_save][:bid_message] - BidingProject.cerate_bidding(@bid.id, project_id, bid_message) + BidingProject.cerate_bidding(@bid.id, project.id, bid_message) @bidding_project = @bid.biding_projects respond_to do |format| # format.html { redirect_to_referer_or {render :text => 'Watcher added.', :layout => true}} @@ -56,7 +64,7 @@ class BidsController < ApplicationController def create if params[:user_message].size>0 - message = params[:user_message] + message = params[:user_message][:message] @bid.add_jour(User.current, message) # if a_message.size > 5 # @message = a_message[-5, 5] diff --git a/app/controllers/shares_controller.rb b/app/controllers/shares_controller.rb new file mode 100644 index 000000000..9a76d26b8 --- /dev/null +++ b/app/controllers/shares_controller.rb @@ -0,0 +1,92 @@ +class SharesController < ApplicationController + # GET /shares + # GET /shares.json + def index + @shares = Share.all + + respond_to do |format| + format.html # index.html.erb + format.json { render json: @shares } + end + end + + # GET /shares/1 + # GET /shares/1.json + def show + @share = Share.find(params[:id]) + + respond_to do |format| + format.html # show.html.erb + format.json { render json: @share } + end + end + + # GET /shares/new + # GET /shares/new.json + def new + @share = Share.new + + #add by mkz 鎶撳彇鍙傛暟浼犵粰share + @share[:access_token] = params[:access_token] + @share[:comment] = params[:comment] + @share[:title] = params[:title] + @share[:url] = params[:url] + @share[:share_type] = params[:share_type] + @share.save + # + + respond_to do |format| + format.html # new.html.erb + format.json { render json: @share } + end + end + + # GET /shares/1/edit + def edit + @share = Share.find(params[:id]) + end + + # POST /shares + # POST /shares.json + def create + @share = Share.new(params[:share]) + + respond_to do |format| + if @share.save + format.html { redirect_to @share, notice: 'Share was successfully created.' } + format.json { render json: @share, status: :created, location: @share } + else + format.html { render action: "new" } + format.json { render json: @share.errors, status: :unprocessable_entity } + end + end + end + + # PUT /shares/1 + # PUT /shares/1.json + def update + @share = Share.find(params[:id]) + + respond_to do |format| + if @share.update_attributes(params[:share]) + format.html { redirect_to @share, notice: 'Share was successfully updated.' } + format.json { head :no_content } + else + format.html { render action: "edit" } + format.json { render json: @share.errors, status: :unprocessable_entity } + end + end + end + + # DELETE /shares/1 + # DELETE /shares/1.json + def destroy + @share = Share.find(params[:id]) + @share.destroy + + respond_to do |format| + format.html { redirect_to shares_url } + format.json { head :no_content } + end + end +end diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb index 229fc67ab..34662d429 100644 --- a/app/controllers/tags_controller.rb +++ b/app/controllers/tags_controller.rb @@ -31,6 +31,8 @@ class TagsController < ApplicationController @obj = Project.find_by_id(@obj_id) when '3' then @obj = Issue.find_by_id(@obj_id) + when '4' then + @obj = Bid.find_by_id(@obj_id) else @obj = nil end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 319608718..18d3e9abf 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -17,7 +17,7 @@ class UsersController < ApplicationController layout 'base_users' - before_filter :require_admin, :except => [:show, :index,:tag_save] + before_filter :require_admin, :except => [:show, :index,:tag_save, :user_projects, :user_newfeedback, :user_comments] before_filter :find_user, :only => [:show, :edit, :update, :destroy, :edit_membership, :destroy_membership, :user_activities, :user_projects, :user_newfeedback, :user_comments] accept_api_auth :index, :show, :create, :update, :destroy diff --git a/app/helpers/shares_helper.rb b/app/helpers/shares_helper.rb new file mode 100644 index 000000000..e51aa8b87 --- /dev/null +++ b/app/helpers/shares_helper.rb @@ -0,0 +1,2 @@ +module SharesHelper +end diff --git a/app/models/share.rb b/app/models/share.rb new file mode 100644 index 000000000..f597ae790 --- /dev/null +++ b/app/models/share.rb @@ -0,0 +1,3 @@ +class Share < ActiveRecord::Base + attr_accessible :access_token, :comment, :share_type, :title, :url +end diff --git a/app/views/bids/_history.html.erb b/app/views/bids/_history.html.erb index 4135208ac..ca0d8764a 100644 --- a/app/views/bids/_history.html.erb +++ b/app/views/bids/_history.html.erb @@ -1,6 +1,8 @@ - -<% if journals.size > 5 %> + + + +
<%=l(:label_user_response)%>(<%= journals.count%>)<% if journals.size > 5 %> <% unless state%>
<%= link_to l(:button_more), @@ -16,22 +18,35 @@ :method => 'get' %>
<% end %> -<% end %> - -

<%=l(:label_user_response)%>(<%= journals.count%>)

+<% end %>
+
<% unless state%> <% if journals.size > 5 %> <% journals = journals[0, 5] %> <% end %> <% end %> -<% for journal in journals %> -
-
-

<%= link_to "##{journal.indice}", {}, :class => "journal-link" %> - <%= avatar(journal.user, :size => "24") %> - <%= l(:label_updated_time_by, :author => journal.user, :age => time_tag(journal.created_at)).html_safe%>

- <%= render_notes(bid, journal, :reply_links => true) unless journal.notes.blank? %> -
-
- <%= call_hook(:view_issues_history_journal_bottom, { :journal => journal }) %> + +<% if journals.size >0 %> +<% remove_allowed = (User.current.id == journals.first.jour_id) %> +<% for journal in journals%> + + + + + +
<%= link_to image_tag(url_to_avatar(journal.user), :class => "avatar"), user_path(journal.user), :class => "avatar" %> + + + + + + + + + + +
<%=link_to journal.user, user_path(journal.user)%> 瀵归渶姹傝繘琛屼簡鍙嶉<%= link_to "##{journal.indice}", {}, :class => "journal-link" %>

<%= textilizable journal.notes%>

<%= journal.created_at %><%= link_to(image_tag('comment.png'), {:controller => 'bids', :action => 'new', :id => bid, :journal_id => journal}, :remote => true, + :method => 'post', :title => l(:button_quote))%><%= link_to(image_tag('delete.png'), {:controller => 'bids', :action => 'destroy', :object_id => journal, :bid_id => bid}, + :remote => true, :method => 'delete', :class => "delete", :title => l(:button_delete)) if remove_allowed || journal.user_id == User.current.id %>
+<% end %> <% end %> diff --git a/app/views/bids/_new.html.erb b/app/views/bids/_new.html.erb index 1e3958148..c6ab08a4a 100644 --- a/app/views/bids/_new.html.erb +++ b/app/views/bids/_new.html.erb @@ -1,13 +1,14 @@ -<%= form_tag({:controller => 'bids', + +<%= form_for('user_message', :remote => true, :method => :post, + :url => {:controller => 'bids', :action => 'create', :bid_id => bid, - :sta => sta}, - :remote => true, - :method => :post) do %> - -

<%= label_tag 'user_message', l(:label_leave_message) %><%= text_area_tag 'user_message', nil %>

-

- <%= submit_tag l(:button_leave_meassge), :name => nil %> - <%= submit_tag l(:button_clear), :name => nil, :onclick => "clearMessage('user_message');", :type => 'button' %> -

+ :sta => sta}) do |f|%> + + + + + +
<%= f.text_area 'message', :rows => 4, :cols => 65, :value => "鎴戣鍙嶉", :required => true, :style => "resize: none;" %>
<%= submit_tag l(:button_leave_meassge), :name => nil %> + <%= submit_tag l(:button_clear), :name => nil, :onclick => "clearMessage('user_message_message');", :type => 'button' %>
<% end %> diff --git a/app/views/bids/_project_list.html.erb b/app/views/bids/_project_list.html.erb index 53eda2b0e..5f569c725 100644 --- a/app/views/bids/_project_list.html.erb +++ b/app/views/bids/_project_list.html.erb @@ -1,21 +1,28 @@ <% @bidding_project.each do |b_project|%> -
  • - - - + +
    - - - - -
    - - - - - - - -
    <%= link_to(b_project.project.name, project_path(b_project.project)) %>
    <%= b_project.project.description %>
    + + + - - - - -
    + + + + + - -
    +
    + <%= link_to image_tag(url_to_avatar(b_project.project), :class => 'avatar3'), :class => "avatar" %> +
    + + + + + + + + + + + +
    <%= link_to(b_project.project.name, project_path(b_project.project)) %>鍙備笌浜嗗簲鏍
    <%= b_project.project.description %>
    <%= b_project.created_at%>
    +
    @@ -23,13 +30,10 @@ -
    搴旀爣浜猴細<%= link_to(b_project.user.name, user_path(b_project.user)) %>
    搴旀爣瀹h█锛<%= b_project.description %>
     
    - +
    +
    + + <% end %> diff --git a/app/views/bids/add.js.erb b/app/views/bids/add.js.erb index 9a6d1515a..aaed6524d 100644 --- a/app/views/bids/add.js.erb +++ b/app/views/bids/add.js.erb @@ -1,4 +1,4 @@ $('#bidding_project_list').html('<%= escape_javascript(render(:partial => 'project_list', :locals => {:bidding_project => @bidding_project})) %>'); $("#project_id").val("璇烽夋嫨椤圭洰"); -$("#project_id").val("璇疯緭鍏ュ簲鏍囩悊鐢"); +$("#bid_message").val("璇疯緭鍏ュ簲鏍囩悊鐢"); $("#put-bid-form").hide(); \ No newline at end of file diff --git a/app/views/bids/create.js.erb b/app/views/bids/create.js.erb index a524d9dd8..15cf3f20d 100644 --- a/app/views/bids/create.js.erb +++ b/app/views/bids/create.js.erb @@ -1,2 +1,2 @@ -$('#history').html('<%= escape_javascript(render(:partial => 'history', :locals => {:bid => @bid, :journals => @jour, :state => true})) %>'); -$('#user_message').val(""); +$('#history').html('<%= escape_javascript(render(:partial => 'bids/history', :locals => {:bid => @bid, :journals => @jour, :state => true})) %>'); +$('#user_message_message').val(""); diff --git a/app/views/bids/index.html.erb b/app/views/bids/index.html.erb index 74c0531f3..0cb206d03 100644 --- a/app/views/bids/index.html.erb +++ b/app/views/bids/index.html.erb @@ -1,37 +1,44 @@
    - <%= link_to("鏂板缓闇姹", {:controller => 'bids', :action => 'new_bid'}, :class => 'icon icon-add') %> + <%= link_to("鏂板缓闇姹", {:controller => 'bids', :action => 'new_bid'}, :class => 'icon icon-add', :style => "margin-right: 100px;") %>
    -

    闇姹傚垪琛

    + + +
    闇姹傚垪琛
    - \ No newline at end of file +<% end %> diff --git a/app/views/bids/new.js.erb b/app/views/bids/new.js.erb index d2cdeaae9..2a4df8a67 100644 --- a/app/views/bids/new.js.erb +++ b/app/views/bids/new.js.erb @@ -1,2 +1,2 @@ -$('#user_message').val("<%= raw escape_javascript(@content) %>"); +$('#user_message_message').val("<%= raw escape_javascript(@content) %>"); showAndScrollTo("user_message", "user_message"); diff --git a/app/views/bids/show.html.erb b/app/views/bids/show.html.erb index a82711081..a5f259e7b 100644 --- a/app/views/bids/show.html.erb +++ b/app/views/bids/show.html.erb @@ -1,11 +1,25 @@ -

    <%= link_to(@bid.author.name, user_path(@bid.author))%>锛<%= @bid.name %>

    - +
    + + + + +
    <%= link_to image_tag(url_to_avatar(@bid.author), :class => "avatar"), user_path(@bid.author), :class => "avatar" %> + + + + + + +

    <%= link_to(@bid.author.name, user_path(@bid.author))%>锛<%= @bid.name %>

    鎮祻锛<%= @bid.budget %>
    +
    + - + - +

    闇姹傛弿杩

    <%= @bid.description %>
    <%= @bid.description %>
    +
    <%= render :partial => 'history', :locals => { :bid => @bid, :journals => @jour, :state => false} %> diff --git a/app/views/bids/show_project.html.erb b/app/views/bids/show_project.html.erb index c1af73b3b..8a5d13f99 100644 --- a/app/views/bids/show_project.html.erb +++ b/app/views/bids/show_project.html.erb @@ -1,32 +1,29 @@ -
    -
    -
    -<%= toggle_link "鎴戣搴旀爣", 'put-bid-form', {:focus => 'project_id'} %> +
    +
    + <%= toggle_link "鎴戣搴旀爣", 'put-bid-form', {:focus => 'project_id'} %> +
    -

    搴旀爣椤圭洰鍒楄〃

    -
      -
      - <%= render :partial => 'project_list', :locals => {:bidding_project => @bidding_project} %> -
      -
    - + + +
    搴旀爣椤圭洰(<%= @bidding_project.count%>)
    +
    + <%= render :partial => 'project_list', :locals => {:bidding_project => @bidding_project} %> +
    diff --git a/app/views/issues/_list.html.erb b/app/views/issues/_list.html.erb index f323e3783..ab14360f2 100644 --- a/app/views/issues/_list.html.erb +++ b/app/views/issues/_list.html.erb @@ -78,6 +78,7 @@
  • "> <% column_content = ( query.inline_columns.map {|column| "
  • #{column_content(column, issue)}
  • "}) %> + <%= image_tag("/images/issues.png", :class => "img-tag-issues") %>