UNPKG

nyx_server

Version:

Node内容发布

210 lines (194 loc) 6.08 kB
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 }); } }); }); }; }