后台页面跳转时保存上一页状态,同时增加返回按钮

This commit is contained in:
virusdefender 2015-08-17 16:33:05 +08:00
parent 3385ddce18
commit ce5b0804b9
6 changed files with 140 additions and 36 deletions

View File

@ -41,6 +41,19 @@ define("admin", ["jquery", "avalon"], function ($, avalon) {
vm.template_url = "template/problem/edit_problem.html"; vm.template_url = "template/problem/edit_problem.html";
}); });
vm.$watch("showProblemListPage", function(){
vm.template_url = "template/problem/problem_list.html";
});
vm.$watch("showGroupListPage", function(){
vm.template_url = "template/group/group.html";
});
vm.$watch("showProblemSubmissionPage", function(problemId){
vm.problemId = problemId;
vm.template_url = "template/problem/submission_list.html";
});
avalon.scan(); avalon.scan();
li_active("#li-" + hash.replace("/", "-")); li_active("#li-" + hash.replace("/", "-"));

View File

@ -45,7 +45,7 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "formValidation"], function
getPageData(1); getPageData(1);
function getPageData(page) { function getPageData(page) {
var url = "/api/admin/group/?paging=true&page=" + page + "&page_size=10"; var url = "/api/admin/group/?paging=true&page=" + page + "&page_size=2";
if (vm.keyword) if (vm.keyword)
url += "&keyword=" + vm.keyword; url += "&keyword=" + vm.keyword;
$.ajax({ $.ajax({

View File

@ -47,6 +47,9 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "formValidation"], function
bsAlert(data.data); bsAlert(data.data);
} }
}) })
},
showGroupListPage: function () {
vm.$fire("up!showGroupListPage");
} }
}); });

View File

@ -167,6 +167,9 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagE
if (item.visible) if (item.visible)
return "折叠"; return "折叠";
return "展开"; return "展开";
},
showProblemListPage: function(){
vm.$fire("up!showProblemListPage");
} }
}); });
var hintEditor = editor("#hint"); var hintEditor = editor("#hint");

View File

@ -1,7 +1,10 @@
require(["jquery", "avalon", "csrfToken", "bsAlert", "formValidation"], function ($, avalon, csrfTokenHeader, bsAlert) { require(["jquery", "avalon", "csrfToken", "bsAlert", "formValidation"], function ($, avalon, csrfTokenHeader, bsAlert) {
avalon.ready(function () { avalon.ready(function () {
avalon.vmodels.problemList = null; if(avalon.vmodels.problemList){
vm = avalon.vmodels.problemList;
}
else {
var vm = avalon.define({ var vm = avalon.define({
$id: "problemList", $id: "problemList",
problemList: [], problemList: [],
@ -31,11 +34,17 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "formValidation"], function
getPage: function (page_index) { getPage: function (page_index) {
getPageData(page_index); getPageData(page_index);
}, },
showEditProblemPage: function (problem_id) { showEditProblemPage: function (problemId) {
vm.$fire("up!showEditProblemPage", problem_id); vm.$fire("up!showEditProblemPage", problemId);
},
showProblemSubmissionPage: function(problemId){
vm.$fire("up!showProblemSubmissionPage", problemId);
} }
}); });
getPageData(1);
}
function getPageData(page) { function getPageData(page) {
var url = "/api/admin/problem/?paging=true&page=" + page + "&page_size=10"; var url = "/api/admin/problem/?paging=true&page=" + page + "&page_size=10";
if (vm.keyword != "") if (vm.keyword != "")
@ -59,7 +68,7 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "formValidation"], function
}); });
} }
getPageData(1);
}); });
avalon.scan(); avalon.scan();
}); });

View File

@ -0,0 +1,76 @@
require(["jquery", "avalon", "csrfToken", "bsAlert", "formValidation"], function ($, avalon, csrfTokenHeader, bsAlert) {
avalon.ready(function () {
avalon.vmodels.submissionList = null;
var vm = avalon.define({
$id: "submissionList",
submissionList: [],
previousPage: 0,
nextPage: 0,
page: 1,
totalPage: 1,
results : {
0: "Accepted",
1: "Runtime Error",
2: "Time Limit Exceeded",
3: "Memory Limit Exceeded",
4: "Compile Error",
5: "Format Error",
6: "Wrong Answer",
7: "System Error",
8: "Waiting"
},
getNext: function () {
if (!vm.nextPage)
return;
getPageData(vm.page + 1);
},
getPrevious: function () {
if (!vm.previousPage)
return;
getPageData(vm.page - 1);
},
getBtnClass: function (btn) {
if (btn == "next") {
return vm.nextPage ? "btn btn-primary" : "btn btn-primary disabled";
}
else {
return vm.previousPage ? "btn btn-primary" : "btn btn-primary disabled";
}
},
getPage: function (page_index) {
getPageData(page_index);
},
showSubmissionDetailPage: function (submissionId) {
}
});
getPageData(1);
function getPageData(page) {
var url = "/api/admin/submission/?paging=true&page=" + page + "&page_size=10&problem_id=" + avalon.vmodels.admin.problemId;
$.ajax({
url: url,
dataType: "json",
method: "get",
success: function (data) {
if (!data.code) {
vm.submissionList = data.data.results;
vm.totalPage = data.data.total_page;
vm.previousPage = data.data.previous_page;
vm.nextPage = data.data.next_page;
vm.page = page;
}
else {
bsAlert(data.data);
}
}
});
}
});
avalon.scan();
});