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"
]);
}
/*