openc3-tool-base 5.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +727 -0
  3. data/README.md +28 -0
  4. data/Rakefile +40 -0
  5. data/plugin.txt +2 -0
  6. data/tools/base/772bd60446e0b68b2dcb.png +0 -0
  7. data/tools/base/889.openc3-tool-base.js +2 -0
  8. data/tools/base/889.openc3-tool-base.js.map +1 -0
  9. data/tools/base/be1eae38c4af82057c4d.png +0 -0
  10. data/tools/base/ccbf309d19c2c9fc40f7.png +0 -0
  11. data/tools/base/css/materialdesignicons-6.1.95.min.css +3 -0
  12. data/tools/base/css/materialdesignicons.css.map +16 -0
  13. data/tools/base/css/roboto.css +338 -0
  14. data/tools/base/css/vuetify-v2.6.4.min.css +9 -0
  15. data/tools/base/favicon.ico +0 -0
  16. data/tools/base/fonts/materialdesignicons-webfont.eot +0 -0
  17. data/tools/base/fonts/materialdesignicons-webfont.ttf +0 -0
  18. data/tools/base/fonts/materialdesignicons-webfont.woff +0 -0
  19. data/tools/base/fonts/materialdesignicons-webfont.woff2 +0 -0
  20. data/tools/base/fonts/roboto/KFOkCnqEu92Fr1MmgVxEIzIFKw.woff2 +0 -0
  21. data/tools/base/fonts/roboto/KFOkCnqEu92Fr1MmgVxFIzIFKw.woff2 +0 -0
  22. data/tools/base/fonts/roboto/KFOkCnqEu92Fr1MmgVxGIzIFKw.woff2 +0 -0
  23. data/tools/base/fonts/roboto/KFOkCnqEu92Fr1MmgVxHIzIFKw.woff2 +0 -0
  24. data/tools/base/fonts/roboto/KFOkCnqEu92Fr1MmgVxIIzI.woff2 +0 -0
  25. data/tools/base/fonts/roboto/KFOkCnqEu92Fr1MmgVxLIzIFKw.woff2 +0 -0
  26. data/tools/base/fonts/roboto/KFOkCnqEu92Fr1MmgVxMIzIFKw.woff2 +0 -0
  27. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2 +0 -0
  28. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmEU9fBBc4.woff2 +0 -0
  29. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2 +0 -0
  30. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2 +0 -0
  31. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2 +0 -0
  32. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2 +0 -0
  33. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2 +0 -0
  34. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 +0 -0
  35. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 +0 -0
  36. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 +0 -0
  37. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 +0 -0
  38. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 +0 -0
  39. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 +0 -0
  40. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2 +0 -0
  41. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 +0 -0
  42. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 +0 -0
  43. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 +0 -0
  44. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 +0 -0
  45. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 +0 -0
  46. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 +0 -0
  47. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 +0 -0
  48. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmYUtfABc4EsA.woff2 +0 -0
  49. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmYUtfBBc4.woff2 +0 -0
  50. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmYUtfBxc4EsA.woff2 +0 -0
  51. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmYUtfCBc4EsA.woff2 +0 -0
  52. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmYUtfCRc4EsA.woff2 +0 -0
  53. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmYUtfChc4EsA.woff2 +0 -0
  54. data/tools/base/fonts/roboto/KFOlCnqEu92Fr1MmYUtfCxc4EsA.woff2 +0 -0
  55. data/tools/base/fonts/roboto/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 +0 -0
  56. data/tools/base/fonts/roboto/KFOmCnqEu92Fr1Mu4mxK.woff2 +0 -0
  57. data/tools/base/fonts/roboto/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 +0 -0
  58. data/tools/base/fonts/roboto/KFOmCnqEu92Fr1Mu72xKOzY.woff2 +0 -0
  59. data/tools/base/fonts/roboto/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 +0 -0
  60. data/tools/base/fonts/roboto/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 +0 -0
  61. data/tools/base/fonts/roboto/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 +0 -0
  62. data/tools/base/icons/astro.svg +83 -0
  63. data/tools/base/icons/status-dark.png +0 -0
  64. data/tools/base/icons/status-light.png +0 -0
  65. data/tools/base/img/astro-logo-small-dark.svg +13 -0
  66. data/tools/base/img/astro-logo-small-light.svg +13 -0
  67. data/tools/base/img/ground_error.gif +0 -0
  68. data/tools/base/img/ground_off.gif +0 -0
  69. data/tools/base/img/ground_on.gif +0 -0
  70. data/tools/base/img/icons.svg +110 -0
  71. data/tools/base/img/logo.png +0 -0
  72. data/tools/base/img/satellite.gif +0 -0
  73. data/tools/base/index-allow-http.html +20 -0
  74. data/tools/base/index.html +20 -0
  75. data/tools/base/js/amd.min.js +1 -0
  76. data/tools/base/js/amd.min.js.map +1 -0
  77. data/tools/base/js/auth.js +1 -0
  78. data/tools/base/js/authConstants.js +1 -0
  79. data/tools/base/js/import-map-overrides-2.4.1.js +1 -0
  80. data/tools/base/js/import-map-overrides.js.map +1 -0
  81. data/tools/base/js/named-register.min.js +1 -0
  82. data/tools/base/js/named-register.min.js.map +1 -0
  83. data/tools/base/js/regenerator-runtime-0.13.9.min.js +1 -0
  84. data/tools/base/js/single-spa-5.9.3.min.js +1 -0
  85. data/tools/base/js/single-spa.min.js.map +1 -0
  86. data/tools/base/js/system-6.12.1.min.js +1 -0
  87. data/tools/base/js/vue-2.6.14.min.js +2 -0
  88. data/tools/base/js/vue-2.6.14.min.js.LICENSE.txt +5 -0
  89. data/tools/base/js/vue-router-3.5.2.min.js +2 -0
  90. data/tools/base/js/vue-router-3.5.2.min.js.LICENSE.txt +5 -0
  91. data/tools/base/js/vuetify-v2.6.4.min.js +2 -0
  92. data/tools/base/js/vuetify-v2.6.4.min.js.LICENSE.txt +5 -0
  93. data/tools/base/js/vuex-3.6.2.min.js +2 -0
  94. data/tools/base/js/vuex-3.6.2.min.js.LICENSE.txt +5 -0
  95. data/tools/base/openc3-tool-base.js +2 -0
  96. data/tools/base/openc3-tool-base.js.map +1 -0
  97. metadata +141 -0
