From 6dc374cf9a18936fdc7833aaaa9a4419468bbf7e Mon Sep 17 00:00:00 2001 From: Yiang Gan Date: Wed, 30 Mar 2016 17:41:18 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9C=80=E6=96=B0=E5=8A=A8=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/application.rb | 6 +- public/assets/wechat/activities.html | 84 +++++----- public/assets/wechat/issue_detail.html | 221 +++++++++++++++++++++++++ 3 files changed, 266 insertions(+), 45 deletions(-) create mode 100644 public/assets/wechat/issue_detail.html diff --git a/config/application.rb b/config/application.rb index b60c0fb4a..e3e36cd70 100644 --- a/config/application.rb +++ b/config/application.rb @@ -48,10 +48,10 @@ module RedmineApp # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] - config.i18n.default_locale = :zh + # config.i18n.default_locale = :zh - #config.i18n.enforce_available_locales = true - #I18n.config.enforce_available_locales = true + config.i18n.enforce_available_locales = false + I18n.config.enforce_available_locales = false # Configure the default encoding used in templates for Ruby 1.9. config.encoding = "utf-8" diff --git a/public/assets/wechat/activities.html b/public/assets/wechat/activities.html index eb537363d..398d0fc2f 100644 --- a/public/assets/wechat/activities.html +++ b/public/assets/wechat/activities.html @@ -1,7 +1,7 @@ - react js + 最新动态 @@ -20,65 +20,65 @@ + + + + + + + \ No newline at end of file From 392c5708f202f815e140405ce6e1457a8e4a73e6 Mon Sep 17 00:00:00 2001 From: Yiang Gan Date: Thu, 31 Mar 2016 20:43:06 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/activities.rb | 2 +- config/application.rb | 101 +--------- public/assets/wechat/activities.html | 18 +- public/assets/wechat/homework_detail.html | 75 +++++++ public/assets/wechat/issue_detail.html | 202 +++---------------- public/javascripts/wechat/homework-detail.js | 57 ++++++ public/javascripts/wechat/wechat-dev.js | 24 ++- public/stylesheets/weui/weixin.css | 19 +- 8 files changed, 209 insertions(+), 289 deletions(-) create mode 100644 public/assets/wechat/homework_detail.html create mode 100644 public/javascripts/wechat/homework-detail.js diff --git a/app/api/mobile/apis/activities.rb b/app/api/mobile/apis/activities.rb index ed49c0ada..813b2232b 100644 --- a/app/api/mobile/apis/activities.rb +++ b/app/api/mobile/apis/activities.rb @@ -22,7 +22,7 @@ module Mobile activities = UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types})" + "or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}) "+ "or (container_type = 'Principal' and act_type= '#{principal_types}' and container_id = #{user.id}) " + - "or (container_type = 'Blog' and act_type= 'BlogComment' and container_id in #{blog_ids})").order('updated_at desc').limit(10).offset(page * 10) + "or (container_type = 'Blog' and act_type= 'BlogComment' and container_id in #{blog_ids})").order('updated_at desc').limit(200).offset(page * 10) present :data, activities, with: Mobile::Entities::Activity present :status, 0 end diff --git a/config/application.rb b/config/application.rb index 3384c1d79..0c55fc75f 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,4 +1,3 @@ -<<<<<<< HEAD require File.expand_path('../boot', __FILE__) require 'rails/all' @@ -94,102 +93,4 @@ module RedmineApp end end -end -======= -require File.expand_path('../boot', __FILE__) - -require 'rails/all' -require 'sprockets/railtie' -require 'elasticsearch/model' -if defined?(Bundler) - # If you precompile assets before deploying to production, use this line - Bundler.require(*Rails.groups(:assets => %w(development test))) - # If you want your assets lazily compiled in production, use this line - # Bundler.require(:default, :assets, Rails.env) -end - -module RedmineApp - class Application < Rails::Application - # Settings in config/environments/* take precedence over those specified here. - # Application configuration should go into files in config/initializers - # -- all .rb files in that directory are automatically loaded. - - #verifier if email is real - - - config.generators do |g| - g.test_framework :rspec, - fixtures: true, - view_specs: false, - helper_specs: false, - routing_specs: false, - controller_specs: true, - request_specs: false - g.fixture_replacement :factory_girl, dir: "spec/factories" - end - # Custom directories with classes and modules you want to be autoloadable. - config.autoload_paths += %W(#{config.root}/lib) - config.autoload_paths += %w(#{RAILS_ROOT}/app/sweepers) - # Only load the plugins named here, in the order given (default is alphabetical). - # :all can be used as a placeholder for all plugins not explicitly named. - # config.plugins = [ :exception_notification, :ssl_requirement, :all ] - - # Activate observers that should always be running. - config.active_record.observers = :journals_for_message_observer, :issue_observer, :journal_observer, :wiki_content_observer - - config.active_record.store_full_sti_class = true - config.active_record.default_timezone = :local - config.time_zone = 'Beijing' - # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. - # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. - # config.time_zone = 'Central Time (US & Canada)' - - # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. - # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] - config.i18n.default_locale = :zh - - #config.i18n.enforce_available_locales = true - #I18n.config.enforce_available_locales = true - # Configure the default encoding used in templates for Ruby 1.9. - config.encoding = "utf-8" - - # Configure sensitive parameters which will be filtered from the log file. - config.filter_parameters += [:password] - - # Enable the asset pipeline - config.assets.enabled = false - - # Version of your assets, change this if you want to expire all your assets - config.assets.version = '1.0' - - config.action_mailer.perform_deliveries = false - - # Do not include all helpers - config.action_controller.include_all_helpers = false - - config.action_view.sanitized_allowed_tags = 'div', 'p', 'span', 'img', 'embed' - - config.before_initialize do - end - - config.after_initialize do - if RbConfig::CONFIG['target_os'] == 'mingw32' - Elasticsearch::Client.new hosts: ['localhost:9200'], retry_on_failure: true,log:true - elsif RbConfig::CONFIG['target_os'] == 'linux' && ["fast76"].include?(`hostname`.gsub("\n","")) - Elasticsearch::Client.new hosts: ['localhost:9200'], retry_on_failure: true,log:true - elsif RbConfig::CONFIG['target_os'] == 'linux' && ["testtrustie11","agent12"].include?(`hostname`.gsub("\n","")) - Elasticsearch::Client.new hosts: ['localhost:9200','192.168.80.11:9200','192.168.80.12:9200'], retry_on_failure: true - elsif RbConfig::CONFIG['target_os'] == 'linux' && ["trustie168","trustieserver14","trustieserver16","Trustie18"].include?(`hostname`.gsub("\n","")) - Elasticsearch::Client.new hosts: ['localhost:9200','192.168.80.168:9200'], retry_on_failure: true - else - Elasticsearch::Client.new hosts: ['localhost:9200'], retry_on_failure: true - end - end - - if File.exists?(File.join(File.dirname(__FILE__), 'additional_environment.rb')) - instance_eval File.read(File.join(File.dirname(__FILE__), 'additional_environment.rb')) - end - - end -end ->>>>>>> 77e11fe0fec7f8f0537940863e78c4d7d483aff1 +end \ No newline at end of file diff --git a/public/assets/wechat/activities.html b/public/assets/wechat/activities.html index 398d0fc2f..22d642bde 100644 --- a/public/assets/wechat/activities.html +++ b/public/assets/wechat/activities.html @@ -43,7 +43,7 @@
-
回复 ()
+
回复 ()
赞 ()
@@ -55,7 +55,7 @@
- +
@@ -97,7 +97,7 @@
- +
@@ -112,11 +112,11 @@
- +

