credential-list.vue 2.6 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. 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. console.log(index)
  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>