From 6c59a15c1f9ba11a4577162270b62f90a9d85ef2 Mon Sep 17 00:00:00 2001
From: virusdefender <1670873886@qq.com>
Date: Tue, 11 Aug 2015 19:15:25 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=90=8E=E5=8F=B0?=
=?UTF-8?q?=E5=B0=8F=E7=BB=84=E7=AE=A1=E7=90=86=E7=9A=84=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
static/src/js/app/admin/admin.js | 6 +
static/src/js/app/admin/group/group.js | 73 +++++++++
static/src/js/app/admin/group/group_detail.js | 119 ++++++++++++++
.../admin/group/join_group_request_list.js | 148 ++++++++++++++++++
template/admin/admin.html | 7 +
template/admin/group/edit_group.html | 0
template/admin/group/group.html | 43 +++++
template/admin/group/group_detail.html | 58 +++++++
.../admin/group/join_group_request_list.html | 31 ++++
9 files changed, 485 insertions(+)
create mode 100644 static/src/js/app/admin/group/group.js
create mode 100644 static/src/js/app/admin/group/group_detail.js
create mode 100644 static/src/js/app/admin/group/join_group_request_list.js
create mode 100644 template/admin/group/edit_group.html
create mode 100644 template/admin/group/group.html
create mode 100644 template/admin/group/group_detail.html
create mode 100644 template/admin/group/join_group_request_list.html
diff --git a/static/src/js/app/admin/admin.js b/static/src/js/app/admin/admin.js
index 9c17e41..4584d9a 100644
--- a/static/src/js/app/admin/admin.js
+++ b/static/src/js/app/admin/admin.js
@@ -24,11 +24,17 @@ define("admin", ["jquery", "avalon"], function ($, avalon) {
var vm = avalon.define({
$id: "admin",
template_url: "template/" + hash + ".html",
+ group_id: -1,
hide_loading: function () {
$("#loading-gif").hide();
}
});
+ vm.$watch("showGroupDetailPage", function(group_id){
+ vm.group_id = group_id;
+ vm.template_url = "template/group/group_detail.html";
+ });
+
avalon.scan();
li_active("#li-" + hash.replace("/", "-"));
diff --git a/static/src/js/app/admin/group/group.js b/static/src/js/app/admin/group/group.js
new file mode 100644
index 0000000..9ba1ed8
--- /dev/null
+++ b/static/src/js/app/admin/group/group.js
@@ -0,0 +1,73 @@
+require(["jquery", "avalon", "csrf", "bs_alert", "validation"], function ($, avalon, csrfHeader, bs_alert) {
+ avalon.vmodels.group = null;
+
+ // avalon:定义模式 group_list
+ avalon.ready(function () {
+ var vm = avalon.define({
+ $id: "group",
+ //通用变量
+ group_list: [], // 用户列表数据项
+ previous_page: 0, // 之前的页数
+ next_page: 0, // 之后的页数
+ page: 1, // 当前页数
+ page_count: 1, // 总页数
+ keyword: "",
+
+ getNext: function () {
+ if (!vm.next_page)
+ return;
+ getPageData(vm.page + 1);
+ },
+ getPrevious: function () {
+ if (!vm.previous_page)
+ return;
+ getPageData(vm.page - 1);
+ },
+ getBtnClass: function (btn) { //上一页/下一页按钮启用禁用逻辑
+ if (btn) {
+ return vm.next_page ? "btn btn-primary" : "btn btn-primary disabled";
+ }
+ else {
+ return vm.previous_page ? "btn btn-primary" : "btn btn-primary disabled";
+ }
+ },
+ getPage: function (page_index) {
+ getPageData(page_index);
+ },
+ getGroupSettingString: function(setting){
+ return {0: "允许任何人加入", 1: "提交请求后管理员审核", 2: "不允许任何人加入"}[setting]
+ },
+ showGroupDetailPage: function(group_id){
+ vm.$fire("up!showGroupDetailPage", group_id);
+ }
+ });
+
+ avalon.scan();
+ getPageData(1); //用户列表初始化
+ //Ajax get数据
+ function getPageData(page) {
+ var url = "/api/admin/group/?paging=true&page=" + page + "&page_size=10";
+ if (vm.keyword != "")
+ url += "&keyword=" + vm.keyword;
+ $.ajax({
+ beforeSend: csrfHeader,
+ url: url,
+ dataType: "json",
+ method: "get",
+ success: function (data) {
+ if (!data.code) {
+ vm.group_list = data.data.results;
+ vm.page_count = data.data.total_page;
+ vm.previous_page = data.data.previous_page;
+ vm.next_page = data.data.next_page;
+ vm.page = page;
+ }
+ else {
+ bs_alert(data.data);
+ }
+ }
+ });
+ }
+ });
+
+});
\ No newline at end of file
diff --git a/static/src/js/app/admin/group/group_detail.js b/static/src/js/app/admin/group/group_detail.js
new file mode 100644
index 0000000..93a5d43
--- /dev/null
+++ b/static/src/js/app/admin/group/group_detail.js
@@ -0,0 +1,119 @@
+require(["jquery", "avalon", "csrf", "bs_alert", "validation"], function ($, avalon, csrfHeader, bs_alert) {
+ avalon.vmodels.group_detail = null;
+
+ // avalon:定义模式 group_list
+ avalon.ready(function () {
+ var vm = avalon.define({
+ $id: "group_detail",
+ //通用变量
+ member_list: [],
+ previous_page: 0,
+ next_page: 0,
+ page: 1,
+ page_count: 1,
+ name: "",
+ description: "",
+ join_group_setting: {0: false, 1: false, 2: false},
+ checked_setting: 0,
+
+ getSettingChecked: function (setting) {
+ return setting == vm.join_group_setting;
+ },
+
+ updateGroupInfo: function () {
+ $.ajax({
+ beforeSend: csrfHeader,
+ url: "/api/admin/group/",
+ method: "put",
+ data: {group_id: avalon.vmodels.admin.group_id, name: vm.name,
+ description: vm.description, join_group_setting: vm.join_group_setting},
+ dataType: "json",
+ success: function (data) {
+ if (!data.code) {
+ bs_alert("修改成功");
+ }
+ else {
+ bs_alert(data.data);
+ }
+ }
+ })
+ },
+
+ getNext: function () {
+ if (!vm.next_page)
+ return;
+ getPageData(vm.page + 1);
+ },
+ getPrevious: function () {
+ if (!vm.previous_page)
+ return;
+ getPageData(vm.page - 1);
+ },
+ getBtnClass: function (btn) {
+ if (btn) {
+ return vm.next_page ? "btn btn-primary" : "btn btn-primary disabled";
+ }
+ else {
+ return vm.previous_page ? "btn btn-primary" : "btn btn-primary disabled";
+ }
+ },
+ getPage: function (page_index) {
+ getPageData(page_index);
+ },
+ removeMember: function (relation) {
+ $.ajax({
+ beforeSend: csrfHeader,
+ url: "/api/admin/group_member/",
+ method: "put",
+ data: JSON.stringify({group_id: relation.group, members: [relation.user.id]}),
+ contentType: "application/json",
+ success: function (data) {
+ vm.member_list.remove(relation);
+ bs_alert(data.data);
+ }
+ })
+ }
+ });
+
+ avalon.scan();
+ getPageData(1);
+ function getPageData(page) {
+ var url = "/api/admin/group_member/?paging=true&page=" + page +
+ "&page_size=10&group_id=" + avalon.vmodels.admin.group_id;
+ $.ajax({
+ url: url,
+ dataType: "json",
+ method: "get",
+ success: function (data) {
+ if (!data.code) {
+ vm.member_list = data.data.results;
+ vm.page_count = data.data.total_page;
+ vm.previous_page = data.data.previous_page;
+ vm.next_page = data.data.next_page;
+ vm.page = page;
+ }
+ else {
+ bs_alert(data.data);
+ }
+ }
+ });
+ }
+
+ $.ajax({
+ url: "/api/admin/group/?group_id=" + avalon.vmodels.admin.group_id,
+ method: "get",
+ dataType: "json",
+ success: function (data) {
+ if (!data.code) {
+ vm.name = data.data.name;
+ vm.description = data.data.description;
+ vm.join_group_setting[data.data.join_group_setting] = true;
+ }
+ else {
+ bs_alert(data.data);
+ }
+ }
+ })
+ });
+
+});
\ No newline at end of file
diff --git a/static/src/js/app/admin/group/join_group_request_list.js b/static/src/js/app/admin/group/join_group_request_list.js
new file mode 100644
index 0000000..8bf2caa
--- /dev/null
+++ b/static/src/js/app/admin/group/join_group_request_list.js
@@ -0,0 +1,148 @@
+require(["jquery", "avalon", "csrf", "bs_alert", "validation"], function ($, avalon, csrfHeader, bs_alert) {
+ avalon.vmodels.request_list = null;
+
+ // avalon:定义模式 group_list
+ avalon.ready(function () {
+ var vm = avalon.define({
+ $id: "request_list",
+ //通用变量
+ request_list: [], // 列表数据项
+ previous_page: 0, // 之前的页数
+ next_page: 0, // 之后的页数
+ page: 1, // 当前页数
+ page_count: 1, // 总页数
+
+ getNext: function () {
+ if (!vm.next_page)
+ return;
+ getPageData(vm.page + 1);
+ },
+ getPrevious: function () {
+ if (!vm.previous_page)
+ return;
+ getPageData(vm.page - 1);
+ },
+ getBtnClass: function (btn) { //上一页/下一页按钮启用禁用逻辑
+ if (btn) {
+ return vm.next_page ? "btn btn-primary" : "btn btn-primary disabled";
+ }
+ else {
+ return vm.previous_page ? "btn btn-primary" : "btn btn-primary disabled";
+ }
+ },
+ getPage: function (page_index) {
+ getPageData(page_index);
+ },
+ processRequest: function(request_id, status){
+ $.ajax({
+ beforeSend: csrfHeader,
+ url: "/api/admin/join_group_request/",
+ method: "put",
+ data: {request_id: request_id, status: status},
+ success: function(data){
+ bs_alert(data.data);
+ }
+ })
+ }
+ });
+
+ avalon.scan();
+ getPageData(1);
+ //Ajax get数据
+ function getPageData(page) {
+ var url = "/api/admin/join_group_request/?paging=true&page=" + page + "&page_size=10";
+ $.ajax({
+ beforeSend: csrfHeader,
+ url: url,
+ dataType: "json",
+ method: "get",
+ success: function (data) {
+ if (!data.code) {
+ vm.request_list = data.data.results;
+ vm.page_count = data.data.total_page;
+ vm.previous_page = data.data.previous_page;
+ vm.next_page = data.data.next_page;
+ vm.page = page;
+ }
+ else {
+ bs_alert(data.data);
+ }
+ }
+ });
+ }
+
+ /*$("#edit_user-form")
+ .formValidation({
+ framework: "bootstrap",
+ fields: {
+ username: {
+ validators: {
+ notEmpty: {
+ message: "请填写用户名"
+ },
+ stringLength: {
+ min: 3,
+ max: 30,
+ message: '用户名长度必须在3到30位之间'
+ }
+ }
+ },
+ real_name: {
+ validators: {
+ notEmpty: {
+ message: "请填写真实姓名"
+ }
+ }
+ },
+ email: {
+ validators: {
+ notEmpty: {
+ message: "请填写电子邮箱邮箱地址"
+ },
+ emailAddress: {
+ message: "请填写有效的邮箱地址"
+ }
+ }
+ },
+ password: {
+ validators: {
+ stringLength: {
+ min: 6,
+ max: 30,
+ message: '密码长度必须在6到30位之间'
+ }
+ }
+ }
+ }
+ }
+ ).on('success.form.fv', function (e) {
+ e.preventDefault();
+ var data = {
+ username: vm.username,
+ real_name: vm.real_name,
+ email: vm.email,
+ id: vm.id,
+ admin_type: vm.admin_type
+ };
+ if ($("#password").val() !== "")
+ data.password = $("#password").val();
+ $.ajax({
+ beforeSend: csrfHeader,
+ url: "/api/admin/user/",
+ data: data,
+ dataType: "json",
+ method: "put",
+ success: function (data) {
+ if (!data.code) {
+ bs_alert("提交成功!");
+ getPageData(1);
+ $("#password").val("");
+ } else {
+ bs_alert(data.data);
+ }
+ }
+ })
+ });*/
+ });
+
+});
\ No newline at end of file
diff --git a/template/admin/admin.html b/template/admin/admin.html
index ce1094e..69aba41 100644
--- a/template/admin/admin.html
+++ b/template/admin/admin.html
@@ -104,6 +104,13 @@
用户分组
+
+
+ 小组列表
+
+
+ 加入小组请求
+
diff --git a/template/admin/group/edit_group.html b/template/admin/group/edit_group.html
new file mode 100644
index 0000000..e69de29
diff --git a/template/admin/group/group.html b/template/admin/group/group.html
new file mode 100644
index 0000000..81a8e08
--- /dev/null
+++ b/template/admin/group/group.html
@@ -0,0 +1,43 @@
+
+
小组管理
+
+
+
+ ID
+ 名称
+ 创建时间
+
+ 人数
+ 设置
+
+
+
+ {{el.id}}
+ {{el.name}}
+ {{el.create_time|date("yyyy-MM-dd HH:mm:ss")}}
+ {{ el.members_number }}
+ {{ getGroupSettingString(el.join_group_setting) }}
+
+
+ 详情
+
+
+
+
+
+ 页数:{{page}}/{{page_count}}
+ 上一页
+ 下一页
+
+
+
+
\ No newline at end of file
diff --git a/template/admin/group/group_detail.html b/template/admin/group/group_detail.html
new file mode 100644
index 0000000..d38b4f6
--- /dev/null
+++ b/template/admin/group/group_detail.html
@@ -0,0 +1,58 @@
+
+
小组成员管理
+
+
+ ID
+ 用户名
+ 真实姓名
+ 加入时间
+
+
+
+ {{ el.user.id }}
+ {{ el.user.username }}
+ {{ el.user.real_name }}
+ {{ el.join_time|date("yyyy-MM-dd HH:mm:ss")}}
+
+
+ 移除
+
+
+
+
+
+ 页数:{{ page }}/{{ page_count }}
+ 上一页
+ 下一页
+
+
+
修改小组信息
+
+
+
+
+
\ No newline at end of file
diff --git a/template/admin/group/join_group_request_list.html b/template/admin/group/join_group_request_list.html
new file mode 100644
index 0000000..5c74e63
--- /dev/null
+++ b/template/admin/group/join_group_request_list.html
@@ -0,0 +1,31 @@
+
+
加入小组请求管理
+
+
+ 创建时间
+ 用户
+ 小组
+ 附加消息
+
+
+
+ {{el.create_time|date("yyyy-MM-dd HH:mm:ss")}}
+ {{ el.group.name }}
+ {{ el.user.username }}
+ {{ el.message }}
+
+
+ 同意
+ 拒绝
+
+
+
+
+
+ 页数:{{page}}/{{page_count}}
+ 上一页
+ 下一页
+
+
+
+
\ No newline at end of file