From 73cb479ebaab7898255fa9deb895e146c12e412b Mon Sep 17 00:00:00 2001 From: Nwuguru Sunday Date: Fri, 15 Jul 2016 12:52:42 +0100 Subject: [PATCH] [Chore #12629770] Clean up and refactor folder structure --- app/photos/urls.py | 6 - app/photos/views.py | 20 +- app/static/build/client.min.js | 1875 ++++++++--------- app/static/components/BackgroundSlider.jsx | 24 +- app/static/components/EditImage.jsx | 5 - app/static/components/Effects.jsx | 3 - app/static/components/Folder.jsx | 91 - app/static/components/FolderInfo.jsx | 2 +- app/static/components/FolderModal.jsx | 3 +- app/static/components/FolderThumb.jsx | 3 - app/static/components/Folders.jsx | 1 - app/static/components/ListPhotos.jsx | 2 - app/static/components/Nav.jsx | 9 - app/static/components/PhotoInfo.jsx | 3 +- app/static/components/PhotoThumb.jsx | 3 - app/static/components/Photos.jsx | 2 - app/static/components/ShareSideNav.jsx | 2 +- app/static/components/SideNav.jsx | 2 - .../components/{Buttons.jsx => SubNav.jsx} | 0 app/static/components/Upload.jsx | 6 +- .../components/{ => forms}/FolderForm.jsx | 6 +- .../components/{ => forms}/LoginForm.jsx | 11 +- .../components/{ => forms}/RegisterForm.jsx | 9 +- app/static/components/pages/Dashboard.jsx | 4 +- app/static/components/pages/HomeLayout.jsx | 8 +- app/static/components/pages/Layout.jsx | 25 - app/static/components/pages/Login.jsx | 5 +- app/static/components/pages/Share.jsx | 4 +- app/static/components/store/FolderStore.jsx | 1 - app/static/components/store/PhotoStore.jsx | 1 - app/static/css/{style4.css => slide.css} | 78 +- app/static/js/Main.js | 3 - app/templates/base.html | 29 +- app/templates/test.html | 32 - 34 files changed, 987 insertions(+), 1291 deletions(-) delete mode 100644 app/photos/urls.py delete mode 100644 app/static/components/Folder.jsx rename app/static/components/{Buttons.jsx => SubNav.jsx} (100%) rename app/static/components/{ => forms}/FolderForm.jsx (94%) rename app/static/components/{ => forms}/LoginForm.jsx (89%) rename app/static/components/{ => forms}/RegisterForm.jsx (95%) delete mode 100644 app/static/components/pages/Layout.jsx rename app/static/css/{style4.css => slide.css} (98%) delete mode 100644 app/templates/test.html diff --git a/app/photos/urls.py b/app/photos/urls.py deleted file mode 100644 index 699e3f8..0000000 --- a/app/photos/urls.py +++ /dev/null @@ -1,6 +0,0 @@ -from django.conf.urls import url -from photos import views - -urlpatterns = [ - url(r'^logout/$', views.logout_view), -] diff --git a/app/photos/views.py b/app/photos/views.py index 365dba8..a89efaf 100644 --- a/app/photos/views.py +++ b/app/photos/views.py @@ -1,22 +1,20 @@ -from django.shortcuts import render -from django.http import HttpResponse, HttpResponseNotFound from django.contrib.auth import logout +from django.http import HttpResponse +from django.shortcuts import render from django.shortcuts import redirect -import json -import cloudinary -from PIL import Image, ImageFilter, ImageOps -from django.conf import settings -from photos.models import * -from api.image_edit import * # Create your views here. + + def index(request): context = { - 'index': 'Login' if not request.user.is_authenticated() else 'Dashboard', - 'user': request.user.username + 'index': 'Login' if not request.user.is_authenticated() + else 'Dashboard', + 'user': request.user.username } return render(request, 'base.html', context) + def logout_view(request): logout(request) - return redirect('/') \ No newline at end of file + return redirect('/') diff --git a/app/static/build/client.min.js b/app/static/build/client.min.js index 2b2c1a1..89ce4a7 100644 --- a/app/static/build/client.min.js +++ b/app/static/build/client.min.js @@ -64,39 +64,35 @@ var _Login2 = _interopRequireDefault(_Login); - var _Share = __webpack_require__(413); + var _Share = __webpack_require__(414); var _Share2 = _interopRequireDefault(_Share); - var _Dashboard = __webpack_require__(417); + var _Dashboard = __webpack_require__(418); var _Dashboard2 = _interopRequireDefault(_Dashboard); - var _Folders = __webpack_require__(427); + var _Folders = __webpack_require__(428); var _Folders2 = _interopRequireDefault(_Folders); - var _Upload = __webpack_require__(438); + var _Upload = __webpack_require__(439); var _Upload2 = _interopRequireDefault(_Upload); - var _Photos = __webpack_require__(440); + var _Photos = __webpack_require__(441); var _Photos2 = _interopRequireDefault(_Photos); - var _EditImage = __webpack_require__(442); + var _EditImage = __webpack_require__(443); var _EditImage2 = _interopRequireDefault(_EditImage); - var _Folder = __webpack_require__(446); - - var _Folder2 = _interopRequireDefault(_Folder); - - var _FolderContent = __webpack_require__(447); + var _FolderContent = __webpack_require__(448); var _FolderContent2 = _interopRequireDefault(_FolderContent); - var _FolderUntitled = __webpack_require__(448); + var _FolderUntitled = __webpack_require__(449); var _FolderUntitled2 = _interopRequireDefault(_FolderUntitled); @@ -133,8 +129,6 @@ _react2.default.createElement(_reactRouter.Route, { path: 'upload/:id', component: _Upload2.default, onEnter: requireAuth }), _react2.default.createElement(_reactRouter.Route, { path: 'photos', component: _Photos2.default, onEnter: requireAuth }), _react2.default.createElement(_reactRouter.Route, { path: 'editimage/:id', component: _EditImage2.default, onEnter: requireAuth }), - _react2.default.createElement(_reactRouter.Route, { path: 'editfolder/:id', component: _Folder2.default, onEnter: requireAuth }), - _react2.default.createElement(_reactRouter.Route, { path: 'folder', component: _Folder2.default, onEnter: requireAuth }), _react2.default.createElement(_reactRouter.Route, { path: 'folder/:id', component: _FolderContent2.default, onEnter: requireAuth }), _react2.default.createElement(_reactRouter.Route, { path: 'folder/:id/untitled', component: _FolderUntitled2.default, onEnter: requireAuth }) ) @@ -26014,7 +26008,7 @@ 'use strict'; Object.defineProperty(exports, "__esModule", { - value: true + value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -26040,36 +26034,32 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _class = function (_React$Component) { - _inherits(_class, _React$Component); - - function _class() { - _classCallCheck(this, _class); - - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this)); + _inherits(_class, _React$Component); - var index = $('#index').val(); - _this.state = { active: true ? index == 'Dashboard' : false }; - return _this; - } + function _class() { + _classCallCheck(this, _class); - _createClass(_class, [{ - key: 'render', - value: function render() { - return _react2.default.createElement( - 'div', - { className: 'row' }, - _react2.default.createElement(_reactNotifyToast2.default, null), - _react2.default.createElement(_Nav2.default, { user_active_class: 'hide' }), - _react2.default.createElement( - 'div', - { className: 'container' }, - this.props.children - ) - ); + return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments)); } - }]); - return _class; + _createClass(_class, [{ + key: 'render', + value: function render() { + return _react2.default.createElement( + 'div', + { className: 'row' }, + _react2.default.createElement(_reactNotifyToast2.default, null), + _react2.default.createElement(_Nav2.default, { user_active_class: 'hide' }), + _react2.default.createElement( + 'div', + { className: 'container' }, + this.props.children + ) + ); + } + }]); + + return _class; }(_react2.default.Component); exports.default = _class; @@ -26104,7 +26094,7 @@ function _class() { _classCallCheck(this, _class); - return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this)); + return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments)); } _createClass(_class, [{ @@ -46027,15 +46017,15 @@ var _BackgroundSlider2 = _interopRequireDefault(_BackgroundSlider); - var _LoginForm = __webpack_require__(393); + var _LoginForm = __webpack_require__(452); var _LoginForm2 = _interopRequireDefault(_LoginForm); - var _RegisterForm = __webpack_require__(411); + var _RegisterForm = __webpack_require__(451); var _RegisterForm2 = _interopRequireDefault(_RegisterForm); - var _SocialButtons = __webpack_require__(449); + var _SocialButtons = __webpack_require__(413); var _SocialButtons2 = _interopRequireDefault(_SocialButtons); @@ -46155,7 +46145,7 @@ function _class() { _classCallCheck(this, _class); - return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this)); + return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments)); } _createClass(_class, [{ @@ -46282,156 +46272,7 @@ exports.default = _class; /***/ }, -/* 393 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - var _reactLoader = __webpack_require__(394); - - var _reactLoader2 = _interopRequireDefault(_reactLoader); - - var _GenericAction = __webpack_require__(396); - - var action = _interopRequireWildcard(_GenericAction); - - var _ToastAction = __webpack_require__(401); - - var Toast = _interopRequireWildcard(_ToastAction); - - var _LoginStore = __webpack_require__(402); - - var _LoginStore2 = _interopRequireDefault(_LoginStore); - - function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - - var _class = function (_React$Component) { - _inherits(_class, _React$Component); - - function _class() { - _classCallCheck(this, _class); - - return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this)); - } - - _createClass(_class, [{ - key: 'componentWillMount', - value: function componentWillMount() { - this.state = { loaded: true }; - _LoginStore2.default.on('loginComplete', this.loginComplete.bind(this)); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - _LoginStore2.default.removeListener('loginComplete', this.loginComplete.bind(this)); - } - }, { - key: 'loginComplete', - value: function loginComplete(data) { - this.setState({ loaded: true }); - if (!data.data.login) { - Toast.error(data.data.message); - } else { - Toast.ok('Login Successful'); - document.location.href = '/'; - } - } - }, { - key: 'onSubmit', - value: function onSubmit(e) { - e.preventDefault(); - var dataArray = $(e.target).serializeArray(); - var form = new FormData(); - dataArray.forEach(function (data) { - form.append(data.name, data.value); - }); - this.setState({ loaded: false }); - action.perform(form, 'LOGIN'); - } - }, { - key: 'render', - value: function render() { - var label = this.props.label; - - return _react2.default.createElement( - 'form', - { className: 'form-horizontal', method: 'post', onSubmit: this.onSubmit.bind(this) }, - _react2.default.createElement(_reactLoader2.default, { loaded: this.state.loaded, top: '50%' }), - _react2.default.createElement( - 'fieldset', - null, - _react2.default.createElement( - 'div', - { className: 'form-group' }, - _react2.default.createElement( - 'label', - { className: 'col-lg-2 control-label', style: { display: label ? "block" : 'none' } }, - 'Username' - ), - _react2.default.createElement( - 'div', - { className: 'col-lg-12' }, - _react2.default.createElement('input', { type: 'text', className: 'form-control', placeholder: 'Username', name: 'username', required: true }) - ) - ), - _react2.default.createElement( - 'div', - { className: 'form-group' }, - _react2.default.createElement( - 'label', - { htmlFor: 'password', className: 'col-lg-2 control-label', style: { display: label ? "block" : 'none' } }, - 'Password' - ), - _react2.default.createElement( - 'div', - { className: 'col-lg-12' }, - _react2.default.createElement('input', { type: 'password', className: 'form-control', id: 'password', name: 'password', placeholder: 'Password', required: true }) - ) - ), - _react2.default.createElement( - 'div', - { className: 'form-group' }, - _react2.default.createElement( - 'div', - { className: 'col-lg-10 col-lg-offset-2' }, - _react2.default.createElement( - 'button', - { type: 'submit', className: 'btn btn-primary right', disabled: !this.state.loaded }, - ' ', - _react2.default.createElement('i', { className: 'mdi mdi-login-variant' }), - ' Login' - ) - ) - ) - ) - ); - } - }]); - - return _class; - }(_react2.default.Component); - - exports.default = _class; - -/***/ }, +/* 393 */, /* 394 */ /***/ function(module, exports, __webpack_require__) { @@ -49354,218 +49195,7 @@ /***/ }, -/* 411 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - var _reactLoader = __webpack_require__(394); - - var _reactLoader2 = _interopRequireDefault(_reactLoader); - - var _RegisterStore = __webpack_require__(412); - - var _RegisterStore2 = _interopRequireDefault(_RegisterStore); - - var _LoginStore = __webpack_require__(402); - - var _LoginStore2 = _interopRequireDefault(_LoginStore); - - var _GenericAction = __webpack_require__(396); - - var action = _interopRequireWildcard(_GenericAction); - - var _ToastAction = __webpack_require__(401); - - var Toast = _interopRequireWildcard(_ToastAction); - - function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - - var _class = function (_React$Component) { - _inherits(_class, _React$Component); - - function _class() { - _classCallCheck(this, _class); - - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this)); - - _this.loginComplete = _this.loginComplete.bind(_this); - _this.registerComplete = _this.registerComplete.bind(_this); - return _this; - } - - _createClass(_class, [{ - key: 'componentWillMount', - value: function componentWillMount() { - this.state = { loaded: true, user: {} }; - _RegisterStore2.default.on('registerComplete', this.registerComplete); - _LoginStore2.default.on('loginComplete', this.loginComplete); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - _RegisterStore2.default.removeListener('registerComplete', this.registerComplete); - _LoginStore2.default.removeListener('loginComplete', this.loginComplete); - } - }, { - key: 'login', - value: function login(username, password) { - var form = new FormData(); - form.append('username', username); - form.append('password', password); - action.perform(form, 'LOGIN'); - } - }, { - key: 'registerComplete', - value: function registerComplete(data) { - this.setState({ loaded: true }); - if (data.status != 201) { - Toast.error(data.data.username[0]); - } else { - Toast.ok('Account created'); - this.login(this.state.user.username, this.state.user.password); - } - } - }, { - key: 'loginComplete', - value: function loginComplete(data) { - this.setState({ loaded: true }); - if (!data.data.login) { - Toast.error(data.data.message); - } else { - Toast.ok('Login Successful'); - document.location.href = '/'; - } - } - }, { - key: 'onSubmit', - value: function onSubmit(e) { - e.preventDefault(); - var dataArray = $(e.target).serializeArray(); - var dataObject = {}; - dataArray.forEach(function (data) { - dataObject[data.name] = data.value; - }); - this.setState({ user: dataObject }); - if (dataObject.password != dataObject.confirm_password) { - Toast.error('Password Mismatch'); - return false; - } - this.setState({ loaded: false }); - action.perform(dataObject, 'NEW_REGISTER'); - } - }, { - key: 'render', - value: function render() { - var label = this.props.label; - - return _react2.default.createElement( - 'form', - { className: 'form-horizontal', method: 'post', onSubmit: this.onSubmit.bind(this) }, - _react2.default.createElement( - 'fieldset', - null, - _react2.default.createElement(_reactLoader2.default, { loaded: this.state.loaded, top: '73%' }), - _react2.default.createElement( - 'div', - { className: 'form-group' }, - _react2.default.createElement( - 'label', - { htmlFor: 'username', className: 'col-lg-2 control-label', style: { display: label ? "block" : 'none' } }, - 'Username' - ), - _react2.default.createElement( - 'div', - { className: 'col-lg-12' }, - _react2.default.createElement('input', { type: 'text', className: 'form-control', id: 'username', placeholder: 'Username', name: 'username', required: true }) - ) - ), - _react2.default.createElement( - 'div', - { className: 'form-group' }, - _react2.default.createElement( - 'label', - { htmlFor: 'email', className: 'col-lg-2 control-label', style: { display: label ? "block" : 'none' } }, - 'Email' - ), - _react2.default.createElement( - 'div', - { className: 'col-lg-12' }, - _react2.default.createElement('input', { type: 'email', className: 'form-control', id: 'email', name: 'email', placeholder: 'Email', required: true }) - ) - ), - _react2.default.createElement( - 'div', - { className: 'form-group' }, - _react2.default.createElement( - 'label', - { htmlFor: 'password', className: 'col-lg-2 control-label', style: { display: label ? "block" : 'none' } }, - 'Password' - ), - _react2.default.createElement( - 'div', - { className: 'col-lg-12' }, - _react2.default.createElement('input', { type: 'password', className: 'form-control', id: 'password', name: 'password', placeholder: 'Password', required: true }) - ) - ), - _react2.default.createElement( - 'div', - { className: 'form-group' }, - _react2.default.createElement( - 'label', - { htmlFor: 'confirm_password', className: 'col-lg-2 control-label', style: { display: label ? "block" : 'none' } }, - 'Confirm Password' - ), - _react2.default.createElement( - 'div', - { className: 'col-lg-12' }, - _react2.default.createElement('input', { type: 'password', className: 'form-control', id: 'confirm_password', name: 'confirm_password', placeholder: 'Confirm Password', required: true }) - ) - ), - _react2.default.createElement( - 'div', - { className: 'form-group' }, - _react2.default.createElement( - 'div', - { className: 'col-lg-10 col-lg-offset-2' }, - _react2.default.createElement( - 'button', - { type: 'submit', className: 'btn btn-primary right', disabled: !this.state.loaded }, - ' ', - _react2.default.createElement('i', { className: 'mdi mdi-account-check' }), - ' Register' - ) - ) - ) - ) - ); - } - }]); - - return _class; - }(_react2.default.Component); - - exports.default = _class; - -/***/ }, +/* 411 */, /* 412 */ /***/ function(module, exports, __webpack_require__) { @@ -49634,6 +49264,81 @@ /***/ }, /* 413 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _react = __webpack_require__(1); + + var _react2 = _interopRequireDefault(_react); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var _class = function (_React$Component) { + _inherits(_class, _React$Component); + + function _class() { + _classCallCheck(this, _class); + + return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments)); + } + + _createClass(_class, [{ + key: "render", + value: function render() { + var type = this.props.type; + + return _react2.default.createElement( + "div", + { className: "row" }, + _react2.default.createElement( + "h4", + null, + "Social Connect" + ), + _react2.default.createElement( + "a", + { href: "/login/facebook/?next=/", className: "btn btn-primary " + type }, + " ", + _react2.default.createElement("i", { className: "mdi mdi-facebook-box", "aria-hidden": "true" }), + " Facebook" + ), + _react2.default.createElement( + "a", + { href: "/login/twitter/?next=/", className: "btn btn-info " + type }, + " ", + _react2.default.createElement("i", { className: "mdi mdi-twitter-box", "aria-hidden": "true" }), + " Twitter" + ), + _react2.default.createElement( + "a", + { href: "/login/google-oauth2/?next=/", className: "btn btn-danger " + type }, + _react2.default.createElement("i", { className: "mdi mdi-gmail", "aria-hidden": "true" }), + " Gmail" + ) + ); + } + }]); + + return _class; + }(_react2.default.Component); + + exports.default = _class; + +/***/ }, +/* 414 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -49652,11 +49357,11 @@ var _reactLoader2 = _interopRequireDefault(_reactLoader); - var _SideNav = __webpack_require__(414); + var _SideNav = __webpack_require__(415); var _SideNav2 = _interopRequireDefault(_SideNav); - var _PhotoStore = __webpack_require__(416); + var _PhotoStore = __webpack_require__(417); var _PhotoStore2 = _interopRequireDefault(_PhotoStore); @@ -49720,7 +49425,7 @@ if (result.status == 200) { this.setState({ file: result.data, loaded: true }); } else { - //document.location.href = '#/' + document.location.href = '#/'; } } }, { @@ -49758,7 +49463,7 @@ exports.default = _class; /***/ }, -/* 414 */ +/* 415 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -49773,7 +49478,7 @@ var _react2 = _interopRequireDefault(_react); - var _ShareSideNav = __webpack_require__(415); + var _ShareSideNav = __webpack_require__(416); var _ShareSideNav2 = _interopRequireDefault(_ShareSideNav); @@ -49866,7 +49571,7 @@ exports.default = _class; /***/ }, -/* 415 */ +/* 416 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -49881,11 +49586,11 @@ var _react2 = _interopRequireDefault(_react); - var _RegisterForm = __webpack_require__(411); + var _RegisterForm = __webpack_require__(451); var _RegisterForm2 = _interopRequireDefault(_RegisterForm); - var _SocialButtons = __webpack_require__(449); + var _SocialButtons = __webpack_require__(413); var _SocialButtons2 = _interopRequireDefault(_SocialButtons); @@ -49943,7 +49648,7 @@ exports.default = _class; /***/ }, -/* 416 */ +/* 417 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -50072,7 +49777,7 @@ exports.default = photoStore; /***/ }, -/* 417 */ +/* 418 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -50091,23 +49796,23 @@ var _reactNotifyToast2 = _interopRequireDefault(_reactNotifyToast); - var _SideNav = __webpack_require__(414); + var _SideNav = __webpack_require__(415); var _SideNav2 = _interopRequireDefault(_SideNav); - var _Buttons = __webpack_require__(418); + var _Subnav = __webpack_require__(450); - var _Buttons2 = _interopRequireDefault(_Buttons); + var _Subnav2 = _interopRequireDefault(_Subnav); var _Nav = __webpack_require__(231); var _Nav2 = _interopRequireDefault(_Nav); - var _DetailModal = __webpack_require__(420); + var _DetailModal = __webpack_require__(421); var _DetailModal2 = _interopRequireDefault(_DetailModal); - var _FolderModal = __webpack_require__(425); + var _FolderModal = __webpack_require__(426); var _FolderModal2 = _interopRequireDefault(_FolderModal); @@ -50142,7 +49847,7 @@ _react2.default.createElement( 'div', { className: 'container' }, - _react2.default.createElement(_Buttons2.default, null), + _react2.default.createElement(_Subnav2.default, null), _react2.default.createElement('hr', null), _react2.default.createElement( 'div', @@ -50171,97 +49876,8 @@ exports.default = _class; /***/ }, -/* 418 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - var _FolderStore = __webpack_require__(419); - - var _FolderStore2 = _interopRequireDefault(_FolderStore); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - - var _class = function (_React$Component) { - _inherits(_class, _React$Component); - - function _class() { - _classCallCheck(this, _class); - - return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments)); - } - - _createClass(_class, [{ - key: 'toggleModal', - value: function toggleModal(e) { - e.preventDefault(); - $('#folder_name').val(''); - $('#formModal .modal-title').html('New Folder'); - $('#folder_id').val(''); - $('#formModal').modal(); - } - }, { - key: 'getUpload', - value: function getUpload(e) { - e.preventDefault(); - var folder_id = $('#active-folder').val(); - document.location.href = "#/upload/" + folder_id; - } - }, { - key: 'render', - value: function render() { - return _react2.default.createElement( - 'section', - null, - _react2.default.createElement( - 'div', - { className: 'row' }, - _react2.default.createElement( - 'div', - { className: 'col-lg-3 col-md-3 col-sm-4' }, - _react2.default.createElement( - 'a', - { href: '#', title: 'New Folder', className: 'btn toolbar', onClick: this.toggleModal }, - _react2.default.createElement('i', { className: 'mdi mdi-folder-plus' }), - _react2.default.createElement('br', null), - 'New Folder' - ), - _react2.default.createElement( - 'a', - { href: '#', title: 'Upload New File', className: 'btn toolbar', onClick: this.getUpload }, - _react2.default.createElement('i', { className: 'mdi mdi-upload' }), - _react2.default.createElement('br', null), - 'Upload Photo' - ) - ) - ) - ); - } - }]); - - return _class; - }(_react2.default.Component); - - exports.default = _class; - -/***/ }, -/* 419 */ +/* 419 */, +/* 420 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -50376,7 +49992,7 @@ exports.default = folderStore; /***/ }, -/* 420 */ +/* 421 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -50391,23 +50007,23 @@ var _react2 = _interopRequireDefault(_react); - var _FolderInfo = __webpack_require__(421); + var _FolderInfo = __webpack_require__(422); var _FolderInfo2 = _interopRequireDefault(_FolderInfo); - var _PhotoInfo = __webpack_require__(423); + var _PhotoInfo = __webpack_require__(424); var _PhotoInfo2 = _interopRequireDefault(_PhotoInfo); - var _Modal = __webpack_require__(424); + var _Modal = __webpack_require__(425); var _Modal2 = _interopRequireDefault(_Modal); - var _FolderStore = __webpack_require__(419); + var _FolderStore = __webpack_require__(420); var _FolderStore2 = _interopRequireDefault(_FolderStore); - var _PhotoStore = __webpack_require__(416); + var _PhotoStore = __webpack_require__(417); var _PhotoStore2 = _interopRequireDefault(_PhotoStore); @@ -50469,74 +50085,6 @@ exports.default = _class; -/***/ }, -/* 421 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - var _ModalTableRow = __webpack_require__(422); - - var _ModalTableRow2 = _interopRequireDefault(_ModalTableRow); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - - var _class = function (_React$Component) { - _inherits(_class, _React$Component); - - function _class() { - _classCallCheck(this, _class); - - return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments)); - } - - _createClass(_class, [{ - key: 'niceDatetime', - value: function niceDatetime(date_time) { - if (date_time == undefined) return; - - var dt = date_time.split('.'); - return dt[0].replace('T', " "); - } - }, { - key: 'render', - value: function render() { - var data = this.props.data; - - return _react2.default.createElement( - 'table', - { className: 'table table-striped table-hover ' }, - _react2.default.createElement( - 'tbody', - null, - _react2.default.createElement(_ModalTableRow2.default, { column: 'Created Datetime', value: this.niceDatetime(data.date_created) }), - _react2.default.createElement(_ModalTableRow2.default, { column: 'Modified Datetime', value: this.niceDatetime(data.date_modified) }) - ) - ); - } - }]); - - return _class; - }(_react2.default.Component); - - exports.default = _class; - /***/ }, /* 422 */ /***/ function(module, exports, __webpack_require__) { @@ -50553,69 +50101,7 @@ var _react2 = _interopRequireDefault(_react); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - - var _class = function (_React$Component) { - _inherits(_class, _React$Component); - - function _class() { - _classCallCheck(this, _class); - - return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments)); - } - - _createClass(_class, [{ - key: 'render', - value: function render() { - var _props = this.props; - var column = _props.column; - var value = _props.value; - - return _react2.default.createElement( - 'tr', - null, - _react2.default.createElement( - 'th', - null, - column - ), - _react2.default.createElement( - 'td', - null, - value - ) - ); - } - }]); - - return _class; - }(_react2.default.Component); - - exports.default = _class; - -/***/ }, -/* 423 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - var _ModalTableRow = __webpack_require__(422); + var _ModalTableRow = __webpack_require__(423); var _ModalTableRow2 = _interopRequireDefault(_ModalTableRow); @@ -50640,7 +50126,135 @@ key: 'niceDatetime', value: function niceDatetime(date_time) { if (date_time == undefined) return; + var dt = date_time.split('.'); + return dt[0].replace('T', " "); + } + }, { + key: 'render', + value: function render() { + var data = this.props.data; + + return _react2.default.createElement( + 'table', + { className: 'table table-striped table-hover ' }, + _react2.default.createElement( + 'tbody', + null, + _react2.default.createElement(_ModalTableRow2.default, { column: 'Created Datetime', value: this.niceDatetime(data.date_created) }), + _react2.default.createElement(_ModalTableRow2.default, { column: 'Modified Datetime', value: this.niceDatetime(data.date_modified) }) + ) + ); + } + }]); + + return _class; + }(_react2.default.Component); + + exports.default = _class; + +/***/ }, +/* 423 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _react = __webpack_require__(1); + + var _react2 = _interopRequireDefault(_react); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var _class = function (_React$Component) { + _inherits(_class, _React$Component); + + function _class() { + _classCallCheck(this, _class); + + return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments)); + } + + _createClass(_class, [{ + key: 'render', + value: function render() { + var _props = this.props; + var column = _props.column; + var value = _props.value; + + return _react2.default.createElement( + 'tr', + null, + _react2.default.createElement( + 'th', + null, + column + ), + _react2.default.createElement( + 'td', + null, + value + ) + ); + } + }]); + + return _class; + }(_react2.default.Component); + + exports.default = _class; + +/***/ }, +/* 424 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _react = __webpack_require__(1); + + var _react2 = _interopRequireDefault(_react); + + var _ModalTableRow = __webpack_require__(423); + + var _ModalTableRow2 = _interopRequireDefault(_ModalTableRow); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var _class = function (_React$Component) { + _inherits(_class, _React$Component); + function _class() { + _classCallCheck(this, _class); + + return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments)); + } + + _createClass(_class, [{ + key: 'niceDatetime', + value: function niceDatetime(date_time) { + if (date_time == undefined) return; var dt = date_time.split('.'); return dt[0].replace('T', " "); } @@ -50672,7 +50286,7 @@ exports.default = _class; /***/ }, -/* 424 */ +/* 425 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -50762,7 +50376,7 @@ exports.default = _class; /***/ }, -/* 425 */ +/* 426 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -50777,11 +50391,11 @@ var _react2 = _interopRequireDefault(_react); - var _FolderForm = __webpack_require__(426); + var _FolderForm = __webpack_require__(453); var _FolderForm2 = _interopRequireDefault(_FolderForm); - var _Modal = __webpack_require__(424); + var _Modal = __webpack_require__(425); var _Modal2 = _interopRequireDefault(_Modal); @@ -50815,167 +50429,8 @@ exports.default = _class; /***/ }, -/* 426 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - var _reactLoader = __webpack_require__(394); - - var _reactLoader2 = _interopRequireDefault(_reactLoader); - - var _GenericAction = __webpack_require__(396); - - var action = _interopRequireWildcard(_GenericAction); - - var _ToastAction = __webpack_require__(401); - - var Toast = _interopRequireWildcard(_ToastAction); - - var _FolderStore = __webpack_require__(419); - - var _FolderStore2 = _interopRequireDefault(_FolderStore); - - function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - - var _class = function (_React$Component) { - _inherits(_class, _React$Component); - - function _class() { - _classCallCheck(this, _class); - - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this)); - - _this.detail = _this.detail.bind(_this); - _this.complete = _this.complete.bind(_this); - return _this; - } - - _createClass(_class, [{ - key: 'componentWillMount', - value: function componentWillMount() { - this.state = { loaded: true }; - _FolderStore2.default.on('newFolder', this.complete); - _FolderStore2.default.on('singleFolder', this.detail); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - _FolderStore2.default.removeListener('newFolder', this.complete); - _FolderStore2.default.removeListener('singleFolder', this.complete); - } - }, { - key: 'complete', - value: function complete(data) { - this.setState({ loaded: true }); - if (data.status == 201) { - Toast.ok('New folder created'); - $('#formModal').modal('toggle'); - _FolderStore2.default.getAll(); - } else if (data.status == 200) { - Toast.ok('Folder updated'); - $('#formModal').modal('toggle'); - _FolderStore2.default.getAll(); - } else { - Toast.error('Unable to complete request'); - } - document.location.href = '#/'; - } - }, { - key: 'detail', - value: function detail(data) { - if (data.status == 200) { - $('#folder_name').val(data.data.name); - $('#folder_id').val(data.data.id); - } - } - }, { - key: 'onSubmit', - value: function onSubmit(e) { - e.preventDefault(); - var dataArray = $(e.target).serializeArray(); - var form = new FormData(); - dataArray.forEach(function (data) { - form.append(data.name, data.value); - }); - var id = $('#folder_id').val(); - if (id) { - form.append('id', id); - } - - this.setState({ loaded: false }); - var actionType = id ? 'UPDATE_FOLDER' : 'NEW_FOLDER'; - action.perform(form, actionType); - } - }, { - key: 'render', - value: function render() { - - return _react2.default.createElement( - 'div', - { className: 'row' }, - _react2.default.createElement( - 'form', - { className: 'form-horizontal', method: 'post', onSubmit: this.onSubmit.bind(this) }, - _react2.default.createElement(_reactLoader2.default, { loaded: this.state.loaded, top: '73%' }), - _react2.default.createElement( - 'fieldset', - null, - _react2.default.createElement( - 'div', - { className: 'form-group col-md-10' }, - _react2.default.createElement( - 'label', - { className: 'control-label' }, - 'Folder Name' - ), - _react2.default.createElement( - 'div', - { className: 'input-group' }, - _react2.default.createElement('input', { type: 'text', className: 'form-control', id: 'folder_name', name: 'name', required: true }), - _react2.default.createElement( - 'span', - { className: 'input-group-btn' }, - _react2.default.createElement( - 'button', - { className: 'btn btn-default', type: 'submit', disabled: !this.state.loaded }, - 'Save' - ) - ) - ) - ) - ) - ), - _react2.default.createElement('input', { type: 'hidden', className: 'form-control', id: 'folder_id', name: 'folder_id' }) - ); - } - }]); - - return _class; - }(_react2.default.Component); - - exports.default = _class; - -/***/ }, -/* 427 */ +/* 427 */, +/* 428 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -50996,7 +50451,7 @@ var _reactLoader2 = _interopRequireDefault(_reactLoader); - var _Options = __webpack_require__(428); + var _Options = __webpack_require__(429); var _Options2 = _interopRequireDefault(_Options); @@ -51004,19 +50459,19 @@ var action = _interopRequireWildcard(_GenericAction); - var _FolderThumb = __webpack_require__(429); + var _FolderThumb = __webpack_require__(430); var _FolderThumb2 = _interopRequireDefault(_FolderThumb); - var _Empty = __webpack_require__(430); + var _Empty = __webpack_require__(431); var _Empty2 = _interopRequireDefault(_Empty); - var _FolderStore = __webpack_require__(419); + var _FolderStore = __webpack_require__(420); var _FolderStore2 = _interopRequireDefault(_FolderStore); - var _reactPaginate = __webpack_require__(431); + var _reactPaginate = __webpack_require__(432); var _reactPaginate2 = _interopRequireDefault(_reactPaginate); @@ -51112,7 +50567,7 @@ exports.default = _class; /***/ }, -/* 428 */ +/* 429 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -51127,11 +50582,11 @@ var _react2 = _interopRequireDefault(_react); - var _FolderStore = __webpack_require__(419); + var _FolderStore = __webpack_require__(420); var _FolderStore2 = _interopRequireDefault(_FolderStore); - var _PhotoStore = __webpack_require__(416); + var _PhotoStore = __webpack_require__(417); var _PhotoStore2 = _interopRequireDefault(_PhotoStore); @@ -51240,7 +50695,7 @@ exports.default = _class; /***/ }, -/* 429 */ +/* 430 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -51259,11 +50714,11 @@ var _reactLoader2 = _interopRequireDefault(_reactLoader); - var _Options = __webpack_require__(428); + var _Options = __webpack_require__(429); var _Options2 = _interopRequireDefault(_Options); - var _FolderStore = __webpack_require__(419); + var _FolderStore = __webpack_require__(420); var _FolderStore2 = _interopRequireDefault(_FolderStore); @@ -51372,7 +50827,7 @@ exports.default = _class; /***/ }, -/* 430 */ +/* 431 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -51433,12 +50888,12 @@ exports.default = _class; /***/ }, -/* 431 */ +/* 432 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var _PaginationBoxView = __webpack_require__(432); + var _PaginationBoxView = __webpack_require__(433); var _PaginationBoxView2 = _interopRequireDefault(_PaginationBoxView); @@ -51448,7 +50903,7 @@ //# sourceMappingURL=index.js.map /***/ }, -/* 432 */ +/* 433 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -51463,19 +50918,19 @@ var _react2 = _interopRequireDefault(_react); - var _classnames = __webpack_require__(433); + var _classnames = __webpack_require__(434); var _classnames2 = _interopRequireDefault(_classnames); - var _reactAddonsCreateFragment = __webpack_require__(434); + var _reactAddonsCreateFragment = __webpack_require__(435); var _reactAddonsCreateFragment2 = _interopRequireDefault(_reactAddonsCreateFragment); - var _PageView = __webpack_require__(436); + var _PageView = __webpack_require__(437); var _PageView2 = _interopRequireDefault(_PageView); - var _BreakView = __webpack_require__(437); + var _BreakView = __webpack_require__(438); var _BreakView2 = _interopRequireDefault(_BreakView); @@ -51697,7 +51152,7 @@ //# sourceMappingURL=PaginationBoxView.js.map /***/ }, -/* 433 */ +/* 434 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -51746,13 +51201,13 @@ /***/ }, -/* 434 */ +/* 435 */ /***/ function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(435).create; + module.exports = __webpack_require__(436).create; /***/ }, -/* 435 */ +/* 436 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -51825,7 +51280,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 436 */ +/* 437 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -51899,7 +51354,7 @@ //# sourceMappingURL=PageView.js.map /***/ }, -/* 437 */ +/* 438 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -51952,7 +51407,7 @@ //# sourceMappingURL=BreakView.js.map /***/ }, -/* 438 */ +/* 439 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -51967,15 +51422,15 @@ var _react2 = _interopRequireDefault(_react); - var _reactDropzone = __webpack_require__(439); + var _reactDropzone = __webpack_require__(440); var _reactDropzone2 = _interopRequireDefault(_reactDropzone); - var _FolderStore = __webpack_require__(419); + var _FolderStore = __webpack_require__(420); var _FolderStore2 = _interopRequireDefault(_FolderStore); - var _PhotoStore = __webpack_require__(416); + var _PhotoStore = __webpack_require__(417); var _PhotoStore2 = _interopRequireDefault(_PhotoStore); @@ -52012,14 +51467,12 @@ _this.detail = _this.detail.bind(_this); _this.uploadComplete = _this.uploadComplete.bind(_this); _this.onDrop = _this.onDrop.bind(_this); - return _this; } _createClass(_class, [{ key: 'componentWillMount', value: function componentWillMount() { - _FolderStore2.default.on('singleFolder', this.detail); _PhotoStore2.default.on('newPhoto', this.uploadComplete); var activeFolderId = this.props.params.id; @@ -52104,7 +51557,7 @@ exports.default = _class; /***/ }, -/* 439 */ +/* 440 */ /***/ function(module, exports, __webpack_require__) { (function webpackUniversalModuleDefinition(root, factory) { @@ -52496,7 +51949,7 @@ //# sourceMappingURL=index.js.map /***/ }, -/* 440 */ +/* 441 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -52517,23 +51970,23 @@ var _reactLoader2 = _interopRequireDefault(_reactLoader); - var _Options = __webpack_require__(428); + var _Options = __webpack_require__(429); var _Options2 = _interopRequireDefault(_Options); - var _PhotoStore = __webpack_require__(416); + var _PhotoStore = __webpack_require__(417); var _PhotoStore2 = _interopRequireDefault(_PhotoStore); - var _Empty = __webpack_require__(430); + var _Empty = __webpack_require__(431); var _Empty2 = _interopRequireDefault(_Empty); - var _reactPaginate = __webpack_require__(431); + var _reactPaginate = __webpack_require__(432); var _reactPaginate2 = _interopRequireDefault(_reactPaginate); - var _PhotoThumb = __webpack_require__(441); + var _PhotoThumb = __webpack_require__(442); var _PhotoThumb2 = _interopRequireDefault(_PhotoThumb); @@ -52634,7 +52087,7 @@ exports.default = _class; /***/ }, -/* 441 */ +/* 442 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -52653,11 +52106,11 @@ var _reactLoader2 = _interopRequireDefault(_reactLoader); - var _Options = __webpack_require__(428); + var _Options = __webpack_require__(429); var _Options2 = _interopRequireDefault(_Options); - var _PhotoStore = __webpack_require__(416); + var _PhotoStore = __webpack_require__(417); var _PhotoStore2 = _interopRequireDefault(_PhotoStore); @@ -52793,7 +52246,7 @@ exports.default = _class; /***/ }, -/* 442 */ +/* 443 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -52808,7 +52261,7 @@ var _react2 = _interopRequireDefault(_react); - var _PhotoStore = __webpack_require__(416); + var _PhotoStore = __webpack_require__(417); var _PhotoStore2 = _interopRequireDefault(_PhotoStore); @@ -52820,7 +52273,7 @@ var Toast = _interopRequireWildcard(_ToastAction); - var _Effects = __webpack_require__(443); + var _Effects = __webpack_require__(444); var _Effects2 = _interopRequireDefault(_Effects); @@ -53061,7 +52514,7 @@ exports.default = _class; /***/ }, -/* 443 */ +/* 444 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -53076,11 +52529,11 @@ var _react2 = _interopRequireDefault(_react); - var _RangeField = __webpack_require__(444); + var _RangeField = __webpack_require__(445); var _RangeField2 = _interopRequireDefault(_RangeField); - var _CheckboxField = __webpack_require__(445); + var _CheckboxField = __webpack_require__(446); var _CheckboxField2 = _interopRequireDefault(_CheckboxField); @@ -53219,7 +52672,7 @@ exports.default = _class; /***/ }, -/* 444 */ +/* 445 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -53292,7 +52745,7 @@ exports.default = _class; /***/ }, -/* 445 */ +/* 446 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -53363,7 +52816,8 @@ exports.default = _class; /***/ }, -/* 446 */ +/* 447 */, +/* 448 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -53378,23 +52832,61 @@ var _react2 = _interopRequireDefault(_react); - var _reactLoader = __webpack_require__(394); + var _Photos = __webpack_require__(441); - var _reactLoader2 = _interopRequireDefault(_reactLoader); + var _Photos2 = _interopRequireDefault(_Photos); - var _GenericAction = __webpack_require__(396); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - var action = _interopRequireWildcard(_GenericAction); + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - var _ToastAction = __webpack_require__(401); + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - var Toast = _interopRequireWildcard(_ToastAction); + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - var _FolderStore = __webpack_require__(419); + var _class = function (_React$Component) { + _inherits(_class, _React$Component); - var _FolderStore2 = _interopRequireDefault(_FolderStore); + function _class() { + _classCallCheck(this, _class); - function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments)); + } + + _createClass(_class, [{ + key: 'render', + value: function render() { + var id = this.props.params.id; + + $('#active-folder').val(id); + return _react2.default.createElement(_Photos2.default, { folder_id: id }); + } + }]); + + return _class; + }(_react2.default.Component); + + exports.default = _class; + +/***/ }, +/* 449 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _react = __webpack_require__(1); + + var _react2 = _interopRequireDefault(_react); + + var _Photos = __webpack_require__(441); + + var _Photos2 = _interopRequireDefault(_Photos); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -53410,117 +52902,14 @@ function _class() { _classCallCheck(this, _class); - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this)); - - _this.detail = _this.detail.bind(_this); - _this.complete = _this.complete.bind(_this); - return _this; + return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments)); } _createClass(_class, [{ - key: 'componentWillMount', - value: function componentWillMount() { - this.state = { - loaded: true, - id: this.props.params.id - }; - - if (this.props.params.id) { - _FolderStore2.default.get(this.props.params.id); - } - - _FolderStore2.default.on('newFolder', this.complete); - _FolderStore2.default.on('singleFolder', this.detail); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - _FolderStore2.default.removeListener('newFolder', this.complete); - } - }, { - key: 'complete', - value: function complete(data) { - this.setState({ loaded: true }); - if (data.status == 201) { - Toast.ok('New folder created'); - document.location.href = '#/'; - } else if (data.status == 200) { - Toast.ok('Folder updated'); - document.location.href = '#/'; - } else { - Toast.error('Unable to complete request'); - } - } - }, { - key: 'detail', - value: function detail(data) { - if (data.status == 200) { - $('#name').val(data.data.name); - } - } - }, { - key: 'onSubmit', - value: function onSubmit(e) { - e.preventDefault(); - var dataArray = $(e.target).serializeArray(); - var form = new FormData(); - dataArray.forEach(function (data) { - form.append(data.name, data.value); - }); - - if (this.props.params.id) { - form.append('id', this.props.params.id); - } - - this.setState({ loaded: false }); - var actionType = this.props.params.id ? 'UPDATE_FOLDER' : 'NEW_FOLDER'; - action.perform(form, actionType); - } - }, { key: 'render', value: function render() { - - return _react2.default.createElement( - 'div', - { className: 'col-md-12' }, - _react2.default.createElement( - 'h3', - null, - 'New Folder' - ), - _react2.default.createElement( - 'form', - { className: 'form-horizontal', method: 'post', onSubmit: this.onSubmit.bind(this) }, - _react2.default.createElement(_reactLoader2.default, { loaded: this.state.loaded, top: '73%' }), - _react2.default.createElement( - 'fieldset', - null, - _react2.default.createElement( - 'div', - { className: 'form-group col-md-6' }, - _react2.default.createElement( - 'label', - { className: 'control-label' }, - 'Folder Name' - ), - _react2.default.createElement( - 'div', - { className: 'input-group' }, - _react2.default.createElement('input', { type: 'text', className: 'form-control', id: 'name', name: 'name', required: true }), - _react2.default.createElement( - 'span', - { className: 'input-group-btn' }, - _react2.default.createElement( - 'button', - { className: 'btn btn-default', type: 'submit', disabled: !this.state.loaded }, - 'Save' - ) - ) - ) - ) - ) - ) - ); + $('#active-folder').val(0); + return _react2.default.createElement(_Photos2.default, { folder_id: 0 }); } }]); @@ -53530,7 +52919,7 @@ exports.default = _class; /***/ }, -/* 447 */ +/* 450 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -53545,9 +52934,9 @@ var _react2 = _interopRequireDefault(_react); - var _Photos = __webpack_require__(440); + var _FolderStore = __webpack_require__(420); - var _Photos2 = _interopRequireDefault(_Photos); + var _FolderStore2 = _interopRequireDefault(_FolderStore); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -53567,12 +52956,50 @@ } _createClass(_class, [{ + key: 'toggleModal', + value: function toggleModal(e) { + e.preventDefault(); + $('#folder_name').val(''); + $('#formModal .modal-title').html('New Folder'); + $('#folder_id').val(''); + $('#formModal').modal(); + } + }, { + key: 'getUpload', + value: function getUpload(e) { + e.preventDefault(); + var folder_id = $('#active-folder').val(); + document.location.href = "#/upload/" + folder_id; + } + }, { key: 'render', value: function render() { - var id = this.props.params.id; - - $('#active-folder').val(id); - return _react2.default.createElement(_Photos2.default, { folder_id: id }); + return _react2.default.createElement( + 'section', + null, + _react2.default.createElement( + 'div', + { className: 'row' }, + _react2.default.createElement( + 'div', + { className: 'col-lg-3 col-md-3 col-sm-4' }, + _react2.default.createElement( + 'a', + { href: '#', title: 'New Folder', className: 'btn toolbar', onClick: this.toggleModal }, + _react2.default.createElement('i', { className: 'mdi mdi-folder-plus' }), + _react2.default.createElement('br', null), + 'New Folder' + ), + _react2.default.createElement( + 'a', + { href: '#', title: 'Upload New File', className: 'btn toolbar', onClick: this.getUpload }, + _react2.default.createElement('i', { className: 'mdi mdi-upload' }), + _react2.default.createElement('br', null), + 'Upload Photo' + ) + ) + ) + ); } }]); @@ -53582,7 +53009,7 @@ exports.default = _class; /***/ }, -/* 448 */ +/* 451 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -53597,9 +53024,27 @@ var _react2 = _interopRequireDefault(_react); - var _Photos = __webpack_require__(440); + var _reactLoader = __webpack_require__(394); - var _Photos2 = _interopRequireDefault(_Photos); + var _reactLoader2 = _interopRequireDefault(_reactLoader); + + var _RegisterStore = __webpack_require__(412); + + var _RegisterStore2 = _interopRequireDefault(_RegisterStore); + + var _LoginStore = __webpack_require__(402); + + var _LoginStore2 = _interopRequireDefault(_LoginStore); + + var _GenericAction = __webpack_require__(396); + + var action = _interopRequireWildcard(_GenericAction); + + var _ToastAction = __webpack_require__(401); + + var Toast = _interopRequireWildcard(_ToastAction); + + function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -53615,14 +53060,158 @@ function _class() { _classCallCheck(this, _class); - return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments)); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this)); + + _this.loginComplete = _this.loginComplete.bind(_this); + _this.registerComplete = _this.registerComplete.bind(_this); + return _this; } _createClass(_class, [{ + key: 'componentWillMount', + value: function componentWillMount() { + this.state = { loaded: true, user: {} }; + _RegisterStore2.default.on('registerComplete', this.registerComplete); + _LoginStore2.default.on('loginComplete', this.loginComplete); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + _RegisterStore2.default.removeListener('registerComplete', this.registerComplete); + _LoginStore2.default.removeListener('loginComplete', this.loginComplete); + } + }, { + key: 'login', + value: function login(username, password) { + var form = new FormData(); + form.append('username', username); + form.append('password', password); + action.perform(form, 'LOGIN'); + } + }, { + key: 'registerComplete', + value: function registerComplete(data) { + this.setState({ loaded: true }); + if (data.status != 201) { + Toast.error(data.data.username[0]); + } else { + Toast.ok('Account created'); + this.login(this.state.user.username, this.state.user.password); + } + } + }, { + key: 'loginComplete', + value: function loginComplete(data) { + this.setState({ loaded: true }); + if (!data.data.login) { + Toast.error(data.data.message); + } else { + Toast.ok('Login Successful'); + document.location.href = '/'; + } + } + }, { + key: 'onSubmit', + value: function onSubmit(e) { + e.preventDefault(); + var dataArray = $(e.target).serializeArray(); + var dataObject = {}; + dataArray.forEach(function (data) { + dataObject[data.name] = data.value; + }); + this.setState({ user: dataObject }); + if (dataObject.password != dataObject.confirm_password) { + Toast.error('Password Mismatch'); + return false; + } + this.setState({ loaded: false }); + action.perform(dataObject, 'NEW_REGISTER'); + } + }, { key: 'render', value: function render() { - $('#active-folder').val(0); - return _react2.default.createElement(_Photos2.default, { folder_id: 0 }); + var label = this.props.label; + + return _react2.default.createElement( + 'form', + { className: 'form-horizontal', method: 'post', onSubmit: this.onSubmit.bind(this) }, + _react2.default.createElement( + 'fieldset', + null, + _react2.default.createElement(_reactLoader2.default, { loaded: this.state.loaded, top: '73%' }), + _react2.default.createElement( + 'div', + { className: 'form-group' }, + _react2.default.createElement( + 'label', + { htmlFor: 'username', className: 'col-lg-2 control-label', style: { display: label ? "block" : 'none' } }, + 'Username' + ), + _react2.default.createElement( + 'div', + { className: 'col-lg-12' }, + _react2.default.createElement('input', { type: 'text', className: 'form-control', id: 'username', placeholder: 'Username', name: 'username', required: true }) + ) + ), + _react2.default.createElement( + 'div', + { className: 'form-group' }, + _react2.default.createElement( + 'label', + { htmlFor: 'email', className: 'col-lg-2 control-label', style: { display: label ? "block" : 'none' } }, + 'Email' + ), + _react2.default.createElement( + 'div', + { className: 'col-lg-12' }, + _react2.default.createElement('input', { type: 'email', className: 'form-control', id: 'email', name: 'email', placeholder: 'Email', required: true }) + ) + ), + _react2.default.createElement( + 'div', + { className: 'form-group' }, + _react2.default.createElement( + 'label', + { htmlFor: 'password', className: 'col-lg-2 control-label', style: { display: label ? "block" : 'none' } }, + 'Password' + ), + _react2.default.createElement( + 'div', + { className: 'col-lg-12' }, + _react2.default.createElement('input', { type: 'password', className: 'form-control', id: 'password', name: 'password', placeholder: 'Password', required: true }) + ) + ), + _react2.default.createElement( + 'div', + { className: 'form-group' }, + _react2.default.createElement( + 'label', + { htmlFor: 'confirm_password', className: 'col-lg-2 control-label', style: { display: label ? "block" : 'none' } }, + 'Confirm Password' + ), + _react2.default.createElement( + 'div', + { className: 'col-lg-12' }, + _react2.default.createElement('input', { type: 'password', className: 'form-control', id: 'confirm_password', name: 'confirm_password', placeholder: 'Confirm Password', required: true }) + ) + ), + _react2.default.createElement( + 'div', + { className: 'form-group' }, + _react2.default.createElement( + 'div', + { className: 'col-lg-10 col-lg-offset-2' }, + _react2.default.createElement( + 'button', + { type: 'submit', className: 'btn btn-primary right', disabled: !this.state.loaded }, + ' ', + _react2.default.createElement('i', { className: 'mdi mdi-account-check' }), + ' Register' + ) + ) + ) + ) + ); } }]); @@ -53632,10 +53221,10 @@ exports.default = _class; /***/ }, -/* 449 */ +/* 452 */ /***/ function(module, exports, __webpack_require__) { - "use strict"; + 'use strict'; Object.defineProperty(exports, "__esModule", { value: true @@ -53647,6 +53236,24 @@ var _react2 = _interopRequireDefault(_react); + var _reactLoader = __webpack_require__(394); + + var _reactLoader2 = _interopRequireDefault(_reactLoader); + + var _GenericAction = __webpack_require__(396); + + var action = _interopRequireWildcard(_GenericAction); + + var _ToastAction = __webpack_require__(401); + + var Toast = _interopRequireWildcard(_ToastAction); + + var _LoginStore = __webpack_require__(402); + + var _LoginStore2 = _interopRequireDefault(_LoginStore); + + function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -53661,41 +53268,101 @@ function _class() { _classCallCheck(this, _class); - return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments)); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this)); + + _this.loginComplete = _this.loginComplete.bind(_this); + return _this; } _createClass(_class, [{ - key: "render", + key: 'componentWillMount', + value: function componentWillMount() { + this.state = { loaded: true }; + _LoginStore2.default.on('loginComplete', this.loginComplete); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + _LoginStore2.default.removeListener('loginComplete', this.loginComplete); + } + }, { + key: 'loginComplete', + value: function loginComplete(data) { + this.setState({ loaded: true }); + if (!data.data.login) { + Toast.error(data.data.message); + } else { + Toast.ok('Login Successful'); + document.location.href = '/'; + } + } + }, { + key: 'onSubmit', + value: function onSubmit(e) { + e.preventDefault(); + var dataArray = $(e.target).serializeArray(); + var form = new FormData(); + dataArray.forEach(function (data) { + form.append(data.name, data.value); + }); + this.setState({ loaded: false }); + action.perform(form, 'LOGIN'); + } + }, { + key: 'render', value: function render() { - var type = this.props.type; + var label = this.props.label; return _react2.default.createElement( - "div", - { className: "row" }, + 'form', + { className: 'form-horizontal', method: 'post', onSubmit: this.onSubmit.bind(this) }, + _react2.default.createElement(_reactLoader2.default, { loaded: this.state.loaded, top: '50%' }), _react2.default.createElement( - "h4", + 'fieldset', null, - "Social Connect" - ), - _react2.default.createElement( - "a", - { href: "/login/facebook/?next=/", className: "btn btn-primary " + type }, - " ", - _react2.default.createElement("i", { className: "mdi mdi-facebook-box", "aria-hidden": "true" }), - " Facebook" - ), - _react2.default.createElement( - "a", - { href: "/login/twitter/?next=/", className: "btn btn-info " + type }, - " ", - _react2.default.createElement("i", { className: "mdi mdi-twitter-box", "aria-hidden": "true" }), - " Twitter" - ), - _react2.default.createElement( - "a", - { href: "/login/google-oauth2/?next=/", className: "btn btn-danger " + type }, - _react2.default.createElement("i", { className: "mdi mdi-gmail", "aria-hidden": "true" }), - " Gmail" + _react2.default.createElement( + 'div', + { className: 'form-group' }, + _react2.default.createElement( + 'label', + { className: 'col-lg-2 control-label', style: { display: label ? "block" : 'none' } }, + 'Username' + ), + _react2.default.createElement( + 'div', + { className: 'col-lg-12' }, + _react2.default.createElement('input', { type: 'text', className: 'form-control', placeholder: 'Username', name: 'username', required: true }) + ) + ), + _react2.default.createElement( + 'div', + { className: 'form-group' }, + _react2.default.createElement( + 'label', + { htmlFor: 'password', className: 'col-lg-2 control-label', style: { display: label ? "block" : 'none' } }, + 'Password' + ), + _react2.default.createElement( + 'div', + { className: 'col-lg-12' }, + _react2.default.createElement('input', { type: 'password', className: 'form-control', id: 'password', name: 'password', placeholder: 'Password', required: true }) + ) + ), + _react2.default.createElement( + 'div', + { className: 'form-group' }, + _react2.default.createElement( + 'div', + { className: 'col-lg-10 col-lg-offset-2' }, + _react2.default.createElement( + 'button', + { type: 'submit', className: 'btn btn-primary right', disabled: !this.state.loaded }, + ' ', + _react2.default.createElement('i', { className: 'mdi mdi-login-variant' }), + ' Login' + ) + ) + ) ) ); } @@ -53706,5 +53373,165 @@ exports.default = _class; +/***/ }, +/* 453 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _react = __webpack_require__(1); + + var _react2 = _interopRequireDefault(_react); + + var _reactLoader = __webpack_require__(394); + + var _reactLoader2 = _interopRequireDefault(_reactLoader); + + var _GenericAction = __webpack_require__(396); + + var action = _interopRequireWildcard(_GenericAction); + + var _ToastAction = __webpack_require__(401); + + var Toast = _interopRequireWildcard(_ToastAction); + + var _FolderStore = __webpack_require__(420); + + var _FolderStore2 = _interopRequireDefault(_FolderStore); + + function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var _class = function (_React$Component) { + _inherits(_class, _React$Component); + + function _class() { + _classCallCheck(this, _class); + + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this)); + + _this.detail = _this.detail.bind(_this); + _this.complete = _this.complete.bind(_this); + return _this; + } + + _createClass(_class, [{ + key: 'componentWillMount', + value: function componentWillMount() { + this.state = { loaded: true }; + _FolderStore2.default.on('newFolder', this.complete); + _FolderStore2.default.on('singleFolder', this.detail); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + _FolderStore2.default.removeListener('newFolder', this.complete); + _FolderStore2.default.removeListener('singleFolder', this.complete); + } + }, { + key: 'complete', + value: function complete(data) { + this.setState({ loaded: true }); + if (data.status == 201) { + Toast.ok('New folder created'); + $('#formModal').modal('toggle'); + _FolderStore2.default.getAll(); + } else if (data.status == 200) { + Toast.ok('Folder updated'); + $('#formModal').modal('toggle'); + _FolderStore2.default.getAll(); + } else { + Toast.error('Unable to complete request'); + } + document.location.href = '#/'; + } + }, { + key: 'detail', + value: function detail(data) { + if (data.status == 200) { + $('#folder_name').val(data.data.name); + $('#folder_id').val(data.data.id); + } + } + }, { + key: 'onSubmit', + value: function onSubmit(e) { + e.preventDefault(); + var dataArray = $(e.target).serializeArray(); + var form = new FormData(); + dataArray.forEach(function (data) { + form.append(data.name, data.value); + }); + var id = $('#folder_id').val(); + if (id) { + form.append('id', id); + } + + this.setState({ loaded: false }); + var actionType = id ? 'UPDATE_FOLDER' : 'NEW_FOLDER'; + action.perform(form, actionType); + } + }, { + key: 'render', + value: function render() { + + return _react2.default.createElement( + 'div', + { className: 'row' }, + _react2.default.createElement( + 'form', + { className: 'form-horizontal', method: 'post', onSubmit: this.onSubmit.bind(this) }, + _react2.default.createElement(_reactLoader2.default, { loaded: this.state.loaded, top: '73%' }), + _react2.default.createElement( + 'fieldset', + null, + _react2.default.createElement( + 'div', + { className: 'form-group col-md-10' }, + _react2.default.createElement( + 'label', + { className: 'control-label' }, + 'Folder Name' + ), + _react2.default.createElement( + 'div', + { className: 'input-group' }, + _react2.default.createElement('input', { type: 'text', className: 'form-control', id: 'folder_name', name: 'name', required: true }), + _react2.default.createElement( + 'span', + { className: 'input-group-btn' }, + _react2.default.createElement( + 'button', + { className: 'btn btn-default', type: 'submit', disabled: !this.state.loaded }, + 'Save' + ) + ) + ) + ) + ) + ), + _react2.default.createElement('input', { type: 'hidden', className: 'form-control', id: 'folder_id', name: 'folder_id' }) + ); + } + }]); + + return _class; + }(_react2.default.Component); + + exports.default = _class; + /***/ } /******/ ]); \ No newline at end of file diff --git a/app/static/components/BackgroundSlider.jsx b/app/static/components/BackgroundSlider.jsx index e16fb00..bea988a 100644 --- a/app/static/components/BackgroundSlider.jsx +++ b/app/static/components/BackgroundSlider.jsx @@ -1,40 +1,40 @@ import React from 'react'; export default class extends React.Component { - constructor() { - super(); - - } - render() { return ( ); } diff --git a/app/static/components/EditImage.jsx b/app/static/components/EditImage.jsx index b347a04..88446f8 100644 --- a/app/static/components/EditImage.jsx +++ b/app/static/components/EditImage.jsx @@ -23,7 +23,6 @@ export default class extends React.Component { storePhoto.on('singlePhoto', this.detail); } - componentDidMount(){ $('.preview').magnificPopup({ type: 'image', @@ -42,7 +41,6 @@ export default class extends React.Component { }); } - componentWillUnmount(){ storePhoto.removeListener('updatePhoto', this.updateComplete); storePhoto.removeListener('previewPhoto', this.previewComplete); @@ -156,7 +154,6 @@ export default class extends React.Component { -
@@ -167,11 +164,9 @@ export default class extends React.Component {
-
-
diff --git a/app/static/components/Effects.jsx b/app/static/components/Effects.jsx index f254a46..0c2462e 100644 --- a/app/static/components/Effects.jsx +++ b/app/static/components/Effects.jsx @@ -40,7 +40,6 @@ export default class extends React.Component { -
@@ -51,11 +50,9 @@ export default class extends React.Component {
-

Overlay here

- ); diff --git a/app/static/components/Folder.jsx b/app/static/components/Folder.jsx deleted file mode 100644 index ccf04a9..0000000 --- a/app/static/components/Folder.jsx +++ /dev/null @@ -1,91 +0,0 @@ -import React from 'react'; -import Loader from 'react-loader'; -import * as action from './actions/GenericAction'; -import * as Toast from './actions/ToastAction'; -import store from './store/FolderStore'; - -export default class extends React.Component { - constructor(){ - super(); - this.detail = this.detail.bind(this); - this.complete = this.complete.bind(this); - } - - componentWillMount(){ - this.state = { - loaded: true, - id:this.props.params.id - }; - - if(this.props.params.id){ - store.get(this.props.params.id) - } - - store.on('newFolder', this.complete); - store.on('singleFolder', this.detail); - } - - componentWillUnmount(){ - store.removeListener('newFolder', this.complete); - } - - complete(data){ - this.setState({loaded:true}); - if(data.status == 201){ - Toast.ok('New folder created'); - document.location.href = '#/'; - }else if(data.status == 200){ - Toast.ok('Folder updated'); - document.location.href = '#/'; - } else { - Toast.error('Unable to complete request'); - } - } - - detail(data){ - if(data.status == 200){ - $('#name').val(data.data.name); - } - - } - - onSubmit(e){ - e.preventDefault(); - var dataArray = $(e.target).serializeArray(); - var form = new FormData(); - dataArray.forEach(function(data){ - form.append(data.name, data.value); - }); - - if(this.props.params.id){ - form.append('id', this.props.params.id); - } - - this.setState({loaded:false}); - var actionType = this.props.params.id ? 'UPDATE_FOLDER' : 'NEW_FOLDER'; - action.perform(form, actionType); - } - - render() { - - return ( -
-

New Folder

-
- -
-
- -
- - - - -
-
-
- -
- ); - } -} diff --git a/app/static/components/FolderInfo.jsx b/app/static/components/FolderInfo.jsx index 1569df2..bb5003a 100644 --- a/app/static/components/FolderInfo.jsx +++ b/app/static/components/FolderInfo.jsx @@ -5,10 +5,10 @@ export default class extends React.Component { niceDatetime(date_time){ if(date_time == undefined) return - var dt = date_time.split('.'); return dt[0].replace('T', " "); } + render() { var {data} = this.props; return ( diff --git a/app/static/components/FolderModal.jsx b/app/static/components/FolderModal.jsx index e3c17d5..0ff09f7 100644 --- a/app/static/components/FolderModal.jsx +++ b/app/static/components/FolderModal.jsx @@ -1,9 +1,8 @@ import React from 'react'; -import FolderForm from './FolderForm'; +import FolderForm from './forms/FolderForm'; import Modal from './Modal'; export default class extends React.Component { - render() { return ( } id={"formModal"} /> diff --git a/app/static/components/FolderThumb.jsx b/app/static/components/FolderThumb.jsx index 9f49c26..c5c74ce 100644 --- a/app/static/components/FolderThumb.jsx +++ b/app/static/components/FolderThumb.jsx @@ -6,7 +6,6 @@ import * as Toast from './actions/ToastAction'; export default class extends React.Component { - constructor(){ super(); this.deleteComplete = this.deleteComplete.bind(this); @@ -37,10 +36,8 @@ export default class extends React.Component { }else{ Toast.error('Unable to complete request'); } - } - render() { var {name, id, photos} = this.props; this.id = id; diff --git a/app/static/components/Folders.jsx b/app/static/components/Folders.jsx index 55d330a..8c080fe 100644 --- a/app/static/components/Folders.jsx +++ b/app/static/components/Folders.jsx @@ -10,7 +10,6 @@ import ReactPaginate from 'react-paginate'; export default class extends React.Component { constructor() { super(); - this.complete = this.complete.bind(this); } diff --git a/app/static/components/ListPhotos.jsx b/app/static/components/ListPhotos.jsx index 0268e30..1c440a5 100644 --- a/app/static/components/ListPhotos.jsx +++ b/app/static/components/ListPhotos.jsx @@ -7,7 +7,6 @@ import ReactPaginate from 'react-paginate'; import PhotoThumb from './PhotoThumb'; export default class extends React.Component { - getNext(data){ var page = data.selected + 1; store.getAll(page); @@ -26,7 +25,6 @@ export default class extends React.Component { store.removeListener('photos', this.listPhotos); } - listPhotos(data){ this.setState({ photos: data.data.results, diff --git a/app/static/components/Nav.jsx b/app/static/components/Nav.jsx index fb1e4f8..0346cbc 100644 --- a/app/static/components/Nav.jsx +++ b/app/static/components/Nav.jsx @@ -1,11 +1,6 @@ import React from 'react'; export default class extends React.Component { - constructor() { - super(); - - } - render() { const {user_active_class, user} = this.props; return ( @@ -20,7 +15,6 @@ export default class extends React.Component { diff --git a/app/static/components/PhotoInfo.jsx b/app/static/components/PhotoInfo.jsx index 52f6db6..f65c812 100644 --- a/app/static/components/PhotoInfo.jsx +++ b/app/static/components/PhotoInfo.jsx @@ -5,10 +5,10 @@ export default class extends React.Component { niceDatetime(date_time){ if(date_time == undefined) return - var dt = date_time.split('.'); return dt[0].replace('T', " "); } + render() { var {data} = this.props; return ( @@ -22,7 +22,6 @@ export default class extends React.Component { - ); } } diff --git a/app/static/components/PhotoThumb.jsx b/app/static/components/PhotoThumb.jsx index 35f7ad8..9290d7d 100644 --- a/app/static/components/PhotoThumb.jsx +++ b/app/static/components/PhotoThumb.jsx @@ -6,7 +6,6 @@ import * as Toast from './actions/ToastAction'; export default class extends React.Component { - constructor(){ super(); this.deleteComplete = this.deleteComplete.bind(this); @@ -38,7 +37,6 @@ export default class extends React.Component { }else{ Toast.error('Unable to complete request'); } - } getEffectUrl(url, effects){ @@ -80,7 +78,6 @@ export default class extends React.Component { {detail.title} -
{detail.title.length ? detail.title : 'Untiltled'}
diff --git a/app/static/components/Photos.jsx b/app/static/components/Photos.jsx index 2cb75cb..4c4890e 100644 --- a/app/static/components/Photos.jsx +++ b/app/static/components/Photos.jsx @@ -35,7 +35,6 @@ export default class extends React.Component { store.removeListener('photos', this.listPhotos); } - listPhotos(data){ this.setState({ photos: data.data.results, @@ -44,7 +43,6 @@ export default class extends React.Component { previous: data.data.previous, loaded: true }); - } render() { diff --git a/app/static/components/ShareSideNav.jsx b/app/static/components/ShareSideNav.jsx index eec65f2..5a593eb 100644 --- a/app/static/components/ShareSideNav.jsx +++ b/app/static/components/ShareSideNav.jsx @@ -1,5 +1,5 @@ import React from 'react'; -import RegisterForm from './RegisterForm'; +import RegisterForm from './forms/RegisterForm'; import SocialButtons from './SocialButtons'; export default class extends React.Component { diff --git a/app/static/components/SideNav.jsx b/app/static/components/SideNav.jsx index 32ba495..82907ed 100644 --- a/app/static/components/SideNav.jsx +++ b/app/static/components/SideNav.jsx @@ -28,11 +28,9 @@ export default class extends React.Component { All Folders - Uncategorized - All Photos diff --git a/app/static/components/Buttons.jsx b/app/static/components/SubNav.jsx similarity index 100% rename from app/static/components/Buttons.jsx rename to app/static/components/SubNav.jsx diff --git a/app/static/components/Upload.jsx b/app/static/components/Upload.jsx index 50cc0e4..f999e10 100644 --- a/app/static/components/Upload.jsx +++ b/app/static/components/Upload.jsx @@ -13,11 +13,9 @@ export default class extends React.Component { this.detail = this.detail.bind(this); this.uploadComplete = this.uploadComplete.bind(this); this.onDrop = this.onDrop.bind(this); - } componentWillMount(){ - storeFolder.on('singleFolder', this.detail); storePhoto.on('newPhoto', this.uploadComplete); var activeFolderId = this.props.params.id; @@ -61,8 +59,8 @@ export default class extends React.Component { render() { return (
- -
+ +

Upload folder: {this.state.folder}

Drag and drop an image here, or click to select image to upload.
diff --git a/app/static/components/FolderForm.jsx b/app/static/components/forms/FolderForm.jsx similarity index 94% rename from app/static/components/FolderForm.jsx rename to app/static/components/forms/FolderForm.jsx index 3e36813..7a37b77 100644 --- a/app/static/components/FolderForm.jsx +++ b/app/static/components/forms/FolderForm.jsx @@ -1,8 +1,8 @@ import React from 'react'; import Loader from 'react-loader'; -import * as action from './actions/GenericAction'; -import * as Toast from './actions/ToastAction'; -import store from './store/FolderStore'; +import * as action from '../actions/GenericAction'; +import * as Toast from '../actions/ToastAction'; +import store from '../store/FolderStore'; export default class extends React.Component { constructor(){ diff --git a/app/static/components/LoginForm.jsx b/app/static/components/forms/LoginForm.jsx similarity index 89% rename from app/static/components/LoginForm.jsx rename to app/static/components/forms/LoginForm.jsx index 8757a37..051a6be 100644 --- a/app/static/components/LoginForm.jsx +++ b/app/static/components/forms/LoginForm.jsx @@ -1,21 +1,22 @@ import React from 'react'; import Loader from 'react-loader'; -import * as action from './actions/GenericAction'; -import * as Toast from './actions/ToastAction'; -import loginStore from './store/LoginStore'; +import * as action from '../actions/GenericAction'; +import * as Toast from '../actions/ToastAction'; +import loginStore from '../store/LoginStore'; export default class extends React.Component { constructor() { super(); + this.loginComplete = this.loginComplete.bind(this); } componentWillMount(){ this.state = {loaded:true}; - loginStore.on('loginComplete', this.loginComplete.bind(this)); + loginStore.on('loginComplete', this.loginComplete); } componentWillUnmount(){ - loginStore.removeListener('loginComplete', this.loginComplete.bind(this)); + loginStore.removeListener('loginComplete', this.loginComplete); } loginComplete(data){ diff --git a/app/static/components/RegisterForm.jsx b/app/static/components/forms/RegisterForm.jsx similarity index 95% rename from app/static/components/RegisterForm.jsx rename to app/static/components/forms/RegisterForm.jsx index 52a7db9..e18f5a8 100644 --- a/app/static/components/RegisterForm.jsx +++ b/app/static/components/forms/RegisterForm.jsx @@ -1,9 +1,9 @@ import React from 'react'; import Loader from 'react-loader'; -import registerStore from './store/RegisterStore'; -import loginStore from './store/LoginStore'; -import * as action from './actions/GenericAction'; -import * as Toast from './actions/ToastAction'; +import registerStore from '../store/RegisterStore'; +import loginStore from '../store/LoginStore'; +import * as action from '../actions/GenericAction'; +import * as Toast from '../actions/ToastAction'; export default class extends React.Component { constructor() { @@ -70,7 +70,6 @@ export default class extends React.Component { const {label} = this.props; return (
-
diff --git a/app/static/components/pages/Dashboard.jsx b/app/static/components/pages/Dashboard.jsx index 5a6c3ea..0351f84 100644 --- a/app/static/components/pages/Dashboard.jsx +++ b/app/static/components/pages/Dashboard.jsx @@ -1,7 +1,7 @@ import React from 'react'; import Notifications from 'react-notify-toast'; import SideNav from '../SideNav'; -import Buttons from '../Buttons'; +import Subnav from '../Subnav'; import Nav from '../Nav'; import DetailModal from '../DetailModal'; import FolderModal from '../FolderModal'; @@ -19,7 +19,7 @@ export default class extends React.Component {