Webclient: Layout rework

This commit is contained in:
MaMe82 2018-10-16 01:46:03 +02:00
parent 88e52fa65a
commit a875488942
7 changed files with 122 additions and 71 deletions

15
dist/www/index.html vendored
View File

@ -39,15 +39,25 @@
<div id="app">
<div id="loader">
<div style="height: 100vh" class="row justify-center items-center">
<q-spinner-puff color="primary" size="150" />
</div>
</div>
</div>
<script src="vuex.js"></script>
<script src="lib/vue.js"></script>
<script src="lib/vue-router.js"></script>
<script src="lib/umd/quasar.ie.polyfills.umd.min.js"></script>
<script src="lib/umd/quasar.mat.umd.min.js"></script>
<script>
var app = new Vue({
el: '#loader',
})
</script>
<script src="codemirror/lib/codemirror.js"></script>
<script src="codemirror/mode/javascript/javascript.js"></script>
<script src="codemirror/addon/edit/closebrackets.js"></script>
@ -57,7 +67,10 @@
Vue.use(window.VueCodemirror)
</script>
<script src="javascript-p4wnp1-hint.js"></script>
<script type="text/javascript" src="webapp.js"></script>
</body>
</html>

View File

@ -159,8 +159,8 @@ const (
<q-card-main>
<div class="row gutter-sm">
<div class="col-6 col-sm"><q-btn class="fit" color="primary" label="run" @click="SendAndRun()" icon="play_circle_filled" /></div>
<div class="col-6 col-sm"><q-btn class="fit" color="secondary" label="store" icon="save" @click="ShowStoreHIDScriptModal=true" /></div>
<div class="col-6 col-sm"><q-btn class="fit" color="warning" label="load & replace" icon="settings_backup_restore" @click="updateStoredHIDScriptsList(); ShowLoadHIDScriptModal=true"/></div>
<div class="col-6 col-sm"><q-btn class="fit" color="secondary" label="store" icon="cloud_upload" @click="ShowStoreHIDScriptModal=true" /></div>
<div class="col-6 col-sm"><q-btn class="fit" color="warning" label="load & replace" icon="cloud_download" @click="updateStoredHIDScriptsList(); ShowLoadHIDScriptModal=true"/></div>
<div class="col-6 col-sm"><q-btn class="fit" color="warning" label="load & prepend" icon="add_to_photos" @click="updateStoredHIDScriptsList(); ShowLoadHIDScriptPrependModal=true"/></div>
<div class="col-12 col-sm lg"><q-btn class="fit" color="negative" label="import DuckyScript" icon="accessible" @click="ShowRansom=true"/></div>
</div>

View File

@ -107,26 +107,33 @@ const (
<div class="row gutter-sm">
<div class="col-12 col-sm-6 col-md-5 col-xl-4">
<div class="col-12">
<q-card>
<q-card-title>
USB Gadget Settings
</q-card-title>
<q-card-main>
<div class="row gutter-sm">
<div class="col-6 col-sm""><q-btn class="fit" :loading="deploying" color="primary" @click="ApplyGadgetSettings" label="deploy" icon="launch"></q-btn></div>
<div class="col-6 col-sm""><q-btn class="fit" color="primary" @click="updateStoredSettingsList(); showDeployStoredModal=true" label="deploy stored" icon="settings_backup_restore"></q-btn></div>
<div class="col-6 col-sm""><q-btn class="fit" color="secondary" @click="UpdateFromDeployedGadgetSettings" label="reset" icon="autorenew"></q-btn></div>
<div class="col-6 col-sm""><q-btn class="fit" color="secondary" @click="showStoreModal=true" label="store" icon="cloud_upload"></q-btn></div>
<div class="col-12 col-sm"><q-btn class="fit" color="warning" @click="updateStoredSettingsList(); showLoadModal=true" label="load stored" icon="cloud_download"></q-btn></div>
</div>
</q-card-main>
</q-card>
</div>
<div class="col-12 col-lg">
<q-card class="full-height">
<q-card-title>
Generic USB Gadget Settings
</q-card-title>
<q-card-actions>
<q-btn :loading="deploying" color="primary" @click="ApplyGadgetSettings" label="deploy"></q-btn>
<q-btn color="secondary" @click="UpdateFromDeployedGadgetSettings" label="reset"></q-btn>
<q-btn color="primary" @click="showStoreModal=true" label="store"></q-btn>
<q-btn color="primary" @click="updateStoredSettingsList(); showLoadModal=true" label="load stored"></q-btn>
<q-btn color="primary" @click="updateStoredSettingsList(); showDeployStoredModal=true" label="deploy stored"></q-btn>
</q-card-actions>
<q-alert v-show="deploying" type="warning">If you're connected via Ethernet over USB, you will loose connection during deployment (deadline exceeded error)"</q-alert>
<q-list link>
<q-item-separator />
<q-item tag="label">
<q-item-side>
<q-toggle v-model="currentGadgetSettings.Enabled"></q-toggle>
@ -184,15 +191,9 @@ const (
</q-list>
</q-card>
</div>
<div class="col-12 col-sm-6 col-md-5 col-xl-4">
<div class="col-12 col-lg">
<q-card class="full-height">
<q-card-title>
USB Gadget Functions
</q-card-title>
<q-list link>
<q-item-separator />
<q-item tag="label">
<q-item-side>
<q-toggle v-model="currentGadgetSettings.Use_CDC_ECM"></q-toggle>

View File

@ -183,30 +183,47 @@ const templateWiFi = `
<modal-string-input v-model="showStoreModal" title="Store current WiFi Settings" @save="store($event)"></modal-string-input>
<div class="row gutter-sm">
<div class="col-lg-4">
<div class="col-12">
<q-card>
<q-card-title>
WiFi settings
</q-card-title>
<q-card-main>
<div class="row gutter-sm">
<div class="col-6 col-sm""><q-btn :loading="deploying" class="fit" :loading="deploying" color="primary" @click="deploy(settings)" label="deploy" icon="launch"></q-btn></div>
<div class="col-6 col-sm""><q-btn class="fit" color="primary" @click="updateStoredSettingsList(); showDeployStoredModal=true" label="deploy stored" icon="settings_backup_restore"></q-btn></div>
<div class="col-6 col-sm""><q-btn class="fit" color="secondary" @click="reset" label="reset" icon="autorenew"></q-btn></div>
<div class="col-6 col-sm""><q-btn class="fit" color="secondary" @click="showStoreModal=true" label="store" icon="cloud_upload"></q-btn></div>
<div class="col-12 col-sm"><q-btn class="fit" color="warning" @click="updateStoredSettingsList(); showLoadModal=true" label="load stored" icon="cloud_download"></q-btn></div>
</div>
</q-card-main>
</q-card>
</div>
<div class="col-12 col-lg">
<q-card class="full-height">
<q-card-title>
WiFi settings
Generic
</q-card-title>
<q-item>
<q-item-side :icon="wifiStateIcon" color="primary"></q-item-side>
<q-item-main>
<q-item-tile label>{{ wifiStateText }}</q-item-tile>
</q-item-main>
</q-item>
<q-card-actions>
<q-btn :loading="deploying" color="primary" @click="deploy(settings)" label="deploy"></q-btn>
<q-btn color="secondary" @click="reset" label="reset"></q-btn>
<q-btn color="primary" @click="showStoreModal=true" label="store"></q-btn>
<q-btn color="primary" @click="updateStoredSettingsList(); showLoadModal=true" label="load stored"></q-btn>
<q-btn color="primary" @click="updateStoredSettingsList(); showDeployStoredModal=true" label="deploy stored"></q-btn>
</q-card-actions>
<q-list link>
<q-item-separator />
<q-list-header>Generic</q-list-header>
<q-item>
<q-item-side :icon="wifiStateIcon" color="primary"></q-item-side>
<q-item-main>
<q-item-tile label>{{ wifiStateText }}</q-item-tile>
</q-item-main>
</q-item>
<q-item-separator />
<q-item tag="label">
<q-item-side>
<q-toggle v-model="enabled"></q-toggle>
@ -216,6 +233,7 @@ const templateWiFi = `
<q-item-tile sublabel>Enable/Disable WiFi</q-item-tile>
</q-item-main>
</q-item>
<!--
<q-item tag="label">
<q-item-side>
<q-toggle v-model="enableNexmon"></q-toggle>
@ -225,6 +243,16 @@ const templateWiFi = `
<q-item-tile sublabel>Enable/Disable modified nexmon firmware (needed for WiFi covert channel and KARMA)</q-item-tile>
</q-item-main>
</q-item>
-->
<q-item tag="label" disabled>
<q-item-side>
<q-toggle :value="true" :disable="true"></q-toggle>
</q-item-side>
<q-item-main>
<q-item-tile label>Nexmon</q-item-tile>
<q-item-tile sublabel>Enable/Disable modified nexmon firmware (needed for WiFi covert channel and KARMA)</q-item-tile>
</q-item-main>
</q-item>
<q-item tag="label">
<q-item-main>
<q-item-tile label>Regulatory domain</q-item-tile>
@ -248,7 +276,7 @@ const templateWiFi = `
</q-card>
</div>
<div class="col-lg-4" v-if="settings.mode == mode_sta || settings.mode == mode_failover">
<div class="col-12 col-lg" v-if="settings.mode == mode_sta || settings.mode == mode_failover">
<q-card class="full-height">
<q-card-title>
WiFi client settings
@ -288,7 +316,7 @@ const templateWiFi = `
</q-card>
</div>
<div class="col-lg-4" v-if="settings.mode == mode_ap || settings.mode == mode_failover">
<div class="col-12 col-lg" v-if="settings.mode == mode_ap || settings.mode == mode_failover">
<q-card class="full-height">
<q-card-title>
WiFi Access Point settings
@ -299,7 +327,6 @@ const templateWiFi = `
<template>
<q-item-separator />
<q-list-header>Access Point settings</q-list-header>
<q-item tag="label">
<q-item-main>
<q-item-tile label>Channel</q-item-tile>

View File

@ -289,20 +289,37 @@ const templateNetwork = `
<div class="row gutter-sm">
<div class="col-12">
<q-card>
<q-card-title>
Network Interface Settings
</q-card-title>
<q-card-main>
<div class="row gutter-sm">
<div class="col-6 col-sm""><q-btn class="fit" color="primary" @click="deploy(current)" label="deploy" icon="launch"></q-btn></div>
<div class="col-6 col-sm""><q-btn class="fit" color="primary" @click="updateStoredSettingsList(); showDeployStoredModal=true" label="deploy stored" icon="settings_backup_restore"></q-btn></div>
<!--
<div class="col-6 col-sm""><q-btn class="fit" color="secondary" @click="UpdateFromDeployedGadgetSettings" label="reset" icon="autorenew"></q-btn></div>
-->
<div class="col-6 col-sm""><q-btn class="fit" color="secondary" @click="showStoreModal=true" label="store" icon="cloud_upload"></q-btn></div>
<div class="col-6 col-sm"><q-btn class="fit" color="warning" @click="updateStoredSettingsList(); showLoadModal=true" label="load stored" icon="cloud_download"></q-btn></div>
</div>
</q-card-main>
</q-card>
</div>
<div class="col-12 col-xl-3">
<q-card class="full-height">
<q-card-title>
Network interface settings
Generic
</q-card-title>
<q-card-actions>
<q-btn color="primary" @click="deploy(current)" label="deploy"></q-btn>
<q-btn color="primary" @click="showStoreModal=true" label="store"></q-btn>
<q-btn color="primary" @click="updateStoredSettingsList(); showLoadModal=true" label="load stored"></q-btn>
<q-btn color="primary" @click="updateStoredSettingsList(); showDeployStoredModal=true" label="deploy stored"></q-btn>
</q-card-actions>
<q-list link>
<q-item-separator />
<q-item tag="label">
@ -320,8 +337,8 @@ const templateNetwork = `
</q-card>
</div>
<div class="col-12 col-xl-9">
<dhcp-config :interface="current" v-if="currentWithDhcp"></dhcp-config>
<div class="col-12 col-xl-9" v-if="currentWithDhcp">
<dhcp-config :interface="current"></dhcp-config>
</div>
</div>
</q-page>

View File

@ -842,20 +842,12 @@ const templateTriggerActionManager = `
TriggerAction Manager
</q-card-title>
<!--
<q-card-actions>
<q-btn label="add TriggerAction" @click="addTA" icon="note_add" />
<q-btn label="store template" @click="showStoreTASModal=true" icon="save" />
<q-btn label="load template" @click="updateStoredTriggerActionSetsList(); showReplaceTASModal=true" icon="settings_backup_restore" />
<q-btn label="insert template" @click="updateStoredTriggerActionSetsList(); showAddTASModal=true" icon="add_to_photos" />
</q-card-actions>
-->
<q-card-main>
<div class="row gutter-sm">
<div class="col-12 col-sm"><q-btn class="fit" color="primary" label="add one" @click="addTA" icon="note_add" /></div>
<div class="col-12 col-sm"><q-btn class="fit" color="secondary" label="store" @click="showStoreTASModal=true" icon="save" /></div>
<div class="col-12 col-sm"><q-btn class="fit" color="warning" label="load & replace" @click="updateStoredTriggerActionSetsList(); showReplaceTASModal=true" icon="settings_backup_restore" /></div>
<div class="col-12 col-sm"><q-btn class="fit" color="warning" label="load & add" @click="updateStoredTriggerActionSetsList(); showAddTASModal=true" icon="add_to_photos" /></div>
<div class="col-6 col-sm"><q-btn class="fit" color="primary" label="add one" @click="addTA" icon="add_box" /></div>
<div class="col-6 col-sm"><q-btn class="fit" color="secondary" label="store" @click="showStoreTASModal=true" icon="cloud_upload" /></div>
<div class="col-6 col-sm"><q-btn class="fit" color="warning" label="load & replace" @click="updateStoredTriggerActionSetsList(); showReplaceTASModal=true" icon="cloud_download" /></div>
<div class="col-6 col-sm"><q-btn class="fit" color="warning" label="load & add" @click="updateStoredTriggerActionSetsList(); showAddTASModal=true" icon="add_to_photos" /></div>
</div>
</q-card-main>

View File

@ -119,10 +119,11 @@ func main() {
const templateMainApp = `
<q-layout view="lHh Lpr fFf">
<q-layout-header>
<q-layout-header :reveal="!$q.platform.is.desktop">
<q-toolbar>
<q-toolbar-title>
P4wnP1 web-frontend
<span slot="subtitle" class="mobile-only">by MaMe82</span>
</q-toolbar-title>
</q-toolbar>
<q-tabs>
@ -137,7 +138,7 @@ const templateMainApp = `
</q-layout-header>
<q-layout-footer>
<q-layout-footer class="desktop-only">
<q-toolbar>
<q-toolbar-title>
<div slot="subtitle">by MaMe82</div>