From 48fb02a2d6c1d905f5e5d39fcf2c6aee5c04d42b Mon Sep 17 00:00:00 2001
From: guange <8863824@gmail.com>
Date: Mon, 4 Jul 2016 17:04:06 +0800
Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E8=AF=BE=E7=A8=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/api/mobile/apis/courses.rb | 17 ++++
app/api/mobile/apis/syllabuses.rb | 14 ++++
app/controllers/courses_controller.rb | 2 +-
app/models/course.rb | 4 +
app/views/wechats/user_activities.html.erb | 1 +
public/assets/wechat/class_list.html | 4 +-
public/assets/wechat/edit_class.html | 14 ++++
.../wechat/controllers/class_list.js | 6 +-
.../wechat/controllers/edit_class.js | 77 +++++++++++++++++++
public/javascripts/wechat/others/routes.js | 1 +
10 files changed, 134 insertions(+), 6 deletions(-)
create mode 100644 public/assets/wechat/edit_class.html
create mode 100644 public/javascripts/wechat/controllers/edit_class.js
diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb
index cb1db09d8..917a396e2 100644
--- a/app/api/mobile/apis/courses.rb
+++ b/app/api/mobile/apis/courses.rb
@@ -396,6 +396,23 @@ module Mobile
present :status,0
end
+ desc '删除课程'
+ params do
+ requires :token, type: String
+ end
+ post ':course_id/del' do
+ authenticate!
+ c = Course.find(params[:course_id])
+ if c.members.count > 1
+ {status: -1, message: '已经有成员加入,不能删除'}
+ else
+ c.delete!
+ present :status,0
+ end
+
+
+ end
+
end
end
end
diff --git a/app/api/mobile/apis/syllabuses.rb b/app/api/mobile/apis/syllabuses.rb
index f8286f56d..47989155e 100644
--- a/app/api/mobile/apis/syllabuses.rb
+++ b/app/api/mobile/apis/syllabuses.rb
@@ -18,6 +18,18 @@ module Mobile
present :status, 0
end
+ desc "获取某个大纲"
+ params do
+ requires :token, type: String
+ end
+ get ':id' do
+ authenticate!
+
+ sy = ::Syllabus.find(params[:id])
+ present :data, sy, with: Mobile::Entities::Syllabus
+ present :status, 0
+ end
+
desc "新建大纲"
params do
requires :token, type: String
@@ -41,6 +53,8 @@ module Mobile
end
+
+
end
diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb
index e81251f63..a9d84c2d9 100644
--- a/app/controllers/courses_controller.rb
+++ b/app/controllers/courses_controller.rb
@@ -1090,7 +1090,7 @@ class CoursesController < ApplicationController
#删除课程
#删除课程只是将课程的is_deleted状态改为false,is_deleted为false状态的课程只有管理员可以看到
def destroy
- @course.update_attributes(:is_delete => true)
+ @course.delete!
@course = nil
redirect_to user_url(User.current)
end
diff --git a/app/models/course.rb b/app/models/course.rb
index 408a86ad7..d98ac0f1e 100644
--- a/app/models/course.rb
+++ b/app/models/course.rb
@@ -173,6 +173,10 @@ class Course < ActiveRecord::Base
)
end
+ def delete!
+ update_attribute(:is_delete, true)
+ end
+
def visible?(user=User.current)
user.allowed_to?(:view_course, self)
end
diff --git a/app/views/wechats/user_activities.html.erb b/app/views/wechats/user_activities.html.erb
index 3ca452a34..a9254829b 100644
--- a/app/views/wechats/user_activities.html.erb
+++ b/app/views/wechats/user_activities.html.erb
@@ -41,6 +41,7 @@
+
diff --git a/public/assets/wechat/class_list.html b/public/assets/wechat/class_list.html
index aded4e443..919eb1364 100644
--- a/public/assets/wechat/class_list.html
+++ b/public/assets/wechat/class_list.html
@@ -3,7 +3,7 @@
新建课程
加入班级
diff --git a/public/assets/wechat/edit_class.html b/public/assets/wechat/edit_class.html
new file mode 100644
index 000000000..a1a243b12
--- /dev/null
+++ b/public/assets/wechat/edit_class.html
@@ -0,0 +1,14 @@
+
diff --git a/public/javascripts/wechat/controllers/class_list.js b/public/javascripts/wechat/controllers/class_list.js
index c30be8bcb..2896d508d 100644
--- a/public/javascripts/wechat/controllers/class_list.js
+++ b/public/javascripts/wechat/controllers/class_list.js
@@ -61,8 +61,10 @@ app.controller('ClassListController', ['$scope', 'config', 'auth', '$http', '$lo
}
};
- vm.onSetting = function () {
- vm.alertService.showMessage('提示', '此功能正在开发中');
+ vm.onSetting = function (syllabus) {
+ console.log(syllabus);
+ rms.save('current_edit_syllobus', syllabus);
+ $location.path("/edit_class").search({id: syllabus.id});
}
}]);
\ No newline at end of file
diff --git a/public/javascripts/wechat/controllers/edit_class.js b/public/javascripts/wechat/controllers/edit_class.js
new file mode 100644
index 000000000..8520a6eca
--- /dev/null
+++ b/public/javascripts/wechat/controllers/edit_class.js
@@ -0,0 +1,77 @@
+
+
+app.controller('EditClassController', ['$scope', '$http', 'auth', 'config', 'alertService','$location','$routeParams','rms', function($scope, $http, auth, config, alertService, $location,$routeParams, rms){
+ var vm = $scope;
+
+ vm.syllabus = rms.get('current_edit_syllobus');
+ console.log(vm.syllabus);
+
+ var syllabus_id = $routeParams.id;
+ if(!vm.syllabus){
+ $http.get(config.apiUrl+"syllabuses/"+syllabus_id+"?token="+auth.token()).then(function(response){
+ console.log(response.data);
+ vm.syllabus = response.data.data;
+ });
+ }
+
+ vm.alertService = alertService.create();
+ vm.addClass = function(){
+ vm.syllabus.courses.push({});
+ };
+
+ vm.deleteClass = function(index){
+ var course = vm.syllabus.courses[index];
+ if(course.id >0){
+ $http.post(config.apiUrl+'courses/'+course.id+'/del', {
+ token: auth.token()
+ }).then(function(response){
+ if(response.data.status!=0){
+ vm.alertService.showMessage('出错了', response.data.message);
+ } else {
+ vm.alertService.showMessage('提示', '删除班级成功', function(){
+ vm.syllabus.courses.splice(index, 1);
+ });
+ }
+ console.log(response.data.data);
+ });
+ } else {
+ vm.syllabus.courses.splice(index, 1);
+ }
+
+ }
+
+ vm.newClass = function (frm, syllabus) {
+ frm.$setSubmitted();
+ console.log(syllabus);
+
+ if(!frm.$valid){
+ console.log(frm.$error);
+ return;
+ }
+
+ var courses = [];
+ for(var i in vm.syllabus.courses){
+ var course = vm.syllabus.courses[i];
+ if(course.id>0){
+ courses.push(course.name);
+ }
+ }
+
+ $http.post(config.apiUrl+"syllabuses", {
+ token: auth.token(),
+ id: syllabus_id,
+ courses: courses
+ }).then(function(response){
+ if(response.data.status!=0){
+ vm.alertService.showMessage('出错了', response.data.message);
+ } else {
+ vm.alertService.showMessage('提示', '保存课程成功', function(){
+ window.history.back();
+ });
+ }
+ console.log(response.data.data);
+ });
+
+ }
+
+}] );
\ No newline at end of file
diff --git a/public/javascripts/wechat/others/routes.js b/public/javascripts/wechat/others/routes.js
index ea6dca05d..2c63609b0 100644
--- a/public/javascripts/wechat/others/routes.js
+++ b/public/javascripts/wechat/others/routes.js
@@ -32,6 +32,7 @@ app.config(['$routeProvider',"$httpProvider", "$locationProvider",'config', func
.when('/blog_comment/:id', makeRoute('blog_detail.html', 'BlogController'))
.when('/class', makeRoute('class.html', 'ClassController'))
.when('/new_class', makeRoute('new_class.html', 'NewClassController'))
+ .when('/edit_class', makeRoute('edit_class.html', 'EditClassController'))
.when('/class_list', makeRoute('class_list.html', 'ClassListController'))
.when('/myresource', makeRoute('myresource.html', 'MyResourceController'))
.when('/invite_code', makeRoute('invite_code.html', 'InviteCodeController'))