meteor-interface
Version:
Simple Content Management System to generate your administration interface for Meteor and React.
201 lines (160 loc) • 8.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _semanticUiReact = require("semantic-ui-react");
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _ErrorHandler = _interopRequireDefault(require("../../../utils/ErrorHandler"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
function _templateObject() {
var data = _taggedTemplateLiteral(["\n h5.header {\n letter-spacing:2px;\n margin-bottom: 0;\n }\n .button {\n transition: all 0.3s ease-in !important;\n }\n"]);
_templateObject = function _templateObject() {
return data;
};
return data;
}
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var inputs = [{
name: 'username',
label: 'Username',
type: 'text'
}, {
name: 'email',
label: 'Email address',
type: 'text'
}, {
name: 'password',
label: 'Password',
type: 'password'
}, {
name: 'checkPassword',
label: 'Repeat the password',
type: 'password'
}];
var UserCreator =
/*#__PURE__*/
function (_Component) {
_inherits(UserCreator, _Component);
function UserCreator(props) {
var _this;
_classCallCheck(this, UserCreator);
_this = _possibleConstructorReturn(this, _getPrototypeOf(UserCreator).call(this, props));
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "createUser", function () {
var user = _this.state.user;
var method = 'interface.users.update.roles';
_this.setState({
loading: true
});
var self = _assertThisInitialized(_assertThisInitialized(_this));
Meteor.call(method, {
newRoles: _this.state.roles,
userId: _this.state.userId
}, function (error) {
var result = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
self.setState({
loading: false
});
if (result) {
notify.success("User rights updated");
self.toggleModal();
} else if (error) {
notify.error(error.reason);
}
});
});
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "toggleModal", function () {
return _this.setState({
open: !_this.state.open
});
});
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "updateValue", function (e, _ref) {
var value = _ref.value,
name = _ref.name;
return _this.setState(_defineProperty({}, name, value));
});
var _user = props.user;
_this.state = {
roles: _user.roles,
userId: _user._id,
username: _user.username
};
return _this;
}
_createClass(UserCreator, [{
key: "render",
value: function render() {
var _this$state = this.state,
loading = _this$state.loading,
open = _this$state.open,
error = _this$state.error;
var config = this.props.config;
var roles = config.roles;
var rolesOptions = roles.map(function (role) {
return {
key: role,
text: role,
value: role
};
});
if (error) {
throw new Error(error.message);
}
return _react.default.createElement(_react.Fragment, null, _react.default.createElement(_semanticUiReact.Button, {
content: "EDIT",
size: "mini",
icon: "edit",
color: "blue",
labelPosition: "left",
onClick: this.toggleModal
}), _react.default.createElement(_semanticUiReact.Transition, {
visible: open
}, _react.default.createElement(_semanticUiReact.Modal, {
size: "small",
open: open
}, _react.default.createElement(_semanticUiReact.Icon, {
name: "close",
onClick: this.toggleModal
}), _react.default.createElement(_semanticUiReact.Header, {
icon: "user",
content: this.state.username + ' roles'
}), _react.default.createElement(_semanticUiReact.Modal.Content, null, _react.default.createElement(_semanticUiReact.Form, null, _react.default.createElement(_semanticUiReact.Form.Dropdown, {
placeholder: "Roles",
label: "Roles",
fluid: true,
multiple: true,
selection: true,
name: "roles",
value: this.state.roles,
onChange: this.updateValue,
options: rolesOptions
}))), _react.default.createElement(_semanticUiReact.Modal.Actions, null, _react.default.createElement(_semanticUiReact.Button, {
color: "red",
content: "Cancel",
loading: loading,
onClick: this.toggleModal
}), _react.default.createElement(_semanticUiReact.Button, {
color: "blue",
content: "Update",
loading: loading,
onClick: this.createUser
})))));
}
}]);
return UserCreator;
}(_react.Component);
var _default = (0, _ErrorHandler.default)(UserCreator);
exports.default = _default;
var UserCreatorStyle = _styledComponents.default.div(_templateObject());