From 85056d3df582971f5136343e1b6b9a7bbcc0d670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Mon, 30 Dec 2019 23:45:18 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=B0=83=E6=95=B4md=E5=8A=A0=E5=AF=86?= =?UTF-8?q?=E5=BD=B1=E5=93=8D=E6=8E=A5=E5=8F=A3+=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/common/UrlTool.js | 45 ++++++- public/react/src/common/educoder.js | 2 +- .../modules/comment/CommentItemMDEditor.js | 4 +- .../CompetitionContentsMd.js | 4 +- .../CompetitionContentspdfdownload.js | 6 +- .../modules/courses/busyWork/NewWorkForm.js | 6 +- .../busyWork/common/TabRightComponents.js | 4 +- .../CompetitionContentsMd.js | 4 +- .../CompetitionContentspdfdownload.js | 6 +- .../courses/coursesPublic/CoursesMarkdown.js | 4 +- .../courses/coursesPublic/SelectSetting.js | 4 +- .../courses/coursesPublic/sendResource.js | 4 +- .../exercise/Testpapersettinghomepage.js | 4 +- .../tasks/GraduationTasksSubmitedit.js | 4 +- .../tasks/GraduationTasksSubmitnew.js | 4 +- .../graduation/tasks/GraduationTasksedit.js | 4 +- .../topics/GraduateTopicPostWorksNew.js | 4 +- .../modules/courses/statistics/Statistics.js | 4 +- .../src/modules/forums/MemoDetailMDEditor.js | 4 +- .../modules/forums/MemoDetailMDEditortwo.js | 4 +- public/react/src/modules/forums/MemoNew.js | 2 +- public/react/src/modules/paths/PathNew.js | 110 ++++-------------- .../src/modules/projectPackages/MDEditors.js | 4 +- .../modules/tpm/TPMsettings/oldTPMsettings.js | 6 +- .../modules/tpm/challengesnew/TPMMDEditor.js | 4 +- .../src/modules/tpm/challengesnew/editorMD.js | 4 +- .../tpm/challengesnew/old/TPManswer.js | 4 +- .../modules/tpm/newshixuns/oldNewshixuns.js | 2 +- .../user/usersInfo/banks/NewGtaskForm.js | 4 +- 29 files changed, 118 insertions(+), 147 deletions(-) diff --git a/public/react/src/common/UrlTool.js b/public/react/src/common/UrlTool.js index d7a49ea63..e190bdd98 100644 --- a/public/react/src/common/UrlTool.js +++ b/public/react/src/common/UrlTool.js @@ -1,3 +1,4 @@ +import md5 from 'md5'; const isDev = window.location.port == 3007; export const TEST_HOST = "https://test-newweb.educoder.net" export function getImageUrl(path) { @@ -68,19 +69,46 @@ export function getUrl2(path, goTest) { } return `${path ? path: ''}`; } +const newopens ="79e33abd4b6588941ab7622aed1e67e8"; +let newtimestamp; +let checkSubmitFlgs = false; +function railsgettimess(proxy) { + if(checkSubmitFlgs===false){ + $.ajax({url:proxy,async:false,success:function(data){ + if(data.status===0){ + newtimestamp=data.message; + } + }}) + checkSubmitFlgs=true + window.setTimeout(function () { + checkSubmitFlgs=false; + }, 3500); + } +} + +export function Railsgettimes() { + railsgettimess(`${getUrl()}/api/main/first_stamp.json`); +} + export function getUploadActionUrl(path, goTest) { - return `${getUrl()}/api/attachments.json${isDev ? `?debug=${window._debugType || 'admin'}` : ''}` + Railsgettimes() + let anewopens=md5(newopens+newtimestamp); + return `${getUrl()}/api/attachments.json${isDev ? `?debug=${window._debugType || 'admin'}&randomcode=${newtimestamp}&client_key=${anewopens}` : `?randomcode=${newtimestamp}&client_key=${anewopens}`}`; } export function getUploadActionUrltwo(id) { - - return `${getUrlmys()}/api/shixuns/${id}/upload_data_sets.json${isDev ? `?debug=${window._debugType || 'admin'}` : ''}` + Railsgettimes() + let anewopens=md5(newopens+newtimestamp); + return `${getUrlmys()}/api/shixuns/${id}/upload_data_sets.json${isDev ? `?debug=${window._debugType || 'admin'}&randomcode=${newtimestamp}&client_key=${anewopens}` : `?randomcode=${newtimestamp}&client_key=${anewopens}`}` } export function getUploadActionUrlthree() { - - return `${getUrlmys()}/api/jupyters/import_with_tpm.json${isDev ? `?debug=${window._debugType || 'admin'}` : ''}` + Railsgettimes() + let anewopens=md5(newopens+newtimestamp); + return `${getUrlmys()}/api/jupyters/import_with_tpm.json${isDev ? `?debug=${window._debugType || 'admin'}&randomcode=${newtimestamp}&client_key=${anewopens}` : `?randomcode=${newtimestamp}&client_key=${anewopens}`}` } export function getUploadActionUrlOfAuth(id) { - return `${getUrl()}/api/users/accounts/${id}/auth_attachment.json${isDev ? `?debug=${window._debugType || 'admin'}` : ''}` + Railsgettimes() + let anewopens=md5(newopens+newtimestamp); + return `${getUrl()}/api/users/accounts/${id}/auth_attachment.json${isDev ? `?debug=${window._debugType || 'admin'}&randomcode=${newtimestamp}&client_key=${anewopens}` : `?randomcode=${newtimestamp}&client_key=${anewopens}`}` } export function test(path) { @@ -96,6 +124,11 @@ export function getTaskUrlById(id) { return `/tasks/${id}` } +export function getRandomcode(url) { + Railsgettimes() + let anewopens=md5(newopens+newtimestamp); + return `${url}?&randomcode=${newtimestamp}&client_key=${anewopens}` +} export function htmlEncode(str) { var s = ""; diff --git a/public/react/src/common/educoder.js b/public/react/src/common/educoder.js index 3d11ee3cb..126a42e87 100644 --- a/public/react/src/common/educoder.js +++ b/public/react/src/common/educoder.js @@ -2,7 +2,7 @@ // export { default as OrderStateUtil } from '../routes/Order/components/OrderStateUtil'; -export { getImageUrl as getImageUrl, getUrl as getUrl, getUrlmys as getUrlmys, getUrl2 as getUrl2, setImagesUrl as setImagesUrl +export { getImageUrl as getImageUrl, getUrl as getUrl, getRandomcode as getRandomcode,getUrlmys as getUrlmys, getUrl2 as getUrl2, setImagesUrl as setImagesUrl , getUploadActionUrl as getUploadActionUrl,getUploadActionUrltwo as getUploadActionUrltwo ,getUploadActionUrlthree as getUploadActionUrlthree, getUploadActionUrlOfAuth as getUploadActionUrlOfAuth , getTaskUrlById as getTaskUrlById, TEST_HOST ,htmlEncode as htmlEncode } from './UrlTool'; export { default as queryString } from './UrlTool2'; diff --git a/public/react/src/modules/comment/CommentItemMDEditor.js b/public/react/src/modules/comment/CommentItemMDEditor.js index 8c49d356f..0bde1c6a7 100644 --- a/public/react/src/modules/comment/CommentItemMDEditor.js +++ b/public/react/src/modules/comment/CommentItemMDEditor.js @@ -6,7 +6,7 @@ import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom"; import PropTypes from 'prop-types'; import classNames from 'classnames' - +import { getImageUrl, toPath, getUrl,getUploadActionUrl } from 'educoder'; import './CommentItemMDEditor.css' const $ = window.$; @@ -36,7 +36,7 @@ class CommentItemMDEditor extends Component { if( $(`#${initMD_ID} textarea`).length === 1 ) { // 没有初始化 const placeholder = '我要回复...' // const imageUrl = `/upload_with_markdown?container_id=${commentId}&container_type=Memo`; - const imageUrl = `/api/attachments.json`; + const imageUrl = `${getUploadActionUrl()}`; const otherOptions = { watch: false, diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentsMd.js b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentsMd.js index 049f2bab1..9ea972177 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentsMd.js +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentsMd.js @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import {Button, Card, Row, Col ,Upload,Icon,message,Tabs} from 'antd'; import axios from 'axios'; -import {getImageUrl,getUrl,appendFileSizeToUploadFileAll,appendFileSizeToUploadFile} from 'educoder'; +import {getUploadActionUrl,getUrl,appendFileSizeToUploadFileAll,appendFileSizeToUploadFile} from 'educoder'; import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor'; const { TabPane } = Tabs; class CompetitionContentsMd extends Component{ @@ -184,7 +184,7 @@ class CompetitionContentsMd extends Component{ // https://github.com/ant-design/ant-design/issues/15505 // showUploadList={false},然后外部拿到 fileList 数组自行渲染列表。 // showUploadList: false, - action: `${getUrl()}/api/attachments.json`, + action: `${getUploadActionUrl()}`, onChange: this.handleContentUploadChange, onRemove: (file) => this.onAttachmentRemove(file, 'contentFileList'), beforeUpload: (file) => { diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentspdfChild/CompetitionContentspdfdownload.js b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentspdfChild/CompetitionContentspdfdownload.js index eb304e007..360d65937 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentspdfChild/CompetitionContentspdfdownload.js +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentspdfChild/CompetitionContentspdfdownload.js @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import {Button,Layout,Row, Col,Divider,Table} from 'antd'; import axios from 'axios'; -import {getImageUrl} from 'educoder'; +import {getImageUrl,getRandomcode} from 'educoder'; import './CompetitionContentspdfdownload.css'; // import NoneData from "../../../courses/shixunHomework/shixunHomework"; @@ -158,7 +158,7 @@ class CompetitionContentspdfdownload extends Component{ return( - 立即下载 ) @@ -172,7 +172,7 @@ class CompetitionContentspdfdownload extends Component{ return( - 立即下载 ) diff --git a/public/react/src/modules/courses/busyWork/NewWorkForm.js b/public/react/src/modules/courses/busyWork/NewWorkForm.js index 81851d2f2..6740f7579 100644 --- a/public/react/src/modules/courses/busyWork/NewWorkForm.js +++ b/public/react/src/modules/courses/busyWork/NewWorkForm.js @@ -3,7 +3,7 @@ import { Input, InputNumber, Form, Button, Checkbox, Upload, Icon, message, Moda import axios from 'axios' import '../css/busyWork.css' import '../css/Courses.css' -import { WordsBtn, getUrl, ConditionToolTip, appendFileSizeToUploadFile, appendFileSizeToUploadFileAll } from 'educoder' +import {getUploadActionUrl, ConditionToolTip, appendFileSizeToUploadFile, appendFileSizeToUploadFileAll } from 'educoder' import TPMMDEditor from '../../tpm/challengesnew/TPMMDEditor'; import CBreadcrumb from '../common/CBreadcrumb' @@ -333,7 +333,7 @@ class NewWorkForm extends Component{ // https://github.com/ant-design/ant-design/issues/15505 // showUploadList={false},然后外部拿到 fileList 数组自行渲染列表。 // showUploadList: false, - action: `${getUrl()}/api/attachments.json`, + action: `${getUploadActionUrl()}`, onChange: this.handleContentUploadChange, onRemove: (file) => this.onAttachmentRemove(file, 'contentFileList'), beforeUpload: (file) => { @@ -352,7 +352,7 @@ class NewWorkForm extends Component{ // https://github.com/ant-design/ant-design/issues/15505 // showUploadList={false},然后外部拿到 fileList 数组自行渲染列表。 // showUploadList: false, - action: `${getUrl()}/api/attachments.json`, + action: `${getUploadActionUrl()}`, onChange: this.handleAnswerUploadChange, onRemove: (file) => this.onAttachmentRemove(file, 'answerFileList'), beforeUpload: (file) => { diff --git a/public/react/src/modules/courses/busyWork/common/TabRightComponents.js b/public/react/src/modules/courses/busyWork/common/TabRightComponents.js index 9c8f96cc2..41e03d176 100644 --- a/public/react/src/modules/courses/busyWork/common/TabRightComponents.js +++ b/public/react/src/modules/courses/busyWork/common/TabRightComponents.js @@ -150,8 +150,8 @@ class TabRightComponents extends Component{ {this.props.isAdmin()?
  • 导出
  • :""} diff --git a/public/react/src/modules/courses/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentsMd.js b/public/react/src/modules/courses/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentsMd.js index 049f2bab1..9ea972177 100644 --- a/public/react/src/modules/courses/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentsMd.js +++ b/public/react/src/modules/courses/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentsMd.js @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import {Button, Card, Row, Col ,Upload,Icon,message,Tabs} from 'antd'; import axios from 'axios'; -import {getImageUrl,getUrl,appendFileSizeToUploadFileAll,appendFileSizeToUploadFile} from 'educoder'; +import {getUploadActionUrl,getUrl,appendFileSizeToUploadFileAll,appendFileSizeToUploadFile} from 'educoder'; import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor'; const { TabPane } = Tabs; class CompetitionContentsMd extends Component{ @@ -184,7 +184,7 @@ class CompetitionContentsMd extends Component{ // https://github.com/ant-design/ant-design/issues/15505 // showUploadList={false},然后外部拿到 fileList 数组自行渲染列表。 // showUploadList: false, - action: `${getUrl()}/api/attachments.json`, + action: `${getUploadActionUrl()}`, onChange: this.handleContentUploadChange, onRemove: (file) => this.onAttachmentRemove(file, 'contentFileList'), beforeUpload: (file) => { diff --git a/public/react/src/modules/courses/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentspdfChild/CompetitionContentspdfdownload.js b/public/react/src/modules/courses/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentspdfChild/CompetitionContentspdfdownload.js index eb304e007..360d65937 100644 --- a/public/react/src/modules/courses/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentspdfChild/CompetitionContentspdfdownload.js +++ b/public/react/src/modules/courses/competitions/Competitioncommon/CompetitionCommonChild/CompetitionContentspdfChild/CompetitionContentspdfdownload.js @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import {Button,Layout,Row, Col,Divider,Table} from 'antd'; import axios from 'axios'; -import {getImageUrl} from 'educoder'; +import {getImageUrl,getRandomcode} from 'educoder'; import './CompetitionContentspdfdownload.css'; // import NoneData from "../../../courses/shixunHomework/shixunHomework"; @@ -158,7 +158,7 @@ class CompetitionContentspdfdownload extends Component{ return( - 立即下载 ) @@ -172,7 +172,7 @@ class CompetitionContentspdfdownload extends Component{ return( - 立即下载 ) diff --git a/public/react/src/modules/courses/coursesPublic/CoursesMarkdown.js b/public/react/src/modules/courses/coursesPublic/CoursesMarkdown.js index fea6c79be..7b996480c 100644 --- a/public/react/src/modules/courses/coursesPublic/CoursesMarkdown.js +++ b/public/react/src/modules/courses/coursesPublic/CoursesMarkdown.js @@ -6,7 +6,7 @@ import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom"; // import "antd/dist/antd.css"; -import { getImageUrl, toPath, getUrl } from 'educoder'; +import { getImageUrl, toPath, getUrl,getUploadActionUrl } from 'educoder'; import axios from 'axios'; @@ -171,7 +171,7 @@ export default class CoursesMarkdown extends Component { // const placeholder = ""; // amp; // 编辑时要传memoId - const imageUrl = `/api/attachments.json`; + const imageUrl = `${getUploadActionUrl()}`; // 创建editorMd const answers_editormd = create_editorMD(_id, '100%', 400, placeholder, imageUrl, () => { diff --git a/public/react/src/modules/courses/coursesPublic/SelectSetting.js b/public/react/src/modules/courses/coursesPublic/SelectSetting.js index ea87e8bb2..337b4d2e8 100644 --- a/public/react/src/modules/courses/coursesPublic/SelectSetting.js +++ b/public/react/src/modules/courses/coursesPublic/SelectSetting.js @@ -1,7 +1,7 @@ import React,{ Component } from "react"; import { Modal,Checkbox,Select,Input,Upload,Button,Icon,message,DatePicker,Tooltip,Radio} from "antd"; import axios from'axios'; -import {getUrl,handleDateString,appendFileSizeToUploadFileAll} from 'educoder'; +import {getUrl,handleDateString,appendFileSizeToUploadFileAll,getUploadActionUrl} from 'educoder'; import locale from 'antd/lib/date-picker/locale/zh_CN'; import moment from 'moment'; import Modals from '../../modals/Modals'; @@ -264,7 +264,7 @@ class Selectsetting extends Component{ const uploadProps = { width: 600, - action: `${getUrl()}/api/attachments.json`, + action: `${getUploadActionUrl()}`, onChange: this.handleChange, onRemove: this.onAttachmentRemove, beforeUpload: (file) => { diff --git a/public/react/src/modules/courses/coursesPublic/sendResource.js b/public/react/src/modules/courses/coursesPublic/sendResource.js index 73a0f6630..0f4e3cfbe 100644 --- a/public/react/src/modules/courses/coursesPublic/sendResource.js +++ b/public/react/src/modules/courses/coursesPublic/sendResource.js @@ -2,7 +2,7 @@ import React,{ Component } from "react"; import { Modal,Checkbox,Upload,Button,Icon,message,DatePicker,Select,Tooltip,Radio} from "antd"; import axios from 'axios'; import Modals from '../../modals/Modals'; -import {getUrl,handleDateString,bytesToSize,appendFileSizeToUploadFileAll} from 'educoder'; +import {getUploadActionUrl,handleDateString,appendFileSizeToUploadFileAll} from 'educoder'; import locale from 'antd/lib/date-picker/locale/zh_CN'; import moment from 'moment'; const CheckboxGroup = Checkbox.Group; @@ -246,7 +246,7 @@ class Sendresource extends Component{ const uploadProps = { width: 600, // showUploadList:false, - action: `${getUrl()}/api/attachments.json`, + action: `${getUploadActionUrl()}`, onChange: this.handleChange, onRemove: this.onAttachmentRemove, beforeUpload: (file) => { diff --git a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js index ab662555d..ca4a0758a 100644 --- a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js +++ b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js @@ -1,7 +1,7 @@ import React,{ Component } from "react"; import {Checkbox,Input,Table, Pagination,Menu,Spin} from "antd"; import {Link,NavLink} from 'react-router-dom'; -import { WordsBtn ,ActionBtn,queryString,downloadFile} from 'educoder'; +import { WordsBtn ,ActionBtn,queryString,getRandomcode} from 'educoder'; import CoursesListType from '../coursesPublic/CoursesListType'; import '../css/members.css'; import '../css/busyWork.css'; @@ -404,7 +404,7 @@ class Testpapersettinghomepage extends Component{ :""} diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js index 7ac909958..f535c01bb 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js @@ -2,7 +2,7 @@ import React,{Component} from "react"; import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal,Spin,Tooltip} from "antd"; import {Link} from 'react-router-dom'; import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor'; -import { WordsBtn,getUrl ,bytesToSize,getImageUrl,appendFileSizeToUploadFileAll,appendFileSizeToUploadFile} from 'educoder'; +import { WordsBtn,getUploadActionUrl ,bytesToSize,getImageUrl,appendFileSizeToUploadFileAll,appendFileSizeToUploadFile} from 'educoder'; import axios from 'axios'; import Modals from '../../../modals/Modals'; const Search = Input.Search; @@ -512,7 +512,7 @@ class GraduationTasksSubmitedit extends Component{ // https://github.com/ant-design/ant-design/issues/15505 // showUploadList={false},然后外部拿到 fileList 数组自行渲染列表。 // showUploadList: false, - action: `${getUrl()}/api/attachments.json`, + action: `${getUploadActionUrl()}`, onChange: this.handleChange, onRemove: this.onAttachmentRemove, beforeUpload: (file) => { diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js index d505ba15d..4918c1f6e 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js @@ -3,7 +3,7 @@ import React,{Component} from "react"; import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal,Tooltip,Spin} from "antd"; import {Link} from 'react-router-dom'; import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor'; -import { WordsBtn,getUrl,getImageUrl,bytesToSize,appendFileSizeToUploadFileAll} from 'educoder'; +import { WordsBtn,getUrl,getImageUrl,getUploadActionUrl,appendFileSizeToUploadFileAll} from 'educoder'; import axios from 'axios'; import Modals from '../../../modals/Modals'; const Search = Input.Search; @@ -536,7 +536,7 @@ render(){ // https://github.com/ant-design/ant-design/issues/15505 // showUploadList={false},然后外部拿到 fileList 数组自行渲染列表。 // showUploadList: false, - action: `${getUrl()}/api/attachments.json`, + action: `${getUploadActionUrl()}`, onChange: this.handleChange, onRemove: this.onAttachmentRemove, beforeUpload: (file) => { diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js index b530a4de6..1a9c1490e 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js @@ -2,7 +2,7 @@ import React,{Component} from "react"; import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal} from "antd"; import {Link} from 'react-router-dom'; import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor'; -import { WordsBtn,getUrl ,bytesToSize,appendFileSizeToUploadFileAll,AttachmentList,appendFileSizeToUploadFile} from 'educoder'; +import { WordsBtn,getUrl ,getUploadActionUrl,appendFileSizeToUploadFileAll,AttachmentList,appendFileSizeToUploadFile} from 'educoder'; import axios from 'axios'; import Modals from '../../../modals/Modals'; import '../../css/Courses.css'; @@ -314,7 +314,7 @@ class GraduationTasksedit extends Component{ // https://github.com/ant-design/ant-design/issues/15505 // showUploadList={false},然后外部拿到 fileList 数组自行渲染列表。 // showUploadList: false, - action: `${getUrl()}/api/attachments.json`, + action: `${getUploadActionUrl()}`, onChange: this.handleChange, onRemove: this.onAttachmentRemove, beforeUpload: (file) => { diff --git a/public/react/src/modules/courses/graduation/topics/GraduateTopicPostWorksNew.js b/public/react/src/modules/courses/graduation/topics/GraduateTopicPostWorksNew.js index 38e68ad32..6d4d08743 100644 --- a/public/react/src/modules/courses/graduation/topics/GraduateTopicPostWorksNew.js +++ b/public/react/src/modules/courses/graduation/topics/GraduateTopicPostWorksNew.js @@ -7,7 +7,7 @@ import { } from 'antd'; import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor'; import axios from 'axios' -import {getUrl} from 'educoder'; +import {getUrl,getUploadActionUrl} from 'educoder'; import "../../common/formCommon.css" // import './board.css' @@ -248,7 +248,7 @@ class GraduateTopicPostWorksNew extends Component{ // https://github.com/ant-design/ant-design/issues/15505 // showUploadList={false},然后外部拿到 fileList 数组自行渲染列表。 // showUploadList: false, - action: `${getUrl()}/api/attachments.json`, + action: `${getUploadActionUrl()}`, onChange: this.handleChange, onRemove: this.onAttachmentRemove, beforeUpload: (file) => { diff --git a/public/react/src/modules/courses/statistics/Statistics.js b/public/react/src/modules/courses/statistics/Statistics.js index 281052426..d0f47e21a 100644 --- a/public/react/src/modules/courses/statistics/Statistics.js +++ b/public/react/src/modules/courses/statistics/Statistics.js @@ -1,6 +1,6 @@ import React,{ Component } from "react"; import {Table, Pagination,Popover,Spin, Row, Col ,Tabs, Icon} from "antd"; -import { WordsBtn,on, off, trigger ,getImageUrl,sortDirections} from 'educoder'; +import { WordsBtn,on, off, getRandomcode ,getImageUrl,sortDirections} from 'educoder'; import axios from'axios'; import Dropdownbox from './Dropdownbox'; import Dynamiclist from './Dynamiclist'; @@ -172,7 +172,7 @@ class Statistics extends Component{ } }) - this.props.slowDownload(`${url}?${urllist}`); + this.props.slowDownload(getRandomcode(`${url}?${urllist}`)); } diff --git a/public/react/src/modules/forums/MemoDetailMDEditor.js b/public/react/src/modules/forums/MemoDetailMDEditor.js index 6e2563b9b..57a48fe91 100644 --- a/public/react/src/modules/forums/MemoDetailMDEditor.js +++ b/public/react/src/modules/forums/MemoDetailMDEditor.js @@ -7,7 +7,7 @@ import PropTypes from 'prop-types'; import classNames from 'classnames' -import { isDev } from 'educoder' +import { getUploadActionUrl } from 'educoder' import './MemoDetailEditor.css' @@ -36,7 +36,7 @@ class MemoDetailMDEditor extends Component { // 因为props.memo不存在时,本组件不会被加载,这里直接在didMount里初始化即可 const placeholder = '我要回复...' // const imageUrl = `/upload_with_markdown?container_id=${this.props.memo.id}&container_type=Memo`; - const imageUrl = `/api/attachments.json`; + const imageUrl = `${getUploadActionUrl()}`; if (this.isMDInited) { return; } diff --git a/public/react/src/modules/forums/MemoDetailMDEditortwo.js b/public/react/src/modules/forums/MemoDetailMDEditortwo.js index cc3a2b1af..eafc1451f 100644 --- a/public/react/src/modules/forums/MemoDetailMDEditortwo.js +++ b/public/react/src/modules/forums/MemoDetailMDEditortwo.js @@ -7,7 +7,7 @@ import PropTypes from 'prop-types'; import classNames from 'classnames' -import { isDev } from 'educoder' +import { getUploadActionUrl } from 'educoder' import './MemoDetailEditor.css' @@ -35,7 +35,7 @@ class MemoDetailMDEditortwo extends Component { // 因为props.memo不存在时,本组件不会被加载,这里直接在didMount里初始化即可 const placeholder = '我要回复...' // const imageUrl = `/upload_with_markdown?container_id=${this.props.memo.id}&container_type=Memo`; - const imageUrl = `/api/attachments.json`; + const imageUrl = `${getUploadActionUrl()}`; // 执行太快了,样式不正常 window.__tt = 400; diff --git a/public/react/src/modules/forums/MemoNew.js b/public/react/src/modules/forums/MemoNew.js index fbbd88044..a9e7d6668 100644 --- a/public/react/src/modules/forums/MemoNew.js +++ b/public/react/src/modules/forums/MemoNew.js @@ -441,7 +441,7 @@ class MemoNew extends Component { // amp; // 编辑时要传memoId // const imageUrl = `/upload_with_markdown?container_id=&container_type=Memo`; - const imageUrl = `/api/attachments.json`; + const imageUrl = `${getUploadActionUrl()}`; // 创建editorMd diff --git a/public/react/src/modules/paths/PathNew.js b/public/react/src/modules/paths/PathNew.js index d9da9c0d4..8fdbf918f 100644 --- a/public/react/src/modules/paths/PathNew.js +++ b/public/react/src/modules/paths/PathNew.js @@ -2,6 +2,7 @@ import React,{ Component } from "react"; import {getUrl,markdownToHTML} from 'educoder'; import {Input,Button} from 'antd'; +import TPMMDEditor from "../tpm/challengesnew/TPMMDEditor"; import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom"; import axios from 'axios'; @@ -11,79 +12,11 @@ require('codemirror/lib/codemirror.css'); const $ = window.$; -let origin = getUrl(); -let path = getUrl("/editormd/lib/"); -function create_editorMD(id, width, high, placeholder, imageUrl,initValue, callback) { - var editorName = window.editormd(id, { - width: width, - height: high, - path: path, // "/editormd/lib/" - markdown : initValue, - syncScrolling: "single", - tex: true, - tocm: true, - emoji: true, - taskList: true, - codeFold: true, - searchReplace: true, - htmlDecode: "style,script,iframe", - sequenceDiagram: true, - autoFocus: false, - placeholder: placeholder, - toolbarIcons: function () { - // Or return editormd.toolbarModes[name]; // full, simple, mini - // Using "||" set icons align right. - return ["bold", "italic", "|", "list-ul", "list-ol", "|", "code", "code-block", "|", "testIcon", "testIcon1", '|', "image", "table", '|', "watch", "clear"] - }, - toolbarCustomIcons: { - testIcon: "
    ", - testIcon1: "
    " - }, - //这个配置在simple.html中并没有,但是为了能够提交表单,使用这个配置可以让构造出来的HTML代码直接在第二个隐藏的textarea域中,方便post提交表单。 - saveHTMLToTextarea: true, - // 用于增加自定义工具栏的功能,可以直接插入HTML标签,不使用默认的元素创建图标 - dialogMaskOpacity: 0.6, - imageUpload: true, - imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"], - imageUploadURL: imageUrl,//url - onload: function () { - // this.previewing(); - var id = this.id; - var editorName = this; - $("#" + id + " [type=\"latex\"]").bind("click", function () { - editorName.cm.replaceSelection("```latex"); - editorName.cm.replaceSelection("\n"); - editorName.cm.replaceSelection("\n"); - editorName.cm.replaceSelection("```"); - var __Cursor = editorName.cm.getDoc().getCursor(); - editorName.cm.setCursor(__Cursor.line - 1, 0); - }); - - $("#" + id + " [type=\"inline\"]").bind("click", function () { - editorName.cm.replaceSelection("`$$$$`"); - var __Cursor = editorName.cm.getDoc().getCursor(); - editorName.cm.setCursor(__Cursor.line, __Cursor.ch - 3); - editorName.cm.focus(); - }); - $("[type=\"inline\"]").attr("title", "行内公式"); - $("[type=\"latex\"]").attr("title", "多行公式"); - - - callback && callback() - } - }); - // 一个页面有多个md时,onload方法只执行了一次 - // window.md_elocalStorage(editorName, `MemoQuestion_${id}`, `${id}`); - - return editorName; -} - - - - class PathNew extends Component{ constructor(props){ super(props); + this.contentMdRef = React.createRef(); + this.Point_editMD = React.createRef(); this.state={ pathName:"", description:"", @@ -104,7 +37,7 @@ class PathNew extends Component{ }) return; } - let des=this.Des_editMD.getValue(); + let des= this.contentMdRef.current.getValue().trim(); if(des===""){ this.props.showSnackbar("请输入实践课程的简介"); window.location.href="#part_Des"; @@ -115,7 +48,7 @@ class PathNew extends Component{ window.location.href="#part_Des"; return; } - let point = this.Point_editMD.getValue(); + let point = this.Point_editMD.current.getValue().trim(); if(point===""){ this.props.showSnackbar("请输入实践课程的学习须知"); window.location.href="#part_point"; @@ -207,13 +140,9 @@ class PathNew extends Component{ this.setState({ pathName: response.data.name }) + this.contentMdRef.current.setValue(response.data && response.data.description); + this.Point_editMD.current.setValue(response.data && response.data.learning_notes); - const Des_editMD = create_editorMD("shixun_introduction","100%","490px" - ,"请在此输入实践课程的简介,最大限制8000个字符","/api/attachments.json", response.data.description,""); - this.Des_editMD=Des_editMD; - const Point_editMD = create_editorMD("shixun_propaedeutics","100%","260px" - ,"请在此输入实践课程的学习须知,最大限制2000个字符","/api/attachments.json",response.data.learning_notes,""); - this.Point_editMD=Point_editMD; } }).catch((error)=>{ console.log(error); @@ -221,10 +150,8 @@ class PathNew extends Component{ } else { this.isEditPage = false - const Des_editMD = create_editorMD("shixun_introduction","100%","490px","请在此输入实践课程的简介,最大限制8000个字符","/api/attachments.json","",""); - this.Des_editMD=Des_editMD; - const Point_editMD = create_editorMD("shixun_propaedeutics","100%","260px","请在此输入实践课程的学习须知,最大限制2000个字符","/api/attachments.json","",""); - this.Point_editMD=Point_editMD; + this.contentMdRef.current.setValue(""); + this.Point_editMD.current.setValue(""); } } @@ -266,8 +193,14 @@ class PathNew extends Component{
    *
    -
    - +
    + {/**/} + +

    @@ -280,8 +213,13 @@ class PathNew extends Component{
    *
    -
    - +
    + {/**/} +

    diff --git a/public/react/src/modules/projectPackages/MDEditors.js b/public/react/src/modules/projectPackages/MDEditors.js index abd1d2da8..ab69aa83c 100644 --- a/public/react/src/modules/projectPackages/MDEditors.js +++ b/public/react/src/modules/projectPackages/MDEditors.js @@ -4,7 +4,7 @@ import {Input, Select, Radio, Checkbox, Popconfirm, message, Modal} from 'antd'; import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom"; -import { getImageUrl, toPath, getUrl } from 'educoder'; +import { getImageUrl, getUploadActionUrl, getUrl } from 'educoder'; require('codemirror/lib/codemirror.css'); @@ -222,7 +222,7 @@ export default class MDEditors extends Component { const _placeholder = placeholder || ""; // amp; // 编辑时要传memoId - const imageUrl = `/api/attachments.json`; + const imageUrl = `${getUploadActionUrl()}`; // 创建editorMd let react_id = `react_${_id}`; diff --git a/public/react/src/modules/tpm/TPMsettings/oldTPMsettings.js b/public/react/src/modules/tpm/TPMsettings/oldTPMsettings.js index 8688e9669..3c42b38db 100644 --- a/public/react/src/modules/tpm/TPMsettings/oldTPMsettings.js +++ b/public/react/src/modules/tpm/TPMsettings/oldTPMsettings.js @@ -15,7 +15,7 @@ import axios from 'axios'; import './css/TPMsettings.css'; -import { getImageUrl, toPath, getUrl ,appendFileSizeToUploadFileAll, getUploadActionUrl} from 'educoder'; +import { getImageUrl, toPath, getUrl ,getUploadActionUrl} from 'educoder'; let origin = getUrl(); @@ -280,7 +280,7 @@ export default class TPMsettings extends Component { const placeholder = ""; // amp; // 编辑时要传memoId - const imageUrl = `/api/attachments.json`; + const imageUrl = `${getUploadActionUrl()}`; // 创建editorMd const description_editormd =create_editorMD(id, '100%', 400, placeholder, imageUrl, initValue,()=> { @@ -307,7 +307,7 @@ export default class TPMsettings extends Component { const placeholder = ""; // amp; // 编辑时要传memoId - const imageUrl = `/api/attachments.json`; + const imageUrl = `${getUploadActionUrl()}`; // 创建editorMd const evaluate_script_editormd =create_editorMD(id, '100%', 400, placeholder, imageUrl, initValue,()=> { diff --git a/public/react/src/modules/tpm/challengesnew/TPMMDEditor.js b/public/react/src/modules/tpm/challengesnew/TPMMDEditor.js index 22326e9e7..64cc373dc 100644 --- a/public/react/src/modules/tpm/challengesnew/TPMMDEditor.js +++ b/public/react/src/modules/tpm/challengesnew/TPMMDEditor.js @@ -6,7 +6,7 @@ import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom"; // import "antd/dist/antd.css"; -import { getImageUrl, toPath, getUrl } from 'educoder'; +import { getImageUrl, getUploadActionUrl, getUrl } from 'educoder'; import '../../courses/css/Courses.css' import axios from 'axios'; @@ -226,7 +226,7 @@ export default class TPMMDEditor extends Component { const _placeholder = placeholder || ""; // amp; // 编辑时要传memoId - const imageUrl = `/api/attachments.json`; + const imageUrl = `${getUploadActionUrl()}`; // 创建editorMd let react_id = `react_${_id}`; // 将实例存到了window diff --git a/public/react/src/modules/tpm/challengesnew/editorMD.js b/public/react/src/modules/tpm/challengesnew/editorMD.js index 50f15b601..26d21d86a 100644 --- a/public/react/src/modules/tpm/challengesnew/editorMD.js +++ b/public/react/src/modules/tpm/challengesnew/editorMD.js @@ -1,6 +1,6 @@ import React, {Component} from 'react'; -import {getUrl} from 'educoder'; +import {getUrl,getUploadActionUrl} from 'educoder'; let path = getUrl("/editormd/lib/"); @@ -85,7 +85,7 @@ export default class TPMeditorMD extends Component { // amp; // 编辑时要传memoId // const imageUrl = `/upload_with_markdown?container_id=&container_type=Memo`; - const imageUrl = `/api/attachments.json`; + const imageUrl = `${getUploadActionUrl()}`; // 创建editorMd let questio_editormd = create_editorMD(id, '100%', 400, placeholder, imageUrl, () => { diff --git a/public/react/src/modules/tpm/challengesnew/old/TPManswer.js b/public/react/src/modules/tpm/challengesnew/old/TPManswer.js index 7d090c607..350a5ca8d 100644 --- a/public/react/src/modules/tpm/challengesnew/old/TPManswer.js +++ b/public/react/src/modules/tpm/challengesnew/old/TPManswer.js @@ -6,7 +6,7 @@ import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom"; // import "antd/dist/antd.css"; -import { getImageUrl, toPath, getUrl } from 'educoder'; +import { getImageUrl, getUploadActionUrl, getUrl } from 'educoder'; import axios from 'axios'; @@ -170,7 +170,7 @@ export default class TPManswer extends Component { const placeholder = ""; // amp; // 编辑时要传memoId - const imageUrl = `/api/attachments.json`; + const imageUrl = `${getUploadActionUrl()}`; // 创建editorMd const answers_editormd = create_editorMD(id, '100%', 400, placeholder, imageUrl, () => { diff --git a/public/react/src/modules/tpm/newshixuns/oldNewshixuns.js b/public/react/src/modules/tpm/newshixuns/oldNewshixuns.js index 1eaee9ad6..4904219bb 100644 --- a/public/react/src/modules/tpm/newshixuns/oldNewshixuns.js +++ b/public/react/src/modules/tpm/newshixuns/oldNewshixuns.js @@ -243,7 +243,7 @@ class Newshixuns extends Component { const placeholder = ""; // amp; // 编辑时要传memoId - const imageUrl = `/api/attachments.json`; + const imageUrl = `getUploadActionUrl`; // 创建editorMd const taskpass_editormd = create_editorMD("memoMD", '100%', 400, placeholder, imageUrl, () => { diff --git a/public/react/src/modules/user/usersInfo/banks/NewGtaskForm.js b/public/react/src/modules/user/usersInfo/banks/NewGtaskForm.js index 8c0f6474c..70994e42d 100644 --- a/public/react/src/modules/user/usersInfo/banks/NewGtaskForm.js +++ b/public/react/src/modules/user/usersInfo/banks/NewGtaskForm.js @@ -1,7 +1,7 @@ import React,{ Component } from "react"; import { Input, InputNumber, Form, Button, Checkbox, Upload, Icon, message, Modal } from "antd"; import axios from 'axios' -import { WordsBtn, getUrl, ConditionToolTip, appendFileSizeToUploadFile, appendFileSizeToUploadFileAll } from 'educoder' +import { getUploadActionUrl, getUrl, ConditionToolTip, appendFileSizeToUploadFile, appendFileSizeToUploadFileAll } from 'educoder' import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor'; const $ = window.$; const MAX_TITLE_LENGTH = 60; @@ -191,7 +191,7 @@ class NewGtaskForms extends Component{ // https://github.com/ant-design/ant-design/issues/15505 // showUploadList={false},然后外部拿到 fileList 数组自行渲染列表。 // showUploadList: false, - action: `${getUrl()}/api/attachments.json`, + action: `${getUploadActionUrl()}`, onChange: this.handleContentUploadChange, onRemove: (file) => this.onAttachmentRemove(file, 'contentFileList'), beforeUpload: (file) => { From 103d3b3fb94df8409bccc7281d937296181751c0 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 31 Dec 2019 09:09:43 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 30 +++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 4faa42107..ac53343b5 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -23,21 +23,21 @@ class ApplicationController < ActionController::Base # 所有请求必须合法签名 def check_sign - # Rails.logger.info("66666 #{params}") - # suffix = request.url.split(".").last - # suffix_arr = ["xls", "xlsx"] # excel文件先注释 - # unless suffix_arr.include?(suffix) - # if params[:client_key].present? - # randomcode = params[:randomcode] - # tip_exception(501, "请求不合理") unless (Time.now.to_i - randomcode.to_i).between?(0,5) - # - # sign = Digest::MD5.hexdigest("#{OPENKEY}#{randomcode}") - # Rails.logger.info("2222 #{sign}") - # tip_exception(501, "请求不合理") if sign != params[:client_key] - # else - # tip_exception(501, "请求不合理") - # end - # end + Rails.logger.info("66666 #{params}") + suffix = request.url.split(".").last + suffix_arr = ["xls", "xlsx"] # excel文件先注释 + unless suffix_arr.include?(suffix) + if params[:client_key].present? + randomcode = params[:randomcode] + tip_exception(501, "请求不合理") unless (Time.now.to_i - randomcode.to_i).between?(0,5) + + sign = Digest::MD5.hexdigest("#{OPENKEY}#{randomcode}") + Rails.logger.info("2222 #{sign}") + tip_exception(501, "请求不合理") if sign != params[:client_key] + else + tip_exception(501, "请求不合理") + end + end end # 全局配置参数 From 0d389504ebd5d34bf427d8f8fbb489b55563dcc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 31 Dec 2019 09:10:20 +0800 Subject: [PATCH 3/3] =?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/AppConfig.js | 4 ++-- public/react/src/common/UrlTool.js | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/public/react/src/AppConfig.js b/public/react/src/AppConfig.js index 6759fc334..24493dd13 100644 --- a/public/react/src/AppConfig.js +++ b/public/react/src/AppConfig.js @@ -51,7 +51,7 @@ if (isDev) { checkSubmitFlg=true window.setTimeout(function () { checkSubmitFlg=false; - }, 3500); + }, 2500); }else if(checkSubmitFlg===false){ $.ajax({url:proxy,async:false,success:function(data){ if(data.status===0){ @@ -61,7 +61,7 @@ if (isDev) { checkSubmitFlg=true window.setTimeout(function () { checkSubmitFlg=false; - }, 3500); + }, 2500); } } window._debugType = debugType; diff --git a/public/react/src/common/UrlTool.js b/public/react/src/common/UrlTool.js index e190bdd98..33a84dc55 100644 --- a/public/react/src/common/UrlTool.js +++ b/public/react/src/common/UrlTool.js @@ -1,4 +1,5 @@ import md5 from 'md5'; +const $ = window.$; const isDev = window.location.port == 3007; export const TEST_HOST = "https://test-newweb.educoder.net" export function getImageUrl(path) { @@ -82,7 +83,7 @@ function railsgettimess(proxy) { checkSubmitFlgs=true window.setTimeout(function () { checkSubmitFlgs=false; - }, 3500); + }, 2500); } }