credential-list.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. export default {
  12. props: {
  13. credentialList: {
  14. type: Array,
  15. required: true
  16. },
  17. descriptions: {
  18. type: Array,
  19. required: true
  20. },
  21. pcid: {
  22. type: Number
  23. },
  24. groupid: {
  25. type: Number
  26. }
  27. },
  28. data () {
  29. return {
  30. credentials: this.credentialList
  31. }
  32. },
  33. computed : {
  34. creddescList: function () {
  35. let list = {}
  36. this.descriptions.map(val => {
  37. list[val.creddescid] = val.credtitle
  38. })
  39. return list
  40. }
  41. },
  42. methods: {
  43. deleteCred: function(index) {
  44. this.credentials.splice(index, 1);
  45. }
  46. },
  47. mounted () {
  48. if (this.pcid) {
  49. Echo.channel('credlist.pcid.'+this.pcid)
  50. .listen('CredentialDeleted', (e) => {
  51. let deletedCred = e.credential
  52. let index = this.credentials.findIndex((credential) => {
  53. return credential.credid === deletedCred['credid']
  54. })
  55. $('#credential'+deletedCred['credid']+'deleteModal').modal('hide');
  56. this.deleteCred(index);
  57. })
  58. .listen('CredentialAdded', (e) => {
  59. this.credentials.unshift(e.credential)
  60. })
  61. }
  62. if (this.groupid) {
  63. Echo.channel('credlist.groupid.'+this.groupid)
  64. .listen('CredentialDeleted', (e) => {
  65. let deletedCred = e.credential
  66. let index = this.credentials.findIndex((credential) => {
  67. return credential.groupid === deletedCred['groupid']
  68. })
  69. $('#credential'+deletedCred['credid']+'deleteModal').modal('hide');
  70. this.deleteCred(index);
  71. })
  72. .listen('CredentialAdded', (e) => {
  73. this.credentials.unshift(e.credential)
  74. })
  75. }
  76. }
  77. }
  78. </script>