<template>
  <CSidebar
    fixed
    :minimize="minimize"
    :show="show"
    @update:show="
      (value) =>
        $store.commit('admin/set', ['sidebarShow', value])
    ">
    <CSidebarBrand class="d-md-down-none">
      <a href="/" target="_blank">
        <span style="color: #fff">پرتال خبری</span>
      </a>
    </CSidebarBrand>

    <!-- <CRenderFunction flat :content-to-render="$options.nav"/> -->

    <!-- sidebar content -->
    <CSidebarNav>
      <CSidebarNavItem
        name="صفحه اصلی"
        :to="{ name: 'admin' }"
        font-icon="fal fa-home" />

      <CSidebarNavItem
        name="مدیریت کاربران"
        :to="{ name: 'admin-users' }"
        v-if="hasPermission('superAdmin')"
        fontIcon="fal fa-users"
        :exact="false" />

      <CSidebarNavItem
        name="مدیریت صفحات"
        :to="{ name: 'admin-pages' }"
        v-if="hasPermission('categories')"
        fontIcon="fal fa-file"
        :exact="false" />

      <CSidebarNavItem
        name="مدیریت عملکرد"
        :to="{ name: 'admin-pdfManagement' }"
        v-if="hasPermission('categories')"
        fontIcon="fal fa-file"
        :exact="false" />

      <CSidebarNavItem
        name="مدیریت پرونده خبری"
        :to="{ name: 'admin-newsFile' }"
        v-if="hasPermission('newsFile')"
        font-icon="fal fa-cabinet-filing"
        :exact="false" />

      <CSidebarNavItem
        name="مدیریت اخبار"
        :to="{ name: 'admin-news' }"
        v-if="hasPermission('news')"
        font-icon="fal fa-newspaper"
        :exact="false" />

      <CSidebarNavItem
        name="مدیریت چند رسانه ای ها"
        v-if="hasPermission('gallery')"
        :to="{ name: 'admin-gallery' }"
        font-icon="fal fa-images"
        :exact="false" />

      <CSidebarNavItem
        name="مدیریت نظرسنجی ها"
        :to="{ name: 'admin-polls', query: { page: 1 } }"
        font-icon="fal fa-poll-people"
        :exact="false" />

      <CSidebarNavItem
        name="مدیریت انتخابات"
        :exact="false"
        :to="{ name: 'admin-elections' }"
        v-if="hasPermission('elections')"
        font-icon="fal fa-box-ballot" />

      <CSidebarNavDropdown
        name="میز خدمت"
        :show="Boolean(unreadMeetingReq)"
        v-if="hasPermission('superAdmin')"
        font-icon="fal fa-browser">
        <CSidebarNavItem
          name="درخواست های ملاقات با استاندار"
          :exact="false"
          :badge="
            unreadMeetingReq
              ? { text: unreadMeetingReq, color: 'danger' }
              : null
          "
          :to="{ name: 'admin-meeting' }" />
      </CSidebarNavDropdown>

      <!-- <CSidebarNavItem
          name="مدیریت محتوا"
          v-if="hasPermission('contents')"
          :to="{ name: 'admin-contents' }"
          icon="cil-speedometer"
      /> -->

      <CSidebarNavDropdown
        name="مدیریت پیام ها"
        :show="
          Boolean(
            unreadContactMessages + unreadNewsMessages
          )
        "
        v-if="
          hasPermission('comment-News') ||
          hasPermission('comment-ContactUs')
        "
        fontIcon="fal fa-envelope">
        <CSidebarNavItem
          v-if="hasPermission('comment-News')"
          name="کامنت های اخبار"
          :exact="false"
          :badge="
            unreadNewsMessages
              ? {
                  text: unreadNewsMessages,
                  color: 'danger',
                }
              : null
          "
          :to="{
            name: 'admin-comments-type',
            params: { type: 'News' },
          }" />
        <CSidebarNavItem
          v-if="hasPermission('comment-ContactUs')"
          name="پیام های تماس با ما"
          :exact="false"
          :badge="
            unreadContactMessages
              ? {
                  text: unreadContactMessages,
                  color: 'danger',
                }
              : null
          "
          :to="{
            name: 'admin-comments-type',
            params: { type: 'ContactUs' },
          }" />
      </CSidebarNavDropdown>

      <CSidebarNavDropdown
        name="تنظیمات"
        v-if="hasPermission('superAdmin')"
        fontIcon="fal fa-cog">
        <CSidebarNavItem
          name="اخباری روی صفحه اصلی"
          :to="{
            name: 'admin-homePageNews',
            query: { portal: 'ostandari' },
          }" />

        <CSidebarNavItem
          name="مدیریت پیوندها"
          :to="{ name: 'admin-links' }"
          :exact="false" />
        <CSidebarNavItem
          name="استاندار"
          :to="{
            name: 'admin-contents-details',
            params: { details: 'manager' },
          }" />
        <CSidebarNavItem
          name="مدیریت اسلایدر"
          :to="{ name: 'admin-slider' }"
          :exact="false" />
        <CSidebarNavItem
          name="عکس شعار سال"
          :to="{ name: 'admin-yearBanner' }" />
        <CSidebarNavItem
          name="دکمه ستاد انتخابات"
          :to="{ name: 'admin-electionBtn' }" />
        <CSidebarNavItem
          name="آدرس ایمیل و شبکه های اجتماعی"
          :to="{ name: 'admin-socialLinks' }" />
        <CSidebarNavItem
          name="مدیریت مناسبت ها"
          :to="{ name: 'admin-occasion' }"
          :exact="false" />
        <CSidebarNavItem
          name="مدیریت روز شمار"
          :to="{ name: 'admin-counterDay' }" />
        <CSidebarNavItem
          name="پشتیبان گیری از سایت"
          :to="{ name: 'admin-backup' }" />
      </CSidebarNavDropdown>

      <CSidebarNavDropdown
        name="مدیریت صفحات خاص"
        v-if="hasPermission('contents')"
        fontIcon="fal fa-file-alt">
        <CSidebarNavItem
          name="صفحه اصلی"
          :to="{
            name: 'admin-homePageManagement',
            query: { portal: 'ostandari' },
          }" />
        <CSidebarNavItem
          name="صفحه عملکرد"
          :to="{
            name: 'admin-contents-details',
            params: { details: 'performance' },
          }" />
        <CSidebarNavItem
          name="صفحه سیمای استان"
          :to="{
            name: 'admin-contents-details',
            params: { details: 'sima' },
          }" />
        <CSidebarNavItem
          name="صفحه درباره ما"
          :to="{
            name: 'admin-contents-details',
            params: { details: 'aboutus' },
          }" />
        <!--        <CSidebarNavItem-->
        <!--            name="صفحه خدمات"-->
        <!--            :to="{ name: 'admin-contents-details' , params : {details : 'services'} }"-->
        <!--        />-->
        <!--        <CSidebarNavItem-->
        <!--            name="صفحه شرایط استفاده"-->
        <!--            :to="{ name: 'admin-contents-details' , params : {details : 'terms'} }"-->
        <!--        />-->
        <CSidebarNavItem
          name="صفحه حفظ حریم خصوصی"
          :to="{
            name: 'admin-contents-details',
            params: { details: 'privacy' },
          }" />
        <!--        <CSidebarNavItem-->
        <!--            name="صفحه کوکی ها"-->
        <!--            :to="{ name: 'admin-contents-details' , params : {details : 'cookies'} }"-->
        <!--        />-->
        <!--        <CSidebarNavItem-->
        <!--            name="صفحه امکانات"-->
        <!--            :to="{ name: 'admin-contents-details' , params : {details : 'facilities'} }"-->
        <!--        />-->
        <!--        <CSidebarNavItem-->
        <!--            name="صفحه آرایی"-->
        <!--            :to="{ name: 'admin-contents-details' , params : {details : 'layout'} }"-->
        <!--        />-->
        <CSidebarNavItem
          name="سوالات متداول"
          :to="{
            name: 'admin-contents-details',
            params: { details: 'faq' },
          }" />
        <CSidebarNavItem
          name="صفحه قوانین و مقررات"
          :to="{
            name: 'admin-contents-details',
            params: { details: 'rules' },
          }" />
        <CSidebarNavItem
          name="صفحه نقشه سایت"
          :to="{
            name: 'admin-contents-details',
            params: { details: 'sitemap' },
          }" />
      </CSidebarNavDropdown>
    </CSidebarNav>
    <!-- sidebar content -->

    <CSidebarMinimizer
      class="d-md-down-none"
      @click.native="
        $store.commit('admin/set', [
          'sidebarMinimize',
          !minimize,
        ])
      " />
  </CSidebar>
