Skip to content

Commit 6cde344

Browse files
committed
Remove need to add devices to vendor.
1 parent 3d920dd commit 6cde344

File tree

5 files changed

+19
-106
lines changed

5 files changed

+19
-106
lines changed

interface/api/api.proto

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ message Vendor {
7373
string name = 2;
7474
uint32 lora_alliance_vendor_id = 3;
7575
repeated string ouis = 4;
76-
repeated string devices = 5;
7776
VendorMetadata metadata = 6;
7877
}
7978

interface/api/grpc-web/api_pb.d.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,6 @@ export class Vendor extends jspb.Message {
2121
clearOuisList(): Vendor;
2222
addOuis(value: string, index?: number): Vendor;
2323

24-
getDevicesList(): Array<string>;
25-
setDevicesList(value: Array<string>): Vendor;
26-
clearDevicesList(): Vendor;
27-
addDevices(value: string, index?: number): Vendor;
28-
2924
getMetadata(): VendorMetadata | undefined;
3025
setMetadata(value?: VendorMetadata): Vendor;
3126
hasMetadata(): boolean;
@@ -46,7 +41,6 @@ export namespace Vendor {
4641
name: string,
4742
loraAllianceVendorId: number,
4843
ouisList: Array<string>,
49-
devicesList: Array<string>,
5044
metadata?: VendorMetadata.AsObject,
5145
}
5246
}

interface/api/grpc-web/api_pb.js

