nyx_server
Version:
Node内容发布
210 lines (194 loc) • 6.08 kB
JavaScript
import * as types from '../constants/ActionTypes';
import fetch from 'isomorphic-fetch';
import history from '../history';
import reqwest from 'reqwest';
// export function loadColumn(parentId){
// return dispatch=>{
// parentId = parentId || null;
// fetchData(REQUESTADDRESS+"/columns/children/"+parentId).then(function(columns){
// dispatch({
// type : types.LOAD_CHILDREN_COLUMNS,
// payload : {
// parentId : parentId,
// columns : columns
// }
// })
// })
// }
// }
export function loadColumn(parentId){
return dispatch=>{
parentId = parentId || null;
// reqwest({
// url: REQUESTADDRESS + "/columns/children/"+parentId,
// type: 'json',
// method: 'get',
// crossOrigin: true,
// error: function (err) {
// dispatch(setProjectsFailure('服务器错误,请稍后重试'));
// },
// success: function (result) {
// if(result.success){
// dispatch({
// type : types.LOAD_CHILDREN_COLUMNS,
// payload : {
// parentId : parentId,
// columns : result.data
// }
// })
// }else{
// console.log("-------> error");
// }
// //dispatch(setProjectsSuccess(resp));
// }
// });
fetchData(REQUESTADDRESS+"/columns/children/"+parentId).then(function(columns){
dispatch({
type : types.LOAD_CHILDREN_COLUMNS,
payload : {
parentId : parentId,
columns : columns
}
});
});
};
}
//加载栏目模板
export function loadTemplate(columnId , path){
console.log(REQUESTADDRESS+"/columns/template/"+path);
return dispatch =>{
fetchData(REQUESTADDRESS+"/columns/template/"+path).then(function(templates){
console.log('templates' , templates);
dispatch({
type:types.LOAD_COLUMN_TEMPLATE,
payload:{
columnId : columnId,
templates:templates
}
});
});
};
}
function fetchData(url){
return fetch(url, {credentials: "include"}).then(function(response){
return response.json().then(function(result){
if(result.success){
return result.data;
}else{
return [];
}
});
});
}
export function currentSelected(node){
return {
type :types.CURRENT_SELECTED,
payload:node
};
}
/**
* 选择栏目
*/
export function selectTempalte(template){
var {path,fileType,devices ,extra , ui} = template;
devices = (devices || "pc").split(",")[0];
extra = (extra || "").split(",")[0];
var filename= "_"+fileType+"_"+devices+"_"+extra+"_";
var uiname = ui ? (ui['entry'] || "list") : list;
var url = '/manage/columns/column/'+uiname+"/"+path+'/'+filename;
console.log(url);
history.push(url);
return {
type : types.COLUMN_TEMPLATE_SELECTED,
payload : path+'/'+filename
};
}
export function openAddColumn(opened){
return {
type: types.OPEN_ADD_COLUMN,
payload : {opened:opened}
};
}
export function cleanAddColumnState(){
return {
type: types.CLEAN_ADD_COLUMN_STATE
};
}
export function setColumnField(fieldName, value , message) {
return {
type: types.SET_COLUMN_FROM_FIELD,
payload: {
fieldName: fieldName,
value: value,
error: message
}
};
}
export function columnExist(parentId , columnName){
const url = REQUESTADDRESS+"/columns/exist/"+parentId+"/"+columnName;
return dispatch => {
fetch(url, {credentials: "include"}).then(function(result){
result.json().then(function(result){
if(result.success){
dispatch({
type:types.SET_COLUMN_FROM_FIELD,
payload :{
fieldName :"name",
value : columnName,
error : result.data ? "栏目已经存在" : ""
}
});
}else{
dispatch({
type:types.SET_COLUMN_FROM_FIELD,
payload :{
fieldName :"name",
value : columnName,
error : result.message
}
});
}
}).catch(function(err){
dispatch({
type:types.SET_COLUMN_FROM_FIELD,
payload :{
fieldName :"name",
value : columnName,
error : err.message
}
});
});
});
};
}
/**
* 添加栏目
*/
export function addColumn(parentId , children){
var body = "name="+children.name+"&descr="+(children.descr|| "")+"&parentId="+parentId;
return dispatch => {
fetch(REQUESTADDRESS+"/columns/column" ,
{ method: "POST",
credentials: "include",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: body
}).then(function(result){
result.json().then(function(response){
if(response.success){
dispatch({
type : types.CREATE_COLUMN,
payload : {columns:response.data}
});
}else{
dispatch({
type : types.CREATE_COLUMN,
payload : { message : response.message},
error : true
});
}
});
});
};
}