</template>

<script>
// import nav from './_nav';
import unreadNewsMessages from "./../../mixins/unreadNewsMessages";
import unreadContactMessages from "./../../mixins/unreadContactMessages";
import unreadMeetingReq from "../../mixins/unreadMeetingReq";

export default {
  name: "TheSidebar",
  // nav,
  data() {
    return {
      errlogOutMessage:
        "مشکلی هنگام خروج از سیسیتم بوجود امده لطفا دوباره تلاش کنید",
    };
  },
  mixins: [
    unreadNewsMessages,
    unreadContactMessages,
    unreadMeetingReq,
  ],
  computed: {
    show() {
      return this.$store.state.admin.sidebarShow;
    },
    minimize() {
      return this.$store.state.admin.sidebarMinimize;
    },
    unreadNewsMessages() {
      return this.$store.state.admin
        .unreadNewsMessagesCount;
    },
    unreadContactMessages() {
      return this.$store.state.admin
        .unreadContactMessagesCount;
    },
    unreadMeetingReq() {
      return this.$store.state.admin.unreadMeetingReqCount;
    },
  },
  methods: {
    hasPermission(permission) {
      if (this.$auth.loggedIn) {
        if (
          this.$auth.user.permissions.includes("superAdmin")
        ) {
          return true;
        } else if (
          this.$auth.user.permissions.includes(permission)
        ) {
          return true;
        } else {
          return false;
        }
      } else return false;
    },
    async logOut() {
      await this.$auth.logout();
      this.$router.push({ name: "admin-login" });
    },
  },
};
</script>
