Compare commits

...

7 Commits

BIN
Client

Binary file not shown.

@ -0,0 +1,5 @@
import nimview
nimview.add("echoAndModify", proc (value: string): string =
echo "From front-end: " & value
result = "'" & value & "' modified by back-end")
nimview.start("./web2/index.html")

@ -0,0 +1,5 @@
debug:
nim c -d:release --app:gui --run Client.nim
build:
nim js ./web2/app.nim

@ -1,4 +1,3 @@
# webportClient
web und desktop clients for webport
h1. BUIld web code. npm install && npm run build
Запуск:
<User>$>./Client

3362
app.js

File diff suppressed because one or more lines are too long

@ -0,0 +1,75 @@
include karax / prelude
#from sugar import =>
include login
import karax / vstyles
# alternatively: import karax / [kbase, vdom, kdom, vstyles, karax, karaxdsl, jdict, jstrutils, jjson]
#var lines: seq[kstring] = @[]
var menuItem = @["Главная", "Программы", "Оверлеи",
"Настройки", "Новости", "Сообщества",
"О проекте"]
var cat = @["Мессенджер", "Музыка", "Видео",
"Графика", "Браузер", "Офис", "Разработка",
"Web-Серверы", "Утилиты", "Игры", ]
proc menuAction(menuEntry: kstring): proc() =
result = proc() =
echo "clicked ", menuEntry
#[
proc progsList(tree: kstring): =
result = buldHtml(tdiv):
ul:
for c in tree.catalog:
li:
a:
text c
]#
#[
proc viewOverlayas(overlaysData: kstring): =
#for over in overlaysData:
echo over
]#
#[
proc news(newsData): =
result =buildHtml(tdiv):
for n in newsData:
tdiv():
ul
]#
#[
proc viewsettings(settings: kstring): =
for stg in settings:
echo stg
]#
#[
proc getdata (): =
#Полнчение данных из JSON\pkg.json и их парсенг
]#
proc createDom(): VNode =
result = buildHtml(tdiv):
#loginDialog()
tdiv:
nav(class = "navbar-desktop"):
for i in menuItem:
li():
a(href = "#", onclick = menuAction(i),
style = "font-size: 14px".toCss):
text i
tdiv():
h1(align = "center"):
text "Рекомендации"
hr(style = style(StyleAttr.background, "#CCC".cstring))
for c in cat:
tdiv(style = "color:red; min-width: 30vw; float:left; border: 1px dotted #CDC; border-radius: 10px".toCss):
h3(align = "center"):
text c
tdiv(style = "width: 100%; border: 1px solid #CDC; height:120px".toCss)
setRenderer createDom

@ -1,20 +0,0 @@
Copyright (c) 2013-2019 GitHub Inc.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

File diff suppressed because it is too large Load Diff

@ -1,42 +0,0 @@
{
"env": {
"development": {
"application/javascript": {
"presets": [
[
"env",
{
"targets": {
"electron": "8.2"
}
}
],
"react"
],
"plugins": [
"transform-async-to-generator"
],
"sourceMaps": "inline"
}
},
"production": {
"application/javascript": {
"presets": [
[
"env",
{
"targets": {
"electron": "8.2"
}
}
],
"react"
],
"plugins": [
"transform-async-to-generator"
],
"sourceMaps": "none"
}
}
}
}

@ -1,9 +0,0 @@
{
"extends": "eslint-config-airbnb",
"rules": {
"import/extensions": 0,
"import/no-extraneous-dependencies": 0,
"import/no-unresolved": [2, { "ignore": ["electron"] }],
"linebreak-style": 0
}
}

