# COPR Ligenix's spec file for glpi-plugin-fields
#
# Copyright (c) 2023-2023 Jean-Marc Liger
#
# License: CC-BY-SA
# http://creativecommons.org/licenses/by-sa/4.0/
#
# Please, preserve the changelog entries
#
%global pluginname fields
%global glpi_min   9.5
%global glpi_max   9.6

Name:           glpi-plugin-%{pluginname}
Version:        1.13.1
Release:        1%{?dist}
Summary:        GLPI Plugin to add custom fields
Summary(fr):    Extension GLPI pour ajouter des champs personnalisés

License:        GPLv2
URL:            https://github.com/pluginsGLPI/%{pluginname}

Source0:        https://github.com/pluginsGLPI/%{pluginname}/releases/download/%{version}/glpi-%{pluginname}-%{version}.tar.bz2

BuildArch:      noarch

%if 0%{?fedora} || 0%{?rhel} >= 8
Requires:      (glpi >= %{glpi_min} with glpi < %{glpi_max})
%else
Requires:       glpi >= %{glpi_min}
Requires:       glpi <  %{glpi_max}
%endif


%description
The fields plugin allows you to add custom fields on GLPI types : tickets, computers, users…

Addionnal data can be added :
- In object tab
- In main form of object (above save button)
- In form of a tab (Warning, this feature is experimental)

Possible fields type are :
- Header (title bloc)
- Text (single line)
- Text (multiple lines)
- Number
- Dropdown (always a tree dropdown)
- Yes / No
- Date
- Date / Hour
- Glpi User list


%description -l fr
Cette extension permet d’ajouter des champs personnalisés sur les différents objets gérés par GLPI :
tickets, ordinateurs, utilisateurs...

Les données supplémentaires peuvent être ajoutées :
- Dans un onglet de l'objet
- Dans le formulaire principal de l'objet (au dessus du bouton sauvegarder)
- Dans le formulaire d'un onglet existant (attention, cette fonctionnalité est expérimental)

Les types de champs possibles sont :
- Entête (bloc de titre)
- Texte (ligne simple)
- Texte (ligne multiples)
- Nombre
- Liste déroulante (intitulés, forcement un arbre)
- Oui / Non
- Date
- Date / Heure
- liste d'utilisateurs de GLPI


%prep
%setup -q -c

grep 'define("PLUGIN_FIELDS_M.._GLPI' %{pluginname}/setup.php
 
# remove unused files
rm %{pluginname}/plugin.{png,xml}
rm %{pluginname}/composer.json

# move doc files
mkdir docs
mv %{pluginname}/*.md              docs/
mv %{pluginname}/%{pluginname}.gif docs/
mv %{pluginname}/screenshot.png    docs/
mv %{pluginname}/glpi_network.png  docs/

# Create link to LICENSE for standard doc folder
ln -s %{_datadir}/glpi/plugins/%{pluginname}/LICENSE LICENSE


%build
# empty build


%install
mkdir -p %{buildroot}%{_localstatedir}/lib/glpi/files/_plugins/%{pluginname}

mkdir -p %{buildroot}/%{_datadir}/glpi/plugins
cp -ar %{pluginname} %{buildroot}/%{_datadir}/glpi/plugins/%{pluginname}

for i in %{buildroot}/%{_datadir}/glpi/plugins/%{pluginname}/locales/*
do
  lang=$(basename $i)
  echo "%lang(${lang:0:2}) %{_datadir}/glpi/plugins/%{pluginname}/locales/${lang}"
done | tee %{name}.lang


%files -f %{name}.lang
%{!?_licensedir:%global license %%doc}
%license LICENSE
%doc docs/*
%dir %{_datadir}/glpi/plugins/%{pluginname}
%dir %{_datadir}/glpi/plugins/%{pluginname}/locales
# LICENSE file required by installation process
%{_datadir}/glpi/plugins/%{pluginname}/LICENSE
%{_datadir}/glpi/plugins/%{pluginname}/*.php
%{_datadir}/glpi/plugins/%{pluginname}/ajax
%{_datadir}/glpi/plugins/%{pluginname}/css
%{_datadir}/glpi/plugins/%{pluginname}/front
%{_datadir}/glpi/plugins/%{pluginname}/inc
%{_datadir}/glpi/plugins/%{pluginname}/js
%{_datadir}/glpi/plugins/%{pluginname}/pics
%{_datadir}/glpi/plugins/%{pluginname}/templates
%{_datadir}/glpi/plugins/%{pluginname}/vendor
# data
%attr(750,apache,root) %{_localstatedir}/lib/glpi/files/_plugins/%{pluginname}


%changelog
* Wed May 03 2023 Jean-Marc Liger <ligenix@iscp.fr> - 1.13.1-1
- Version 1.13.1 for GLPI 9.5.x
- Initial RPM based on Remi Collet previous GLPI plugins spec files