From f21dea0f7665473b5c23faa5a4da4587d06dd5fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Wed, 6 Nov 2019 17:30:33 +0800 Subject: [PATCH 01/36] =?UTF-8?q?=E6=96=B0=E9=9C=80=E6=B1=82=E5=85=AC?= =?UTF-8?q?=E5=91=8A=E6=A0=8F=E9=9C=80=E8=A6=81=E5=A2=9E=E5=8A=A0=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/gradinforms/Bullsubdirectory.js | 20 +++++++++++++++++++ .../modules/courses/gradinforms/Eduinforms.js | 7 +++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js index db4f89bfc..2c81f4898 100644 --- a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js +++ b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js @@ -269,6 +269,26 @@ class Bullsubdirectory extends Component{ :"" } + { + this.props.length - 1 === this.props.index ? "" : + + } + { + this.props.index === 0 ? "" : + + }
diff --git a/public/react/src/modules/courses/gradinforms/Eduinforms.js b/public/react/src/modules/courses/gradinforms/Eduinforms.js index 38190afaf..4cb42eff9 100644 --- a/public/react/src/modules/courses/gradinforms/Eduinforms.js +++ b/public/react/src/modules/courses/gradinforms/Eduinforms.js @@ -491,9 +491,12 @@ class Eduinforms extends Component{ :
+ {/*公告栏底部*/} { informs&&informs.map((item, index) => { return ( - this.getyslbooltrue()} getyslboolfalse={()=>this.getyslboolfalse()} getinputdata={()=>this.getinputdata()} > @@ -524,4 +527,4 @@ export default Eduinformss; {/*
*/} {/* {item.name===""?"":item.name===undefined?"":item.name===null?"":
{item.name}
}*/} {/*
*/} -{/*
*/} \ No newline at end of file +{/*
*/} From b7b3eafc727090ae7edf09e2a0d5adddf179b0da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Wed, 6 Nov 2019 17:38:48 +0800 Subject: [PATCH 02/36] =?UTF-8?q?=E6=96=B0=E9=9C=80=E6=B1=82=E5=85=AC?= =?UTF-8?q?=E5=91=8A=E6=A0=8F=E9=9C=80=E8=A6=81=E5=A2=9E=E5=8A=A0=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/courses/gradinforms/Bullsubdirectory.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js index 2c81f4898..0862a948c 100644 --- a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js +++ b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js @@ -277,7 +277,8 @@ class Bullsubdirectory extends Component{ }} > + style={{color: "#4CACFF"}} + className=" font-18 iconfont icon-xiangxiayi"> } { this.props.index === 0 ? "" : @@ -287,7 +288,8 @@ class Bullsubdirectory extends Component{ }} > + style={{color: "#4CACFF"}} + className=" font-18 iconfont icon-xiangshangyi"> }
From 69a9011bdd41f5918149be4993ff637a4dbac196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 7 Nov 2019 08:57:26 +0800 Subject: [PATCH 03/36] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/gradinforms/Bullsubdirectory.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js index 0862a948c..0a26222fc 100644 --- a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js +++ b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js @@ -211,6 +211,19 @@ class Bullsubdirectory extends Component{ }); } + //上移 + Moveupward = () => { + + } + //下移 + Movedown = () => { + + } + + + + + render(){ let{description,whethertoeditysl,addonAfter,eduintits,informs,isSpinysl} =this.state; @@ -275,6 +288,7 @@ class Bullsubdirectory extends Component{ style={{ lineHeight: "34px", }} + onClick={() => this.Movedown()} > this.Moveupward()} > Date: Thu, 7 Nov 2019 09:10:33 +0800 Subject: [PATCH 04/36] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/user/LoginRegisterComponent.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/public/react/src/modules/user/LoginRegisterComponent.js b/public/react/src/modules/user/LoginRegisterComponent.js index 9a11ac91a..10783655e 100644 --- a/public/react/src/modules/user/LoginRegisterComponent.js +++ b/public/react/src/modules/user/LoginRegisterComponent.js @@ -183,8 +183,9 @@ class LoginRegisterComponent extends Component { notification.open({ message: "提示", description: messge, + duration: 0, onClick: () => { - console.log('Notification Clicked!'); + console.log('Notification Clicked12312313123!'); }, }); } From 7c49d453a991486e2b5aedfddd5bdf496bc2282b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 7 Nov 2019 10:42:32 +0800 Subject: [PATCH 05/36] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/login/LoginDialog.js | 82 ++++++++++++++----- public/react/src/modules/tpm/NewHeader.js | 7 +- .../modules/user/LoginRegisterComponent.js | 37 +++++++-- 3 files changed, 97 insertions(+), 29 deletions(-) diff --git a/public/react/src/modules/login/LoginDialog.js b/public/react/src/modules/login/LoginDialog.js index 1fa52670e..6779bb498 100644 --- a/public/react/src/modules/login/LoginDialog.js +++ b/public/react/src/modules/login/LoginDialog.js @@ -476,10 +476,28 @@ class LoginDialog extends Component { if (response.data.status === 402) { // window.location.href = response.data.url; }else if (response.data.status === -2) { - notification.open({ - message: '提示', - description:response.data.message, - }); + if (response.data.message === "登录密码出错已达上限,账号已被锁定, 请10分钟后重新登录或找回密码") { + const messge = ( +
+

+ 登录密码出错已达上限,账号已被锁定; +

+

+ 请10分钟后重新登录或找回密码 +

