{"version":3,"sources":["components/pages/pagesTable.js","components/comps/ckEditor.js","components/comps/formBar.js","components/pages/pagesForm.js","store/types.js","config/config.js","store/actions/snackBarActions.js","components/pages/pages.js","store/actions/pagesActions.js","components/headlines/headlinesTable.js","components/headlines/headlinesForm.js","components/headlines/headlines.js","store/actions/headlinesActions.js","components/history/historyTable.js","components/history/historyForm.js","components/history/history.js","store/actions/historyActions.js","components/rockInfo/rockInfoTable.js","components/rockInfo/rockInfoForm.js","components/rockInfo/rockInfo.js","store/actions/rockInfoActions.js","components/news/newsTable.js","util/imageHelper.js","components/news/newsForm.js","store/actions/fileActions.js","components/news/news.js","store/actions/newsActions.js","config/const.js","components/todayinmusic/todayInMusicTable.js","components/todayinmusic/todayInMusicForm.js","components/todayinmusic/todayInMusic.js","store/actions/timActions.js","components/banners/bannersTable.js","components/comps/genericInputDlg.js","components/banners/banners.js","store/actions/bannerActions.js","components/albums/albumsTable.js","components/albums/albumsForm.js","components/albums/albums.js","store/actions/albumsActions.js","components/playlist/playlistItemDlg.js","components/playlist/playlist.js","store/actions/playlistActions.js","components/photoGallery/galleryItemDlg.js","components/photoGallery/photoGallery.js","store/actions/photoGalleryActions.js","components/rockLegends/rockLegendsTable.js","components/rockLegends/rockLgendsForm.js","components/rockLegends/rockLegends.js","store/actions/rockLegendsActions.js","components/top20/top20ItemDlg.js","components/top20/top20.js","store/actions/top20Actions.js","store/reducers/authReducer.js","store/reducers/pagesReducer.js","store/reducers/headlinesReducer.js","store/reducers/snackBarReducer.js","store/reducers/historyReducer.js","store/reducers/rockInfoReducer.js","store/reducers/newsReducer.js","store/reducers/timReducer.js","store/reducers/bannerReducer.js","store/reducers/albumsReducer.js","store/reducers/playlistsReducer.js","store/reducers/photoGalleryReducer.js","store/reducers/rockLegendsReducer.js","store/reducers/top20Reducer.js","store/reducers/rootReducer.js","store/store.js","util/auth.js","store/actions/authActions.js","components/layout/appLayout.js","components/layout/loginLayout.js","components/comps/Notifier.js","theme/darkCustom.js","hoc/requireAuth.js","App.js","serviceWorker.js","index.js"],"names":["PagesTable","state","value","onRowClick","event","rowData","_this","props","onButtonClick","eventHandler","currentTarget","name","onAdd","onDelete","data","_this2","this","hidden","_this$props","pages","classes","react_default","a","createElement","className","root","material_table_default","title","columns","field","editable","options","pageSize","pageSizeOptions","actions","disabled","icon","isFreeAction","onClick","onRowDelete","oldData","Promise","resolve","reject","React","Component","withStyles","width","minWidth","display","& th","color","backgroundColor","height","fontSize","& tr td:first-child","& tfoot tr td:first-child","titleButton","marginLeft","withTheme","connect","dispatch","CkEditor","ckeditor_default","onChange","config","filebrowserBrowseUrl","filebrowserUploadUrl","uiColor","formatOutput","allowedContent","stylesSet","window","editorStyles","entities_latin","contentsCss","FormBar","index_es","disableGutters","toolbarButton","onFormBack","variant","tollbarText","PureComponent","theme","minHeight","borderBottom","flexGrow","textAlign","marginRight","PagesForm","content","editMode","onFormEvent","id","setState","Object","objectSpread","defineProperty","target","editor","getData","nextProps","editorData","onEditorChange","handleEditorChange","bind","formBar","margin","fullWidth","htmlFor","type","handleChange","buttons","button","maxWidth","borderRadius","background","padding","& a span","spacing","unit","NOTIFIERS","STATES","LIST","EDIT","BackendSettings","enqueueSnackbar","notification","key","Date","getTime","Math","random","autoHideDuration","removeSnackbar","Pages","getPage","eventName","setPageEditState","updatePage","addPage","deletePage","getPages","resetState","pagesTable","currentState","pagesForm","editPage","getState","axios","get","then","response","payload","catch","err","message","arguments","length","undefined","getPage_a","newState","setPageEditState_a","post","status","updatePage_a","addPage_a","deletePage_a","HeadlinesTable","headlines","defaultSort","render","publish","HeadlinesForm","checked","display_order","date","toJSON","slice","replace","row","label","textField","defaultValue","InputLabelProps","shrink","labelPlacement","control","marginTop","formLabel","Headlines","getHeadline","setHeadlineEditState","updateHeadline","addHeadline","deleteHeadline","getHeadlines","headlinesTable","headlinesForm","editHeadline","getHeadline_a","setHeadlineEditState_a","updateHeadline_a","addHeadline_a","deleteHeadline_a","HistoryTable","histories","HistoryForm","History","getHistory","setHistoryEditState","updateHistory","addHistory","deleteHistory","getHistories","historyTable","history","historyForm","editHistory","getHistory_a","setHistoryEditState_a","updateHistory_a","addHistory_a","deleteHistory_a","RockInfoTable","RockInfoForm","console","log","RockInfo","getRockInfo","setRockInfoEditState","updateRockInfo","addRockInfo","deleteRockInfo","getRockInfos","rockInfoTable","rockInfo","info","rockInfoForm","editInfo","getRockInfo_a","setRockInfoEditState_a","updateRockInfo_a","addRockInfo_a","deleteRockInfo_a","NewsTable","image","src","listImage","filtering","isSticky","maxHeight","imageExists","imageData","imagePath","pathParts","split","getImageNameFromPath","NewsForm","content_short","resetStateData","fileName","onDrop","acceptedFiles","rejectedFiles","uploadImage","imageDrop","alt","rootLeft","multiline","rowsMax","dist_es","_ref","getRootProps","rootRight","& textarea","& input","float","uploadImage_a","file","context","formData","FormData","append","headers","content-type","News","getNewsDetails","setNewsEditState","updateNews","addNews","deleteNews","getNews","newsTable","news","newsForm","editNews","getNewsDetails_a","setNewsEditState_a","updateNews_a","addNews_a","deleteNews_a","monthNames","TodayInMusicTable","TodayInMusicForm","TodayInMusic","getTIM","setTIMEditState","updateTIM","getTIMAll","todayInMusicTable","todayInMusic","todayInMusicForm","editData","getTIM_a","setTIMEditState_a","updateTIM_a","BannersTable","GenericInputDlg","onCancel","onOk","dlgSettings","handleInputChange","Dialog_default","open","onClose","aria-labelledby","DialogTitle_default","dialogTitle","DialogContent_default","autoFocus","InputProps","input","textArea","DialogActions_default","Button_default","fontWeight","Banners","editDlgSettings","getBanner","setBannerEditState","updateBanner","addBanner","deleteBanner","getBanners","genericInputDlg","banners","bannersTable","getBanner_a","setBannerEditState_a","updateBanner_a","addBanner_a","deleteBanner_a","AlbumsTable","AlbumsForm","Albums","getAlbum","setAlbumEditState","updateAlbum","addAlbum","deleteAlbum","getAlbums","albumsTable","albums","albumsForm","getAlbum_a","setAlbumEditState_a","updateAlbum_a","addAlbum_a","deleteAlbum_a","PlaylistItemDlg","subtitle","short_description","url","prevProps","prevState","snapshot","innerLeft","innerRight","paddingTop","Playlist","onCategoryRowClick","getPlaylistCategory","onAddCategory","addCategory","onAddSubcategory","parentId","playlist","currentCategoryId","onAddPlaylistItem","setPlaylistEditState","onEditPlaylistItem","newData","updatePlaylistItem","onDeletePlaylistItem","deletePlaylistItem","onSubcategoryClick","getPlaylist","deleteCategory","parent_id","onRowPlaylistItemClick","getPlaylistItem","currentSubcategoryId","addPlaylistItem","catName","subCatData","playlistData","currentPlaylist","i","categories","playlistItemDlg","readonly","searchFieldStyle","rowStyle","onRowAdd","onRowUpdate","onEdit","rootCenter","search","detailPanel","frameborder","allow","allowFullScreen","marginBottom","playlists","setCurrent","categoryId","getPlaylistCategory_a","addCategory_a","deleteCategory_a","updateCategory","updateCategory_a","getPlaylist_a","addPlaylistItem_a","deletePlaylistItem_a","updatePlaylistItem_a","getPlaylistItem_a","GalleryItemDlg","PhotoGallery","onCategoryEdit","onCategoryDelete","getPhotoGallery","onDeleteGalleryImage","deleteGalleryImage","onAddImage","setGalleryEditState","gallery_id","galleries","addGalleryImage","getCategories","galleryItemDlg","currentGallery","getPhotoCategories_a","addPhotoCategory_a","updatePhotoCategory_a","getPhotoGallery_a","itemId","addGalleryImage_a","setGalleryEditState_a","RockLegendsTable","RockLegendsForm","getRockLegend","setRockLegendEditState","updateRockLegend","addRockLegend","deleteRockLegend","getRockLegends","rockLegendsTable","rockLegends","rockLgendsForm","getRockLegend_a","setRockLegendEditState_a","updateRockLegend_a","addRockLegend_a","deleteRockLegend_a","Top20ItemDlg","artist","song","votes","active","previousMonth","previous2Months","monthsInTop","totalVotes","nextContext","Top20","subCatName","listData","getTop20Category","onDeleteCategory","onEditCategory","getTop20Items","onTopItemClick","getTop20Item","onAddTop20Item","setTop20EditState","onDeleteTop20Item","deleteTop20Item","updateTop20Item","top20","addTop20Item","smallColumns","cellStyle","headerStyle","currentList","top20ItemDlg","tableContainer","tableColumn","paging","style","tableLayout","frameBorder","flexDirection","getTop20Category_a","getTop20Items_a","getTop20Item_a","updateTop20Item_a","deleteTop20Item_a","addTop20Item_a","initState","authenticated","userInfo","loading","error","authReducer","action","isEmpty","user","modules","pagesReducer","concat","toConsumableArray","item","filter","newPages","map","page","headlinesReducer","newHeadlines","headline","notifications","snackBarReducer","historyReducer","newHistory","history_","rockInfoReducer","info_","newInfo","newsReducer","newNews","fileUrl","timReducer","bannerReducer","data_","albumsReducer","playlistReducer","items","newItems","push","newSubCategories","j","photoGalleryReducer","galleryId","gallery","newCategories","rockLegendsReducer","top20Reducer","rootReducer","combineReducers","userState","playlistsReducer","store","createStore","applyMiddleware","thunk","localStorage","kptv","setAuthorizationToken","decodedToken","jwt","decode","removeItem","ex","token","defaults","common","interceptors","use","AppLayout","leftDrawerOpen","toggleLeftDrawer","onLogout","logout","_classNames3","_classNames4","CssBaseline_default","AppBar_default","position","classNames","appBar","appBarShift","Toolbar_default","IconButton_default","aria-label","menuButton","hide","Menu_default","Typography_default","noWrap","logoutButton","drawer","drawerOpen","drawerClose","paper","toolbar","ChevronLeft_default","Divider_default","List_default","Link","to","ListItem_default","Icon_default","ListItemText_default","primary","Switch","Route","path","component","RockLegends","& a","textDecoration","zIndex","transition","transitions","create","easing","sharp","duration","leavingScreen","enteringScreen","flexShrink","whiteSpace","overflowX","breakpoints","up","alignItems","justifyContent","mixins","paddingLeft","textShadow","LoginLayout","userName","password","onLogin","login","handlePasswordChange","handleUserNameChange","router","react","close","TextField_default","contextTypes","PropTypes","object","credentials","username","setItem","tokenDecoded","login_a","Notifier","displayed","storeDisplayed","_ref$notifications","newSnacks","currentSnacks","notExists","_loop","_ref2","_this$props$notificat","forEach","includes","bindActionCreators","withSnackbar","darkCustom","palette","overrides","MuiButton","textPrimary","requireAuth","ComposedComponent","Authentication","_Component","classCallCheck","possibleConstructorReturn","getPrototypeOf","apply","inherits","createClass","App","BrowserRouter","basename","core_styles","createMuiTheme","comps_Notifier","exact","Boolean","location","hostname","match","ReactDOM","es","build","maxSnack","src_App_0","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.af6bdb34.chunk.js","sourcesContent":["import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport MaterialTable from 'material-table';\r\n\r\n\r\nconst styles = () => ({\r\n root: {\r\n width: '100%',\r\n minWidth: 600,\r\n display: \"inline-block\",\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass PagesTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n //switch(event.currentTarget.name) {}\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {pages, classes} = this.props;\r\n\r\n return (\r\n
\r\n \r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(PagesTable));\r\n","import React from 'react';\r\nimport CKEditor from 'ckeditor4-react';\r\n\r\nexport function CkEditor(props) {\r\n return (\r\n props.onChange(event)}\r\n config={\r\n {\r\n filebrowserBrowseUrl: '/browser/browse.php',\r\n filebrowserUploadUrl: '/uploader/upload.php',\r\n uiColor: '#f4f4f4',\r\n height: 500,\r\n formatOutput: false,\r\n allowedContent: true,\r\n stylesSet: window.editorStyles,\r\n entities_latin: false,\r\n // contentsCss: 'http://localhost/chkskin/editor.css' // Local\r\n contentsCss : 'http://127.0.0.1/kptv_site/admin/chkskin/editor.css' // Prod\r\n }\r\n }\r\n />\r\n )\r\n}\r\n","import React from 'react';\r\nimport {Button, Icon, Toolbar, Typography} from \"@material-ui/core\";\r\nimport {withStyles} from '@material-ui/core/styles';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n minHeight: \"20px !important\",\r\n //background: \"#4c4200\",\r\n borderBottom: \"1px dotted #555\",\r\n color: \"white\"\r\n },\r\n\r\n tollbarText: {\r\n flexGrow: 1,\r\n textAlign: \"center\",\r\n marginLeft: \"-75px !important\",\r\n color: \"white\"\r\n },\r\n\r\n toolbarButton: {\r\n marginRight: 5,\r\n width: 20,\r\n minWidth: 20,\r\n color: \"white\"\r\n },\r\n});\r\n\r\nclass FormBar extends React.PureComponent {\r\n render() {\r\n const {classes} = this.props;\r\n return (\r\n \r\n \r\n {this.props.title}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(FormBar);","import React from 'react';\r\nimport {Button, FormControl, Input, InputLabel} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n maxWidth: 650,\r\n width: 650,\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n \"& a span\": {\r\n color: \"black !important\"\r\n }\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass PagesForm extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n title: '',\r\n content: '',\r\n editMode: false\r\n };\r\n\r\n handleChange(event) {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data) {\r\n this.setState({\r\n editMode: true,\r\n title: nextProps.data.title,\r\n id: nextProps.data.id,\r\n content: nextProps.data.content\r\n });\r\n } else {\r\n this.setState({\r\n editMode: false,\r\n title: '',\r\n content: ''\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n return (\r\n\r\n\r\n
\r\n this.onButtonClick(event)}>\r\n\r\n \r\n Page Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(PagesForm);","// ACTIONS AND NOTIFIERS\r\n\r\n/*\r\nADD_PROJECT: 1 - action \r\n+ 1 STARTED\r\n+ 2 COMPLETED\r\n+ 3 ERROR\r\n*/\r\n\r\nexport const NOTIFIERS = {\r\n SET_TOP20_IMAGE_UPLOAD: -10,\r\n SET_PLAYLIST_IMAGE_UPLOAD: -9,\r\n SET_ROCKLEGEND_IMAGE_UPLOAD: -8,\r\n SET_ALBUM_IMAGE_UPLOAD: -7,\r\n SET_NEWS_IMAGE_UPLOAD: -6,\r\n SET_NEWS_EDIT_STATE: -5,\r\n SET_ROCKINFO_EDIT_STATE: -5,\r\n SET_HISTORY_EDIT_STATE: -4,\r\n SET_HEADLINE_EDIT_STATE: -3,\r\n SET_PAGE_EDIT_STATE: -2,\r\n SET_CONTEXT: -1,\r\n\r\n\r\n GET_PAGES: 0,\r\n GET_PAGE: 4,\r\n ADD_PAGE: 8,\r\n UPDATE_PAGE: 12,\r\n DELETE_PAGE: 16,\r\n RESET_PAGES_STATE: 17,\r\n\r\n GET_HEADLINES: 24,\r\n GET_HEADLINE: 28,\r\n ADD_HEADLINE: 32,\r\n UPDATE_HEADLINE: 36,\r\n DELETE_HEADLINE: 40,\r\n RESET_HEADLINES_STATE: 41,\r\n\r\n GET_HISTORIES: 48,\r\n GET_HISTORY: 52,\r\n ADD_HISTORY: 56,\r\n UPDATE_HISTORY: 60,\r\n DELETE_HISTORY: 64,\r\n RESET_HISTORY_STATE: 65,\r\n\r\n\r\n GET_ROCKINFOS: 72,\r\n GET_ROCKINFO: 76,\r\n ADD_ROCKINFO: 80,\r\n UPDATE_ROCKINFO: 84,\r\n DELETE_ROCKINFO: 88,\r\n RESET_ROCKINFO_STATE: 89,\r\n\r\n GET_NEWS: 96,\r\n GET_NEWS_DETAILS: 100,\r\n ADD_NEWS: 104,\r\n UPDATE_NEWS: 108,\r\n DELETE_NEWS: 112,\r\n RESET_NEWS_STATE: 113,\r\n\r\n GET_TIM: 120,\r\n UPDATE_TIM: 124,\r\n GET_TIM_DETAIL: 128,\r\n SET_TIM_EDIT_STATE: 132,\r\n RESET_TIM_STATE: 133,\r\n\r\n GET_BANNERS: 140,\r\n GET_BANNER: 144,\r\n UPDATE_BANNER: 148,\r\n ADD_BANNER: 152,\r\n DELETE_BANNER: 156,\r\n SET_BANNER_EDIT_STATE: 160,\r\n\r\n GET_ALBUMS: 168,\r\n ADD_ALBUM: 172,\r\n DELETE_ALBUM: 176,\r\n UPDATE_ALBUM: 180,\r\n GET_ALBUM: 184,\r\n SET_ALBUM_EDIT_STATE: 188,\r\n RESET_ALBUMS_STATE: 195,\r\n\r\n\r\n GET_PLAYLIST_CATEGORY: 196,\r\n ADD_PLAYLIST_CATEGORY: 200,\r\n DELETE_PLAYLIST_CATEGORY: 204,\r\n UPDATE_PLAYLIST_CATEGORY: 208,\r\n GET_PLAYLIST: 212,\r\n ADD_PLAYLIST_ITEM: 216,\r\n DELETE_PLAYLIST_ITEM: 220,\r\n UPDATE_PLAYLIST_ITEM: 224,\r\n RESET_PLAYLISTS_STATE: 228,\r\n SET_PLAYLIST_EDIT_STATE: 232,\r\n GET_PLAYLIST_ITEM: 236,\r\n\r\n RESET_TOP20_STATE: 250,\r\n SET_TOP20_EDIT_STATE: 254,\r\n GET_TOP20_CATEGORY: 258,\r\n ADD_TOP20_CATEGORY: 262,\r\n DELETE_TOP20_CATEGORY: 266,\r\n UPDATE_TOP20_CATEGORY: 270,\r\n GET_TOP20_ITEMS: 274,\r\n GET_TOP20_ITEM: 278,\r\n UPDATE_TOP20_ITEM: 282,\r\n DELETE_TOP20_ITEM: 286,\r\n ADD_TOP20_ITEM: 290,\r\n\r\n\r\n GET_PHOTO_CATEGORIES: 332,\r\n ADD_PHOTO_CATEGORY: 336,\r\n DELETE_PHOTO_CATEGORY: 340,\r\n UPDATE_PHOTO_CATEGORY: 344,\r\n GET_PHOTO_GALLERY: 348,\r\n DELETE_GALLERY_IMAGE: 352,\r\n SET_GALLERY_EDIT_STATE: 356,\r\n SET_GALLERY_IMAGE_UPLOAD: 360,\r\n RESET_PHOTO_STATE: 364,\r\n ADD_GALLERY_IMAGE: 368,\r\n\r\n GET_ROCKLEGENDS: 400,\r\n ADD_ROCKLEGEND: 404,\r\n DELETE_ROCKLEGEND: 408,\r\n UPDATE_ROCKLEGEND: 412,\r\n GET_ROCKLEGEND: 416,\r\n SET_ROCKLEGEND_EDIT_STATE: 420,\r\n RESET_ROCKLEGEND_STATE: 424,\r\n\r\n LOGIN: 500,\r\n LOGOUT: 540,\r\n\r\n}\r\n\r\nexport const STATES = {\r\n LIST: 1,\r\n EDIT: 2\r\n}\r\n","// Local\r\n// export const BackendSettings = {\r\n// \tbaseUrl: \"http://localhost/admin2/services/\",\r\n// \tbaseUrlAssets: \"http://localhost/assets\",\r\n// \tbaseImagesUrl: \"http://localhost/images/\"\r\n// }\r\n\r\n// PROD - testsite\r\nexport const BackendSettings = {\r\n baseUrl : \"http://85.9.62.212/kptv/admin2/services/\",\r\n baseUrlAssets: \"http://testsite.kptv.ro/radio/ro/assets\",\r\n baseImagesUrl: \"http://85.9.62.212/kptv/images/\"\r\n}\r\n","export const enqueueSnackbar = (notification) => {\r\n return {\r\n type: 'ENQUEUE_SNACKBAR',\r\n notification: {\r\n key: new Date().getTime() + Math.random(),\r\n ...notification,\r\n autoHideDuration: 1000\r\n }\r\n }\r\n};\r\n\r\nexport const removeSnackbar = key => ({\r\n type: 'REMOVE_SNACKBAR',\r\n key,\r\n});","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport PagesTable from './pagesTable';\r\nimport PagesForm from './pagesForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addPage_a,\r\n deletePage_a,\r\n getPage_a,\r\n getPages_a,\r\n resetState_a,\r\n setPageEditState_a,\r\n updatePage_a\r\n} from '../../store/actions/pagesActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass Pages extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getPages();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.props.getPage(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setPageEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updatePage(data);\r\n } else {\r\n this.props.addPage(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n //console.log(\"DELETE DATA\", data);\r\n this.props.deletePage(data.id);\r\n break;\r\n case 'tableAdd': {\r\n this.props.setPageEditState(STATES.EDIT);\r\n break;\r\n\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n pages: state.pages\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getPages: (data) => dispatch(getPages_a()),\r\n getPage: (id, editMode) => dispatch(getPage_a(id, editMode)),\r\n setPageEditState: (state) => dispatch(setPageEditState_a(state)),\r\n updatePage: (data) => dispatch(updatePage_a(data)),\r\n addPage: (data) => dispatch(addPage_a(data)),\r\n deletePage: (id) => dispatch(deletePage_a(id)),\r\n resetState: () => dispatch(resetState_a())\r\n\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Pages));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getPages_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PAGES + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"pages\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_PAGES + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PAGES + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getPage_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PAGE + 1});\r\n return axios.get(BackendSettings.baseUrl + \"page/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_PAGE + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PAGE + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updatePage_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_PAGE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updatePage\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PAGE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PAGE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addPage_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_PAGE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addPage\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PAGE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PAGE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deletePage_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_PAGE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deletePage\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PAGE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PAGE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_PAGES_STATE, newState: state};\r\n}\r\n\r\nexport const setPageEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_PAGE_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n width: '100%',\r\n minWidth: 1200,\r\n display: \"inline-block\",\r\n\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass HeadlinesTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n //switch(event.currentTarget.name) {}\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {headlines, classes} = this.props;\r\n\r\n return (\r\n
\r\n {\r\n return (rowData.publish ? \"Yes\" : \"No\")\r\n }\r\n },\r\n {title: 'Display Order', field: 'display_order'}\r\n ]}\r\n\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30]\r\n\r\n }}\r\n\r\n onRowClick={this.onRowClick}\r\n\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n //iconProps: {style: {marginLeft:20}},\r\n isFreeAction: true,\r\n onClick: this.onAdd\r\n }]}\r\n\r\n editable={{\r\n onRowDelete: oldData =>\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(HeadlinesTable));\r\n","import React from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormControlLabel,\r\n FormGroup,\r\n Input,\r\n InputLabel,\r\n Switch,\r\n TextField\r\n} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n maxWidth: 650,\r\n width: 650,\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n \"& a span\": {\r\n color: \"black !important\"\r\n },\r\n },\r\n\r\n textField: {\r\n marginLeft: theme.spacing.unit,\r\n marginRight: theme.spacing.unit,\r\n marginTop: 0,\r\n width: 200,\r\n },\r\n\r\n formLabel: {\r\n marginLeft: 0,\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass HeadlinesForm extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n title: '',\r\n content: '',\r\n editMode: false\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data) {\r\n this.setState({\r\n editMode: true,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n display_order: nextProps.data.display_order,\r\n publish: nextProps.data.publish,\r\n date: nextProps.data.date\r\n });\r\n } else {\r\n this.setState({\r\n editMode: false,\r\n title: '',\r\n content: '',\r\n display_order: 1,\r\n publish: false,\r\n date: new Date().toJSON().slice(0, 10).replace(/-/g, '-')\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n display_order: this.state.display_order,\r\n publish: this.state.publish,\r\n date: this.state.date\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n return (\r\n
\r\n this.onButtonClick(event)}>\r\n\r\n \r\n Headline Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n \r\n\r\n \r\n this.handleChange(event)}\r\n margin=\"normal\"/>\r\n this.handleChange(event)}/>\r\n this.handleChange(event)}/>\r\n }/>\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(HeadlinesForm);","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport HeadlinesTable from './headlinesTable'\r\nimport HeadlinesForm from './headlinesForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addHeadline_a,\r\n deleteHeadline_a,\r\n getHeadline_a,\r\n getHeadlines_a,\r\n resetState_a,\r\n setHeadlineEditState_a,\r\n updateHeadline_a\r\n} from '../../store/actions/headlinesActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass Headlines extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getHeadlines();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.props.getHeadline(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setHeadlineEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateHeadline(data);\r\n } else {\r\n this.props.addHeadline(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteHeadline(data.id);\r\n break;\r\n case 'tableAdd': {\r\n this.props.setHeadlineEditState(STATES.EDIT);\r\n break;\r\n\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n headlines: state.headlines\r\n }\r\n}\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getHeadlines: (data) => dispatch(getHeadlines_a()),\r\n getHeadline: (id, editMode) => dispatch(getHeadline_a(id, editMode)),\r\n setHeadlineEditState: (state) => dispatch(setHeadlineEditState_a(state)),\r\n updateHeadline: (data) => dispatch(updateHeadline_a(data)),\r\n addHeadline: (data) => dispatch(addHeadline_a(data)),\r\n deleteHeadline: (id) => dispatch(deleteHeadline_a(id)),\r\n resetState: () => dispatch(resetState_a())\r\n\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Headlines));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getHeadlines_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_HEADLINES + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"headlines\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_HEADLINES + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_HEADLINES + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getHeadline_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_HEADLINE + 1});\r\n return axios.get(BackendSettings.baseUrl + \"headline/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_HEADLINE + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_HEADLINE + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateHeadline_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_HEADLINE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateHeadline\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_HEADLINE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_HEADLINE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addHeadline_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_HEADLINE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addHeadline\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_HEADLINE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_HEADLINE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteHeadline_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_HEADLINE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteHeadline\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_HEADLINE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_HEADLINE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_HEADLINES_STATE, newState: state};\r\n}\r\n\r\nexport const setHeadlineEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_HEADLINE_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n minWidth: 1400,\r\n width: '100%',\r\n display: \"inline-block\",\r\n\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass HistoryTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n //switch(event.currentTarget.name) {}\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {histories, classes} = this.props;\r\n\r\n return (\r\n
\r\n {\r\n return (rowData.publish ? \"Yes\" : \"No\")\r\n }\r\n },\r\n {title: 'Display Order', field: 'display_order'}\r\n ]}\r\n\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30]\r\n\r\n }}\r\n\r\n onRowClick={this.onRowClick}\r\n\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n //iconProps: {style: {marginLeft:20}},\r\n isFreeAction: true,\r\n onClick: this.onAdd\r\n }]}\r\n\r\n editable={{\r\n onRowDelete: oldData =>\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(HistoryTable));","import React from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormControlLabel,\r\n FormGroup,\r\n Input,\r\n InputLabel,\r\n Switch,\r\n TextField\r\n} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n maxWidth: 650,\r\n width: 650,\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n \"& a span\": {\r\n color: \"black !important\"\r\n },\r\n },\r\n\r\n textField: {\r\n marginLeft: theme.spacing.unit,\r\n marginRight: theme.spacing.unit,\r\n marginTop: 0,\r\n width: 200,\r\n },\r\n\r\n formLabel: {\r\n marginLeft: 0,\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass HistoryForm extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n title: '',\r\n content: '',\r\n editMode: false\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data) {\r\n // TODO CHANGE THIS\r\n this.setState({\r\n editMode: true,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n display_order: nextProps.data.display_order,\r\n publish: nextProps.data.publish,\r\n date: nextProps.data.date\r\n });\r\n\r\n } else {\r\n this.setState({\r\n editMode: false,\r\n title: '',\r\n content: '',\r\n display_order: 1,\r\n publish: false,\r\n date: new Date().toJSON().slice(0, 10).replace(/-/g, '-')\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n display_order: this.state.display_order,\r\n publish: this.state.publish,\r\n date: this.state.date\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n return (\r\n
\r\n this.onButtonClick(event)}>\r\n\r\n \r\n Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n \r\n\r\n \r\n this.handleChange(event)}\r\n margin=\"normal\"/>\r\n this.handleChange(event)}/>\r\n this.handleChange(event)}/>\r\n }/>\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(HistoryForm);","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport HistoryTable from './historyTable'\r\nimport HistoryForm from './historyForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addHistory_a,\r\n deleteHistory_a,\r\n getHistories_a,\r\n getHistory_a,\r\n resetState_a,\r\n setHistoryEditState_a,\r\n updateHistory_a\r\n} from '../../store/actions/historyActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass History extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getHistories();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.props.getHistory(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setHistoryEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateHistory(data);\r\n } else {\r\n this.props.addHistory(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteHistory(data.id);\r\n break;\r\n case 'tableAdd': {\r\n this.props.setHistoryEditState(STATES.EDIT);\r\n break;\r\n\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n histories: state.histories\r\n }\r\n}\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getHistories: (data) => dispatch(getHistories_a()),\r\n getHistory: (id, editMode) => dispatch(getHistory_a(id, editMode)),\r\n setHistoryEditState: (state) => dispatch(setHistoryEditState_a(state)),\r\n updateHistory: (data) => dispatch(updateHistory_a(data)),\r\n addHistory: (data) => dispatch(addHistory_a(data)),\r\n deleteHistory: (id) => dispatch(deleteHistory_a(id)),\r\n resetState: () => dispatch(resetState_a())\r\n\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(History));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getHistories_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_HISTORIES + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"histories\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_HISTORIES + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_HISTORIES + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getHistory_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_HISTORY + 1});\r\n return axios.get(BackendSettings.baseUrl + \"history/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_HISTORY + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_HISTORY + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateHistory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_HISTORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateHistory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_HISTORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_HISTORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addHistory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_HISTORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addHistory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_HISTORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_HISTORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteHistory_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_HISTORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteHistory\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_HISTORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_HISTORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_HISTORY_STATE, newState: state};\r\n}\r\n\r\nexport const setHistoryEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_HISTORY_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n minWidth: 1200,\r\n width: '100%',\r\n display: \"inline-block\",\r\n\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass RockInfoTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n //switch(event.currentTarget.name) {}\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {data, classes} = this.props;\r\n\r\n return (\r\n
\r\n {\r\n return (rowData.publish ? \"Yes\" : \"No\")\r\n }\r\n },\r\n {title: 'Display Order', field: 'display_order'}\r\n ]}\r\n\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30]\r\n\r\n }}\r\n\r\n onRowClick={this.onRowClick}\r\n\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n //iconProps: {style: {marginLeft:20}},\r\n isFreeAction: true,\r\n onClick: this.onAdd\r\n }]}\r\n\r\n editable={{\r\n onRowDelete: oldData =>\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(RockInfoTable));","import React from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormControlLabel,\r\n FormGroup,\r\n Input,\r\n InputLabel,\r\n Switch,\r\n TextField\r\n} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n maxWidth: 650,\r\n width: 650,\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n \"& a span\": {\r\n color: \"black !important\"\r\n },\r\n },\r\n\r\n textField: {\r\n marginLeft: theme.spacing.unit,\r\n marginRight: theme.spacing.unit,\r\n marginTop: 0,\r\n width: 200,\r\n },\r\n\r\n formLabel: {\r\n marginLeft: 0,\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass RockInfoForm extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n title: '',\r\n content: '',\r\n editMode: false\r\n };\r\n\r\n handleChange = (event) => {\r\n\r\n console.log(event.target.name, event.target.value);\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n\r\n console.log(this.state);\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data) {\r\n this.setState({\r\n editMode: true,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n display_order: nextProps.data.display_order,\r\n publish: nextProps.data.publish,\r\n date: nextProps.data.date\r\n });\r\n } else {\r\n this.setState({\r\n editMode: false,\r\n title: '',\r\n content: '',\r\n display_order: 1,\r\n publish: false,\r\n date: new Date().toJSON().slice(0, 10).replace(/-/g, '-')\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n display_order: this.state.display_order,\r\n publish: this.state.publish,\r\n date: this.state.date\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n return (\r\n
\r\n this.onButtonClick(event)}>\r\n\r\n \r\n Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n \r\n\r\n \r\n this.handleChange(event)}\r\n margin=\"normal\"/>\r\n this.handleChange(event)}/>\r\n this.handleChange(event)}/>\r\n }/>\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(RockInfoForm);","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport RockInfoTable from './rockInfoTable'\r\nimport RockInfoForm from './rockInfoForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addRockInfo_a,\r\n deleteRockInfo_a,\r\n getRockInfo_a,\r\n getRockInfos_a,\r\n resetState_a,\r\n setRockInfoEditState_a,\r\n updateRockInfo_a\r\n} from '../../store/actions/rockInfoActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass RockInfo extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getRockInfos();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.props.getRockInfo(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setRockInfoEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateRockInfo(data);\r\n } else {\r\n this.props.addRockInfo(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteRockInfo(data.id);\r\n break;\r\n case 'tableAdd': {\r\n this.props.setRockInfoEditState(STATES.EDIT);\r\n break;\r\n\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n rockInfo: state.rockInfo\r\n }\r\n}\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getRockInfos: (data) => dispatch(getRockInfos_a()),\r\n getRockInfo: (id, editMode) => dispatch(getRockInfo_a(id, editMode)),\r\n setRockInfoEditState: (state) => dispatch(setRockInfoEditState_a(state)),\r\n updateRockInfo: (data) => dispatch(updateRockInfo_a(data)),\r\n addRockInfo: (data) => dispatch(addRockInfo_a(data)),\r\n deleteRockInfo: (id) => dispatch(deleteRockInfo_a(id)),\r\n resetState: () => dispatch(resetState_a())\r\n\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(RockInfo));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getRockInfos_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKINFOS + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"rockinfos\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKINFOS + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_ROCKINFOS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getRockInfo_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKINFO + 1});\r\n return axios.get(BackendSettings.baseUrl + \"rockinfo/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKINFO + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_ROCKINFO + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateRockInfo_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_ROCKINFO + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateRockInfo\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_ROCKINFO + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_ROCKINFO + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addRockInfo_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_ROCKINFO + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addRockInfo\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_ROCKINFO + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_ROCKINFO + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteRockInfo_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_ROCKINFO + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteRockInfo\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_ROCKINFO + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_ROCKINFO + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_ROCKINFO_STATE, newState: state};\r\n}\r\n\r\nexport const setRockInfoEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_ROCKINFO_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { BackendSettings } from '../../config/config';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n\troot: {\r\n\t\tminWidth: 1200,\r\n\t\twidth: '100%',\r\n\t\tdisplay: \"inline-block\",\r\n\t\t\"& th\":\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#FFF\",\r\n\t\t\t\tbackgroundColor: \"#000 !important\",\r\n\t\t\t\theight: \"10px !important\",\r\n\t\t\t\tfontSize: \"1rem\"\r\n\t\t\t},\r\n\t\t\"& tr td:first-child\": {\r\n\t\t\twidth: 100\r\n\t\t},\r\n\t\t\"& tfoot tr td:first-child\": {\r\n\t\t\twidth: 500\r\n\t\t}\r\n\t},\r\n\r\n\tlistImage: {\r\n\t\tmaxHeight: 90,\r\n\t},\r\n\r\n\ttitleButton: {\r\n\t\tmarginLeft: 50\r\n\t}\r\n});\r\n\r\nclass NewsTable extends React.Component {\r\n\r\n\tstate = {\r\n\t\tvalue: 0,\r\n\t};\r\n\r\n\tonRowClick = (event, rowData) => {\r\n\t\tthis.props.onRowClick(rowData);\r\n\t}\r\n\r\n\tonButtonClick = (event) => {\r\n\t\tthis.props.eventHandler(event.currentTarget.name);\r\n\t\t//switch(event.currentTarget.name) {}\r\n\t}\r\n\r\n\tonAdd = () => {\r\n\t\tthis.props.eventHandler(\"tableAdd\");\r\n\t}\r\n\r\n\tonDelete = (data) => {\r\n\t\tthis.props.eventHandler(\"tableDelete\", data);\r\n\t}\r\n\r\n\trender() {\r\n\r\n\t\tif (this.props.hidden) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst {data, classes} = this.props;\r\n\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t return (rowData.image ? : '');\r\n\t\t\t\t\t\t\t\t\t },\r\n\t\t\t\t\t\t\t\t\t filtering: false\r\n\t\t\t\t\t\t\t\t },\r\n\t\t\t\t\t\t\t\t {title: 'Title', field: 'title'},\r\n\t\t\t\t\t\t\t\t {title: 'Date', field: 'date', defaultSort: 'desc'},\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t title: 'Publish',\r\n\t\t\t\t\t\t\t\t\t field: 'publish',\r\n\t\t\t\t\t\t\t\t\t render: rowData => {\r\n\t\t\t\t\t\t\t\t\t\t return (rowData.publish ? \"Yes\" : \"No\")\r\n\t\t\t\t\t\t\t\t\t },\r\n\t\t\t\t\t\t\t\t\t filtering: false\r\n\t\t\t\t\t\t\t\t },\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t title: 'Sticky', field: 'isSticky',\r\n\t\t\t\t\t\t\t\t\t render: rowData => {\r\n\t\t\t\t\t\t\t\t\t\t return (rowData.isSticky ? \"Yes\" : \"No\")\r\n\t\t\t\t\t\t\t\t\t },\r\n\t\t\t\t\t\t\t\t\t filtering: false\r\n\t\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t ]}\r\n\r\n\t\t\t\t\t\t\t options={{\r\n\t\t\t\t\t\t\t\t pageSize: 10,\r\n\t\t\t\t\t\t\t\t pageSizeOptions: [10, 20, 30],\r\n\t\t\t\t\t\t\t\t filtering: true,\r\n\t\t\t\t\t\t\t }}\r\n\r\n\t\t\t\t\t\t\t onRowClick={this.onRowClick}\r\n\r\n\t\t\t\t\t\t\t actions={[{\r\n\t\t\t\t\t\t\t\t disabled: false,\r\n\t\t\t\t\t\t\t\t icon: \"add\",\r\n\t\t\t\t\t\t\t\t //iconProps: {style: {marginLeft:20}},\r\n\t\t\t\t\t\t\t\t isFreeAction: true,\r\n\t\t\t\t\t\t\t\t onClick: this.onAdd\r\n\t\t\t\t\t\t\t }]}\r\n\r\n\t\t\t\t\t\t\t editable={{\r\n\t\t\t\t\t\t\t\t onRowDelete: oldData =>\r\n\t\t\t\t\t\t\t\t\t new Promise((resolve, reject) => {\r\n\t\t\t\t\t\t\t\t\t\t this.onDelete(oldData);\r\n\t\t\t\t\t\t\t\t\t\t resolve();\r\n\t\t\t\t\t\t\t\t\t }),\r\n\t\t\t\t\t\t\t\t /*\r\n\t\t\t\t\t\t\t\t onRowUpdate: (newData, oldData) => {\r\n\t\t\t\t\t\t\t\t\t new Promise((resolve, reject) => {\r\n\t\t\t\t\t\t\t\t\t\t this.onDelete(oldData);\r\n\t\t\t\t\t\t\t\t\t\t resolve();\r\n\t\t\t\t\t\t\t\t\t })\r\n\t\t\t\t\t\t\t\t }*/\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t/>\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n\treturn {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(NewsTable));\r\n","const getImageNameFromPath = (imagePath) => {\n\tconst pathParts = imagePath.split('/');\n\treturn pathParts[pathParts.length - 1] || '';\n}\n\nexport const imageExists = (imageData) => {\n\tif (imageData && imageData.image) {\n\t\treturn getImageNameFromPath(imageData.image).length > 0;\n\t}\n\treturn false;\n}\n","import React from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormControlLabel,\r\n FormGroup,\r\n Input,\r\n InputLabel,\r\n Switch,\r\n TextField\r\n} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\nimport ReactDropzone from \"react-dropzone\";\r\nimport {BackendSettings} from '../../config/config';\r\nimport { imageExists } from \"../../util/imageHelper\";\r\n\r\nconst styles = theme => ({\r\n\r\n root: {\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n \"& a span\": {\r\n color: \"black !important\"\r\n },\r\n \"& textarea\": {\r\n fontSize: 12\r\n },\r\n \"& input\": {\r\n fontSize: 12\r\n }\r\n },\r\n\r\n rootLeft: {\r\n maxWidth: 620,\r\n width: 400,\r\n float: \"left\",\r\n marginRight: 20\r\n },\r\n\r\n rootRight: {\r\n maxWidth: 650,\r\n width: 650,\r\n float: \"left\",\r\n },\r\n\r\n textField: {\r\n marginRight: theme.spacing.unit,\r\n marginTop: 0,\r\n width: 200,\r\n },\r\n imageDrop: {\r\n maxWidth: 200,\r\n maxHeight: 200,\r\n padding: 10,\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass NewsForm extends React.Component {\r\n\r\n state = {\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n isSticky: false,\r\n publish: false,\r\n date: new Date().toJSON().slice(0, 10).replace(/-/g, '-'),\r\n value: 0,\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data && nextProps.editMode === true) {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n content_short: nextProps.data.content_short,\r\n isSticky: nextProps.data.isSticky,\r\n publish: nextProps.data.publish,\r\n date: nextProps.data.date,\r\n });\r\n } else {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n this.resetStateData();\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n display_order: this.state.display_order,\r\n publish: this.state.publish,\r\n content_short: this.state.content_short,\r\n date: this.state.date,\r\n isSticky: this.state.isSticky,\r\n fileName: this.props.data !== null ? this.props.data.fileName : null\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n this.resetStateData();\r\n break;\r\n }\r\n }\r\n\r\n resetStateData = () => {\r\n this.setState({\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n isSticky: false,\r\n publish: false,\r\n date: new Date().toJSON().slice(0, 10).replace(/-/g, '-'),\r\n value: 0,\r\n });\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.props.onFormEvent(\"newsImage\", acceptedFiles[0]);\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n let uploadImage = imageExists(this.props.data) ?\r\n {''}/ :\r\n ;\r\n /*\r\n isEmpty(this.props.appTexturesContext['addTextureDlg']['BASECOLOR']) ?\r\n
Add Texture
:\r\n
\r\n \r\n
\r\n
\r\n*/\r\n return (\r\n
\r\n\r\n this.onButtonClick(event)}>\r\n\r\n
\r\n \r\n News Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n this.handleChange(event)} value={this.state.content_short}\r\n multiline rowsMax=\"6\" margin=\"normal\" fullWidth/>\r\n \r\n \r\n this.handleChange(event)}/>\r\n \r\n \r\n {({getRootProps}) => (\r\n
\r\n {uploadImage}\r\n
\r\n )}\r\n
\r\n \r\n this.handleChange(event)}/>\r\n }/>\r\n this.handleChange(event)}/>\r\n }/>\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles, {withTheme: true})(NewsForm);\r\n","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const uploadImage_a = (file, context) => {\r\n return (dispatch, getState) => {\r\n console.log(\"::uploadImage_a called\");\r\n //dispatch( { type: NOTIFIERS.UPLOAD_IMAGE + 1}); \r\n const formData = new FormData();\r\n\r\n formData.append('file', file);\r\n formData.append('context', context);\r\n const config = {headers: {'content-type': 'multipart/form-data'}};\r\n\r\n return axios.post(BackendSettings.baseUrl + \"uploadImage\", formData, config)\r\n .then((response) => {\r\n if (context == \"albumImage\") {\r\n dispatch({type: NOTIFIERS.SET_ALBUM_IMAGE_UPLOAD, payload: response.data});\r\n } else if (context == \"newsImage\") {\r\n dispatch({type: NOTIFIERS.SET_NEWS_IMAGE_UPLOAD, payload: response.data});\r\n } else if (context == \"galleryImage\") {\r\n dispatch({type: NOTIFIERS.SET_GALLERY_IMAGE_UPLOAD, payload: response.data});\r\n } else if (context == \"rockLegendImage\") {\r\n dispatch({type: NOTIFIERS.SET_ROCKLEGEND_IMAGE_UPLOAD, payload: response.data});\r\n } else if (context == \"playlistImage\") {\r\n dispatch({type: NOTIFIERS.SET_PLAYLIST_IMAGE_UPLOAD, payload: response.data});\r\n } else if (context == \"top20Image\") {\r\n dispatch({type: NOTIFIERS.SET_TOP20_IMAGE_UPLOAD, payload: response.data});\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(\"::uploadImage_a returned failed\");\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n });\r\n }\r\n}","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport NewsTable from './newsTable'\r\nimport NewsForm from './newsForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addNews_a,\r\n deleteNews_a,\r\n getNews_a,\r\n getNewsDetails_a,\r\n resetState_a,\r\n setNewsEditState_a,\r\n updateNews_a\r\n} from '../../store/actions/newsActions';\r\nimport {uploadImage_a} from '../../store/actions/fileActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass News extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getNews();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.setState({...this.state, editMode: true});\r\n this.props.getNewsDetails(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setNewsEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateNews(data);\r\n } else {\r\n this.props.addNews(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteNews(data.id);\r\n break;\r\n case 'tableAdd':\r\n this.setState({...this.state, editMode: false});\r\n this.props.setNewsEditState(STATES.EDIT);\r\n break;\r\n case 'newsImage':\r\n this.props.uploadImage(data, \"newsImage\");\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n news: state.news\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getNews: (data) => dispatch(getNews_a()),\r\n getNewsDetails: (id, editMode) => dispatch(getNewsDetails_a(id, editMode)),\r\n setNewsEditState: (state) => dispatch(setNewsEditState_a(state)),\r\n updateNews: (data) => dispatch(updateNews_a(data)),\r\n addNews: (data) => dispatch(addNews_a(data)),\r\n deleteNews: (id) => dispatch(deleteNews_a(id)),\r\n uploadImage: (file, context) => dispatch(uploadImage_a(file, context)),\r\n resetState: () => dispatch(resetState_a())\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(News));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getNews_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_NEWS + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"news\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_NEWS + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_NEWS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getNewsDetails_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_NEWS_DETAILS + 1});\r\n return axios.get(BackendSettings.baseUrl + \"getNews/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_NEWS_DETAILS + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_NEWS_DETAILS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateNews_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_NEWS + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateNews\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_NEWS + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_NEWS + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addNews_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_NEWS + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addNews\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_NEWS + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_NEWS + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteNews_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_NEWS + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteNews\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_NEWS + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_NEWS + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_NEWS_STATE, newState: state};\r\n}\r\n\r\nexport const setNewsEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_NEWS_EDIT_STATE, newState: state};\r\n}\r\n\r\n","export const monthNames = [\r\n 'January', 'February', 'March', 'April', 'May',\r\n 'June', 'July', 'August', 'September',\r\n 'October', 'November', 'December'\r\n];","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport MaterialTable from 'material-table';\r\nimport {monthNames} from '../../config/const';\r\n\r\nconst styles = () => ({\r\n root: {\r\n minWidth: 1000,\r\n width: '100%',\r\n display: \"inline-block\",\r\n\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass TodayInMusicTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {data, classes} = this.props;\r\n\r\n return (\r\n
\r\n {\r\n return (monthNames[rowData['month'] - 1])\r\n }\r\n },\r\n {title: 'Day', field: 'day'}\r\n ]}\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30]\r\n }}\r\n onRowClick={this.onRowClick}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(TodayInMusicTable));","import React from 'react';\r\nimport {Button} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n maxWidth: 650,\r\n width: 650,\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n \"& a span\": {\r\n color: \"black !important\"\r\n }\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass TodayInMusicForm extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n content: '',\r\n editMode: false\r\n };\r\n\r\n handleChange(event) {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data) {\r\n this.setState({\r\n editMode: true,\r\n id: nextProps.data.id,\r\n content: nextProps.data.content\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n content: this.state.content,\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n return (\r\n
\r\n this.onButtonClick(event)}>\r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(TodayInMusicForm);","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport TodayInMusicTable from './todayInMusicTable';\r\nimport TodayInMusicForm from './todayInMusicForm';\r\nimport {STATES} from '../../store/types';\r\nimport {getTIM_a, getTIMAll_a, resetState_a, setTIMEditState_a, updateTIM_a} from '../../store/actions/timActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass TodayInMusic extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getTIMAll();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.props.getTIM(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setTIMEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateTIM(data);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n todayInMusic: state.todayInMusic\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getTIMAll: (data) => dispatch(getTIMAll_a()),\r\n getTIM: (id, editMode) => dispatch(getTIM_a(id, editMode)),\r\n setTIMEditState: (state) => dispatch(setTIMEditState_a(state)),\r\n updateTIM: (data) => dispatch(updateTIM_a(data)),\r\n resetState: () => dispatch(resetState_a())\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(TodayInMusic));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getTIMAll_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_TIM + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"today\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_TIM + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_TIM + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getTIM_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_TIM_DETAIL + 1});\r\n return axios.get(BackendSettings.baseUrl + \"todaydetails/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_TIM_DETAIL + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_TIM_DETAIL + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateTIM_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_TIM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateToday\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_TIM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_TIM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_TIM_STATE, newState: state};\r\n}\r\n\r\nexport const setTIMEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_TIM_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n minWidth: 800,\r\n width: '100%',\r\n display: \"inline-block\",\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n listImage: {\r\n maxHeight: 50,\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass BannersTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n //switch(event.currentTarget.name) {}\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {data, classes} = this.props;\r\n\r\n return (\r\n
\r\n \r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }\r\n }\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(BannersTable));","import React, {Component} from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport {TextField} from '@material-ui/core';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport {withStyles} from '@material-ui/core/styles';\r\n\r\n/*\r\nProperties\r\n title\r\n onCancel\r\n onOk\r\n inputLabel\r\n*/\r\n\r\nconst styles = theme => ({\r\n textField: {\r\n fontSize: 12\r\n },\r\n\r\n dialogTitle: {\r\n padding: \"10px 10px 10px 22px\",\r\n textAlign: \"center\"\r\n },\r\n\r\n textArea: {\r\n fontSize: 12,\r\n maxHeight: 300,\r\n height: \"300px !important\",\r\n width: 555,\r\n fontWeight: 200\r\n }\r\n});\r\n\r\nclass GenericInputDlg extends Component {\r\n\r\n state = {\r\n value: \"\",\r\n title: \"\",\r\n content: \"\",\r\n editMode: false\r\n };\r\n\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n onCancel = (event) => {\r\n this.props.onFormEvent('formCancel');\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data) {\r\n this.setState({\r\n editMode: true,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n });\r\n } else {\r\n this.setState({editMode: false, id: null, title: '', content: ''});\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n title: this.state.title,\r\n id: this.state.id,\r\n content: this.state.content,\r\n editMode: this.state.editMode\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n onOk = (event) => {\r\n this.props.dlgSettings.onOk({value: this.state.value});\r\n };\r\n\r\n handleInputChange = (event) => {\r\n this.setState({value: event.target.value});\r\n };\r\n\r\n render() {\r\n const {classes/*, theme */, dlgSettings} = this.props;\r\n\r\n return (\r\n
\r\n \r\n {this.props.dlgSettings.title}\r\n \r\n this.handleChange(event)}\r\n />\r\n this.handleChange(event)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n );\r\n };\r\n}\r\n\r\n/*\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n createCollection: (collection) => dispatch(createProject_a(collection))\r\n }\r\n }\r\n*/\r\nfunction mapStateToProps() {\r\n return {};\r\n}\r\n\r\nexport default withStyles(styles/*, { withTheme: true }*/)(GenericInputDlg);\r\n ","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport BannersTable from './bannersTable';\r\nimport {STATES} from '../../store/types';\r\nimport GenericInputDlg from '../../components/comps/genericInputDlg';\r\nimport {\r\n addBanner_a,\r\n deleteBanner_a,\r\n getBanner_a,\r\n getBanners_a,\r\n setBannerEditState_a,\r\n updateBanner_a\r\n} from '../../store/actions/bannerActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass Banners extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n editDlgSettings = {\r\n title: \"Banners\"\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getBanners();\r\n };\r\n\r\n onRowClick = (rowData) => {\r\n this.props.getBanner(rowData.id, true);\r\n };\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setBannerEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateBanner(data);\r\n } else {\r\n this.props.addBanner({title: data.title, content: data.content});\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteBanner(data.id);\r\n break;\r\n case 'tableAdd':\r\n this.setState({...this.state, editMode: false});\r\n this.props.setBannerEditState(STATES.EDIT);\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n {/**/}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n banners: state.banners\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getBanners: (data) => dispatch(getBanners_a()),\r\n getBanner: (id, editMode) => dispatch(getBanner_a(id, editMode)),\r\n setBannerEditState: (state) => dispatch(setBannerEditState_a(state)),\r\n updateBanner: (data) => dispatch(updateBanner_a(data)),\r\n addBanner: (data) => dispatch(addBanner_a(data)),\r\n deleteBanner: (id) => dispatch(deleteBanner_a(id)),\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Banners));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getBanners_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_BANNERS + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"banners\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_BANNERS + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_BANNERS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getBanner_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_BANNER + 1});\r\n return axios.get(BackendSettings.baseUrl + \"getBanner/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_BANNER + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_BANNER + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateBanner_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_BANNER + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateBanner\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_BANNER + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_BANNER + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addBanner_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_BANNER + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addBanner\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_BANNER + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_BANNER + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteBanner_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_BANNER + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteBanner\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_BANNER + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_BANNER + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const setBannerEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_BANNER_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {BackendSettings} from '../../config/config';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n minWidth: 1200,\r\n width: '100%',\r\n display: \"inline-block\",\r\n\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n listImage: {\r\n maxHeight: 90,\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass AlbumsTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n //switch(event.currentTarget.name) {}\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {data, classes} = this.props;\r\n\r\n return (\r\n
\r\n {\r\n return (rowData.image ? : '')\r\n },\r\n filtering: false\r\n },\r\n {title: 'Title', field: 'title'},\r\n {title: 'Display Order', field: 'display_order'},\r\n ]}\r\n\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30],\r\n filtering: true,\r\n }}\r\n\r\n onRowClick={this.onRowClick}\r\n\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n //iconProps: {style: {marginLeft:20}},\r\n isFreeAction: true,\r\n onClick: this.onAdd\r\n }]}\r\n\r\n editable={{\r\n onRowDelete: oldData =>\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }\r\n }\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(AlbumsTable));\r\n","import React from 'react';\r\nimport {Button, FormControl, Input, InputLabel, TextField} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\nimport ReactDropzone from \"react-dropzone\";\r\nimport {BackendSettings} from '../../config/config';\r\nimport { imageExists } from \"../../util/imageHelper\";\r\n\r\nconst styles = theme => ({\r\n\r\n root: {\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n\r\n \"& a span\": {\r\n color: \"black !important\"\r\n },\r\n \"& textarea\": {\r\n fontSize: 12\r\n },\r\n \"& input\": {\r\n fontSize: 12\r\n }\r\n },\r\n\r\n rootLeft: {\r\n maxWidth: 620,\r\n width: 400,\r\n float: \"left\",\r\n marginRight: 20,\r\n textAlign: \"left\"\r\n },\r\n\r\n rootRight: {\r\n maxWidth: 650,\r\n width: 650,\r\n float: \"left\",\r\n },\r\n\r\n textField: {\r\n marginRight: theme.spacing.unit,\r\n marginTop: 0,\r\n width: 200,\r\n },\r\n imageDrop: {\r\n maxWidth: 200,\r\n maxHeight: 200,\r\n padding: 10,\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass AlbumsForm extends React.Component {\r\n\r\n state = {\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n value: 0,\r\n id: null\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n\r\n console.log(this.state);\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data && nextProps.editMode === true) {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n content_short: nextProps.data.content_short,\r\n display_order: nextProps.data.display_order,\r\n });\r\n } else {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n this.resetStateData();\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n content_short: this.state.content_short,\r\n display_order: this.state.display_order,\r\n fileName: this.props.data !== null ? this.props.data.fileName : null\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n this.resetStateData();\r\n break;\r\n }\r\n }\r\n\r\n resetStateData = () => {\r\n this.setState({\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n value: 0\r\n });\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.props.onFormEvent(\"albumsImage\", acceptedFiles[0]);\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n let uploadImage = imageExists(this.props.data) ?\r\n {''}/ :\r\n {''}/;\r\n /*\r\n isEmpty(this.props.appTexturesContext['addTextureDlg']['BASECOLOR']) ?\r\n
Add Texture
:\r\n
\r\n \r\n
\r\n
\r\n*/\r\n return (\r\n
\r\n\r\n this.onButtonClick(event)}>\r\n\r\n
\r\n \r\n Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n this.handleChange(event)} value={this.state.content_short}\r\n multiline rowsMax=\"6\" margin=\"normal\" fullWidth/>\r\n \r\n \r\n {({getRootProps}) => (\r\n
\r\n {uploadImage}\r\n
\r\n )}\r\n
\r\n \r\n Order\r\n this.handleChange(event)} value={this.state.display_order}/>\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles, {withTheme: true})(AlbumsForm);\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport AlbumsTable from './albumsTable';\r\nimport AlbumsForm from './albumsForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addAlbum_a,\r\n deleteAlbum_a,\r\n getAlbum_a,\r\n getAlbums_a,\r\n resetState_a,\r\n setAlbumEditState_a,\r\n updateAlbum_a\r\n} from '../../store/actions/albumsActions';\r\nimport {uploadImage_a} from '../../store/actions/fileActions';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass Albums extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n editMode: false\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getAlbums();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.setState({...this.state, editMode: true});\r\n this.props.getAlbum(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setAlbumEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateAlbum(data);\r\n } else {\r\n this.props.addAlbum(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteAlbum(data.id);\r\n break;\r\n case 'tableAdd':\r\n this.setState({...this.state, editMode: false});\r\n this.props.setAlbumEditState(STATES.EDIT);\r\n break;\r\n case 'albumsImage':\r\n this.props.uploadImage(data, \"albumImage\");\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n albums: state.albums\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getAlbums: (data) => dispatch(getAlbums_a()),\r\n getAlbum: (id, editMode) => dispatch(getAlbum_a(id, editMode)),\r\n setAlbumEditState: (state) => dispatch(setAlbumEditState_a(state)),\r\n updateAlbum: (data) => dispatch(updateAlbum_a(data)),\r\n addAlbum: (data) => dispatch(addAlbum_a(data)),\r\n deleteAlbum: (id) => dispatch(deleteAlbum_a(id)),\r\n uploadImage: (file, context) => dispatch(uploadImage_a(file, context)),\r\n resetState: () => dispatch(resetState_a())\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Albums));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getAlbums_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_ALBUMS + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"albums\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_ALBUMS + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_ALBUMS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getAlbum_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_ALBUM + 1});\r\n return axios.get(BackendSettings.baseUrl + \"album/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_ALBUM + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_ALBUM + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateAlbum_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_ALBUM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateAlbum\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_ALBUM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_ALBUM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addAlbum_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_ALBUM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addAlbum\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_ALBUM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_ALBUM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteAlbum_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_ALBUM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteAlbum\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_ALBUM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_ALBUM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_ALBUMS_STATE, newState: state};\r\n}\r\n\r\nexport const setAlbumEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_ALBUM_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React, {Component} from 'react';\r\nimport {Button, FormControl, Input, InputLabel, TextField} from \"@material-ui/core\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport ReactDropzone from \"react-dropzone\";\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {BackendSettings} from '../../config/config';\r\nimport { imageExists } from \"../../util/imageHelper\";\r\n\r\nconst styles = theme => ({\r\n textField: {\r\n fontSize: 12\r\n },\r\n\r\n root: {\r\n minWidth: 600,\r\n width: 600,\r\n float: \"left\",\r\n marginRight: 20,\r\n textAlign: \"left\"\r\n },\r\n\r\n\r\n dialogTitle: {\r\n padding: \"10px 10px 10px 22px\",\r\n textAlign: \"center\"\r\n },\r\n\r\n imageDrop: {\r\n maxWidth: 200,\r\n maxHeight: 200,\r\n paddingTop: 10,\r\n },\r\n\r\n innerLeft: {\r\n width: 195,\r\n float: \"left\"\r\n },\r\n innerRight: {\r\n width: 300,\r\n float: \"left\",\r\n marginLeft: 20\r\n }\r\n});\r\n\r\nclass PlaylistItemDlg extends Component {\r\n\r\n state = {\r\n title: \"\",\r\n publish: false,\r\n name: '',\r\n subtitle: '',\r\n short_description: '',\r\n display_order: 1,\r\n url: '',\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.props.onFormEvent(\"playlistImage\", acceptedFiles[0]);\r\n }\r\n\r\n onCancel = (event) => {\r\n this.props.onFormEvent('formCancel');\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.open !== this.props.open && this.props.open === false) {\r\n this.resetState();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data && nextProps.editMode === true) {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n id: nextProps.data.id,\r\n name: nextProps.data.name,\r\n subtitle: nextProps.data.subtitle,\r\n short_description: nextProps.data.short_description,\r\n display_order: nextProps.data.display_order,\r\n url: nextProps.data.url,\r\n });\r\n } else {\r\n this.setState({\r\n ...this.state,\r\n editMode: nextProps.editMode,\r\n });\r\n }\r\n }\r\n\r\n resetState = () => {\r\n this.setState({\r\n title: \"\",\r\n publish: false,\r\n name: '',\r\n subtitle: '',\r\n short_description: '',\r\n display_order: 1,\r\n url: '',\r\n });\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n name: this.state.name,\r\n subtitle: this.state.subtitle,\r\n id: this.state.id,\r\n editMode: this.state.editMode,\r\n fileName: this.props.data !== null ? this.props.data.fileName : null,\r\n short_description: this.state.short_description,\r\n display_order: this.state.display_order,\r\n url: this.state.url\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n onOk = (event) => {\r\n this.props.dlgSettings.onOk({value: this.state.value});\r\n };\r\n\r\n handleInputChange = (event) => {\r\n this.setState({value: event.target.value});\r\n };\r\n\r\n render() {\r\n const {classes/*, theme */, dlgSettings} = this.props;\r\n let uploadImage = imageExists(this.props.data) ?\r\n {''}/ :\r\n ;\r\n\r\n return (\r\n \r\n {this.props.dlgSettings.title}\r\n \r\n \r\n Title\r\n this.handleChange(event)}\r\n value={this.state.name}/>\r\n \r\n \r\n Subtitle\r\n this.handleChange(event)}\r\n value={this.state.subtitle}/>\r\n \r\n this.handleChange(event)} value={this.state.short_description}\r\n multiline rowsMax=\"6\" margin=\"normal\" fullWidth/>\r\n
\r\n \r\n {({getRootProps}) => (\r\n
\r\n {uploadImage}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n Youtube ID\r\n this.handleChange(event)}\r\n value={this.state.url}/>\r\n \r\n \r\n Display Order\r\n this.handleChange(event)} value={this.state.display_order}/>\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n };\r\n}\r\n\r\n/*\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n createCollection: (collection) => dispatch(createProject_a(collection))\r\n }\r\n }\r\n*/\r\nfunction mapStateToProps() {\r\n return {};\r\n}\r\n\r\nexport default withStyles(styles/*, { withTheme: true }*/)(PlaylistItemDlg);\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {STATES} from '../../store/types';\r\nimport PlaylistItemDlg from './playlistItemDlg';\r\n\r\nimport {\r\n addCategory_a,\r\n addPlaylistItem_a,\r\n deleteCategory_a,\r\n deletePlaylistItem_a,\r\n getPlaylist_a,\r\n getPlaylistCategory_a,\r\n getPlaylistItem_a,\r\n resetState_a,\r\n setPlaylistEditState_a,\r\n updateCategory_a,\r\n updatePlaylistItem_a\r\n} from '../../store/actions/playlistActions';\r\nimport {uploadImage_a} from '../../store/actions/fileActions';\r\nimport MaterialTable from 'material-table';\r\n\r\n\r\nconst styles = () => ({\r\n root: {\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n },\r\n\r\n rootLeft: {\r\n minWidth: 400,\r\n minHeight: 671,\r\n float: \"left\",\r\n marginRight: 20,\r\n marginBottom: 20,\r\n textAlign: \"left\",\r\n },\r\n\r\n rootCenter: {\r\n minWidth: 400,\r\n minHeight: 671,\r\n float: \"left\",\r\n marginRight: 20,\r\n marginBottom: 20,\r\n textAlign: \"left\",\r\n },\r\n\r\n rootRight: {\r\n float: \"left\",\r\n width: 690,\r\n minHeight: 671,\r\n },\r\n});\r\n\r\nclass Playlist extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n editMode: false\r\n };\r\n\r\n editDlgSettings = {\r\n title: \"Playlist Item\"\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getPlaylistCategory(-1, false);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onCategoryRowClick = (event, rowData) => {\r\n this.props.getPlaylistCategory(rowData.id, true);\r\n }\r\n\r\n onAddCategory = (data) => {\r\n this.props.addCategory(data);\r\n }\r\n\r\n onAddSubcategory = (data) => {\r\n data.parentId = this.props.playlist.currentCategoryId;\r\n this.props.addCategory(data);\r\n }\r\n\r\n onAddPlaylistItem = () => {\r\n this.setState({...this.state, editMode: false});\r\n this.props.setPlaylistEditState(STATES.EDIT);\r\n //data.parentId = this.props.playlist.currentSubcategoryId;\r\n //this.props.addPlaylistItem(data); \r\n }\r\n\r\n onEditPlaylistItem = (newData, oldData) => {\r\n this.props.updatePlaylistItem({id: oldData.id, name: newData.name, url: newData.url})\r\n }\r\n\r\n\r\n onDeletePlaylistItem = (data) => {\r\n console.log(data);\r\n this.props.deletePlaylistItem({id: data.id});\r\n }\r\n\r\n onSubcategoryClick = (event, rowData) => {\r\n this.props.getPlaylist(rowData.id);\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.deleteCategory({id: data.id, parentId: data.parent_id});\r\n }\r\n\r\n onRowPlaylistItemClick = (event, rowData) => {\r\n this.setState({...this.state, editMode: true});\r\n this.props.getPlaylistItem(rowData.id, true);\r\n }\r\n\r\n\r\n /*\r\n onEdit = (newData, oldData) => { \r\n this.props.updateCategory({id:oldData.id, parentId : oldData.parent_id, name:newData.name})\r\n }\r\n */\r\n\r\n eventHandler = (eventName, data) => {\r\n\r\n switch (eventName) {\r\n case 'formCancel':\r\n this.props.setPlaylistEditState(STATES.LIST);\r\n break;\r\n\r\n case 'formSave':\r\n console.log(data);\r\n if (data.editMode) {\r\n this.props.updatePlaylistItem(data);\r\n } else {\r\n data['parentId'] = this.props.playlist.currentSubcategoryId;\r\n this.props.addPlaylistItem(data);\r\n }\r\n break;\r\n case 'tableAdd':\r\n //this.setState({...this.state, editMode: false});\r\n //this.props.setAlbumEditState(STATES.EDIT);\r\n break;\r\n /*\r\n case 'tableDelete': \r\n this.props.deleteAlbum(data.id);\r\n break;\r\n \r\n */\r\n case 'playlistImage':\r\n this.props.uploadImage(data, \"playlistImage\");\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n const {classes} = this.props;\r\n let catName = \"\";\r\n let subCatName = \"\";\r\n let subCatData = [];\r\n let playlistData = this.props.playlist.currentPlaylist;\r\n if (this.props.playlist.currentCategoryId !== -1) {\r\n for (var i = 0; i < this.props.playlist.categories.length; i++) {\r\n if (this.props.playlist.categories[i].id == this.props.playlist.currentCategoryId) {\r\n catName = this.props.playlist.categories[i].name;\r\n subCatData = this.props.playlist.categories[i].categories;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n new Promise((resolve, reject) => {\r\n this.onAddCategory({...newData, parentId: -1});\r\n resolve();\r\n }),\r\n onRowDelete: oldData => new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n onRowUpdate: (newData, oldData) => new Promise((resolve, reject) => {\r\n this.onEdit(newData, oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n\r\n
\r\n new Promise((resolve, reject) => {\r\n this.onAddSubcategory(newData);\r\n resolve();\r\n }),\r\n onRowDelete: oldData => new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n onRowUpdate: (newData, oldData) => new Promise((resolve, reject) => {\r\n this.onEdit(newData, oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n\r\n
\r\n new Promise((resolve, reject) => {\r\n this.onDeletePlaylistItem(oldData);\r\n resolve();\r\n })\r\n }}\r\n\r\n detailPanel={rowData => {\r\n return (\r\n \r\n )\r\n }}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n playlist: state.playlists\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getPlaylistCategory: (id, setCurrent) => dispatch(getPlaylistCategory_a(id, setCurrent)),\r\n addCategory: (data) => dispatch(addCategory_a(data)),\r\n deleteCategory: (data) => dispatch(deleteCategory_a(data)),\r\n updateCategory: (data) => dispatch(updateCategory_a(data)),\r\n getPlaylist: (id) => dispatch(getPlaylist_a(id)),\r\n addPlaylistItem: (data) => dispatch(addPlaylistItem_a(data)),\r\n deletePlaylistItem: (data) => dispatch(deletePlaylistItem_a(data)),\r\n updatePlaylistItem: (data) => dispatch(updatePlaylistItem_a(data)),\r\n setPlaylistEditState: (newState) => dispatch(setPlaylistEditState_a(newState)),\r\n getPlaylistItem: (id, editMode) => dispatch(getPlaylistItem_a(id, editMode)),\r\n uploadImage: (file, context) => dispatch(uploadImage_a(file, context)),\r\n resetState: () => dispatch(resetState_a())\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Playlist));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getPlaylistCategory_a = (categoryId = -1, setCurrent = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PLAYLIST_CATEGORY + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"playlist/\" + categoryId)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_PLAYLIST_CATEGORY + 2, payload: response.data, setCurrent: setCurrent});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PLAYLIST_CATEGORY + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const addCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_PLAYLIST_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addPlaylistCategory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PLAYLIST_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PLAYLIST_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\n\r\nexport const deleteCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_PLAYLIST_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deletePlaylistCategory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PLAYLIST_CATEGORY + 2, payload: response.data});\r\n } else {\r\n console.log(response.data);\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PLAYLIST_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const updateCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_PLAYLIST_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updatePlaylistCategory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PLAYLIST_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PLAYLIST_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const getPlaylist_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PLAYLIST + 1});\r\n return axios.get(BackendSettings.baseUrl + \"playlist/get/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_PLAYLIST + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PLAYLIST + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getPlaylistItem_a = (id, editMode) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PLAYLIST_ITEM + 1});\r\n return axios.get(BackendSettings.baseUrl + \"playlist/getPlaylistItem/\" + id)\r\n .then((response) => {\r\n\r\n dispatch({type: NOTIFIERS.GET_PLAYLIST_ITEM + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PLAYLIST_ITEM + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\n\r\nexport const addPlaylistItem_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_PLAYLIST_ITEM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addPlaylistItem\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PLAYLIST_ITEM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PLAYLIST_ITEM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deletePlaylistItem_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_PLAYLIST_ITEM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deletePlaylistItem\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PLAYLIST_ITEM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PLAYLIST_ITEM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const updatePlaylistItem_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_PLAYLIST_ITEM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updatePlaylistItem\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PLAYLIST_ITEM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PLAYLIST_ITEM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_PLAYLISTS_STATE, newState: state};\r\n}\r\n\r\nexport const setPlaylistEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_PLAYLIST_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React, {Component} from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport {FormControlLabel, Switch, TextField} from '@material-ui/core';\r\nimport Dialog from '@material-ui/core/Dialog';\r\n\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport ReactDropzone from \"react-dropzone\";\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {BackendSettings} from '../../config/config';\r\nimport { imageExists } from \"../../util/imageHelper\";\r\n\r\nconst styles = theme => ({\r\n textField: {\r\n fontSize: 12\r\n },\r\n\r\n rootLeft: {\r\n maxWidth: 230, width: 230, float: \"left\", marginRight: 20, textAlign: \"left\"\r\n },\r\n\r\n rootRight: {\r\n maxWidth: 280, width: 280, float: \"left\",\r\n },\r\n\r\n dialogTitle: {\r\n padding: \"10px 10px 10px 22px\", textAlign: \"center\"\r\n },\r\n\r\n imageDrop: {\r\n maxWidth: 200, maxHeight: 200, padding: 10,\r\n },\r\n});\r\n\r\nclass GalleryItemDlg extends Component {\r\n\r\n state = {\r\n title: \"\", publish: false, editMode: false\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.props.onFormEvent(\"galleryImage\", acceptedFiles[0]);\r\n }\r\n\r\n onCancel = (event) => {\r\n this.props.onFormEvent('formCancel');\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.open !== this.props.open && this.props.open === false) {\r\n this.resetState();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data && nextProps.editMode === true) {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n });\r\n } else {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n title: this.state.title,\r\n publish: this.state.publish,\r\n id: this.state.id,\r\n fileName: this.props.data !== null ? this.props.data.fileName : null,\r\n editMode: this.state.editMode,\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n resetState = () => {\r\n this.setState({title: \"\", publish: false});\r\n }\r\n\r\n onOk = (event) => {\r\n this.props.dlgSettings.onOk({value: this.state.value});\r\n };\r\n\r\n handleInputChange = (event) => {\r\n this.setState({value: event.target.value});\r\n };\r\n\r\n render() {\r\n const {classes/*, theme */, dlgSettings} = this.props;\r\n let uploadImage = imageExists(this.props.data) ?\r\n {''}/ :\r\n ;\r\n\r\n return (\r\n
\r\n \r\n {this.props.dlgSettings.title}\r\n \r\n
\r\n \r\n {({getRootProps}) => (
\r\n {uploadImage}\r\n
)}\r\n
\r\n
\r\n
\r\n this.handleChange(event)}\r\n />\r\n this.handleChange(event)}/>}/>\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n );\r\n };\r\n}\r\n\r\n/*\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n createCollection: (collection) => dispatch(createProject_a(collection))\r\n }\r\n }\r\n*/\r\nfunction mapStateToProps() {\r\n return {};\r\n}\r\n\r\nexport default withStyles(styles/*, { withTheme: true }*/)(GalleryItemDlg);\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {STATES} from '../../store/types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport GalleryItemDlg from './galleryItemDlg';\r\nimport {uploadImage_a} from '../../store/actions/fileActions';\r\n\r\nimport {\r\n addGalleryImage_a,\r\n addPhotoCategory_a,\r\n deleteGalleryImage_a,\r\n deletePhotoCategory_a,\r\n getPhotoCategories_a,\r\n getPhotoGallery_a,\r\n resetState_a,\r\n setGalleryEditState_a,\r\n updatePhotoCategory_a\r\n} from '../../store/actions/photoGalleryActions';\r\nimport MaterialTable from 'material-table';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n display: \"inline-block\",\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n },\r\n\r\n rootLeft: {\r\n width: 600,\r\n float: \"left\",\r\n marginRight: 20,\r\n marginBottom: 20,\r\n textAlign: \"left\",\r\n },\r\n\r\n rootRight: {\r\n float: \"left\",\r\n width: 800,\r\n },\r\n listImage: {\r\n maxHeight: 100,\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass PhotoGallery extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n editMode: false\r\n };\r\n\r\n editDlgSettings = {\r\n title: \"Gallery Image\"\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getCategories(-1, false);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onAddCategory = (data) => {\r\n this.props.addCategory(data);\r\n }\r\n\r\n onCategoryEdit = (newData, oldData) => {\r\n this.props.updateCategory({id: oldData.id, name: newData.name})\r\n }\r\n\r\n onCategoryDelete = (data) => {\r\n this.props.deleteCategory(data.id);\r\n }\r\n\r\n onCategoryRowClick = (event, rowData) => {\r\n this.props.getPhotoGallery(rowData.id);\r\n }\r\n\r\n onDeleteGalleryImage = (data) => {\r\n this.props.deleteGalleryImage(data.id);\r\n }\r\n\r\n onAddImage = () => {\r\n this.setState({...this.state, editMode: false});\r\n this.props.setGalleryEditState(STATES.EDIT);\r\n }\r\n\r\n /*\r\n onAddSubcategory = (data) => {\r\n data.parentId = this.props.playlist.currentCategoryId;\r\n this.props.addCategory(data);\r\n }\r\n\r\n onAddPlaylistItem = (data) => {\r\n data.parentId = this.props.playlist.currentSubcategoryId;\r\n this.props.addPlaylistItem(data);\r\n }\r\n\r\n onEditPlaylistItem = (newData, oldData) => {\r\n this.props.updatePlaylistItem({id:oldData.id, name:newData.name, url:newData.url})\r\n }\r\n\r\n onSubcategoryClick = (event, rowData) => {\r\n this.props.getPlaylist(rowData.id);\r\n }\r\n */\r\n\r\n eventHandler = (eventName, data) => {\r\n\r\n switch (eventName) {\r\n case 'formCancel':\r\n this.props.setGalleryEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n //this.props.updateAlbum(data);\r\n } else {\r\n data.gallery_id = this.props.galleries.currentCategoryId;\r\n this.props.addGalleryImage(data);\r\n }\r\n break;\r\n case 'galleryImage':\r\n this.props.uploadImage(data, \"galleryImage\");\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n const {classes} = this.props;\r\n let catName = \"\";\r\n let subcatData = [];\r\n if (this.props.galleries.currentCategoryId !== -1) {\r\n for (var i = 0; i < this.props.galleries.categories.length; i++) {\r\n if (this.props.galleries.categories[i].id == this.props.galleries.currentCategoryId) {\r\n catName = this.props.galleries.categories[i].name;\r\n subcatData = this.props.galleries.categories[i].categories;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n new Promise((resolve, reject) => {\r\n this.onAddCategory({...newData});\r\n resolve();\r\n }),\r\n onRowDelete: oldData => new Promise((resolve, reject) => {\r\n this.onCategoryDelete(oldData);\r\n resolve();\r\n }),\r\n onRowUpdate: (newData, oldData) => new Promise((resolve, reject) => {\r\n this.onCategoryEdit(newData, oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n\r\n
\r\n {\r\n return (\r\n rowData.image ? : '')\r\n },\r\n filtering: false\r\n },\r\n {title: 'Name', field: 'name'},\r\n {\r\n title: 'Publish', field: 'publish',\r\n render: rowData => {\r\n return (rowData.publish ? \"Yes\" : \"No\")\r\n },\r\n filtering: false\r\n }\r\n ]}\r\n\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30]\r\n }}\r\n\r\n onRowClick={this.onRowClick}\r\n\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n //iconProps: {style: {marginLeft:20}},\r\n isFreeAction: true,\r\n onClick: this.onAddImage\r\n }]}\r\n\r\n editable={{\r\n onRowDelete: oldData =>\r\n new Promise((resolve, reject) => {\r\n this.onDeleteGalleryImage(oldData);\r\n resolve();\r\n }),\r\n /*\r\n onRowUpdate: (newData, oldData) => {\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n })\r\n }*/\r\n }\r\n }\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n galleries: state.galleries\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getCategories: (id, setCurrent) => dispatch(getPhotoCategories_a(id, setCurrent)),\r\n addCategory: (data) => dispatch(addPhotoCategory_a(data)),\r\n deleteCategory: (data) => dispatch(deletePhotoCategory_a(data)),\r\n updateCategory: (data) => dispatch(updatePhotoCategory_a(data)),\r\n getPhotoGallery: (id) => dispatch(getPhotoGallery_a(id)),\r\n deleteGalleryImage: (id) => dispatch(deleteGalleryImage_a(id)),\r\n resetState: () => dispatch(resetState_a()),\r\n uploadImage: (file, context) => dispatch(uploadImage_a(file, context)),\r\n addGalleryImage: (data) => dispatch(addGalleryImage_a(data)),\r\n setGalleryEditState: (state) => dispatch(setGalleryEditState_a(state)),\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(PhotoGallery));\r\n","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getPhotoCategories_a = (categoryId = -1, setCurrent = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PHOTO_CATEGORIES + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"photoGallery\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_PHOTO_CATEGORIES + 2, payload: response.data, setCurrent: setCurrent});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PHOTO_CATEGORIES + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updatePhotoCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_PHOTO_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updatePhotoCategory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PHOTO_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PHOTO_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addPhotoCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_PHOTO_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addPhotoCategory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PHOTO_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PHOTO_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deletePhotoCategory_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_PHOTO_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deletePhotoCategory\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PHOTO_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PHOTO_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const getPhotoGallery_a = (categoryId = -1, setCurrent = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PHOTO_GALLERY + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"getGallery/\" + categoryId)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_PHOTO_GALLERY + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PHOTO_GALLERY + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const deleteGalleryImage_a = (itemId) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_GALLERY_IMAGE + 1});\r\n\r\n return axios.post(BackendSettings.baseUrl + \"deleteGalleryItem\", {id: itemId})\r\n .then((response) => {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_GALLERY_IMAGE + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({message: err.message, options: {variant: 'error', autoHideDuration: 3000}}));\r\n dispatch({type: NOTIFIERS.DELETE_GALLERY_IMAGE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addGalleryImage_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_GALLERY_IMAGE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addGalleryItem\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_GALLERY_IMAGE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({message: err.message, options: {variant: 'error', autoHideDuration: 3000}}));\r\n dispatch({type: NOTIFIERS.ADD_GALLERY_IMAGE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\n\r\nexport const setGalleryEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_GALLERY_EDIT_STATE, newState: state};\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_PHOTO_STATE, newState: state};\r\n}\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {BackendSettings} from '../../config/config';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n minWidth: 1200,\r\n width: '100%',\r\n display: \"inline-block\",\r\n\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n listImage: {\r\n maxHeight: 90,\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass RockLegendsTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {data, classes} = this.props;\r\n\r\n return (\r\n
\r\n {\r\n return (\r\n rowData.image ? : '')\r\n },\r\n filtering: false\r\n },\r\n {title: 'Title', field: 'title'},\r\n {title: 'Display Order', field: 'display_order'},\r\n ]}\r\n\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30],\r\n filtering: true,\r\n }}\r\n\r\n onRowClick={this.onRowClick}\r\n\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n //iconProps: {style: {marginLeft:20}},\r\n isFreeAction: true,\r\n onClick: this.onAdd\r\n }]}\r\n\r\n editable={{\r\n onRowDelete: oldData =>\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }\r\n }\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(RockLegendsTable));\r\n","import React from 'react';\r\nimport {Button, FormControl, Input, InputLabel, TextField} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\nimport ReactDropzone from \"react-dropzone\";\r\nimport {BackendSettings} from '../../config/config';\r\nimport { imageExists } from \"../../util/imageHelper\";\r\n\r\nconst styles = theme => ({\r\n\r\n root: {\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n\r\n \"& a span\": {\r\n color: \"black !important\"\r\n },\r\n \"& textarea\": {\r\n fontSize: 12\r\n },\r\n \"& input\": {\r\n fontSize: 12\r\n }\r\n },\r\n\r\n rootLeft: {\r\n maxWidth: 620,\r\n width: 400,\r\n float: \"left\",\r\n marginRight: 20,\r\n textAlign: \"left\"\r\n },\r\n\r\n rootRight: {\r\n maxWidth: 650,\r\n width: 650,\r\n float: \"left\",\r\n },\r\n\r\n textField: {\r\n marginRight: theme.spacing.unit,\r\n marginTop: 0,\r\n width: 200,\r\n },\r\n imageDrop: {\r\n maxWidth: 200,\r\n maxHeight: 200,\r\n padding: 10,\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass RockLegendsForm extends React.Component {\r\n\r\n state = {\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n value: 0,\r\n id: null\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data && nextProps.editMode === true) {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n content_short: nextProps.data.content_short,\r\n display_order: nextProps.data.display_order,\r\n });\r\n } else {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n this.resetStateData();\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n content_short: this.state.content_short,\r\n display_order: this.state.display_order,\r\n fileName: this.props.data !== null ? this.props.data.fileName : null\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n this.resetStateData();\r\n break;\r\n }\r\n }\r\n\r\n resetStateData = () => {\r\n this.setState({\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n value: 0\r\n });\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.props.onFormEvent(\"albumsImage\", acceptedFiles[0]);\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n let uploadImage = imageExists(this.props.data) ?\r\n {''}/ :\r\n ;\r\n return (\r\n
\r\n\r\n this.onButtonClick(event)}>\r\n\r\n
\r\n \r\n Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n this.handleChange(event)} value={this.state.content_short}\r\n multiline rowsMax=\"6\" margin=\"normal\" fullWidth/>\r\n \r\n \r\n {({getRootProps}) => (\r\n
\r\n {uploadImage}\r\n
\r\n )}\r\n
\r\n \r\n Order\r\n this.handleChange(event)} value={this.state.display_order}/>\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles, {withTheme: true})(RockLegendsForm);\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport RockLegendsTable from './rockLegendsTable';\r\nimport RockLegendsForm from './rockLgendsForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addRockLegend_a,\r\n deleteRockLegend_a,\r\n getRockLegend_a,\r\n getRockLegends_a,\r\n resetState_a,\r\n setRockLegendEditState_a,\r\n updateRockLegend_a\r\n} from '../../store/actions/rockLegendsActions';\r\nimport {uploadImage_a} from '../../store/actions/fileActions';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass Albums extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n editMode: false\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getRockLegends();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.setState({...this.state, editMode: true});\r\n this.props.getRockLegend(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setRockLegendEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateRockLegend(data);\r\n } else {\r\n this.props.addRockLegend(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteRockLegend(data.id);\r\n break;\r\n case 'tableAdd':\r\n this.setState({...this.state, editMode: false});\r\n this.props.setRockLegendEditState(STATES.EDIT);\r\n break;\r\n case 'albumsImage':\r\n this.props.uploadImage(data, \"rockLegendImage\");\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n rockLegends: state.rockLegends\r\n }\r\n}\r\n\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getRockLegends: (data) => dispatch(getRockLegends_a()),\r\n getRockLegend: (id, editMode) => dispatch(getRockLegend_a(id, editMode)),\r\n setRockLegendEditState: (state) => dispatch(setRockLegendEditState_a(state)),\r\n updateRockLegend: (data) => dispatch(updateRockLegend_a(data)),\r\n addRockLegend: (data) => dispatch(addRockLegend_a(data)),\r\n deleteRockLegend: (id) => dispatch(deleteRockLegend_a(id)),\r\n uploadImage: (file, context) => dispatch(uploadImage_a(file, context)),\r\n resetState: () => dispatch(resetState_a())\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Albums));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getRockLegends_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKLEGENDS + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"rockLegends\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKLEGENDS + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_ROCKLEGENDS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getRockLegend_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKLEGEND + 1});\r\n return axios.get(BackendSettings.baseUrl + \"rockLegend/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKLEGEND + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_ROCKLEGEND + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateRockLegend_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_ROCKLEGEND + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateRockLegend\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_ROCKLEGEND + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_ROCKLEGEND + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addRockLegend_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_ROCKLEGEND + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addRockLegend\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_ROCKLEGEND + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_ROCKLEGEND + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteRockLegend_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_ROCKLEGEND + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteRockLegend\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_ROCKLEGEND + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_ROCKLEGEND + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_ROCKLEGEND_STATE, newState: state};\r\n}\r\n\r\nexport const setRockLegendEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_ROCKLEGEND_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React, {Component} from 'react';\r\nimport {Button, FormControl, FormControlLabel, Input, InputLabel, Switch} from \"@material-ui/core\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport ReactDropzone from \"react-dropzone\";\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {BackendSettings} from '../../config/config';\r\nimport { imageExists } from \"../../util/imageHelper\";\r\n\r\nconst styles = () => ({\r\n textField: {\r\n fontSize: 12\r\n },\r\n root: {\r\n width: 600,\r\n float: \"left\",\r\n marginRight: 20,\r\n marginBottom: 20,\r\n textAlign: \"left\"\r\n },\r\n dialogTitle: {\r\n padding: \"10px 10px 10px 22px\",\r\n textAlign: \"center\"\r\n },\r\n imageDrop: {\r\n maxWidth: 200,\r\n maxHeight: 200,\r\n paddingTop: 10,\r\n },\r\n innerLeft: {\r\n width: 195,\r\n float: \"left\"\r\n },\r\n innerRight: {\r\n width: 300,\r\n float: \"left\",\r\n marginLeft: 20\r\n }\r\n});\r\n\r\nclass Top20ItemDlg extends Component {\r\n\r\n state = {\r\n artist: '',\r\n song: '',\r\n url: '',\r\n votes: 0,\r\n active: 1,\r\n previousMonth: 0,\r\n previous2Months: 0,\r\n monthsInTop: 0,\r\n totalVotes: 0\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.props.onFormEvent(\"top20Image\", acceptedFiles[0]);\r\n }\r\n\r\n onCancel = (event) => {\r\n this.props.onFormEvent('formCancel');\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.open !== this.props.open && this.props.open === false) {\r\n this.resetState();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps, nextContext) {\r\n if (nextProps.data && nextProps.editMode === true) {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n id: nextProps.data.id,\r\n artist: nextProps.data.artist,\r\n song: nextProps.data.song,\r\n url: nextProps.data.url,\r\n votes: nextProps.data.votes,\r\n active: nextProps.data.active,\r\n previousMonth: nextProps.data.previousMonth,\r\n previous2Months: nextProps.data.previous2Months,\r\n monthsInTop: nextProps.data.monthsInTop,\r\n totalVotes: nextProps.data.totalVotes,\r\n });\r\n } else {\r\n this.setState({\r\n ...this.state,\r\n editMode: nextProps.editMode,\r\n });\r\n }\r\n }\r\n\r\n resetState = () => {\r\n this.setState({\r\n artist: '',\r\n song: '',\r\n url: '',\r\n votes: 0,\r\n active: 1,\r\n previousMonth: 0,\r\n previous2Months: 0,\r\n monthsInTop: 0,\r\n totalVotes: 0\r\n });\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n artist: this.state.artist,\r\n song: this.state.song,\r\n id: this.state.id,\r\n editMode: this.state.editMode,\r\n fileName: this.props.data !== null ? this.props.data.fileName : null,\r\n url: this.state.url,\r\n votes: this.state.votes,\r\n totalVotes: this.state.totalVotes,\r\n active: this.state.active,\r\n previousMonth: this.state.previousMonth,\r\n previous2Months: this.state.previous2Months,\r\n monthsInTop: this.state.monthsInTop\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n onOk = (event) => {\r\n this.props.dlgSettings.onOk({value: this.state.value});\r\n };\r\n\r\n handleInputChange = (event) => {\r\n this.setState({value: event.target.value});\r\n };\r\n\r\n render() {\r\n const {classes} = this.props;\r\n\r\n let uploadImage = imageExists(this.props.data) ?\r\n {''}/ :\r\n ;\r\n\r\n return (\r\n \r\n {this.props.dlgSettings.title}\r\n \r\n \r\n Artist\r\n this.handleChange(event)} value={this.state.artist}/>\r\n \r\n \r\n Song\r\n this.handleChange(event)} value={this.state.song}/>\r\n \r\n \r\n This month votes\r\n this.handleChange(event)} value={this.state.votes}/>\r\n \r\n \r\n Previous month position\r\n this.handleChange(event)} value={this.state.previousMonth}/>\r\n \r\n \r\n 2 month ago position\r\n this.handleChange(event)} value={this.state.previous2Months}/>\r\n \r\n \r\n Total votes\r\n this.handleChange(event)} value={this.state.totalVotes}/>\r\n \r\n \r\n Months in top\r\n this.handleChange(event)} value={this.state.monthsInTop}/>\r\n \r\n
\r\n \r\n {({getRootProps}) => (\r\n
\r\n {uploadImage}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n Youtube ID\r\n this.handleChange(event)} value={this.state.url}/>\r\n \r\n this.handleChange(event)}/>\r\n }/>\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n };\r\n}\r\n\r\n/*\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n createCollection: (collection) => dispatch(createProject_a(collection))\r\n }\r\n }\r\n*/\r\nfunction mapStateToProps() {\r\n return {};\r\n}\r\n\r\nexport default withStyles(styles)(Top20ItemDlg);\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {STATES} from '../../store/types';\r\nimport Top20ItemDlg from './top20ItemDlg';\r\n\r\nimport {\r\n addCategory_a,\r\n addTop20Item_a,\r\n deleteCategory_a,\r\n deleteTop20Item_a,\r\n getTop20Category_a,\r\n getTop20Item_a,\r\n getTop20Items_a,\r\n resetState_a,\r\n setTop20EditState_a,\r\n updateCategory_a,\r\n updateTop20Item_a\r\n} from '../../store/actions/top20Actions';\r\nimport {uploadImage_a} from '../../store/actions/fileActions';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\",\r\n },\r\n },\r\n\r\n tableContainer: {\r\n display: 'flex',\r\n },\r\n\r\n tableColumn: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n\r\n rootLeft: {\r\n width: 400,\r\n float: \"left\",\r\n marginRight: 20,\r\n marginBottom: 20,\r\n textAlign: \"left\",\r\n },\r\n\r\n rootRight: {\r\n float: \"left\",\r\n width: 480,\r\n },\r\n});\r\n\r\nclass Top20 extends React.Component {\r\n state = {\r\n value: 0,\r\n editMode: false,\r\n subCatName: '',\r\n listData: []\r\n };\r\n\r\n editDlgSettings = {\r\n title: \"Song\"\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getTop20Category(-1, false);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onCategoryRowClick = (event, rowData) => {\r\n this.setState({...this.state, listData: []});\r\n this.props.getTop20Category(rowData.id, true);\r\n }\r\n\r\n onAddCategory = (data) => {\r\n this.props.addCategory(data);\r\n }\r\n\r\n onDeleteCategory = (data) => {\r\n this.props.deleteCategory({id: data.id, parentId: data.parent_id});\r\n }\r\n\r\n onEditCategory = (newData, oldData) => {\r\n this.props.updateCategory({id: oldData.id, title: newData.title})\r\n }\r\n\r\n onSubcategoryClick = (event, rowData) => {\r\n this.setState({...this.state, subCatName: rowData.title});\r\n this.props.getTop20Items(rowData.id);\r\n }\r\n\r\n onTopItemClick = (event, rowData) => {\r\n this.setState({...this.state, editMode: true});\r\n this.props.getTop20Item(rowData.id, true);\r\n }\r\n\r\n onAddTop20Item = () => {\r\n this.setState({...this.state, editMode: false});\r\n this.props.setTop20EditState(STATES.EDIT);\r\n }\r\n\r\n onDeleteTop20Item = (data) => {\r\n this.props.deleteTop20Item({id: data.id});\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n this.props.setTop20EditState(STATES.LIST);\r\n break;\r\n\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateTop20Item(data);\r\n } else {\r\n data['parentId'] = this.props.top20.currentSubcategoryId;\r\n this.props.addTop20Item(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteTop20Item(data.id);\r\n break;\r\n\r\n\r\n case 'top20Image':\r\n this.props.uploadImage(data, \"top20Image\");\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n const {classes} = this.props;\r\n let catName = \"\";\r\n let subCatData = [];\r\n\r\n const smallColumns = {\r\n cellStyle: {\r\n width: 20,\r\n maxWidth: 20\r\n },\r\n headerStyle: {\r\n width: 20,\r\n maxWidth: 20\r\n }\r\n }\r\n\r\n if (this.props.top20.currentCategoryId !== -1) {\r\n for (var i = 0; i < this.props.top20.categories.length; i++) {\r\n if (this.props.top20.categories[i].id == this.props.top20.currentCategoryId) {\r\n catName = this.props.top20.categories[i].title;\r\n subCatData = this.props.top20.categories[i].categories;\r\n this.state.listData = this.props.top20.currentList;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n new Promise((resolve, reject) => {\r\n this.onAddCategory({...newData, parentId: -1});\r\n resolve();\r\n }),\r\n onRowDelete: oldData => new Promise((resolve, reject) => {\r\n this.onDeleteCategory(oldData);\r\n resolve();\r\n }),\r\n onRowUpdate: (newData, oldData) => new Promise((resolve, reject) => {\r\n this.onEditCategory(newData, oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {\r\n return ({rowData.artist}
{rowData.song}
)\r\n },\r\n },\r\n ]}\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n isFreeAction: true,\r\n onClick: this.onAddTop20Item\r\n }]}\r\n options={{\r\n paging: false,\r\n search: false,\r\n rowStyle: {height: 50}\r\n }}\r\n onRowClick={this.onTopItemClick}\r\n editable={{\r\n onRowDelete: oldData => new Promise((resolve, reject) => {\r\n this.onDeleteTop20Item(oldData);\r\n resolve();\r\n }),\r\n }}\r\n detailPanel={rowData => {\r\n return (\r\n \r\n )\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n top20: state.top20\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getTop20Category: (id, setCurrent) => dispatch(getTop20Category_a(id, setCurrent)),\r\n setTop20EditState: (newState) => dispatch(setTop20EditState_a(newState)),\r\n addCategory: (data) => dispatch(addCategory_a(data)),\r\n deleteCategory: (data) => dispatch(deleteCategory_a(data)),\r\n updateCategory: (data) => dispatch(updateCategory_a(data)),\r\n getTop20Items: (id) => dispatch(getTop20Items_a(id)),\r\n getTop20Item: (id, editMode) => dispatch(getTop20Item_a(id, editMode)),\r\n uploadImage: (file, context) => dispatch(uploadImage_a(file, context)),\r\n updateTop20Item: (data) => dispatch(updateTop20Item_a(data)),\r\n deleteTop20Item: (data) => dispatch(deleteTop20Item_a(data)),\r\n addTop20Item: (data) => dispatch(addTop20Item_a(data)),\r\n resetState: () => dispatch(resetState_a())\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Top20));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\n\r\nexport const getTop20Category_a = (categoryId = -1, setCurrent = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_TOP20_CATEGORY + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"top20/\" + categoryId)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_TOP20_CATEGORY + 2, payload: response.data, setCurrent: setCurrent});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_TOP20_CATEGORY + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\n\r\nexport const addCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_TOP20_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addTop20Category\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_TOP20_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_TOP20_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_TOP20_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteTop20Category\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_TOP20_CATEGORY + 2, payload: response.data});\r\n } else {\r\n console.log(response.data);\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_TOP20_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const updateCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_TOP20_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateTop20Category\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_TOP20_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_TOP20_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const getTop20Items_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_TOP20_ITEMS + 1});\r\n return axios.get(BackendSettings.baseUrl + \"top20/get/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_TOP20_ITEMS + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_TOP20_ITEMS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getTop20Item_a = (id, editMode) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_TOP20_ITEM + 1});\r\n return axios.get(BackendSettings.baseUrl + \"top20/getItem/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_TOP20_ITEM + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_TOP20_ITEM + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateTop20Item_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_TOP20_ITEM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateTop20Item\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_TOP20_ITEM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_TOP20_ITEM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteTop20Item_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_TOP20_ITEM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteTop20Item\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_TOP20_ITEM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_TOP20_ITEM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addTop20Item_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_TOP20_ITEM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addTop20Item\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_TOP20_ITEM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_TOP20_ITEM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_TOP20_STATE, newState: state};\r\n}\r\n\r\nexport const setTop20EditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_TOP20_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import {NOTIFIERS} from '../types';\r\nimport isEmpty from 'lodash/isEmpty';\r\n\r\nconst initState = {\r\n authenticated: false,\r\n userInfo: null,\r\n loading: false,\r\n error: null\r\n};\r\n\r\nconst authReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n// LOGIN\r\n case NOTIFIERS.LOGIN + 1:\r\n return {\r\n // ...state,\r\n loading: true,\r\n authenticated: false,\r\n error: null,\r\n userInfo: null,\r\n }\r\n case NOTIFIERS.LOGIN + 2:\r\n return {\r\n //...state,\r\n loading: false,\r\n error: null,\r\n authenticated: !isEmpty(action.payload.user),\r\n userInfo: action.payload.user,\r\n modules: action.payload.modules\r\n }\r\n\r\n case NOTIFIERS.LOGIN + 3:\r\n return {\r\n //...state,\r\n loading: false,\r\n authenticated: false,\r\n error: action.payload,\r\n userInfo: null,\r\n }\r\n\r\n case NOTIFIERS.LOGOUT:\r\n return {\r\n loading: false,\r\n authenticated: false,\r\n error: action.payload,\r\n userInfo: null,\r\n }\r\n }\r\n return state;\r\n}\r\n\r\nexport default authReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editPage: null,\r\n pages: []\r\n};\r\n\r\nconst pagesReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_PAGES_STATE:\r\n return {...state, editPage: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET PAGES\r\n case NOTIFIERS.GET_PAGES + 1:\r\n return state;\r\n case NOTIFIERS.GET_PAGES + 2:\r\n return {...state, pages: action.payload};\r\n case NOTIFIERS.GET_PAGES + 3:\r\n return state;\r\n\r\n // ADD_PAGE\r\n case NOTIFIERS.ADD_PAGE + 1:\r\n return state;\r\n case NOTIFIERS.ADD_PAGE + 2:\r\n state.pages = [...state.pages, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editPage = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_PAGE + 3:\r\n return state;\r\n\r\n // DELETE_PAGE\r\n case NOTIFIERS.DELETE_PAGE + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_PAGE + 2:\r\n let pages = state.pages.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, pages: pages};\r\n case NOTIFIERS.DELETE_PAGE + 3:\r\n return state;\r\n\r\n // UPDATE_PAGE\r\n case NOTIFIERS.UPDATE_PAGE + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_PAGE + 2:\r\n let newPages = state.pages.map(page => {\r\n if (page.id === action.payload.item.id) {\r\n page.title = action.payload.item.title;\r\n }\r\n return page;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editPage = null;\r\n return {...state, pages: [...newPages]};\r\n case NOTIFIERS.UPDATE_PAGE + 3:\r\n return state;\r\n\r\n // GET_PAGE\r\n case NOTIFIERS.GET_PAGE + 1:\r\n return state;\r\n case NOTIFIERS.GET_PAGE + 2:\r\n let newState = {...state, editPage: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_PAGE + 3:\r\n return state;\r\n\r\n // SET_PAGE_EDIT_STATE\r\n case NOTIFIERS.SET_PAGE_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editPage = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default pagesReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editHeadline: null,\r\n headlines: []\r\n};\r\n\r\nconst headlinesReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_HEADLINES_STATE:\r\n return {...state, editHeadline: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET_HEADLINES\r\n case NOTIFIERS.GET_HEADLINES + 1:\r\n return state;\r\n case NOTIFIERS.GET_HEADLINES + 2:\r\n return {...state, headlines: action.payload};\r\n case NOTIFIERS.GET_HEADLINES + 3:\r\n return state;\r\n\r\n // ADD_HEADLINE\r\n case NOTIFIERS.ADD_HEADLINE + 1:\r\n return state;\r\n case NOTIFIERS.ADD_HEADLINE + 2:\r\n state.headlines = [...state.headlines, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editHeadline = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_HEADLINE + 3:\r\n return state;\r\n\r\n // DELETE_HEADLINE\r\n case NOTIFIERS.DELETE_HEADLINE + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_HEADLINE + 2:\r\n let headlines = state.headlines.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, headlines: headlines};\r\n case NOTIFIERS.DELETE_HEADLINE + 3:\r\n return state;\r\n\r\n // UPDATE_HEADLINE\r\n case NOTIFIERS.UPDATE_HEADLINE + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_HEADLINE + 2:\r\n let newHeadlines = state.headlines.map(headline => {\r\n if (headline.id === action.payload.item.id) {\r\n headline = action.payload.item;\r\n }\r\n return headline;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editHeadline = null;\r\n return {...state, headlines: [...newHeadlines]};\r\n case NOTIFIERS.UPDATE_HEADLINE + 3:\r\n return state;\r\n\r\n // GET_HEADLINE\r\n case NOTIFIERS.GET_HEADLINE + 1:\r\n return state;\r\n case NOTIFIERS.GET_HEADLINE + 2:\r\n let newState = {...state, editHeadline: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_HEADLINE + 3:\r\n return state;\r\n\r\n // SET_HEADLINE_EDIT_STATE\r\n case NOTIFIERS.SET_HEADLINE_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editHeadline = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default headlinesReducer;","const initState = {\r\n notifications: [],\r\n};\r\n\r\nconst snackBarReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n case 'ENQUEUE_SNACKBAR':\r\n return {\r\n ...state,\r\n notifications: [\r\n ...state.notifications,\r\n {\r\n ...action.notification,\r\n },\r\n ],\r\n };\r\n\r\n case 'REMOVE_SNACKBAR':\r\n return {\r\n ...state,\r\n notifications: state.notifications.filter(\r\n notification => notification.key !== action.key,\r\n ),\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default snackBarReducer;\r\n","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editHistory: null,\r\n history: []\r\n};\r\n\r\nconst historyReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_HISTORY_STATE:\r\n return {...state, editHistory: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET_HISTORIES\r\n case NOTIFIERS.GET_HISTORIES + 1:\r\n return state;\r\n case NOTIFIERS.GET_HISTORIES + 2:\r\n return {...state, history: action.payload};\r\n case NOTIFIERS.GET_HISTORIES + 3:\r\n return state;\r\n\r\n // ADD_HISTORY\r\n case NOTIFIERS.ADD_HISTORY + 1:\r\n return state;\r\n case NOTIFIERS.ADD_HISTORY + 2:\r\n state.history = [...state.history, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editHistory = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_HISTORY + 3:\r\n return state;\r\n\r\n // DELETE_HISTORY\r\n case NOTIFIERS.DELETE_HISTORY + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_HISTORY + 2:\r\n let history = state.history.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, history: history};\r\n case NOTIFIERS.DELETE_HISTORY + 3:\r\n return state;\r\n\r\n // UPDATE_HISTORY\r\n case NOTIFIERS.UPDATE_HISTORY + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_HISTORY + 2:\r\n let newHistory = state.history.map(history_ => {\r\n if (history_.id === action.payload.item.id) {\r\n history_ = action.payload.item;\r\n }\r\n return history_;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editHistory = null;\r\n return {...state, history: [...newHistory]};\r\n case NOTIFIERS.UPDATE_HISTORY + 3:\r\n return state;\r\n\r\n // GET_HISTORY\r\n case NOTIFIERS.GET_HISTORY + 1:\r\n return state;\r\n case NOTIFIERS.GET_HISTORY + 2:\r\n let newState = {...state, editHistory: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_HISTORY + 3:\r\n return state;\r\n\r\n // SET_HISTORY_EDIT_STATE\r\n case NOTIFIERS.SET_HISTORY_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editHistory = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default historyReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editInfo: null,\r\n info: []\r\n};\r\n\r\nconst rockInfoReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_ROCKINFO_STATE\r\n case NOTIFIERS.RESET_ROCKINFO_STATE:\r\n return {...state, editInfo: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET_ROCKINFOS\r\n case NOTIFIERS.GET_ROCKINFOS + 1:\r\n return state;\r\n case NOTIFIERS.GET_ROCKINFOS + 2:\r\n return {...state, info: action.payload};\r\n case NOTIFIERS.GET_ROCKINFOS + 3:\r\n return state;\r\n\r\n // ADD_ROCKINFO\r\n case NOTIFIERS.ADD_ROCKINFO + 1:\r\n return state;\r\n case NOTIFIERS.ADD_ROCKINFO + 2:\r\n state.info = [...state.info, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editInfo = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_ROCKINFO + 3:\r\n return state;\r\n\r\n // DELETE_ROCKINFO\r\n case NOTIFIERS.DELETE_ROCKINFO + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_ROCKINFO + 2:\r\n let info_ = state.headlines.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, info: info_};\r\n case NOTIFIERS.DELETE_ROCKINFO + 3:\r\n return state;\r\n\r\n // UPDATE_ROCKINFO\r\n case NOTIFIERS.UPDATE_ROCKINFO + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_ROCKINFO + 2:\r\n let newInfo = state.info.map(info_ => {\r\n if (info_.id === action.payload.item.id) {\r\n info_ = action.payload.item;\r\n }\r\n return info_;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editInfo = null;\r\n return {...state, info: [...newInfo]};\r\n case NOTIFIERS.UPDATE_ROCKINFO + 3:\r\n return state;\r\n\r\n // GET_ROCKINFO\r\n case NOTIFIERS.GET_ROCKINFO + 1:\r\n return state;\r\n case NOTIFIERS.GET_ROCKINFO + 2:\r\n let newState = {...state, editInfo: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_ROCKINFO + 3:\r\n return state;\r\n\r\n // SET_HEADLINE_EDIT_STATE\r\n case NOTIFIERS.SET_ROCKINFO_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editInfo = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default rockInfoReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editNews: null,\r\n news: []\r\n};\r\n\r\nconst newsReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n // RESET_NEWS_STATE\r\n case NOTIFIERS.RESET_NEWS_STATE:\r\n return {...state, editNews: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET_NEWS\r\n case NOTIFIERS.GET_NEWS + 1:\r\n return state;\r\n case NOTIFIERS.GET_NEWS + 2:\r\n return {...state, news: action.payload};\r\n case NOTIFIERS.GET_NEWS + 3:\r\n return state;\r\n\r\n // ADD_NEWS\r\n case NOTIFIERS.ADD_NEWS + 1:\r\n return state;\r\n case NOTIFIERS.ADD_NEWS + 2:\r\n state.news = [...state.news, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editNews = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_NEWS + 3:\r\n return state;\r\n\r\n // DELETE_NEWS\r\n case NOTIFIERS.DELETE_NEWS + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_NEWS + 2:\r\n let news = state.news.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, news: news};\r\n case NOTIFIERS.DELETE_NEWS + 3:\r\n return state;\r\n\r\n // UPDATE_NEWS\r\n case NOTIFIERS.UPDATE_NEWS + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_NEWS + 2:\r\n let newNews = state.news.map(news => {\r\n if (news.id === action.payload.item.id) {\r\n news = {...news, ...action.payload.item};\r\n }\r\n return news;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editNews = null;\r\n return {...state, news: [...newNews]};\r\n case NOTIFIERS.UPDATE_NEWS + 3:\r\n return state;\r\n\r\n // GET_NEWS_DETAILS\r\n case NOTIFIERS.GET_NEWS_DETAILS + 1:\r\n return state;\r\n case NOTIFIERS.GET_NEWS_DETAILS + 2:\r\n let newState = {...state, editNews: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_NEWS_DETAILS + 3:\r\n return state;\r\n\r\n case NOTIFIERS.SET_NEWS_IMAGE_UPLOAD:\r\n return {\r\n ...state,\r\n editNews: {\r\n ...state.editNews,\r\n image: action.payload.item.fileUrl,\r\n fileName: action.payload.item.fileName\r\n }\r\n };\r\n\r\n // SET_NEWS_EDIT_STATE\r\n case NOTIFIERS.SET_NEWS_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editNews = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default newsReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editData: null,\r\n data: []\r\n};\r\n\r\nconst timReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_TIM_STATE:\r\n return {...state, editData: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n\r\n // GET_TIM\r\n case NOTIFIERS.GET_TIM + 1:\r\n return state;\r\n case NOTIFIERS.GET_TIM + 2:\r\n return {...state, data: action.payload};\r\n case NOTIFIERS.GET_TIM + 3:\r\n return state;\r\n\r\n // UPDATE_TIM\r\n case NOTIFIERS.UPDATE_TIM + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_TIM + 2:\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state};\r\n case NOTIFIERS.UPDATE_TIM + 3:\r\n return state;\r\n\r\n // GET_TIM_DETAIL\r\n case NOTIFIERS.GET_TIM_DETAIL + 1:\r\n return state;\r\n case NOTIFIERS.GET_TIM_DETAIL + 2:\r\n let newState = {...state, editData: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_TIM_DETAIL + 3:\r\n return state;\r\n\r\n // SET_TIM_EDIT_STATE\r\n case NOTIFIERS.SET_TIM_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default timReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editData: null,\r\n data: []\r\n};\r\n\r\nconst bannerReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n // GET_BANNERS\r\n case NOTIFIERS.GET_BANNERS + 1:\r\n return state;\r\n case NOTIFIERS.GET_BANNERS + 2:\r\n return {...state, data: action.payload};\r\n case NOTIFIERS.GET_BANNERS + 3:\r\n return state;\r\n\r\n // ADD_BANNER\r\n case NOTIFIERS.ADD_BANNER + 1:\r\n return state;\r\n case NOTIFIERS.ADD_BANNER + 2:\r\n state.data = [...state.data, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_BANNER + 3:\r\n return state;\r\n\r\n // DELETE_BANNER\r\n case NOTIFIERS.DELETE_BANNER + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_BANNER + 2:\r\n let data = state.data.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, data: data};\r\n case NOTIFIERS.DELETE_BANNER + 3:\r\n return state;\r\n\r\n // UPDATE_BANNER\r\n case NOTIFIERS.UPDATE_BANNER + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_BANNER + 2:\r\n let newData = state.data.map(data_ => {\r\n if (data_.id === action.payload.item.id) {\r\n data_ = {...data_, ...action.payload.item};\r\n }\r\n return data_;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state, data: [...newData]};\r\n case NOTIFIERS.UPDATE_BANNER + 3:\r\n return state;\r\n\r\n // GET_BANNER\r\n case NOTIFIERS.GET_BANNER + 1:\r\n return state;\r\n case NOTIFIERS.GET_BANNER + 2:\r\n let newState = {...state, editData: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_BANNER + 3:\r\n return state;\r\n\r\n // SET_BANNER_EDIT_STATE\r\n case NOTIFIERS.SET_BANNER_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default bannerReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editData: null,\r\n data: []\r\n};\r\n\r\nconst albumsReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_ALBUMS_STATE:\r\n return {...state, editData: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET_ALBUMS\r\n case NOTIFIERS.GET_ALBUMS + 1:\r\n return state;\r\n case NOTIFIERS.GET_ALBUMS + 2:\r\n return {...state, data: action.payload};\r\n case NOTIFIERS.GET_ALBUMS + 3:\r\n return state;\r\n\r\n // ADD_ALBUM\r\n case NOTIFIERS.ADD_ALBUM + 1:\r\n return state;\r\n case NOTIFIERS.ADD_ALBUM + 2:\r\n state.data = [...state.data, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_ALBUM + 3:\r\n return state;\r\n\r\n // DELETE_ALBUM\r\n case NOTIFIERS.DELETE_ALBUM + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_ALBUM + 2:\r\n let data = state.data.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, data: data};\r\n case NOTIFIERS.DELETE_ALBUM + 3:\r\n return state;\r\n\r\n // UPDATE_ALBUM\r\n case NOTIFIERS.UPDATE_ALBUM + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_ALBUM + 2:\r\n let newData = state.data.map(item => {\r\n if (item.id === action.payload.item.id) {\r\n item = {...item, ...action.payload.item};\r\n }\r\n return item;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state, data: [...newData]};\r\n case NOTIFIERS.UPDATE_ALBUM + 3:\r\n return state;\r\n\r\n // GET_ALBUM\r\n case NOTIFIERS.GET_ALBUM + 1:\r\n return state;\r\n case NOTIFIERS.GET_ALBUM + 2:\r\n let newState = {...state, editData: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_ALBUM + 3:\r\n return state;\r\n\r\n\r\n case NOTIFIERS.SET_ALBUM_IMAGE_UPLOAD:\r\n return {\r\n ...state,\r\n editData: {\r\n ...state.editData,\r\n image: action.payload.item.fileUrl,\r\n fileName: action.payload.item.fileName\r\n }\r\n };\r\n\r\n // SET_ALBUM_EDIT_STATE\r\n case NOTIFIERS.SET_ALBUM_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default albumsReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n currentCategoryId: -1,\r\n currentSubcategoryId: -1,\r\n categories: [],\r\n currentPlaylist: [],\r\n editData: null,\r\n};\r\n\r\nconst playlistReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_PLAYLISTS_STATE:\r\n return {\r\n ...state,\r\n currentState: STATES.LIST,\r\n currentPlaylist: [],\r\n currentCategoryId: -1,\r\n currentSubcategoryId: -1,\r\n loading: false,\r\n error: null\r\n };\r\n\r\n // SET_GALLERY_EDIT_STATE\r\n case NOTIFIERS.SET_PLAYLIST_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n\r\n // SET_PLAYLIST_IMAGE_UPLOAD\r\n case NOTIFIERS.SET_PLAYLIST_IMAGE_UPLOAD:\r\n return {\r\n ...state,\r\n editData: {\r\n ...state.editData,\r\n image: action.payload.item.fileUrl,\r\n fileName: action.payload.item.fileName\r\n }\r\n };\r\n\r\n // GET_PLAYLIST_ITEM\r\n case NOTIFIERS.GET_PLAYLIST_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.GET_PLAYLIST_ITEM + 2:\r\n return {\r\n ...state,\r\n editData: action.payload.items,\r\n currentState: STATES.EDIT\r\n };\r\n case NOTIFIERS.GET_PLAYLIST_ITEM + 3:\r\n return state;\r\n\r\n // GET_PLAYLIST\r\n case NOTIFIERS.GET_PLAYLIST + 1:\r\n return state;\r\n case NOTIFIERS.GET_PLAYLIST + 2:\r\n return {...state, currentPlaylist: action.payload.items, currentSubcategoryId: action.payload.parentId};\r\n case NOTIFIERS.GET_PLAYLIST + 3:\r\n return state;\r\n\r\n //ADD_PLAYLIST_ITEM\r\n case NOTIFIERS.ADD_PLAYLIST_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.ADD_PLAYLIST_ITEM + 2:\r\n return {\r\n ...state,\r\n currentPlaylist: [...state.currentPlaylist, action.payload.items],\r\n currentState: STATES.LIST\r\n };\r\n case NOTIFIERS.ADD_PLAYLIST_ITEM + 3:\r\n return state;\r\n\r\n\r\n // DELETE_PLAYLIST_ITEM\r\n case NOTIFIERS.DELETE_PLAYLIST_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_PLAYLIST_ITEM + 2:\r\n let items = state.currentPlaylist.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n return {...state, currentPlaylist: items};\r\n case NOTIFIERS.DELETE_PLAYLIST_ITEM + 3:\r\n return state;\r\n\r\n\r\n // UPDATE_PLAYLIST_ITEM\r\n case NOTIFIERS.UPDATE_PLAYLIST_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_PLAYLIST_ITEM + 2:\r\n let newItems = state.currentPlaylist.map(item => {\r\n if (item.id === action.payload.items.id) {\r\n item.name = action.payload.items.name;\r\n item.url = action.payload.items.url;\r\n item.display_order = action.payload.items.display_order;\r\n }\r\n return item;\r\n });\r\n return {...state, currentPlaylist: [...newItems], currentState: STATES.LIST};\r\n case NOTIFIERS.UPDATE_PLAYLIST_ITEM + 3:\r\n return state;\r\n\r\n\r\n // GET_PLAYLIST_CATEGORY\r\n case NOTIFIERS.GET_PLAYLIST_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.GET_PLAYLIST_CATEGORY + 2: {\r\n if (action.payload.parentId == -1) { // root category\r\n return {...state, categories: action.payload.items, currentCategoryId: -1, playlist: []}\r\n } else { // child category\r\n for (var i = 0; i < state.categories.length; i++) {\r\n if (state.categories[i]['id'] == action.payload.parentId) {\r\n state.categories[i]['categories'] = action.payload['items'];\r\n if (action.setCurrent) {\r\n state.currentCategoryId = action.payload.parentId;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n return {...state};\r\n }\r\n ;\r\n case NOTIFIERS.GET_PLAYLIST_CATEGORY + 3:\r\n return state;\r\n\r\n //ADD_PLAYLIST_CATEGORY\r\n case NOTIFIERS.ADD_PLAYLIST_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.ADD_PLAYLIST_CATEGORY + 2: {\r\n if (action.payload.parentId == -1) { // root category\r\n return {...state, categories: [...state.categories, action.payload.items]}\r\n } else { // child category\r\n for (var i = 0; i < state.categories.length; i++) {\r\n if (state.categories[i]['id'] == action.payload.parentId) {\r\n state.categories[i]['categories'].push(action.payload['items'])\r\n break;\r\n }\r\n }\r\n }\r\n return {...state};\r\n }\r\n ;\r\n case NOTIFIERS.ADD_PLAYLIST_CATEGORY + 3:\r\n return state;\r\n\r\n //DELETE_PLAYLIST_CATEGORY\r\n case NOTIFIERS.DELETE_PLAYLIST_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_PLAYLIST_CATEGORY + 2:\r\n let categories = state.categories;\r\n if (action.payload.items['parent_id'] == -1) // top category\r\n {\r\n categories = state.categories.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n } else {\r\n let subcat = null;\r\n for (var i = 0; i < categories.length; i++) {\r\n if (categories[i]['id'] == action.payload.items['parent_id']) {\r\n subcat = categories[i]['categories'];\r\n let newSubCategories = subcat.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n categories[i]['categories'] = newSubCategories;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return {...state, categories: categories};\r\n case NOTIFIERS.DELETE_PLAYLIST_CATEGORY + 3:\r\n return state;\r\n\r\n // UPDATE_PLAYLIST_CATEGORY\r\n case NOTIFIERS.UPDATE_PLAYLIST_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_PLAYLIST_CATEGORY + 2:\r\n if (action.payload.items['parent_id'] == -1) // top category\r\n {\r\n for (var i = 0; i < state.categories.length; i++) {\r\n if (state.categories[i]['id'] == action.payload.items['id']) {\r\n state.categories[i]['name'] = action.payload.items['name'];\r\n break;\r\n }\r\n }\r\n } else {\r\n for (var i = 0; i < state.categories.length; i++) {\r\n if (state.categories[i]['id'] == action.payload.items['parent_id']) {\r\n for (var j = 0; j < state.categories[i]['categories'].length; j++) {\r\n if (state.categories[i]['categories'][j]['id'] == action.payload.items['id']) {\r\n state.categories[i]['categories'][j]['name'] = action.payload.items['name'];\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return {...state};\r\n case NOTIFIERS.UPDATE_PLAYLIST_CATEGORY + 3:\r\n return state;\r\n }\r\n return state;\r\n};\r\n\r\n\r\nexport default playlistReducer;\r\n\r\n\r\n","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n currentCategoryId: -1,\r\n categories: [],\r\n currentGallery: [],\r\n editData: null\r\n};\r\n\r\nconst photoGalleryReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_PHOTO_STATE:\r\n return {\r\n ...state,\r\n currentState: STATES.LIST,\r\n currentGallery: [],\r\n editData: null,\r\n currentCategoryId: -1,\r\n loading: false,\r\n error: null\r\n };\r\n\r\n // SET_GALLERY_EDIT_STATE\r\n case NOTIFIERS.SET_GALLERY_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n\r\n // ADD_GALLERY_IMAGE\r\n case NOTIFIERS.ADD_GALLERY_IMAGE + 1:\r\n return state;\r\n case NOTIFIERS.ADD_GALLERY_IMAGE + 2:\r\n return {\r\n ...state,\r\n currentGallery: [...state.currentGallery, action.payload.items],\r\n currentState: STATES.LIST,\r\n editData: null\r\n };\r\n case NOTIFIERS.ADD_GALLERY_IMAGE + 3:\r\n return state;\r\n\r\n // GET_PHOTO_CATEGORIES\r\n case NOTIFIERS.GET_PHOTO_CATEGORIES + 1:\r\n return state;\r\n case NOTIFIERS.GET_PHOTO_CATEGORIES + 2:\r\n return {\r\n ...state,\r\n categories: action.payload.items,\r\n currentGallery: [],\r\n currentCategoryId: -1,\r\n editData: null\r\n };\r\n case NOTIFIERS.GET_PHOTO_CATEGORIES + 3:\r\n return state;\r\n\r\n // GET_PHOTO_GALLERY\r\n case NOTIFIERS.GET_PHOTO_GALLERY + 1:\r\n return state;\r\n case NOTIFIERS.GET_PHOTO_GALLERY + 2:\r\n return {\r\n ...state,\r\n currentGallery: action.payload.items,\r\n currentCategoryId: action.payload.galleryId\r\n };\r\n case NOTIFIERS.GET_PHOTO_GALLERY + 3:\r\n return state;\r\n\r\n // DELETE_GALLERY_IMAGE\r\n case NOTIFIERS.DELETE_GALLERY_IMAGE + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_GALLERY_IMAGE + 2:\r\n let gallery = state.currentGallery.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n return {...state, currentGallery: gallery};\r\n case NOTIFIERS.DELETE_GALLERY_IMAGE + 3:\r\n return state;\r\n\r\n // ADD_PHOTO_CATEGORY\r\n case NOTIFIERS.ADD_PHOTO_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.ADD_PHOTO_CATEGORY + 2:\r\n state.categories = [...state.categories, action.payload.items];\r\n return {...state};\r\n case NOTIFIERS.ADD_PHOTO_CATEGORY + 3:\r\n return state;\r\n\r\n\r\n // DELETE_PHOTO_CATEGORY\r\n case NOTIFIERS.DELETE_PHOTO_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_PHOTO_CATEGORY + 2:\r\n let newCategories = state.categories.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n return {...state, categories: newCategories};\r\n case NOTIFIERS.DELETE_PHOTO_CATEGORY + 3:\r\n return state;\r\n\r\n // UPDATE_PHOTO_CATEGORY\r\n case NOTIFIERS.UPDATE_PHOTO_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_PHOTO_CATEGORY + 2:\r\n let newItems = state.categories.map(item => {\r\n if (item.id === action.payload.items.id) {\r\n item.name = action.payload.items.name;\r\n }\r\n return item;\r\n });\r\n return {...state, categories: [...newItems]};\r\n case NOTIFIERS.UPDATE_PHOTO_CATEGORY + 3:\r\n return state;\r\n\r\n case NOTIFIERS.SET_GALLERY_IMAGE_UPLOAD:\r\n return {\r\n ...state,\r\n editData: {\r\n ...state.editData,\r\n image: action.payload.item.fileUrl,\r\n fileName: action.payload.item.fileName\r\n }\r\n };\r\n }\r\n return state;\r\n};\r\n\r\n\r\nexport default photoGalleryReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editData: null,\r\n data: []\r\n};\r\n\r\nconst rockLegendsReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_ROCKLEGEND_STATE\r\n case NOTIFIERS.RESET_ROCKLEGEND_STATE:\r\n return {...state, editData: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET_ROCKLEGENDS\r\n case NOTIFIERS.GET_ROCKLEGENDS + 1:\r\n return state;\r\n case NOTIFIERS.GET_ROCKLEGENDS + 2:\r\n return {...state, data: action.payload};\r\n case NOTIFIERS.GET_ROCKLEGENDS + 3:\r\n return state;\r\n\r\n // ADD_ROCKLEGEND\r\n case NOTIFIERS.ADD_ROCKLEGEND + 1:\r\n return state;\r\n case NOTIFIERS.ADD_ROCKLEGEND + 2:\r\n state.data = [...state.data, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_ROCKLEGEND + 3:\r\n return state;\r\n\r\n // DELETE_ROCKLEGEND\r\n case NOTIFIERS.DELETE_ROCKLEGEND + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_ROCKLEGEND + 2:\r\n let data = state.data.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, data: data};\r\n case NOTIFIERS.DELETE_ROCKLEGEND + 3:\r\n return state;\r\n\r\n // UPDATE_ROCKLEGEND\r\n case NOTIFIERS.UPDATE_ROCKLEGEND + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_ROCKLEGEND + 2:\r\n let newData = state.data.map(item => {\r\n if (item.id === action.payload.item.id) {\r\n item = {...item, ...action.payload.item};\r\n }\r\n return item;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state, data: [...newData]};\r\n case NOTIFIERS.UPDATE_ROCKLEGEND + 3:\r\n return state;\r\n\r\n // GET_ROCKLEGEND\r\n case NOTIFIERS.GET_ROCKLEGEND + 1:\r\n return state;\r\n case NOTIFIERS.GET_ROCKLEGEND + 2:\r\n let newState = {...state, editData: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_ROCKLEGEND + 3:\r\n return state;\r\n\r\n // SET_ROCKLEGEND_IMAGE_UPLOAD\r\n case NOTIFIERS.SET_ROCKLEGEND_IMAGE_UPLOAD:\r\n return {\r\n ...state,\r\n editData: {\r\n ...state.editData,\r\n image: action.payload.item.fileUrl,\r\n fileName: action.payload.item.fileName\r\n }\r\n };\r\n\r\n // SET_ROCKLEGEND_EDIT_STATE\r\n case NOTIFIERS.SET_ROCKLEGEND_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default rockLegendsReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n currentCategoryId: -1,\r\n currentSubcategoryId: -1,\r\n categories: [],\r\n currentList: [],\r\n editData: null,\r\n};\r\n\r\nconst top20Reducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_TOP20_STATE\r\n case NOTIFIERS.RESET_TOP20_STATE:\r\n return {\r\n ...state,\r\n currentState: STATES.LIST,\r\n currentList: [],\r\n currentCategoryId: -1,\r\n currentSubcategoryId: -1,\r\n loading: false,\r\n error: null\r\n };\r\n\r\n // SET_TOP20_EDIT_STATE\r\n case NOTIFIERS.SET_TOP20_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n\r\n // GET_TOP20_CATEGORY\r\n case NOTIFIERS.GET_TOP20_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.GET_TOP20_CATEGORY + 2: {\r\n if (action.payload.parentId == -1) { // root category\r\n return {...state, categories: action.payload.items, currentCategoryId: -1, playlist: []}\r\n } else { // child category\r\n for (var i = 0; i < state.categories.length; i++) {\r\n if (state.categories[i]['id'] == action.payload.parentId) {\r\n state.categories[i]['categories'] = action.payload['items'];\r\n state.currentList = [];\r\n if (action.setCurrent) {\r\n state.currentCategoryId = action.payload.parentId;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n return {...state};\r\n }\r\n case NOTIFIERS.GET_TOP20_CATEGORY + 3:\r\n return state;\r\n\r\n\r\n //ADD_TOP20_CATEGORY\r\n case NOTIFIERS.ADD_TOP20_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.ADD_TOP20_CATEGORY + 2: {\r\n if (action.payload.parentId == -1) { // root category\r\n return {...state, categories: [...state.categories, action.payload.items]}\r\n }\r\n return {...state};\r\n }\r\n ;\r\n case NOTIFIERS.ADD_TOP20_CATEGORY + 3:\r\n return state;\r\n\r\n\r\n //DELETE_TOP20_CATEGORY\r\n case NOTIFIERS.DELETE_TOP20_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_TOP20_CATEGORY + 2:\r\n let categories = state.categories;\r\n categories = state.categories.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n return {...state, categories: categories, currentCategoryId: -1};\r\n case NOTIFIERS.DELETE_TOP20_CATEGORY + 3:\r\n return state;\r\n\r\n\r\n // UPDATE_TOP20_CATEGORY\r\n case NOTIFIERS.UPDATE_TOP20_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_TOP20_CATEGORY + 2:\r\n for (var i = 0; i < state.categories.length; i++) {\r\n if (state.categories[i]['id'] == action.payload.items['id']) {\r\n state.categories[i]['title'] = action.payload.items['title'];\r\n break;\r\n }\r\n }\r\n return {...state};\r\n case NOTIFIERS.UPDATE_TOP20_CATEGORY + 3:\r\n return state;\r\n\r\n // GET_TOP20_ITEMS\r\n case NOTIFIERS.GET_TOP20_ITEMS + 1:\r\n return state;\r\n case NOTIFIERS.GET_TOP20_ITEMS + 2:\r\n return {...state, currentList: action.payload.items, currentSubcategoryId: action.payload.parentId};\r\n case NOTIFIERS.GET_TOP20_ITEMS + 3:\r\n return state;\r\n\r\n // GET_TOP20_ITEM\r\n case NOTIFIERS.GET_TOP20_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.GET_TOP20_ITEM + 2:\r\n return {\r\n ...state,\r\n editData: action.payload.items,\r\n currentState: STATES.EDIT\r\n };\r\n case NOTIFIERS.GET_TOP20_ITEM + 3:\r\n return state;\r\n\r\n // SET_TOP20_IMAGE_UPLOAD\r\n case NOTIFIERS.SET_TOP20_IMAGE_UPLOAD:\r\n return {\r\n ...state,\r\n editData: {\r\n ...state.editData,\r\n image: action.payload.item.fileUrl,\r\n fileName: action.payload.item.fileName\r\n }\r\n };\r\n\r\n // UPDATE_TOP20_ITEM\r\n case NOTIFIERS.UPDATE_TOP20_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_TOP20_ITEM + 2:\r\n let newItems = state.currentList.map(item => {\r\n if (item.id === action.payload.items.id) {\r\n item.artist = action.payload.items.artist;\r\n item.url = action.payload.items.url;\r\n item.song = action.payload.items.song;\r\n }\r\n return item;\r\n });\r\n return {...state, currentList: [...newItems], currentState: STATES.LIST};\r\n case NOTIFIERS.UPDATE_TOP20_ITEM + 3:\r\n return state;\r\n\r\n // DELETE_TOP20_ITEM\r\n case NOTIFIERS.DELETE_TOP20_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_TOP20_ITEM + 2:\r\n let items = state.currentList.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n return {...state, currentList: items};\r\n case NOTIFIERS.DELETE_TOP20_ITEM + 3:\r\n return state;\r\n\r\n\r\n //ADD_TOP20_ITEM\r\n case NOTIFIERS.ADD_TOP20_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.ADD_TOP20_ITEM + 2:\r\n return {\r\n ...state,\r\n currentList: [...state.currentList, action.payload.items],\r\n currentState: STATES.LIST\r\n };\r\n case NOTIFIERS.ADD_TOP20_ITEM + 3:\r\n return state;\r\n\r\n }\r\n return state;\r\n};\r\n\r\n\r\nexport default top20Reducer;","import {combineReducers} from 'redux';\r\n\r\nimport authReducer from './authReducer';\r\nimport pagesReducer from './pagesReducer';\r\nimport headlinesReducer from './headlinesReducer';\r\nimport snackBarReducer from './snackBarReducer';\r\nimport historyReducer from './historyReducer';\r\nimport rockInfoReducer from './rockInfoReducer';\r\nimport newsReducer from './newsReducer';\r\nimport timReducer from './timReducer';\r\nimport bannerReducer from './bannerReducer';\r\nimport albumsReducer from './albumsReducer';\r\nimport playlistsReducer from './playlistsReducer';\r\nimport photoGalleryReducer from './photoGalleryReducer';\r\nimport rockLegendsReducer from './rockLegendsReducer';\r\nimport top20Reducer from './top20Reducer'\r\n\r\nconst rootReducer = combineReducers({\r\n userState: authReducer,\r\n pages: pagesReducer,\r\n headlines: headlinesReducer,\r\n histories: historyReducer,\r\n notifications: snackBarReducer,\r\n news: newsReducer,\r\n rockInfo: rockInfoReducer,\r\n todayInMusic: timReducer,\r\n banners: bannerReducer,\r\n albums: albumsReducer,\r\n playlists: playlistsReducer,\r\n galleries: photoGalleryReducer,\r\n rockLegends: rockLegendsReducer,\r\n top20: top20Reducer\r\n});\r\n\r\nexport default rootReducer;\r\n","import {applyMiddleware, createStore} from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport rootReducer from './reducers/rootReducer';\r\nimport {NOTIFIERS} from './types';\r\nimport setAuthorizationToken from \"../util/auth\";\r\nimport jwt from 'jsonwebtoken';\r\n\r\nconst store = createStore(rootReducer, applyMiddleware(thunk));\r\n\r\nif (localStorage.kptv) {\r\n setAuthorizationToken(localStorage.kptv);\r\n try {\r\n let decodedToken = jwt.decode(localStorage.kptv);\r\n if (decodedToken === null) {\r\n localStorage.removeItem('kptv');\r\n } else {\r\n store.dispatch({type: NOTIFIERS.LOGIN + 2, payload: {user: decodedToken}});\r\n }\r\n } catch (ex) {\r\n localStorage.removeItem('kptv');\r\n console.log(\"invalid authentication\");\r\n }\r\n}\r\n\r\nexport default store;","import axios from 'axios';\r\nimport {rootReducer} from '../store/reducers/rootReducer';\r\nimport store from '../store/store';\r\nimport {enqueueSnackbar} from '../store/actions/snackBarActions';\r\n\r\nexport default function setAuthorizationToken(token) {\r\n if (token) {\r\n axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;\r\n axios.interceptors.response.use(function (response) {\r\n return response;\r\n }, function (error) {\r\n if (error.response.status == 401) {\r\n store.dispatch(enqueueSnackbar({\r\n message: 'Unauthorized: Reason - session expired please Login again.',\r\n options: {variant: 'error'}\r\n }));\r\n }\r\n return Promise.reject(error);\r\n });\r\n } else {\r\n delete axios.defaults.headers.common['Authorization'];\r\n }\r\n}","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport setAuthorizationToken from \"../../util/auth\";\r\nimport {enqueueSnackbar} from './snackBarActions';\r\nimport jwt from \"jsonwebtoken\";\r\n\r\nexport const login_a = ({userName, password}) => {\r\n\r\n return (dispatch, getState) => {\r\n console.log(\"::login_a called\");\r\n dispatch({type: NOTIFIERS.LOGIN + 1});\r\n\r\n return axios.post(BackendSettings.baseUrl + \"login\", {username: userName, password: password})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n localStorage.setItem(\"kptv\", response.data.token);\r\n setAuthorizationToken(response.data.token);\r\n const tokenDecoded = jwt.decode(response.data.token);\r\n dispatch({type: NOTIFIERS.LOGIN + 2, payload: {user: tokenDecoded}});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.LOGIN + 3,\r\n payload: err.message\r\n });\r\n\r\n console.log(\"current state \", getState());\r\n });\r\n }\r\n}\r\n\r\n\r\nexport const logout_a = () => {\r\n return (dispatch, getState) => {\r\n localStorage.removeItem('kptv');\r\n setAuthorizationToken(false);\r\n dispatch({type: NOTIFIERS.LOGOUT});\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Link, Route, Switch } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport classNames from 'classnames';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Button, Drawer } from '@material-ui/core';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport List from '@material-ui/core/List';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Icon from '@material-ui/core/Icon';\r\nimport Pages from '../pages/pages';\r\nimport Headlines from '../headlines/headlines';\r\nimport History from '../history/history';\r\nimport RockInfo from '../rockInfo/rockInfo';\r\nimport News from '../news/news';\r\nimport TodayInMusic from '../todayinmusic/todayInMusic';\r\nimport Banners from '../banners/banners';\r\nimport Albums from '../albums/albums';\r\nimport Playlist from '../playlist/playlist';\r\nimport PhotoGallery from '../photoGallery/photoGallery';\r\nimport RockLegends from '../rockLegends/rockLegends';\r\nimport Top20 from '../top20/top20';\r\nimport { logout_a } from '../../store/actions/authActions';\r\n\r\nconst drawerWidth = 200;\r\n\r\nconst styles = theme => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\t\"& a\": {\r\n\t\t\ttextDecoration: \"none\"\r\n\t\t},\r\n\t\t\"& a span\": {\r\n\t\t\tcolor: \"#FFF\"\r\n\r\n\t\t}\r\n\r\n\t},\r\n\tappBar: {\r\n\t\tbackground: 'linear-gradient(150deg, #fede00 10%, #000 20%)',\r\n\t\tcolor: \"#000\",\r\n\t\tzIndex: theme.zIndex.drawer + 1,\r\n\t\ttransition: theme.transitions.create(['width', 'margin'], {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.leavingScreen,\r\n\t\t}),\r\n\t},\r\n\tappBarShift: {\r\n\t\tmarginLeft: drawerWidth,\r\n\t\twidth: `calc(100% - ${drawerWidth}px)`,\r\n\t\ttransition: theme.transitions.create(['width', 'margin'], {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.enteringScreen,\r\n\t\t}),\r\n\t},\r\n\tmenuButton: {\r\n\t\tmarginLeft: 6,\r\n\t\tmarginRight: 36,\r\n\t},\r\n\thide: {\r\n\t\tdisplay: 'none',\r\n\t},\r\n\tdrawer: {\r\n\t\twidth: drawerWidth,\r\n\t\tflexShrink: 0,\r\n\t\twhiteSpace: 'nowrap',\r\n\t},\r\n\tdrawerOpen: {\r\n\t\twidth: drawerWidth,\r\n\t\ttransition: theme.transitions.create('width', {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.enteringScreen,\r\n\t\t}),\r\n\t},\r\n\tdrawerClose: {\r\n\t\ttransition: theme.transitions.create('width', {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.leavingScreen,\r\n\t\t}),\r\n\t\toverflowX: 'hidden',\r\n\t\twidth: theme.spacing.unit * 7 + 1,\r\n\t\t[theme.breakpoints.up('sm')]: {\r\n\t\t\twidth: theme.spacing.unit * 7 + 1,\r\n\t\t},\r\n\t},\r\n\ttoolbar: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'flex-end',\r\n\t\tpadding: '0 8px',\r\n\t\t...theme.mixins.toolbar,\r\n\t},\r\n\tcontent: {\r\n\t\tflexGrow: 1,\r\n\t\tpadding: theme.spacing.unit * 3,\r\n\t},\r\n\ttitle: {\r\n\t\tflexGrow: 1,\r\n\t\ttextAlign: \"left\",\r\n\t\tpaddingLeft: 26,\r\n\t\ttextShadow: '0 13.36px 8.896px transparent, 0 2px 5px #fff',\r\n\t},\r\n\tlogoutButton: {\r\n\t\tmarginRight: 20,\r\n\t\tbackground: 'linear-gradient(180deg, #000 90%, #333 90%)',\r\n\t\tborderRadius: 3,\r\n\t\tcolor: 'white',\r\n\t\tpadding: '5px 20px',\r\n\t}\r\n});\r\n\r\nclass AppLayout extends Component {\r\n\tstate = {\r\n\t\tleftDrawerOpen: false,\r\n\t};\r\n\r\n\ttoggleLeftDrawer = () => {\r\n\t\tthis.setState({...this.state, leftDrawerOpen: !this.state.leftDrawerOpen});\r\n\t};\r\n\r\n\tcomponentWillMount() {\r\n\t\tif (this.props.userState.authenticated === false) {\r\n\t\t\tthis.props.history.push(\"/\");\r\n\t\t}\r\n\t};\r\n\r\n\tonLogout = () => {\r\n\t\tthis.props.logout();\r\n\t\t//this.props.history.entries = [];\r\n\t\t//this.props.history.index = -1;\r\n\t\tthis.props.history.push(\"/\");\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {classes} = this.props;\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tKPTV Admin\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tpages\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\twhatshot\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tsettings_voice\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\thistory\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tinfo\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tcalendar_today\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tstar\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tdate_range\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tphoto_album\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tformat_list_numbered\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tpicture_in_picture_alt\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tvertical_split\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{/*settings*/}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n\treturn {\r\n\t\tuserState: state.userState\r\n\t}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn {\r\n\t\tlogout: () => dispatch(logout_a())\r\n\t}\r\n}\r\n\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(AppLayout));\r\n\r\n","import React, {Component, Fragment} from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {connect} from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport {login_a} from '../../store/actions/authActions';\r\nimport setAuthorizationToken from \"../../util/auth\";\r\n\r\nconst styles = theme => ({\r\n\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing.unit,\r\n },\r\n\r\n root: {\r\n display: 'flex',\r\n }\r\n});\r\n\r\nclass LoginLayout extends Component {\r\n\r\n state = {\r\n userName: \"\",\r\n password: \"\"\r\n };\r\n\r\n static contextTypes = {\r\n router: PropTypes.object\r\n };\r\n\r\n onLogin = (event) => {\r\n this.props.login({\r\n userName: this.state.userName,\r\n password: this.state.password\r\n });\r\n };\r\n\r\n componentWillMount() {\r\n localStorage.removeItem('kptv');\r\n setAuthorizationToken(false);\r\n };\r\n\r\n componentWillUpdate(nextProps) {\r\n if (nextProps.userState.authenticated) {\r\n this.context.router.history.push(\"/app/pages/\");\r\n }\r\n };\r\n\r\n handlePasswordChange = (event) => {\r\n this.setState({password: event.target.value});\r\n };\r\n\r\n handleUserNameChange = (event) => {\r\n this.setState({userName: event.target.value});\r\n };\r\n\r\n render() {\r\n const {classes/*, theme */} = this.props;\r\n return (\r\n \r\n
\r\n\r\n \r\n Login\r\n \r\n {/*\r\n Create new project\r\n */}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n login: (credentials) => dispatch(login_a(credentials))\r\n }\r\n}\r\n\r\nfunction mapStateToProps({userState}) {\r\n return {userState};\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles/*, { withTheme: true }*/)(LoginLayout));\r\n","/* eslint-disable react/prop-types */\r\n/* eslint-disable import/no-unresolved */\r\nimport React, {Component} from 'react';\r\nimport {bindActionCreators} from 'redux';\r\nimport {connect} from 'react-redux';\r\nimport {withSnackbar} from 'notistack';\r\nimport {removeSnackbar} from '../../store/actions/snackBarActions';\r\n\r\nclass Notifier extends Component {\r\n displayed = [];\r\n\r\n storeDisplayed = (id) => {\r\n this.displayed = [...this.displayed, id];\r\n };\r\n\r\n shouldComponentUpdate({notifications: newSnacks = []}) {\r\n const {notifications: currentSnacks} = this.props;\r\n\r\n let notExists = false;\r\n for (let i = 0; i < newSnacks.length; i += 1) {\r\n if (notExists) continue;\r\n notExists = notExists || !currentSnacks.filter(({key}) => newSnacks[i].key === key).length;\r\n }\r\n return notExists;\r\n }\r\n\r\n componentDidUpdate() {\r\n const {notifications = []} = this.props;\r\n\r\n notifications.forEach((notification) => {\r\n // Do nothing if snackbar is already displayed\r\n if (this.displayed.includes(notification.key)) return;\r\n // Display snackbar using notistack\r\n this.props.enqueueSnackbar(notification.message, notification.options);\r\n // Keep track of snackbars that we've displayed\r\n this.storeDisplayed(notification.key);\r\n // Dispatch action to remove snackbar from redux store\r\n this.props.removeSnackbar(notification.key);\r\n });\r\n }\r\n\r\n render() {\r\n return null;\r\n }\r\n}\r\n\r\nconst mapStateToProps = store => ({\r\n notifications: store.notifications.notifications,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => bindActionCreators({removeSnackbar}, dispatch);\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(withSnackbar(Notifier));\r\n","const darkCustom = {\r\n color: {\r\n primary: 'white'\r\n },\r\n palette: {\r\n type: 'dark',\r\n },\r\n overrides: {\r\n MuiButton: {\r\n textPrimary: {\r\n color: '#FFFFFF',\r\n }\r\n }\r\n },\r\n};\r\n\r\nexport default darkCustom;","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default function (ComposedComponent) {\r\n\r\n class Authentication extends Component {\r\n static contextTypes = {\r\n router: PropTypes.object\r\n };\r\n\r\n componentWillMount() {\r\n if (!this.props.userState.authenticated) {\r\n this.context.router.history.push(\"/\");\r\n }\r\n }\r\n\r\n componentWillUpdate(nextProps) {\r\n if (!this.props.userState.authenticated) {\r\n this.context.router.history.push(\"/\");\r\n }\r\n }\r\n\r\n render() {\r\n if (this.props.userState.authenticated) {\r\n return ;\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n function mapStateToProps(state) {\r\n return {\r\n userState: state.userState\r\n }\r\n }\r\n\r\n return connect(mapStateToProps)(Authentication);\r\n}\r\n\r\n","import React, {Component} from 'react';\nimport AppLayout from \"./components/layout/appLayout\";\nimport LoginLayout from \"./components/layout/loginLayout\";\nimport {BrowserRouter, Route} from 'react-router-dom';\nimport {createMuiTheme, MuiThemeProvider} from '@material-ui/core';\nimport Notifier from './components/comps/Notifier';\nimport darkCustom from './theme/darkCustom';\nimport requireAuth from \"./hoc/requireAuth\";\nimport {withStyles} from '@material-ui/core/styles';\nimport {connect} from \"react-redux\";\nimport './App.css';\n\nconst styles = theme => ({});\n\nclass App extends Component {\n\n render() {\n const {classes, theme} = this.props;\n return (\n
\n \n \n \n \n \n \n \n
\n );\n }\n}\n\nexport default connect(null, null)(withStyles(styles, {withTheme: true})(App));\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport {Provider} from 'react-redux';\nimport {SnackbarProvider} from 'notistack';\n\nimport store from './store/store';\n\n//ReactDOM.render(, document.getElementById('root'));\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586