diff --git a/src/api/open-object-handler.js b/src/api/open-object-handler.js index 66c761c..e0ce8c1 100644 --- a/src/api/open-object-handler.js +++ b/src/api/open-object-handler.js @@ -235,6 +235,13 @@ export default { }); break; + case socktype.Purchase: + vm.$router.push({ + name: "purchase-edit", + params: { recordid: tid.id } + }); + break; + case socktype.SubscriptionServer: vm.$router.push({ name: "subscription-server-edit", diff --git a/src/components/ssh-control.vue b/src/components/ssh-control.vue new file mode 100644 index 0000000..2440d79 --- /dev/null +++ b/src/components/ssh-control.vue @@ -0,0 +1,63 @@ + + diff --git a/src/main.js b/src/main.js index c24f83f..9e4f795 100644 --- a/src/main.js +++ b/src/main.js @@ -47,6 +47,7 @@ import decimalControl from "./components/decimal-control.vue"; import percentControl from "./components/percent-control.vue"; import phoneControl from "./components/phone-control.vue"; import emailControl from "./components/email-control.vue"; +import sshControl from "./components/ssh-control.vue"; import urlControl from "./components/url-control.vue"; import roleControl from "./components/role-control.vue"; import durationControl from "./components/duration-control.vue"; @@ -169,6 +170,7 @@ Vue.component("gz-decimal", decimalControl); Vue.component("gz-phone", phoneControl); Vue.component("gz-email", emailControl); Vue.component("gz-url", urlControl); +Vue.component("gz-ssh", sshControl); Vue.component("gz-role-picker", roleControl); Vue.component("gz-duration-picker", durationControl); Vue.component("gz-error", errorControl); diff --git a/src/plugins/vuetify.js b/src/plugins/vuetify.js index e4c7f2c..bc61cd0 100644 --- a/src/plugins/vuetify.js +++ b/src/plugins/vuetify.js @@ -217,6 +217,7 @@ import { faTachometerAlt, faTags, faTasks, + faTerminal, faThList, faTicketAlt, faTimesCircle, @@ -413,6 +414,7 @@ library.add( faTachometerAlt, faTags, faTasks, + faTerminal, faThList, faTicketAlt, faTimesCircle, @@ -1413,6 +1415,12 @@ const CUSTOM_ICONS = { icon: ["fas", "tasks"] } }, + sockiTerminal: { + component: FontAwesomeIcon, + props: { + icon: ["fas", "terminal"] + } + }, sockiThList: { component: FontAwesomeIcon, props: { diff --git a/src/views/biz-purchase.vue b/src/views/biz-purchase.vue index 84933ad..4c2a2ee 100644 --- a/src/views/biz-purchase.vue +++ b/src/views/biz-purchase.vue @@ -14,7 +14,6 @@ :readonly="formState.readOnly" :label="$sock.t('Customer')" :error-messages="form().serverErrors(this, 'customerId')" - :rules="[form().required(this, 'customerId')]" @input="fieldValueChanged('customerId')" > @@ -243,7 +242,7 @@ export default { concurrency: 0, customerId: 0, vendorId: 1, - productId: 0, + productId: null, salesOrderNumber: null, purchaseDate: window.$gz.locale.nowUTC8601String(), expireDate: null, diff --git a/src/views/biz-subscription-server.vue b/src/views/biz-subscription-server.vue index 8f04c96..e0ada90 100644 --- a/src/views/biz-subscription-server.vue +++ b/src/views/biz-subscription-server.vue @@ -5,7 +5,7 @@ - + + + + + + @@ -182,7 +206,7 @@ ref="cost" v-model="obj.cost" :readonly="formState.readOnly" - :label="$ay.t('LoanUnitRateMonthCost')" + :label="$sock.t('LoanUnitRateMonthCost')" data-cy="cost" :rules="[ form().decimalValid(this, 'cost'), @@ -1273,15 +1297,8 @@ async function clickHandler(menuItem) { window.$gz.form.setLastReportMenuItem(FORM_KEY, res, m.vm); } break; - case "WorkOrderList": - m.vm.$router.push({ - name: "svc-workorders", - params: { - aType: m.vm.sockType, - objectId: m.vm.obj.id, - name: m.vm.obj.name - } - }); + case "terminal": + alert("putty -agent -ssh sportseffect.onayanova.com"); break; case "QuoteList": m.vm.$router.push({ @@ -1386,12 +1403,12 @@ function generateMenu(vm) { } menuOptions.menuItems.push({ divider: true, inset: false }); - // menuOptions.menuItems.push({ - // title: "WorkOrderList", - // icon: "$sockiTools", - // key: FORM_KEY + ":WorkOrderList", - // vm: vm - // }); + menuOptions.menuItems.push({ + title: "OpenTerminal", + icon: "$sockiTerminal", + key: FORM_KEY + ":terminal", + vm: vm + }); // menuOptions.menuItems.push({ // title: "QuoteList", @@ -1443,7 +1460,8 @@ async function fetchTranslatedText() { "SubServerTrialCompany", "SubServerOperatingSystem", "SubServerCustomerDomain", - "LoanUnitRateMonthCost" + "LoanUnitRateMonthCost", + "SubServerIP" ]); } /*