| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <template>
- <modal :id="modalId" tabindex="-1" role="dialog" :aria-labelledby="`${modalId}Label`">
- <h5 slot="header" class="modal-title" :id="`${modalId}Label`">
- Edit Work Order Information
- </h5>
- <div slot="body">
- <div class="form-group">
- <label for="manufacturer">Manufacturer</label>
- <input type="text" name="manufacturer" id="manufacturer" class="form-control" v-model="asset.pcmanu">
- </div>
- <div class="form-group">
- <label for="make">Make</label>
- <input type="text" name="make" id="make" class="form-control" v-model="asset.pcmake">
- </div>
- <div class="form-group">
- <label for="nickname">Nickname</label>
- <input type="text" name="nickname" id="nickname" class="form-control" v-model="asset.pcnickname">
- </div>
- <div class="form-group">
- <label for="os">OS</label>
- <input type="text" name="os" id="os" class="form-control" v-model="asset.pcextra[2]">
- </div>
- <div class="form-group">
- <label for="serial">Serial Number</label>
- <input type="text" id="serial" name="serial" class="form-control" v-model="asset.pcextra[104]">
- </div>
- <div class="form-group">
- <label for="cpu">CPU</label>
- <input type="text" id="cpu" name="cpu" class="form-control" v-model="asset.pcextra[101]">
- </div>
- <div class="form-group">
- <label for="ram">RAM</label>
- <input type="text" name="ram" id="ram" class="form-control" v-model="asset.pcextra[100]">
- </div>
- <div class="form-group">
- <label for="graphics">Graphics</label>
- <input type="text" name="graphics" id="grapics" class="form-control" v-model="asset.pcextra[4]">
- </div>
- </div>
- <div slot="footer">
- <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
- <button type="button" class="btn btn-primary" @click="updateAsset()">
- <div v-if="!assetSaving">Save</div>
- <circle-spinner v-else :size="2"></circle-spinner>
- </button>
- </div>
- </modal>
- </template>
- <script>
- import Modal from '../components/Modal.vue'
- import CircleSpinner from '../components/CircleSpinner.vue'
- export default {
- components: {
- Modal,
- CircleSpinner,
- },
- props: {
- populateWith: {
- type: Object,
- required: true,
- },
- modalId: {
- type: String,
- required: true,
- },
- },
- data () {
- return {
- // Essentially makes a copy of the object. Otherwise
- // We would have a reference to the exising object causing
- // unwanted mutations in the parent component.
- asset: JSON.parse(JSON.stringify(this.populateWith)),
- assetSaving: false,
- }
- },
- methods: {
- updateAsset() {
- this.assetSaving = true
- axios.put(`/api/assets/${this.asset.pcid}`, this.asset)
- .then((response) => {
- this.assetSaving = false
- $(`#${this.modalId}`).modal('hide');
- })
- .catch((error) => {
- this.assetSaving = false
- });
- }
- }
- }
- </script>
|