- 状态: 优先级:
指派给: 完成度:
+ 状态: 优先级:
指派给: 完成度:%
点击展开
@@ -124,7 +124,7 @@
-
回复 ()
+
回复 ()
赞 ()
@@ -136,7 +136,7 @@
- +
@@ -158,7 +158,7 @@
- +
@@ -211,11 +211,13 @@
+
更多
+ \ No newline at end of file diff --git a/public/assets/wechat/homework_detail.html b/public/assets/wechat/homework_detail.html new file mode 100644 index 000000000..4bc2d7c0e --- /dev/null +++ b/public/assets/wechat/homework_detail.html @@ -0,0 +1,75 @@ + + + + 作业详情 + + + + + + + + + + +
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/assets/wechat/issue_detail.html b/public/assets/wechat/issue_detail.html index 1c08c6f39..c06988ba6 100644 --- a/public/assets/wechat/issue_detail.html +++ b/public/assets/wechat/issue_detail.html @@ -20,36 +20,12 @@ diff --git a/public/javascripts/wechat/homework-detail.js b/public/javascripts/wechat/homework-detail.js new file mode 100644 index 000000000..a5fdfa694 --- /dev/null +++ b/public/javascripts/wechat/homework-detail.js @@ -0,0 +1,57 @@ +/** + * Created by root on 3/31/16. + */ +$(document).ready(function(){ + + var bt=baidu.template; + bt.LEFT_DELIMITER=''; + + + var apiUrl = '/api/v1/'; + + var setTemplate = function(data){ + console.log(data); + var html=bt('t:homework-detail',{homework: data}); + $('#homework-container').prepend(html); + $('.post-reply-submit').click(function(){ + replyInsert(); + }); + }; + + var loadDataFromServer = function(id){ + //getOpenId(function(openid){ + $.ajax({ + url: apiUrl + 'whomeworks/' + id, + dataType: 'json', + success: function(data){ + setTemplate(data.data); + }, + error: function(xhr,status,err){ + console.log(err); + } + }); + //}) + + + }; + + loadDataFromServer(808); + + //点击回复按钮,插入回复内容 + var replyInsert = function(){ + var replyContent = $("#postInput").val(); + if (!replyContent){ + alert("请输入回复"); + }else{ + $(".post-reply-wrap:last").after('
1分钟前
回复
'); + $(".post-reply-content:last").append(replyContent); + $("#postInput").val("");} + } + + var getID = function(){ + var homeworkID = $("#homework-id").html(); + alert(homeworkID); + return homeworkID; + } +}); \ No newline at end of file diff --git a/public/javascripts/wechat/wechat-dev.js b/public/javascripts/wechat/wechat-dev.js index 20c118b96..b7ed32332 100644 --- a/public/javascripts/wechat/wechat-dev.js +++ b/public/javascripts/wechat/wechat-dev.js @@ -9,12 +9,15 @@ $(document).ready(function(){ var apiUrl = '/api/v1/'; + var setTemplate = function(data){ console.log(data); var html=bt('t:result-list',{activities: data}); $('#container').prepend(html); descToggle(); - + $('.post-reply-submit').click(function(){ + replyInsert(); + }); }; var loadDataFromServer = function(id){ @@ -36,10 +39,8 @@ $(document).ready(function(){ loadDataFromServer(8686); + //内容全部显示与部分隐藏 var descToggle = function(){ - var postWidth = $(".post-wrapper").width(); - var titleWidth = postWidth - 80; - $(".post-title").css("maxWidth",titleWidth); $(".post-all-content").each(function(){ var postHeight = $(this).height(); if (postHeight > 90){ @@ -55,11 +56,14 @@ $(document).ready(function(){ }); } - var timeSpilt = function(){ - + //点击回复按钮,插入回复内容 + var replyInsert = function(){ + var replyContent = $("#postInput").val(); + if (!replyContent){ + alert("请输入回复"); + }else{ + $(".post-reply-wrap:last").after('
1分钟前
回复
'); + $(".post-reply-content:last").append(replyContent); + $("#postInput").val("");} } - - - - }); diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css index b702e1d0d..837ff1abc 100644 --- a/public/stylesheets/weui/weixin.css +++ b/public/stylesheets/weui/weixin.css @@ -10,14 +10,17 @@ h1,h2,h3,h4,h5,p {padding:0px; margin:0px;} .mt5 {margin-top:5px;} .mt10 {margin-top:10px;} .mb5 {margin-bottom:5px;} +.mb10 {margin-bottom:10px;} .ml10 {margin-left:10px;} .mr10 {margin-right:10px;} .ml15 {margin-left:15px;} .mr15 {margin-right:15px;} +.ml55 {margin-left:55px;} .c-blue {color:#269ac9;} .c-grey {color:#9a9a9a;} .c-grey2 {color:#707070;} .c-grey3 {color:#555555;} +a.c-grey {color:#707070;} a:link,a:visited{text-decoration:none;} a:hover,a:active{cursor:pointer;} a.link-blue {color:#269ac9;} @@ -35,7 +38,21 @@ a.link-blue {color:#269ac9;} .post-avatar {width:45px; height:45px; margin-right:10px;} .post-title {font-size:13px; text-align:left;} .fl {float:left;} +.fr {float:right;} .cl {clear:both; overflow:hidden;} .post-content {width:100%; font-size:13px; line-height:18px; height:90px; overflow:hidden;} .post-interactive {width:100%; height:35px; line-height:35px; vertical-align:middle; border-top:1px solid #e6e6e6; background-color:#f8f9fb;} -.post-interactive-column {width:50%; text-align:center; float:left; font-size:13px;} \ No newline at end of file +.post-interactive-column {width:50%; text-align:center; float:left; font-size:13px;} +.more-wrap {width:100%;} +.more-events {width:98%; font-size:13px; text-align:center; margin:0px auto; padding: 5px 0px; border:1px solid #e6e6e6; border-radius:3px; background-color:#f8f9fb; } +.border-bottom {border-bottom:1px solid #e6e6e6;} +.post-reply-wrap {width:100%; line-height:18px; background-color:#f8f9fb;} +.post-input-wrap {width:100%; line-height:18px; background-color:#f8f9fb;} +.post-reply-row {padding:10px; color:#9a9a9a;} +.post-reply-avatar {width:45px; height:30px; text-align:center; margin-right:10px;} +.post-reply-user {font-size:13px; text-align:left; margin-bottom:10px;} +.post-reply-content {font-size:13px; text-align:left;} +.post-reply-date {font-size:13px;} +.post-reply-trigger {font-size:13px;} +.post-reply-input {width:100%; height:28px; line-height:28px; border:1px solid #e6e6e6; outline:none; border-radius:3px;} +.post-reply-submit {font-size:13px; padding:3px 8px; color:#fff; background-color:#269ac9; outline:none; border:none; display:inline-block;} \ No newline at end of file