diff --git a/app/controllers/students_controller.rb b/app/controllers/students_controller.rb index 01a0b9b..8aa2606 100644 --- a/app/controllers/students_controller.rb +++ b/app/controllers/students_controller.rb @@ -18,9 +18,26 @@ def student_total_score render_json Student.find(params[:s_id]).total_score_by_grade end + #删除学生 def destroy_student Student.find(params[:id]).delete render_json "success" end + #保存学生更新 + def update_student + data = { + :number => params["number"], + :sex => params["sex"], + :phone => params["phone"], + :home => params["home"], + :name => params["name"], + } + data["image"] = params["photo"] if(params["photo"]) + Student.find(params["id"]).update_attributes!(data) + render_json "success", "text/html" + rescue => e + render_error e.message,'text/html' + end + end diff --git a/app/models/person.rb b/app/models/person.rb index 0e54dbb..0ff1882 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -1,4 +1,7 @@ class Person < ActiveRecord::Base + has_attached_file :image, + :default_url => "/images/Temp.png", + :styles => { :medium => "300x300>", + :thumb => "100x100>" } belongs_to :classes - end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 6a18a08..0dd303b 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -44,6 +44,7 @@ ) } ); + Ext.Ajax.extraParams = { authenticity_token: "<%= form_authenticity_token %>" };
diff --git a/config/routes.rb b/config/routes.rb index 862c076..2b72451 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -21,6 +21,7 @@ get "get_all_students" get "student_total_score" post "destroy_student" + post "update_student" end member do post "update_student_comment" diff --git a/public/javascripts/PF/pages/settings_index.js b/public/javascripts/PF/pages/settings_index.js index ad232f9..308b146 100644 --- a/public/javascripts/PF/pages/settings_index.js +++ b/public/javascripts/PF/pages/settings_index.js @@ -5,8 +5,9 @@ Pf.settings.homeIndex = { var studentDetailFormPanel = this.createStudentDetail(); grid.store.load(); grid.on('cellclick', function(grid, rowIndex){ - studentDetailFormPanel.getForm().setValues(grid.store.getAt(rowIndex).data); - $("#image img").attr("src", '/images/Temp.png'); + var record = grid.store.getAt(rowIndex).data; + studentDetailFormPanel.getForm().setValues(record); + $("#image img").attr("src",record["image/url"] ); }); var panel = new Ext.TabPanel({ @@ -56,7 +57,6 @@ Pf.settings.homeIndex = { createStudentDetail: function(){ var sexData = [['男','男'],['女','女']]; var sexCombo = new Ext.form.ComboBox({ - //id: 'targetCombo', valueField: 'sex', fieldLabel: "性别", triggerAction: 'all', @@ -68,19 +68,69 @@ Pf.settings.homeIndex = { store: new Ext.data.SimpleStore({ fields: ['sex', 'sexName'], data: sexData, - //autoLoad: true, }) }); + + //保存更新按钮 + function onSave(){ + var grid = Ext.getCmp("studentShowGrid"); + var record = grid.getSelectionModel().getSelected(); + if(!record){ Ext.Msg.alert("提示","请选择学生") } + else{ + Ext.Msg.confirm("提示","是否确定保存更改",function(button){ + if(button != "no"){ + Ext.getCmp("studentDetailFormPanel").getForm().submit({ + clientValidation: true, + method: "POST", + waitMsg: "保存中", + params: { id: record.data.id }, + url: "/students/update_student", + success: function(form,action){ + Ext.Msg.alert('提示', "保存成功"); + grid.store.on("load",function(){ + var new_record = Ext.getCmp("studentShowGrid").getSelectionModel().getSelected(); + if(new_record) + { + $("#image img").attr("src",new_record.data["image/url"] ); + } + }); + grid.store.reload(); + Ext.getCmp("photoField").reset(); + }, + failure: function(){ + Ext.Msg.alert('提示', "保存失败"); + } + }); + } + }) + } + }; + + //判断上传文件 + function onFileSelect(field){ + var value = field.getValue(); + var pattern = /\.jpg$|\.jpeg$|\.bmp$|\.png|\.gif$|\.png&/i; + if (!pattern.test(value)){ + Ext.Msg.show({ + title:"警告", + msg:"必须是JPG,GIF,PNG,BMP格式图片文件!", + buttons: Ext.MessageBox.OK , + icon: Ext.MessageBox.INFO + }); + field.setValue(""); + }; + }; var formPanel = new Ext.form.FormPanel({ title: "test", region: "center", + id: "studentDetailFormPanel", autoScroll : true, fileUpload: true, frame: true, labelAlign : 'right', buttonAlign: 'center', - buttons: [{ text: "更新", handler: function(){ alert("nihai") } }], + buttons: [{ text: "更新", handler: function(){ onSave() } }], items: [{ layout: 'column', items:[ @@ -115,8 +165,6 @@ Pf.settings.homeIndex = { name: "classes/name" }, sexCombo, - // fieldLabel: "性别", - // name: "sex" { fieldLabel: "联系电话", name: "phone" @@ -130,13 +178,13 @@ Pf.settings.homeIndex = { xtype: 'fileuploadfield', allowBlank : true, emptyText: '选择', + id: "photoField", fieldLabel: '头像', - name: 'size_sheet', + name: 'photo', buttonText: '上传', - listeners: { 'fileselected' : {fn: this.onFileSelect, scope: this} } + listeners: { 'fileselected' : {fn: onFileSelect, scope: this} } } - ] - } + ]} ] }] }); diff --git a/public/javascripts/PF/pages/student.js b/public/javascripts/PF/pages/student.js index 38bcce7..8b82cb5 100644 --- a/public/javascripts/PF/pages/student.js +++ b/public/javascripts/PF/pages/student.js @@ -31,6 +31,7 @@ Pf.classes.student = Ext.extend(Ext.grid.EditorGridPanel,{ "phone", "home", "classes/name", + "image/url", ], root: 'root', url: '/students/get_all_students.json', @@ -67,7 +68,7 @@ Pf.classes.student = Ext.extend(Ext.grid.EditorGridPanel,{ var record = grid.getSelectionModel().getSelected(); if(!record){ Ext.Msg.alert("提示","请选择学生") } else{ - Ext.Msg.confirm('提示', "是否确定保存?", function(button){ + Ext.Msg.confirm('提示', "是否确定删除?", function(button){ if(button != "no"){ Pf.util.loadMask.show(); var studentId = record.id;