.po
6 | source_file = locales/glpiinventory.pot
7 | source_lang = en
8 | type = PO
9 |
--------------------------------------------------------------------------------
/public/pics/extensions/application__vnd.openxmlformats-officedocument.spreadsheetml.sheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glpi-project/glpi-inventory-plugin/HEAD/public/pics/extensions/application__vnd.openxmlformats-officedocument.spreadsheetml.sheet.png
--------------------------------------------------------------------------------
/public/pics/extensions/application__vnd.openxmlformats-officedocument.wordprocessingml.document.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glpi-project/glpi-inventory-plugin/HEAD/public/pics/extensions/application__vnd.openxmlformats-officedocument.wordprocessingml.document.png
--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | name: "Publish release"
2 |
3 | on:
4 | push:
5 | tags:
6 | - '*'
7 |
8 | jobs:
9 | publish-release:
10 | permissions:
11 | contents: "write"
12 | name: "Publish release"
13 | uses: "glpi-project/plugin-release-workflows/.github/workflows/publish-release.yml@v1"
14 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/visual/editor.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-html-editor-wrap {
8 | border-color:#a9bfd3;
9 | background-color:#fff;
10 | }
11 | .x-html-editor-tb .x-btn-text {
12 | background-image:url(../images/default/editor/tb-sprite.gif);
13 | }
--------------------------------------------------------------------------------
/.github/workflows/locales-update-source.yml:
--------------------------------------------------------------------------------
1 | name: "Update locales sources"
2 |
3 | on:
4 | push:
5 | branches:
6 | - "main"
7 |
8 | jobs:
9 | push-on-transifex:
10 | name: "Push locales sources"
11 | uses: "glpi-project/plugin-translation-workflows/.github/workflows/transifex-push-sources.yml@v1"
12 | secrets:
13 | transifex-token: "${{ secrets.TRANSIFEX_TOKEN }}"
14 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-gray/editor.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-html-editor-wrap {
8 | border-color:#BCBCBC;
9 | background-color:#fff;
10 | }
11 | .x-html-editor-tb .x-btn-text {
12 | background-image:url(../images/default/editor/tb-sprite.gif);
13 | }
14 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/README.txt:
--------------------------------------------------------------------------------
1 | 2010-03-16 jwr:
2 | The CSS file, yourtheme.css, is an exact copy of xtheme-blue.css. Feel free to edit the images inside the yourtheme image directory to build your custom theme--just remember to update your background-image file paths in yourtheme.css.
3 |
4 | 2006-11-21 jvs:
5 | ext-all.css contains all of the other css files combined and stripped of comments (except themes).
6 |
7 |
--------------------------------------------------------------------------------
/.github/workflows/locales-sync.yml:
--------------------------------------------------------------------------------
1 | name: "Synchronize locales"
2 |
3 | on:
4 | schedule:
5 | - cron: "0 0 * * 1-5"
6 | workflow_dispatch:
7 |
8 | jobs:
9 | sync-with-transifex:
10 | name: "Sync with transifex"
11 | uses: "glpi-project/plugin-translation-workflows/.github/workflows/transifex-sync.yml@v1"
12 | secrets:
13 | github-token: "${{ secrets.LOCALES_SYNC_TOKEN }}"
14 | transifex-token: "${{ secrets.TRANSIFEX_TOKEN }}"
15 |
--------------------------------------------------------------------------------
/.github/workflows/auto-tag-new-version.yml:
--------------------------------------------------------------------------------
1 | name: "Automatically tag new version"
2 |
3 | on:
4 | push:
5 | branches:
6 | - "main"
7 | - "*/bugfixes"
8 | paths:
9 | - "setup.php"
10 |
11 | jobs:
12 | auto-tag-new-version:
13 | name: "Automatically tag new version"
14 | uses: "glpi-project/plugin-release-workflows/.github/workflows/auto-tag-new-version.yml@v1"
15 | secrets:
16 | github-token: "${{ secrets.AUTOTAG_TOKEN }}"
17 |
--------------------------------------------------------------------------------
/.github/workflows/label-commenter.yml:
--------------------------------------------------------------------------------
1 | name: "Label commenter"
2 |
3 | on:
4 | issues:
5 | types:
6 | - "labeled"
7 | - "unlabeled"
8 |
9 | jobs:
10 | comment:
11 | permissions:
12 | contents: "read"
13 | issues: "write"
14 | runs-on: "ubuntu-latest"
15 | steps:
16 | - name: "Checkout"
17 | uses: "actions/checkout@v5"
18 |
19 | - name: "Label commenter"
20 | uses: "peaceiris/actions-label-commenter@v1"
21 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-access/editor.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-html-editor-wrap {
8 | border-color:#737B8C;
9 | background-color:#fff;
10 | }
11 | .x-html-editor-wrap iframe {
12 | background-color: #fff;
13 | }
14 | .x-html-editor-tb .x-btn-text {
15 | background-image:url(../images/access/editor/tb-sprite.gif);
16 | }
--------------------------------------------------------------------------------
/public/lib/lazy.js-0.5.1/util.js:
--------------------------------------------------------------------------------
1 | function isHarmonySupported() {
2 | var version = process.version.split('.');
3 |
4 | // We'll only bother checking Node versions 0.10 and greater
5 | if (version[0] == 'v0' && Number(version[1]) < 10) {
6 | return false;
7 | }
8 |
9 | try {
10 | eval('(function*() {})');
11 | return true;
12 | } catch (e) {
13 | return false;
14 | }
15 | }
16 |
17 | module.exports = {
18 | isHarmonySupported: isHarmonySupported
19 | };
20 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | contact_links:
2 | - name: Professional Support
3 | url: https://services.glpi-network.com/
4 | about: Professional support is available through GLPI Network subscription.
5 | - name: GLPI Community Support
6 | url: https://forum.glpi-project.org/
7 | about: You can ask questions and find answers on the forum.
8 | - name: GLPI project Telegram channel
9 | url: https://t.me/glpien
10 | about: A fast GLPI community support media.
11 |
--------------------------------------------------------------------------------
/README.tests.md:
--------------------------------------------------------------------------------
1 | # How to run tests
2 |
3 | ## Install GLPI and plugin
4 |
5 | ```
6 | cd glpi/
7 | GLPI_ENVIRONMENT_TYPE="testing" php bin/console glpi:database:install --force
8 | GLPI_ENVIRONMENT_TYPE="testing" php bin/console glpi:plugin:install --username=glpi glpiinventory
9 | GLPI_ENVIRONMENT_TYPE="testing" php bin/console glpi:plugin:activate glpiinventory
10 | ```
11 |
12 | ## Run plugin tests
13 |
14 | ```
15 | cd plugins/glpiinventory/
16 | php vendor/bin/phpunit --testdox tests/
17 | ```
18 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/reset-min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';}
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "require": {
3 | "php": ">=8.2"
4 | },
5 | "require-dev": {
6 | "friendsofphp/php-cs-fixer": "^3.83",
7 | "glpi-project/tools": "^0.8.0",
8 | "phpunit/phpunit": "^11"
9 | },
10 | "conflict": {
11 | "psr/container": "^2.0"
12 | },
13 | "autoload": {
14 | "classmap": [
15 | "inc/"
16 | ]
17 | },
18 | "config": {
19 | "optimize-autoloader": true,
20 | "platform": {
21 | "php": "8.2.99"
22 | },
23 | "sort-packages": true
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | # Ensure GitHub Actions are used in their latest version
4 | - package-ecosystem: "github-actions"
5 | directory: "/"
6 | schedule:
7 | interval: "monthly"
8 |
9 | # Strategy for composer dependencies
10 | - package-ecosystem: "composer"
11 | directory: "/"
12 | schedule:
13 | interval: "monthly"
14 | allow:
15 | - dependency-type: "direct"
16 | open-pull-requests-limit: 100
17 | versioning-strategy: "increase"
18 | groups:
19 | dev-dependencies:
20 | dependency-type: "development"
21 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | ## Checklist before requesting a review
2 |
3 | *Please delete options that are not relevant.*
4 |
5 | - [ ] I have performed a self-review of my code.
6 | - [ ] I have added tests (when available) that prove my fix is effective or that my feature works.
7 | - [ ] I have updated the CHANGELOG with a short functional description of the fix or new feature.
8 | - [ ] This change requires a documentation update.
9 |
10 | ## Description
11 |
12 | - It fixes # (issue number, if applicable)
13 | - Here is a brief description of what this PR does
14 |
15 | ## Screenshots (if appropriate):
16 |
--------------------------------------------------------------------------------
/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 | tests/Installation
10 |
11 |
12 | tests/Unit
13 |
14 |
15 | tests/Integration
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/visual/debug.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | #x-debug-browser .x-tree .x-tree-node a span {
8 | color:#222297;
9 | font-size:11px;
10 | font-family:"monotype","courier new",sans-serif;
11 | }
12 |
13 | #x-debug-browser .x-tree a i {
14 | color:#ff4545;
15 | font-style:normal;
16 | }
17 |
18 | #x-debug-browser .x-tree a em {
19 | color:#999;
20 | }
21 |
22 | #x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{
23 | background-color:#c3daf9;
24 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-gray/debug.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | #x-debug-browser .x-tree .x-tree-node a span {
8 | color:#222297;
9 | font-size:11px;
10 | font-family:"monotype","courier new",sans-serif;
11 | }
12 |
13 | #x-debug-browser .x-tree a i {
14 | color:#ff4545;
15 | font-style:normal;
16 | }
17 |
18 | #x-debug-browser .x-tree a em {
19 | color:#999;
20 | }
21 |
22 | #x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{
23 | background-color:#D5D5D5;
24 | }
25 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-access/debug.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | #x-debug-browser .x-tree .x-tree-node a span {
8 | color:#222297;
9 | font-size:14px;
10 | font-family:"monotype","courier new",sans-serif;
11 | }
12 |
13 | #x-debug-browser .x-tree a i {
14 | color:#ff4545;
15 | font-style:normal;
16 | }
17 |
18 | #x-debug-browser .x-tree a em {
19 | color:#999;
20 | }
21 |
22 | #x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{
23 | background-color:#c3daf9;
24 | }
25 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/visual/borders.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-panel-noborder .x-panel-header-noborder {
8 | border-bottom-color:#99bbe8;
9 | }
10 |
11 | .x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
12 | border-bottom-color:#99bbe8;
13 | }
14 |
15 | .x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
16 | border-top-color:#99bbe8;
17 | }
18 |
19 | .x-tab-panel-bbar-noborder .x-toolbar {
20 | border-top-color:#99bbe8;
21 | }
22 |
23 | .x-tab-panel-tbar-noborder .x-toolbar {
24 | border-bottom-color:#99bbe8;
25 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-access/borders.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-panel-noborder .x-panel-header-noborder {
8 | border-bottom-color:#343d4e;
9 | }
10 |
11 | .x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
12 | border-bottom-color:#343d4e;
13 | }
14 |
15 | .x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
16 | border-top-color:#343d4e;
17 | }
18 |
19 | .x-tab-panel-bbar-noborder .x-toolbar {
20 | border-top-color:#343d4e;
21 | }
22 |
23 | .x-tab-panel-tbar-noborder .x-toolbar {
24 | border-bottom-color:#343d4e;
25 | }
26 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/structure/debug.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | #x-debug-browser .x-tree .x-tree-node a span {
8 | padding-top:2px;
9 | line-height:18px;
10 | }
11 |
12 | #x-debug-browser .x-tool-toggle {
13 | background-position:0 -75px;
14 | }
15 |
16 | #x-debug-browser .x-tool-toggle-over {
17 | background-position:-15px -75px;
18 | }
19 |
20 | #x-debug-browser.x-panel-collapsed .x-tool-toggle {
21 | background-position:0 -60px;
22 | }
23 |
24 | #x-debug-browser.x-panel-collapsed .x-tool-toggle-over {
25 | background-position:-15px -60px;
26 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/structure/reset.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';}
8 |
9 | .ext-forced-border-box, .ext-forced-border-box * {
10 | -moz-box-sizing: border-box;
11 | -ms-box-sizing: border-box;
12 | -webkit-box-sizing: border-box;
13 | }
14 |
--------------------------------------------------------------------------------
/phpstan.neon:
--------------------------------------------------------------------------------
1 | includes:
2 | - ../../vendor/glpi-project/phpstan-glpi/extension.neon
3 | - ../../vendor/phpstan/phpstan-deprecation-rules/rules.neon
4 | - ../../vendor/thecodingmachine/phpstan-safe-rule/phpstan-safe-rule.neon
5 |
6 | parameters:
7 | parallel:
8 | maximumNumberOfProcesses: 2
9 | level: 5
10 | bootstrapFiles:
11 | - ../../stubs/glpi_constants.php
12 | - ../../vendor/autoload.php
13 | - setup.php
14 | paths:
15 | - ajax
16 | - front
17 | - inc
18 | - src
19 | - install
20 | - public
21 | - report
22 | - hook.php
23 | - setup.php
24 | scanDirectories:
25 | - ../../inc
26 | - ../../src
27 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-gray/borders.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-panel-noborder .x-panel-header-noborder {
8 | border-bottom-color:#d0d0d0;
9 | }
10 |
11 | .x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
12 | border-bottom-color:#d0d0d0;
13 | }
14 |
15 | .x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
16 | border-top-color:#d0d0d0;
17 | }
18 |
19 | .x-tab-panel-bbar-noborder .x-toolbar {
20 | border-top-color:#d0d0d0;
21 | }
22 |
23 | .x-tab-panel-tbar-noborder .x-toolbar {
24 | border-bottom-color:#d0d0d0;
25 | }
26 |
27 | .x-border-layout-ct {
28 | background-color:#f0f0f0;
29 | }
30 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-gray/slider.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-slider-horz, .x-slider-horz .x-slider-end, .x-slider-horz .x-slider-inner {
8 | background-image:url(../images/default/slider/slider-bg.png);
9 | }
10 |
11 | .x-slider-horz .x-slider-thumb {
12 | background-image:url(../images/gray/slider/slider-thumb.png);
13 | }
14 |
15 | .x-slider-vert, .x-slider-vert .x-slider-end, .x-slider-vert .x-slider-inner {
16 | background-image:url(../images/default/slider/slider-v-bg.png);
17 | }
18 |
19 | .x-slider-vert .x-slider-thumb {
20 | background-image:url(../images/gray/slider/slider-v-thumb.png);
21 | }
22 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/visual/slider.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-slider-horz, .x-slider-horz .x-slider-end, .x-slider-horz .x-slider-inner {
8 | background-image:url(../images/default/slider/slider-bg.png);
9 | }
10 |
11 | .x-slider-horz .x-slider-thumb {
12 | background-image:url(../images/default/slider/slider-thumb.png);
13 | }
14 |
15 | .x-slider-vert, .x-slider-vert .x-slider-end, .x-slider-vert .x-slider-inner {
16 | background-image:url(../images/default/slider/slider-v-bg.png);
17 | }
18 |
19 | .x-slider-vert .x-slider-thumb {
20 | background-image:url(../images/default/slider/slider-v-thumb.png);
21 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-access/slider.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-slider-horz, .x-slider-horz .x-slider-end, .x-slider-horz .x-slider-inner {
8 | background-image:url(../images/access/slider/slider-bg.png);
9 | }
10 |
11 | .x-slider-horz .x-slider-thumb {
12 | background-image:url(../images/access/slider/slider-thumb.png);
13 | }
14 |
15 | .x-slider-vert, .x-slider-vert .x-slider-end, .x-slider-vert .x-slider-inner {
16 | background-image:url(../images/access/slider/slider-v-bg.png);
17 | }
18 |
19 | .x-slider-vert .x-slider-thumb {
20 | background-image:url(../images/access/slider/slider-v-thumb.png);
21 | }
22 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/visual/dd.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-dd-drag-ghost{
8 | color:#000;
9 | font: normal 11px arial, helvetica, sans-serif;
10 | border-color: #ddd #bbb #bbb #ddd;
11 | background-color:#fff;
12 | }
13 |
14 | .x-dd-drop-nodrop .x-dd-drop-icon{
15 | background-image: url(../images/default/dd/drop-no.gif);
16 | }
17 |
18 | .x-dd-drop-ok .x-dd-drop-icon{
19 | background-image: url(../images/default/dd/drop-yes.gif);
20 | }
21 |
22 | .x-dd-drop-ok-add .x-dd-drop-icon{
23 | background-image: url(../images/default/dd/drop-add.gif);
24 | }
25 |
26 | .x-view-selector {
27 | background-color:#c3daf9;
28 | border-color:#3399bb;
29 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-gray/dd.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-dd-drag-ghost{
8 | color:#000;
9 | font: normal 11px arial, helvetica, sans-serif;
10 | border-color: #ddd #bbb #bbb #ddd;
11 | background-color:#fff;
12 | }
13 |
14 | .x-dd-drop-nodrop .x-dd-drop-icon{
15 | background-image: url(../images/default/dd/drop-no.gif);
16 | }
17 |
18 | .x-dd-drop-ok .x-dd-drop-icon{
19 | background-image: url(../images/default/dd/drop-yes.gif);
20 | }
21 |
22 | .x-dd-drop-ok-add .x-dd-drop-icon{
23 | background-image: url(../images/default/dd/drop-add.gif);
24 | }
25 |
26 | .x-view-selector {
27 | background-color:#D6D6D6;
28 | border-color:#888888;
29 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/visual/progress.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-progress-wrap {
8 | border-color:#6593cf;
9 | }
10 |
11 | .x-progress-inner {
12 | background-color:#e0e8f3;
13 | background-image:url(../images/default/qtip/bg.gif);
14 | }
15 |
16 | .x-progress-bar {
17 | background-color:#9cbfee;
18 | background-image:url(../images/default/progress/progress-bg.gif);
19 | border-top-color:#d1e4fd;
20 | border-bottom-color:#7fa9e4;
21 | border-right-color:#7fa9e4;
22 | }
23 |
24 | .x-progress-text {
25 | font-size:11px;
26 | font-weight:bold;
27 | color:#fff;
28 | }
29 |
30 | .x-progress-text-back {
31 | color:#396095;
32 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-access/dd.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-dd-drag-ghost{
8 | color:#000;
9 | font: normal 14px arial, helvetica, sans-serif;
10 | border-color: #ddd #bbb #bbb #ddd;
11 | background-color:#fff;
12 | }
13 |
14 | .x-dd-drop-nodrop .x-dd-drop-icon{
15 | background-image: url(../images/default/dd/drop-no.gif);
16 | }
17 |
18 | .x-dd-drop-ok .x-dd-drop-icon{
19 | background-image: url(../images/default/dd/drop-yes.gif);
20 | }
21 |
22 | .x-dd-drop-ok-add .x-dd-drop-icon{
23 | background-image: url(../images/default/dd/drop-add.gif);
24 | }
25 |
26 | .x-view-selector {
27 | background-color:#c3daf9;
28 | border-color:#3399bb;
29 | }
30 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-gray/progress.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-progress-wrap {
8 | border-color:#8E8E8E;
9 | }
10 |
11 | .x-progress-inner {
12 | background-color:#E7E7E7;
13 | background-image:url(../images/gray/qtip/bg.gif);
14 | }
15 |
16 | .x-progress-bar {
17 | background-color:#BCBCBC;
18 | background-image:url(../images/gray/progress/progress-bg.gif);
19 | border-top-color:#E2E2E2;
20 | border-bottom-color:#A4A4A4;
21 | border-right-color:#A4A4A4;
22 | }
23 |
24 | .x-progress-text {
25 | font-size:11px;
26 | font-weight:bold;
27 | color:#fff;
28 | }
29 |
30 | .x-progress-text-back {
31 | color:#5F5F5F;
32 | }
33 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/visual/pivotgrid.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-pivotgrid .x-grid3-header-offset table td {
8 | background: url(../images/default/grid/grid3-hrow.gif) repeat-x 50% 100%;
9 | border-left: 1px solid;
10 | border-right: 1px solid;
11 | border-left-color: #EEE;
12 | border-right-color: #D0D0D0;
13 | }
14 |
15 | .x-pivotgrid .x-grid3-row-headers {
16 | background-color: #f9f9f9;
17 | }
18 |
19 | .x-pivotgrid .x-grid3-row-headers table td {
20 | background: #EEE url(../images/default/grid/grid3-rowheader.gif) repeat-x left top;
21 | border-left: 1px solid;
22 | border-right: 1px solid;
23 | border-left-color: #EEE;
24 | border-right-color: #D0D0D0;
25 | border-bottom: 1px solid;
26 | border-bottom-color: #D0D0D0;
27 | height: 18px;
28 | }
29 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-gray/pivotgrid.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-pivotgrid .x-grid3-header-offset table td {
8 | background: url(../images/gray/grid/grid3-hrow2.gif) repeat-x 50% 100%;
9 | border-left: 1px solid;
10 | border-right: 1px solid;
11 | border-left-color: #D0D0D0;
12 | border-right-color: #D0D0D0;
13 | }
14 |
15 | .x-pivotgrid .x-grid3-row-headers {
16 | background-color: #f9f9f9;
17 | }
18 |
19 | .x-pivotgrid .x-grid3-row-headers table td {
20 | background: #EEE url(../images/default/grid/grid3-rowheader.gif) repeat-x left top;
21 | border-left: 1px solid;
22 | border-right: 1px solid;
23 | border-left-color: #EEE;
24 | border-right-color: #D0D0D0;
25 | border-bottom: 1px solid;
26 | border-bottom-color: #D0D0D0;
27 | height: 18px;
28 | }
29 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-access/progress.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-progress-wrap {
8 | border-color:#18181a;
9 | }
10 |
11 | .x-progress-inner {
12 | background-color:#232d38;
13 | background-image:none;
14 | }
15 |
16 | .x-progress-bar {
17 | background-color:#f39a00;
18 | background-image:url(../images/access/progress/progress-bg.gif);
19 | border-top-color:#a66900;
20 | border-bottom-color:#a66900;
21 | border-right-color:#ffb941;
22 | height: 20px !important; /* structural override for Accessibility Theme */
23 | }
24 |
25 | .x-progress-text {
26 | font-size:14px;
27 | font-weight:bold;
28 | color:#fff;
29 | padding: 0 5px !important; /* structural override for Accessibility Theme */
30 | }
31 |
32 | .x-progress-text-back {
33 | color:#aaa;
34 | line-height: 19px;
35 | }
36 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/visual/list-view.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-list-header{
8 | background-color:#f9f9f9;
9 | background-image:url(../images/default/grid/grid3-hrow.gif);
10 | }
11 |
12 | .x-list-header-inner div em {
13 | border-left-color:#ddd;
14 | font:normal 11px arial, tahoma, helvetica, sans-serif;
15 | }
16 |
17 | .x-list-body dt em {
18 | font:normal 11px arial, tahoma, helvetica, sans-serif;
19 | }
20 |
21 | .x-list-over {
22 | background-color:#eee;
23 | }
24 |
25 | .x-list-selected {
26 | background-color:#dfe8f6;
27 | }
28 |
29 | .x-list-resizer {
30 | border-left-color:#555;
31 | border-right-color:#555;
32 | }
33 |
34 | .x-list-header-inner em.sort-asc, .x-list-header-inner em.sort-desc {
35 | background-image:url(../images/default/grid/sort-hd.gif);
36 | border-color: #99bbe8;
37 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-gray/list-view.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-list-header{
8 | background-color:#f9f9f9;
9 | background-image:url(../images/gray/grid/grid3-hrow2.gif);
10 | }
11 |
12 | .x-list-header-inner div em {
13 | border-left-color:#ddd;
14 | font:normal 11px arial, tahoma, helvetica, sans-serif;
15 | }
16 |
17 | .x-list-body dt em {
18 | font:normal 11px arial, tahoma, helvetica, sans-serif;
19 | }
20 |
21 | .x-list-over {
22 | background-color:#eee;
23 | }
24 |
25 | .x-list-selected {
26 | background-color:#f0f0f0;
27 | }
28 |
29 | .x-list-resizer {
30 | border-left-color:#555;
31 | border-right-color:#555;
32 | }
33 |
34 | .x-list-header-inner em.sort-asc, .x-list-header-inner em.sort-desc {
35 | background-image:url(../images/gray/grid/sort-hd.gif);
36 | border-color: #d0d0d0;
37 | }
38 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-gray/dialog.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-window-dlg .ext-mb-text,
8 | .x-window-dlg .x-window-header-text {
9 | font-size:12px;
10 | }
11 |
12 | .x-window-dlg .ext-mb-textarea {
13 | font:normal 12px tahoma,arial,helvetica,sans-serif;
14 | }
15 |
16 | .x-window-dlg .x-msg-box-wait {
17 | background-image:url(../images/default/grid/loading.gif);
18 | }
19 |
20 | .x-window-dlg .ext-mb-info {
21 | background-image:url(../images/gray/window/icon-info.gif);
22 | }
23 |
24 | .x-window-dlg .ext-mb-warning {
25 | background-image:url(../images/gray/window/icon-warning.gif);
26 | }
27 |
28 | .x-window-dlg .ext-mb-question {
29 | background-image:url(../images/gray/window/icon-question.gif);
30 | }
31 |
32 | .x-window-dlg .ext-mb-error {
33 | background-image:url(../images/gray/window/icon-error.gif);
34 | }
35 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/visual/dialog.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-window-dlg .ext-mb-text,
8 | .x-window-dlg .x-window-header-text {
9 | font-size:12px;
10 | }
11 |
12 | .x-window-dlg .ext-mb-textarea {
13 | font:normal 12px tahoma,arial,helvetica,sans-serif;
14 | }
15 |
16 | .x-window-dlg .x-msg-box-wait {
17 | background-image:url(../images/default/grid/loading.gif);
18 | }
19 |
20 | .x-window-dlg .ext-mb-info {
21 | background-image:url(../images/default/window/icon-info.gif);
22 | }
23 |
24 | .x-window-dlg .ext-mb-warning {
25 | background-image:url(../images/default/window/icon-warning.gif);
26 | }
27 |
28 | .x-window-dlg .ext-mb-question {
29 | background-image:url(../images/default/window/icon-question.gif);
30 | }
31 |
32 | .x-window-dlg .ext-mb-error {
33 | background-image:url(../images/default/window/icon-error.gif);
34 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-access/dialog.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-window-dlg .ext-mb-text,
8 | .x-window-dlg .x-window-header-text {
9 | font-size:15px;
10 | }
11 |
12 | .x-window-dlg .ext-mb-textarea {
13 | font:normal 15px tahoma,arial,helvetica,sans-serif;
14 | }
15 |
16 | .x-window-dlg .x-msg-box-wait {
17 | background-image:url(../images/access/grid/loading.gif);
18 | }
19 |
20 | .x-window-dlg .ext-mb-info {
21 | background-image:url(../images/access/window/icon-info.gif);
22 | }
23 |
24 | .x-window-dlg .ext-mb-warning {
25 | background-image:url(../images/access/window/icon-warning.gif);
26 | }
27 |
28 | .x-window-dlg .ext-mb-question {
29 | background-image:url(../images/access/window/icon-question.gif);
30 | }
31 |
32 | .x-window-dlg .ext-mb-error {
33 | background-image:url(../images/access/window/icon-error.gif);
34 | }
35 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/structure/progress.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-progress-wrap {
8 | border:1px solid;
9 | overflow:hidden;
10 | }
11 |
12 | .x-progress-inner {
13 | height:18px;
14 | background:repeat-x;
15 | position:relative;
16 | }
17 |
18 | .x-progress-bar {
19 | height:18px;
20 | float:left;
21 | width:0;
22 | background: repeat-x left center;
23 | border-top:1px solid;
24 | border-bottom:1px solid;
25 | border-right:1px solid;
26 | }
27 |
28 | .x-progress-text {
29 | padding:1px 5px;
30 | overflow:hidden;
31 | position:absolute;
32 | left:0;
33 | text-align:center;
34 | }
35 |
36 | .x-progress-text-back {
37 | line-height:16px;
38 | }
39 |
40 | .ext-ie .x-progress-text-back {
41 | line-height:15px;
42 | }
43 |
44 | .ext-strict .ext-ie7 .x-progress-text-back{
45 | width: 100%;
46 | }
47 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/structure/combo.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-combo-list {
8 | border:1px solid;
9 | zoom:1;
10 | overflow:hidden;
11 | }
12 |
13 | .x-combo-list-inner {
14 | overflow:auto;
15 | position:relative; /* for calculating scroll offsets */
16 | zoom:1;
17 | overflow-x:hidden;
18 | }
19 |
20 | .x-combo-list-hd {
21 | border-bottom:1px solid;
22 | padding:3px;
23 | }
24 |
25 | .x-resizable-pinned .x-combo-list-inner {
26 | border-bottom:1px solid;
27 | }
28 |
29 | .x-combo-list-item {
30 | padding:2px;
31 | border:1px solid;
32 | white-space: nowrap;
33 | overflow:hidden;
34 | text-overflow: ellipsis;
35 | }
36 |
37 | .x-combo-list .x-combo-selected{
38 | border:1px dotted !important;
39 | cursor:pointer;
40 | }
41 |
42 | .x-combo-list .x-toolbar {
43 | border-top:1px solid;
44 | border-bottom:0 none;
45 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-gray/combo.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-combo-list {
8 | border-color:#ccc;
9 | background-color:#ddd;
10 | font:normal 12px tahoma, arial, helvetica, sans-serif;
11 | }
12 |
13 | .x-combo-list-inner {
14 | background-color:#fff;
15 | }
16 |
17 | .x-combo-list-hd {
18 | font:bold 11px tahoma, arial, helvetica, sans-serif;
19 | color:#333;
20 | background-image: url(../images/default/layout/panel-title-light-bg.gif);
21 | border-bottom-color:#BCBCBC;
22 | }
23 |
24 | .x-resizable-pinned .x-combo-list-inner {
25 | border-bottom-color:#BEBEBE;
26 | }
27 |
28 | .x-combo-list-item {
29 | border-color:#fff;
30 | }
31 |
32 | .x-combo-list .x-combo-selected{
33 | border-color:#777 !important;
34 | background-color:#f0f0f0;
35 | }
36 |
37 | .x-combo-list .x-toolbar {
38 | border-top-color:#BCBCBC;
39 | }
40 |
41 | .x-combo-list-small {
42 | font:normal 11px tahoma, arial, helvetica, sans-serif;
43 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/visual/combo.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-combo-list {
8 | border-color:#98c0f4;
9 | background-color:#ddecfe;
10 | font:normal 12px tahoma, arial, helvetica, sans-serif;
11 | }
12 |
13 | .x-combo-list-inner {
14 | background-color:#fff;
15 | }
16 |
17 | .x-combo-list-hd {
18 | font:bold 11px tahoma, arial, helvetica, sans-serif;
19 | color:#15428b;
20 | background-image: url(../images/default/layout/panel-title-light-bg.gif);
21 | border-bottom-color:#98c0f4;
22 | }
23 |
24 | .x-resizable-pinned .x-combo-list-inner {
25 | border-bottom-color:#98c0f4;
26 | }
27 |
28 | .x-combo-list-item {
29 | border-color:#fff;
30 | }
31 |
32 | .x-combo-list .x-combo-selected{
33 | border-color:#a3bae9 !important;
34 | background-color:#dfe8f6;
35 | }
36 |
37 | .x-combo-list .x-toolbar {
38 | border-top-color:#98c0f4;
39 | }
40 |
41 | .x-combo-list-small {
42 | font:normal 11px tahoma, arial, helvetica, sans-serif;
43 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-access/list-view.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-list-header{
8 | background-color:#393d4e;
9 | background-image:url(../images/access/toolbar/bg.gif);
10 | background-position:0 top;
11 | }
12 |
13 | .x-list-header-inner div em {
14 | border-left-color:#667;
15 | font:normal 14px arial, tahoma, helvetica, sans-serif;
16 | line-height: 14px;
17 | }
18 |
19 | .x-list-body-inner {
20 | background-color:#1B232B;
21 | }
22 |
23 | .x-list-body dt em {
24 | font:normal 14px arial, tahoma, helvetica, sans-serif;
25 | }
26 |
27 | .x-list-over {
28 | background-color:#7E5530;
29 | }
30 |
31 | .x-list-selected {
32 | background-color:#E5872C;
33 | }
34 |
35 | .x-list-resizer {
36 | border-left-color:#555;
37 | border-right-color:#555;
38 | }
39 |
40 | .x-list-header-inner em.sort-asc, .x-list-header-inner em.sort-desc {
41 | background-image:url(../images/access/grid/sort-hd.gif);
42 | border-color: #3e4e6c;
43 | }
44 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/debug.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | #x-debug-browser .x-tree .x-tree-node a span {
8 | padding-top:2px;
9 | line-height:18px;
10 | }
11 |
12 | #x-debug-browser .x-tool-toggle {
13 | background-position:0 -75px;
14 | }
15 |
16 | #x-debug-browser .x-tool-toggle-over {
17 | background-position:-15px -75px;
18 | }
19 |
20 | #x-debug-browser.x-panel-collapsed .x-tool-toggle {
21 | background-position:0 -60px;
22 | }
23 |
24 | #x-debug-browser.x-panel-collapsed .x-tool-toggle-over {
25 | background-position:-15px -60px;
26 | }#x-debug-browser .x-tree .x-tree-node a span {
27 | color:#222297;
28 | font-size:11px;
29 | font-family:"monotype","courier new",sans-serif;
30 | }
31 |
32 | #x-debug-browser .x-tree a i {
33 | color:#ff4545;
34 | font-style:normal;
35 | }
36 |
37 | #x-debug-browser .x-tree a em {
38 | color:#999;
39 | }
40 |
41 | #x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{
42 | background-color:#c3daf9;
43 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-access/combo.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-combo-list {
8 | border:2px solid #232732;
9 | background-color:#555566;
10 | font:normal 15px tahoma, arial, helvetica, sans-serif;
11 | }
12 |
13 | .x-combo-list-inner {
14 | background-color:#414551;
15 | }
16 |
17 | .x-combo-list-hd {
18 | font:bold 14px tahoma, arial, helvetica, sans-serif;
19 | color:#fff;
20 | background-image: url(../images/default/layout/panel-title-light-bg.gif);
21 | border-bottom-color:#98c0f4;
22 | }
23 |
24 | .x-resizable-pinned .x-combo-list-inner {
25 | border-bottom-color:#98c0f4;
26 | }
27 |
28 | .x-combo-list-item {
29 | border-color:#556;
30 | }
31 |
32 | .x-combo-list .x-combo-selected {
33 | border-color:#e5872c !important;
34 | background-color:#e5872c;
35 | }
36 |
37 | .x-combo-list .x-toolbar {
38 | border-top-color:#98c0f4;
39 | }
40 |
41 | .x-combo-list-small {
42 | font:normal 14px tahoma, arial, helvetica, sans-serif;
43 | }
44 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## GLPI Inventory Plugin
2 |
3 | This plugin handles various types of tasks for GLPI agents:
4 | * Network discovery and inventory (SNMP)
5 | * Software deployment
6 | * VMWare ESX host remote inventory
7 | * Collect data (files, Windows registry, WMI)
8 |
9 | Computer and Network inventories themselves are done on GLPI side; the plugin only handle network related *tasks*.
10 |
11 | ## Third-party icons and images
12 |
13 | Some icons used in the project comes from the following set of graphics licensed:
14 | * Dortmund is copyright by [PC.DE](http://pc.de/icons/) and made available under a [Creative Commons Attribution 3.0 License](http://creativecommons.org/licenses/by/3.0/deed).
15 |
16 | * Fugue Icons is copyright by [Yusuke Kamiyamame](http://p.yusukekamiyamane.com/) and made available under a [Creative Commons Attribution 3.0 License](http://creativecommons.org/licenses/by/3.0/deed).
17 |
18 | ## Additional resources
19 |
20 | * [Official website](http://glpi-project.org/)
21 | * [Translations on transifex service](https://app.transifex.com/teclib/glpi-plugin-glpiinventory/languages/)
22 | * [Issues](https://github.com/glpi-project/glpi-inventory-plugin)
23 |
--------------------------------------------------------------------------------
/public/lib/lazy.js-0.5.1/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014—2018 Dan Tao
2 |
3 | MIT License
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining
6 | a copy of this software and associated documentation files (the
7 | "Software"), to deal in the Software without restriction, including
8 | without limitation the rights to use, copy, modify, merge, publish,
9 | distribute, sublicense, and/or sell copies of the Software, and to
10 | permit persons to whom the Software is furnished to do so, subject to
11 | the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be
14 | included in all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/tools/HEADER:
--------------------------------------------------------------------------------
1 | ---------------------------------------------------------------------
2 | GLPI Inventory Plugin
3 | Copyright (C) 2021 Teclib' and contributors.
4 |
5 | http://glpi-project.org
6 |
7 | based on FusionInventory for GLPI
8 | Copyright (C) 2010-2021 by the FusionInventory Development Team.
9 |
10 | ---------------------------------------------------------------------
11 |
12 | LICENSE
13 |
14 | This file is part of GLPI Inventory Plugin.
15 |
16 | GLPI Inventory Plugin is free software: you can redistribute it and/or modify
17 | it under the terms of the GNU Affero General Public License as published by
18 | the Free Software Foundation, either version 3 of the License, or
19 | (at your option) any later version.
20 |
21 | GLPI Inventory Plugin is distributed in the hope that it will be useful,
22 | but WITHOUT ANY WARRANTY; without even the implied warranty of
23 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 | GNU Affero General Public License for more details.
25 |
26 | You should have received a copy of the GNU Affero General Public License
27 | along with GLPI Inventory Plugin. If not, see .
28 | ---------------------------------------------------------------------
29 |
--------------------------------------------------------------------------------
/.github/label-commenter-config.yml:
--------------------------------------------------------------------------------
1 | labels:
2 | - name: "invalid"
3 | labeled:
4 | issue:
5 | body: |
6 | This issue has been closed because you did not provide the requested information.
7 | action: "close"
8 | - name: "support"
9 | labeled:
10 | issue:
11 | body: |
12 | This issue has been closed as we only track bugs here.
13 |
14 | You can get community support on [forums](https://forum.glpi-project.org/) or you can consider [taking a subscription](https://glpi-project.org/subscriptions/) to get professional support.
15 | You can also [contact GLPI editor team](https://portal.glpi-network.com/contact-us) directly.
16 | action: close
17 | - name: "feature suggestion"
18 | labeled:
19 | issue:
20 | body: |
21 | This issue has been closed as we only track bugs here.
22 |
23 | You can open a topic to discuss with community about this enhancement on [suggestion website](https://glpi.userecho.com/).
24 | You can also [contact GLPI editor team](https://portal.glpi-network.com/contact-us) directly if you are willing to sponsor this feature.
25 | action: close
26 |
--------------------------------------------------------------------------------
/public/lib/mustache.js-2.3.0/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2009 Chris Wanstrath (Ruby)
4 | Copyright (c) 2010-2014 Jan Lehnardt (JavaScript)
5 | Copyright (c) 2010-2015 The mustache.js community
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8 |
9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
10 |
11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
12 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/structure/dd.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-dd-drag-proxy{
8 | position:absolute;
9 | left:0;
10 | top:0;
11 | visibility:hidden;
12 | z-index:15000;
13 | }
14 |
15 | .x-dd-drag-ghost{
16 | -moz-opacity: 0.85;
17 | opacity:.85;
18 | filter: alpha(opacity=85);
19 | border: 1px solid;
20 | padding:3px;
21 | padding-left:20px;
22 | white-space:nowrap;
23 | }
24 |
25 | .x-dd-drag-repair .x-dd-drag-ghost{
26 | -moz-opacity: 0.4;
27 | opacity:.4;
28 | filter: alpha(opacity=40);
29 | border:0 none;
30 | padding:0;
31 | background-color:transparent;
32 | }
33 |
34 | .x-dd-drag-repair .x-dd-drop-icon{
35 | visibility:hidden;
36 | }
37 |
38 | .x-dd-drop-icon{
39 | position:absolute;
40 | top:3px;
41 | left:3px;
42 | display:block;
43 | width:16px;
44 | height:16px;
45 | background-color:transparent;
46 | background-position: center;
47 | background-repeat: no-repeat;
48 | z-index:1;
49 | }
50 |
51 | .x-view-selector {
52 | position:absolute;
53 | left:0;
54 | top:0;
55 | width:0;
56 | border:1px dotted;
57 | opacity: .5;
58 | -moz-opacity: .5;
59 | filter:alpha(opacity=50);
60 | zoom:1;
61 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/structure/borders.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-panel-noborder .x-panel-body-noborder {
8 | border-width:0;
9 | }
10 |
11 | .x-panel-noborder .x-panel-header-noborder {
12 | border-width:0 0 1px;
13 | border-style:solid;
14 | }
15 |
16 | .x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
17 | border-width:0 0 1px;
18 | border-style:solid;
19 | }
20 |
21 | .x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
22 | border-width:1px 0 0 0;
23 | border-style:solid;
24 | }
25 |
26 | .x-window-noborder .x-window-mc {
27 | border-width:0;
28 | }
29 |
30 | .x-window-plain .x-window-body-noborder {
31 | border-width:0;
32 | }
33 |
34 | .x-tab-panel-noborder .x-tab-panel-body-noborder {
35 | border-width:0;
36 | }
37 |
38 | .x-tab-panel-noborder .x-tab-panel-header-noborder {
39 | border-width: 0 0 1px 0;
40 | }
41 |
42 | .x-tab-panel-noborder .x-tab-panel-footer-noborder {
43 | border-width: 1px 0 0 0;
44 | }
45 |
46 | .x-tab-panel-bbar-noborder .x-toolbar {
47 | border-width: 1px 0 0 0;
48 | border-style:solid;
49 | }
50 |
51 | .x-tab-panel-tbar-noborder .x-toolbar {
52 | border-width:0 0 1px;
53 | border-style:solid;
54 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/structure/dialog.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-window-dlg .x-window-body {
8 | border:0 none !important;
9 | padding:5px 10px;
10 | overflow:hidden !important;
11 | }
12 |
13 | .x-window-dlg .x-window-mc {
14 | border:0 none !important;
15 | }
16 |
17 | .x-window-dlg .ext-mb-input {
18 | margin-top:4px;
19 | width:95%;
20 | }
21 |
22 | .x-window-dlg .ext-mb-textarea {
23 | margin-top:4px;
24 | }
25 |
26 | .x-window-dlg .x-progress-wrap {
27 | margin-top:4px;
28 | }
29 |
30 | .ext-ie .x-window-dlg .x-progress-wrap {
31 | margin-top:6px;
32 | }
33 |
34 | .x-window-dlg .x-msg-box-wait {
35 | background:transparent no-repeat left;
36 | display:block;
37 | width:300px;
38 | padding-left:18px;
39 | line-height:18px;
40 | }
41 |
42 | .x-window-dlg .ext-mb-icon {
43 | float:left;
44 | width:47px;
45 | height:32px;
46 | }
47 |
48 | .x-window-dlg .x-dlg-icon .ext-mb-content{
49 | zoom: 1;
50 | margin-left: 47px;
51 | }
52 |
53 | .x-window-dlg .ext-mb-info, .x-window-dlg .ext-mb-warning, .x-window-dlg .ext-mb-question, .x-window-dlg .ext-mb-error {
54 | background:transparent no-repeat top left;
55 | }
56 |
57 | .ext-gecko2 .ext-mb-fix-cursor {
58 | overflow:auto;
59 | }
--------------------------------------------------------------------------------
/tools/phpdoc.sh:
--------------------------------------------------------------------------------
1 | #
2 | # ---------------------------------------------------------------------
3 | # GLPI Inventory Plugin
4 | # Copyright (C) 2021 Teclib' and contributors.
5 | #
6 | # http://glpi-project.org
7 | #
8 | # based on FusionInventory for GLPI
9 | # Copyright (C) 2010-2021 by the FusionInventory Development Team.
10 | #
11 | # ---------------------------------------------------------------------
12 | #
13 | # LICENSE
14 | #
15 | # This file is part of GLPI Inventory Plugin.
16 | #
17 | # GLPI Inventory Plugin is free software: you can redistribute it and/or modify
18 | # it under the terms of the GNU Affero General Public License as published by
19 | # the Free Software Foundation, either version 3 of the License, or
20 | # (at your option) any later version.
21 | #
22 | # GLPI Inventory Plugin is distributed in the hope that it will be useful,
23 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
24 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 | # GNU Affero General Public License for more details.
26 | #
27 | # You should have received a copy of the GNU Affero General Public License
28 | # along with GLPI Inventory Plugin. If not, see .
29 | # ---------------------------------------------------------------------
30 | #
31 |
32 | phpdoc -d ../ -t dev-docs/ --ignore "phpunit*","lib*","tools*","scripts*" --force --title "Plugin GLPI Inventory code documentation"
33 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-gray/qtips.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-tip .x-tip-close{
8 | background-image: url(../images/gray/qtip/close.gif);
9 | }
10 |
11 | .x-tip .x-tip-tc, .x-tip .x-tip-tl, .x-tip .x-tip-tr, .x-tip .x-tip-bc, .x-tip .x-tip-bl, .x-tip .x-tip-br, .x-tip .x-tip-ml, .x-tip .x-tip-mr {
12 | background-image: url(../images/gray/qtip/tip-sprite.gif);
13 | }
14 |
15 | .x-tip .x-tip-mc {
16 | font: normal 11px tahoma,arial,helvetica,sans-serif;
17 | }
18 | .x-tip .x-tip-ml {
19 | background-color: #fff;
20 | }
21 |
22 | .x-tip .x-tip-header-text {
23 | font: bold 11px tahoma,arial,helvetica,sans-serif;
24 | color:#444;
25 | }
26 |
27 | .x-tip .x-tip-body {
28 | font: normal 11px tahoma,arial,helvetica,sans-serif;
29 | color:#444;
30 | }
31 |
32 | .x-form-invalid-tip .x-tip-tc, .x-form-invalid-tip .x-tip-tl, .x-form-invalid-tip .x-tip-tr, .x-form-invalid-tip .x-tip-bc,
33 | .x-form-invalid-tip .x-tip-bl, .x-form-invalid-tip .x-tip-br, .x-form-invalid-tip .x-tip-ml, .x-form-invalid-tip .x-tip-mr
34 | {
35 | background-image: url(../images/default/form/error-tip-corners.gif);
36 | }
37 |
38 | .x-form-invalid-tip .x-tip-body {
39 | background-image:url(../images/default/form/exclamation.gif);
40 | }
41 |
42 | .x-tip-anchor {
43 | background-image:url(../images/gray/qtip/tip-anchor-sprite.gif);
44 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/visual/qtips.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-tip .x-tip-close{
8 | background-image: url(../images/default/qtip/close.gif);
9 | }
10 |
11 | .x-tip .x-tip-tc, .x-tip .x-tip-tl, .x-tip .x-tip-tr, .x-tip .x-tip-bc, .x-tip .x-tip-bl, .x-tip .x-tip-br, .x-tip .x-tip-ml, .x-tip .x-tip-mr {
12 | background-image: url(../images/default/qtip/tip-sprite.gif);
13 | }
14 |
15 | .x-tip .x-tip-mc {
16 | font: normal 11px tahoma,arial,helvetica,sans-serif;
17 | }
18 | .x-tip .x-tip-ml {
19 | background-color: #fff;
20 | }
21 |
22 | .x-tip .x-tip-header-text {
23 | font: bold 11px tahoma,arial,helvetica,sans-serif;
24 | color:#444;
25 | }
26 |
27 | .x-tip .x-tip-body {
28 | font: normal 11px tahoma,arial,helvetica,sans-serif;
29 | color:#444;
30 | }
31 |
32 | .x-form-invalid-tip .x-tip-tc, .x-form-invalid-tip .x-tip-tl, .x-form-invalid-tip .x-tip-tr, .x-form-invalid-tip .x-tip-bc,
33 | .x-form-invalid-tip .x-tip-bl, .x-form-invalid-tip .x-tip-br, .x-form-invalid-tip .x-tip-ml, .x-form-invalid-tip .x-tip-mr
34 | {
35 | background-image: url(../images/default/form/error-tip-corners.gif);
36 | }
37 |
38 | .x-form-invalid-tip .x-tip-body {
39 | background-image:url(../images/default/form/exclamation.gif);
40 | }
41 |
42 | .x-tip-anchor {
43 | background-image:url(../images/default/qtip/tip-anchor-sprite.gif);
44 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-access/qtips.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-tip .x-tip-close{
8 | background-image: url(../images/access/qtip/close.gif);
9 | }
10 |
11 | .x-tip .x-tip-tc, .x-tip .x-tip-tl, .x-tip .x-tip-tr, .x-tip .x-tip-bc, .x-tip .x-tip-bl, .x-tip .x-tip-br, .x-tip .x-tip-ml, .x-tip .x-tip-mr {
12 | background-image: url(../images/access/qtip/tip-sprite.gif);
13 | }
14 |
15 | .x-tip .x-tip-mc {
16 | font: normal 14px tahoma,arial,helvetica,sans-serif;
17 | }
18 | .x-tip .x-tip-ml {
19 | background-color: #fff;
20 | }
21 |
22 | .x-tip .x-tip-header-text {
23 | font: bold 14px tahoma,arial,helvetica,sans-serif;
24 | color:#ffd;
25 | }
26 |
27 | .x-tip .x-tip-body {
28 | font: normal 14px tahoma,arial,helvetica,sans-serif;
29 | color:#000;
30 | }
31 |
32 | .x-form-invalid-tip .x-tip-tc, .x-form-invalid-tip .x-tip-tl, .x-form-invalid-tip .x-tip-tr, .x-form-invalid-tip .x-tip-bc,
33 | .x-form-invalid-tip .x-tip-bl, .x-form-invalid-tip .x-tip-br, .x-form-invalid-tip .x-tip-ml, .x-form-invalid-tip .x-tip-mr
34 | {
35 | background-image: url(../images/default/form/error-tip-corners.gif);
36 | }
37 |
38 | .x-form-invalid-tip .x-tip-body {
39 | background-image:url(../images/access/form/exclamation.gif);
40 | }
41 |
42 | .x-tip-anchor {
43 | background-image:url(../images/access/qtip/tip-anchor-sprite.gif);
44 | }
45 |
--------------------------------------------------------------------------------
/public/lib/d3/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2010-2016, Michael Bostock
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright notice, this
8 | list of conditions and the following disclaimer.
9 |
10 | * Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | * The name Michael Bostock may not be used to endorse or promote products
15 | derived from this software without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 | DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,
21 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
24 | OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 |
--------------------------------------------------------------------------------
/public/lib/deploy_editsubtype.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Edit a subtype element.
3 | */
4 | function edit_subtype(subtype, packages_id, _rand,el) {
5 |
6 | //remove all border to previous selected item (remove classes)
7 | //Ext.select('#table_' + subtype + '_'+ _rand +' tr').removeClass('selected');
8 | jQuery('#table_' + subtype + '_'+ _rand +' tr').removeClass('selected');
9 |
10 | var params = {
11 | 'subtype' : subtype,
12 | 'packages_id' : packages_id,
13 | 'rand' : _rand,
14 | 'mode' : 'create'
15 | }
16 |
17 | var row = null;
18 | if (el) {
19 | // get parent row of the selected element
20 | row = jQuery(el).parents('tr:first')
21 | }
22 |
23 | if (row) {
24 | //add border to selected index (add class)
25 | row.addClass('selected');
26 | params['index'] = row.index();
27 | // change mode to edit
28 | params['mode'] = 'edit';
29 | }
30 |
31 | //scroll to edit form
32 | document.getElementById('th_title_' + subtype + '_' + _rand).scrollIntoView();
33 |
34 | //show and load form
35 | element = '#' + subtype + 's_block' + _rand;
36 | jQuery(element).css('display','block');
37 | jQuery(element).load(
38 | '../ajax/deploypackage_form.php',
39 | params
40 | );
41 | }
42 |
43 | /*
44 | * Create a new subtype element.
45 | * This method just override *edit_subtype* with a null element.
46 | */
47 | function new_subtype(subtype, packages_id, _rand) {
48 | edit_subtype(subtype, packages_id, _rand, null);
49 | }
50 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/visual/layout.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-border-layout-ct {
8 | background-color:#dfe8f6;
9 | }
10 |
11 | .x-accordion-hd {
12 | color:#222;
13 | font-weight:normal;
14 | background-image: url(../images/default/panel/light-hd.gif);
15 | }
16 |
17 | .x-layout-collapsed{
18 | background-color:#d2e0f2;
19 | border-color:#98c0f4;
20 | }
21 |
22 | .x-layout-collapsed-over{
23 | background-color:#d9e8fb;
24 | }
25 |
26 | .x-layout-split-west .x-layout-mini {
27 | background-image:url(../images/default/layout/mini-left.gif);
28 | }
29 | .x-layout-split-east .x-layout-mini {
30 | background-image:url(../images/default/layout/mini-right.gif);
31 | }
32 | .x-layout-split-north .x-layout-mini {
33 | background-image:url(../images/default/layout/mini-top.gif);
34 | }
35 | .x-layout-split-south .x-layout-mini {
36 | background-image:url(../images/default/layout/mini-bottom.gif);
37 | }
38 |
39 | .x-layout-cmini-west .x-layout-mini {
40 | background-image:url(../images/default/layout/mini-right.gif);
41 | }
42 |
43 | .x-layout-cmini-east .x-layout-mini {
44 | background-image:url(../images/default/layout/mini-left.gif);
45 | }
46 |
47 | .x-layout-cmini-north .x-layout-mini {
48 | background-image:url(../images/default/layout/mini-bottom.gif);
49 | }
50 |
51 | .x-layout-cmini-south .x-layout-mini {
52 | background-image:url(../images/default/layout/mini-top.gif);
53 | }
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-gray/layout.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-border-layout-ct {
8 | background-color:#f0f0f0;
9 | }
10 |
11 | .x-accordion-hd {
12 | color:#222;
13 | font-weight:normal;
14 | background-image: url(../images/gray/panel/light-hd.gif);
15 | }
16 |
17 | .x-layout-collapsed{
18 | background-color:#dfdfdf;
19 | border-color:#d0d0d0;
20 | }
21 |
22 | .x-layout-collapsed-over{
23 | background-color:#e7e7e7;
24 | }
25 |
26 | .x-layout-split-west .x-layout-mini {
27 | background-image:url(../images/default/layout/mini-left.gif);
28 | }
29 | .x-layout-split-east .x-layout-mini {
30 | background-image:url(../images/default/layout/mini-right.gif);
31 | }
32 | .x-layout-split-north .x-layout-mini {
33 | background-image:url(../images/default/layout/mini-top.gif);
34 | }
35 | .x-layout-split-south .x-layout-mini {
36 | background-image:url(../images/default/layout/mini-bottom.gif);
37 | }
38 |
39 | .x-layout-cmini-west .x-layout-mini {
40 | background-image:url(../images/default/layout/mini-right.gif);
41 | }
42 |
43 | .x-layout-cmini-east .x-layout-mini {
44 | background-image:url(../images/default/layout/mini-left.gif);
45 | }
46 |
47 | .x-layout-cmini-north .x-layout-mini {
48 | background-image:url(../images/default/layout/mini-bottom.gif);
49 | }
50 |
51 | .x-layout-cmini-south .x-layout-mini {
52 | background-image:url(../images/default/layout/mini-top.gif);
53 | }
54 |
--------------------------------------------------------------------------------
/.github/workflows/close_state_issues.yml:
--------------------------------------------------------------------------------
1 | name: 'Close stale issues'
2 | on:
3 | schedule:
4 | - cron: '0 8 * * *'
5 |
6 | jobs:
7 | stale:
8 | if: github.repository == 'glpi-project/glpi-inventory-plugin'
9 | permissions:
10 | issues: write # for actions/stale to close stale issues
11 | runs-on: ubuntu-latest
12 | steps:
13 | - uses: actions/stale@v10
14 | with:
15 | stale-issue-message: >-
16 | There has been no activity on this issue for some time and therefore it is considered stale
17 | and will be closed automatically in 7 days.
18 |
19 |
20 | If this issue is related to a bug, please try to reproduce on latest release. If the problem persist,
21 | feel free to add a comment to revive this issue.
22 |
23 |
24 | You may also consider taking a [subscription](https://glpi-project.org/subscriptions/) to get professionnal
25 | support or [contact GLPI editor team](https://portal.glpi-network.com/contact-us) directly.
26 | days-before-issue-stale: 60
27 | days-before-pr-stale: -1 # PR will be marked as stale manually.
28 | days-before-close: 7
29 | exempt-issue-labels: "bug,enhancement" # Issues with "bug" or "enhancement" labels will not be marked as stale
30 | exempt-all-milestones: true # Do not check issues/PR with defined milestone.
31 | ascending: true # First check older issues/PR.
32 | operations-per-run: 750 # Max API calls per run.
33 |
--------------------------------------------------------------------------------
/ajax/deployfilemodal.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | header("Content-Type: text/html; charset=UTF-8");
35 | Html::header_nocache();
36 | Session::checkCentralAccess();
37 |
38 | PluginGlpiinventoryDeployFile::showServerFileTree(
39 | filter_input(INPUT_POST, "rand")
40 | );
41 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-access/layout.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-border-layout-ct {
8 | background-color:#3f4757;
9 | }
10 |
11 | .x-accordion-hd {
12 | color:#fff;
13 | font-weight:normal;
14 | background-image: url(../images/access/panel/light-hd.gif);
15 | }
16 |
17 | .x-layout-collapsed{
18 | background-color:#323845;
19 | border-color:#1a1a1c;
20 | }
21 |
22 | .x-layout-collapsed-over{
23 | background-color:#2d3440;
24 | }
25 |
26 | .x-layout-split-west .x-layout-mini {
27 | background-image:url(../images/default/layout/mini-left.gif);
28 | }
29 |
30 | .x-layout-split-east .x-layout-mini {
31 | background-image:url(../images/default/layout/mini-right.gif);
32 | }
33 |
34 | .x-layout-split-north .x-layout-mini {
35 | background-image:url(../images/default/layout/mini-top.gif);
36 | }
37 |
38 | .x-layout-split-south .x-layout-mini {
39 | background-image:url(../images/default/layout/mini-bottom.gif);
40 | }
41 |
42 | .x-layout-cmini-west .x-layout-mini {
43 | background-image:url(../images/default/layout/mini-right.gif);
44 | }
45 |
46 | .x-layout-cmini-east .x-layout-mini {
47 | background-image:url(../images/default/layout/mini-left.gif);
48 | }
49 |
50 | .x-layout-cmini-north .x-layout-mini {
51 | background-image:url(../images/default/layout/mini-bottom.gif);
52 | }
53 |
54 | .x-layout-cmini-south .x-layout-mini {
55 | background-image:url(../images/default/layout/mini-top.gif);
56 | }
57 |
--------------------------------------------------------------------------------
/public/lib/plusbutton.js:
--------------------------------------------------------------------------------
1 | function plusbutton(dom_id, template) {
2 |
3 | // return immediately if no dom_id (this is an error)
4 | if ( typeof dom_id == 'undefined' ) {
5 | return;
6 | }
7 |
8 | // set to null if no template is defined
9 | if ( typeof template == 'undefined' ) {
10 | template = null;
11 | }
12 |
13 | // append a clone of the selected template class under the selected dom_id
14 | if (template != null) {
15 | // get old width before destroy
16 | var old_width = $(template)
17 | .find('.select2-container')
18 | .css('width');
19 |
20 | /**
21 | * Since GLPI 0.85, select tag are wrapped with the jQuery plugin select2 and the cloned
22 | * select doesn't respond if they are cloned with the select2 DOM mutations.
23 | * The following links, explain we must disable the select2 DOM mutations in order to clone
24 | * the select node correctly:
25 | * http://stackoverflow.com/questions/17175534/clonned-select2-is-not-responding
26 | * http://jsfiddle.net/ZzgTG/
27 | */
28 | $(template)
29 | .find('select')
30 | .select2('destroy');
31 |
32 | $('#' + dom_id)
33 | .append(
34 | $(template)
35 | .clone()
36 | .removeClass('template')
37 | .css('display', 'block')
38 | );
39 |
40 | // re-enable all select
41 | $('#' + dom_id)
42 | .find('select')
43 | .select2({
44 | 'width': old_width
45 | });
46 | }
47 | }
48 |
49 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/structure/pivotgrid.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-pivotgrid .x-grid3-header-offset table {
8 | width: 100%;
9 | border-collapse: collapse;
10 | }
11 |
12 | .x-pivotgrid .x-grid3-header-offset table td {
13 | padding: 4px 3px 4px 5px;
14 | text-align: center;
15 | white-space: nowrap;
16 | overflow: hidden;
17 | text-overflow: ellipsis;
18 | font-size: 11px;
19 | line-height: 13px;
20 | font-family: tahoma;
21 | }
22 |
23 | .x-pivotgrid .x-grid3-row-headers {
24 | display: block;
25 | float: left;
26 | }
27 |
28 | .x-pivotgrid .x-grid3-row-headers table {
29 | height: 100%;
30 | width: 100%;
31 | border-collapse: collapse;
32 | }
33 |
34 | .x-pivotgrid .x-grid3-row-headers table td {
35 | height: 18px;
36 | padding: 2px 7px 0 0;
37 | text-align: right;
38 | text-overflow: ellipsis;
39 | font-size: 11px;
40 | font-family: tahoma;
41 | }
42 |
43 | .ext-gecko .x-pivotgrid .x-grid3-row-headers table td {
44 | height: 21px;
45 | }
46 |
47 | .x-grid3-header-title {
48 | top: 0%;
49 | left: 0%;
50 | position: absolute;
51 | text-align: center;
52 | vertical-align: middle;
53 | font-family: tahoma;
54 | font-size: 11px;
55 | padding: auto 1px;
56 | display: table-cell;
57 | }
58 |
59 | .x-grid3-header-title span {
60 | position: absolute;
61 | top: 50%;
62 | left: 0%;
63 | width: 100%;
64 | margin-top: -6px;
65 | }
--------------------------------------------------------------------------------
/ajax/serverfilestreesons.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | $AJAX_INCLUDE = 1;
35 |
36 |
37 | header("Content-Type: text/html; charset=UTF-8");
38 | Html::header_nocache();
39 |
40 | Session::checkLoginUser();
41 |
42 | PluginGlpiinventoryDeployFile::getServerFileTree(filter_input(INPUT_POST, "node"));
43 |
--------------------------------------------------------------------------------
/ajax/expand_task.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | Session::checkCentralAccess();
35 |
36 | header("Content-Type: text/json; charset=UTF-8");
37 | Html::header_nocache();
38 |
39 | $_SESSION['plugin_glpiinventory_tasks_expanded'][intval(filter_input(INPUT_GET, "task_id"))] = filter_input(INPUT_GET, "expanded");
40 |
--------------------------------------------------------------------------------
/front/collect_wmi.form.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 |
35 | $pfCollect_Wmi = new PluginGlpiinventoryCollect_Wmi();
36 |
37 | if (isset($_POST["add"])) {
38 | $pfCollect_Wmi->add($_POST);
39 | Html::back();
40 | } elseif (isset($_POST["delete"])) {
41 | $pfCollect_Wmi->delete($_POST);
42 | Html::back();
43 | }
44 |
--------------------------------------------------------------------------------
/ajax/dropdownlist.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | if (plugin_glpiinventory_script_endswith("dropdownlist.php")) {
35 | header("Content-Type: text/html; charset=UTF-8");
36 | Html::header_nocache();
37 | }
38 |
39 | Session::checkCentralAccess();
40 | $pfTaskjob = new PluginGlpiinventoryTaskjob();
41 | $pfTaskjob->showList();
42 |
--------------------------------------------------------------------------------
/front/collect_file.form.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 |
35 | $pfCollect_File = new PluginGlpiinventoryCollect_File();
36 |
37 | if (isset($_POST["add"])) {
38 | $pfCollect_File->add($_POST);
39 | Html::back();
40 | } elseif (isset($_POST["delete"])) {
41 | $pfCollect_File->delete($_POST);
42 | Html::back();
43 | }
44 |
--------------------------------------------------------------------------------
/ajax/taskjob_logs.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | if (plugin_glpiinventory_script_endswith("taskjob_logs.php")) {
35 | Session::checkCentralAccess();
36 | }
37 |
38 | header("Content-Type: text/html; charset=UTF-8");
39 | Html::header_nocache();
40 |
41 | $pfTask = new PluginGlpiinventoryTask();
42 | $pfTask->ajaxGetJobLogs($_GET);
43 |
--------------------------------------------------------------------------------
/front/collect_registry.form.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | $pfCollect_Registry = new PluginGlpiinventoryCollect_Registry();
35 |
36 | if (isset($_POST["add"])) {
37 | $pfCollect_Registry->add($_POST);
38 | Html::back();
39 | } elseif (isset($_POST["delete"])) {
40 | $pfCollect_Registry->delete($_POST);
41 | Html::back();
42 | }
43 |
--------------------------------------------------------------------------------
/front/deploymirror.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | Session::checkLoginUser();
35 |
36 | Html::header(
37 | __('Mirror servers'),
38 | '',
39 | "admin",
40 | "pluginglpiinventorymenu",
41 | "deploymirror"
42 | );
43 |
44 | PluginGlpiinventoryMenu::displayMenu("mini");
45 |
46 | Search::show('PluginGlpiinventoryDeployMirror');
47 | Html::footer();
48 |
--------------------------------------------------------------------------------
/front/deploygroup.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | Session::checkLoginUser();
35 |
36 | Html::header(
37 | __('Groups of computers', 'glpiinventory'),
38 | '',
39 | "admin",
40 | "pluginglpiinventorymenu",
41 | "deploygroup"
42 | );
43 |
44 |
45 | PluginGlpiinventoryMenu::displayMenu("mini");
46 |
47 | Search::show('PluginGlpiinventoryDeployGroup');
48 |
49 | Html::footer();
50 |
--------------------------------------------------------------------------------
/templates/forms/deploymirror.html.twig:
--------------------------------------------------------------------------------
1 | {#
2 | # ---------------------------------------------------------------------
3 | # GLPI Inventory Plugin
4 | # Copyright (C) 2021 Teclib' and contributors.
5 | #
6 | # http://glpi-project.org
7 | #
8 | # based on FusionInventory for GLPI
9 | # Copyright (C) 2010-2021 by the FusionInventory Development Team.
10 | #
11 | # ---------------------------------------------------------------------
12 | #
13 | # LICENSE
14 | #
15 | # This file is part of GLPI Inventory Plugin.
16 | #
17 | # GLPI Inventory Plugin is free software: you can redistribute it and/or modify
18 | # it under the terms of the GNU Affero General Public License as published by
19 | # the Free Software Foundation, either version 3 of the License, or
20 | # (at your option) any later version.
21 | #
22 | # GLPI Inventory Plugin is distributed in the hope that it will be useful,
23 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
24 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 | # GNU Affero General Public License for more details.
26 | #
27 | # You should have received a copy of the GNU Affero General Public License
28 | # along with GLPI Inventory Plugin. If not, see .
29 | # ---------------------------------------------------------------------
30 | #}
31 |
32 | {% extends "generic_show_form.html.twig" %}
33 | {% import 'components/form/fields_macros.html.twig' as fields %}
34 | {% set params = params ?? [] %}
35 |
36 | {% block more_fields %}
37 | {{ fields.textField(
38 | 'url',
39 | item.fields['url'],
40 | __('Mirror server address', 'glpiinventory'),
41 | ) }}
42 | {% endblock %}
43 |
--------------------------------------------------------------------------------
/front/deploypackage.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | Session::checkLoginUser();
35 |
36 | Html::header(
37 | __('GLPI Inventory'),
38 | '',
39 | "admin",
40 | "pluginglpiinventorymenu",
41 | "deploypackage"
42 | );
43 |
44 | PluginGlpiinventoryMenu::displayMenu("mini");
45 |
46 | $package = new PluginGlpiinventoryDeployPackage();
47 | $package->showList();
48 |
49 | Html::footer();
50 |
--------------------------------------------------------------------------------
/front/collect.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 |
35 | Html::header(
36 | __('GLPI Inventory', 'glpiinventory'),
37 | '',
38 | "admin",
39 | "pluginglpiinventorymenu",
40 | "collect"
41 | );
42 |
43 | Session::checkRight("plugin_glpiinventory_collect", READ);
44 |
45 | PluginGlpiinventoryMenu::displayMenu("mini");
46 |
47 | Search::show('PluginGlpiinventoryCollect');
48 |
49 | Html::footer();
50 |
--------------------------------------------------------------------------------
/front/iprange.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 |
35 | Html::header(
36 | __('GLPI Inventory', 'glpiinventory'),
37 | '',
38 | "admin",
39 | "pluginglpiinventorymenu",
40 | "iprange"
41 | );
42 |
43 | Session::checkRight('plugin_glpiinventory_iprange', READ);
44 |
45 | PluginGlpiinventoryMenu::displayMenu("mini");
46 |
47 | Search::show('PluginGlpiinventoryIPRange');
48 |
49 | Html::footer();
50 |
--------------------------------------------------------------------------------
/front/credential.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 |
35 | Html::header(
36 | __('GLPI Inventory', 'glpiinventory'),
37 | '',
38 | "admin",
39 | "pluginglpiinventorymenu",
40 | "credential"
41 | );
42 |
43 | Session::checkRight('plugin_glpiinventory_iprange', READ);
44 |
45 | PluginGlpiinventoryMenu::displayMenu("mini");
46 |
47 | Search::show('PluginGlpiinventoryCredential');
48 |
49 | Html::footer();
50 |
--------------------------------------------------------------------------------
/front/timeslot.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 |
35 | Session::checkRight('plugin_glpiinventory_task', READ);
36 |
37 |
38 | Html::header(
39 | __('GLPI Inventory', 'glpiinventory'),
40 | '',
41 | "admin",
42 | "pluginglpiinventorymenu",
43 | "timeslot"
44 | );
45 |
46 | PluginGlpiinventoryMenu::displayMenu("mini");
47 |
48 | Search::show('PluginGlpiinventoryTimeslot');
49 |
50 | Html::footer();
51 |
--------------------------------------------------------------------------------
/public/b/collect/index.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | use function Safe\json_encode;
35 |
36 | //Agent communication using REST protocol
37 |
38 | $pfCollect = new PluginGlpiinventoryCollect();
39 |
40 | $response = $pfCollect->communication(
41 | filter_input(INPUT_GET, "action"),
42 | filter_input(INPUT_GET, "machineid"),
43 | filter_input(INPUT_GET, "uuid")
44 | );
45 |
46 | echo json_encode($response);
47 |
--------------------------------------------------------------------------------
/front/credentialip.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 |
35 | Html::header(
36 | __('GLPI Inventory', 'glpiinventory'),
37 | '',
38 | "admin",
39 | "pluginglpiinventorymenu",
40 | "credentialip"
41 | );
42 |
43 | Session::checkRight('plugin_glpiinventory_iprange', READ);
44 |
45 | PluginGlpiinventoryMenu::displayMenu("mini");
46 |
47 | Search::show('PluginGlpiinventoryCredentialIp');
48 |
49 | Html::footer();
50 |
--------------------------------------------------------------------------------
/ajax/dropdownactiontype.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | if (plugin_glpiinventory_script_endswith("dropdownactiontype.php")) {
35 | header("Content-Type: text/html; charset=UTF-8");
36 | Html::header_nocache();
37 | }
38 |
39 | Session::checkCentralAccess();
40 |
41 | $pfTaskjob = new PluginGlpiinventoryTaskjob();
42 | $pfTaskjob->dropdownActionType(
43 | "ActionType",
44 | filter_input(INPUT_POST, "method"),
45 | );
46 |
--------------------------------------------------------------------------------
/public/lib/extjs/license.txt:
--------------------------------------------------------------------------------
1 | Ext JS - JavaScript Library
2 | Copyright (c) 2006-2011, Sencha Inc.
3 | All rights reserved.
4 | licensing@sencha.com
5 |
6 | http://www.sencha.com/license
7 |
8 | Open Source License
9 | ------------------------------------------------------------------------------------------
10 | Ext JS is licensed under the terms of the Open Source GPL 3.0 license.
11 |
12 | http://www.gnu.org/licenses/gpl.html
13 |
14 | There are several FLOSS exceptions available for use with this release for
15 | open source applications that are distributed under a license other than the GPL.
16 |
17 | * Open Source License Exception for Applications
18 |
19 | http://www.sencha.com/products/floss-exception.php
20 |
21 | * Open Source License Exception for Development
22 |
23 | http://www.sencha.com/products/ux-exception.php
24 |
25 |
26 | Commercial License
27 | ------------------------------------------------------------------------------------------
28 | This is the appropriate option if you are creating proprietary applications and you are
29 | not prepared to distribute and share the source code of your application under the
30 | GPL v3 license. Please visit http://www.sencha.com/license for more details.
31 |
32 |
33 | OEM / Reseller License
34 | ------------------------------------------------------------------------------------------
35 | For more details, please visit: http://www.sencha.com/license.
36 |
37 | --
38 |
39 | This library is distributed in the hope that it will be useful,
40 | but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD-PARTY INTELLECTUAL PROPERTY RIGHTS. See the GNU
41 | General Public License for more details.
--------------------------------------------------------------------------------
/front/task.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 |
35 |
36 | Html::header(
37 | __('GLPI Inventory', 'glpiinventory'),
38 | '',
39 | "admin",
40 | "pluginglpiinventorymenu",
41 | "task"
42 | );
43 |
44 | Session::checkRight('plugin_glpiinventory_task', READ);
45 |
46 | PluginGlpiinventoryMenu::displayMenu("mini");
47 |
48 | $pfTask = new PluginGlpiinventoryTask();
49 |
50 | $pfTask->showList();
51 |
52 | Html::footer();
53 |
--------------------------------------------------------------------------------
/ajax/restart_job.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | Session::checkCentralAccess();
35 |
36 | header("Content-Type: text/json; charset=UTF-8");
37 | Html::header_nocache();
38 |
39 | if (isset($_REQUEST['params']) && is_array($_REQUEST['params'])) {
40 | foreach ($_REQUEST['params'] as $params) {
41 | PluginGlpiinventoryTaskjob::restartJob($params);
42 | }
43 | } else {
44 | PluginGlpiinventoryTaskjob::restartJob($_REQUEST);
45 | }
46 |
--------------------------------------------------------------------------------
/front/statediscovery.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 |
35 | Html::header(
36 | __('GLPI Inventory', 'glpiinventory'),
37 | '',
38 | "admin",
39 | "pluginglpiinventorymenu",
40 | "statediscovery"
41 | );
42 |
43 | Session::checkRight('plugin_glpiinventory_task', READ);
44 |
45 | PluginGlpiinventoryMenu::displayMenu("mini");
46 |
47 | $pfStateDiscovery = new PluginGlpiinventoryStateDiscovery();
48 | $pfStateDiscovery->display();
49 |
50 | Html::footer();
51 |
--------------------------------------------------------------------------------
/front/stateinventory.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 |
35 | Html::header(
36 | __('GLPI Inventory', 'glpiinventory'),
37 | '',
38 | "admin",
39 | "pluginglpiinventorymenu",
40 | "stateinventory"
41 | );
42 |
43 | Session::checkRight('plugin_glpiinventory_task', READ);
44 |
45 | PluginGlpiinventoryMenu::displayMenu("mini");
46 |
47 |
48 | $pfStateInventory = new PluginGlpiinventoryStateInventory();
49 | $pfStateInventory->display();
50 |
51 | Html::footer();
52 |
--------------------------------------------------------------------------------
/ajax/cancel_job.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | Session::checkCentralAccess();
35 |
36 | header("Content-Type: text/json; charset=UTF-8");
37 | Html::header_nocache();
38 |
39 | if (isset($_REQUEST['jobstate_id'])) {
40 | $jobstate = new PluginGlpiinventoryTaskjobstate();
41 | $jobstate->getFromDB($_REQUEST['jobstate_id']);
42 |
43 | $job = new PluginGlpiinventoryTaskjob();
44 | $job->delete(['id' => $jobstate->fields['plugin_glpiinventory_taskjobs_id']], true);
45 | }
46 |
--------------------------------------------------------------------------------
/front/deployuserinteractiontemplate.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | Session::checkLoginUser();
35 |
36 | Html::header(
37 | _n('User interaction template', 'User interaction templates', 1, 'glpiinventory'),
38 | '',
39 | "admin",
40 | "pluginglpiinventorymenu",
41 | "deployuserinteractiontemplate"
42 | );
43 |
44 |
45 | PluginGlpiinventoryMenu::displayMenu("mini");
46 |
47 | Search::show('PluginGlpiinventoryDeployUserinteractionTemplate');
48 |
49 | Html::footer();
50 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/theme-gray/resizable.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-resizable-handle {
8 | background-color:#fff;
9 | }
10 |
11 | .x-resizable-over .x-resizable-handle-east, .x-resizable-pinned .x-resizable-handle-east,
12 | .x-resizable-over .x-resizable-handle-west, .x-resizable-pinned .x-resizable-handle-west
13 | {
14 | background-image:url(../images/gray/sizer/e-handle.gif);
15 | }
16 |
17 | .x-resizable-over .x-resizable-handle-south, .x-resizable-pinned .x-resizable-handle-south,
18 | .x-resizable-over .x-resizable-handle-north, .x-resizable-pinned .x-resizable-handle-north
19 | {
20 | background-image:url(../images/gray/sizer/s-handle.gif);
21 | }
22 |
23 | .x-resizable-over .x-resizable-handle-north, .x-resizable-pinned .x-resizable-handle-north{
24 | background-image:url(../images/gray/sizer/s-handle.gif);
25 | }
26 | .x-resizable-over .x-resizable-handle-southeast, .x-resizable-pinned .x-resizable-handle-southeast{
27 | background-image:url(../images/gray/sizer/se-handle.gif);
28 | }
29 | .x-resizable-over .x-resizable-handle-northwest, .x-resizable-pinned .x-resizable-handle-northwest{
30 | background-image:url(../images/gray/sizer/nw-handle.gif);
31 | }
32 | .x-resizable-over .x-resizable-handle-northeast, .x-resizable-pinned .x-resizable-handle-northeast{
33 | background-image:url(../images/gray/sizer/ne-handle.gif);
34 | }
35 | .x-resizable-over .x-resizable-handle-southwest, .x-resizable-pinned .x-resizable-handle-southwest{
36 | background-image:url(../images/gray/sizer/sw-handle.gif);
37 | }
38 | .x-resizable-proxy{
39 | border-color:#565656;
40 | }
41 | .x-resizable-overlay{
42 | background-color:#fff;
43 | }
44 |
--------------------------------------------------------------------------------
/front/taskjob.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 |
35 | Html::header(
36 | __('GLPI Inventory', 'glpiinventory'),
37 | '',
38 | "admin",
39 | "pluginglpiinventorymenu",
40 | "taskjob"
41 | );
42 |
43 | Session::checkRight('plugin_glpiinventory_task', READ);
44 |
45 | PluginGlpiinventoryMenu::displayMenu("mini");
46 |
47 | echo "";
48 | $pfTask = new PluginGlpiinventoryTask();
49 | $pfTask->showJobLogs();
50 | echo "
";
51 |
52 | Html::footer();
53 |
--------------------------------------------------------------------------------
/.github/workflows/close_stale_issue.yml:
--------------------------------------------------------------------------------
1 | name: 'Close stale issues'
2 | on:
3 | schedule:
4 | - cron: '0 8 * * *'
5 |
6 | jobs:
7 | stale:
8 | if: github.repository == 'glpi-plugin/glpiinventory'
9 | permissions:
10 | issues: write # for actions/stale to close stale issues
11 | runs-on: ubuntu-latest
12 | steps:
13 | - uses: actions/stale@v10
14 | with:
15 | stale-issue-message: >-
16 | There has been no activity on this issue for some time and therefore it is considered stale
17 | and will be closed automatically in 10 days.
18 |
19 |
20 | If this issue is related to a bug, please try to reproduce on latest release. If the problem persist,
21 | feel free to add a comment to revive this issue.
22 |
23 | If it is related to a new feature, please open a topic to discuss with community about this enhancement
24 | on [suggestion website](https://glpi.userecho.com/).
25 |
26 |
27 | You may also consider taking a [subscription](https://glpi-project.org/subscriptions/) to get professionnal
28 | support or [contact GLPI editor team](https://portal.glpi-network.com/contact-us) directly.
29 | days-before-issue-stale: 15
30 | days-before-pr-stale: -1 # PR will be marked as stale manually.
31 | days-before-close: 5
32 | exempt-issue-labels: "bug,enhancement,question,security" # Issues with "bug", "enhancement", "question" or "security" labels will not be marked as stale
33 | exempt-all-milestones: true # Do not check issues/PR with defined milestone.
34 | ascending: true # First check older issues/PR.
35 | operations-per-run: 750 # Max API calls per run.
36 |
--------------------------------------------------------------------------------
/public/lib/extjs/resources/css/visual/resizable.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Ext JS Library 3.4.0
3 | * Copyright(c) 2006-2011 Sencha Inc.
4 | * licensing@sencha.com
5 | * http://www.sencha.com/license
6 | */
7 | .x-resizable-handle {
8 | background-color:#fff;
9 | }
10 |
11 | .x-resizable-over .x-resizable-handle-east, .x-resizable-pinned .x-resizable-handle-east,
12 | .x-resizable-over .x-resizable-handle-west, .x-resizable-pinned .x-resizable-handle-west
13 | {
14 | background-image:url(../images/default/sizer/e-handle.gif);
15 | }
16 |
17 | .x-resizable-over .x-resizable-handle-south, .x-resizable-pinned .x-resizable-handle-south,
18 | .x-resizable-over .x-resizable-handle-north, .x-resizable-pinned .x-resizable-handle-north
19 | {
20 | background-image:url(../images/default/sizer/s-handle.gif);
21 | }
22 |
23 | .x-resizable-over .x-resizable-handle-north, .x-resizable-pinned .x-resizable-handle-north{
24 | background-image:url(../images/default/sizer/s-handle.gif);
25 | }
26 | .x-resizable-over .x-resizable-handle-southeast, .x-resizable-pinned .x-resizable-handle-southeast{
27 | background-image:url(../images/default/sizer/se-handle.gif);
28 | }
29 | .x-resizable-over .x-resizable-handle-northwest, .x-resizable-pinned .x-resizable-handle-northwest{
30 | background-image:url(../images/default/sizer/nw-handle.gif);
31 | }
32 | .x-resizable-over .x-resizable-handle-northeast, .x-resizable-pinned .x-resizable-handle-northeast{
33 | background-image:url(../images/default/sizer/ne-handle.gif);
34 | }
35 | .x-resizable-over .x-resizable-handle-southwest, .x-resizable-pinned .x-resizable-handle-southwest{
36 | background-image:url(../images/default/sizer/sw-handle.gif);
37 | }
38 | .x-resizable-proxy{
39 | border-color:#3b5a82;
40 | }
41 | .x-resizable-overlay{
42 | background-color:#fff;
43 | }
44 |
--------------------------------------------------------------------------------
/ajax/dropdownCredentials.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | if (plugin_glpiinventory_script_endswith("dropdownCredentials.php")) {
35 | header("Content-Type: text/html; charset=UTF-8");
36 | Html::header_nocache();
37 | }
38 |
39 | Session::checkRight('plugin_glpiinventory_credential', READ);
40 | $params = [
41 | 'itemtype' => filter_input(INPUT_POST, "itemtype"),
42 | 'id' => filter_input(INPUT_POST, "id"),
43 | ];
44 | PluginGlpiinventoryCredential::dropdownCredentialsForItemtype($params);
45 |
--------------------------------------------------------------------------------
/ajax/dropdown_taskjob.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | if (plugin_glpiinventory_script_endswith("dropdown_taskjob.php")) {
35 | header("Content-Type: text/html; charset=UTF-8");
36 | Html::header_nocache();
37 | }
38 |
39 | Session::checkCentralAccess();
40 | $id = filter_input(INPUT_POST, "id");
41 | if (!empty($id) && $id > 0) {
42 | Dropdown::show('PluginGlpiinventoryTaskjob', [
43 | 'name' => "taskjobs_id",
44 | 'condition' => ['plugin_glpiinventory_tasks_id' => $id],
45 | ]);
46 | }
47 |
--------------------------------------------------------------------------------
/ajax/dropdownactionlist.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | if (plugin_glpiinventory_script_endswith("dropdownactionlist.php")) {
35 | header("Content-Type: text/html; charset=UTF-8");
36 | Html::header_nocache();
37 | }
38 |
39 | Session::checkCentralAccess();
40 | $pfTaskjob = new PluginGlpiinventoryTaskjob();
41 | $pfTaskjob->dropdownAction(
42 | "ActionList",
43 | filter_input(INPUT_POST, "ActionType"),
44 | filter_input(INPUT_POST, "method"),
45 | filter_input(INPUT_POST, "actiontypeid")
46 | );
47 |
--------------------------------------------------------------------------------
/ajax/taskjob_itemtypes.php:
--------------------------------------------------------------------------------
1 | .
31 | * ---------------------------------------------------------------------
32 | */
33 |
34 | if (plugin_glpiinventory_script_endswith("taskjob_itemtypes.php")) {
35 | header("Content-Type: text/html; charset=UTF-8");
36 | Html::header_nocache();
37 | }
38 |
39 | Session::checkCentralAccess();
40 |
41 | $pfTaskjob = new PluginGlpiinventoryTaskjob();
42 |
43 | $params = [
44 | "moduletype" => filter_input(INPUT_GET, "moduletype"),
45 | "method" => filter_input(INPUT_GET, "method"),
46 | ];
47 |
48 | $pfTaskjob->ajaxModuleTypesDropdown($params);
49 |
--------------------------------------------------------------------------------