/app/Views/user/profile.php

https://gitlab.com/sejator/posci4 · PHP · 122 lines · 121 code · 1 blank · 0 comment · 1 complexity · fd18b3d30afbea46c766f3d7d01b0069 MD5 · raw file

  1. <?= $this->extend('layout/template'); ?>
  2. <?= $this->section('content'); ?>
  3. <div class="container-fluid">
  4. <div class="row">
  5. <div class="col-md-3">
  6. <!-- Profile Image -->
  7. <div class="card card-primary card-outline">
  8. <div class="card-body box-profile">
  9. <div class="text-center">
  10. <img class="img-fluid img-circle avatar" src="<?= base_url('uploads/profile/' . esc($user->avatar)) ?>">
  11. </div>
  12. <h3 class="profile-username text-center"></h3>
  13. <p class="text-muted text-center">Tanggal Daftar : <?= esc(date('d M Y', strtotime($user->created_at))); ?></p>
  14. </div>
  15. <!-- /.card-body -->
  16. </div>
  17. <!-- /.card -->
  18. </div>
  19. <!-- /.col -->
  20. <div class="col-md-9">
  21. <div class="card card-primary card-outline">
  22. <div class="card-body">
  23. <?= form_open_multipart(base_url('/user/ubah'), ['csrf_id' => 'token']); ?>
  24. <div class="form-group row">
  25. <label for="nama" class="col-sm-2 col-form-label">Nama</label>
  26. <div class="col-sm-10">
  27. <input type="text" class="form-control" name="nama" id="nama" value="<?= esc($user->nama) ?>">
  28. <small class="invalid-feedback"></small>
  29. </div>
  30. </div>
  31. <div class="form-group row">
  32. <label for="username" class="col-sm-2 col-form-label">Username</label>
  33. <div class="col-sm-10">
  34. <input type="text" class="form-control" name="username" id="username" value="<?= esc($user->username) ?>">
  35. <small class="invalid-feedback"></small>
  36. </div>
  37. </div>
  38. <div class="form-group row">
  39. <label for="email" class="col-sm-2 col-form-label">Alamat Email</label>
  40. <div class="col-sm-10">
  41. <input type="text" class="form-control" name="email" id="email" value="<?= esc($user->email) ?>">
  42. <small class="invalid-feedback"></small>
  43. </div>
  44. </div>
  45. <div class="form-group row">
  46. <label for="password" class="col-sm-2 col-form-label">Password</label>
  47. <div class="col-sm-10">
  48. <input type="password" class="form-control" name="password" id="password" autocomplete="off">
  49. <small class="text-danger">Kosongkan jika tidak ingin di ganti!</small>
  50. </div>
  51. </div>
  52. <div class="form-group row">
  53. <label for="alamat" class="col-sm-2 col-form-label">Alamat</label>
  54. <div class="col-sm-10">
  55. <textarea name="alamat" id="alamat" class="form-control"><?= esc($user->alamat); ?></textarea>
  56. <small class="invalid-feedback"></small>
  57. </div>
  58. </div>
  59. <div class="form-group row">
  60. <label for="avatar" class="col-sm-2 col-form-label">Photo Profile</label>
  61. <div class="col-sm-2 d-none">
  62. <img class="img-thumbnail" id="img-preview">
  63. </div>
  64. <div class="col-sm-4">
  65. <div class="custom-file">
  66. <input type="file" class="custom-file-input" id="avatar" name="avatar">
  67. <label class="custom-file-label" for="avatar">Upload Photo</label>
  68. <small class="invalid-feedback"></small>
  69. </div>
  70. </div>
  71. </div>
  72. <div class="form-group row">
  73. <input type="hidden" name="id" value="<?= esc($user->id); ?>">
  74. <input type="hidden" name="role" value="<?= esc($user->id_role); ?>">
  75. <input type="hidden" name="avatarLama" id="avatarLama" value="<?= esc($user->avatar); ?>">
  76. <div class="offset-sm-2 col-sm-10">
  77. <button type="submit" id="simpan" class="btn btn-success">Simpan</button>
  78. </div>
  79. </div>
  80. <?= form_close(); ?>
  81. </div><!-- /.card-body -->
  82. </div>
  83. <!-- /.card -->
  84. </div>
  85. <!-- /.col -->
  86. </div>
  87. <!-- /.row -->
  88. </div>
  89. <script>
  90. $("#avatar").on("change", function(e) {
  91. let src = URL.createObjectURL(e.target.files[0]);
  92. $("#img-preview").prop("src", src).parent().removeClass("d-none")
  93. })
  94. $("#simpan").on("click", function(e) {
  95. e.preventDefault();
  96. let formData = new FormData($("form")[0]);
  97. $.ajax({
  98. type: $("form").attr("method"),
  99. url: $("form").attr("action"),
  100. dataType: "json",
  101. contentType: false,
  102. processData: false,
  103. cache: false,
  104. data: formData,
  105. success: function(response) {
  106. responValidasi(['simpan'], ['nama', 'username', 'email', 'avatar'], response);
  107. if (response.sukses) {
  108. $("#img-preview").parent().addClass('d-none');
  109. $(".avatar").attr("src", url + "/uploads/profile/"+response.user.avatar);
  110. $("#nama").val(response.user.nama);
  111. $("#username").val(response.user.username);
  112. $("#email").val(response.user.email);
  113. $("#password").val('');
  114. $("#alamat").val(response.user.alamat);
  115. $("#avatarLama").val(response.user.avatar);
  116. }
  117. }
  118. });
  119. });
  120. </script>
  121. <?php $this->endSection(); ?>