@ -1,9 +0,0 @@
'use strict';
var path = require('path');
var electronCompile = require('electron-compile');
var packageJson = require('./package.json');
let initScript = path.resolve(__dirname, packageJson.originalMain);
electronCompile.init(__dirname, initScript);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lczYtc2hpbS5qcyJdLCJuYW1lcyI6WyJwYXRoIiwicmVxdWlyZSIsImVsZWN0cm9uQ29tcGlsZSIsInBhY2thZ2VKc29uIiwiaW5pdFNjcmlwdCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJvcmlnaW5hbE1haW4iLCJpbml0Il0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUlBLE9BQU9DLFFBQVEsTUFBUixDQUFYO0FBQ0EsSUFBSUMsa0JBQWtCRCxRQUFRLGtCQUFSLENBQXRCOztBQUVBLElBQUlFLGNBQWNGLFFBQVEsZ0JBQVIsQ0FBbEI7QUFDQSxJQUFJRyxhQUFhSixLQUFLSyxPQUFMLENBQWFDLFNBQWIsRUFBd0JILFlBQVlJLFlBQXBDLENBQWpCO0FBQ0FMLGdCQUFnQk0sSUFBaEIsQ0FBcUJGLFNBQXJCLEVBQWdDRixVQUFoQyIsImZpbGUiOiJlczYtc2hpbS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xudmFyIGVsZWN0cm9uQ29tcGlsZSA9IHJlcXVpcmUoJ2VsZWN0cm9uLWNvbXBpbGUnKTtcblxudmFyIHBhY2thZ2VKc29uID0gcmVxdWlyZSgnLi9wYWNrYWdlLmpzb24nKTtcbmxldCBpbml0U2NyaXB0ID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgcGFja2FnZUpzb24ub3JpZ2luYWxNYWluKTtcbmVsZWN0cm9uQ29tcGlsZS5pbml0KF9fZGlybmFtZSwgaW5pdFNjcmlwdCk7XG4iXX0=

File diff suppressed because it is too large Load Diff

@ -1,35 +0,0 @@
{
"name": "webport-client",
"productName": "webport-client",
"version": "1.0.0",
"description": "My Electron application description",
"main": "es6-shim.js",
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make",
"publish": "electron-forge publish",
"lint": "eslint src --color"
},
"keywords": [],
"author": "serkus",
"license": "MIT",
"config": {},
"dependencies": {
"electron-compile": "^6.4.4",
"electron-squirrel-startup": "^1.0.0"
},
"devDependencies": {
"babel-plugin-transform-async-to-generator": "^6.24.1",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
"electron-forge": "^5.2.4",
"electron-prebuilt-compile": "8.2.0",
"eslint": "^3.19.0",
"eslint-config-airbnb": "^15.1.0",
"eslint-plugin-import": "^2.25.2",
"eslint-plugin-jsx-a11y": "^5.1.1",
"eslint-plugin-react": "^7.26.1"
},
"originalMain": "src/index.js"
}

@ -1,6 +0,0 @@
{
"main.css": "static/css/main.7da3c623.css",
"main.css.map": "static/css/main.7da3c623.css.map",
"main.js": "static/js/main.8250b8bd.js",
"main.js.map": "static/js/main.8250b8bd.js.map"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

@ -1 +0,0 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><title>React App</title><link href="/static/css/main.7da3c623.css" rel="stylesheet"></head><body><head><title>Webport</title></head><div id="root"></div><script type="text/javascript" src="/static/js/main.8250b8bd.js"></script></body></html>

@ -1,57 +0,0 @@
import { app, BrowserWindow } from 'electron';
// Handle creating/removing shortcuts on Windows when installing/uninstalling.
if (require('electron-squirrel-startup')) { // eslint-disable-line global-require
app.quit();
}
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
let mainWindow;
const createWindow = () => {
// Create the browser window.
mainWindow = new BrowserWindow({
width: 800,
height: 600,
});
// and load the index.html of the app.
mainWindow.loadURL(`file://${__dirname}/index.html`);
// Open the DevTools.
mainWindow.webContents.openDevTools();
// Emitted when the window is closed.
mainWindow.on('closed', () => {
// Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
mainWindow = null;
});
};
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on('ready', createWindow);
// Quit when all windows are closed.
app.on('window-all-closed', () => {
// On OS X it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on('activate', () => {
// On OS X it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (mainWindow === null) {
createWindow();
}
});
// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and import them here.

@ -1,15 +0,0 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "192x192",
"type": "image/png"
}
],
"start_url": "./index.html",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

@ -1 +0,0 @@
"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}var precacheConfig=[["/index.html","958c9528534c690b4fa8005b789ea390"],["/static/css/main.7da3c623.css","41ec98d9bb3b128f5bf64823fc424839"],["/static/js/main.8250b8bd.js","e7b13c7c1b2fa4e5b888128d074f6d05"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,/\.\w{8}\./);return[r.toString(),a]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));!t&&"navigate"===e.request.mode&&isPathWhitelisted([],e.request.url)&&(n=new URL("/index.html",self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save