<template>
  <div>
    <h3 class="content-block main-title">Approval DRP</h3>
    <p class="content-block">Approval DRP </p>
    <div class="content-block">
      <div class="dx-card responsive-paddings">
        <div id="app-container">
          <DxDataGrid
            ref="currDataGrid"
            :data-source="dataSource"
            key-expr="id"
            :allow-column-reordering="true"
            :column-auto-width="true"
          >
            <DxEditing
              :allow-adding="true"
              :allow-updating="true"
              :allow-deleting="true"
              :use-icons="true"
              mode="popup"
            >
              <DxTexts
                add-row="Tambah"
                edit-row="Ubah"
                delete-row="Hapus"
                confirm-delete-message="Apakah anda yakin untuk menghapus data ini?"
                save-row-changes="Simpan"
                cancel-row-changes="Batal"
              ></DxTexts>
              <DxForm label-location="top" :col-count="1">
                <DxItem dataField="tahun">
                  <DxRequiredRule message="Tahun harus diisi" />
                </DxItem>
              </DxForm>
              <DxPopup
                :hide-on-outside-click="true"
                :show-title="true"
                :width="400"
                :height="400"
                title="Form Approval  DRP "
              >
              </DxPopup>
            </DxEditing>
            <DxToolbar>
              <DxItem name="groupPanel" />
              <DxItem name="searchPanel" location="before" />
              <DxItem name="exportButton" />
              <DxItem name="columnChooserButton" />
            </DxToolbar>
            <DxPaging :page-size="5" />
            <DxPager
              :visible="true"
              :allowed-page-sizes="[5, 10, 50]"
              :display-mode="compact"
              :show-page-size-selector="true"
              :show-info="true"
              :show-navigation-buttons="true"
              info-text="Hal {0} dari {1} ({2} data)"
            />
            <DxFilterRow :visible="false" />
            <DxColumn
              cell-template="row-cell-template"
              caption="No"
              :width="45"
            ></DxColumn>
            <DxColumn data-field="tahun" caption="Tahun DRP"></DxColumn>
            <DxColumn
              data-field="approveStatus"
              caption="Status Approve"
              editor-type="dxCheckBox"
            ></DxColumn>
            <DxColumn data-field="" caption="VP Pengadaan"></DxColumn>
            <DxColumn data-field="" caption="Komite Value for Money"></DxColumn>
            <DxColumn data-field="" caption="Direktur Utama"></DxColumn>
            <DxColumn type="buttons" caption="Aksi" :fixed="true">
              <DxButton
                text="Dokumen"
                hint="Dokumen Pendukung DRP"
                :on-click="linkDokumen"
              >
                <template #default>
                  <IconEye />
                </template>
              </DxButton>
              <DxButton
                text="Detil"
                hint="Detil/Konten DRP"
                :on-click="linkDetail">
                <template #default>
                  <IconDocChecked />
                </template>
              </DxButton>
            </DxColumn>
            <template #row-cell-template="{ data }">
              <DxText>{{ data.rowIndex + 1 }}</DxText>
            </template>
            <DxSearchPanel
              :visible="true"
              :highlight-case-sensitive="true"
              :width="300"
              placeholder="Cari Approval DRP..."
            />
          </DxDataGrid>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
import DxDataGrid, {
  DxEditing,
  DxItem,
  DxForm,
  DxPopup,
  DxColumn,
  DxFilterRow,
  DxPager,
  DxPaging,
  DxSearchPanel,
  DxToolbar,
  DxTexts,
  DxButton,
} from "devextreme-vue/data-grid";
import CustomStore from "devextreme/data/custom_store";
import IconEye from '../../components/icons/IconEye.vue';
import IconDocChecked from '../../components/icons/IconDocChecked.vue';

const URL = process.env.VUE_APP_ROOT_API + "/drp/approval";

const dataSource = new CustomStore({
  key: "id",

  load: () => {
    return fetch(URL+process.env.VUE_APP_PAGE_SIZE)
      .then((response) => response.json())
      .then((response) => {
        console.log("drp:", response.data);
        return {
          data: response.data,
          totalCount: response.pagination.totalRecords,
        };
      })
      .catch(() => {
        throw new Error("Terdapat kesalahan memuat data");
      });
  },

  insert: (values) => {
    return fetch(URL, {
      method: "POST",
      body: JSON.stringify(values),
      headers: {
        "Content-Type": "application/json",
      },
    });
  },

  update: (key, values) => {
    return fetch(URL + "/" + encodeURIComponent(key), {
      method: "PUT",
      body: JSON.stringify(values),
      headers: {
        "Content-Type": "application/json",
      },
    });
  },

  remove: (key) => {
    return fetch(URL + "/" + encodeURIComponent(key), {
      method: "DELETE",
    });
  },
});

export default {
  components: {
    DxDataGrid,
    DxEditing,
    DxItem,
    DxForm,
    DxPopup,
    DxColumn,
    DxFilterRow,
    DxPager,
    DxPaging,
    DxSearchPanel,
    DxToolbar,
    DxTexts,
    DxButton,
    IconEye,
    IconDocChecked
  },
  methods: {
    linkDetail(e) {
      location.href='#/drp/drp-pengadaan?drpid='+e.row.data.id;
    },
  },
  data() {
    return {
      //jsonUrl: URL,
      dataSource,
    };
  },
};
</script>
