CredentialList.vue 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <template>
  2. <div>
  3. <credential-form-modal modal-id="newCredentialModal" :descriptions="creddescList" :create="true" :pcid="pcid"></credential-form-modal>
  4. <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#newCredentialModal">New Credential</button>
  5. <div v-for="credential in credentials" :key="credential.credid">
  6. <credential :credential="credential" :descriptions="creddescList"></credential>
  7. </div>
  8. </div>
  9. </template>
  10. <script>
  11. import Credential from '../components/Credential.vue'
  12. import CredentialFormModal from '../components/CredentialFormModal.vue'
  13. export default {
  14. components: {
  15. Credential,
  16. CredentialFormModal,
  17. },
  18. props: {
  19. credentials: {
  20. type: Array,
  21. required: true
  22. },
  23. descriptions: {
  24. type: Array,
  25. required: true
  26. },
  27. pcid: {
  28. type: Number
  29. },
  30. groupid: {
  31. type: Number
  32. }
  33. },
  34. computed : {
  35. creddescList: function () {
  36. let list = {}
  37. this.descriptions.map(val => {
  38. list[val.creddescid] = val.credtitle
  39. })
  40. return list
  41. }
  42. },
  43. methods: {
  44. deleteCred: function(index) {
  45. this.credentials.splice(index, 1);
  46. }
  47. },
  48. mounted () {
  49. if (this.pcid) {
  50. Echo.channel('credlist.pcid.'+this.pcid)
  51. .listen('CredentialDeleted', (e) => {
  52. let deletedCred = e.credential
  53. let index = this.credentials.findIndex((credential) => {
  54. return credential.credid === deletedCred['credid']
  55. })
  56. $('#credential'+deletedCred['credid']+'deleteModal').modal('hide');
  57. this.deleteCred(index);
  58. })
  59. .listen('CredentialAdded', (e) => {
  60. this.credentials.unshift(e.credential)
  61. })
  62. }
  63. if (this.groupid) {
  64. Echo.channel('credlist.groupid.'+this.groupid)
  65. .listen('CredentialDeleted', (e) => {
  66. let deletedCred = e.credential
  67. let index = this.credentials.findIndex((credential) => {
  68. return credential.groupid === deletedCred['groupid']
  69. })
  70. $('#credential'+deletedCred['credid']+'deleteModal').modal('hide');
  71. this.deleteCred(index);
  72. })
  73. .listen('CredentialAdded', (e) => {
  74. this.credentials.unshift(e.credential)
  75. })
  76. }
  77. }
  78. }
  79. </script>