Lines changed: 1 addition & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -890,7 +890,7 @@ if (goog.DEBUG && !COMPILED) {
890890
* @private {!Array<number>}
891891
* @const
892892
*/
893-
proto.api.Vendor.repeatedFields_ = [4,5];
893+
proto.api.Vendor.repeatedFields_ = [4];
894894

895895

896896

@@ -928,7 +928,6 @@ proto.api.Vendor.toObject = function(includeInstance, msg) {
928928
name: jspb.Message.getFieldWithDefault(msg, 2, ""),
929929
loraAllianceVendorId: jspb.Message.getFieldWithDefault(msg, 3, 0),
930930
ouisList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f,
931-
devicesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f,
932931
metadata: (f = msg.getMetadata()) && proto.api.VendorMetadata.toObject(includeInstance, f)
933932
};
934933

@@ -986,10 +985,6 @@ proto.api.Vendor.deserializeBinaryFromReader = function(msg, reader) {
986985
var value = /** @type {string} */ (reader.readString());
987986
msg.addOuis(value);
988987
break;
989-
case 5:
990-
var value = /** @type {string} */ (reader.readString());
991-
msg.addDevices(value);
992-
break;
993988
case 6:
994989
var value = new proto.api.VendorMetadata;
995990
reader.readMessage(value,proto.api.VendorMetadata.deserializeBinaryFromReader);
@@ -1059,13 +1054,6 @@ proto.api.Vendor.serializeBinaryToWriter = function(message, writer) {
10591054
f
10601055
);
10611056
}
1062-
f = message.getDevicesList();
1063-
if (f.length > 0) {
1064-
writer.writeRepeatedString(
1065-
5,
1066-
f
1067-
);
1068-
}
10691057
f = message.getMetadata();
10701058
if (f != null) {
10711059
writer.writeMessage(
@@ -1186,43 +1174,6 @@ proto.api.Vendor.prototype.clearOuisList = function() {
11861174
};
11871175

11881176

1189-
/**
1190-
* repeated string devices = 5;
1191-
* @return {!Array<string>}
1192-
*/
1193-
proto.api.Vendor.prototype.getDevicesList = function() {
1194-
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 5));
1195-
};
1196-
1197-
1198-
/**
1199-
* @param {!Array<string>} value
1200-
* @return {!proto.api.Vendor} returns this
1201-
*/
1202-
proto.api.Vendor.prototype.setDevicesList = function(value) {
1203-
return jspb.Message.setField(this, 5, value || []);
1204-
};
1205-
1206-
1207-
/**
1208-
* @param {string} value
1209-
* @param {number=} opt_index
1210-
* @return {!proto.api.Vendor} returns this
1211-
*/
1212-
proto.api.Vendor.prototype.addDevices = function(value, opt_index) {
1213-
return jspb.Message.addToRepeatedField(this, 5, value, opt_index);
1214-
};
1215-
1216-
1217-
/**
1218-
* Clears the list making it empty but non-null.
1219-
* @return {!proto.api.Vendor} returns this
1220-
*/
1221-
proto.api.Vendor.prototype.clearDevicesList = function() {
1222-
return this.setDevicesList([]);
1223-
};
1224-
1225-
12261177
/**
12271178
* optional VendorMetadata metadata = 6;
12281179
* @return {?proto.api.VendorMetadata}

interface/src/structs.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ pub struct Vendor {
1818
pub name: String,
1919
pub vendor_id: u32,
2020
pub ouis: Vec<String>,
21-
pub devices: Vec<String>,
2221
pub metadata: VendorMetadata,
2322
}
2423

@@ -29,7 +28,6 @@ impl Default for Vendor {
2928
name: "".into(),
3029
vendor_id: 0,
3130
ouis: vec![],
32-
devices: vec![],
3331
metadata: VendorMetadata::default(),
3432
}
3533
}
@@ -163,7 +161,6 @@ impl From<&api::Vendor> for VendorConfiguration {
163161
name: value.name.clone(),
164162
vendor_id: value.lora_alliance_vendor_id,
165163
ouis: value.ouis.clone(),
166-
devices: value.devices.clone(),
167164
metadata: VendorMetadata {
168165
homepage: value.metadata.as_ref().map(|v| v.homepage.clone()),
169166
},
@@ -180,7 +177,6 @@ impl From<&VendorConfiguration> for api::Vendor {
180177
name: value.vendor.name.clone(),
181178
lora_alliance_vendor_id: value.vendor.vendor_id,
182179
ouis: value.vendor.ouis.clone(),
183-
devices: value.vendor.devices.clone(),
184180
metadata: Some(api::VendorMetadata {
185181
homepage: value.vendor.metadata.homepage.clone().unwrap_or_default(),
186182
}),

interface/ui/src/views/vendors/VendorForm.tsx

Lines changed: 18 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
import { useState, useEffect } from "react";
2-
31
import { Form, Input, InputNumber, Button, Select } from "antd";
42
import { MinusCircleOutlined, PlusOutlined } from "@ant-design/icons";
53

6-
import { Vendor, VendorMetadata, ListDevicesRequest, ListDevicesResponse, Device } from "@api/grpc-web/api_pb";
7-
import DeviceProfileStore from "../../stores/DeviceProfileStore";
4+
import { Vendor, VendorMetadata } from "@api/grpc-web/api_pb";
85
import { slugify } from "../helpers";
96

107
interface IProps {
@@ -15,21 +12,6 @@ interface IProps {
1512

1613
function VendorForm(props: IProps) {
1714
const [form] = Form.useForm();
18-
const [devices, setDevices] = useState<Device[]>([]);
19-
20-
useEffect(() => {
21-
if (!props.update) {
22-
return;
23-
}
24-
25-
const v = props.initialValues;
26-
27-
const req = new ListDevicesRequest();
28-
req.setVendorDir(v.getDir());
29-
DeviceProfileStore.listDevices(req, (resp: ListDevicesResponse) => {
30-
setDevices(resp.getResultList());
31-
});
32-
}, [props.initialValues]);
3315

3416
const onFinish = (values: Vendor.AsObject) => {
3517
const v = Object.assign(props.initialValues.toObject(), values);
@@ -42,7 +24,6 @@ function VendorForm(props: IProps) {
4224
vendor.setName(v.name);
4325
vendor.setLoraAllianceVendorId(v.loraAllianceVendorId);
4426
vendor.setOuisList(v.ouisList);
45-
vendor.setDevicesList(v.devicesList);
4627

4728
vendorMetadata.setHomepage(v.metadata?.homepage || "");
4829
vendor.setMetadata(vendorMetadata);
@@ -58,36 +39,30 @@ function VendorForm(props: IProps) {
5839
form.setFieldsValue({
5940
dir: slugify(e.target.value),
6041
});
61-
}
62-
42+
};
6343

6444
return (
65-
<Form
66-
layout="vertical"
67-
initialValues={props.initialValues.toObject()}
68-
onFinish={onFinish}
69-
form={form}
70-
>
45+
<Form layout="vertical" initialValues={props.initialValues.toObject()} onFinish={onFinish} form={form}>
7146
<Form.Item label="Name" name="name" rules={[{ required: true, message: "Please enter a name!" }]}>
7247
<Input onChange={onChangeName} placeholder="Vendor Name" />
7348
</Form.Item>
74-
<Form.Item label="Directory name" name="dir" rules={[
75-
{ required: true, message: "Please enter a directory name!" },
76-
{ pattern: /^[\w-]+$/g, message: "The directory name can only contain a-z, A-Z, 0-9 and - characters!" },
77-
]}>
49+
<Form.Item
50+
label="Directory name"
51+
name="dir"
52+
rules={[
53+
{ required: true, message: "Please enter a directory name!" },
54+
{ pattern: /^[\w-]+$/g, message: "The directory name can only contain a-z, A-Z, 0-9 and - characters!" },
55+
]}
56+
>
7857
<Input disabled={props.update} placeholder="vendor-name" />
7958
</Form.Item>
80-
<Form.Item label="LoRa Alliance Vendor ID" name="loraAllianceVendorId" tooltip="This ID is provided by the LoRa Alliance.">
59+
<Form.Item
60+
label="LoRa Alliance Vendor ID"
61+
name="loraAllianceVendorId"
62+
tooltip="This ID is provided by the LoRa Alliance."
63+
>
8164
<InputNumber min={0} />
8265
</Form.Item>
83-
<Form.Item label="Devices" name="devicesList">
84-
<Select mode="multiple" options={devices.map((v) => {
85-
return {
86-
label: v.getFile(),
87-
value: v.getFile(),
88-
};
89-
})} />
90-
</Form.Item>
9166
<Form.List name="ouisList">
9267
{(fields, { add, remove }) => (
9368
<>
@@ -96,12 +71,10 @@ function VendorForm(props: IProps) {
9671
{...restField}
9772
label="OUI"
9873
name={[name]}
99-
rules={[{ required: true, message: 'Please enter an OUI!' }]}
74+
rules={[{ required: true, message: "Please enter an OUI!" }]}
10075
key={key}
10176
>
102-
<Input addonAfter={
103-
<MinusCircleOutlined onClick={() => remove(name)} />
104-
} />
77+
<Input addonAfter={<MinusCircleOutlined onClick={() => remove(name)} />} />
10578
</Form.Item>
10679
))}
10780
<Form.Item>

0 commit comments

Comments
 (0)