+
+ ) + this.openNotifications(messge); + } else { + notification.open({ + message: '提示', + description: response.data.message, + duration: 5, + }); + } }else{ @@ -529,6 +547,17 @@ class LoginDialog extends Component { weixinlogin:true }) } + openNotifications = (btn) => { + // type 1 成功提示绿色 2提醒颜色黄色 3错误提示红色 + notification.open({ + message: "提示", + description: btn, + duration: 5, + onClick: () => { + + }, + }); + } openqqlogin=()=>{ this.setState({ qqlogin:true @@ -543,7 +572,7 @@ class LoginDialog extends Component { `https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=716027609&pt_3rd_aid=101508858&daid=383&pt_skey_valid=0&style=35&s_url=http%3A%2F%2Fconnect.qq.com&refer_cgi=authorize&which=&client_id=101508858&response_type=code&scope=get_user_info&redirect_uri=https%3a%2f%2ftest-newweb.educoder.net%2fotherloginqq&response_type=code` ) } - + hideweixinlogin=()=>{ this.setState({ weixinlogin:false, @@ -605,27 +634,37 @@ class LoginDialog extends Component { this.inputOnBlur(e, 1)} - value={this.state.loginValue} - name="username" - placeholder="请输入有效的手机号/邮箱号" > + type="text" + className="input-100-45 mt20" + id="name_loggin_input" + ref="loginPassText" + onInput={this.loginChange} + onBlur={(e) => this.inputOnBlur(e, 1)} + onPressEnter={disabled === false ? + this.loginEDU : () => { + } + // console.log(1) + } + value={this.state.loginValue} + name="username" + placeholder="请输入有效的手机号/邮箱号" >

{Phonenumberisnotco}

+ name="password" + ref="passwordText" + onInput={this.passwordChange} + onKeyDown={this.onKeydowns} + className="input-100-45 mt5" + onPressEnter={disabled === false ? + this.loginEDU : () => { + } + // console.log(1) + } + placeholder="密码" >

@@ -662,7 +701,8 @@ class LoginDialog extends Component { - this.getloginurl("/changepassword")} className="mr3 color-grey-9">忘记密码 + this.getloginurl("/changepassword")} + className="mr3 color-grey-9">找回密码 this.getloginurl("/register")} className="color-grey-9">注册 diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index c9dc518b0..61b20c01f 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -698,7 +698,7 @@ submittojoinclass=(value)=>{ } document.head.appendChild(link); } - + getAppdata=()=>{ let url = "/setting.json"; axios.get(url).then((response) => { @@ -1226,8 +1226,8 @@ submittojoinclass=(value)=>{ this.props.Headertop && this.props.Headertop.laboratory_user &&

  • 后台管理
  • } - -
  • 账号管理
  • + +
  • 账号管理
  • {/*
  • this.educoderlogin()} >登入测试接口
  • */} {/*
  • this.trialapplications()} >试用申请
  • */} {/*
  • 兴趣页
  • */} @@ -1235,6 +1235,7 @@ submittojoinclass=(value)=>{
  • {/*退出*/} {/*this.educoderlogin()}>退出*/} + this.educoderlogin()} className="mr5 color-white">登录 this.educoderloginysl()}>退出
  • diff --git a/public/react/src/modules/user/LoginRegisterComponent.js b/public/react/src/modules/user/LoginRegisterComponent.js index 10783655e..41954a3fb 100644 --- a/public/react/src/modules/user/LoginRegisterComponent.js +++ b/public/react/src/modules/user/LoginRegisterComponent.js @@ -183,12 +183,21 @@ class LoginRegisterComponent extends Component { notification.open({ message: "提示", description: messge, - duration: 0, onClick: () => { console.log('Notification Clicked12312313123!'); }, }); } + openNotifications = (btn) => { + // type 1 成功提示绿色 2提醒颜色黄色 3错误提示红色 + notification.open({ + message: "提示", + description: btn, + onClick: () => { + + }, + }); + } StudyMakeMoney = () => { // 调用父组件方法 @@ -370,8 +379,23 @@ class LoginRegisterComponent extends Component { }) return; - } - else { + } else if (response.data.message === "登录密码出错已达上限,账号已被锁定, 请10分钟后重新登录或找回密码") { + const messge = ( +
    +

    + 登录密码出错已达上限,账号已被锁定; +

    +

    + 请10分钟后重新登录或找回密码 +

    +
    + ) + this.openNotifications(messge); + return; + } else { this.openNotification(response.data.message); return; } @@ -1013,7 +1037,9 @@ class LoginRegisterComponent extends Component { name="username" className={Phonenumberisnotco && Phonenumberisnotco !== "" ?" color-grey-9 loginInputzhucheyslass bor-reds":" color-grey-9 loginInputzhuche"} onBlur={(e) => this.inputOnBlur(e, 1)} - style={{marginTop: '30px', height: '38px'}}> + style={{marginTop: '30px', height: '38px'}} + onPressEnter={() => this.postLogin()} + > { Phonenumberisnotco && Phonenumberisnotco != "" ? @@ -1023,8 +1049,9 @@ class LoginRegisterComponent extends Component { :
    } - this.postLogin()} className={Phonenumberisnotcodmm && Phonenumberisnotcodmm !== "" ?" color-grey-9 loginInputzhucheyslass bor-reds":" color-grey-9 loginInputzhuche"} placeholder="密码"> { From 537f75fd6de390b835644f9472f4686c63a9fea1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 7 Nov 2019 11:09:22 +0800 Subject: [PATCH 06/36] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/gradinforms/Bullsubdirectory.js | 52 ++++++++++++++++--- 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js index 0a26222fc..7b8c1f41e 100644 --- a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js +++ b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js @@ -212,12 +212,52 @@ class Bullsubdirectory extends Component{ } //上移 - Moveupward = () => { - + Moveupward = (id) => { + let url = `/courses/${this.props.match.params.coursesId}/inform_up.json`; + axios.post(url, { + inform_id: id + }).then((response) => { + if (response) { + if (response.data) { + if (response.data.status === 0) { + this.props.showNotification(`下移成功`); + this.props.getinputdata(); + } else { + this.props.showNotification(`下移失败`); + } + } else { + this.props.showNotification(`下移失败`); + } + } else { + this.props.showNotification(`下移失败`); + } + }).catch((error) => { + console.log(error) + }); } //下移 - Movedown = () => { - + Movedown = (id) => { + let url = `/courses/${this.props.match.params.coursesId}/inform_down.json`; + axios.post(url, { + inform_id: id + }).then((response) => { + if (response) { + if (response.data) { + if (response.data.status === 0) { + this.props.showNotification(`下移成功`); + this.props.getinputdata(); + } else { + this.props.showNotification(`下移失败`); + } + } else { + this.props.showNotification(`下移失败`); + } + } else { + this.props.showNotification(`下移失败`); + } + }).catch((error) => { + console.log(error) + }); } @@ -288,7 +328,7 @@ class Bullsubdirectory extends Component{ style={{ lineHeight: "34px", }} - onClick={() => this.Movedown()} + onClick={() => this.Movedown(this.props.id)} > this.Moveupward()} + onClick={() => this.Moveupward(this.props.id)} > Date: Thu, 7 Nov 2019 11:34:01 +0800 Subject: [PATCH 07/36] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/courses/gradinforms/Bullsubdirectory.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js index 7b8c1f41e..78538f346 100644 --- a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js +++ b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js @@ -220,16 +220,16 @@ class Bullsubdirectory extends Component{ if (response) { if (response.data) { if (response.data.status === 0) { - this.props.showNotification(`下移成功`); + this.props.showNotification(`上移成功`); this.props.getinputdata(); } else { - this.props.showNotification(`下移失败`); + this.props.showNotification(`上移失败`); } } else { - this.props.showNotification(`下移失败`); + this.props.showNotification(`上移失败`); } } else { - this.props.showNotification(`下移失败`); + this.props.showNotification(`上移失败`); } }).catch((error) => { console.log(error) From 55c871ca35f670bd70c84c19e6e3a5cabc631d9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 7 Nov 2019 13:58:40 +0800 Subject: [PATCH 08/36] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/tpm/NewHeader.js | 1 - public/react/src/modules/user/usersInfo/InfosCourse.js | 2 +- public/react/src/modules/user/usersInfo/InfosPackage.js | 2 +- public/react/src/modules/user/usersInfo/InfosPath.js | 2 +- public/react/src/modules/user/usersInfo/InfosProject.js | 2 +- public/react/src/modules/user/usersInfo/InfosShixun.js | 2 +- public/react/src/modules/user/usersInfo/video/InfosVideo.js | 2 +- 7 files changed, 6 insertions(+), 7 deletions(-) diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index 61b20c01f..54b81bce1 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -1235,7 +1235,6 @@ submittojoinclass=(value)=>{
  • {/*退出*/} {/*this.educoderlogin()}>退出*/} - this.educoderlogin()} className="mr5 color-white">登录 this.educoderloginysl()}>退出
  • diff --git a/public/react/src/modules/user/usersInfo/InfosCourse.js b/public/react/src/modules/user/usersInfo/InfosCourse.js index 7104edc59..85ae6b9c5 100644 --- a/public/react/src/modules/user/usersInfo/InfosCourse.js +++ b/public/react/src/modules/user/usersInfo/InfosCourse.js @@ -200,7 +200,7 @@ class InfosCourse extends Component{ .white-panel li.active { border-radius: 24px; - border: 0px solid #4CACFF; + border: none !important; color: #4CACFF; } diff --git a/public/react/src/modules/user/usersInfo/InfosPackage.js b/public/react/src/modules/user/usersInfo/InfosPackage.js index effbdbc20..ad2c1c0ab 100644 --- a/public/react/src/modules/user/usersInfo/InfosPackage.js +++ b/public/react/src/modules/user/usersInfo/InfosPackage.js @@ -190,7 +190,7 @@ class InfosPackage extends Component{ } .white-panel li.active { border-radius: 24px; - border: 0px solid #4CACFF; + border: none !important; color: #4CACFF; } diff --git a/public/react/src/modules/user/usersInfo/InfosPath.js b/public/react/src/modules/user/usersInfo/InfosPath.js index 968d61083..d127ff87b 100644 --- a/public/react/src/modules/user/usersInfo/InfosPath.js +++ b/public/react/src/modules/user/usersInfo/InfosPath.js @@ -202,7 +202,7 @@ class InfosPath extends Component{ .white-panel li.active { border-radius: 24px; - border: 0px solid #4CACFF; + border: none !important; color: #4CACFF; } diff --git a/public/react/src/modules/user/usersInfo/InfosProject.js b/public/react/src/modules/user/usersInfo/InfosProject.js index cd2e14265..102a26724 100644 --- a/public/react/src/modules/user/usersInfo/InfosProject.js +++ b/public/react/src/modules/user/usersInfo/InfosProject.js @@ -203,7 +203,7 @@ class InfosProject extends Component{ .white-panel li.active { border-radius: 24px; - border: 0px solid #4CACFF; + border: none !important; color: #4CACFF; } diff --git a/public/react/src/modules/user/usersInfo/InfosShixun.js b/public/react/src/modules/user/usersInfo/InfosShixun.js index f6455121e..0a63c14a0 100644 --- a/public/react/src/modules/user/usersInfo/InfosShixun.js +++ b/public/react/src/modules/user/usersInfo/InfosShixun.js @@ -203,7 +203,7 @@ class InfosShixun extends Component{ .white-panel li.active { border-radius: 24px; - border: 0px solid #4CACFF; + border: none !important; color: #4CACFF; } diff --git a/public/react/src/modules/user/usersInfo/video/InfosVideo.js b/public/react/src/modules/user/usersInfo/video/InfosVideo.js index 323706b01..a3678e56e 100644 --- a/public/react/src/modules/user/usersInfo/video/InfosVideo.js +++ b/public/react/src/modules/user/usersInfo/video/InfosVideo.js @@ -282,7 +282,7 @@ function InfoVideo (props) { } .white-panel li.active { border-radius: 24px; - border: 0px solid #4CACFF; + border: none !important; color: #4CACFF; } .whitepanelysllisyt { From cdfdea00e085a6dd5fefc200ba872315e3c3594b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 7 Nov 2019 14:04:01 +0800 Subject: [PATCH 09/36] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../react/src/modules/courses/gradinforms/Bullsubdirectory.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js index 78538f346..96cc73688 100644 --- a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js +++ b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js @@ -326,7 +326,7 @@ class Bullsubdirectory extends Component{ this.props.length - 1 === this.props.index ? "" : this.Movedown(this.props.id)} > this.Moveupward(this.props.id)} > Date: Thu, 7 Nov 2019 14:21:21 +0800 Subject: [PATCH 10/36] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/shixunHomework/Listofworksstudentone.js | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index ad3d28167..f6207df57 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -1174,14 +1174,10 @@ class Listofworksstudentone extends Component { align: 'center', className: 'font-14', render: (text, record) => ( - record.submitstate === "未提交" ? - this.Viewstudenttraininginformationtysl2(e, record)} - onClick={() => this.Viewstudenttraininginformationt(record)}>查看 : this.Viewstudenttraininginformationtysl2(e, record)} - onClick={() => this.Viewstudenttraininginformationt(record)}>查看 + onClick={() => this.Viewstudenttraininginformationt(record)}>评阅 ) }, @@ -1508,10 +1504,6 @@ class Listofworksstudentone extends Component { align: 'center', className: 'font-14', render: (text, record) => ( - record.submitstate === "未提交" ? - this.Viewstudenttraininginformationtysl2(e, record)} - onClick={() => this.Viewstudenttraininginformationt(record)}>{record.operating} : this.Viewstudenttraininginformationtysl2(e, record)} From fd3a5bbe3ea90cb14489c5b7df8549d45cfb8827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 7 Nov 2019 14:40:35 +0800 Subject: [PATCH 11/36] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/courses/shixunHomework/Listofworksstudentone.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index f6207df57..2f2f95407 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -1507,7 +1507,7 @@ class Listofworksstudentone extends Component { this.Viewstudenttraininginformationtysl2(e, record)} - onClick={() => this.Viewstudenttraininginformationt(record)}>{record.operating} + onClick={() => this.Viewstudenttraininginformationt(record)}>评阅 ) }, From 46b0b462851976ec069c803e1a53f861e894cb06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 7 Nov 2019 15:28:29 +0800 Subject: [PATCH 12/36] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=94=B9=E7=89=88?= =?UTF-8?q?=E8=B0=83=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coursesPublic/ModulationModal_exercise.js | 175 ++++++++++++++++++ .../exercise/Studentshavecompletedthelist.js | 4 +- 2 files changed, 177 insertions(+), 2 deletions(-) create mode 100644 public/react/src/modules/courses/coursesPublic/ModulationModal_exercise.js diff --git a/public/react/src/modules/courses/coursesPublic/ModulationModal_exercise.js b/public/react/src/modules/courses/coursesPublic/ModulationModal_exercise.js new file mode 100644 index 000000000..ff5fea43d --- /dev/null +++ b/public/react/src/modules/courses/coursesPublic/ModulationModal_exercise.js @@ -0,0 +1,175 @@ +import React, {Component} from "react"; +import {Modal, Checkbox, Upload, Button, Icon, message, Input, Form} from "antd"; +import {WordNumberTextarea} from 'educoder'; +import './Newshixunmodel.css' + +//调分 +class ModulationModal_exercise extends Component { + constructor(props) { + super(props); + this.state = { + group_ids: [], + fileList: [], + textareaval: undefined, + Inputsval: undefined + } + } + + + Saves = () => { + let {textareaval, Inputsval} = this.state; + // if(textareaval===""||textareaval===undefined){ + // this.setState({ + // textareavaltype:true + // }) + // return + // } + this.setState({ + textareavaltype: false + }) + + if (Inputsval === undefined || Inputsval === "") { + this.setState({ + Inputsval: "", + Inputsvaltype: true, + Inputsvaltest: "请输入分数", + }) + return + } + + if (this.state.Inputsvaltype === true) { + return; + } + this.setState({ + Inputsvaltype: false, + Inputsvaltest: "", + }) + this.props.Saves(textareaval, Inputsval) + + } + + settextarea = (e) => { + this.setState({ + textareaval: e.target.value + }) + } + + setInputs = (e) => { + debugger + var value = parseInt(e.target.value) + + if (isNaN(value)) { + value = 0; + this.setState({ + Inputsval: value, + Inputsvaltype: true, + Inputsvaltest: "请输入分数", + }) + } else { + if (value < 0 || value > 100) { + value = 0; + this.setState({ + Inputsval: value, + Inputsvaltype: true, + Inputsvaltest: "请输入0-100的分数", + }) + + } + } + this.setState({ + Inputsval: value, + Inputsvaltype: false, + }) + } + + render() { + let {textareaval, Inputsval, textareavaltype, Inputsvaltype, Inputsvaltest} = this.state; + return ( + + ) + } +} + +export default ModulationModal_exercise; +//
    +//

    +// +// 该学生的最终成绩将不会按照评分规则进行计算 +// +//

    +// +// +//
    +// {/**/} +// +// this.settextarea(e)} +// value={textareaval} +// maxlength={100} +// /> +// +// {/*
  • 原因不能为空
  • */} +//
    +//
    +// +// +// +//
  • +// +//
  • +//
  • 分数不能为空
  • +// */ +} +{/*
    */ +} diff --git a/public/react/src/modules/courses/exercise/Studentshavecompletedthelist.js b/public/react/src/modules/courses/exercise/Studentshavecompletedthelist.js index 90c76ee68..8fb3c7b39 100644 --- a/public/react/src/modules/courses/exercise/Studentshavecompletedthelist.js +++ b/public/react/src/modules/courses/exercise/Studentshavecompletedthelist.js @@ -1032,7 +1032,7 @@ class Studentshavecompletedthelist extends Component { {record.finalscore==="--"? this.Adjustment(record)} - >调分 + >评阅 : this.Adjustment(record)} - >调分 + >评阅 : Date: Thu, 7 Nov 2019 16:42:01 +0800 Subject: [PATCH 13/36] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=BC=B9=E5=87=BA?= =?UTF-8?q?=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/login/LoginDialog.css | 8 ++++++++ public/react/src/modules/login/LoginDialog.js | 13 +++++++++---- public/react/src/modules/tpm/NewHeader.js | 4 +++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/public/react/src/modules/login/LoginDialog.css b/public/react/src/modules/login/LoginDialog.css index 37e2f48b6..833a17e3d 100644 --- a/public/react/src/modules/login/LoginDialog.css +++ b/public/react/src/modules/login/LoginDialog.css @@ -151,3 +151,11 @@ .textcenter{ text-align: center; } + +.zindextest { + z-index: 1000 !important; +} + +.MuiModal-root-15 { + z-index: 1000 !important; +} diff --git a/public/react/src/modules/login/LoginDialog.js b/public/react/src/modules/login/LoginDialog.js index 6779bb498..cf78d97e0 100644 --- a/public/react/src/modules/login/LoginDialog.js +++ b/public/react/src/modules/login/LoginDialog.js @@ -495,7 +495,7 @@ class LoginDialog extends Component { notification.open({ message: '提示', description: response.data.message, - duration: 5, + duration: 5, }); } }else{ @@ -552,7 +552,7 @@ class LoginDialog extends Component { notification.open({ message: "提示", description: btn, - duration: 5, + duration: 5, onClick: () => { }, @@ -573,12 +573,16 @@ class LoginDialog extends Component { ) } + getTContainer = () => { + return document.body; + } hideweixinlogin=()=>{ this.setState({ weixinlogin:false, qqlogin:false }) } + render() { let{qqlogin,login,isGoing,isGoingValue,disabled,bottonclass,Phonenumberisnotco, dialogBox, isRender,weixinlogin}=this.state; @@ -589,9 +593,10 @@ class LoginDialog extends Component { // console.log(this.props) return ( this.handleDialogClose()} > {
  • {/*退出*/} {/*this.educoderlogin()}>退出*/} - this.educoderloginysl()}>退出 + this.educoderlogin()}>登录 + + this.educoderloginysl()}>退出
  • From 15c212169044bda518b4bb97349704eedb2b5143 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 7 Nov 2019 17:03:19 +0800 Subject: [PATCH 14/36] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=87=91=E8=AF=BE?= =?UTF-8?q?=E4=B8=8A=E7=A7=BB=E4=B8=8B=E7=A7=BB=E5=8A=A8=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/gradinforms/Bullsubdirectory.js | 48 ++++++++++++------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js index 96cc73688..0d0974bf8 100644 --- a/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js +++ b/public/react/src/modules/courses/gradinforms/Bullsubdirectory.js @@ -324,27 +324,39 @@ class Bullsubdirectory extends Component{ { this.props.length - 1 === this.props.index ? "" : - this.Movedown(this.props.id)} - > + this.props.isAdmin() === true ? + (this.props.yslbool === false ? + this.Movedown(this.props.id)} + > + : + "" + ) + : "" } { this.props.index === 0 ? "" : - this.Moveupward(this.props.id)} - > + this.props.isAdmin() === true ? + (this.props.yslbool === false ? + this.Moveupward(this.props.id)} + > + : + "" + ) + : "" }
    From 60141f64dfafdada8955729b208fc0c3806fc805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 7 Nov 2019 17:59:23 +0800 Subject: [PATCH 15/36] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=94=B9=E7=89=88?= =?UTF-8?q?=E5=90=8E=E8=B0=83=E5=88=86=E5=BC=B9=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/coursesPublic/ModulationModal.js | 59 ++++++++++--------- .../courses/coursesPublic/Newshixunmodel.css | 21 ++++++- 2 files changed, 50 insertions(+), 30 deletions(-) diff --git a/public/react/src/modules/courses/coursesPublic/ModulationModal.js b/public/react/src/modules/courses/coursesPublic/ModulationModal.js index 4a679b515..55926baa2 100644 --- a/public/react/src/modules/courses/coursesPublic/ModulationModal.js +++ b/public/react/src/modules/courses/coursesPublic/ModulationModal.js @@ -100,40 +100,46 @@ class ModulationModal extends Component{ alignItems: "center", }}>
    + }}> +

    该学生的最终成绩将不会按照评分规则进行计算

    +
    +
    *调分: + }}>*成绩: 分 - } /> +
    { Inputsvaltype === true ? @@ -141,24 +147,16 @@ class ModulationModal extends Component{ : "" } -
    - -

    调分后该学生的最终成绩将不会按照评分规则进行计算

    -
    - 调分原因: this.settextarea(e)} value={textareaval} maxlength={100} @@ -166,16 +164,19 @@ class ModulationModal extends Component{
    + +
    diff --git a/public/react/src/modules/courses/coursesPublic/Newshixunmodel.css b/public/react/src/modules/courses/coursesPublic/Newshixunmodel.css index e31766c3f..c18efe9f8 100644 --- a/public/react/src/modules/courses/coursesPublic/Newshixunmodel.css +++ b/public/react/src/modules/courses/coursesPublic/Newshixunmodel.css @@ -305,8 +305,27 @@ margin: 10px 10px 0px 10px; padding: 10px 10px 5px 10px; backgroud: rgba(234, 234, 234, 1); - width: 335px; + width: 530px; + margin-left: 10px; + margin-top: 25px; + height: 214px !important; +} +.WordNumbernote .WordNumberTextarea { + outline: none; + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + background-color: white; + text-shadow: none; + -webkit-writing-mode: horizontal-tb !important; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + resize: none; + border: none; + width: 100%; + height: 169px !important; + border: none; + display: block; } .WordNumberTextarea-count { From 9e98330dbbac5076308c0e2ca92e9955bf8cda3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 8 Nov 2019 09:19:27 +0800 Subject: [PATCH 16/36] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=94=B9=E7=89=88?= =?UTF-8?q?=E5=90=8E=E8=B0=83=E5=88=86=E5=BC=B9=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/coursesPublic/ModulationModal.js | 6 +++--- .../shixunHomework/Listofworksstudentone.js | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/public/react/src/modules/courses/coursesPublic/ModulationModal.js b/public/react/src/modules/courses/coursesPublic/ModulationModal.js index 55926baa2..af3ae01f3 100644 --- a/public/react/src/modules/courses/coursesPublic/ModulationModal.js +++ b/public/react/src/modules/courses/coursesPublic/ModulationModal.js @@ -143,7 +143,7 @@ class ModulationModal extends Component{ { Inputsvaltype === true ? -

    {Inputsvaltest}

    +

    {Inputsvaltest}

    : "" } @@ -171,9 +171,9 @@ class ModulationModal extends Component{ display: "flex", flexDirection: "row-reverse", }}> - {this.props.Savesname || '确认'} - {this.props.Cancelname || '取消'} diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index d13bbf9b2..b83200c49 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -1175,9 +1175,9 @@ class Listofworksstudentone extends Component { className: 'font-14', render: (text, record) => ( record.submitstate === "未提交" ? - - -- - : + this.Viewstudenttraininginformationtysl2(e, record)} + onClick={() => this.Viewstudenttraininginformationt(record)}>评阅 : this.Viewstudenttraininginformationtysl2(e, record)} @@ -1509,13 +1509,13 @@ class Listofworksstudentone extends Component { className: 'font-14', render: (text, record) => ( record.submitstate === "未提交" ? - - -- - : + this.Viewstudenttraininginformationtysl2(e, record)} + onClick={() => this.Viewstudenttraininginformationt(record)}>评阅 : this.Viewstudenttraininginformationtysl2(e, record)} - onClick={() => this.Viewstudenttraininginformationt(record)}>{record.operating} + onClick={() => this.Viewstudenttraininginformationt(record)}>评阅 ) }, From be3b094e2f87682290100e964c9dc8c4704d0ee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 8 Nov 2019 10:00:39 +0800 Subject: [PATCH 17/36] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=94=B9=E7=89=88?= =?UTF-8?q?=E5=90=8E=E8=B0=83=E5=88=86=E5=BC=B9=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/config/webpack.config.dev.js | 2 +- .../courses/coursesPublic/ModulationModal.js | 84 ++++++++++++------- 2 files changed, 56 insertions(+), 30 deletions(-) diff --git a/public/react/config/webpack.config.dev.js b/public/react/config/webpack.config.dev.js index 743b3685c..f335f1705 100644 --- a/public/react/config/webpack.config.dev.js +++ b/public/react/config/webpack.config.dev.js @@ -32,7 +32,7 @@ module.exports = { // See the discussion in https://github.com/facebookincubator/create-react-app/issues/343.s // devtool: "cheap-module-eval-source-map", // 开启调试 - // devtool: "source-map", // 开启调试 + devtool: "source-map", // 开启调试 // These are the "entry points" to our application. // This means they will be the "root" imports that are included in JS bundle. // The first two entry points enable "hot" CSS and auto-refreshes for JS. diff --git a/public/react/src/modules/courses/coursesPublic/ModulationModal.js b/public/react/src/modules/courses/coursesPublic/ModulationModal.js index af3ae01f3..8c3fcaa37 100644 --- a/public/react/src/modules/courses/coursesPublic/ModulationModal.js +++ b/public/react/src/modules/courses/coursesPublic/ModulationModal.js @@ -1,5 +1,5 @@ import React,{ Component } from "react"; -import {Modal, Checkbox, Upload, Button, Icon, message, Input, Form} from "antd"; +import {Modal, Checkbox, Upload, Button, Icon, message, Input, Form, InputNumber} from "antd"; import { WordNumberTextarea } from 'educoder'; import './Newshixunmodel.css' @@ -17,6 +17,7 @@ class ModulationModal extends Component{ Saves=()=>{ + console.log("Saves=()"); let {textareaval,Inputsval}=this.state; // if(textareaval===""||textareaval===undefined){ // this.setState({ @@ -44,6 +45,7 @@ class ModulationModal extends Component{ Inputsvaltype: false, Inputsvaltest: "", }) + console.log(Inputsval); this.props.Saves(textareaval,Inputsval) } @@ -55,31 +57,45 @@ class ModulationModal extends Component{ } setInputs=(e)=>{ - debugger - var value=parseInt(e.target.value) + console.log("setInputs"); + let value = undefined; + try { + value = parseFloat(e); + } catch (e) { + this.setState({ + borredszf: "ml10 color-grey-9 bor-reds ", + Inputsval: 0, + Inputsvaltype: true, + Inputsvaltest: "请输入分数", + }) + return; + } - if(isNaN(value)){ - value = 0; + if (value === undefined || value === null || value === "") { this.setState({ - Inputsval: value, + borredszf: "ml10 color-grey-9 bor-reds ", + Inputsval: 0, Inputsvaltype: true, Inputsvaltest: "请输入分数", }) - }else{ - if(value<0||value>100){ - value = 0; - this.setState({ - Inputsval: value, - Inputsvaltype: true, - Inputsvaltest: "请输入0-100的分数", - }) - - } - } - this.setState({ + return + } + var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/ + var nubmer = value; + if (!re.test(nubmer)) { + this.setState({ + borredszf: "ml10 color-grey-9 bor-reds ", + Inputsval: value, + Inputsvaltype: true, + Inputsvaltest: "请输入0-100的分数", + }) + return; + } + console.log(value); + this.setState({ Inputsval: value, Inputsvaltype: false, - }) + }) } render(){ let {textareaval, Inputsval, textareavaltype, Inputsvaltype, Inputsvaltest} = this.state; @@ -123,16 +139,26 @@ class ModulationModal extends Component{ lineHeight: " 40px", color: " #f5222d", }}>*成绩: - + + Date: Fri, 8 Nov 2019 10:40:35 +0800 Subject: [PATCH 18/36] cooperative manage: shixun and subject manage --- .../admins/laboratory_subjects/index.js | 1 + .../cooperative/laboratory_shixuns/index.js | 60 +++++++ .../cooperative/laboratory_subjects/index.js | 83 +++++++++ .../modals/cooperative-edit-subject-modal.js | 18 ++ .../cooperative/modals/upload-file-modal.js | 2 +- app/assets/stylesheets/admins/common.scss | 6 + .../stylesheets/cooperative/common.scss | 6 + .../concerns/base/render_helper.rb | 1 + .../cooperative/base_controller.rb | 2 +- .../cooperative/files_controller.rb | 18 +- .../laboratory_shixuns_controller.rb | 39 +++++ .../laboratory_subjects_controller.rb | 46 +++++ app/models/laboratory_subject.rb | 2 + .../laboratory_shixuns/shared/_list.html.erb | 4 +- .../laboratory_shixuns/index.html.erb | 42 +++++ .../laboratory_shixuns/index.js.erb | 1 + .../laboratory_shixuns/shared/_list.html.erb | 27 +++ .../laboratory_shixuns/shared/_td.html.erb | 32 ++++ .../laboratory_subjects/edit.js.erb | 2 + .../laboratory_subjects/index.html.erb | 42 +++++ .../laboratory_subjects/index.js.erb | 1 + .../shared/_edit_subject_modal.html.erb | 31 ++++ .../laboratory_subjects/shared/_list.html.erb | 27 +++ .../laboratory_subjects/shared/_td.html.erb | 28 +++ .../laboratory_subjects/update.js.erb | 3 + .../cooperative/shared/_sidebar.html.erb | 2 + .../shared/modal/_upload_file_modal.html.erb | 3 +- config/routes.rb | 13 ++ ...fest-4627fa5586ef7fed55ca286af7c028e9.json | 2 +- ...9d6c58bf760d144f2eb890a06d98e694506dd4.js} | 1 + ...c58bf760d144f2eb890a06d98e694506dd4.js.gz} | Bin 998559 -> 998561 bytes ...813d41aad3f6f94966f9b691f2f13b41277df.css} | 41 +++-- ...d41aad3f6f94966f9b691f2f13b41277df.css.gz} | Bin 75863 -> 75875 bytes ...8b36cc396a4a466c9b8c4ad371e44159f14d6.css} | 41 +++-- ...6cc396a4a466c9b8c4ad371e44159f14d6.css.gz} | Bin 72158 -> 72172 bytes ...0e0eb0e6a9e2e5b995008688b47693c3495699.js} | 165 +++++++++++++++++- ...eb0e6a9e2e5b995008688b47693c3495699.js.gz} | Bin 966944 -> 967798 bytes 37 files changed, 754 insertions(+), 38 deletions(-) create mode 100644 app/assets/javascripts/cooperative/laboratory_shixuns/index.js create mode 100644 app/assets/javascripts/cooperative/laboratory_subjects/index.js create mode 100644 app/assets/javascripts/cooperative/modals/cooperative-edit-subject-modal.js create mode 100644 app/controllers/cooperative/laboratory_shixuns_controller.rb create mode 100644 app/controllers/cooperative/laboratory_subjects_controller.rb create mode 100644 app/views/cooperative/laboratory_shixuns/index.html.erb create mode 100644 app/views/cooperative/laboratory_shixuns/index.js.erb create mode 100644 app/views/cooperative/laboratory_shixuns/shared/_list.html.erb create mode 100644 app/views/cooperative/laboratory_shixuns/shared/_td.html.erb create mode 100644 app/views/cooperative/laboratory_subjects/edit.js.erb create mode 100644 app/views/cooperative/laboratory_subjects/index.html.erb create mode 100644 app/views/cooperative/laboratory_subjects/index.js.erb create mode 100644 app/views/cooperative/laboratory_subjects/shared/_edit_subject_modal.html.erb create mode 100644 app/views/cooperative/laboratory_subjects/shared/_list.html.erb create mode 100644 app/views/cooperative/laboratory_subjects/shared/_td.html.erb create mode 100644 app/views/cooperative/laboratory_subjects/update.js.erb rename public/assets/{admin-80cc0a53298c5abd849f03d8b8514d3263ef67fce38f83c05b1da0d30d3bb235.js => admin-62cbd1f755bfb83be19051bd099d6c58bf760d144f2eb890a06d98e694506dd4.js} (99%) rename public/assets/{admin-80cc0a53298c5abd849f03d8b8514d3263ef67fce38f83c05b1da0d30d3bb235.js.gz => admin-62cbd1f755bfb83be19051bd099d6c58bf760d144f2eb890a06d98e694506dd4.js.gz} (99%) rename public/assets/{admin-5902a288ce59247a683d5719189fc6260be1e38181872e710a7643ad60caaccc.css => admin-a43c5a60b3ce25fd4322aa44414813d41aad3f6f94966f9b691f2f13b41277df.css} (99%) rename public/assets/{admin-5902a288ce59247a683d5719189fc6260be1e38181872e710a7643ad60caaccc.css.gz => admin-a43c5a60b3ce25fd4322aa44414813d41aad3f6f94966f9b691f2f13b41277df.css.gz} (78%) rename public/assets/{cooperative-8057adee2454dbc9d648305faf9ede9824f40d3bd0184e816e8035bb7f1e730b.css => cooperative-57330e03998e7ea29c4342718d18b36cc396a4a466c9b8c4ad371e44159f14d6.css} (99%) rename public/assets/{cooperative-8057adee2454dbc9d648305faf9ede9824f40d3bd0184e816e8035bb7f1e730b.css.gz => cooperative-57330e03998e7ea29c4342718d18b36cc396a4a466c9b8c4ad371e44159f14d6.css.gz} (79%) rename public/assets/{cooperative-4fe879591997da39d38e94f6f5eb3b688aa827fa42cb8fd73d21bc96ed880236.js => cooperative-874fcb0a0f1072b2245fbd18f00e0eb0e6a9e2e5b995008688b47693c3495699.js} (99%) rename public/assets/{cooperative-4fe879591997da39d38e94f6f5eb3b688aa827fa42cb8fd73d21bc96ed880236.js.gz => cooperative-874fcb0a0f1072b2245fbd18f00e0eb0e6a9e2e5b995008688b47693c3495699.js.gz} (98%) diff --git a/app/assets/javascripts/admins/laboratory_subjects/index.js b/app/assets/javascripts/admins/laboratory_subjects/index.js index a8b229d1f..b5fa3bffb 100644 --- a/app/assets/javascripts/admins/laboratory_subjects/index.js +++ b/app/assets/javascripts/admins/laboratory_subjects/index.js @@ -7,6 +7,7 @@ $(document).on('turbolinks:load', function() { $searchForm.find('.school-select').select2({ theme: 'bootstrap4', placeholder: '请选择创建者单位', + allowClear: true, minimumInputLength: 1, ajax: { delay: 500, diff --git a/app/assets/javascripts/cooperative/laboratory_shixuns/index.js b/app/assets/javascripts/cooperative/laboratory_shixuns/index.js new file mode 100644 index 000000000..ef6018a8a --- /dev/null +++ b/app/assets/javascripts/cooperative/laboratory_shixuns/index.js @@ -0,0 +1,60 @@ +$(document).on('turbolinks:load', function() { + if ($('body.cooperative-laboratory-shixuns-index-page').length > 0) { + var $searchForm = $('.laboratory-shixun-list-form .search-form'); + + $searchForm.find('select#tag_id').select2({ + placeholder: "请选择", + allowClear: true + }); + + // 上传图片 + $('.modal.cooperative-upload-file-modal').on('upload:success', function (e, data) { + var $imageElement = $('.shixun-image-' + data.source_id); + if($imageElement.length === 0) return; + $imageElement.attr('src', data.url); + $imageElement.show(); + $imageElement.next().html('重新上传'); + }); + + // 定义状态切换监听事件 + var defineStatusChangeFunc = function (doElement, undoElement, url, callback) { + $('.laboratory-shixun-list-container').on('click', doElement, function () { + var $doAction = $(this); + var $undoAction = $doAction.siblings(undoElement); + + var laboratoryShixunId = $doAction.data('id'); + customConfirm({ + content: '确认进行该操作吗?', + ok: function () { + $.ajax({ + url: '/cooperative/laboratory_shixuns/' + laboratoryShixunId + url, + method: 'POST', + dataType: 'json', + success: function () { + show_success_flash(); + $doAction.hide(); + $undoAction.show(); + if (callback && typeof callback === "function") { + callback(laboratoryShixunId, url); + } + } + }); + } + }); + }); + } + + // 首页展示与取消首页展示 + var homepageShowCallback = function (laboratoryShixunId, url) { + var $laboratoryShixunItem = $('.laboratory-shixun-list-container').find('.laboratory-shixun-item-' + laboratoryShixunId); + + if (url === '/homepage') { + $laboratoryShixunItem.find('.homepage-badge').show(); + } else { + $laboratoryShixunItem.find('.homepage-badge').hide(); + } + } + defineStatusChangeFunc('.homepage-show-action', '.homepage-hide-action', '/homepage', homepageShowCallback); + defineStatusChangeFunc('.homepage-hide-action', '.homepage-show-action', '/cancel_homepage', homepageShowCallback); + } +}) \ No newline at end of file diff --git a/app/assets/javascripts/cooperative/laboratory_subjects/index.js b/app/assets/javascripts/cooperative/laboratory_subjects/index.js new file mode 100644 index 000000000..639c5d5df --- /dev/null +++ b/app/assets/javascripts/cooperative/laboratory_subjects/index.js @@ -0,0 +1,83 @@ +$(document).on('turbolinks:load', function() { + if ($('body.cooperative-laboratory-subjects-index-page').length > 0) { + var $searchForm = $('.laboratory-subject-list-form .search-form'); + + // ************** 学校选择 ************* + $searchForm.find('.school-select').select2({ + theme: 'bootstrap4', + placeholder: '请选择创建者单位', + allowClear: true, + minimumInputLength: 1, + ajax: { + delay: 500, + url: '/api/schools/search.json', + dataType: 'json', + data: function (params) { + return {keyword: params.term}; + }, + processResults: function (data) { + return {results: data.schools} + } + }, + templateResult: function (item) { + if (!item.id || item.id === '') return item.text; + return item.name; + }, + templateSelection: function (item) { + if (item.id) { + } + return item.name || item.text; + } + }); + + // 上传图片 + $('.modal.cooperative-upload-file-modal').on('upload:success', function (e, data) { + var $imageElement = $('.subject-image-' + data.source_id); + if($imageElement.length === 0) return; + $imageElement.attr('src', data.url); + $imageElement.show(); + $imageElement.next().html('重新上传'); + }); + + // 定义状态切换监听事件 + var defineStatusChangeFunc = function (doElement, undoElement, url, callback) { + $('.laboratory-subject-list-container').on('click', doElement, function () { + var $doAction = $(this); + var $undoAction = $doAction.siblings(undoElement); + + var laboratorySubjectId = $doAction.data('id'); + customConfirm({ + content: '确认进行该操作吗?', + ok: function () { + $.ajax({ + url: '/cooperative/laboratory_subjects/' + laboratorySubjectId + url, + method: 'POST', + dataType: 'json', + success: function () { + show_success_flash(); + $doAction.hide(); + $undoAction.show(); + if (callback && typeof callback === "function") { + callback(laboratorySubjectId, url); + } + } + }); + } + }); + }); + } + + // 首页展示与取消首页展示 + var homepageShowCallback = function (laboratoryShixunId, url) { + var $laboratoryShixunItem = $('.laboratory-subject-list-container').find('.laboratory-subject-item-' + laboratoryShixunId); + + if (url === '/homepage') { + $laboratoryShixunItem.find('.homepage-badge').show(); + } else { + $laboratoryShixunItem.find('.homepage-badge').hide(); + } + } + defineStatusChangeFunc('.homepage-show-action', '.homepage-hide-action', '/homepage', homepageShowCallback); + defineStatusChangeFunc('.homepage-hide-action', '.homepage-show-action', '/cancel_homepage', homepageShowCallback); + } +}) \ No newline at end of file diff --git a/app/assets/javascripts/cooperative/modals/cooperative-edit-subject-modal.js b/app/assets/javascripts/cooperative/modals/cooperative-edit-subject-modal.js new file mode 100644 index 000000000..414d04ed2 --- /dev/null +++ b/app/assets/javascripts/cooperative/modals/cooperative-edit-subject-modal.js @@ -0,0 +1,18 @@ +$(document).on('turbolinks:load', function () { + $('.cooperative-modal-container').on('show.bs.modal', '.modal.cooperative-edit-subject-modal', function () { + var $modal = $('.modal.cooperative-edit-subject-modal'); + var $form = $modal.find('form.cooperative-edit-subject-form'); + + $modal.on('click', '.submit-btn', function () { + $form.find('.error').html(''); + var url = $form.attr('action'); + + $.ajax({ + method: 'PATCH', + dataType: 'script', + url: url, + data: $form.serialize() + }); + }); + }) +}); diff --git a/app/assets/javascripts/cooperative/modals/upload-file-modal.js b/app/assets/javascripts/cooperative/modals/upload-file-modal.js index 835ccd383..302c534b6 100644 --- a/app/assets/javascripts/cooperative/modals/upload-file-modal.js +++ b/app/assets/javascripts/cooperative/modals/upload-file-modal.js @@ -42,7 +42,7 @@ $(document).on('turbolinks:load', function() { $.ajax({ method: 'POST', dataType: 'json', - url: '/cooperatives/files?' + formDataString, + url: '/cooperative/files?' + formDataString, data: new FormData($form[0]), processData: false, contentType: false, diff --git a/app/assets/stylesheets/admins/common.scss b/app/assets/stylesheets/admins/common.scss index aabe6085c..3437c3049 100644 --- a/app/assets/stylesheets/admins/common.scss +++ b/app/assets/stylesheets/admins/common.scss @@ -47,6 +47,12 @@ } } + .image-preview-container { + display: flex; + flex-direction: column; + align-items: center; + } + .action-container { & > .action { padding: 0 3px; diff --git a/app/assets/stylesheets/cooperative/common.scss b/app/assets/stylesheets/cooperative/common.scss index 488dd4caa..8e04e2328 100644 --- a/app/assets/stylesheets/cooperative/common.scss +++ b/app/assets/stylesheets/cooperative/common.scss @@ -47,6 +47,12 @@ } } + .image-preview-container { + display: flex; + flex-direction: column; + align-items: center; + } + .action-container { & > .action { padding: 0 3px; diff --git a/app/controllers/concerns/base/render_helper.rb b/app/controllers/concerns/base/render_helper.rb index e0aa49ac1..4d246c6cc 100644 --- a/app/controllers/concerns/base/render_helper.rb +++ b/app/controllers/concerns/base/render_helper.rb @@ -8,6 +8,7 @@ module Base::RenderHelper def render_forbidden render_by_format(html: -> { current_user&.business? ? render('shared/403') : redirect_to('/403') }, + js: -> { render_js_error(I18n.t('error.forbidden'), type: :notify) }, json: -> { render status: 403, json: { messages: I18n.t('error.forbidden') } } ) end diff --git a/app/controllers/cooperative/base_controller.rb b/app/controllers/cooperative/base_controller.rb index 556cd7aa9..5ab08582d 100644 --- a/app/controllers/cooperative/base_controller.rb +++ b/app/controllers/cooperative/base_controller.rb @@ -16,7 +16,7 @@ class Cooperative::BaseController < ApplicationController private def current_laboratory - @_current_laboratory ||= Laboratory.find_by_subdomain(request.subdomain) + @_current_laboratory ||= Laboratory.find_by_subdomain('hut' || request.subdomain) end def current_setting_or_default(name) diff --git a/app/controllers/cooperative/files_controller.rb b/app/controllers/cooperative/files_controller.rb index 56710a968..20c0b0d5f 100644 --- a/app/controllers/cooperative/files_controller.rb +++ b/app/controllers/cooperative/files_controller.rb @@ -1,5 +1,5 @@ class Cooperative::FilesController < Cooperative::BaseController - before_action :convert_file!, only: [:create] + before_action :convert_file!, :check_permission!, only: [:create] def create File.delete(file_path) if File.exist?(file_path) # 删除之前的文件 @@ -29,6 +29,22 @@ class Cooperative::FilesController < Cooperative::BaseController render_error(ex.message) end + def check_permission! + permission = + case params[:source_type].to_s + when '' then false + when 'Shixun' then + current_laboratory.laboratory_shixuns.exists?(ownership: true, shixun_id: params[:source_id]) + when 'Subject' then + current_laboratory.laboratory_subjects.exists?(ownership: true, subject_id: params[:source_id]) + else true + end + + return if permission + + render_forbidden + end + def file_path @_file_path ||= begin case params[:source_type].to_s diff --git a/app/controllers/cooperative/laboratory_shixuns_controller.rb b/app/controllers/cooperative/laboratory_shixuns_controller.rb new file mode 100644 index 000000000..e428416da --- /dev/null +++ b/app/controllers/cooperative/laboratory_shixuns_controller.rb @@ -0,0 +1,39 @@ +class Cooperative::LaboratoryShixunsController < Cooperative::BaseController + before_action :check_shixun_ownership!, only: [:edit, :update] + + helper_method :current_laboratory_shixun + + def index + laboratory_shixuns = Admins::LaboratoryShixunQuery.call(current_laboratory, params) + @laboratory_shixuns = paginate laboratory_shixuns.includes(shixun: %i[tag_repertoires user]) + end + + def edit + end + + def update + + end + + def homepage + current_laboratory_shixun.update!(homepage: true) + render_ok + end + + def cancel_homepage + current_laboratory_shixun.update!(homepage: false) + render_ok + end + + private + + def current_laboratory_shixun + @_current_laboratory_shixun ||= current_laboratory.laboratory_shixuns.find(params[:id]) + end + + def check_shixun_ownership! + return if current_laboratory_shixun.ownership? + + render_forbidden + end +end \ No newline at end of file diff --git a/app/controllers/cooperative/laboratory_subjects_controller.rb b/app/controllers/cooperative/laboratory_subjects_controller.rb new file mode 100644 index 000000000..77088c223 --- /dev/null +++ b/app/controllers/cooperative/laboratory_subjects_controller.rb @@ -0,0 +1,46 @@ +class Cooperative::LaboratorySubjectsController < Cooperative::BaseController + before_action :check_subject_ownership!, only: [:edit, :update] + + helper_method :current_laboratory_subject + + def index + laboratory_subjects = Admins::LaboratorySubjectQuery.call(current_laboratory, params) + + includes_tables = { subject: [:repertoire, :subject_level_system, user: {user_extension: :school}] } + @laboratory_subjects = paginate(laboratory_subjects.includes(includes_tables)) + end + + def edit + @laboratory_subject = current_laboratory_subject + end + + def update + current_laboratory_subject.subject.update!(update_params) + end + + def homepage + current_laboratory_subject.update!(homepage: true) + render_ok + end + + def cancel_homepage + current_laboratory_subject.update!(homepage: false) + render_ok + end + + private + + def current_laboratory_subject + @_current_laboratory_subject ||= current_laboratory.laboratory_subjects.find(params[:id]) + end + + def check_subject_ownership! + return if current_laboratory_subject.ownership? + + render_forbidden + end + + def update_params + params.require(:laboratory_subject).permit(:repertoire_id, :subject_level_system_id) + end +end \ No newline at end of file diff --git a/app/models/laboratory_subject.rb b/app/models/laboratory_subject.rb index fa5862712..e56cd94bd 100644 --- a/app/models/laboratory_subject.rb +++ b/app/models/laboratory_subject.rb @@ -1,4 +1,6 @@ class LaboratorySubject < ApplicationRecord belongs_to :laboratory belongs_to :subject + + delegate :repertoire_id, :subject_level_system_id, :student_count, to: :subject end \ No newline at end of file diff --git a/app/views/admins/laboratory_shixuns/shared/_list.html.erb b/app/views/admins/laboratory_shixuns/shared/_list.html.erb index 8463e2d49..e1244c472 100644 --- a/app/views/admins/laboratory_shixuns/shared/_list.html.erb +++ b/app/views/admins/laboratory_shixuns/shared/_list.html.erb @@ -7,8 +7,8 @@ 封面 创建者 状态 - 执行时间 - 操作 + 执行时间 + 操作 diff --git a/app/views/cooperative/laboratory_shixuns/index.html.erb b/app/views/cooperative/laboratory_shixuns/index.html.erb new file mode 100644 index 000000000..85781a85a --- /dev/null +++ b/app/views/cooperative/laboratory_shixuns/index.html.erb @@ -0,0 +1,42 @@ +<% define_breadcrumbs do %> + <% add_breadcrumb('实训项目') %> +<% end %> + + +
    + <%= form_tag(cooperative_laboratory_shixuns_path, method: :get, class: 'form-inline search-form', remote: true) do %> +
    + + <% status_options = [['全部', ''], ['编辑中', 0], ['审核中', 1], ['已发布', 2], ['已关闭', 3]] %> + <%= select_tag(:status, options_for_select(status_options), class: 'form-control') %> +
    + +
    + + <%= select_tag(:tag_id, options_for_select(MirrorRepository.pluck(:type_name,:id).unshift(['']), params[:tag_id]), class: 'form-control') %> +
    + + <%= text_field_tag(:keyword, params[:keyword], class: 'form-control col-12 col-md-2 mr-3', placeholder: '创建者/实训名称检索') %> + +
    + <%= hidden_field_tag(:homepage, false, id:'') %> + <%= check_box_tag(:homepage, true, params[:homepage].to_s == 'true', class: 'form-check-input') %> + +
    + +
    + <%= hidden_field_tag(:ownership, false, id:'') %> + <%= check_box_tag(:ownership, true, params[:ownership].to_s == 'true', class: 'form-check-input') %> + +
    + + <%= submit_tag('搜索', class: 'btn btn-primary ml-3', 'data-disable-with': '搜索中...') %> + <%= link_to '清空', cooperative_laboratory_shixuns_path, class: 'btn btn-default','data-disable-with': '清空中...' %> + <% end %> +
    + +
    + <%= render partial: 'cooperative/laboratory_shixuns/shared/list', locals: { laboratory_shixuns: @laboratory_shixuns } %> +
    + +<%= render(partial: 'cooperative/shared/modal/upload_file_modal', locals: { title: '上传封面', accept: 'image/*' }) %> \ No newline at end of file diff --git a/app/views/cooperative/laboratory_shixuns/index.js.erb b/app/views/cooperative/laboratory_shixuns/index.js.erb new file mode 100644 index 000000000..927609f6c --- /dev/null +++ b/app/views/cooperative/laboratory_shixuns/index.js.erb @@ -0,0 +1 @@ +$('.laboratory-shixun-list-container').html("<%= j(render partial: 'cooperative/laboratory_shixuns/shared/list', locals: { laboratory_shixuns: @laboratory_shixuns }) %>"); \ No newline at end of file diff --git a/app/views/cooperative/laboratory_shixuns/shared/_list.html.erb b/app/views/cooperative/laboratory_shixuns/shared/_list.html.erb new file mode 100644 index 000000000..1501e9f3b --- /dev/null +++ b/app/views/cooperative/laboratory_shixuns/shared/_list.html.erb @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + <% if laboratory_shixuns.present? %> + <% laboratory_shixuns.each do |laboratory_shixun| %> + + <%= render partial: 'cooperative/laboratory_shixuns/shared/td', locals: { laboratory_shixun: laboratory_shixun } %> + + <% end %> + <% else %> + <%= render 'cooperative/shared/no_data_for_table' %> + <% end %> + +
    实训名称技术平台技术体系封面创建者状态执行时间操作
    + +<%= render partial: 'cooperative/shared/paginate', locals: { objects: laboratory_shixuns } %> \ No newline at end of file diff --git a/app/views/cooperative/laboratory_shixuns/shared/_td.html.erb b/app/views/cooperative/laboratory_shixuns/shared/_td.html.erb new file mode 100644 index 000000000..e7f87057d --- /dev/null +++ b/app/views/cooperative/laboratory_shixuns/shared/_td.html.erb @@ -0,0 +1,32 @@ +<%- shixun = laboratory_shixun.shixun -%> + + + <%= link_to "/shixuns/#{shixun.identifier}", target: '_blank' do %> + <%= shixun.name %> + 首页 + 自建 + <% end %> + +<%= shixun.shixun_main_name %> + + <% shixun.tag_repertoires.each do |tag| %> + <%= tag.name %> + <% end %> + + + <% imageExists = Util::FileManage.exists?(shixun) %> + <%= image_tag(imageExists ? Util::FileManage.source_disk_file_url(shixun) : '', height: 40, class: "preview-image shixun-image-#{shixun.id}", data: { toggle: 'tooltip', title: '点击预览' }, style: imageExists ? '' : 'display:none') %> + <% if laboratory_shixun.ownership? %> + <%= javascript_void_link imageExists ? '重新上传' : '上传图片', class: 'action upload-shixun-image-action', data: { source_id: shixun.id, source_type: 'Shixun', toggle: 'modal', target: '.cooperative-upload-file-modal' } %> + <% end %> + +<%= link_to shixun.user&.real_name, "/users/#{shixun.user&.login}", target:'_blank' %> +<%= t("shixun.status.#{shixun.status}") %> +<%= shixun.excute_time %> + + <% if laboratory_shixun.ownership? %> + <%#= link_to('修改', cooperative_laboratory_subjects_path(laboratory_shixun)) %> + <% end %> + <%= javascript_void_link('首页展示', class: 'action homepage-show-action', data: { id: laboratory_shixun.id }, style: laboratory_shixun.homepage? ? 'display:none' : '') %> + <%= javascript_void_link('取消首页展示', class: 'action homepage-hide-action', data: { id: laboratory_shixun.id }, style: laboratory_shixun.homepage? ? '' : 'display:none') %> + \ No newline at end of file diff --git a/app/views/cooperative/laboratory_subjects/edit.js.erb b/app/views/cooperative/laboratory_subjects/edit.js.erb new file mode 100644 index 000000000..146879309 --- /dev/null +++ b/app/views/cooperative/laboratory_subjects/edit.js.erb @@ -0,0 +1,2 @@ +$('.cooperative-modal-container').html("<%= j( render partial: 'cooperative/laboratory_subjects/shared/edit_subject_modal', locals: { laboratory_subject: @laboratory_subject } ) %>"); +$('.modal.cooperative-edit-subject-modal').modal('show'); \ No newline at end of file diff --git a/app/views/cooperative/laboratory_subjects/index.html.erb b/app/views/cooperative/laboratory_subjects/index.html.erb new file mode 100644 index 000000000..3ed30b4f2 --- /dev/null +++ b/app/views/cooperative/laboratory_subjects/index.html.erb @@ -0,0 +1,42 @@ +<% define_breadcrumbs do %> + <% add_breadcrumb('实践课程') %> +<% end %> + + +
    + <%= form_tag(cooperative_laboratory_subjects_path, method: :get, class: 'form-inline search-form', remote: true) do %> +
    + + <% status_options = [['全部', ''], ['编辑中', 0], ['审核中', 1], ['已发布', 2]] %> + <%= select_tag(:status, options_for_select(status_options), class: 'form-control') %> +
    + +
    + + <%= select_tag :school_id, options_for_select([''], params[:school_id]), class: 'form-control school-select flex-1' %> +
    + + <%= text_field_tag(:keyword, params[:keyword], class: 'form-control col-12 col-md-2 mr-3', placeholder: '创建者/课程名称检索') %> + +
    + <%= hidden_field_tag(:homepage, false, id:'') %> + <%= check_box_tag(:homepage, true, params[:homepage].to_s == 'true', class: 'form-check-input') %> + +
    + +
    + <%= hidden_field_tag(:ownership, false, id:'') %> + <%= check_box_tag(:ownership, true, params[:ownership].to_s == 'true', class: 'form-check-input') %> + +
    + + <%= submit_tag('搜索', class: 'btn btn-primary ml-3', 'data-disable-with': '搜索中...') %> + <%= link_to '清空', cooperative_laboratory_subjects_path(current_laboratory), class: 'btn btn-default','data-disable-with': '清空中...' %> + <% end %> +
    + +
    + <%= render partial: 'cooperative/laboratory_subjects/shared/list', locals: { laboratory_subjects: @laboratory_subjects } %> +
    + +<%= render(partial: 'cooperative/shared/modal/upload_file_modal', locals: { title: '上传封面', accept: 'image/*' }) %> \ No newline at end of file diff --git a/app/views/cooperative/laboratory_subjects/index.js.erb b/app/views/cooperative/laboratory_subjects/index.js.erb new file mode 100644 index 000000000..557182485 --- /dev/null +++ b/app/views/cooperative/laboratory_subjects/index.js.erb @@ -0,0 +1 @@ +$('.laboratory-subject-list-container').html("<%= j(render partial: 'cooperative/laboratory_subjects/shared/list', locals: { laboratory_subjects: @laboratory_subjects }) %>"); \ No newline at end of file diff --git a/app/views/cooperative/laboratory_subjects/shared/_edit_subject_modal.html.erb b/app/views/cooperative/laboratory_subjects/shared/_edit_subject_modal.html.erb new file mode 100644 index 000000000..02ff4acbc --- /dev/null +++ b/app/views/cooperative/laboratory_subjects/shared/_edit_subject_modal.html.erb @@ -0,0 +1,31 @@ + \ No newline at end of file diff --git a/app/views/cooperative/laboratory_subjects/shared/_list.html.erb b/app/views/cooperative/laboratory_subjects/shared/_list.html.erb new file mode 100644 index 000000000..2b972a959 --- /dev/null +++ b/app/views/cooperative/laboratory_subjects/shared/_list.html.erb @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + <% if laboratory_subjects.present? %> + <% laboratory_subjects.each do |laboratory_subject| %> + + <%= render partial: 'cooperative/laboratory_subjects/shared/td', locals: { laboratory_subject: laboratory_subject } %> + + <% end %> + <% else %> + <%= render 'cooperative/shared/no_data_for_table' %> + <% end %> + +
    课程名称技术体系等级体系封面创建者单位状态操作
    + +<%= render partial: 'cooperative/shared/paginate', locals: { objects: laboratory_subjects } %> \ No newline at end of file diff --git a/app/views/cooperative/laboratory_subjects/shared/_td.html.erb b/app/views/cooperative/laboratory_subjects/shared/_td.html.erb new file mode 100644 index 000000000..301bbd6a7 --- /dev/null +++ b/app/views/cooperative/laboratory_subjects/shared/_td.html.erb @@ -0,0 +1,28 @@ +<%- subject = laboratory_subject.subject -%> + + + <%= link_to(subject.name, "/paths/#{subject.id}", target: '_blank') %> + 首页 + 自建 + +<%= display_text subject.repertoire&.name %> +<%= display_text subject.subject_level_system&.name %> + + <% image_exists = Util::FileManage.exists?(subject) %> + <%= image_tag(image_exists ? Util::FileManage.source_disk_file_url(subject) : '', height: 40, class: "w-100 preview-image subject-image-#{subject.id}", style: image_exists ? '' : 'display:none') %> + <% if laboratory_subject.ownership? %> + <%= javascript_void_link image_exists ? '重新上传' : '上传图片', class: 'action upload-subject-image-action', data: { source_id: subject.id, source_type: 'Subject', toggle: 'modal', target: '.cooperative-upload-file-modal' } %> + <% end %> + +<%= link_to subject.user&.real_name, "/users/#{subject.user&.login}", target:'_blank' %> +<%= subject.user.school_name %> +<%= display_subject_status(subject) %> + + + <% if laboratory_subject.ownership? %> + <%= link_to('修改', edit_cooperative_laboratory_subject_path(laboratory_subject), remote: true) %> + <% end %> + + <%= javascript_void_link('首页展示', class: 'action homepage-show-action', data: { id: laboratory_subject.id }, style: laboratory_subject.homepage? ? 'display:none' : '') %> + <%= javascript_void_link('取消首页展示', class: 'action homepage-hide-action', data: { id: laboratory_subject.id }, style: laboratory_subject.homepage? ? '' : 'display:none') %> + \ No newline at end of file diff --git a/app/views/cooperative/laboratory_subjects/update.js.erb b/app/views/cooperative/laboratory_subjects/update.js.erb new file mode 100644 index 000000000..3b98e6e97 --- /dev/null +++ b/app/views/cooperative/laboratory_subjects/update.js.erb @@ -0,0 +1,3 @@ +$('.laboratory-subject-list-container .laboratory-subject-item-<%= current_laboratory_subject.id %>').html("<%= j(render partial: 'cooperative/laboratory_subjects/shared/td', locals: { laboratory_subject: current_laboratory_subject }) %>"); +$('.cooperative-modal-container .modal.cooperative-edit-subject-modal').modal('hide'); +show_success_flash(); diff --git a/app/views/cooperative/shared/_sidebar.html.erb b/app/views/cooperative/shared/_sidebar.html.erb index 40a6b2de4..81ff12b0a 100644 --- a/app/views/cooperative/shared/_sidebar.html.erb +++ b/app/views/cooperative/shared/_sidebar.html.erb @@ -17,6 +17,8 @@
  • <%= sidebar_item(edit_cooperative_laboratory_setting_path, '网站设置', icon: 'cogs', controller: 'cooperative-laboratory_settings') %>
  • <%= sidebar_item(cooperative_carousels_path, '轮播图设置', icon: 'image', controller: 'cooperative-carousels') %>
  • <%= sidebar_item(cooperative_laboratory_users_path, '管理员列表', icon: 'user', controller: 'cooperative-laboratory_users') %>
  • +
  • <%= sidebar_item(cooperative_laboratory_shixuns_path, '实训项目', icon: 'window-restore', controller: 'cooperative-laboratory_shixuns') %>
  • +
  • <%= sidebar_item(cooperative_laboratory_subjects_path, '实践课程', icon: 'th-list', controller: 'cooperative-laboratory_subjects') %>
  • <%= sidebar_item('/', '返回主页', icon: 'sign-out', controller: 'root') %>
  • \ No newline at end of file diff --git a/app/views/cooperative/shared/modal/_upload_file_modal.html.erb b/app/views/cooperative/shared/modal/_upload_file_modal.html.erb index 8cd22a362..587002403 100644 --- a/app/views/cooperative/shared/modal/_upload_file_modal.html.erb +++ b/app/views/cooperative/shared/modal/_upload_file_modal.html.erb @@ -11,12 +11,13 @@
    <%= hidden_field_tag(:source_type, nil) %> <%= hidden_field_tag(:source_id, nil) %> + <%= hidden_field_tag(:suffix, nil) %>
    文件
    - +
    diff --git a/config/routes.rb b/config/routes.rb index 7ceb28128..e111ed7ba 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1121,12 +1121,25 @@ Rails.application.routes.draw do namespace :cooperative do # get '/', to: 'dashboards#show' get '/', to: 'laboratory_settings#edit' + resources :files, only: [:create] resources :users, only: [:index] resources :laboratory_users, only: [:index, :create, :destroy] resource :laboratory_setting, only: [:edit, :update] resources :carousels, only: [:index, :create, :update, :destroy] do post :drag, on: :collection end + resources :laboratory_shixuns, only: [:index, :edit, :update] do + member do + post :homepage + post :cancel_homepage + end + end + resources :laboratory_subjects, only: [:index, :edit, :update] do + member do + post :homepage + post :cancel_homepage + end + end end resources :colleges, only: [] do diff --git a/public/assets/.sprockets-manifest-4627fa5586ef7fed55ca286af7c028e9.json b/public/assets/.sprockets-manifest-4627fa5586ef7fed55ca286af7c028e9.json index ddac4b0e6..7e2761c2d 100644 --- a/public/assets/.sprockets-manifest-4627fa5586ef7fed55ca286af7c028e9.json +++ b/public/assets/.sprockets-manifest-4627fa5586ef7fed55ca286af7c028e9.json @@ -1 +1 @@ -{"files":{"admin-cd9ca8bacc973ce2dbace30c97f6c40bc08e2c2ee44972f668e738e1902c0121.js":{"logical_path":"admin.js","mtime":"2019-09-11T16:20:07+08:00","size":4350881,"digest":"cd9ca8bacc973ce2dbace30c97f6c40bc08e2c2ee44972f668e738e1902c0121","integrity":"sha256-zZyousyXPOLbrOMMl/bEC8COLC7kSXL2aOc44ZAsASE="},"admin-a1b3356efe50ff4717cf22475639b5333c5354ba03fd107c9b7a8d4ae76f47aa.css":{"logical_path":"admin.css","mtime":"2019-09-11T16:20:07+08:00","size":773445,"digest":"a1b3356efe50ff4717cf22475639b5333c5354ba03fd107c9b7a8d4ae76f47aa","integrity":"sha256-obM1bv5Q/0cXzyJHVjm1MzxTVLoD/RB8m3qNSudvR6o="},"font-awesome/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot":{"logical_path":"font-awesome/fontawesome-webfont.eot","mtime":"2019-08-14T17:22:43+08:00","size":165742,"digest":"7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979","integrity":"sha256-e/yrbbmdXPvxcFygU23ceFhUMsxfpBu9etDwCQM7KXk="},"font-awesome/fontawesome-webfont-2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe.woff2":{"logical_path":"font-awesome/fontawesome-webfont.woff2","mtime":"2019-08-14T17:22:43+08:00","size":77160,"digest":"2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe","integrity":"sha256-Kt78vAQefRj88tQXh53FoJmXqmTWdbejxLbOM9oT8/4="},"font-awesome/fontawesome-webfont-ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f07.woff":{"logical_path":"font-awesome/fontawesome-webfont.woff","mtime":"2019-08-14T17:22:43+08:00","size":98024,"digest":"ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f07","integrity":"sha256-ugxZ3rVFD1y0Gz+TYJ7i0NmVQVh33foiPoqKdTNHTwc="},"font-awesome/fontawesome-webfont-aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8.ttf":{"logical_path":"font-awesome/fontawesome-webfont.ttf","mtime":"2019-08-14T17:22:43+08:00","size":165548,"digest":"aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8","integrity":"sha256-qljzPyOaD7AvXHpsRcBD16msmgkzNYBmlOzW1O3A1qg="},"font-awesome/fontawesome-webfont-ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4.svg":{"logical_path":"font-awesome/fontawesome-webfont.svg","mtime":"2019-08-14T17:22:43+08:00","size":444379,"digest":"ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4","integrity":"sha256-rWFXkmwWIrpOHQPUePFUE2hSS/xG9R5C/g2UX37zI+Q="},"college-18f5e8400331634e898a35acc2187815c096c25e0ab74aba341ae916166cd287.js":{"logical_path":"college.js","mtime":"2019-11-06T11:34:24+08:00","size":3352744,"digest":"18f5e8400331634e898a35acc2187815c096c25e0ab74aba341ae916166cd287","integrity":"sha256-GPXoQAMxY06JijWswhh4FcCWwl4Kt0q6NBrpFhZs0oc="},"college-944d4273f62c7538368b9017fdd3387b5e3bea31a87873770eb231324546d4d9.css":{"logical_path":"college.css","mtime":"2019-09-11T16:20:07+08:00","size":546841,"digest":"944d4273f62c7538368b9017fdd3387b5e3bea31a87873770eb231324546d4d9","integrity":"sha256-lE1Cc/YsdTg2i5AX/dM4e1476jGoeHN3DrIxMkVG1Nk="},"logo-7ff112568709bf97f9898fe87249b7a8f200ff1f48d537d85af87215f1870423.png":{"logical_path":"logo.png","mtime":"2019-09-03T08:55:53+08:00","size":2816,"digest":"7ff112568709bf97f9898fe87249b7a8f200ff1f48d537d85af87215f1870423","integrity":"sha256-f/ESVocJv5f5iY/ockm3qPIA/x9I1TfYWvhyFfGHBCM="},"application-9cfbc3d792599a1d0de5c7b84209e1c2b2e60336f0f01e19f0581663918708fb.js":{"logical_path":"application.js","mtime":"2019-11-06T11:34:24+08:00","size":600706,"digest":"9cfbc3d792599a1d0de5c7b84209e1c2b2e60336f0f01e19f0581663918708fb","integrity":"sha256-nPvD15JZmh0N5ce4QgnhwrLmAzbw8B4Z8FgWY5GHCPs="},"application-5eb87c6e13676d0183317debce17fade27e68c4acee28c419438da15d53c94f2.css":{"logical_path":"application.css","mtime":"2019-09-11T16:20:07+08:00","size":1844002,"digest":"5eb87c6e13676d0183317debce17fade27e68c4acee28c419438da15d53c94f2","integrity":"sha256-Xrh8bhNnbQGDMX3rzhf63ifmjErO4oxBlDjaFdU8lPI="},"admin-c9e5ebe6191548550e27514196ea125cfbb402820ec125a0c9acf99d2d378fe4.js":{"logical_path":"admin.js","mtime":"2019-09-21T15:28:08+08:00","size":4382031,"digest":"c9e5ebe6191548550e27514196ea125cfbb402820ec125a0c9acf99d2d378fe4","integrity":"sha256-yeXr5hkVSFUOJ1FBluoSXPu0AoIOwSWgyaz5nS03j+Q="},"admin-59c59f8cae8bef4a8359286c985458110c9d03ea121516595c988943f4717c38.css":{"logical_path":"admin.css","mtime":"2019-09-21T14:49:04+08:00","size":840093,"digest":"59c59f8cae8bef4a8359286c985458110c9d03ea121516595c988943f4717c38","integrity":"sha256-WcWfjK6L70qDWShsmFRYEQydA+oSFRZZXJiJQ/RxfDg="},"college-38f953d6ba5b85d3fab63cb3c2bbf0d057ccc6454d07cfaafac3b06da37b8437.css":{"logical_path":"college.css","mtime":"2019-09-16T13:56:09+08:00","size":579109,"digest":"38f953d6ba5b85d3fab63cb3c2bbf0d057ccc6454d07cfaafac3b06da37b8437","integrity":"sha256-OPlT1rpbhdP6tjyzwrvw0FfMxkVNB8+q+sOwbaN7hDc="},"application-646b1158a4e8c1f13e684d6fe9025abc75f8d3ba5256e440802c0398223374f3.css":{"logical_path":"application.css","mtime":"2019-09-21T14:49:04+08:00","size":1988767,"digest":"646b1158a4e8c1f13e684d6fe9025abc75f8d3ba5256e440802c0398223374f3","integrity":"sha256-ZGsRWKTowfE+aE1v6QJavHX407pSVuRAgCwDmCIzdPM="},"admin-a47e37c0ec7cf5f22380249776d1e82d65b6b6aa272ed7389185aa200fa40751.js":{"logical_path":"admin.js","mtime":"2019-09-25T15:33:05+08:00","size":4383107,"digest":"a47e37c0ec7cf5f22380249776d1e82d65b6b6aa272ed7389185aa200fa40751","integrity":"sha256-pH43wOx89fIjgCSXdtHoLWW2tqonLtc4kYWqIA+kB1E="},"admin-432c4eac09b036c57ff1e88d902b8aa7df81164e4b419bac557cf1366c1d3ad9.js":{"logical_path":"admin.js","mtime":"2019-09-25T15:35:20+08:00","size":4383103,"digest":"432c4eac09b036c57ff1e88d902b8aa7df81164e4b419bac557cf1366c1d3ad9","integrity":"sha256-QyxOrAmwNsV/8eiNkCuKp9+BFk5LQZusVXzxNmwdOtk="},"admin-978e5ce607f77c26814a174f480da79ac246c2201868ef84654aa03bb6727b5a.js":{"logical_path":"admin.js","mtime":"2019-09-30T14:43:41+08:00","size":4387200,"digest":"978e5ce607f77c26814a174f480da79ac246c2201868ef84654aa03bb6727b5a","integrity":"sha256-l45c5gf3fCaBShdPSA2nmsJGwiAYaO+EZUqgO7Zye1o="},"admin-896281f4731722b0c084dbb1af21d0f34a5bc142d58aff57b391864ab71ddca7.css":{"logical_path":"admin.css","mtime":"2019-09-30T14:43:41+08:00","size":842269,"digest":"896281f4731722b0c084dbb1af21d0f34a5bc142d58aff57b391864ab71ddca7","integrity":"sha256-iWKB9HMXIrDAhNuxryHQ80pbwULViv9Xs5GGSrcd3Kc="},"application-97f313e9bb7d25476649f7d7215959cf421480fd0a3785d1956953bf94a1e8bd.css":{"logical_path":"application.css","mtime":"2019-09-30T14:43:41+08:00","size":1993118,"digest":"97f313e9bb7d25476649f7d7215959cf421480fd0a3785d1956953bf94a1e8bd","integrity":"sha256-l/MT6bt9JUdmSffXIVlZz0IUgP0KN4XRlWlTv5Sh6L0="},"admin-2cdb23442fa735025385b88f2900df04fef38b61530041a6dbe375ef0f0ae888.js":{"logical_path":"admin.js","mtime":"2019-10-11T14:38:33+08:00","size":4394616,"digest":"2cdb23442fa735025385b88f2900df04fef38b61530041a6dbe375ef0f0ae888","integrity":"sha256-LNsjRC+nNQJThbiPKQDfBP7zi2FTAEGm2+N17w8K6Ig="},"admin-2c2854b9a02158ded5a809aaf7144a8630b10354ab4e56fecc4dffcc713796cc.css":{"logical_path":"admin.css","mtime":"2019-10-10T17:12:05+08:00","size":846514,"digest":"2c2854b9a02158ded5a809aaf7144a8630b10354ab4e56fecc4dffcc713796cc","integrity":"sha256-LChUuaAhWN7VqAmq9xRKhjCxA1SrTlb+zE3/zHE3lsw="},"application-50059ae929866043b47015128702fcfba53d32a2df148e64e1d961c10651c6af.css":{"logical_path":"application.css","mtime":"2019-10-10T17:12:05+08:00","size":2001607,"digest":"50059ae929866043b47015128702fcfba53d32a2df148e64e1d961c10651c6af","integrity":"sha256-UAWa6SmGYEO0cBUShwL8+6U9MqLfFI5k4dlhwQZRxq8="},"admin-992cde09b6d17f00a49576ae2d9f1ced127244ba401ef5b7d677cab9741688d2.js":{"logical_path":"admin.js","mtime":"2019-10-16T16:11:32+08:00","size":4394790,"digest":"992cde09b6d17f00a49576ae2d9f1ced127244ba401ef5b7d677cab9741688d2","integrity":"sha256-mSzeCbbRfwCklXauLZ8c7RJyRLpAHvW31nfKuXQWiNI="},"admin-84f2a7791e275d6f820514370b3f968176b994b9dd7b8c3ba8bf48336b03f257.css":{"logical_path":"admin.css","mtime":"2019-10-16T19:25:40+08:00","size":846676,"digest":"84f2a7791e275d6f820514370b3f968176b994b9dd7b8c3ba8bf48336b03f257","integrity":"sha256-hPKneR4nXW+CBRQ3Cz+WgXa5lLnde4w7qL9IM2sD8lc="},"application-ef6bab84852baaf69a91fe6af875b6e1b118c55b4c7d165665c488fac80c4997.css":{"logical_path":"application.css","mtime":"2019-10-16T19:25:40+08:00","size":2001931,"digest":"ef6bab84852baaf69a91fe6af875b6e1b118c55b4c7d165665c488fac80c4997","integrity":"sha256-72urhIUrqvaakf5q+HW24bEYxVtMfRZWZcSI+sgMSZc="},"admin-c99030d305662f740aa84b6c925a1adbbaadaa07fd74e2655e64d44b4b97fc4a.js":{"logical_path":"admin.js","mtime":"2019-10-17T09:44:58+08:00","size":4394897,"digest":"c99030d305662f740aa84b6c925a1adbbaadaa07fd74e2655e64d44b4b97fc4a","integrity":"sha256-yZAw0wVmL3QKqEtskloa27qtqgf9dOJlXmTUS0uX/Eo="},"admin-534bde871d67f4d6fc8da611917d78be4066fc7593ba53ee92aa17068a199d6d.css":{"logical_path":"admin.css","mtime":"2019-10-17T10:22:41+08:00","size":846699,"digest":"534bde871d67f4d6fc8da611917d78be4066fc7593ba53ee92aa17068a199d6d","integrity":"sha256-U0vehx1n9Nb8jaYRkX14vkBm/HWTulPukqoXBooZnW0="},"cooperative-04cd6a60d41220d38ee45ce40b1d004e1d0bcd87c132fb1a7bab6144c1deb8d7.js":{"logical_path":"cooperative.js","mtime":"2019-10-17T10:17:56+08:00","size":4330072,"digest":"04cd6a60d41220d38ee45ce40b1d004e1d0bcd87c132fb1a7bab6144c1deb8d7","integrity":"sha256-BM1qYNQSINOO5FzkCx0ATh0LzYfBMvsae6thRMHeuNc="},"cooperative-a345bbfd8e38b70c9285ecc1747012ffcde429187983e2aea5657abb56b9b4f3.css":{"logical_path":"cooperative.css","mtime":"2019-10-17T10:21:41+08:00","size":830628,"digest":"a345bbfd8e38b70c9285ecc1747012ffcde429187983e2aea5657abb56b9b4f3","integrity":"sha256-o0W7/Y44twyShezBdHAS/83kKRh5g+KupWV6u1a5tPM="},"application-0e417478d56f42467e857cd186b29cbbc0d6c7c6e85c8a6f42f39ac618943de8.css":{"logical_path":"application.css","mtime":"2019-09-03T08:55:53+08:00","size":442932,"digest":"0e417478d56f42467e857cd186b29cbbc0d6c7c6e85c8a6f42f39ac618943de8","integrity":"sha256-DkF0eNVvQkZ+hXzRhrKcu8DWx8boXIpvQvOaxhiUPeg="},"cooperative-149f47b8675d60a8014ccff50f00f932ff69e2be286ffb74343bc4a3effb135b.js":{"logical_path":"cooperative.js","mtime":"2019-10-17T14:03:03+08:00","size":4338033,"digest":"149f47b8675d60a8014ccff50f00f932ff69e2be286ffb74343bc4a3effb135b","integrity":"sha256-FJ9HuGddYKgBTM/1DwD5Mv9p4r4ob/t0NDvEo+/7E1s="},"cooperative-6273b766d6ef11dd56174d868bab55e7f17af17546c888d2ba0dd0a6bcda76c8.css":{"logical_path":"cooperative.css","mtime":"2019-10-17T11:13:07+08:00","size":832914,"digest":"6273b766d6ef11dd56174d868bab55e7f17af17546c888d2ba0dd0a6bcda76c8","integrity":"sha256-YnO3ZtbvEd1WF02Gi6tV5/F68XVGyIjSug3Qprzadsg="},"admin-82f66cc80b5649c6530a562567f28fe8d05f7bc3b8221e0695b2216255c52ba6.js":{"logical_path":"admin.js","mtime":"2019-10-21T13:51:43+08:00","size":4397012,"digest":"82f66cc80b5649c6530a562567f28fe8d05f7bc3b8221e0695b2216255c52ba6","integrity":"sha256-gvZsyAtWScZTClYlZ/KP6NBfe8O4Ih4GlbIhYlXFK6Y="},"admin-1b5728d94f6bccfbcef452a760d94c3b6f31966bc65d7f89be077fc2ea512bec.js":{"logical_path":"admin.js","mtime":"2019-10-21T16:41:06+08:00","size":4397437,"digest":"1b5728d94f6bccfbcef452a760d94c3b6f31966bc65d7f89be077fc2ea512bec","integrity":"sha256-G1co2U9rzPvO9FKnYNlMO28xlmvGXX+Jvgd/wupRK+w="},"admin-c8c127fefa5eca98bca19832c246619318164e8f242635c07033e2423cc18a6f.js":{"logical_path":"admin.js","mtime":"2019-10-22T09:53:29+08:00","size":4408150,"digest":"c8c127fefa5eca98bca19832c246619318164e8f242635c07033e2423cc18a6f","integrity":"sha256-yMEn/vpeypi8oZgywkZhkxgWTo8kJjXAcDPiQjzBim8="},"admin-60d200c1fcdf61a60537d29ccf4479c6b1e5e904208870a63b8ee677c96b347e.css":{"logical_path":"admin.css","mtime":"2019-10-22T09:43:20+08:00","size":851150,"digest":"60d200c1fcdf61a60537d29ccf4479c6b1e5e904208870a63b8ee677c96b347e","integrity":"sha256-YNIAwfzfYaYFN9Kcz0R5xrHl6QQgiHCmO47md8lrNH4="},"cooperative-9fb7ac4ad44081fafd5ad2a3a1bfb7f4329ac96f28bc6446d1ff52b1e2e71286.js":{"logical_path":"cooperative.js","mtime":"2019-10-22T09:55:26+08:00","size":4338142,"digest":"9fb7ac4ad44081fafd5ad2a3a1bfb7f4329ac96f28bc6446d1ff52b1e2e71286","integrity":"sha256-n7esStRAgfr9WtKjob+39DKayW8ovGRG0f9SseLnEoY="},"admin-a11066081d60365ddf25d5867560d1ccdd3197dbe82a5b6e969cc940e3429ff1.js":{"logical_path":"admin.js","mtime":"2019-10-24T14:16:30+08:00","size":4524252,"digest":"a11066081d60365ddf25d5867560d1ccdd3197dbe82a5b6e969cc940e3429ff1","integrity":"sha256-oRBmCB1gNl3fJdWGdWDRzN0xl9voKltulpzJQONCn/E="},"admin-7ce3dd717f7d12fcbc64caf14200230a1e68db439be0ba1879077599ff2c32c6.css":{"logical_path":"admin.css","mtime":"2019-10-24T10:10:08+08:00","size":852772,"digest":"7ce3dd717f7d12fcbc64caf14200230a1e68db439be0ba1879077599ff2c32c6","integrity":"sha256-fOPdcX99Evy8ZMrxQgAjCh5o20Ob4LoYeQd1mf8sMsY="},"college-93904c65d52c125aec0a463b9fd98bedda0018b78707f806be22685cca5d3747.css":{"logical_path":"college.css","mtime":"2019-10-24T10:10:08+08:00","size":579546,"digest":"93904c65d52c125aec0a463b9fd98bedda0018b78707f806be22685cca5d3747","integrity":"sha256-k5BMZdUsElrsCkY7n9mL7doAGLeHB/gGviJoXMpdN0c="},"cooperative-84c79d26a36aff5b496551b6d21b1bfb726b1bbc4153435a366115e96c204e06.js":{"logical_path":"cooperative.js","mtime":"2019-10-24T14:17:15+08:00","size":4338225,"digest":"84c79d26a36aff5b496551b6d21b1bfb726b1bbc4153435a366115e96c204e06","integrity":"sha256-hMedJqNq/1tJZVG20hsb+3JrG7xBU0NaNmEV6WwgTgY="},"cooperative-10a9ee5177e196572573ccea460e133c748072e223fdb473d05ee72c991fbbe3.css":{"logical_path":"cooperative.css","mtime":"2019-10-24T10:10:08+08:00","size":833351,"digest":"10a9ee5177e196572573ccea460e133c748072e223fdb473d05ee72c991fbbe3","integrity":"sha256-EKnuUXfhllclc8zqRg4TPHSAcuIj/bRz0F7nLJkfu+M="},"admin-441d8f3722e5f73e5748aaeb6f517101474cb1eb48a99f119e561f08b9e9dc60.js":{"logical_path":"admin.js","mtime":"2019-10-24T16:08:56+08:00","size":4525031,"digest":"441d8f3722e5f73e5748aaeb6f517101474cb1eb48a99f119e561f08b9e9dc60","integrity":"sha256-RB2PNyLl9z5XSKrrb1FxAUdMsetIqZ8RnlYfCLnp3GA="},"admin-76c52986591f274f639ad48dfbb480a1aeeec7647b6fa28fa541e78a064b6316.css":{"logical_path":"admin.css","mtime":"2019-10-24T15:25:17+08:00","size":867945,"digest":"76c52986591f274f639ad48dfbb480a1aeeec7647b6fa28fa541e78a064b6316","integrity":"sha256-dsUphlkfJ09jmtSN+7SAoa7ux2R7b6KPpUHnigZLYxY="},"cooperative-6c4c663b6b5071535bab2b76cc5e05ab5682665857763a76bf4f01afef51be5a.js":{"logical_path":"cooperative.js","mtime":"2019-10-24T17:56:20+08:00","size":4339039,"digest":"6c4c663b6b5071535bab2b76cc5e05ab5682665857763a76bf4f01afef51be5a","integrity":"sha256-bExmO2tQcVNbqyt2zF4Fq1aCZlhXdjp2v08Br+9Rvlo="},"admin-c63acadd431434979db50540a0bf7e65c75e1de0d1b449919f2cce89a0548d43.js":{"logical_path":"admin.js","mtime":"2019-10-24T18:12:33+08:00","size":4533182,"digest":"c63acadd431434979db50540a0bf7e65c75e1de0d1b449919f2cce89a0548d43","integrity":"sha256-xjrK3UMUNJedtQVAoL9+ZcdeHeDRtEmRnyzOiaBUjUM="},"admin-bd832b9a35eb3743dde9218beab61f9bcde1508767ad68dbedb1c89a4bb65c3a.css":{"logical_path":"admin.css","mtime":"2019-10-24T17:56:20+08:00","size":861450,"digest":"bd832b9a35eb3743dde9218beab61f9bcde1508767ad68dbedb1c89a4bb65c3a","integrity":"sha256-vYMrmjXrN0Pd6SGL6rYfm83hUIdnrWjb7bHImku2XDo="},"college-fa202780f3e7f96cb9b5916c6f0d7dd9e03cb746864bbd2dd491ed001c30ad8f.css":{"logical_path":"college.css","mtime":"2019-10-24T17:56:20+08:00","size":571936,"digest":"fa202780f3e7f96cb9b5916c6f0d7dd9e03cb746864bbd2dd491ed001c30ad8f","integrity":"sha256-+iAngPPn+Wy5tZFsbw192eA8t0aGS70t1JHtABwwrY8="},"cooperative-4f233e8963b0bd80bc56b71c209d31464d314240ac8d686806baf99511c53ad0.css":{"logical_path":"cooperative.css","mtime":"2019-10-24T17:56:20+08:00","size":825741,"digest":"4f233e8963b0bd80bc56b71c209d31464d314240ac8d686806baf99511c53ad0","integrity":"sha256-TyM+iWOwvYC8VrccIJ0xRk0xQkCsjWhoBrr5lRHFOtA="},"application-8c9d6bb61c50908f584b3070c79aeb95f25c1166d39e07da5e95438b39ca0de9.css":{"logical_path":"application.css","mtime":"2019-10-23T14:16:56+08:00","size":436995,"digest":"8c9d6bb61c50908f584b3070c79aeb95f25c1166d39e07da5e95438b39ca0de9","integrity":"sha256-jJ1rthxQkI9YSzBwx5rrlfJcEWbTngfaXpVDiznKDek="},"admin-bf2bd889f02d15c4913aa260497d72afeb26d701aac49a4ef6a75619af030152.js":{"logical_path":"admin.js","mtime":"2019-10-25T10:12:17+08:00","size":4533673,"digest":"bf2bd889f02d15c4913aa260497d72afeb26d701aac49a4ef6a75619af030152","integrity":"sha256-vyvYifAtFcSROqJgSX1yr+sm1wGqxJpO9qdWGa8DAVI="},"admin-46e564d29ffae5c71ae9b5e36dc0bd5de57b10f396eb2005bfb9cf51e7744cdd.css":{"logical_path":"admin.css","mtime":"2019-10-25T10:12:17+08:00","size":870355,"digest":"46e564d29ffae5c71ae9b5e36dc0bd5de57b10f396eb2005bfb9cf51e7744cdd","integrity":"sha256-RuVk0p/65cca6bXjbcC9XeV7EPOW6yAFv7nPUed0TN0="},"college-2299e05f5e9b640e333ece624d4ab18a678fdabff0bc18b69a9c2e3de49cba8e.css":{"logical_path":"college.css","mtime":"2019-10-25T10:12:17+08:00","size":580077,"digest":"2299e05f5e9b640e333ece624d4ab18a678fdabff0bc18b69a9c2e3de49cba8e","integrity":"sha256-IpngX16bZA4zPs5iTUqximeP2r/wvBi2mpwuPeScuo4="},"cooperative-f1ac8f14ad6ade8d1f79ca49ea9c79be77d49aae9d2705ca672e78444481700d.js":{"logical_path":"cooperative.js","mtime":"2019-10-25T11:01:38+08:00","size":4409145,"digest":"f1ac8f14ad6ade8d1f79ca49ea9c79be77d49aae9d2705ca672e78444481700d","integrity":"sha256-8ayPFK1q3o0fecpJ6px5vnfUmq6dJwXKZy54RESBcA0="},"cooperative-8057adee2454dbc9d648305faf9ede9824f40d3bd0184e816e8035bb7f1e730b.css":{"logical_path":"cooperative.css","mtime":"2019-10-25T10:12:17+08:00","size":833882,"digest":"8057adee2454dbc9d648305faf9ede9824f40d3bd0184e816e8035bb7f1e730b","integrity":"sha256-gFet7iRU28nWSDBfr57emCT0DTvQGE6BboA1u38ecws="},"admin-6f9bb9720e7e5040ae559a8fae11553313f77552a76416b3a9fe77198471964d.js":{"logical_path":"admin.js","mtime":"2019-10-25T17:00:09+08:00","size":4554537,"digest":"6f9bb9720e7e5040ae559a8fae11553313f77552a76416b3a9fe77198471964d","integrity":"sha256-b5u5cg5+UECuVZqPrhFVMxP3dVKnZBazqf53GYRxlk0="},"admin-ab3e0f7240ae4df8d1585c8d5e99df41edd3305ecc2abadcf8820796e1d9fc65.css":{"logical_path":"admin.css","mtime":"2019-10-25T09:55:22+08:00","size":862288,"digest":"ab3e0f7240ae4df8d1585c8d5e99df41edd3305ecc2abadcf8820796e1d9fc65","integrity":"sha256-qz4PckCuTfjRWFyNXpnfQe3TMF7MKrrc+IIHluHZ/GU="},"college-2fdfc5431b46ad4a454a25386dbcbc390466886f76b85fdb7e3f75018196a870.css":{"logical_path":"college.css","mtime":"2019-10-25T09:28:47+08:00","size":572010,"digest":"2fdfc5431b46ad4a454a25386dbcbc390466886f76b85fdb7e3f75018196a870","integrity":"sha256-L9/FQxtGrUpFSiU4bby8OQRmiG92uF/bfj91AYGWqHA="},"cooperative-47d516a0904d0633e82c1de39a6ec4c9e6de0a37813843e01d4bacf97e8b2ebf.css":{"logical_path":"cooperative.css","mtime":"2019-10-25T09:28:47+08:00","size":825815,"digest":"47d516a0904d0633e82c1de39a6ec4c9e6de0a37813843e01d4bacf97e8b2ebf","integrity":"sha256-R9UWoJBNBjPoLB3jmm7EyebeCjeBOEPgHUus+X6LLr8="},"admin-839af7c0d2917a8f8019d0376ea17cec050ef4d19d98c6c10de91f5d2bc81adf.js":{"logical_path":"admin.js","mtime":"2019-10-26T11:25:08+08:00","size":4554543,"digest":"839af7c0d2917a8f8019d0376ea17cec050ef4d19d98c6c10de91f5d2bc81adf","integrity":"sha256-g5r3wNKReo+AGdA3bqF87AUO9NGdmMbBDekfXSvIGt8="},"admin-52d692608c620ae47717a2ac88377e55b9b58af0acdf3f777814a1fd47b6594b.js":{"logical_path":"admin.js","mtime":"2019-10-26T17:16:18+08:00","size":4553202,"digest":"52d692608c620ae47717a2ac88377e55b9b58af0acdf3f777814a1fd47b6594b","integrity":"sha256-UtaSYIxiCuR3F6KsiDd+Vbm1ivCs3z93eBSh/Ue2WUs="},"admin-b58555ae641bbaa61e3af0ddd2756acc3c5de9023c737815c72132cc67c9a403.js":{"logical_path":"admin.js","mtime":"2019-10-27T13:06:02+08:00","size":4553607,"digest":"b58555ae641bbaa61e3af0ddd2756acc3c5de9023c737815c72132cc67c9a403","integrity":"sha256-tYVVrmQbuqYeOvDd0nVqzDxd6QI8c3gVxyEyzGfJpAM="},"admin-b95c48ea51f392ce7c4024d0d8b2c42dfe48528a1898ec3f7818e0cda2a4f224.js":{"logical_path":"admin.js","mtime":"2019-10-28T10:46:29+08:00","size":4554008,"digest":"b95c48ea51f392ce7c4024d0d8b2c42dfe48528a1898ec3f7818e0cda2a4f224","integrity":"sha256-uVxI6lHzks58QCTQ2LLELf5IUooYmOw/eBjgzaKk8iQ="},"admin-1f2e5a2a28462df8bcddfbdbfbebdc36a761ca7a94962ae71d37fb8c06fc5f94.js":{"logical_path":"admin.js","mtime":"2019-10-29T08:57:11+08:00","size":4554938,"digest":"1f2e5a2a28462df8bcddfbdbfbebdc36a761ca7a94962ae71d37fb8c06fc5f94","integrity":"sha256-Hy5aKihGLfi83fvb++vcNqdhynqUlirnHTf7jAb8X5Q="},"admin-cb3d4541758ef2bcbfe16f518d48f85097d0547a587de222d2fc13dbdd474b4b.js":{"logical_path":"admin.js","mtime":"2019-10-29T14:06:13+08:00","size":4556541,"digest":"cb3d4541758ef2bcbfe16f518d48f85097d0547a587de222d2fc13dbdd474b4b","integrity":"sha256-yz1FQXWO8ry/4W9RjUj4UJfQVHpYfeIi0vwT291HS0s="},"admin-6a76c25b6691b4f436608be28606d90c907ba8f033f5f47c6c20d7bf11251cb6.css":{"logical_path":"admin.css","mtime":"2019-10-29T14:22:47+08:00","size":871031,"digest":"6a76c25b6691b4f436608be28606d90c907ba8f033f5f47c6c20d7bf11251cb6","integrity":"sha256-anbCW2aRtPQ2YIvihgbZDJB7qPAz9fR8bCDXvxElHLY="},"admin-ba909dfe0de4d216bedb3c743144321e4023837568abab1d3ee9a28b2faa5925.js":{"logical_path":"admin.js","mtime":"2019-10-29T14:43:01+08:00","size":4556622,"digest":"ba909dfe0de4d216bedb3c743144321e4023837568abab1d3ee9a28b2faa5925","integrity":"sha256-upCd/g3k0ha+2zx0MUQyHkAjg3Voq6sdPumiiy+qWSU="},"admin-e975e2039206e9ae2b6a072fee083cf39b8e04f2318f67bfbf1923fe208456b3.js":{"logical_path":"admin.js","mtime":"2019-10-29T15:50:27+08:00","size":4559454,"digest":"e975e2039206e9ae2b6a072fee083cf39b8e04f2318f67bfbf1923fe208456b3","integrity":"sha256-6XXiA5IG6a4ragcv7gg885uOBPIxj2e/vxkj/iCEVrM="},"cooperative-a309d245cd0b0b9c653db471c53ec090e49ba7ad885879ffa02a11b6efd79d74.js":{"logical_path":"cooperative.js","mtime":"2019-10-29T15:50:27+08:00","size":4409163,"digest":"a309d245cd0b0b9c653db471c53ec090e49ba7ad885879ffa02a11b6efd79d74","integrity":"sha256-ownSRc0LC5xlPbRxxT7AkOSbp62IWHn/oCoRtu/XnXQ="},"admin-5d791c4f4a14e1586cfa44776ae262b3c1494e1c0fb0e00c330f0cb9d30fd7ba.js":{"logical_path":"admin.js","mtime":"2019-11-01T08:41:10+08:00","size":4563272,"digest":"5d791c4f4a14e1586cfa44776ae262b3c1494e1c0fb0e00c330f0cb9d30fd7ba","integrity":"sha256-XXkcT0oU4Vhs+kR3auJis8FJThwPsOAMMw8MudMP17o="},"admin-70dc0e7136a8f54139e4167c00f3fde9ccc92b404b01b37ac6064913806e3f6e.css":{"logical_path":"admin.css","mtime":"2019-10-31T10:05:33+08:00","size":872438,"digest":"70dc0e7136a8f54139e4167c00f3fde9ccc92b404b01b37ac6064913806e3f6e","integrity":"sha256-cNwOcTao9UE55BZ8APP96czJK0BLAbN6xgZJE4BuP24="},"cooperative-4fe879591997da39d38e94f6f5eb3b688aa827fa42cb8fd73d21bc96ed880236.js":{"logical_path":"cooperative.js","mtime":"2019-11-06T11:34:24+08:00","size":4409560,"digest":"4fe879591997da39d38e94f6f5eb3b688aa827fa42cb8fd73d21bc96ed880236","integrity":"sha256-T+h5WRmX2jnTjpT29es7aIqoJ/pCy4/XPSG8lu2IAjY="},"admin-22af0d0f8c16da312c9355540590a8b6de54729793a1bef2782aa4f9469a77ad.js":{"logical_path":"admin.js","mtime":"2019-11-01T18:45:10+08:00","size":4563272,"digest":"22af0d0f8c16da312c9355540590a8b6de54729793a1bef2782aa4f9469a77ad","integrity":"sha256-Iq8ND4wW2jEsk1VUBZCott5UcpeTob7yeCqk+Uaad60="},"admin-4c1fcf5a570db989682ef483c1016234a3b7614e0a8d42c040eed220298fef8c.css":{"logical_path":"admin.css","mtime":"2019-11-01T18:45:10+08:00","size":864367,"digest":"4c1fcf5a570db989682ef483c1016234a3b7614e0a8d42c040eed220298fef8c","integrity":"sha256-TB/PWlcNuYloLvSDwQFiNKO3YU4KjULAQO7SICmP74w="},"admin-1a7f715f91fa17b0018650fa22b43778aad419157b8fdb9d67a02ea11760349b.js":{"logical_path":"admin.js","mtime":"2019-11-05T16:10:50+08:00","size":4565998,"digest":"1a7f715f91fa17b0018650fa22b43778aad419157b8fdb9d67a02ea11760349b","integrity":"sha256-Gn9xX5H6F7ABhlD6IrQ3eKrUGRV7j9udZ6AuoRdgNJs="},"admin-5902a288ce59247a683d5719189fc6260be1e38181872e710a7643ad60caaccc.css":{"logical_path":"admin.css","mtime":"2019-11-02T08:33:50+08:00","size":872434,"digest":"5902a288ce59247a683d5719189fc6260be1e38181872e710a7643ad60caaccc","integrity":"sha256-WQKiiM5ZJHpoPVcZGJ/GJgvh44GBhy5xCnZDrWDKrMw="},"admin-8ceaca69cdf7194b7a94e49b16ac5fa272f80e86493e5da27ab5a729de22c07a.js":{"logical_path":"admin.js","mtime":"2019-11-07T10:59:11+08:00","size":4575131,"digest":"8ceaca69cdf7194b7a94e49b16ac5fa272f80e86493e5da27ab5a729de22c07a","integrity":"sha256-jOrKac33GUt6lOSbFqxfonL4DoZJPl2ierWnKd4iwHo="},"admin-80cc0a53298c5abd849f03d8b8514d3263ef67fce38f83c05b1da0d30d3bb235.js":{"logical_path":"admin.js","mtime":"2019-11-07T17:20:35+08:00","size":4575538,"digest":"80cc0a53298c5abd849f03d8b8514d3263ef67fce38f83c05b1da0d30d3bb235","integrity":"sha256-gMwKUymMWr2EnwPYuFFNMmPvZ/zjj4PAWx2g0w07sjU="}},"assets":{"admin.js":"admin-80cc0a53298c5abd849f03d8b8514d3263ef67fce38f83c05b1da0d30d3bb235.js","admin.css":"admin-5902a288ce59247a683d5719189fc6260be1e38181872e710a7643ad60caaccc.css","font-awesome/fontawesome-webfont.eot":"font-awesome/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot","font-awesome/fontawesome-webfont.woff2":"font-awesome/fontawesome-webfont-2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe.woff2","font-awesome/fontawesome-webfont.woff":"font-awesome/fontawesome-webfont-ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f07.woff","font-awesome/fontawesome-webfont.ttf":"font-awesome/fontawesome-webfont-aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8.ttf","font-awesome/fontawesome-webfont.svg":"font-awesome/fontawesome-webfont-ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4.svg","college.js":"college-18f5e8400331634e898a35acc2187815c096c25e0ab74aba341ae916166cd287.js","college.css":"college-2299e05f5e9b640e333ece624d4ab18a678fdabff0bc18b69a9c2e3de49cba8e.css","logo.png":"logo-7ff112568709bf97f9898fe87249b7a8f200ff1f48d537d85af87215f1870423.png","application.js":"application-9cfbc3d792599a1d0de5c7b84209e1c2b2e60336f0f01e19f0581663918708fb.js","application.css":"application-0e417478d56f42467e857cd186b29cbbc0d6c7c6e85c8a6f42f39ac618943de8.css","cooperative.js":"cooperative-4fe879591997da39d38e94f6f5eb3b688aa827fa42cb8fd73d21bc96ed880236.js","cooperative.css":"cooperative-8057adee2454dbc9d648305faf9ede9824f40d3bd0184e816e8035bb7f1e730b.css"}} \ No newline at end of file +{"files":{"admin-cd9ca8bacc973ce2dbace30c97f6c40bc08e2c2ee44972f668e738e1902c0121.js":{"logical_path":"admin.js","mtime":"2019-09-11T16:20:07+08:00","size":4350881,"digest":"cd9ca8bacc973ce2dbace30c97f6c40bc08e2c2ee44972f668e738e1902c0121","integrity":"sha256-zZyousyXPOLbrOMMl/bEC8COLC7kSXL2aOc44ZAsASE="},"admin-a1b3356efe50ff4717cf22475639b5333c5354ba03fd107c9b7a8d4ae76f47aa.css":{"logical_path":"admin.css","mtime":"2019-09-11T16:20:07+08:00","size":773445,"digest":"a1b3356efe50ff4717cf22475639b5333c5354ba03fd107c9b7a8d4ae76f47aa","integrity":"sha256-obM1bv5Q/0cXzyJHVjm1MzxTVLoD/RB8m3qNSudvR6o="},"font-awesome/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot":{"logical_path":"font-awesome/fontawesome-webfont.eot","mtime":"2019-08-14T17:22:43+08:00","size":165742,"digest":"7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979","integrity":"sha256-e/yrbbmdXPvxcFygU23ceFhUMsxfpBu9etDwCQM7KXk="},"font-awesome/fontawesome-webfont-2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe.woff2":{"logical_path":"font-awesome/fontawesome-webfont.woff2","mtime":"2019-08-14T17:22:43+08:00","size":77160,"digest":"2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe","integrity":"sha256-Kt78vAQefRj88tQXh53FoJmXqmTWdbejxLbOM9oT8/4="},"font-awesome/fontawesome-webfont-ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f07.woff":{"logical_path":"font-awesome/fontawesome-webfont.woff","mtime":"2019-08-14T17:22:43+08:00","size":98024,"digest":"ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f07","integrity":"sha256-ugxZ3rVFD1y0Gz+TYJ7i0NmVQVh33foiPoqKdTNHTwc="},"font-awesome/fontawesome-webfont-aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8.ttf":{"logical_path":"font-awesome/fontawesome-webfont.ttf","mtime":"2019-08-14T17:22:43+08:00","size":165548,"digest":"aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8","integrity":"sha256-qljzPyOaD7AvXHpsRcBD16msmgkzNYBmlOzW1O3A1qg="},"font-awesome/fontawesome-webfont-ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4.svg":{"logical_path":"font-awesome/fontawesome-webfont.svg","mtime":"2019-08-14T17:22:43+08:00","size":444379,"digest":"ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4","integrity":"sha256-rWFXkmwWIrpOHQPUePFUE2hSS/xG9R5C/g2UX37zI+Q="},"college-18f5e8400331634e898a35acc2187815c096c25e0ab74aba341ae916166cd287.js":{"logical_path":"college.js","mtime":"2019-11-06T11:34:24+08:00","size":3352744,"digest":"18f5e8400331634e898a35acc2187815c096c25e0ab74aba341ae916166cd287","integrity":"sha256-GPXoQAMxY06JijWswhh4FcCWwl4Kt0q6NBrpFhZs0oc="},"college-944d4273f62c7538368b9017fdd3387b5e3bea31a87873770eb231324546d4d9.css":{"logical_path":"college.css","mtime":"2019-09-11T16:20:07+08:00","size":546841,"digest":"944d4273f62c7538368b9017fdd3387b5e3bea31a87873770eb231324546d4d9","integrity":"sha256-lE1Cc/YsdTg2i5AX/dM4e1476jGoeHN3DrIxMkVG1Nk="},"logo-7ff112568709bf97f9898fe87249b7a8f200ff1f48d537d85af87215f1870423.png":{"logical_path":"logo.png","mtime":"2019-09-03T08:55:53+08:00","size":2816,"digest":"7ff112568709bf97f9898fe87249b7a8f200ff1f48d537d85af87215f1870423","integrity":"sha256-f/ESVocJv5f5iY/ockm3qPIA/x9I1TfYWvhyFfGHBCM="},"application-9cfbc3d792599a1d0de5c7b84209e1c2b2e60336f0f01e19f0581663918708fb.js":{"logical_path":"application.js","mtime":"2019-11-06T11:34:24+08:00","size":600706,"digest":"9cfbc3d792599a1d0de5c7b84209e1c2b2e60336f0f01e19f0581663918708fb","integrity":"sha256-nPvD15JZmh0N5ce4QgnhwrLmAzbw8B4Z8FgWY5GHCPs="},"application-5eb87c6e13676d0183317debce17fade27e68c4acee28c419438da15d53c94f2.css":{"logical_path":"application.css","mtime":"2019-09-11T16:20:07+08:00","size":1844002,"digest":"5eb87c6e13676d0183317debce17fade27e68c4acee28c419438da15d53c94f2","integrity":"sha256-Xrh8bhNnbQGDMX3rzhf63ifmjErO4oxBlDjaFdU8lPI="},"admin-c9e5ebe6191548550e27514196ea125cfbb402820ec125a0c9acf99d2d378fe4.js":{"logical_path":"admin.js","mtime":"2019-09-21T15:28:08+08:00","size":4382031,"digest":"c9e5ebe6191548550e27514196ea125cfbb402820ec125a0c9acf99d2d378fe4","integrity":"sha256-yeXr5hkVSFUOJ1FBluoSXPu0AoIOwSWgyaz5nS03j+Q="},"admin-59c59f8cae8bef4a8359286c985458110c9d03ea121516595c988943f4717c38.css":{"logical_path":"admin.css","mtime":"2019-09-21T14:49:04+08:00","size":840093,"digest":"59c59f8cae8bef4a8359286c985458110c9d03ea121516595c988943f4717c38","integrity":"sha256-WcWfjK6L70qDWShsmFRYEQydA+oSFRZZXJiJQ/RxfDg="},"college-38f953d6ba5b85d3fab63cb3c2bbf0d057ccc6454d07cfaafac3b06da37b8437.css":{"logical_path":"college.css","mtime":"2019-09-16T13:56:09+08:00","size":579109,"digest":"38f953d6ba5b85d3fab63cb3c2bbf0d057ccc6454d07cfaafac3b06da37b8437","integrity":"sha256-OPlT1rpbhdP6tjyzwrvw0FfMxkVNB8+q+sOwbaN7hDc="},"application-646b1158a4e8c1f13e684d6fe9025abc75f8d3ba5256e440802c0398223374f3.css":{"logical_path":"application.css","mtime":"2019-09-21T14:49:04+08:00","size":1988767,"digest":"646b1158a4e8c1f13e684d6fe9025abc75f8d3ba5256e440802c0398223374f3","integrity":"sha256-ZGsRWKTowfE+aE1v6QJavHX407pSVuRAgCwDmCIzdPM="},"admin-a47e37c0ec7cf5f22380249776d1e82d65b6b6aa272ed7389185aa200fa40751.js":{"logical_path":"admin.js","mtime":"2019-09-25T15:33:05+08:00","size":4383107,"digest":"a47e37c0ec7cf5f22380249776d1e82d65b6b6aa272ed7389185aa200fa40751","integrity":"sha256-pH43wOx89fIjgCSXdtHoLWW2tqonLtc4kYWqIA+kB1E="},"admin-432c4eac09b036c57ff1e88d902b8aa7df81164e4b419bac557cf1366c1d3ad9.js":{"logical_path":"admin.js","mtime":"2019-09-25T15:35:20+08:00","size":4383103,"digest":"432c4eac09b036c57ff1e88d902b8aa7df81164e4b419bac557cf1366c1d3ad9","integrity":"sha256-QyxOrAmwNsV/8eiNkCuKp9+BFk5LQZusVXzxNmwdOtk="},"admin-978e5ce607f77c26814a174f480da79ac246c2201868ef84654aa03bb6727b5a.js":{"logical_path":"admin.js","mtime":"2019-09-30T14:43:41+08:00","size":4387200,"digest":"978e5ce607f77c26814a174f480da79ac246c2201868ef84654aa03bb6727b5a","integrity":"sha256-l45c5gf3fCaBShdPSA2nmsJGwiAYaO+EZUqgO7Zye1o="},"admin-896281f4731722b0c084dbb1af21d0f34a5bc142d58aff57b391864ab71ddca7.css":{"logical_path":"admin.css","mtime":"2019-09-30T14:43:41+08:00","size":842269,"digest":"896281f4731722b0c084dbb1af21d0f34a5bc142d58aff57b391864ab71ddca7","integrity":"sha256-iWKB9HMXIrDAhNuxryHQ80pbwULViv9Xs5GGSrcd3Kc="},"application-97f313e9bb7d25476649f7d7215959cf421480fd0a3785d1956953bf94a1e8bd.css":{"logical_path":"application.css","mtime":"2019-09-30T14:43:41+08:00","size":1993118,"digest":"97f313e9bb7d25476649f7d7215959cf421480fd0a3785d1956953bf94a1e8bd","integrity":"sha256-l/MT6bt9JUdmSffXIVlZz0IUgP0KN4XRlWlTv5Sh6L0="},"admin-2cdb23442fa735025385b88f2900df04fef38b61530041a6dbe375ef0f0ae888.js":{"logical_path":"admin.js","mtime":"2019-10-11T14:38:33+08:00","size":4394616,"digest":"2cdb23442fa735025385b88f2900df04fef38b61530041a6dbe375ef0f0ae888","integrity":"sha256-LNsjRC+nNQJThbiPKQDfBP7zi2FTAEGm2+N17w8K6Ig="},"admin-2c2854b9a02158ded5a809aaf7144a8630b10354ab4e56fecc4dffcc713796cc.css":{"logical_path":"admin.css","mtime":"2019-10-10T17:12:05+08:00","size":846514,"digest":"2c2854b9a02158ded5a809aaf7144a8630b10354ab4e56fecc4dffcc713796cc","integrity":"sha256-LChUuaAhWN7VqAmq9xRKhjCxA1SrTlb+zE3/zHE3lsw="},"application-50059ae929866043b47015128702fcfba53d32a2df148e64e1d961c10651c6af.css":{"logical_path":"application.css","mtime":"2019-10-10T17:12:05+08:00","size":2001607,"digest":"50059ae929866043b47015128702fcfba53d32a2df148e64e1d961c10651c6af","integrity":"sha256-UAWa6SmGYEO0cBUShwL8+6U9MqLfFI5k4dlhwQZRxq8="},"admin-992cde09b6d17f00a49576ae2d9f1ced127244ba401ef5b7d677cab9741688d2.js":{"logical_path":"admin.js","mtime":"2019-10-16T16:11:32+08:00","size":4394790,"digest":"992cde09b6d17f00a49576ae2d9f1ced127244ba401ef5b7d677cab9741688d2","integrity":"sha256-mSzeCbbRfwCklXauLZ8c7RJyRLpAHvW31nfKuXQWiNI="},"admin-84f2a7791e275d6f820514370b3f968176b994b9dd7b8c3ba8bf48336b03f257.css":{"logical_path":"admin.css","mtime":"2019-10-16T19:25:40+08:00","size":846676,"digest":"84f2a7791e275d6f820514370b3f968176b994b9dd7b8c3ba8bf48336b03f257","integrity":"sha256-hPKneR4nXW+CBRQ3Cz+WgXa5lLnde4w7qL9IM2sD8lc="},"application-ef6bab84852baaf69a91fe6af875b6e1b118c55b4c7d165665c488fac80c4997.css":{"logical_path":"application.css","mtime":"2019-10-16T19:25:40+08:00","size":2001931,"digest":"ef6bab84852baaf69a91fe6af875b6e1b118c55b4c7d165665c488fac80c4997","integrity":"sha256-72urhIUrqvaakf5q+HW24bEYxVtMfRZWZcSI+sgMSZc="},"admin-c99030d305662f740aa84b6c925a1adbbaadaa07fd74e2655e64d44b4b97fc4a.js":{"logical_path":"admin.js","mtime":"2019-10-17T09:44:58+08:00","size":4394897,"digest":"c99030d305662f740aa84b6c925a1adbbaadaa07fd74e2655e64d44b4b97fc4a","integrity":"sha256-yZAw0wVmL3QKqEtskloa27qtqgf9dOJlXmTUS0uX/Eo="},"admin-534bde871d67f4d6fc8da611917d78be4066fc7593ba53ee92aa17068a199d6d.css":{"logical_path":"admin.css","mtime":"2019-10-17T10:22:41+08:00","size":846699,"digest":"534bde871d67f4d6fc8da611917d78be4066fc7593ba53ee92aa17068a199d6d","integrity":"sha256-U0vehx1n9Nb8jaYRkX14vkBm/HWTulPukqoXBooZnW0="},"cooperative-04cd6a60d41220d38ee45ce40b1d004e1d0bcd87c132fb1a7bab6144c1deb8d7.js":{"logical_path":"cooperative.js","mtime":"2019-10-17T10:17:56+08:00","size":4330072,"digest":"04cd6a60d41220d38ee45ce40b1d004e1d0bcd87c132fb1a7bab6144c1deb8d7","integrity":"sha256-BM1qYNQSINOO5FzkCx0ATh0LzYfBMvsae6thRMHeuNc="},"cooperative-a345bbfd8e38b70c9285ecc1747012ffcde429187983e2aea5657abb56b9b4f3.css":{"logical_path":"cooperative.css","mtime":"2019-10-17T10:21:41+08:00","size":830628,"digest":"a345bbfd8e38b70c9285ecc1747012ffcde429187983e2aea5657abb56b9b4f3","integrity":"sha256-o0W7/Y44twyShezBdHAS/83kKRh5g+KupWV6u1a5tPM="},"application-0e417478d56f42467e857cd186b29cbbc0d6c7c6e85c8a6f42f39ac618943de8.css":{"logical_path":"application.css","mtime":"2019-09-03T08:55:53+08:00","size":442932,"digest":"0e417478d56f42467e857cd186b29cbbc0d6c7c6e85c8a6f42f39ac618943de8","integrity":"sha256-DkF0eNVvQkZ+hXzRhrKcu8DWx8boXIpvQvOaxhiUPeg="},"cooperative-149f47b8675d60a8014ccff50f00f932ff69e2be286ffb74343bc4a3effb135b.js":{"logical_path":"cooperative.js","mtime":"2019-10-17T14:03:03+08:00","size":4338033,"digest":"149f47b8675d60a8014ccff50f00f932ff69e2be286ffb74343bc4a3effb135b","integrity":"sha256-FJ9HuGddYKgBTM/1DwD5Mv9p4r4ob/t0NDvEo+/7E1s="},"cooperative-6273b766d6ef11dd56174d868bab55e7f17af17546c888d2ba0dd0a6bcda76c8.css":{"logical_path":"cooperative.css","mtime":"2019-10-17T11:13:07+08:00","size":832914,"digest":"6273b766d6ef11dd56174d868bab55e7f17af17546c888d2ba0dd0a6bcda76c8","integrity":"sha256-YnO3ZtbvEd1WF02Gi6tV5/F68XVGyIjSug3Qprzadsg="},"admin-82f66cc80b5649c6530a562567f28fe8d05f7bc3b8221e0695b2216255c52ba6.js":{"logical_path":"admin.js","mtime":"2019-10-21T13:51:43+08:00","size":4397012,"digest":"82f66cc80b5649c6530a562567f28fe8d05f7bc3b8221e0695b2216255c52ba6","integrity":"sha256-gvZsyAtWScZTClYlZ/KP6NBfe8O4Ih4GlbIhYlXFK6Y="},"admin-1b5728d94f6bccfbcef452a760d94c3b6f31966bc65d7f89be077fc2ea512bec.js":{"logical_path":"admin.js","mtime":"2019-10-21T16:41:06+08:00","size":4397437,"digest":"1b5728d94f6bccfbcef452a760d94c3b6f31966bc65d7f89be077fc2ea512bec","integrity":"sha256-G1co2U9rzPvO9FKnYNlMO28xlmvGXX+Jvgd/wupRK+w="},"admin-c8c127fefa5eca98bca19832c246619318164e8f242635c07033e2423cc18a6f.js":{"logical_path":"admin.js","mtime":"2019-10-22T09:53:29+08:00","size":4408150,"digest":"c8c127fefa5eca98bca19832c246619318164e8f242635c07033e2423cc18a6f","integrity":"sha256-yMEn/vpeypi8oZgywkZhkxgWTo8kJjXAcDPiQjzBim8="},"admin-60d200c1fcdf61a60537d29ccf4479c6b1e5e904208870a63b8ee677c96b347e.css":{"logical_path":"admin.css","mtime":"2019-10-22T09:43:20+08:00","size":851150,"digest":"60d200c1fcdf61a60537d29ccf4479c6b1e5e904208870a63b8ee677c96b347e","integrity":"sha256-YNIAwfzfYaYFN9Kcz0R5xrHl6QQgiHCmO47md8lrNH4="},"cooperative-9fb7ac4ad44081fafd5ad2a3a1bfb7f4329ac96f28bc6446d1ff52b1e2e71286.js":{"logical_path":"cooperative.js","mtime":"2019-10-22T09:55:26+08:00","size":4338142,"digest":"9fb7ac4ad44081fafd5ad2a3a1bfb7f4329ac96f28bc6446d1ff52b1e2e71286","integrity":"sha256-n7esStRAgfr9WtKjob+39DKayW8ovGRG0f9SseLnEoY="},"admin-a11066081d60365ddf25d5867560d1ccdd3197dbe82a5b6e969cc940e3429ff1.js":{"logical_path":"admin.js","mtime":"2019-10-24T14:16:30+08:00","size":4524252,"digest":"a11066081d60365ddf25d5867560d1ccdd3197dbe82a5b6e969cc940e3429ff1","integrity":"sha256-oRBmCB1gNl3fJdWGdWDRzN0xl9voKltulpzJQONCn/E="},"admin-7ce3dd717f7d12fcbc64caf14200230a1e68db439be0ba1879077599ff2c32c6.css":{"logical_path":"admin.css","mtime":"2019-10-24T10:10:08+08:00","size":852772,"digest":"7ce3dd717f7d12fcbc64caf14200230a1e68db439be0ba1879077599ff2c32c6","integrity":"sha256-fOPdcX99Evy8ZMrxQgAjCh5o20Ob4LoYeQd1mf8sMsY="},"college-93904c65d52c125aec0a463b9fd98bedda0018b78707f806be22685cca5d3747.css":{"logical_path":"college.css","mtime":"2019-10-24T10:10:08+08:00","size":579546,"digest":"93904c65d52c125aec0a463b9fd98bedda0018b78707f806be22685cca5d3747","integrity":"sha256-k5BMZdUsElrsCkY7n9mL7doAGLeHB/gGviJoXMpdN0c="},"cooperative-84c79d26a36aff5b496551b6d21b1bfb726b1bbc4153435a366115e96c204e06.js":{"logical_path":"cooperative.js","mtime":"2019-10-24T14:17:15+08:00","size":4338225,"digest":"84c79d26a36aff5b496551b6d21b1bfb726b1bbc4153435a366115e96c204e06","integrity":"sha256-hMedJqNq/1tJZVG20hsb+3JrG7xBU0NaNmEV6WwgTgY="},"cooperative-10a9ee5177e196572573ccea460e133c748072e223fdb473d05ee72c991fbbe3.css":{"logical_path":"cooperative.css","mtime":"2019-10-24T10:10:08+08:00","size":833351,"digest":"10a9ee5177e196572573ccea460e133c748072e223fdb473d05ee72c991fbbe3","integrity":"sha256-EKnuUXfhllclc8zqRg4TPHSAcuIj/bRz0F7nLJkfu+M="},"admin-441d8f3722e5f73e5748aaeb6f517101474cb1eb48a99f119e561f08b9e9dc60.js":{"logical_path":"admin.js","mtime":"2019-10-24T16:08:56+08:00","size":4525031,"digest":"441d8f3722e5f73e5748aaeb6f517101474cb1eb48a99f119e561f08b9e9dc60","integrity":"sha256-RB2PNyLl9z5XSKrrb1FxAUdMsetIqZ8RnlYfCLnp3GA="},"admin-76c52986591f274f639ad48dfbb480a1aeeec7647b6fa28fa541e78a064b6316.css":{"logical_path":"admin.css","mtime":"2019-10-24T15:25:17+08:00","size":867945,"digest":"76c52986591f274f639ad48dfbb480a1aeeec7647b6fa28fa541e78a064b6316","integrity":"sha256-dsUphlkfJ09jmtSN+7SAoa7ux2R7b6KPpUHnigZLYxY="},"cooperative-6c4c663b6b5071535bab2b76cc5e05ab5682665857763a76bf4f01afef51be5a.js":{"logical_path":"cooperative.js","mtime":"2019-10-24T17:56:20+08:00","size":4339039,"digest":"6c4c663b6b5071535bab2b76cc5e05ab5682665857763a76bf4f01afef51be5a","integrity":"sha256-bExmO2tQcVNbqyt2zF4Fq1aCZlhXdjp2v08Br+9Rvlo="},"admin-c63acadd431434979db50540a0bf7e65c75e1de0d1b449919f2cce89a0548d43.js":{"logical_path":"admin.js","mtime":"2019-10-24T18:12:33+08:00","size":4533182,"digest":"c63acadd431434979db50540a0bf7e65c75e1de0d1b449919f2cce89a0548d43","integrity":"sha256-xjrK3UMUNJedtQVAoL9+ZcdeHeDRtEmRnyzOiaBUjUM="},"admin-bd832b9a35eb3743dde9218beab61f9bcde1508767ad68dbedb1c89a4bb65c3a.css":{"logical_path":"admin.css","mtime":"2019-10-24T17:56:20+08:00","size":861450,"digest":"bd832b9a35eb3743dde9218beab61f9bcde1508767ad68dbedb1c89a4bb65c3a","integrity":"sha256-vYMrmjXrN0Pd6SGL6rYfm83hUIdnrWjb7bHImku2XDo="},"college-fa202780f3e7f96cb9b5916c6f0d7dd9e03cb746864bbd2dd491ed001c30ad8f.css":{"logical_path":"college.css","mtime":"2019-10-24T17:56:20+08:00","size":571936,"digest":"fa202780f3e7f96cb9b5916c6f0d7dd9e03cb746864bbd2dd491ed001c30ad8f","integrity":"sha256-+iAngPPn+Wy5tZFsbw192eA8t0aGS70t1JHtABwwrY8="},"cooperative-4f233e8963b0bd80bc56b71c209d31464d314240ac8d686806baf99511c53ad0.css":{"logical_path":"cooperative.css","mtime":"2019-10-24T17:56:20+08:00","size":825741,"digest":"4f233e8963b0bd80bc56b71c209d31464d314240ac8d686806baf99511c53ad0","integrity":"sha256-TyM+iWOwvYC8VrccIJ0xRk0xQkCsjWhoBrr5lRHFOtA="},"application-8c9d6bb61c50908f584b3070c79aeb95f25c1166d39e07da5e95438b39ca0de9.css":{"logical_path":"application.css","mtime":"2019-10-23T14:16:56+08:00","size":436995,"digest":"8c9d6bb61c50908f584b3070c79aeb95f25c1166d39e07da5e95438b39ca0de9","integrity":"sha256-jJ1rthxQkI9YSzBwx5rrlfJcEWbTngfaXpVDiznKDek="},"admin-bf2bd889f02d15c4913aa260497d72afeb26d701aac49a4ef6a75619af030152.js":{"logical_path":"admin.js","mtime":"2019-10-25T10:12:17+08:00","size":4533673,"digest":"bf2bd889f02d15c4913aa260497d72afeb26d701aac49a4ef6a75619af030152","integrity":"sha256-vyvYifAtFcSROqJgSX1yr+sm1wGqxJpO9qdWGa8DAVI="},"admin-46e564d29ffae5c71ae9b5e36dc0bd5de57b10f396eb2005bfb9cf51e7744cdd.css":{"logical_path":"admin.css","mtime":"2019-10-25T10:12:17+08:00","size":870355,"digest":"46e564d29ffae5c71ae9b5e36dc0bd5de57b10f396eb2005bfb9cf51e7744cdd","integrity":"sha256-RuVk0p/65cca6bXjbcC9XeV7EPOW6yAFv7nPUed0TN0="},"college-2299e05f5e9b640e333ece624d4ab18a678fdabff0bc18b69a9c2e3de49cba8e.css":{"logical_path":"college.css","mtime":"2019-10-25T10:12:17+08:00","size":580077,"digest":"2299e05f5e9b640e333ece624d4ab18a678fdabff0bc18b69a9c2e3de49cba8e","integrity":"sha256-IpngX16bZA4zPs5iTUqximeP2r/wvBi2mpwuPeScuo4="},"cooperative-f1ac8f14ad6ade8d1f79ca49ea9c79be77d49aae9d2705ca672e78444481700d.js":{"logical_path":"cooperative.js","mtime":"2019-10-25T11:01:38+08:00","size":4409145,"digest":"f1ac8f14ad6ade8d1f79ca49ea9c79be77d49aae9d2705ca672e78444481700d","integrity":"sha256-8ayPFK1q3o0fecpJ6px5vnfUmq6dJwXKZy54RESBcA0="},"cooperative-8057adee2454dbc9d648305faf9ede9824f40d3bd0184e816e8035bb7f1e730b.css":{"logical_path":"cooperative.css","mtime":"2019-10-25T10:12:17+08:00","size":833882,"digest":"8057adee2454dbc9d648305faf9ede9824f40d3bd0184e816e8035bb7f1e730b","integrity":"sha256-gFet7iRU28nWSDBfr57emCT0DTvQGE6BboA1u38ecws="},"admin-6f9bb9720e7e5040ae559a8fae11553313f77552a76416b3a9fe77198471964d.js":{"logical_path":"admin.js","mtime":"2019-10-25T17:00:09+08:00","size":4554537,"digest":"6f9bb9720e7e5040ae559a8fae11553313f77552a76416b3a9fe77198471964d","integrity":"sha256-b5u5cg5+UECuVZqPrhFVMxP3dVKnZBazqf53GYRxlk0="},"admin-ab3e0f7240ae4df8d1585c8d5e99df41edd3305ecc2abadcf8820796e1d9fc65.css":{"logical_path":"admin.css","mtime":"2019-10-25T09:55:22+08:00","size":862288,"digest":"ab3e0f7240ae4df8d1585c8d5e99df41edd3305ecc2abadcf8820796e1d9fc65","integrity":"sha256-qz4PckCuTfjRWFyNXpnfQe3TMF7MKrrc+IIHluHZ/GU="},"college-2fdfc5431b46ad4a454a25386dbcbc390466886f76b85fdb7e3f75018196a870.css":{"logical_path":"college.css","mtime":"2019-10-25T09:28:47+08:00","size":572010,"digest":"2fdfc5431b46ad4a454a25386dbcbc390466886f76b85fdb7e3f75018196a870","integrity":"sha256-L9/FQxtGrUpFSiU4bby8OQRmiG92uF/bfj91AYGWqHA="},"cooperative-47d516a0904d0633e82c1de39a6ec4c9e6de0a37813843e01d4bacf97e8b2ebf.css":{"logical_path":"cooperative.css","mtime":"2019-10-25T09:28:47+08:00","size":825815,"digest":"47d516a0904d0633e82c1de39a6ec4c9e6de0a37813843e01d4bacf97e8b2ebf","integrity":"sha256-R9UWoJBNBjPoLB3jmm7EyebeCjeBOEPgHUus+X6LLr8="},"admin-839af7c0d2917a8f8019d0376ea17cec050ef4d19d98c6c10de91f5d2bc81adf.js":{"logical_path":"admin.js","mtime":"2019-10-26T11:25:08+08:00","size":4554543,"digest":"839af7c0d2917a8f8019d0376ea17cec050ef4d19d98c6c10de91f5d2bc81adf","integrity":"sha256-g5r3wNKReo+AGdA3bqF87AUO9NGdmMbBDekfXSvIGt8="},"admin-52d692608c620ae47717a2ac88377e55b9b58af0acdf3f777814a1fd47b6594b.js":{"logical_path":"admin.js","mtime":"2019-10-26T17:16:18+08:00","size":4553202,"digest":"52d692608c620ae47717a2ac88377e55b9b58af0acdf3f777814a1fd47b6594b","integrity":"sha256-UtaSYIxiCuR3F6KsiDd+Vbm1ivCs3z93eBSh/Ue2WUs="},"admin-b58555ae641bbaa61e3af0ddd2756acc3c5de9023c737815c72132cc67c9a403.js":{"logical_path":"admin.js","mtime":"2019-10-27T13:06:02+08:00","size":4553607,"digest":"b58555ae641bbaa61e3af0ddd2756acc3c5de9023c737815c72132cc67c9a403","integrity":"sha256-tYVVrmQbuqYeOvDd0nVqzDxd6QI8c3gVxyEyzGfJpAM="},"admin-b95c48ea51f392ce7c4024d0d8b2c42dfe48528a1898ec3f7818e0cda2a4f224.js":{"logical_path":"admin.js","mtime":"2019-10-28T10:46:29+08:00","size":4554008,"digest":"b95c48ea51f392ce7c4024d0d8b2c42dfe48528a1898ec3f7818e0cda2a4f224","integrity":"sha256-uVxI6lHzks58QCTQ2LLELf5IUooYmOw/eBjgzaKk8iQ="},"admin-1f2e5a2a28462df8bcddfbdbfbebdc36a761ca7a94962ae71d37fb8c06fc5f94.js":{"logical_path":"admin.js","mtime":"2019-10-29T08:57:11+08:00","size":4554938,"digest":"1f2e5a2a28462df8bcddfbdbfbebdc36a761ca7a94962ae71d37fb8c06fc5f94","integrity":"sha256-Hy5aKihGLfi83fvb++vcNqdhynqUlirnHTf7jAb8X5Q="},"admin-cb3d4541758ef2bcbfe16f518d48f85097d0547a587de222d2fc13dbdd474b4b.js":{"logical_path":"admin.js","mtime":"2019-10-29T14:06:13+08:00","size":4556541,"digest":"cb3d4541758ef2bcbfe16f518d48f85097d0547a587de222d2fc13dbdd474b4b","integrity":"sha256-yz1FQXWO8ry/4W9RjUj4UJfQVHpYfeIi0vwT291HS0s="},"admin-6a76c25b6691b4f436608be28606d90c907ba8f033f5f47c6c20d7bf11251cb6.css":{"logical_path":"admin.css","mtime":"2019-10-29T14:22:47+08:00","size":871031,"digest":"6a76c25b6691b4f436608be28606d90c907ba8f033f5f47c6c20d7bf11251cb6","integrity":"sha256-anbCW2aRtPQ2YIvihgbZDJB7qPAz9fR8bCDXvxElHLY="},"admin-ba909dfe0de4d216bedb3c743144321e4023837568abab1d3ee9a28b2faa5925.js":{"logical_path":"admin.js","mtime":"2019-10-29T14:43:01+08:00","size":4556622,"digest":"ba909dfe0de4d216bedb3c743144321e4023837568abab1d3ee9a28b2faa5925","integrity":"sha256-upCd/g3k0ha+2zx0MUQyHkAjg3Voq6sdPumiiy+qWSU="},"admin-e975e2039206e9ae2b6a072fee083cf39b8e04f2318f67bfbf1923fe208456b3.js":{"logical_path":"admin.js","mtime":"2019-10-29T15:50:27+08:00","size":4559454,"digest":"e975e2039206e9ae2b6a072fee083cf39b8e04f2318f67bfbf1923fe208456b3","integrity":"sha256-6XXiA5IG6a4ragcv7gg885uOBPIxj2e/vxkj/iCEVrM="},"cooperative-a309d245cd0b0b9c653db471c53ec090e49ba7ad885879ffa02a11b6efd79d74.js":{"logical_path":"cooperative.js","mtime":"2019-10-29T15:50:27+08:00","size":4409163,"digest":"a309d245cd0b0b9c653db471c53ec090e49ba7ad885879ffa02a11b6efd79d74","integrity":"sha256-ownSRc0LC5xlPbRxxT7AkOSbp62IWHn/oCoRtu/XnXQ="},"admin-5d791c4f4a14e1586cfa44776ae262b3c1494e1c0fb0e00c330f0cb9d30fd7ba.js":{"logical_path":"admin.js","mtime":"2019-11-01T08:41:10+08:00","size":4563272,"digest":"5d791c4f4a14e1586cfa44776ae262b3c1494e1c0fb0e00c330f0cb9d30fd7ba","integrity":"sha256-XXkcT0oU4Vhs+kR3auJis8FJThwPsOAMMw8MudMP17o="},"admin-70dc0e7136a8f54139e4167c00f3fde9ccc92b404b01b37ac6064913806e3f6e.css":{"logical_path":"admin.css","mtime":"2019-10-31T10:05:33+08:00","size":872438,"digest":"70dc0e7136a8f54139e4167c00f3fde9ccc92b404b01b37ac6064913806e3f6e","integrity":"sha256-cNwOcTao9UE55BZ8APP96czJK0BLAbN6xgZJE4BuP24="},"cooperative-4fe879591997da39d38e94f6f5eb3b688aa827fa42cb8fd73d21bc96ed880236.js":{"logical_path":"cooperative.js","mtime":"2019-11-06T11:34:24+08:00","size":4409560,"digest":"4fe879591997da39d38e94f6f5eb3b688aa827fa42cb8fd73d21bc96ed880236","integrity":"sha256-T+h5WRmX2jnTjpT29es7aIqoJ/pCy4/XPSG8lu2IAjY="},"admin-22af0d0f8c16da312c9355540590a8b6de54729793a1bef2782aa4f9469a77ad.js":{"logical_path":"admin.js","mtime":"2019-11-01T18:45:10+08:00","size":4563272,"digest":"22af0d0f8c16da312c9355540590a8b6de54729793a1bef2782aa4f9469a77ad","integrity":"sha256-Iq8ND4wW2jEsk1VUBZCott5UcpeTob7yeCqk+Uaad60="},"admin-4c1fcf5a570db989682ef483c1016234a3b7614e0a8d42c040eed220298fef8c.css":{"logical_path":"admin.css","mtime":"2019-11-01T18:45:10+08:00","size":864367,"digest":"4c1fcf5a570db989682ef483c1016234a3b7614e0a8d42c040eed220298fef8c","integrity":"sha256-TB/PWlcNuYloLvSDwQFiNKO3YU4KjULAQO7SICmP74w="},"admin-1a7f715f91fa17b0018650fa22b43778aad419157b8fdb9d67a02ea11760349b.js":{"logical_path":"admin.js","mtime":"2019-11-05T16:10:50+08:00","size":4565998,"digest":"1a7f715f91fa17b0018650fa22b43778aad419157b8fdb9d67a02ea11760349b","integrity":"sha256-Gn9xX5H6F7ABhlD6IrQ3eKrUGRV7j9udZ6AuoRdgNJs="},"admin-5902a288ce59247a683d5719189fc6260be1e38181872e710a7643ad60caaccc.css":{"logical_path":"admin.css","mtime":"2019-11-02T08:33:50+08:00","size":872434,"digest":"5902a288ce59247a683d5719189fc6260be1e38181872e710a7643ad60caaccc","integrity":"sha256-WQKiiM5ZJHpoPVcZGJ/GJgvh44GBhy5xCnZDrWDKrMw="},"admin-8ceaca69cdf7194b7a94e49b16ac5fa272f80e86493e5da27ab5a729de22c07a.js":{"logical_path":"admin.js","mtime":"2019-11-07T10:59:11+08:00","size":4575131,"digest":"8ceaca69cdf7194b7a94e49b16ac5fa272f80e86493e5da27ab5a729de22c07a","integrity":"sha256-jOrKac33GUt6lOSbFqxfonL4DoZJPl2ierWnKd4iwHo="},"admin-80cc0a53298c5abd849f03d8b8514d3263ef67fce38f83c05b1da0d30d3bb235.js":{"logical_path":"admin.js","mtime":"2019-11-07T17:20:35+08:00","size":4575538,"digest":"80cc0a53298c5abd849f03d8b8514d3263ef67fce38f83c05b1da0d30d3bb235","integrity":"sha256-gMwKUymMWr2EnwPYuFFNMmPvZ/zjj4PAWx2g0w07sjU="},"admin-62cbd1f755bfb83be19051bd099d6c58bf760d144f2eb890a06d98e694506dd4.js":{"logical_path":"admin.js","mtime":"2019-11-08T09:49:05+08:00","size":4575562,"digest":"62cbd1f755bfb83be19051bd099d6c58bf760d144f2eb890a06d98e694506dd4","integrity":"sha256-YsvR91W/uDvhkFG9CZ1sWL92DRRPLriQoG2Y5pRQbdQ="},"admin-a43c5a60b3ce25fd4322aa44414813d41aad3f6f94966f9b691f2f13b41277df.css":{"logical_path":"admin.css","mtime":"2019-11-08T10:05:27+08:00","size":872744,"digest":"a43c5a60b3ce25fd4322aa44414813d41aad3f6f94966f9b691f2f13b41277df","integrity":"sha256-pDxaYLPOJf1DIqpEQUgT1BqtP2+Ulm+baR8vE7QSd98="},"cooperative-874fcb0a0f1072b2245fbd18f00e0eb0e6a9e2e5b995008688b47693c3495699.js":{"logical_path":"cooperative.js","mtime":"2019-11-08T10:32:25+08:00","size":4415335,"digest":"874fcb0a0f1072b2245fbd18f00e0eb0e6a9e2e5b995008688b47693c3495699","integrity":"sha256-h0/LCg8QcrIkX70Y8A4OsOap4uW5lQCGiLR2k8NJVpk="},"cooperative-57330e03998e7ea29c4342718d18b36cc396a4a466c9b8c4ad371e44159f14d6.css":{"logical_path":"cooperative.css","mtime":"2019-11-08T10:05:46+08:00","size":834203,"digest":"57330e03998e7ea29c4342718d18b36cc396a4a466c9b8c4ad371e44159f14d6","integrity":"sha256-VzMOA5mOfqKcQ0JxjRizbMOWpKRmybjErTceRBWfFNY="}},"assets":{"admin.js":"admin-62cbd1f755bfb83be19051bd099d6c58bf760d144f2eb890a06d98e694506dd4.js","admin.css":"admin-a43c5a60b3ce25fd4322aa44414813d41aad3f6f94966f9b691f2f13b41277df.css","font-awesome/fontawesome-webfont.eot":"font-awesome/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot","font-awesome/fontawesome-webfont.woff2":"font-awesome/fontawesome-webfont-2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe.woff2","font-awesome/fontawesome-webfont.woff":"font-awesome/fontawesome-webfont-ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f07.woff","font-awesome/fontawesome-webfont.ttf":"font-awesome/fontawesome-webfont-aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8.ttf","font-awesome/fontawesome-webfont.svg":"font-awesome/fontawesome-webfont-ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4.svg","college.js":"college-18f5e8400331634e898a35acc2187815c096c25e0ab74aba341ae916166cd287.js","college.css":"college-2299e05f5e9b640e333ece624d4ab18a678fdabff0bc18b69a9c2e3de49cba8e.css","logo.png":"logo-7ff112568709bf97f9898fe87249b7a8f200ff1f48d537d85af87215f1870423.png","application.js":"application-9cfbc3d792599a1d0de5c7b84209e1c2b2e60336f0f01e19f0581663918708fb.js","application.css":"application-0e417478d56f42467e857cd186b29cbbc0d6c7c6e85c8a6f42f39ac618943de8.css","cooperative.js":"cooperative-874fcb0a0f1072b2245fbd18f00e0eb0e6a9e2e5b995008688b47693c3495699.js","cooperative.css":"cooperative-57330e03998e7ea29c4342718d18b36cc396a4a466c9b8c4ad371e44159f14d6.css"}} \ No newline at end of file diff --git a/public/assets/admin-80cc0a53298c5abd849f03d8b8514d3263ef67fce38f83c05b1da0d30d3bb235.js b/public/assets/admin-62cbd1f755bfb83be19051bd099d6c58bf760d144f2eb890a06d98e694506dd4.js similarity index 99% rename from public/assets/admin-80cc0a53298c5abd849f03d8b8514d3263ef67fce38f83c05b1da0d30d3bb235.js rename to public/assets/admin-62cbd1f755bfb83be19051bd099d6c58bf760d144f2eb890a06d98e694506dd4.js index 5fa824eef..84af99c3f 100644 --- a/public/assets/admin-80cc0a53298c5abd849f03d8b8514d3263ef67fce38f83c05b1da0d30d3bb235.js +++ b/public/assets/admin-62cbd1f755bfb83be19051bd099d6c58bf760d144f2eb890a06d98e694506dd4.js @@ -137829,6 +137829,7 @@ $(document).on('turbolinks:load', function() { $searchForm.find('.school-select').select2({ theme: 'bootstrap4', placeholder: '请选择创建者单位', + allowClear: true, minimumInputLength: 1, ajax: { delay: 500, diff --git a/public/assets/admin-80cc0a53298c5abd849f03d8b8514d3263ef67fce38f83c05b1da0d30d3bb235.js.gz b/public/assets/admin-62cbd1f755bfb83be19051bd099d6c58bf760d144f2eb890a06d98e694506dd4.js.gz similarity index 99% rename from public/assets/admin-80cc0a53298c5abd849f03d8b8514d3263ef67fce38f83c05b1da0d30d3bb235.js.gz rename to public/assets/admin-62cbd1f755bfb83be19051bd099d6c58bf760d144f2eb890a06d98e694506dd4.js.gz index 406ee2a4dc7ba13e3e997afd3ba75e631ff08131..ff59a98b580a8bc47067e95297f44b2ab7e95eba 100644 GIT binary patch delta 9131 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 delta 9129 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 .action { padding: 0 3px; } -/* line 56, app/assets/stylesheets/admins/common.scss */ +/* line 62, app/assets/stylesheets/admins/common.scss */ .admin-body-container .action-container .more-action-dropdown .dropdown-item { font-size: 14px; } -/* line 63, app/assets/stylesheets/admins/common.scss */ +/* line 69, app/assets/stylesheets/admins/common.scss */ .admin-body-container .paginate-container { margin-top: 20px; display: -webkit-box; @@ -25511,68 +25522,68 @@ input.form-control { align-items: center; } -/* line 70, app/assets/stylesheets/admins/common.scss */ +/* line 76, app/assets/stylesheets/admins/common.scss */ .admin-body-container .paginate-container .paginate-total { margin-bottom: 10px; color: darkgrey; } -/* line 75, app/assets/stylesheets/admins/common.scss */ +/* line 81, app/assets/stylesheets/admins/common.scss */ .admin-body-container .paginate-container .pagination { margin-bottom: 0px; } -/* line 81, app/assets/stylesheets/admins/common.scss */ +/* line 87, app/assets/stylesheets/admins/common.scss */ .admin-body-container .search-form-container { display: -webkit-box; display: flex; margin-bottom: 20px; } -/* line 85, app/assets/stylesheets/admins/common.scss */ +/* line 91, app/assets/stylesheets/admins/common.scss */ .admin-body-container .search-form-container .search-form { -webkit-box-flex: 1; flex: 1; } -/* line 88, app/assets/stylesheets/admins/common.scss */ +/* line 94, app/assets/stylesheets/admins/common.scss */ .admin-body-container .search-form-container .search-form * { font-size: 14px; } -/* line 90, app/assets/stylesheets/admins/common.scss */ +/* line 96, app/assets/stylesheets/admins/common.scss */ .admin-body-container .search-form-container .search-form select, .admin-body-container .search-form-container .search-form input { margin-right: 10px; font-size: 14px; } -/* line 97, app/assets/stylesheets/admins/common.scss */ +/* line 103, app/assets/stylesheets/admins/common.scss */ .admin-body-container .global-error { color: grey; min-height: 300px; } -/* line 101, app/assets/stylesheets/admins/common.scss */ +/* line 107, app/assets/stylesheets/admins/common.scss */ .admin-body-container .global-error-code { font-size: 80px; } -/* line 105, app/assets/stylesheets/admins/common.scss */ +/* line 111, app/assets/stylesheets/admins/common.scss */ .admin-body-container .global-error-text { font-size: 24px; } -/* line 111, app/assets/stylesheets/admins/common.scss */ +/* line 117, app/assets/stylesheets/admins/common.scss */ .admin-body-container .nav-tabs .nav-link { padding: 0.5rem 2rem; } -/* line 116, app/assets/stylesheets/admins/common.scss */ +/* line 122, app/assets/stylesheets/admins/common.scss */ .admin-body-container .CodeMirror { border: 1px solid #ced4da; } -/* line 120, app/assets/stylesheets/admins/common.scss */ +/* line 126, app/assets/stylesheets/admins/common.scss */ .admin-body-container .batch-action-container { margin-bottom: -15px; padding: 10px 20px 0; diff --git a/public/assets/admin-5902a288ce59247a683d5719189fc6260be1e38181872e710a7643ad60caaccc.css.gz b/public/assets/admin-a43c5a60b3ce25fd4322aa44414813d41aad3f6f94966f9b691f2f13b41277df.css.gz similarity index 78% rename from public/assets/admin-5902a288ce59247a683d5719189fc6260be1e38181872e710a7643ad60caaccc.css.gz rename to public/assets/admin-a43c5a60b3ce25fd4322aa44414813d41aad3f6f94966f9b691f2f13b41277df.css.gz index d40b4868f2638f88e5ac4003f60a35afe9164ec7..20f375d4d779ba04d685ef1da0b87738dff8e22d 100644 GIT binary patch delta 15942 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 oz>% delta 15930 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 c{brJFfWpmHCo9WI@cTdcpZ_G`bMj9O00+^ZeE .action { padding: 0 3px; } -/* line 56, app/assets/stylesheets/cooperative/common.scss */ +/* line 62, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .action-container .more-action-dropdown .dropdown-item { font-size: 14px; } -/* line 63, app/assets/stylesheets/cooperative/common.scss */ +/* line 69, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .paginate-container { margin-top: 20px; display: -webkit-box; @@ -25071,68 +25082,68 @@ input.form-control { align-items: center; } -/* line 70, app/assets/stylesheets/cooperative/common.scss */ +/* line 76, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .paginate-container .paginate-total { margin-bottom: 10px; color: darkgrey; } -/* line 75, app/assets/stylesheets/cooperative/common.scss */ +/* line 81, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .paginate-container .pagination { margin-bottom: 0px; } -/* line 81, app/assets/stylesheets/cooperative/common.scss */ +/* line 87, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .search-form-container { display: -webkit-box; display: flex; margin-bottom: 20px; } -/* line 85, app/assets/stylesheets/cooperative/common.scss */ +/* line 91, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .search-form-container .search-form { -webkit-box-flex: 1; flex: 1; } -/* line 88, app/assets/stylesheets/cooperative/common.scss */ +/* line 94, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .search-form-container .search-form * { font-size: 14px; } -/* line 90, app/assets/stylesheets/cooperative/common.scss */ +/* line 96, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .search-form-container .search-form select, .cooperative-body-container .search-form-container .search-form input { margin-right: 10px; font-size: 14px; } -/* line 97, app/assets/stylesheets/cooperative/common.scss */ +/* line 103, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .global-error { color: grey; min-height: 300px; } -/* line 101, app/assets/stylesheets/cooperative/common.scss */ +/* line 107, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .global-error-code { font-size: 80px; } -/* line 105, app/assets/stylesheets/cooperative/common.scss */ +/* line 111, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .global-error-text { font-size: 24px; } -/* line 111, app/assets/stylesheets/cooperative/common.scss */ +/* line 117, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .nav-tabs .nav-link { padding: 0.5rem 2rem; } -/* line 116, app/assets/stylesheets/cooperative/common.scss */ +/* line 122, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .CodeMirror { border: 1px solid #ced4da; } -/* line 120, app/assets/stylesheets/cooperative/common.scss */ +/* line 126, app/assets/stylesheets/cooperative/common.scss */ .cooperative-body-container .batch-action-container { margin-bottom: -15px; padding: 10px 20px 0; diff --git a/public/assets/cooperative-8057adee2454dbc9d648305faf9ede9824f40d3bd0184e816e8035bb7f1e730b.css.gz b/public/assets/cooperative-57330e03998e7ea29c4342718d18b36cc396a4a466c9b8c4ad371e44159f14d6.css.gz similarity index 79% rename from public/assets/cooperative-8057adee2454dbc9d648305faf9ede9824f40d3bd0184e816e8035bb7f1e730b.css.gz rename to public/assets/cooperative-57330e03998e7ea29c4342718d18b36cc396a4a466c9b8c4ad371e44159f14d6.css.gz index acb04f26f3c42b69bb13837f7631fac139aa7588..d4ed165823ec6fe32735461b536b2e838a84d2e7 100644 GIT binary patch delta 14890 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Ƴ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 z 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 0) { + var $searchForm = $('.laboratory-shixun-list-form .search-form'); + + $searchForm.find('select#tag_id').select2({ + placeholder: "请选择", + allowClear: true + }); + + // 上传图片 + $('.modal.cooperative-upload-file-modal').on('upload:success', function (e, data) { + var $imageElement = $('.shixun-image-' + data.source_id); + if($imageElement.length === 0) return; + $imageElement.attr('src', data.url); + $imageElement.show(); + $imageElement.next().html('重新上传'); + }); + + // 定义状态切换监听事件 + var defineStatusChangeFunc = function (doElement, undoElement, url, callback) { + $('.laboratory-shixun-list-container').on('click', doElement, function () { + var $doAction = $(this); + var $undoAction = $doAction.siblings(undoElement); + + var laboratoryShixunId = $doAction.data('id'); + customConfirm({ + content: '确认进行该操作吗?', + ok: function () { + $.ajax({ + url: '/cooperative/laboratory_shixuns/' + laboratoryShixunId + url, + method: 'POST', + dataType: 'json', + success: function () { + show_success_flash(); + $doAction.hide(); + $undoAction.show(); + if (callback && typeof callback === "function") { + callback(laboratoryShixunId, url); + } + } + }); + } + }); + }); + } + + // 首页展示与取消首页展示 + var homepageShowCallback = function (laboratoryShixunId, url) { + var $laboratoryShixunItem = $('.laboratory-shixun-list-container').find('.laboratory-shixun-item-' + laboratoryShixunId); + + if (url === '/homepage') { + $laboratoryShixunItem.find('.homepage-badge').show(); + } else { + $laboratoryShixunItem.find('.homepage-badge').hide(); + } + } + defineStatusChangeFunc('.homepage-show-action', '.homepage-hide-action', '/homepage', homepageShowCallback); + defineStatusChangeFunc('.homepage-hide-action', '.homepage-show-action', '/cancel_homepage', homepageShowCallback); + } +}) +; +$(document).on('turbolinks:load', function() { + if ($('body.cooperative-laboratory-subjects-index-page').length > 0) { + var $searchForm = $('.laboratory-subject-list-form .search-form'); + + // ************** 学校选择 ************* + $searchForm.find('.school-select').select2({ + theme: 'bootstrap4', + placeholder: '请选择创建者单位', + allowClear: true, + minimumInputLength: 1, + ajax: { + delay: 500, + url: '/api/schools/search.json', + dataType: 'json', + data: function (params) { + return {keyword: params.term}; + }, + processResults: function (data) { + return {results: data.schools} + } + }, + templateResult: function (item) { + if (!item.id || item.id === '') return item.text; + return item.name; + }, + templateSelection: function (item) { + if (item.id) { + } + return item.name || item.text; + } + }); + + // 上传图片 + $('.modal.cooperative-upload-file-modal').on('upload:success', function (e, data) { + var $imageElement = $('.subject-image-' + data.source_id); + if($imageElement.length === 0) return; + $imageElement.attr('src', data.url); + $imageElement.show(); + $imageElement.next().html('重新上传'); + }); + + // 定义状态切换监听事件 + var defineStatusChangeFunc = function (doElement, undoElement, url, callback) { + $('.laboratory-subject-list-container').on('click', doElement, function () { + var $doAction = $(this); + var $undoAction = $doAction.siblings(undoElement); + + var laboratorySubjectId = $doAction.data('id'); + customConfirm({ + content: '确认进行该操作吗?', + ok: function () { + $.ajax({ + url: '/cooperative/laboratory_subjects/' + laboratorySubjectId + url, + method: 'POST', + dataType: 'json', + success: function () { + show_success_flash(); + $doAction.hide(); + $undoAction.show(); + if (callback && typeof callback === "function") { + callback(laboratorySubjectId, url); + } + } + }); + } + }); + }); + } + + // 首页展示与取消首页展示 + var homepageShowCallback = function (laboratoryShixunId, url) { + var $laboratoryShixunItem = $('.laboratory-subject-list-container').find('.laboratory-subject-item-' + laboratoryShixunId); + + if (url === '/homepage') { + $laboratoryShixunItem.find('.homepage-badge').show(); + } else { + $laboratoryShixunItem.find('.homepage-badge').hide(); + } + } + defineStatusChangeFunc('.homepage-show-action', '.homepage-hide-action', '/homepage', homepageShowCallback); + defineStatusChangeFunc('.homepage-hide-action', '.homepage-show-action', '/cancel_homepage', homepageShowCallback); + } +}) +; $(document).on('turbolinks:load', function() { if ($('body.cooperative-laboratory-users-index-page').length > 0) { // ============= 添加管理员 ============== @@ -136109,6 +136254,24 @@ $(document).on('turbolinks:load', function() { }); } }); +$(document).on('turbolinks:load', function () { + $('.cooperative-modal-container').on('show.bs.modal', '.modal.cooperative-edit-subject-modal', function () { + var $modal = $('.modal.cooperative-edit-subject-modal'); + var $form = $modal.find('form.cooperative-edit-subject-form'); + + $modal.on('click', '.submit-btn', function () { + $form.find('.error').html(''); + var url = $form.attr('action'); + + $.ajax({ + method: 'PATCH', + dataType: 'script', + url: url, + data: $form.serialize() + }); + }); + }) +}); $(document).on('turbolinks:load', function() { var $modal = $('.modal.cooperative-upload-file-modal'); if ($modal.length > 0) { @@ -136153,7 +136316,7 @@ $(document).on('turbolinks:load', function() { $.ajax({ method: 'POST', dataType: 'json', - url: '/cooperatives/files?' + formDataString, + url: '/cooperative/files?' + formDataString, data: new FormData($form[0]), processData: false, contentType: false, diff --git a/public/assets/cooperative-4fe879591997da39d38e94f6f5eb3b688aa827fa42cb8fd73d21bc96ed880236.js.gz b/public/assets/cooperative-874fcb0a0f1072b2245fbd18f00e0eb0e6a9e2e5b995008688b47693c3495699.js.gz similarity index 98% rename from public/assets/cooperative-4fe879591997da39d38e94f6f5eb3b688aa827fa42cb8fd73d21bc96ed880236.js.gz rename to public/assets/cooperative-874fcb0a0f1072b2245fbd18f00e0eb0e6a9e2e5b995008688b47693c3495699.js.gz index b034ad16d654e16cf475c4cf592162a5549b5580..8ae176f36a510bf24d8e963df85176057ccba9a4 100644 GIT binary patch delta 16529 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 I0cT%B0F9x>*#H0l delta 15668 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 Date: Fri, 8 Nov 2019 10:40:39 +0800 Subject: [PATCH 19/36] =?UTF-8?q?=E9=97=AE=E5=8D=B7=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/poll/PollDetailTabSecond.js | 54 ++++++++++++------- .../courses/poll/PollDetailTabThird.js | 20 ++++--- 2 files changed, 48 insertions(+), 26 deletions(-) diff --git a/public/react/src/modules/courses/poll/PollDetailTabSecond.js b/public/react/src/modules/courses/poll/PollDetailTabSecond.js index f52e77dd8..8d73ec5da 100644 --- a/public/react/src/modules/courses/poll/PollDetailTabSecond.js +++ b/public/react/src/modules/courses/poll/PollDetailTabSecond.js @@ -1,5 +1,5 @@ import React,{ Component } from "react"; -import { Pagination} from "antd"; +import { Pagination , Spin } from "antd"; import NoneData from "../coursesPublic/NoneData" import '../css/members.css' @@ -16,10 +16,14 @@ class PollDetailTabSecond extends Component{ page:1, limit:10, questions:undefined, - questionsInfo:undefined + questionsInfo:undefined, + isSpin:false } } getInfo=(page)=>{ + this.setState({ + isSpin:true + }) let pollId=this.props.match.params.pollId; let url=`/polls/${pollId}/commit_result.json?page=${page}`; axios.get(url).then((result)=>{ @@ -27,7 +31,8 @@ class PollDetailTabSecond extends Component{ this.setState({ page: page, questions:result.data.questions, - questionsInfo:result.data.question_types + questionsInfo:result.data.question_types, + isSpin:false }) } }).catch((error)=>{ @@ -56,11 +61,12 @@ class PollDetailTabSecond extends Component{ } render(){ - let {page, limit, questions, questionsInfo} = this.state; + let {page, limit, questions, questionsInfo , isSpin} = this.state; return( +
    { - questions && questions.length>0?questions.map((item,key)=>{ + questions && questions.length>0 && questions.map((item,key)=>{ return(
    @@ -91,7 +97,8 @@ class PollDetailTabSecond extends Component{ { item.question.question_type==3?
      - 文本答案 + 编号 + 文本答案
    :
      @@ -105,19 +112,22 @@ class PollDetailTabSecond extends Component{ {/* 主观题 */} { item.question.question_type == 3 && item.question.vote_text && -
      -
        - - { - item.question.vote_text.map((txt,t)=>{ - return( -
      • {t+1}.{txt}
      • - ) - }) - } -
        -
      -
      + + { + item.question.vote_text.map((txt,t)=>{ + return( +
      +
        + {t+1} + +
      • {txt}
      • +
        +
      +
      + ) + }) + } +
      } {/* 单选和多选 */} { @@ -166,7 +176,10 @@ class PollDetailTabSecond extends Component{
    ) - }): + }) + } + { + questions && questions.length == 0 && } { questionsInfo && questionsInfo.q_counts > limit && @@ -177,6 +190,7 @@ class PollDetailTabSecond extends Component{ }
    +
    ) } } diff --git a/public/react/src/modules/courses/poll/PollDetailTabThird.js b/public/react/src/modules/courses/poll/PollDetailTabThird.js index 32d35818d..1e03adb5a 100644 --- a/public/react/src/modules/courses/poll/PollDetailTabThird.js +++ b/public/react/src/modules/courses/poll/PollDetailTabThird.js @@ -1,5 +1,5 @@ import React,{ Component } from "react"; - +import { Spin } from 'antd'; import '../css/members.css' import '../css/busyWork.css' import './pollStyle.css' @@ -12,10 +12,14 @@ class PollDetailTabThird extends Component{ constructor(props){ super(props); this.state={ - pollDetail:undefined + pollDetail:undefined, + isSpin:false } } getPollInfo=()=>{ + this.setState({ + isSpin:true + }) let pollId=this.props.match.params.pollId; let url=`/polls/${pollId}.json`; axios.get(url).then((result)=>{ @@ -23,12 +27,14 @@ class PollDetailTabThird extends Component{ if (result.data.status === 401) { //未登入 this.setState({ - pollDetail: undefined + pollDetail: undefined, + isSpin:false }) return } this.setState({ - pollDetail:result.data + pollDetail:result.data, + isSpin:false }) } }).catch((error)=>{ @@ -39,10 +45,12 @@ class PollDetailTabThird extends Component{ this.getPollInfo(); } render(){ - let {pollDetail}=this.state; + let {pollDetail , isSpin}=this.state; return(
    - + + +
    ) } From 609bf2a6c57abe607782c5a7666b6ac0b2b4f472 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 8 Nov 2019 10:42:23 +0800 Subject: [PATCH 20/36] =?UTF-8?q?=E8=B0=83=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/coursesPublic/ModulationModal.js | 32 +++++++++++++++++-- .../exercise/Studentshavecompletedthelist.js | 24 ++++++++++++++ 2 files changed, 53 insertions(+), 3 deletions(-) diff --git a/public/react/src/modules/courses/coursesPublic/ModulationModal.js b/public/react/src/modules/courses/coursesPublic/ModulationModal.js index 8c3fcaa37..196dbfeac 100644 --- a/public/react/src/modules/courses/coursesPublic/ModulationModal.js +++ b/public/react/src/modules/courses/coursesPublic/ModulationModal.js @@ -58,7 +58,34 @@ class ModulationModal extends Component{ setInputs=(e)=>{ console.log("setInputs"); + console.log(e); let value = undefined; + if (e === undefined) { + this.setState({ + borredszf: "ml10 color-grey-9 bor-reds ", + Inputsval: "", + Inputsvaltype: true, + Inputsvaltest: "请输入分数", + }) + return; + } else if (e === null) { + this.setState({ + borredszf: "ml10 color-grey-9 bor-reds ", + Inputsval: "", + Inputsvaltype: true, + Inputsvaltest: "请输入分数", + }) + return; + } else if (e === "") { + this.setState({ + borredszf: "ml10 color-grey-9 bor-reds ", + Inputsval: "", + Inputsvaltype: true, + Inputsvaltest: "请输入分数", + }) + return; + } + try { value = parseFloat(e); } catch (e) { @@ -91,7 +118,6 @@ class ModulationModal extends Component{ }) return; } - console.log(value); this.setState({ Inputsval: value, Inputsvaltype: false, @@ -144,7 +170,7 @@ class ModulationModal extends Component{ ` .myinputnumbers .ant-input-number-input{ line-height: 40px; - height: 40px; + height: 35px; } ` } @@ -157,7 +183,7 @@ class ModulationModal extends Component{ }} step={0.1} - onChange={this.setInputs} + onChange={(e) => this.setInputs(e)} value={Inputsval === undefined || Inputsval === null ? 0 : Inputsval}/> Date: Fri, 8 Nov 2019 10:43:13 +0800 Subject: [PATCH 21/36] fix --- app/controllers/cooperative/base_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/cooperative/base_controller.rb b/app/controllers/cooperative/base_controller.rb index 5ab08582d..556cd7aa9 100644 --- a/app/controllers/cooperative/base_controller.rb +++ b/app/controllers/cooperative/base_controller.rb @@ -16,7 +16,7 @@ class Cooperative::BaseController < ApplicationController private def current_laboratory - @_current_laboratory ||= Laboratory.find_by_subdomain('hut' || request.subdomain) + @_current_laboratory ||= Laboratory.find_by_subdomain(request.subdomain) end def current_setting_or_default(name) From 7e2993fac1b4925287fe46279cfe55905e99705e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 8 Nov 2019 11:08:35 +0800 Subject: [PATCH 22/36] =?UTF-8?q?=E8=B0=83=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/coursesPublic/ModulationModal.js | 49 ++----------------- 1 file changed, 5 insertions(+), 44 deletions(-) diff --git a/public/react/src/modules/courses/coursesPublic/ModulationModal.js b/public/react/src/modules/courses/coursesPublic/ModulationModal.js index 196dbfeac..601e6dfbc 100644 --- a/public/react/src/modules/courses/coursesPublic/ModulationModal.js +++ b/public/react/src/modules/courses/coursesPublic/ModulationModal.js @@ -59,46 +59,7 @@ class ModulationModal extends Component{ setInputs=(e)=>{ console.log("setInputs"); console.log(e); - let value = undefined; - if (e === undefined) { - this.setState({ - borredszf: "ml10 color-grey-9 bor-reds ", - Inputsval: "", - Inputsvaltype: true, - Inputsvaltest: "请输入分数", - }) - return; - } else if (e === null) { - this.setState({ - borredszf: "ml10 color-grey-9 bor-reds ", - Inputsval: "", - Inputsvaltype: true, - Inputsvaltest: "请输入分数", - }) - return; - } else if (e === "") { - this.setState({ - borredszf: "ml10 color-grey-9 bor-reds ", - Inputsval: "", - Inputsvaltype: true, - Inputsvaltest: "请输入分数", - }) - return; - } - - try { - value = parseFloat(e); - } catch (e) { - this.setState({ - borredszf: "ml10 color-grey-9 bor-reds ", - Inputsval: 0, - Inputsvaltype: true, - Inputsvaltest: "请输入分数", - }) - return; - } - - if (value === undefined || value === null || value === "") { + if (e === undefined || e === null || e === "") { this.setState({ borredszf: "ml10 color-grey-9 bor-reds ", Inputsval: 0, @@ -108,18 +69,18 @@ class ModulationModal extends Component{ return } var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/ - var nubmer = value; + var nubmer = e; if (!re.test(nubmer)) { this.setState({ borredszf: "ml10 color-grey-9 bor-reds ", - Inputsval: value, + Inputsval: e, Inputsvaltype: true, Inputsvaltest: "请输入0-100的分数", }) return; } this.setState({ - Inputsval: value, + Inputsval: parseFloat(e), Inputsvaltype: false, }) } @@ -195,7 +156,7 @@ class ModulationModal extends Component{ { Inputsvaltype === true ? -

    {Inputsvaltest}

    +

    {Inputsvaltest}

    : "" } From 5603b95326d76d36cfc4bd01dd723858a3daf1a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Fri, 8 Nov 2019 11:18:31 +0800 Subject: [PATCH 23/36] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/courses/boards/BoardsNew.js | 9 +- .../shixunHomework/Listofworksstudentone.js | 90 ++++++++++--------- 2 files changed, 51 insertions(+), 48 deletions(-) diff --git a/public/react/src/modules/courses/boards/BoardsNew.js b/public/react/src/modules/courses/boards/BoardsNew.js index 6dc14b983..018d16853 100644 --- a/public/react/src/modules/courses/boards/BoardsNew.js +++ b/public/react/src/modules/courses/boards/BoardsNew.js @@ -30,7 +30,8 @@ class BoardsNew extends Component{ boards: [], title_num: 0, email_notify:false, - isemail_notify:false + isemail_notify:false, + isemail_notifys:false } } addSuccess = () => { @@ -99,7 +100,7 @@ class BoardsNew extends Component{ } }) - this.setState({ fileList: _fileList, board_name: data.board_name, title_num: parseInt(data.subject.length) ,isemail_notify:response.data.data.email_notify}) + this.setState({ fileList: _fileList, board_name: data.board_name, title_num: parseInt(data.subject.length) ,isemail_notifys:response.data.data.email_notify}) } } }) @@ -341,8 +342,8 @@ class BoardsNew extends Component{ {/* notRequired */}
    - {this.state.boardsdata&&this.state.boardsdata.email_notify===true?this.props.isAdminOrTeacher()===true? - 发送邮件提醒 + {this.state.boardsdata&&this.state.boardsdata.email_notify===true?this.props.isAdminOrTeacher()===true? + 发送邮件提醒 :"":""} { isAdmin && diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 9f532bc69..982e8f707 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -288,7 +288,11 @@ class Listofworksstudentone extends Component { ), }, { - title: '实战耗时', + title:实训总耗时 + 计算规则:
    + 学员离开实训学习界面停止计时;
    + 评测首次通过之后,停止计时
    + }>
    , dataIndex: 'cost_time', key: 'cost_time', align: 'center', @@ -383,7 +387,11 @@ class Listofworksstudentone extends Component { ) }, { - title: '效率分', + title: 效率分 + 计算规则:
    + 学员离开实训学习界面停止计时;
    + 评测首次通过之后,停止计时
    + }>
    , dataIndex: 'efficiencyscore', key: 'efficiencyscore', align: 'center', @@ -645,7 +653,11 @@ class Listofworksstudentone extends Component { ), }, { - title: '实战耗时', + title:实训总耗时 + 计算规则:
    + 学员离开实训学习界面停止计时;
    + 评测首次通过之后,停止计时
    + }>
    , dataIndex: 'cost_time', key: 'cost_time', align: 'center', @@ -736,7 +748,11 @@ class Listofworksstudentone extends Component { ) }, { - title: '效率分', + title: 效率分 + 计算规则:
    + 学员离开实训学习界面停止计时;
    + 评测首次通过之后,停止计时
    + }>
    , dataIndex: 'efficiencyscore', key: 'efficiencyscore', align: 'center', @@ -953,7 +969,11 @@ class Listofworksstudentone extends Component { }, { - title: '实战耗时', + title:实训总耗时 + 计算规则:
    + 学员离开实训学习界面停止计时;
    + 评测首次通过之后,停止计时
    + }>
    , dataIndex: 'cost_time', key: 'cost_time', align: 'center', @@ -1007,18 +1027,11 @@ class Listofworksstudentone extends Component { className: 'font-14', render: (text, record) => ( - - -
    已通过{record.completion}关,共{this.state.challenges_count}关
    -
    完成任务评测之前查看了参考答案:{record.view_answer_count}关
    -
    }> {record.completion + "/" + this.state.challenges_count} - - -
    + ) }, { @@ -1043,7 +1056,11 @@ class Listofworksstudentone extends Component { ) }, { - title: '效率分', + title: 效率分 + 计算规则:
    + 学员离开实训学习界面停止计时;
    + 评测首次通过之后,停止计时
    + }>
    , dataIndex: 'efficiencyscore', key: 'efficiencyscore', align: 'center', @@ -1053,22 +1070,14 @@ class Listofworksstudentone extends Component { { record.efficiencyscore && record.efficiencyscore === "--" ? ( this.state.allow_late && this.state.allow_late === false ? - -
    作业截止时,系统根据学生在课堂成员中的效率表现自动评分
    - }> -- -
    : this.state.allow_late && this.state.allow_late === true ? - -
    补交结束时,系统根据学生在课堂成员中的效率表现自动评分
    - }> -- -
    : -- @@ -1304,7 +1313,11 @@ class Listofworksstudentone extends Component { // ), // }, { - title: '实战耗时', + title:实训总耗时 + 计算规则:
    + 学员离开实训学习界面停止计时;
    + 评测首次通过之后,停止计时
    + }>
    , dataIndex: 'cost_time', key: 'cost_time', align: 'center', @@ -1341,18 +1354,11 @@ class Listofworksstudentone extends Component { className: 'font-14', render: (text, record) => ( - - -
    已通过{record.completion}关,共{this.state.challenges_count}关
    -
    完成任务评测之前查看了参考答案:{record.view_answer_count}关
    - }> - {record.completion + "/" + this.state.challenges_count} -
    - -
    + {record.completion + "/" + this.state.challenges_count} +
    ) }, { @@ -1377,7 +1383,11 @@ class Listofworksstudentone extends Component { ) }, { - title: '效率分', + title: 效率分 + 计算规则:
    + 学员离开实训学习界面停止计时;
    + 评测首次通过之后,停止计时
    + }>
    , dataIndex: 'efficiencyscore', key: 'efficiencyscore', align: 'center', @@ -1387,22 +1397,14 @@ class Listofworksstudentone extends Component { { record.efficiencyscore && record.efficiencyscore === "--" ? ( this.state.allow_late && this.state.allow_late === false ? - -
    作业截止时,系统根据学生在课堂成员中的效率表现自动评分
    - }> -- -
    : this.state.allow_late && this.state.allow_late === true ? - -
    补交结束时,系统根据学生在课堂成员中的效率表现自动评分
    - }> -- -
    : -- From 7408d79d5b2b87339a720ab81a5617845d5201d1 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 8 Nov 2019 11:54:16 +0800 Subject: [PATCH 24/36] =?UTF-8?q?date=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/busyWork/CommonWorkSetting.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/public/react/src/modules/courses/busyWork/CommonWorkSetting.js b/public/react/src/modules/courses/busyWork/CommonWorkSetting.js index 00b283f9a..1e3ced6d3 100644 --- a/public/react/src/modules/courses/busyWork/CommonWorkSetting.js +++ b/public/react/src/modules/courses/busyWork/CommonWorkSetting.js @@ -724,22 +724,28 @@ class CommonWorkSetting extends Component{ let course_id=this.props.match.params.coursesId; const url = `/homework_commons/${workId}/update_settings.json` // comments + const temp_publish_time_date = new Date(temp_publish_time) + const temp_end_time_date = new Date(temp_end_time) + const late_time_date = new Date(late_time) + const evaluation_start_date = new Date(evaluation_start) + const evaluation_end_date = new Date(evaluation_end) + const appeal_time_date = new Date(appeal_time) axios.post(url,{ course_id , unified_setting: unified_setting, // 统一设置 group_settings: group_settings_param, - publish_time: temp_publish_time ? new Date(temp_publish_time.replace(/-/g, '/')) : temp_publish_time, // 发布 - end_time: temp_end_time ? new Date(temp_end_time.replace(/-/g, '/')) : temp_end_time, // 截止 + publish_time: temp_publish_time ? !isNaN(temp_publish_time_date.getTime()) ? temp_publish_time_date : new Date(temp_publish_time.replace(/-/g, '/')) : temp_publish_time, // 发布 + end_time: temp_end_time ? !isNaN(temp_end_time_date.getTime()) ? temp_end_time_date : new Date(temp_end_time.replace(/-/g, '/')) : temp_end_time, // 截止 late_penalty: late_penalty, // 迟交扣分 allow_late: allow_late, // 是否允许补交 - late_time: late_time ? new Date(late_time.replace(/-/g, '/')) : late_time, // 补交截止时间 + late_time: late_time ? !isNaN(late_time_date.getTime()) ? late_time_date : new Date(late_time.replace(/-/g, '/')) : late_time, // 补交截止时间 anonymous_comment: anonymous_comment, // true: 启用匿评 false:未启用匿评 - evaluation_start: evaluation_start ? new Date(evaluation_start.replace(/-/g, '/')) : evaluation_start, //匿评开始时间 - evaluation_end: evaluation_end ? new Date(evaluation_end.replace(/-/g, '/')) : evaluation_end, + evaluation_start: evaluation_start ? !isNaN(evaluation_start_date.getTime()) ? evaluation_start_date : new Date(evaluation_start.replace(/-/g, '/')) : evaluation_start, //匿评开始时间 + evaluation_end: evaluation_end ? !isNaN(evaluation_end_date.getTime()) ? evaluation_end_date : new Date(evaluation_end.replace(/-/g, '/')) : evaluation_end, evaluation_num: evaluation_num, // 匿评数 absence_penalty: absence_penalty, // 匿评扣分 anonymous_appeal: anonymous_appeal, // true: 启用匿评申诉, false:未启用 - appeal_time: appeal_time ? new Date(appeal_time.replace(/-/g, '/')) : appeal_time, // 申诉结束时间 + appeal_time: appeal_time ? !isNaN(appeal_time_date.getTime()) ? appeal_time_date : new Date(appeal_time.replace(/-/g, '/')) : appeal_time, // 申诉结束时间 appeal_penalty: appeal_penalty, // 违规匿评扣分 ta_mode: ta_mode, // 1:普通模式 0:复审模式 final_mode: final_mode, // true: 单项评分优先, false: 多项评分配比 From 31be0e43648014d9440c36af799123693a97a414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Fri, 8 Nov 2019 12:15:43 +0800 Subject: [PATCH 25/36] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exercise/Testpapersettinghomepage.js | 2 +- .../shixunHomework/Listofworksstudentone.js | 67 ++++++++++++++----- 2 files changed, 52 insertions(+), 17 deletions(-) diff --git a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js index 275044029..1398e18c1 100644 --- a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js +++ b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js @@ -443,7 +443,7 @@ class Testpapersettinghomepage extends Component{ this.setgameexercise(`/courses/${this.props.match.params.coursesId}/exercises/${this.props.match.params.Id}/users/${this.props.current_user.login}`)}>开始答题: - {exercise_status===2?"":exercise_status===3?"":exercise_status===4?"":start_Value[exercise_status]} + {exercise_status===2?start_Value[Commonheadofthetestpaper&&Commonheadofthetestpaper.user_permission.current_status]:exercise_status===3?"":exercise_status===4?"":start_Value[Commonheadofthetestpaper&&Commonheadofthetestpaper.user_permission.current_status]} :""} diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 982e8f707..da3f489e3 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -43,6 +43,7 @@ const {Option} = Select; //GraduationTaskssetting.js //作品列表(学生) +let allow_lates=false; class Listofworksstudentone extends Component { //unifiedsetting 统一设置 //allowreplenishment 允许补交 @@ -387,10 +388,18 @@ class Listofworksstudentone extends Component { ) }, { - title: 效率分 - 计算规则:
    - 学员离开实训学习界面停止计时;
    - 评测首次通过之后,停止计时
    + title: 效率分 + 补交结束时,系统根据学生在课堂成员中的
    + 效率表现自动评分。计算规则:
    + 学生工作效率= log(实训总得分/实训总耗时)
    + 学生效率分 = 学生工作效率 / 课堂学生最高
    + 工作效率 * 分值
    + :
    +					作业截止时,系统根据学生在课堂成员中的
    + 效率表现自动评分。计算规则:
    + 学生工作效率= log(实训总得分/实训总耗时)
    + 学生效率分 = 学生工作效率 / 课堂学生最高
    + 工作效率 * 分值
    }>
    , dataIndex: 'efficiencyscore', key: 'efficiencyscore', @@ -748,10 +757,18 @@ class Listofworksstudentone extends Component { ) }, { - title: 效率分 - 计算规则:
    - 学员离开实训学习界面停止计时;
    - 评测首次通过之后,停止计时
    + title: 效率分 + 补交结束时,系统根据学生在课堂成员中的
    + 效率表现自动评分。计算规则:
    + 学生工作效率= log(实训总得分/实训总耗时)
    + 学生效率分 = 学生工作效率 / 课堂学生最高
    + 工作效率 * 分值
    + :
    +					作业截止时,系统根据学生在课堂成员中的
    + 效率表现自动评分。计算规则:
    + 学生工作效率= log(实训总得分/实训总耗时)
    + 学生效率分 = 学生工作效率 / 课堂学生最高
    + 工作效率 * 分值
    }>
    , dataIndex: 'efficiencyscore', key: 'efficiencyscore', @@ -1056,10 +1073,18 @@ class Listofworksstudentone extends Component { ) }, { - title: 效率分 - 计算规则:
    - 学员离开实训学习界面停止计时;
    - 评测首次通过之后,停止计时
    + title: 效率分 + 补交结束时,系统根据学生在课堂成员中的
    + 效率表现自动评分。计算规则:
    + 学生工作效率= log(实训总得分/实训总耗时)
    + 学生效率分 = 学生工作效率 / 课堂学生最高
    + 工作效率 * 分值
    + :
    +					作业截止时,系统根据学生在课堂成员中的
    + 效率表现自动评分。计算规则:
    + 学生工作效率= log(实训总得分/实训总耗时)
    + 学生效率分 = 学生工作效率 / 课堂学生最高
    + 工作效率 * 分值
    }>
    , dataIndex: 'efficiencyscore', key: 'efficiencyscore', @@ -1383,10 +1408,18 @@ class Listofworksstudentone extends Component { ) }, { - title: 效率分 - 计算规则:
    - 学员离开实训学习界面停止计时;
    - 评测首次通过之后,停止计时
    + title: 效率分 + 补交结束时,系统根据学生在课堂成员中的
    + 效率表现自动评分。计算规则:
    + 学生工作效率= log(实训总得分/实训总耗时)
    + 学生效率分 = 学生工作效率 / 课堂学生最高
    + 工作效率 * 分值
    + :
    +					作业截止时,系统根据学生在课堂成员中的
    + 效率表现自动评分。计算规则:
    + 学生工作效率= log(实训总得分/实训总耗时)
    + 学生效率分 = 学生工作效率 / 课堂学生最高
    + 工作效率 * 分值
    }>
    , dataIndex: 'efficiencyscore', key: 'efficiencyscore', @@ -1713,6 +1746,7 @@ class Listofworksstudentone extends Component { homework_status: result.data.homework_status, update_score: result.data.update_score }); + allow_lates=result.data.allow_late; this.seacthdatat(result.data, result.data.student_works, result.data.work_efficiency, result.data.course_group_info, 1); if (result.data.student_works === undefined || result.data.student_works === null || JSON.stringify(result.data.student_works) === "[]") { @@ -2421,6 +2455,7 @@ class Listofworksstudentone extends Component { challenges_count: result.data.challenges_count, homework_status: result.data.homework_status, }); + allow_lates=result.data.allow_late this.seacthdatat(result.data, result.data.student_works, result.data.work_efficiency, result.data.course_group_info, page); this.props.Getdataback(result, result.data); // } From 40ac08166b0af62e878ef8fe42728320a74a8c5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 8 Nov 2019 12:16:48 +0800 Subject: [PATCH 26/36] =?UTF-8?q?=E5=90=88=E5=B9=B6=E9=98=BF=E9=87=8C?= =?UTF-8?q?=E4=BA=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/coursesPublic/ModulationModal.js | 57 ++++++++++++++----- .../courses/coursesPublic/Newshixunmodel.css | 2 + .../exercise/Studentshavecompletedthelist.js | 3 + 3 files changed, 47 insertions(+), 15 deletions(-) diff --git a/public/react/src/modules/courses/coursesPublic/ModulationModal.js b/public/react/src/modules/courses/coursesPublic/ModulationModal.js index 601e6dfbc..ebe9dd225 100644 --- a/public/react/src/modules/courses/coursesPublic/ModulationModal.js +++ b/public/react/src/modules/courses/coursesPublic/ModulationModal.js @@ -33,7 +33,7 @@ class ModulationModal extends Component{ this.setState({ Inputsval: "", Inputsvaltype: true, - Inputsvaltest: "请输入分数", + Inputsvaltest: "请填写分数", }) return } @@ -58,29 +58,39 @@ class ModulationModal extends Component{ setInputs=(e)=>{ console.log("setInputs"); - console.log(e); - if (e === undefined || e === null || e === "") { + console.log(e.target.value); + if (e.target.value === undefined || e.target.value === null || e.target.value === "") { this.setState({ borredszf: "ml10 color-grey-9 bor-reds ", - Inputsval: 0, + Inputsval: "", Inputsvaltype: true, - Inputsvaltest: "请输入分数", + Inputsvaltest: "请填写分数", }) return } var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/ - var nubmer = e; + var nubmer = e.target.value; if (!re.test(nubmer)) { this.setState({ borredszf: "ml10 color-grey-9 bor-reds ", - Inputsval: e, + Inputsval: e.target.value, + Inputsvaltype: true, + Inputsvaltest: "请输入0-100的分数", + }) + return; + } + + if (parseFloat(e.target.value) > 100) { + this.setState({ + borredszf: "ml10 color-grey-9 bor-reds ", + Inputsval: e.target.value, Inputsvaltype: true, Inputsvaltest: "请输入0-100的分数", }) return; } this.setState({ - Inputsval: parseFloat(e), + Inputsval: parseFloat(e.target.value), Inputsvaltype: false, }) } @@ -133,19 +143,36 @@ class ModulationModal extends Component{ line-height: 40px; height: 35px; } + ` } - + { + ` + .ant-input:hover { + border: 1px solid #DD1717!important; + } + .ant-input:focus { + border: 1px solid #DD1717!important; + } + } + ` + } + + : + "" + + } this.setInputs(e)} - value={Inputsval === undefined || Inputsval === null ? 0 : Inputsval}/> + placeholder="请填写分数" + onChange={(e) => this.setInputs(e)} + value={Inputsval === undefined || Inputsval === null ? "" : Inputsval}/> Date: Fri, 8 Nov 2019 13:55:40 +0800 Subject: [PATCH 27/36] =?UTF-8?q?=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/courses/shixunHomework/ShixunWorkReport.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/ShixunWorkReport.js b/public/react/src/modules/courses/shixunHomework/ShixunWorkReport.js index 2a2ed9a9e..737ed4c00 100644 --- a/public/react/src/modules/courses/shixunHomework/ShixunWorkReport.js +++ b/public/react/src/modules/courses/shixunHomework/ShixunWorkReport.js @@ -72,10 +72,10 @@ class ShixunWorkReport extends Component { }) } }else { - this.props.slowDownload(url) + // this.props.slowDownload(url) - // this.props.showNotification(`正在下载中`); - // window.open("/api"+url+'?export=true', '_blank'); + this.props.showNotification(`正在下载中`); + window.open("/api"+url+'?export=true', '_blank'); this.setState({ isspinning: false }) } }).catch((error) => { From 8af5243375a783cbec4208b54a6fd41d0b09be59 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Fri, 8 Nov 2019 14:07:08 +0800 Subject: [PATCH 28/36] change student_works export pdf --- app/controllers/student_works_controller.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/controllers/student_works_controller.rb b/app/controllers/student_works_controller.rb index de764992b..060656a88 100644 --- a/app/controllers/student_works_controller.rb +++ b/app/controllers/student_works_controller.rb @@ -524,11 +524,16 @@ class StudentWorksController < ApplicationController @echart_data = student_efficiency(@homework, @work) @myself_eff = @echart_data[:efficiency_list].find { |item| item.last == @user.id } @myself_consume = @echart_data[:consume_list].find { |item| item.last == @user.id } - filename_ = "#{@use&.student_id}_#{@use&.real_name}_#{@shixun&.name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" filename = Base64.urlsafe_encode64(filename_.strip) stylesheets = %w(shixun_work/shixun_work.css shared/codemirror.css) - render pdf: 'shixun_work/shixun_work', filename: filename, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type",stream:false + if params[:export].present? && params[:export] + normal_status(0,"正在下载中") + else + set_export_cookies + render pdf: 'shixun_work/shixun_work', filename: filename, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type",stream:false + end + # render pdf: 'shixun_work/shixun_work', filename: filename, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type",stream:false end # 作品调分 From 8eb87be971d18a05dfa90dab12ed46b64072c021 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Fri, 8 Nov 2019 14:28:03 +0800 Subject: [PATCH 29/36] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=AE=9E=E8=AE=AD?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E7=9B=B8=E5=85=B3=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shixunHomework/Listofworksstudentone.js | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index da3f489e3..00da5bd6b 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -1138,7 +1138,7 @@ class Listofworksstudentone extends Component { { record.ultimate_score === true ? -
    {record.user_name}{record.user_login}
    + {/*
    {record.user_name}{record.user_login}
    */}
    {record.finalscore === "--" ? 最终调整成绩:0分 : 最终调整成绩:{record.finalscore}分}
    }> @@ -1164,16 +1164,21 @@ class Listofworksstudentone extends Component {
    : -
    {record.user_name}{record.user_login}
    -
    完成任务评测之前查看了参考答案:{record.view_answer_count}关
    + {/*
    {record.user_name}{record.user_login}
    */} +
    {record.levelscore === "--" ? 关卡得分:0分 : 关卡得分:{record.levelscore}分}
    +
    {record.efficiencyscore === "--" ? 效率评分:0分 : 效率评分:{record.efficiencyscore}分}
    +
    {record.late_penalty === "--" ? 迟交扣分:0分 : 迟交扣分:{record.late_penalty}分}
    -
    {record.finalscore === "--" ? 当前成绩:0分 : - 当前成绩:{record.finalscore}分}
    + + {record.view_answer_count===null?"":
    查看参考答案:{record.view_answer_count}关
    } + +
    {record.finalscore === "--" ? 最终成绩:0分 : + 最终成绩:{record.finalscore}分}
    }> { record.finalscore && record.finalscore === "--" ? @@ -1473,7 +1478,7 @@ class Listofworksstudentone extends Component { { record.ultimate_score === true ? -
    {record.user_name}{record.user_login}
    + {/*
    {record.user_name}{record.user_login}
    */}
    {record.finalscore === "--" ? 最终调整成绩:0分 : 最终调整成绩:{record.finalscore}分}
    }> @@ -1499,16 +1504,21 @@ class Listofworksstudentone extends Component {
    : -
    {record.user_name}{record.user_login}
    -
    完成任务评测之前查看了参考答案:{record.view_answer_count}关
    + {/*
    {record.user_name}{record.user_login}
    */} +
    {record.levelscore === "--" ? 关卡得分:0分 : 关卡得分:{record.levelscore}分}
    +
    {record.efficiencyscore === "--" ? 效率评分:0分 : 效率评分:{record.efficiencyscore}分}
    +
    {record.late_penalty === "--" ? 迟交扣分:0分 : 迟交扣分:{record.late_penalty}分}
    -
    {record.finalscore === "--" ? 当前成绩:0分 : - 当前成绩:{record.finalscore}分}
    + + {record.view_answer_count===null?"":
    查看参考答案:{record.view_answer_count}关
    } + +
    {record.finalscore === "--" ? 最终成绩:0分 : + 最终成绩:{record.finalscore}分}
    }> { record.finalscore && record.finalscore === "--" ? From 7e45d563e7b34c60a135ddd3dd408110d98d8c81 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 8 Nov 2019 14:31:09 +0800 Subject: [PATCH 30/36] =?UTF-8?q?=E9=97=AE=E5=8D=B7-=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../react/src/modules/courses/poll/PollDetailTabSecond.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/react/src/modules/courses/poll/PollDetailTabSecond.js b/public/react/src/modules/courses/poll/PollDetailTabSecond.js index 8d73ec5da..c4a743ac6 100644 --- a/public/react/src/modules/courses/poll/PollDetailTabSecond.js +++ b/public/react/src/modules/courses/poll/PollDetailTabSecond.js @@ -96,7 +96,7 @@ class PollDetailTabSecond extends Component{

    { item.question.question_type==3? -

      +
        编号 文本答案
      @@ -117,9 +117,9 @@ class PollDetailTabSecond extends Component{ item.question.vote_text.map((txt,t)=>{ return(
      -
        - {t+1} - +
          + {t+1} +
        • {txt}
        From 2356f28d213188c47b432c7b533219691d383f0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 8 Nov 2019 14:47:29 +0800 Subject: [PATCH 31/36] =?UTF-8?q?=E5=90=88=E5=B9=B6=E9=98=BF=E9=87=8C?= =?UTF-8?q?=E4=BA=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/coursesPublic/ModulationModal.js | 65 +++++++++++-------- .../courses/coursesPublic/Newshixunmodel.css | 25 +++++++ 2 files changed, 63 insertions(+), 27 deletions(-) diff --git a/public/react/src/modules/courses/coursesPublic/ModulationModal.js b/public/react/src/modules/courses/coursesPublic/ModulationModal.js index ebe9dd225..56ccee894 100644 --- a/public/react/src/modules/courses/coursesPublic/ModulationModal.js +++ b/public/react/src/modules/courses/coursesPublic/ModulationModal.js @@ -41,56 +41,67 @@ class ModulationModal extends Component{ if (this.state.Inputsvaltype === true) { return; } - this.setState({ - Inputsvaltype: false, - Inputsvaltest: "", - }) - console.log(Inputsval); - this.props.Saves(textareaval,Inputsval) - - } - - settextarea=(e)=>{ - this.setState({ - textareaval:e.target.value - }) - } - setInputs=(e)=>{ - console.log("setInputs"); - console.log(e.target.value); - if (e.target.value === undefined || e.target.value === null || e.target.value === "") { + if (Inputsval === undefined || Inputsval === null || Inputsval === "") { this.setState({ borredszf: "ml10 color-grey-9 bor-reds ", Inputsval: "", Inputsvaltype: true, - Inputsvaltest: "请填写分数", + Inputsvaltest: "成绩不能为空", }) return } var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/ - var nubmer = e.target.value; + var nubmer = Inputsval; if (!re.test(nubmer)) { this.setState({ borredszf: "ml10 color-grey-9 bor-reds ", - Inputsval: e.target.value, + Inputsval: Inputsval, Inputsvaltype: true, Inputsvaltest: "请输入0-100的分数", }) return; } - - if (parseFloat(e.target.value) > 100) { + if (0 > parseFloat(Inputsval)) { this.setState({ borredszf: "ml10 color-grey-9 bor-reds ", - Inputsval: e.target.value, + Inputsval: Inputsval, Inputsvaltype: true, - Inputsvaltest: "请输入0-100的分数", + Inputsvaltest: "成绩不能小于零", + }) + return; + } else if (parseFloat(Inputsval) > 100) { + this.setState({ + borredszf: "ml10 color-grey-9 bor-reds ", + Inputsval: Inputsval, + Inputsvaltype: true, + Inputsvaltest: "成绩不能大于100", }) return; } + + + this.setState({ + Inputsvaltype: false, + Inputsvaltest: "", + }) + console.log(Inputsval); + this.props.Saves(textareaval,Inputsval) + + } + + settextarea=(e)=>{ + this.setState({ + textareaval:e.target.value + }) + } + + setInputs=(e)=>{ + console.log("setInputs"); + console.log(e); + this.setState({ - Inputsval: parseFloat(e.target.value), + Inputsval: e, Inputsvaltype: false, }) } @@ -164,7 +175,7 @@ class ModulationModal extends Component{ : "" - } Date: Fri, 8 Nov 2019 14:47:49 +0800 Subject: [PATCH 32/36] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coursesPublic/ModulationModal_exercise.js | 129 +++++++++--------- .../exercise/Studentshavecompletedthelist.js | 34 +++-- 2 files changed, 86 insertions(+), 77 deletions(-) diff --git a/public/react/src/modules/courses/coursesPublic/ModulationModal_exercise.js b/public/react/src/modules/courses/coursesPublic/ModulationModal_exercise.js index ff5fea43d..538b32773 100644 --- a/public/react/src/modules/courses/coursesPublic/ModulationModal_exercise.js +++ b/public/react/src/modules/courses/coursesPublic/ModulationModal_exercise.js @@ -8,43 +8,24 @@ class ModulationModal_exercise extends Component { constructor(props) { super(props); this.state = { - group_ids: [], - fileList: [], - textareaval: undefined, - Inputsval: undefined + score: 0, + subjective_questions: 0, + objective_questions: 0, + + } + //因为主观题加客观题的和是总分 } + componentDidMount = () => { - Saves = () => { - let {textareaval, Inputsval} = this.state; - // if(textareaval===""||textareaval===undefined){ - // this.setState({ - // textareavaltype:true - // }) - // return - // } - this.setState({ - textareavaltype: false - }) - if (Inputsval === undefined || Inputsval === "") { - this.setState({ - Inputsval: "", - Inputsvaltype: true, - Inputsvaltest: "请输入分数", - }) - return - } + } - if (this.state.Inputsvaltype === true) { - return; - } - this.setState({ - Inputsvaltype: false, - Inputsvaltest: "", - }) - this.props.Saves(textareaval, Inputsval) + Saves = () => { + let {textareaval, subjective_questions, objective_questions, score} = this.state; + + // this.props.Saves(textareaval, Inputsval) } @@ -55,41 +36,18 @@ class ModulationModal_exercise extends Component { } setInputs = (e) => { - debugger - var value = parseInt(e.target.value) - - if (isNaN(value)) { - value = 0; - this.setState({ - Inputsval: value, - Inputsvaltype: true, - Inputsvaltest: "请输入分数", - }) - } else { - if (value < 0 || value > 100) { - value = 0; - this.setState({ - Inputsval: value, - Inputsvaltype: true, - Inputsvaltest: "请输入0-100的分数", - }) - - } - } - this.setState({ - Inputsval: value, - Inputsvaltype: false, - }) + + } render() { - let {textareaval, Inputsval, textareavaltype, Inputsvaltype, Inputsvaltest} = this.state; + let {Inputsvaltype, subjective_questions, objective_questions, score} = this.state; return (
        +
        +

        主观题成绩:

        + this.setInputs(e)} + value={subjective_questions === undefined || subjective_questions === null ? "" : subjective_questions}/> +

        分 ,

        +

        总分:45.0

        +
        + +
        + +

        客观题成绩:

        + this.setInputs(e)} + value={objective_questions === undefined || objective_questions === null ? "" : objective_questions}/> +

        分 ,

        +

        总分:45.0

        + +
        + +
        +

        最终成绩:

        + this.setInputs(e)} + value={score === undefined || score === null ? "" : score}/> +

        分 ,

        +

        总分:45.0

        + +
        + -
        + :
        - {testpapergradingboll === true ? this.Adjustments()} - Saves={(value, num) => this.Testpapergrading(value, num)} - /> : ""} + {/*{testpapergradingboll === true ? this.Adjustments()}*/} + {/* Saves={(value, num) => this.Testpapergrading(value, num)}*/} + {/*/> : ""}*/} + { + testpapergradingboll === true ? this.Adjustments()} + Saves={(value, num) => this.Testpapergrading(value, num)} + /> : "" + }
        :
        - {/*{testpapergradingboll === true ? this.Adjustments()}*/} - {/* Saves={(value, num) => this.Testpapergrading(value, num)}*/} - {/*/> : ""}*/} - { - testpapergradingboll === true ? this.Adjustments()} - Saves={(value, num) => this.Testpapergrading(value, num)} - /> : "" - } + {testpapergradingboll === true ? this.Adjustments()} + Saves={(value, num) => this.Testpapergrading(value, num)} + /> : ""} + {/*{*/} + {/* testpapergradingboll === true ? this.Adjustments()}*/} + {/* Saves={(value, num) => this.Testpapergrading(value, num)}*/} + {/* /> : ""*/} + {/*}*/}
          From d6e98b2c25cdcd5eea8ddece866b7a09b3eae519 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Fri, 8 Nov 2019 15:02:23 +0800 Subject: [PATCH 35/36] =?UTF-8?q?=E9=BB=91=E5=AE=A2=E6=9D=BE=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/osshackathon/Osshackathon.css | 3 +++ .../src/modules/osshackathon/Osshackathon.js | 26 ++++++++++++++----- .../modules/osshackathon/Osshackathonmodel.js | 4 +-- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/public/react/src/modules/osshackathon/Osshackathon.css b/public/react/src/modules/osshackathon/Osshackathon.css index 2bbaa1574..7fecb7d9c 100644 --- a/public/react/src/modules/osshackathon/Osshackathon.css +++ b/public/react/src/modules/osshackathon/Osshackathon.css @@ -42,6 +42,9 @@ font-weight:400; color:rgba(5,16,26,1); line-height:24px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } .ant-input::-webkit-input-placeholder{ diff --git a/public/react/src/modules/osshackathon/Osshackathon.js b/public/react/src/modules/osshackathon/Osshackathon.js index aa3b40d4a..9e09aeeec 100644 --- a/public/react/src/modules/osshackathon/Osshackathon.js +++ b/public/react/src/modules/osshackathon/Osshackathon.js @@ -39,14 +39,16 @@ class Osshackathon extends Component { search:search, }}).then((result)=>{ if(result.status==200){ - console.log(result) this.setState({ data:result.data, spinning:false }) + }else{ + this.setState({ + spinning:false + }) } }).catch((error)=>{ - console.log(error); this.setState({ spinning:true }) @@ -92,6 +94,15 @@ class Osshackathon extends Component { Signupentry=(id)=>{ // 用户报名 + if(this.props.checkIfLogin()===false){ + this.props.showLoginDialog() + return + } + if(this.props.checkIfProfileCompleted()===false){ + this.props.showProfileCompleteDialog() + return + } + this.props.confirm({ content: `是否确认报名?`, onOk: () => { @@ -157,7 +168,7 @@ class Osshackathon extends Component { .then((response) => { if (response.data.status == 0) { // {"status":1,"message":"删除成功"} - this.getosshackathonlist() + this.getosshackathonlist(); this.props.showNotification(`删除成功`); } }) @@ -172,6 +183,9 @@ class Osshackathon extends Component { this.setState({ search:value }) + if(value.length>300){ + this.props.showNotification(`搜索字数大于300个字`); + } let {page,limit,search}=this.state; this.getosshackathon(page,limit,value) } @@ -280,7 +294,7 @@ class Osshackathon extends Component { return( - + {item.name} @@ -319,7 +333,7 @@ class Osshackathon extends Component { return( - + {item.name} @@ -346,7 +360,7 @@ class Osshackathon extends Component {
        - + {item.description} diff --git a/public/react/src/modules/osshackathon/Osshackathonmodel.js b/public/react/src/modules/osshackathon/Osshackathonmodel.js index 296847510..f9d170695 100644 --- a/public/react/src/modules/osshackathon/Osshackathonmodel.js +++ b/public/react/src/modules/osshackathon/Osshackathonmodel.js @@ -100,7 +100,7 @@ class Osshackathonmodel extends Component{ render() { let {textareavaltype}=this.state; // console.log(this.props.tabkey) - console.log(this.props.Osshackathonmodeltype) + // console.log(this.props.Osshackathonmodeltype) return (
        @@ -139,7 +139,7 @@ class Osshackathonmodel extends Component{ Date: Fri, 8 Nov 2019 15:12:36 +0800 Subject: [PATCH 36/36] =?UTF-8?q?=E5=AD=97=E7=AC=A6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/trustie_hacks_controller.rb | 2 +- app/models/trustie_hack.rb | 1 + app/models/trustie_hackathon.rb | 2 +- .../20191108070703_modify_descriotion_limit_for_hacks.rb | 6 ++++++ 4 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20191108070703_modify_descriotion_limit_for_hacks.rb diff --git a/app/controllers/trustie_hacks_controller.rb b/app/controllers/trustie_hacks_controller.rb index 803809124..22a7a2976 100644 --- a/app/controllers/trustie_hacks_controller.rb +++ b/app/controllers/trustie_hacks_controller.rb @@ -1,5 +1,5 @@ class TrustieHacksController < ApplicationController - before_action :require_admin, :except => [:index] + before_action :require_admin, :except => [:index, :entry] before_action :require_login, :except => [:index] before_action :find_hackathon before_action :find_hack, :except => [:create, :index, :edit_hackathon, :update_hackathon] diff --git a/app/models/trustie_hack.rb b/app/models/trustie_hack.rb index b436007ca..7c2f3264b 100644 --- a/app/models/trustie_hack.rb +++ b/app/models/trustie_hack.rb @@ -1,4 +1,5 @@ class TrustieHack < ApplicationRecord + validates_length_of :description, maximum: 500 has_many :hack_users, :dependent => :destroy belongs_to :trustie_hackathon, counter_cache: true diff --git a/app/models/trustie_hackathon.rb b/app/models/trustie_hackathon.rb index 7269e7856..65275099d 100644 --- a/app/models/trustie_hackathon.rb +++ b/app/models/trustie_hackathon.rb @@ -1,5 +1,5 @@ class TrustieHackathon < ApplicationRecord - + validates_length_of :description, maximum: 500 has_many :trustie_hacks, :dependent => :destroy end diff --git a/db/migrate/20191108070703_modify_descriotion_limit_for_hacks.rb b/db/migrate/20191108070703_modify_descriotion_limit_for_hacks.rb new file mode 100644 index 000000000..9168dbd2a --- /dev/null +++ b/db/migrate/20191108070703_modify_descriotion_limit_for_hacks.rb @@ -0,0 +1,6 @@ +class ModifyDescriotionLimitForHacks < ActiveRecord::Migration[5.2] + def change + change_column :trustie_hackathons, :description, :text + change_column :trustie_hacks, :description, :text + end +end