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

Name:           glpi-plugin-%{pluginname}
Version:        2.12.7
Release:        1%{?dist}
Summary:        Plugin to allow creation of custom forms of easy access

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

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

BuildArch:      noarch
BuildRequires:  gettext

%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
This plugin allows creation of custom forms of easy access. At the same time,
the plugin allows the creation of one or more tickets when the form is filled.

Features:
- Direct access to forms self-service interface in main menu.
- Highlighting forms in homepages.
- Access to forms controlled: public access, identified user access, restricted access to some profiles.
- Simple and customizable forms.
- Forms organized by categories, entities and languages.
- Questions of any type of presentation: Textareas, lists, LDAP, files, etc.
- Questions organised in sections. Choice of the display order.
- Possibility to display a question based on certain criteria (response to a further question)
- A sharp control on responses from forms: text, numbers, size of fields, email, mandatory fields, regular expressions, etc.
- Creation of one or more tickets from form answers
- Adding a description per fields, per sections, per forms, entities or languages.
- Formatting the ticket set: answers to questions displayed, tickets templates.
- Preview form created directly in the configuration.
- An optional service catalog to browse for forms and FAQ in an unified interface.


%prep
%setup -q -c

# display compatibility check
grep "define ('PLUGIN_FORMCREATOR_GLPI_M" formcreator/setup.php

# remove unused files
rm    %{pluginname}/*.json
rm    %{pluginname}/*.lock
rm -r %{pluginname}/{tests,tools}
rm -r %{pluginname}/{.atoum.php,.github,.tx,.yarnrc}

find  %{pluginname}/vendor -name .git* -delete -print
find  %{pluginname}/vendor -name \*.xml* -delete -print
find  %{pluginname}/vendor -name \*.yml* -delete -print
find  %{pluginname}/vendor -name composer.json -delete -print

# move doc files
mkdir docs
mv %{pluginname}/README.md    docs/
mv %{pluginname}/CHANGELOG.md docs/

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


%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.md
%doc docs/*
%dir %{_datadir}/glpi/plugins/%{pluginname}
%dir %{_datadir}/glpi/plugins/%{pluginname}/locales
# LICENSE file required by installation process
%{_datadir}/glpi/plugins/%{pluginname}/LICENSE.md
%{_datadir}/glpi/plugins/%{pluginname}/icon.png
%{_datadir}/glpi/plugins/%{pluginname}/*.php
%{_datadir}/glpi/plugins/%{pluginname}/ajax
%{_datadir}/glpi/plugins/%{pluginname}/css
%{_datadir}/glpi/plugins/%{pluginname}/css_compiled
%{_datadir}/glpi/plugins/%{pluginname}/data
%{_datadir}/glpi/plugins/%{pluginname}/front
%{_datadir}/glpi/plugins/%{pluginname}/inc
%{_datadir}/glpi/plugins/%{pluginname}/install
%{_datadir}/glpi/plugins/%{pluginname}/js
%{_datadir}/glpi/plugins/%{pluginname}/lib
%{_datadir}/glpi/plugins/%{pluginname}/pics
%{_datadir}/glpi/plugins/%{pluginname}/vendor
# data
%attr(750,apache,root) %{_localstatedir}/lib/glpi/files/_plugins/%{pluginname}


%changelog
* Mon May 01 2023 Jean-Marc Liger <ligenix@iscp.fr> - 2.12.7-1
- Version 2.12.7

* Tue Nov 22 2022 Jean-Marc Liger <ligenix@iscp.fr> - 2.12.6-1
- Version 2.12.6

* Thu Mar 03 2022 Jean-Marc Liger <ligenix@iscp.fr> - 2.12.5-1
- Version 2.12.5

* Mon Jan 31 2022 Jean-Marc Liger <ligenix@iscp.fr> - 2.12.4-1
- Version 2.12.4

* Tue Nov 16 2021 Jean-Marc Liger <ligenix@iscp.fr> - 2.12.3-1
- Version 2.12.3

* Sun Sep 26 2021 Jean-Marc Liger <ligenix@iscp.fr> - 2.12.2-1
- Initial RPM based on Remi Collet previous GLPI plugins spec files