data/README.md ADDED
@@ -0,0 +1,28 @@
1
+ ## OpenC3 Tool Base Plugin
2
+
3
+ [Documentation](https://openc3.com)
4
+
5
+ This plugin provides the base OpenC3 user interface
6
+
7
+ ## Getting Started
8
+
9
+ 1. At the OpenC3 Admin - Plugins, upload the openc3-tool-base.gem file
10
+
11
+ ## Contributing
12
+
13
+ We encourage you to contribute to openc3_openc3!
14
+
15
+ Contributing is easy.
16
+
17
+ 1. Fork the project
18
+ 2. Create a feature branch
19
+ 3. Make your changes
20
+ 4. Submit a pull request
21
+
22
+ Before any contributions can be incorporated we do require all contributors to agree to a Contributor License Agreement.
23
+
24
+ This protects both you and us and you retain full rights to any code you write.
25
+
26
+ ## License
27
+
28
+ This OpenC3 plugin is released under the AGPLv3.0 with a few addendums. See [LICENSE.txt](LICENSE.txt)
data/Rakefile ADDED
@@ -0,0 +1,40 @@
1
+ # encoding: ascii-8bit
2
+
3
+ # Copyright 2022 Ball Aerospace & Technologies Corp.
4
+ # All Rights Reserved.
5
+ #
6
+ # This program is free software; you can modify and/or redistribute it
7
+ # under the terms of the GNU Affero General Public License
8
+ # as published by the Free Software Foundation; version 3 with
9
+ # attribution addendums as found in the LICENSE.txt
10
+ #
11
+ # This program is distributed in the hope that it will be useful,
12
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ # GNU Affero General Public License for more details.
15
+
16
+ # Modified by OpenC3, Inc.
17
+ # All changes Copyright 2022, OpenC3, Inc.
18
+ # All Rights Reserved
19
+
20
+ PLUGIN_NAME = Dir['*.gemspec'][0].split('.')[0..-2].join('.')
21
+
22
+ task :require_version do
23
+ if ENV['VERSION']
24
+ if ENV['VERSION'] =~ /-/
25
+ # Add Timestamp to prerelease versions
26
+ ENV['VERSION'] = ENV['VERSION'] + "." + Time.now.utc.strftime("%Y%m%d%H%M%S")
27
+ end
28
+ else
29
+ puts "VERSION is required: rake <task> VERSION=X.X.X"
30
+ exit 1
31
+ end
32
+ end
33
+
34
+ task :build => [:require_version] do
35
+ _, platform, *_ = RUBY_PLATFORM.split("-")
36
+ if platform == 'mswin32' or platform == 'mingw32'
37
+ puts "Warning: Building gem on Windows will lose file permissions"
38
+ end
39
+ system("gem build #{PLUGIN_NAME}")
40
+ end
data/plugin.txt ADDED
@@ -0,0 +1,2 @@
1
+ TOOL base Base
2
+ SHOWN false
Binary file
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunktool_base=self.webpackChunktool_base||[]).push([[889],{4889:function(n,e,t){t.r(e),t.d(e,{default:function(){return A}});var s=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("v-card",[t("v-card-title",[n._v(" Login ")]),n._v(" "),t("v-card-subtitle",[n._v("\n "+n._s(n.isSet?"Enter the":"Create a")+"\n password to begin using OpenC3\n ")]),n._v(" "),t("v-card-text",[t("v-form",[n.isSet&&n.reset?t("v-text-field",{attrs:{type:"password",label:"Old Password"},model:{value:n.oldPassword,callback:function(e){n.oldPassword=e},expression:"oldPassword"}}):n._e(),n._v(" "),t("v-text-field",{attrs:{type:"password",label:(!n.isSet||n.reset?"New ":"")+"Password","data-test":"new-password"},model:{value:n.password,callback:function(e){n.password=e},expression:"password"}}),n._v(" "),n.reset?t("v-text-field",{attrs:{rules:[n.rules.matchPassword],type:"password",label:"Confirm Password","data-test":"confirm-password"},model:{value:n.confirmPassword,callback:function(e){n.confirmPassword=e},expression:"confirmPassword"}}):n._e(),n._v(" "),n.reset?t("v-btn",{attrs:{type:"submit",large:"",color:n.isSet?"warn":"success",disabled:!n.formValid,"data-test":"set-password"},on:{click:function(e){return e.preventDefault(),n.setPassword.apply(null,arguments)}}},[n._v("\n Set\n ")]):t("v-container",[t("v-row",[t("v-btn",{attrs:{type:"submit",large:"",color:"success",disabled:!n.formValid},on:{click:function(e){return e.preventDefault(),n.verifyPassword.apply(null,arguments)}}},[n._v("\n Login\n ")]),n._v(" "),t("v-spacer"),n._v(" "),t("v-btn",{attrs:{text:"",small:""},on:{click:n.showReset}},[n._v(" Change Password ")])],1)],1)],1)],1),n._v(" "),t("v-alert",{attrs:{type:n.alertType,dismissible:""},model:{value:n.showAlert,callback:function(e){n.showAlert=e},expression:"showAlert"}},[n._v("\n "+n._s(n.alert)+"\n ")])],1)};s._withStripped=!0;var o=t(4942),l=t(9554);function i(){var n="/openc3/plugins/openc3-tool-base/src/components/Login.vue",e=new Function("return this")(),t="__coverage__",s=e[t]||(e[t]={});s[n]&&"844878d12f93a6fc7f8693a102ad4bb7d249fac7"===s[n].hash||(s[n]={path:"/openc3/plugins/openc3-tool-base/src/components/Login.vue",statementMap:{0:{start:{line:88,column:4},end:{line:97,column:5}},1:{start:{line:101,column:6},end:{line:104,column:7}},2:{start:{line:107,column:6},end:{line:110,column:7}},3:{start:{line:109,column:10},end:{line:109,column:74}},4:{start:{line:113,column:6},end:{line:125,column:7}},5:{start:{line:114,column:8},end:{line:122,column:9}},6:{start:{line:115,column:10},end:{line:115,column:74}},7:{start:{line:117,column:10},end:{line:121,column:11}},8:{start:{line:124,column:8},end:{line:124,column:30}},9:{start:{line:129,column:4},end:{line:134,column:6}},10:{start:{line:130,column:6},end:{line:130,column:41}},11:{start:{line:131,column:6},end:{line:133,column:7}},12:{start:{line:132,column:8},end:{line:132,column:25}},13:{start:{line:138,column:6},end:{line:138,column:23}},14:{start:{line:141,column:6},end:{line:141,column:46}},15:{start:{line:142,column:23},end:{line:144,column:7}},16:{start:{line:145,column:6},end:{line:145,column:50}},17:{start:{line:148,column:6},end:{line:148,column:28}},18:{start:{line:149,column:6},end:{line:162,column:8}},19:{start:{line:155,column:8},end:{line:161,column:9}},20:{start:{line:156,column:10},end:{line:156,column:22}},21:{start:{line:158,column:10},end:{line:158,column:43}},22:{start:{line:159,column:10},end:{line:159,column:36}},23:{start:{line:160,column:10},end:{line:160,column:31}},24:{start:{line:165,column:6},end:{line:165,column:28}},25:{start:{line:166,column:6},end:{line:172,column:25}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:87,column:2},end:{line:87,column:3}},loc:{start:{line:87,column:9},end:{line:98,column:3}},line:87},1:{name:"(anonymous_1)",decl:{start:{line:100,column:13},end:{line:100,column:14}},loc:{start:{line:100,column:25},end:{line:105,column:5}},line:100},2:{name:"(anonymous_2)",decl:{start:{line:106,column:11},end:{line:106,column:12}},loc:{start:{line:106,column:23},end:{line:111,column:5}},line:106},3:{name:"(anonymous_3)",decl:{start:{line:108,column:23},end:{line:108,column:24}},loc:{start:{line:109,column:10},end:{line:109,column:74}},line:109},4:{name:"(anonymous_4)",decl:{start:{line:112,column:15},end:{line:112,column:16}},loc:{start:{line:112,column:27},end:{line:126,column:5}},line:112},5:{name:"(anonymous_5)",decl:{start:{line:128,column:11},end:{line:128,column:12}},loc:{start:{line:128,column:23},end:{line:135,column:3}},line:128},6:{name:"(anonymous_6)",decl:{start:{line:129,column:64},end:{line:129,column:65}},loc:{start:{line:129,column:78},end:{line:134,column:5}},line:129},7:{name:"(anonymous_7)",decl:{start:{line:137,column:15},end:{line:137,column:16}},loc:{start:{line:137,column:27},end:{line:139,column:5}},line:137},8:{name:"(anonymous_8)",decl:{start:{line:140,column:11},end:{line:140,column:12}},loc:{start:{line:140,column:23},end:{line:146,column:5}},line:140},9:{name:"(anonymous_9)",decl:{start:{line:147,column:20},end:{line:147,column:21}},loc:{start:{line:147,column:32},end:{line:163,column:5}},line:147},10:{name:"(anonymous_10)",decl:{start:{line:154,column:14},end:{line:154,column:15}},loc:{start:{line:154,column:28},end:{line:162,column:7}},line:154},11:{name:"(anonymous_11)",decl:{start:{line:164,column:17},end:{line:164,column:18}},loc:{start:{line:164,column:29},end:{line:173,column:5}},line:164}},branchMap:{0:{loc:{start:{line:109,column:10},end:{line:109,column:74}},type:"binary-expr",locations:[{start:{line:109,column:10},end:{line:109,column:48}},{start:{line:109,column:52},end:{line:109,column:74}}],line:109},1:{loc:{start:{line:113,column:6},end:{line:125,column:7}},type:"if",locations:[{start:{line:113,column:6},end:{line:125,column:7}},{start:{line:123,column:13},end:{line:125,column:7}}],line:113},2:{loc:{start:{line:114,column:8},end:{line:122,column:9}},type:"if",locations:[{start:{line:114,column:8},end:{line:122,column:9}},{start:{line:116,column:15},end:{line:122,column:9}}],line:114},3:{loc:{start:{line:115,column:17},end:{line:115,column:74}},type:"binary-expr",locations:[{start:{line:115,column:17},end:{line:115,column:32}},{start:{line:115,column:36},end:{line:115,column:74}}],line:115},4:{loc:{start:{line:118,column:12},end:{line:120,column:50}},type:"binary-expr",locations:[{start:{line:118,column:12},end:{line:118,column:30}},{start:{line:119,column:12},end:{line:119,column:27}},{start:{line:120,column:12},end:{line:120,column:50}}],line:118},5:{loc:{start:{line:131,column:6},end:{line:133,column:7}},type:"if",locations:[{start:{line:131,column:6},end:{line:133,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:131},6:{loc:{start:{line:145,column:34},end:{line:145,column:49}},type:"binary-expr",locations:[{start:{line:145,column:34},end:{line:145,column:42}},{start:{line:145,column:46},end:{line:145,column:49}}],line:145},7:{loc:{start:{line:155,column:8},end:{line:161,column:9}},type:"if",locations:[{start:{line:155,column:8},end:{line:161,column:9}},{start:{line:157,column:15},end:{line:161,column:9}}],line:155}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0],4:[0,0,0],5:[0,0],6:[0,0],7:[0,0]},inputSourceMap:{version:3,sources:["Login.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmFA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"Login.vue",sourceRoot:"src/components",sourcesContent:['\x3c!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n--\x3e\n\n<template>\n <v-card>\n <v-card-title> Login </v-card-title>\n <v-card-subtitle>\n {{ isSet ? \'Enter the\' : \'Create a\' }}\n password to begin using OpenC3\n </v-card-subtitle>\n <v-card-text>\n <v-form>\n <v-text-field\n v-if="isSet && reset"\n v-model="oldPassword"\n type="password"\n label="Old Password"\n />\n <v-text-field\n v-model="password"\n type="password"\n :label="`${!isSet || reset ? \'New \' : \'\'}Password`"\n data-test="new-password"\n />\n <v-text-field\n v-if="reset"\n v-model="confirmPassword"\n :rules="[rules.matchPassword]"\n type="password"\n label="Confirm Password"\n data-test="confirm-password"\n />\n <v-btn\n v-if="reset"\n type="submit"\n @click.prevent="setPassword"\n large\n :color="isSet ? \'warn\' : \'success\'"\n :disabled="!formValid"\n data-test="set-password"\n >\n Set\n </v-btn>\n <v-container v-else>\n <v-row>\n <v-btn\n type="submit"\n @click.prevent="verifyPassword"\n large\n color="success"\n :disabled="!formValid"\n >\n Login\n </v-btn>\n <v-spacer />\n <v-btn text small @click="showReset"> Change Password </v-btn>\n </v-row>\n </v-container>\n </v-form>\n </v-card-text>\n <v-alert :type="alertType" v-model="showAlert" dismissible>\n {{ alert }}\n </v-alert>\n </v-card>\n</template>\n\n<script>\nimport Api from \'../../../packages/openc3-tool-common/src/services/api\'\n\nexport default {\n data() {\n return {\n isSet: true,\n password: \'\',\n confirmPassword: \'\',\n oldPassword: \'\',\n reset: false, // setting a password for the first time, or changing to a new password\n alert: \'\',\n alertType: \'success\',\n showAlert: false,\n }\n },\n computed: {\n options: function () {\n return {\n noAuth: true,\n noScope: true, // lol\n }\n },\n rules: function () {\n return {\n matchPassword: () =>\n this.password === this.confirmPassword || \'Passwords must match\',\n }\n },\n formValid: function () {\n if (this.reset) {\n if (!this.isSet) {\n return !!this.password && this.password === this.confirmPassword\n } else {\n return (\n !!this.oldPassword &&\n !!this.password &&\n this.password === this.confirmPassword\n )\n }\n } else {\n return !!this.password\n }\n },\n },\n created: function () {\n Api.get(\'/openc3-api/auth/token-exists\', this.options).then((response) => {\n this.isSet = !!response.data.result\n if (!this.isSet) {\n this.reset = true\n }\n })\n },\n methods: {\n showReset: function () {\n this.reset = true\n },\n login: function () {\n localStorage.openc3Token = this.password\n const redirect = new URLSearchParams(window.location.search).get(\n \'redirect\'\n )\n window.location = decodeURI(redirect || \'/\')\n },\n verifyPassword: function () {\n this.showAlert = false\n Api.post(\'/openc3-api/auth/verify\', {\n data: {\n token: this.password,\n },\n ...this.options,\n }).then((response) => {\n if (response.data.result) {\n this.login()\n } else {\n this.alert = \'Incorrect password\'\n this.alertType = \'warning\'\n this.showAlert = true\n }\n })\n },\n setPassword: function () {\n this.showAlert = false\n Api.post(\'/openc3-api/auth/set\', {\n data: {\n old_token: this.oldPassword,\n token: this.password,\n },\n ...this.options,\n }).then(this.login)\n },\n },\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"844878d12f93a6fc7f8693a102ad4bb7d249fac7"});var o=s[n];return i=function(){return o},o}function r(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,s)}return t}function a(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?r(Object(t),!0).forEach((function(e){(0,o.Z)(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}i();var c={data:function(){return i().f[0]++,i().s[0]++,{isSet:!0,password:"",confirmPassword:"",oldPassword:"",reset:!1,alert:"",alertType:"success",showAlert:!1}},computed:{options:function(){return i().f[1]++,i().s[1]++,{noAuth:!0,noScope:!0}},rules:function(){var n=this;return i().f[2]++,i().s[2]++,{matchPassword:function(){return i().f[3]++,i().s[3]++,i().b[0][0]++,n.password===n.confirmPassword||(i().b[0][1]++,"Passwords must match")}}},formValid:function(){return i().f[4]++,i().s[4]++,this.reset?(i().b[1][0]++,i().s[5]++,this.isSet?(i().b[2][1]++,i().s[7]++,i().b[4][0]++,!(!this.oldPassword||(i().b[4][1]++,!this.password)||(i().b[4][2]++,this.password!==this.confirmPassword))):(i().b[2][0]++,i().s[6]++,i().b[3][0]++,!!this.password&&(i().b[3][1]++,this.password===this.confirmPassword))):(i().b[1][1]++,i().s[8]++,!!this.password)}},created:function(){var n=this;i().f[5]++,i().s[9]++,l.Z.get("/openc3-api/auth/token-exists",this.options).then((function(e){i().f[6]++,i().s[10]++,n.isSet=!!e.data.result,i().s[11]++,n.isSet?i().b[5][1]++:(i().b[5][0]++,i().s[12]++,n.reset=!0)}))},methods:{showReset:function(){i().f[7]++,i().s[13]++,this.reset=!0},login:function(){i().f[8]++,i().s[14]++,localStorage.openc3Token=this.password;var n=(i().s[15]++,new URLSearchParams(window.location.search).get("redirect"));i().s[16]++,window.location=decodeURI((i().b[6][0]++,n||(i().b[6][1]++,"/")))},verifyPassword:function(){var n=this;i().f[9]++,i().s[17]++,this.showAlert=!1,i().s[18]++,l.Z.post("/openc3-api/auth/verify",a({data:{token:this.password}},this.options)).then((function(e){i().f[10]++,i().s[19]++,e.data.result?(i().b[7][0]++,i().s[20]++,n.login()):(i().b[7][1]++,i().s[21]++,n.alert="Incorrect password",i().s[22]++,n.alertType="warning",i().s[23]++,n.showAlert=!0)}))},setPassword:function(){i().f[11]++,i().s[24]++,this.showAlert=!1,i().s[25]++,l.Z.post("/openc3-api/auth/set",a({data:{old_token:this.oldPassword,token:this.password}},this.options)).then(this.login)}}},u=(0,t(1900).Z)(c,s,[],!1,null,null,null);u.options.__file="src/components/Login.vue";var A=u.exports}}]);
2
+ //# sourceMappingURL=889.openc3-tool-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"889.openc3-tool-base.js","mappings":"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","sources":["webpack://tool-base/./src/components/Login.vue?a11d","webpack://tool-base/src/components/Login.vue","webpack://tool-base/./src/components/Login.vue?e756","webpack://tool-base/./src/components/Login.vue"],"sourcesContent":["var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-card\",\n [\n _c(\"v-card-title\", [_vm._v(\" Login \")]),\n _vm._v(\" \"),\n _c(\"v-card-subtitle\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.isSet ? \"Enter the\" : \"Create a\") +\n \"\\n password to begin using OpenC3\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _c(\n \"v-form\",\n [\n _vm.isSet && _vm.reset\n ? _c(\"v-text-field\", {\n attrs: { type: \"password\", label: \"Old Password\" },\n model: {\n value: _vm.oldPassword,\n callback: function ($$v) {\n _vm.oldPassword = $$v\n },\n expression: \"oldPassword\",\n },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"v-text-field\", {\n attrs: {\n type: \"password\",\n label: (!_vm.isSet || _vm.reset ? \"New \" : \"\") + \"Password\",\n \"data-test\": \"new-password\",\n },\n model: {\n value: _vm.password,\n callback: function ($$v) {\n _vm.password = $$v\n },\n expression: \"password\",\n },\n }),\n _vm._v(\" \"),\n _vm.reset\n ? _c(\"v-text-field\", {\n attrs: {\n rules: [_vm.rules.matchPassword],\n type: \"password\",\n label: \"Confirm Password\",\n \"data-test\": \"confirm-password\",\n },\n model: {\n value: _vm.confirmPassword,\n callback: function ($$v) {\n _vm.confirmPassword = $$v\n },\n expression: \"confirmPassword\",\n },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.reset\n ? _c(\n \"v-btn\",\n {\n attrs: {\n type: \"submit\",\n large: \"\",\n color: _vm.isSet ? \"warn\" : \"success\",\n disabled: !_vm.formValid,\n \"data-test\": \"set-password\",\n },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.setPassword.apply(null, arguments)\n },\n },\n },\n [_vm._v(\"\\n Set\\n \")]\n )\n : _c(\n \"v-container\",\n [\n _c(\n \"v-row\",\n [\n _c(\n \"v-btn\",\n {\n attrs: {\n type: \"submit\",\n large: \"\",\n color: \"success\",\n disabled: !_vm.formValid,\n },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.verifyPassword.apply(\n null,\n arguments\n )\n },\n },\n },\n [_vm._v(\"\\n Login\\n \")]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { text: \"\", small: \"\" },\n on: { click: _vm.showReset },\n },\n [_vm._v(\" Change Password \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-alert\",\n {\n attrs: { type: _vm.alertType, dismissible: \"\" },\n model: {\n value: _vm.showAlert,\n callback: function ($$v) {\n _vm.showAlert = $$v\n },\n expression: \"showAlert\",\n },\n },\n [_vm._v(\"\\n \" + _vm._s(_vm.alert) + \"\\n \")]\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n-->\n\n<template>\n <v-card>\n <v-card-title> Login </v-card-title>\n <v-card-subtitle>\n {{ isSet ? 'Enter the' : 'Create a' }}\n password to begin using OpenC3\n </v-card-subtitle>\n <v-card-text>\n <v-form>\n <v-text-field\n v-if=\"isSet && reset\"\n v-model=\"oldPassword\"\n type=\"password\"\n label=\"Old Password\"\n />\n <v-text-field\n v-model=\"password\"\n type=\"password\"\n :label=\"`${!isSet || reset ? 'New ' : ''}Password`\"\n data-test=\"new-password\"\n />\n <v-text-field\n v-if=\"reset\"\n v-model=\"confirmPassword\"\n :rules=\"[rules.matchPassword]\"\n type=\"password\"\n label=\"Confirm Password\"\n data-test=\"confirm-password\"\n />\n <v-btn\n v-if=\"reset\"\n type=\"submit\"\n @click.prevent=\"setPassword\"\n large\n :color=\"isSet ? 'warn' : 'success'\"\n :disabled=\"!formValid\"\n data-test=\"set-password\"\n >\n Set\n </v-btn>\n <v-container v-else>\n <v-row>\n <v-btn\n type=\"submit\"\n @click.prevent=\"verifyPassword\"\n large\n color=\"success\"\n :disabled=\"!formValid\"\n >\n Login\n </v-btn>\n <v-spacer />\n <v-btn text small @click=\"showReset\"> Change Password </v-btn>\n </v-row>\n </v-container>\n </v-form>\n </v-card-text>\n <v-alert :type=\"alertType\" v-model=\"showAlert\" dismissible>\n {{ alert }}\n </v-alert>\n </v-card>\n</template>\n\n<script>\nimport Api from '../../../packages/openc3-tool-common/src/services/api'\n\nexport default {\n data() {\n return {\n isSet: true,\n password: '',\n confirmPassword: '',\n oldPassword: '',\n reset: false, // setting a password for the first time, or changing to a new password\n alert: '',\n alertType: 'success',\n showAlert: false,\n }\n },\n computed: {\n options: function () {\n return {\n noAuth: true,\n noScope: true, // lol\n }\n },\n rules: function () {\n return {\n matchPassword: () =>\n this.password === this.confirmPassword || 'Passwords must match',\n }\n },\n formValid: function () {\n if (this.reset) {\n if (!this.isSet) {\n return !!this.password && this.password === this.confirmPassword\n } else {\n return (\n !!this.oldPassword &&\n !!this.password &&\n this.password === this.confirmPassword\n )\n }\n } else {\n return !!this.password\n }\n },\n },\n created: function () {\n Api.get('/openc3-api/auth/token-exists', this.options).then((response) => {\n this.isSet = !!response.data.result\n if (!this.isSet) {\n this.reset = true\n }\n })\n },\n methods: {\n showReset: function () {\n this.reset = true\n },\n login: function () {\n localStorage.openc3Token = this.password\n const redirect = new URLSearchParams(window.location.search).get(\n 'redirect'\n )\n window.location = decodeURI(redirect || '/')\n },\n verifyPassword: function () {\n this.showAlert = false\n Api.post('/openc3-api/auth/verify', {\n data: {\n token: this.password,\n },\n ...this.options,\n }).then((response) => {\n if (response.data.result) {\n this.login()\n } else {\n this.alert = 'Incorrect password'\n this.alertType = 'warning'\n this.showAlert = true\n }\n })\n },\n setPassword: function () {\n this.showAlert = false\n Api.post('/openc3-api/auth/set', {\n data: {\n old_token: this.oldPassword,\n token: this.password,\n },\n ...this.options,\n }).then(this.login)\n },\n },\n}\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=ef68022e&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('ef68022e')) {\n api.createRecord('ef68022e', component.options)\n } else {\n api.reload('ef68022e', component.options)\n }\n module.hot.accept(\"./Login.vue?vue&type=template&id=ef68022e&\", function () {\n api.rerender('ef68022e', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/Login.vue\"\nexport default component.exports"],"names":["render","_vm","this","_h","$createElement","_c","_self","_v","_s","isSet","reset","attrs","type","label","model","value","oldPassword","callback","$$v","expression","_e","password","rules","matchPassword","confirmPassword","large","color","disabled","formValid","on","click","$event","preventDefault","setPassword","apply","arguments","verifyPassword","text","small","showReset","alertType","dismissible","showAlert","alert","_withStripped","data","computed","options","noAuth","noScope","created","methods","login","localStorage","openc3Token","window","location","decodeURI","token","response","result","old_token","component","__file"],"sourceRoot":""}
Binary file
Binary file