From 0fff29e6cb5210945b4beecd743c32f151207391 Mon Sep 17 00:00:00 2001 From: Dominik Perpeet Date: Tue, 25 Jul 2017 11:38:43 +0200 Subject: [PATCH] Add more sample content to subscriptions page --- .eslintignore | 1 + .eslintrc.json | 24 +++++++++++++++++++++++ package.json | 3 +-- src/index.es6 | 39 ++++++++++++++++++++++++++++++++++++++ src/index.js | 3 ++- src/subscriptions-view.jsx | 39 ++++++++++++++++++++++++++++++++++++++ src/subscriptions.css | 19 +++++++++++++++++++ webpack.config.js | 10 +++++++++- 8 files changed, 134 insertions(+), 4 deletions(-) create mode 100644 .eslintignore create mode 100644 .eslintrc.json create mode 100644 src/index.es6 create mode 100644 src/subscriptions-view.jsx create mode 100644 src/subscriptions.css diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..8d87b1d --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +node_modules/* diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..71c0e41 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,24 @@ +{ + "env": { + "browser": true, + "es6": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaFeatures": { + "experimentalObjectRestSpread": true, + "jsx": true + }, + "sourceType": "module" + }, + "plugins": ["react"], + "rules": { + "react/jsx-uses-vars": "error", + "no-console": "off", + "no-undef": "error" + }, + "globals": { + "require": false, + "module": false + } +} diff --git a/package.json b/package.json index 988ade1..2b72ebb 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,6 @@ "webpack": "^2.6.1" }, "dependencies": { - "react": "^15.6.0", - "react-dom": "^15.6.0" + "react-lite": "0.15.30" } } diff --git a/src/index.es6 b/src/index.es6 new file mode 100644 index 0000000..5ce38ce --- /dev/null +++ b/src/index.es6 @@ -0,0 +1,39 @@ +/*jshint esversion: 6 */ +/* + * This file is part of Cockpit. + * + * Copyright (C) 2017 Red Hat, Inc. + * + * Cockpit is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * Cockpit is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Cockpit; If not, see . + */ +import React from 'react'; +import { Subscriptions } from './subscriptions-view.jsx'; + +function render() { + React.render( + React.createElement( + Subscriptions, + {title: "Sample Page"} + ), + document.getElementById('app') + ); +} + +/** + * Start the application. + */ +export function run() { + // do initial render + render(); +} diff --git a/src/index.js b/src/index.js index 7bdd5b0..3f840fd 100644 --- a/src/index.js +++ b/src/index.js @@ -20,5 +20,6 @@ var cockpit = require("cockpit"); document.addEventListener("DOMContentLoaded", function() { - console.log("subscription-manager loaded"); + var app = require("./index.es6"); + app.run(); }); diff --git a/src/subscriptions-view.jsx b/src/subscriptions-view.jsx new file mode 100644 index 0000000..c75876a --- /dev/null +++ b/src/subscriptions-view.jsx @@ -0,0 +1,39 @@ +/*jshint esversion: 6 */ +/* + * This file is part of Cockpit. + * + * Copyright (C) 2017 Red Hat, Inc. + * + * Cockpit is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * Cockpit is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Cockpit; If not, see . + */ +import React from 'react'; + +export class Subscriptions extends React.Component { + constructor() { + super(); + // a good place to initialize this.state + } + + render() { + let title = this.props.title?({this.props.title}):"Empty title"; + return ( +
+

{title}

+
+ Some content +
+
+ ); + } +} diff --git a/src/subscriptions.css b/src/subscriptions.css new file mode 100644 index 0000000..375e234 --- /dev/null +++ b/src/subscriptions.css @@ -0,0 +1,19 @@ +/* + * This file is part of Cockpit. + * + * Copyright (C) 2017 Red Hat, Inc. + * + * Cockpit is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * Cockpit is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Cockpit; If not, see . + */ + diff --git a/webpack.config.js b/webpack.config.js index 0365de9..19ad7d6 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -11,11 +11,13 @@ const srcdir = (process.env.SRCDIR || __dirname) + path.sep + "src"; const builddir = (process.env.SRCDIR || __dirname); const distdir = builddir + path.sep + "dist"; const section = process.env.ONLYDIR || null; +const nodedir = path.resolve((process.env.SRCDIR || __dirname), "node_modules"); var info = { entries: { "index": [ - "./index.js" + "./index.js", + "./subscriptions.css", ] }, files: [ @@ -78,6 +80,12 @@ module.exports = { entry: info.entries, externals: externals, output: output, + devtool: "source-map", + resolve: { + alias: { + "react$": path.resolve(nodedir, "react-lite/dist/react-lite.js") + } + }, module: { rules: [ {