partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

commit ccffbbcffe6d8408d30fc7260c5437fc0f271913
parent 44a14fa2ab58c9cb1b8b507cb0fe80627b75fe41
Author: Felicitus <felicitus@felicitus.org>
Date:   Wed,  7 Oct 2015 18:19:22 +0200

Mostly finalized the new setup, refactored configuration files into fragments for easier inclusion in the setup kernel

Diffstat:
M.gitignore | 4++--
Mapp/AppKernel.php | 41-----------------------------------------
Aapp/SetupAppKernel.php | 41+++++++++++++++++++++++++++++++++++++++++
Mapp/config/config.yml | 1225+------------------------------------------------------------------------------
Aapp/config/config_doctrine.yml | 44++++++++++++++++++++++++++++++++++++++++++++
Aapp/config/config_dunglas.yml | 7+++++++
Aapp/config/config_fos_user.yml | 4++++
Aapp/config/config_framework.yml | 19+++++++++++++++++++
Aapp/config/config_ldap.yml | 21+++++++++++++++++++++
Aapp/config/config_partkeepr.yml | 1150+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aapp/config/config_setup.yml | 20++++++++++++++++++++
Aapp/config/config_setup_test.yml | 13+++++++++++++
Aapp/config/routing_setup.yml | 2++
Dsetup-data/footprints/footprints.yaml | 304-------------------------------------------------------------------------------
Dsetup-data/manufacturers/images/lattice3.png | 0
Dsetup-data/manufacturers/images/lds.png | 0
Dsetup-data/manufacturers/images/lds1.png | 0
Dsetup-data/manufacturers/images/levone.png | 0
Dsetup-data/manufacturers/images/lgs.png | 0
Dsetup-data/manufacturers/images/lgs1.png | 0
Dsetup-data/manufacturers/images/linear.png | 0
Dsetup-data/manufacturers/images/linfin.png | 0
Dsetup-data/manufacturers/images/liteon.png | 0
Dsetup-data/manufacturers/images/lucent.png | 0
Dsetup-data/manufacturers/images/macronix.png | 0
Dsetup-data/manufacturers/images/marvell.png | 0
Dsetup-data/manufacturers/images/matsush1.png | 0
Dsetup-data/manufacturers/images/matsushi.png | 0
Dsetup-data/manufacturers/images/maxim.png | 0
Dsetup-data/manufacturers/images/me.png | 0
Dsetup-data/manufacturers/images/mediavi1.png | 0
Dsetup-data/manufacturers/images/mediavi2.png | 0
Dsetup-data/manufacturers/images/mhs.png | 0
Dsetup-data/manufacturers/images/mhs2.png | 0
Dsetup-data/manufacturers/images/micrel1.png | 0
Dsetup-data/manufacturers/images/micrel2.png | 0
Dsetup-data/manufacturers/images/microchp.png | 0
Dsetup-data/manufacturers/images/micron.png | 0
Dsetup-data/manufacturers/images/micronas.png | 0
Dsetup-data/manufacturers/images/micronix.png | 0
Dsetup-data/manufacturers/images/microsemi1.png | 0
Dsetup-data/manufacturers/images/microsemi2.png | 0
Dsetup-data/manufacturers/images/minicirc.png | 0
Dsetup-data/manufacturers/images/mitel.png | 0
Dsetup-data/manufacturers/images/mitsubis.png | 0
Dsetup-data/manufacturers/images/mlinear.png | 0
Dsetup-data/manufacturers/images/mmi.png | 0
Dsetup-data/manufacturers/images/mos.png | 0
Dsetup-data/manufacturers/images/mosaic.png | 0
Dsetup-data/manufacturers/images/moselvit.png | 0
Dsetup-data/manufacturers/images/mostek1.png | 0
Dsetup-data/manufacturers/images/mostek2.png | 0
Dsetup-data/manufacturers/images/mostek3.png | 0
Dsetup-data/manufacturers/images/mosys.png | 0
Dsetup-data/manufacturers/images/motorol1.png | 0
Dsetup-data/manufacturers/images/motorol2.png | 0
Dsetup-data/manufacturers/images/mpd.png | 0
Dsetup-data/manufacturers/images/msystem.png | 0
Dsetup-data/manufacturers/images/murata.png | 0
Dsetup-data/manufacturers/images/murata1.png | 0
Dsetup-data/manufacturers/images/mwave.png | 0
Dsetup-data/manufacturers/images/myson.png | 0
Dsetup-data/manufacturers/images/nec1.png | 0
Dsetup-data/manufacturers/images/nec2.png | 0
Dsetup-data/manufacturers/images/nexflash.png | 0
Dsetup-data/manufacturers/images/njr.png | 0
Dsetup-data/manufacturers/images/ns1.png | 0
Dsetup-data/manufacturers/images/ns2.png | 0
Dsetup-data/manufacturers/images/nvidia.png | 0
Dsetup-data/manufacturers/images/oak.png | 0
Dsetup-data/manufacturers/images/oki.png | 0
Dsetup-data/manufacturers/images/oki1.png | 0
Dsetup-data/manufacturers/images/opti.png | 0
Dsetup-data/manufacturers/images/orbit.png | 0
Dsetup-data/manufacturers/images/oren.png | 0
Dsetup-data/manufacturers/images/perform.png | 0
Dsetup-data/manufacturers/images/pericom.png | 0
Dsetup-data/manufacturers/images/phaslink.png | 0
Dsetup-data/manufacturers/images/philips.png | 0
Dsetup-data/manufacturers/images/plx.png | 0
Dsetup-data/manufacturers/images/pmc.png | 0
Dsetup-data/manufacturers/images/pmi.png | 0
Dsetup-data/manufacturers/images/ptc.png | 0
Dsetup-data/manufacturers/images/pwrsmart.png | 0
Dsetup-data/manufacturers/images/qlogic.png | 0
Dsetup-data/manufacturers/images/qualcomm.png | 0
Dsetup-data/manufacturers/images/quality.png | 0
Dsetup-data/manufacturers/images/rabbit.png | 0
Dsetup-data/manufacturers/images/ramtron.png | 0
Dsetup-data/manufacturers/images/raytheon.png | 0
Dsetup-data/manufacturers/images/rca.png | 0
Dsetup-data/manufacturers/images/realtek.png | 0
Dsetup-data/manufacturers/images/rectron.png | 0
Dsetup-data/manufacturers/images/rendit.png | 0
Dsetup-data/manufacturers/images/renesas.png | 0
Dsetup-data/manufacturers/images/rockwell.png | 0
Dsetup-data/manufacturers/images/rohm.png | 0
Dsetup-data/manufacturers/images/s3.png | 0
Dsetup-data/manufacturers/images/sage.png | 0
Dsetup-data/manufacturers/images/saifun.png | 0
Dsetup-data/manufacturers/images/sames.png | 0
Dsetup-data/manufacturers/images/samsung.png | 0
Dsetup-data/manufacturers/images/sanken.png | 0
Dsetup-data/manufacturers/images/sanken1.png | 0
Dsetup-data/manufacturers/images/sanyo.png | 0
Dsetup-data/manufacturers/images/sanyo1.png | 0
Dsetup-data/manufacturers/images/scenix.png | 0
Dsetup-data/manufacturers/images/sec.png | 0
Dsetup-data/manufacturers/images/sec1.png | 0
Dsetup-data/manufacturers/images/seeq.png | 0
Dsetup-data/manufacturers/images/seikoi.png | 0
Dsetup-data/manufacturers/images/semelab.png | 0
Dsetup-data/manufacturers/images/semtech.png | 0
Dsetup-data/manufacturers/images/sgs1.png | 0
Dsetup-data/manufacturers/images/sgs2.png | 0
Dsetup-data/manufacturers/images/sharp.png | 0
Dsetup-data/manufacturers/images/shindgen.png | 0
Dsetup-data/manufacturers/images/siemens1.png | 0
Dsetup-data/manufacturers/images/siemens2.png | 0
Dsetup-data/manufacturers/images/sierra.png | 0
Dsetup-data/manufacturers/images/sigmatel.png | 0
Dsetup-data/manufacturers/images/signetic.png | 0
Dsetup-data/manufacturers/images/siliconlabs.png | 0
Dsetup-data/manufacturers/images/siliconm.png | 0
Dsetup-data/manufacturers/images/silicons.png | 0
Dsetup-data/manufacturers/images/siliconx.png | 0
Dsetup-data/manufacturers/images/silnans.png | 0
Dsetup-data/manufacturers/images/simtek.png | 0
Dsetup-data/manufacturers/images/sipex.png | 0
Dsetup-data/manufacturers/images/sis.png | 0
Dsetup-data/manufacturers/images/smc1.png | 0
Dsetup-data/manufacturers/images/smsc.png | 0
Dsetup-data/manufacturers/images/smsc1.png | 0
Dsetup-data/manufacturers/images/sony.png | 0
Dsetup-data/manufacturers/images/space.png | 0
Dsetup-data/manufacturers/images/spectek.png | 0
Dsetup-data/manufacturers/images/spt.png | 0
Dsetup-data/manufacturers/images/sss.png | 0
Dsetup-data/manufacturers/images/sst.png | 0
Dsetup-data/manufacturers/images/st.png | 0
Dsetup-data/manufacturers/images/summit.png | 0
Dsetup-data/manufacturers/images/synergy.png | 0
Dsetup-data/manufacturers/images/synertek.png | 0
Dsetup-data/manufacturers/images/taiwsemi.png | 0
Dsetup-data/manufacturers/images/tdk.png | 0
Dsetup-data/manufacturers/images/teccor.png | 0
Dsetup-data/manufacturers/images/telcom.png | 0
Dsetup-data/manufacturers/images/teledyne.png | 0
Dsetup-data/manufacturers/images/telefunk.png | 0
Dsetup-data/manufacturers/images/teltone.png | 0
Dsetup-data/manufacturers/images/thomscsf.png | 0
Dsetup-data/manufacturers/images/ti.png | 0
Dsetup-data/manufacturers/images/ti1.png | 0
Dsetup-data/manufacturers/images/toko.png | 0
Dsetup-data/manufacturers/images/toshiba1.png | 0
Dsetup-data/manufacturers/images/toshiba2.png | 0
Dsetup-data/manufacturers/images/toshiba3.png | 0
Dsetup-data/manufacturers/images/trident.png | 0
Dsetup-data/manufacturers/images/triquint.png | 0
Dsetup-data/manufacturers/images/triscend.png | 0
Dsetup-data/manufacturers/images/tseng.png | 0
Dsetup-data/manufacturers/images/tundra.png | 0
Dsetup-data/manufacturers/images/turbo_ic.png | 0
Dsetup-data/manufacturers/images/ubicom.png | 0
Dsetup-data/manufacturers/images/umc.png | 0
Dsetup-data/manufacturers/images/unitrode.png | 0
Dsetup-data/manufacturers/images/usar.png | 0
Dsetup-data/manufacturers/images/usar1.png | 0
Dsetup-data/manufacturers/images/utmc.png | 0
Dsetup-data/manufacturers/images/utron.png | 0
Dsetup-data/manufacturers/images/v3.png | 0
Dsetup-data/manufacturers/images/vadem.png | 0
Dsetup-data/manufacturers/images/vanguard.png | 0
Dsetup-data/manufacturers/images/vantis.png | 0
Dsetup-data/manufacturers/images/via.png | 0
Dsetup-data/manufacturers/images/virata.png | 0
Dsetup-data/manufacturers/images/vishay.png | 0
Dsetup-data/manufacturers/images/vistech.png | 0
Dsetup-data/manufacturers/images/vitelic.png | 0
Dsetup-data/manufacturers/images/vlsi.png | 0
Dsetup-data/manufacturers/images/volterra.png | 0
Dsetup-data/manufacturers/images/vtc.png | 0
Dsetup-data/manufacturers/images/wafscale.png | 0
Dsetup-data/manufacturers/images/wdc1.png | 0
Dsetup-data/manufacturers/images/wdc2.png | 0
Dsetup-data/manufacturers/images/weitek.png | 0
Dsetup-data/manufacturers/images/winbond.png | 0
Dsetup-data/manufacturers/images/wolf.png | 0
Dsetup-data/manufacturers/images/xemics.png | 0
Dsetup-data/manufacturers/images/xicor.png | 0
Dsetup-data/manufacturers/images/xicor1.png | 0
Dsetup-data/manufacturers/images/xilinx.png | 0
Dsetup-data/manufacturers/images/yamaha.png | 0
Dsetup-data/manufacturers/images/zetex.png | 0
Dsetup-data/manufacturers/images/zilog1.png | 0
Dsetup-data/manufacturers/images/zilog2.png | 0
Dsetup-data/manufacturers/images/zilog3.png | 0
Dsetup-data/manufacturers/images/zilog4.png | 0
Dsetup-data/manufacturers/images/zmda.png | 0
Dsetup-data/manufacturers/images/zoran.png | 0
Dsetup-data/manufacturers/manufacturers.yaml | 632-------------------------------------------------------------------------------
Dsetup-data/units.yaml | 161-------------------------------------------------------------------------------
Msrc/PartKeepr/DoctrineReflectionBundle/Command/GenerateEntityCommand.php | 25++-----------------------
Msrc/PartKeepr/DoctrineReflectionBundle/Services/ReflectionService.php | 27+++++++++++++++++++++++++++
Asrc/PartKeepr/SetupBundle/Controller/AdminUserSetupController.php | 52++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PartKeepr/SetupBundle/Controller/CacheWarmupSetupController.php | 54++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PartKeepr/SetupBundle/Controller/FootprintSetupController.php | 154+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsrc/PartKeepr/SetupBundle/Controller/IndexController.php | 15---------------
Asrc/PartKeepr/SetupBundle/Controller/ManufacturerSetupController.php | 108+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PartKeepr/SetupBundle/Controller/PartUnitSetupController.php | 59+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PartKeepr/SetupBundle/Controller/SchemaMigrationSetupController.php | 56++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PartKeepr/SetupBundle/Controller/SchemaSetupController.php | 47+++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PartKeepr/SetupBundle/Controller/SetupController.php | 226+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PartKeepr/SetupBundle/Controller/SiPrefixSetupController.php | 83+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PartKeepr/SetupBundle/Controller/UnitSetupController.php | 107+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/PartKeepr/SetupBundle/Resources/config/routing.yml | 38+++++++++++++++++++++++++++++++++++++-
Rsetup-data/footprints/BGA/CBGA-32.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/CBGA-32.png | 0
Rsetup-data/footprints/BGA/FCBGA-576.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/FCBGA-576.png | 0
Rsetup-data/footprints/BGA/PBGA-119.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-119.png | 0
Rsetup-data/footprints/BGA/PBGA-169.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-169.png | 0
Rsetup-data/footprints/BGA/PBGA-225.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-225.png | 0
Rsetup-data/footprints/BGA/PBGA-260.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-260.png | 0
Rsetup-data/footprints/BGA/PBGA-297.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-297.png | 0
Rsetup-data/footprints/BGA/PBGA-304.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-304.png | 0
Rsetup-data/footprints/BGA/PBGA-316.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-316.png | 0
Rsetup-data/footprints/BGA/PBGA-324.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-324.png | 0
Rsetup-data/footprints/BGA/PBGA-385.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-385.png | 0
Rsetup-data/footprints/BGA/PBGA-400.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-400.png | 0
Rsetup-data/footprints/BGA/PBGA-484.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-484.png | 0
Rsetup-data/footprints/BGA/PBGA-625.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-625.png | 0
Rsetup-data/footprints/BGA/PBGA-676.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-676.png | 0
Rsetup-data/footprints/BGA/SBGA-256.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/SBGA-256.png | 0
Rsetup-data/footprints/BGA/SBGA-304.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/SBGA-304.png | 0
Rsetup-data/footprints/BGA/SBGA-432.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/SBGA-432.png | 0
Rsetup-data/footprints/DIP/CERDIP-14.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-14.png | 0
Rsetup-data/footprints/DIP/CERDIP-16.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-16.png | 0
Rsetup-data/footprints/DIP/CERDIP-18.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-18.png | 0
Rsetup-data/footprints/DIP/CERDIP-20.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-20.png | 0
Rsetup-data/footprints/DIP/CERDIP-24-N.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-24-N.png | 0
Rsetup-data/footprints/DIP/CERDIP-24-W.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-24-W.png | 0
Rsetup-data/footprints/DIP/CERDIP-28.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-28.png | 0
Rsetup-data/footprints/DIP/CERDIP-40.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-40.png | 0
Rsetup-data/footprints/DIP/CERDIP-8.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-8.png | 0
Rsetup-data/footprints/DIP/PDIP-14.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-14.png | 0
Rsetup-data/footprints/DIP/PDIP-16.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-16.png | 0
Rsetup-data/footprints/DIP/PDIP-18.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-18.png | 0
Rsetup-data/footprints/DIP/PDIP-20.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-20.png | 0
Rsetup-data/footprints/DIP/PDIP-24.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-24.png | 0
Rsetup-data/footprints/DIP/PDIP-28-N.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-28-N.png | 0
Rsetup-data/footprints/DIP/PDIP-28-W.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-28-W.png | 0
Rsetup-data/footprints/DIP/PDIP-8.png -> src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-8.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/footprints/footprints.yml | 155+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Rsetup-data/manufacturers/images/acer.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/acer.png | 0
Rsetup-data/manufacturers/images/actel.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/actel.png | 0
Rsetup-data/manufacturers/images/advldev.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/advldev.png | 0
Rsetup-data/manufacturers/images/aeroflex1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/aeroflex1.png | 0
Rsetup-data/manufacturers/images/aeroflex2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/aeroflex2.png | 0
Rsetup-data/manufacturers/images/agilent.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/agilent.png | 0
Rsetup-data/manufacturers/images/akm.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/akm.png | 0
Rsetup-data/manufacturers/images/alesis.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/alesis.png | 0
Rsetup-data/manufacturers/images/ali1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ali1.png | 0
Rsetup-data/manufacturers/images/ali2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ali2.png | 0
Rsetup-data/manufacturers/images/allayer.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/allayer.png | 0
Rsetup-data/manufacturers/images/allegro.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/allegro.png | 0
Rsetup-data/manufacturers/images/alliance.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/alliance.png | 0
Rsetup-data/manufacturers/images/alpha.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/alpha.png | 0
Rsetup-data/manufacturers/images/alphaind.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/alphaind.png | 0
Rsetup-data/manufacturers/images/alphamic.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/alphamic.png | 0
Rsetup-data/manufacturers/images/altera.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/altera.png | 0
Rsetup-data/manufacturers/images/amd.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/amd.png | 0
Rsetup-data/manufacturers/images/ami1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ami1.png | 0
Rsetup-data/manufacturers/images/ami2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ami2.png | 0
Rsetup-data/manufacturers/images/amic.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/amic.png | 0
Rsetup-data/manufacturers/images/ampus.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ampus.png | 0
Rsetup-data/manufacturers/images/anachip.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/anachip.png | 0
Rsetup-data/manufacturers/images/anadigic.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/anadigic.png | 0
Rsetup-data/manufacturers/images/analog.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/analog.png | 0
Rsetup-data/manufacturers/images/analog1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/analog1.png | 0
Rsetup-data/manufacturers/images/anasys.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/anasys.png | 0
Rsetup-data/manufacturers/images/anchorch.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/anchorch.png | 0
Rsetup-data/manufacturers/images/apex.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/apex.png | 0
Rsetup-data/manufacturers/images/apex1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/apex1.png | 0
Rsetup-data/manufacturers/images/ark.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ark.png | 0
Rsetup-data/manufacturers/images/asd.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/asd.png | 0
Rsetup-data/manufacturers/images/astec.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/astec.png | 0
Rsetup-data/manufacturers/images/atc.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/atc.png | 0
Rsetup-data/manufacturers/images/atecom.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/atecom.png | 0
Rsetup-data/manufacturers/images/ati.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ati.png | 0
Rsetup-data/manufacturers/images/atmel.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/atmel.png | 0
Rsetup-data/manufacturers/images/att.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/att.png | 0
Rsetup-data/manufacturers/images/audiocod.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/audiocod.png | 0
Rsetup-data/manufacturers/images/auravis.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/auravis.png | 0
Rsetup-data/manufacturers/images/aureal.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/aureal.png | 0
Rsetup-data/manufacturers/images/austin.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/austin.png | 0
Rsetup-data/manufacturers/images/averlog.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/averlog.png | 0
Rsetup-data/manufacturers/images/belfuse.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/belfuse.png | 0
Rsetup-data/manufacturers/images/benchmrq.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/benchmrq.png | 0
Rsetup-data/manufacturers/images/bi.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/bi.png | 0
Rsetup-data/manufacturers/images/bowmar_white.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/bowmar_white.png | 0
Rsetup-data/manufacturers/images/bright.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/bright.png | 0
Rsetup-data/manufacturers/images/broadcom.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/broadcom.png | 0
Rsetup-data/manufacturers/images/brooktre.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/brooktre.png | 0
Rsetup-data/manufacturers/images/burrbrwn.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/burrbrwn.png | 0
Rsetup-data/manufacturers/images/calmicro.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/calmicro.png | 0
Rsetup-data/manufacturers/images/calogic.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/calogic.png | 0
Rsetup-data/manufacturers/images/catalys1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/catalys1.png | 0
Rsetup-data/manufacturers/images/catalyst.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/catalyst.png | 0
Rsetup-data/manufacturers/images/ccube.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ccube.png | 0
Rsetup-data/manufacturers/images/ceramate1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ceramate1.png | 0
Rsetup-data/manufacturers/images/ceramate2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ceramate2.png | 0
Rsetup-data/manufacturers/images/cherry.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cherry.png | 0
Rsetup-data/manufacturers/images/chipcon1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/chipcon1.png | 0
Rsetup-data/manufacturers/images/chipcon2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/chipcon2.png | 0
Rsetup-data/manufacturers/images/chips.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/chips.png | 0
Rsetup-data/manufacturers/images/chrontel.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/chrontel.png | 0
Rsetup-data/manufacturers/images/cirrus.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cirrus.png | 0
Rsetup-data/manufacturers/images/comcore.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/comcore.png | 0
Rsetup-data/manufacturers/images/conexant.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/conexant.png | 0
Rsetup-data/manufacturers/images/cosmo.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cosmo.png | 0
Rsetup-data/manufacturers/images/crystal.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/crystal.png | 0
Rsetup-data/manufacturers/images/cygnal.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cygnal.png | 0
Rsetup-data/manufacturers/images/cypres1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cypres1.png | 0
Rsetup-data/manufacturers/images/cypress.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cypress.png | 0
Rsetup-data/manufacturers/images/cyrix.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cyrix.png | 0
Rsetup-data/manufacturers/images/daewoo.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/daewoo.png | 0
Rsetup-data/manufacturers/images/dallas1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/dallas1.png | 0
Rsetup-data/manufacturers/images/dallas2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/dallas2.png | 0
Rsetup-data/manufacturers/images/dallas3.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/dallas3.png | 0
Rsetup-data/manufacturers/images/davicom.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/davicom.png | 0
Rsetup-data/manufacturers/images/ddd.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ddd.png | 0
Rsetup-data/manufacturers/images/diamond.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/diamond.png | 0
Rsetup-data/manufacturers/images/diotec.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/diotec.png | 0
Rsetup-data/manufacturers/images/dtc1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/dtc1.png | 0
Rsetup-data/manufacturers/images/dtc2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/dtc2.png | 0
Rsetup-data/manufacturers/images/dvdo.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/dvdo.png | 0
Rsetup-data/manufacturers/images/edi.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/edi.png | 0
Rsetup-data/manufacturers/images/egg.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/egg.png | 0
Rsetup-data/manufacturers/images/elan.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/elan.png | 0
Rsetup-data/manufacturers/images/elantec.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/elantec.png | 0
Rsetup-data/manufacturers/images/elantec1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/elantec1.png | 0
Rsetup-data/manufacturers/images/elec_arrays.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/elec_arrays.png | 0
Rsetup-data/manufacturers/images/elite[1].png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/elite[1].png | 0
Rsetup-data/manufacturers/images/emmicro.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/emmicro.png | 0
Rsetup-data/manufacturers/images/enhmemsy.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/enhmemsy.png | 0
Rsetup-data/manufacturers/images/ensoniq.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ensoniq.png | 0
Rsetup-data/manufacturers/images/eon.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/eon.png | 0
Rsetup-data/manufacturers/images/epson1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/epson1.png | 0
Rsetup-data/manufacturers/images/epson2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/epson2.png | 0
Rsetup-data/manufacturers/images/ericsson.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ericsson.png | 0
Rsetup-data/manufacturers/images/ess.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ess.png | 0
Rsetup-data/manufacturers/images/etc.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/etc.png | 0
Rsetup-data/manufacturers/images/exar.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/exar.png | 0
Rsetup-data/manufacturers/images/excelsemi1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/excelsemi1.png | 0
Rsetup-data/manufacturers/images/excelsemi2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/excelsemi2.png | 0
Rsetup-data/manufacturers/images/exel.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/exel.png | 0
Rsetup-data/manufacturers/images/fairchil.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/fairchil.png | 0
Rsetup-data/manufacturers/images/freescale.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/freescale.png | 0
Rsetup-data/manufacturers/images/fujielec.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/fujielec.png | 0
Rsetup-data/manufacturers/images/fujitsu2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/fujitsu2.png | 0
Rsetup-data/manufacturers/images/galileo.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/galileo.png | 0
Rsetup-data/manufacturers/images/galvant.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/galvant.png | 0
Rsetup-data/manufacturers/images/ge.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ge.png | 0
Rsetup-data/manufacturers/images/gecples.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/gecples.png | 0
Rsetup-data/manufacturers/images/gennum.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/gennum.png | 0
Rsetup-data/manufacturers/images/gi.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/gi.png | 0
Rsetup-data/manufacturers/images/gi1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/gi1.png | 0
Rsetup-data/manufacturers/images/glink.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/glink.png | 0
Rsetup-data/manufacturers/images/goal1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/goal1.png | 0
Rsetup-data/manufacturers/images/goal2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/goal2.png | 0
Rsetup-data/manufacturers/images/goldstar1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/goldstar1.png | 0
Rsetup-data/manufacturers/images/goldstar2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/goldstar2.png | 0
Rsetup-data/manufacturers/images/gould.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/gould.png | 0
Rsetup-data/manufacturers/images/greenwich.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/greenwich.png | 0
Rsetup-data/manufacturers/images/gsemi.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/gsemi.png | 0
Rsetup-data/manufacturers/images/harris1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/harris1.png | 0
Rsetup-data/manufacturers/images/harris2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/harris2.png | 0
Rsetup-data/manufacturers/images/hfo.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/hfo.png | 0
Rsetup-data/manufacturers/images/hitachi.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/hitachi.png | 0
Rsetup-data/manufacturers/images/holtek.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/holtek.png | 0
Rsetup-data/manufacturers/images/hp.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/hp.png | 0
Rsetup-data/manufacturers/images/hualon.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/hualon.png | 0
Rsetup-data/manufacturers/images/hynix.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/hynix.png | 0
Rsetup-data/manufacturers/images/hyundai2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/hyundai2.png | 0
Rsetup-data/manufacturers/images/icd.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/icd.png | 0
Rsetup-data/manufacturers/images/icdesign.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/icdesign.png | 0
Rsetup-data/manufacturers/images/ichaus.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ichaus.png | 0
Rsetup-data/manufacturers/images/ichaus1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ichaus1.png | 0
Rsetup-data/manufacturers/images/ics.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ics.png | 0
Rsetup-data/manufacturers/images/icsi.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/icsi.png | 0
Rsetup-data/manufacturers/images/icube.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/icube.png | 0
Rsetup-data/manufacturers/images/icworks.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/icworks.png | 0
Rsetup-data/manufacturers/images/idt.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/idt.png | 0
Rsetup-data/manufacturers/images/idt1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/idt1.png | 0
Rsetup-data/manufacturers/images/igstech.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/igstech.png | 0
Rsetup-data/manufacturers/images/imp.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/imp.png | 0
Rsetup-data/manufacturers/images/impala.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/impala.png | 0
Rsetup-data/manufacturers/images/infineon.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/infineon.png | 0
Rsetup-data/manufacturers/images/inmos.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/inmos.png | 0
Rsetup-data/manufacturers/images/intel2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/intel2.png | 0
Rsetup-data/manufacturers/images/intresil4.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/intresil4.png | 0
Rsetup-data/manufacturers/images/intrsil1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/intrsil1.png | 0
Rsetup-data/manufacturers/images/intrsil2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/intrsil2.png | 0
Rsetup-data/manufacturers/images/intrsil3.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/intrsil3.png | 0
Rsetup-data/manufacturers/images/ir.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ir.png | 0
Rsetup-data/manufacturers/images/isd.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/isd.png | 0
Rsetup-data/manufacturers/images/issi.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/issi.png | 0
Rsetup-data/manufacturers/images/ite.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ite.png | 0
Rsetup-data/manufacturers/images/itex.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/itex.png | 0
Rsetup-data/manufacturers/images/itt.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/itt.png | 0
Rsetup-data/manufacturers/images/ixys.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ixys.png | 0
Rsetup-data/manufacturers/images/kec.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/kec.png | 0
Rsetup-data/manufacturers/images/kota.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/kota.png | 0
Rsetup-data/manufacturers/images/lattice1.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lattice1.png | 0
Rsetup-data/manufacturers/images/lattice2.png -> src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lattice2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lattice3.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lds.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lds1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/levone.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lgs.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lgs1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/linear.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/linfin.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/liteon.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lucent.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/macronix.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/marvell.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/matsush1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/matsushi.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/maxim.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/me.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mediavi1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mediavi2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mhs.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mhs2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micrel1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micrel2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/microchp.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micron.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micronas.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micronix.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/microsemi1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/microsemi2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/minicirc.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mitel.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mitsubis.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mlinear.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mmi.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mos.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mosaic.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/moselvit.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mostek1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mostek2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mostek3.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mosys.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/motorol1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/motorol2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mpd.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/msystem.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/murata.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/murata1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mwave.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/myson.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/nec1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/nec2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/nexflash.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/njr.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ns1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ns2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/nvidia.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/oak.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/oki.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/oki1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/opti.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/orbit.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/oren.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/perform.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/pericom.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/phaslink.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/philips.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/plx.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/pmc.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/pmi.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ptc.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/pwrsmart.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/qlogic.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/qualcomm.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/quality.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rabbit.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ramtron.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/raytheon.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rca.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/realtek.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rectron.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rendit.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/renesas.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rockwell.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rohm.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/s3.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sage.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/saifun.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sames.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/samsung.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sanken.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sanken1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sanyo.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sanyo1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/scenix.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sec.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sec1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/seeq.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/seikoi.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/semelab.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/semtech.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sgs1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sgs2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sharp.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/shindgen.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siemens1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siemens2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sierra.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sigmatel.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/signetic.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siliconlabs.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siliconm.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/silicons.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siliconx.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/silnans.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/simtek.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sipex.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sis.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/smc1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/smsc.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/smsc1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sony.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/space.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/spectek.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/spt.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sss.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sst.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/st.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/summit.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/synergy.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/synertek.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/taiwsemi.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/tdk.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/teccor.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/telcom.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/teledyne.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/telefunk.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/teltone.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/thomscsf.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ti.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ti1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/toko.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/toshiba1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/toshiba2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/toshiba3.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/trident.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/triquint.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/triscend.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/tseng.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/tundra.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/turbo_ic.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ubicom.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/umc.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/unitrode.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/usar.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/usar1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/utmc.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/utron.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/v3.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vadem.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vanguard.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vantis.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/via.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/virata.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vishay.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vistech.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vitelic.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vlsi.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/volterra.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vtc.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/wafscale.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/wdc1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/wdc2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/weitek.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/winbond.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/wolf.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/xemics.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/xicor.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/xicor1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/xilinx.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/yamaha.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zetex.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zilog1.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zilog2.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zilog3.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zilog4.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zmda.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zoran.png | 0
Asrc/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/manufacturers.yml | 916+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PartKeepr/SetupBundle/Resources/setup-data/siprefixes.yml | 116+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PartKeepr/SetupBundle/Resources/setup-data/units.yml | 160+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PartKeepr/SetupBundle/Resources/views/authkey.php.twig | 6++++++
Msrc/PartKeepr/SetupBundle/Resources/views/setup.html.twig | 43++++++++++++++++++++++++++++++++++++++++++-
Dsrc/PartKeepr/SiPrefixBundle/Resources/data/siprefixes.yaml | 64----------------------------------------------------------------
Msrc/backend/PartKeepr/PartKeepr.php | 23-----------------------
Aweb/setup.php | 15+++++++++++++++
Aweb/setup/css/BreadCrumbWizard.css | 0
Mweb/setup/index.html | 18++++++++----------
Mweb/setup/js/Cards/AbstractTestCard.js | 18+++++++++---------
Aweb/setup/js/Cards/AdminUserCard.js | 99+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aweb/setup/js/Cards/AuthKeyCard.js | 71+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dweb/setup/js/Cards/ConfigDisplayCard.js | 77-----------------------------------------------------------------------------
Dweb/setup/js/Cards/ConfigFileActionCard.js | 51---------------------------------------------------
Dweb/setup/js/Cards/ConfigFileModeCard.js | 90-------------------------------------------------------------------------------
Dweb/setup/js/Cards/ConfigSaveCard.js | 121-------------------------------------------------------------------------------
Mweb/setup/js/Cards/DatabaseConnectivityTestCard.js | 23++++++++++++-----------
Mweb/setup/js/Cards/DatabaseParametersCard.MySQL.js | 400+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Mweb/setup/js/Cards/DatabaseParametersCard.PostgreSQL.js | 391++++++++++++++++++++++++++++++++++++++++---------------------------------------
Mweb/setup/js/Cards/DatabaseParametersCard.js | 218++++++++++++++++++++++++++++++++++++++++---------------------------------------
Mweb/setup/js/Cards/DatabaseSetupCard.js | 42++++++++++++++++++++++--------------------
Mweb/setup/js/Cards/PrerequisitesTestCard.js | 26++++++++++++++------------
Mweb/setup/js/PartKeeprSetup.js | 43+++++++++++++++++++++++++++++++++++++++----
Mweb/setup/js/SetupSteps/AdminUserSetup.js | 13++++---------
Dweb/setup/js/SetupSteps/ConfigFileSetup.js | 15---------------
Aweb/setup/js/SetupSteps/ConfigSetup.js | 9+++++++++
Mweb/setup/js/SetupSteps/FootprintSetup.js | 16+++++-----------
Mweb/setup/js/SetupSteps/ManufacturerSetup.js | 16+++++-----------
Dweb/setup/js/SetupSteps/MiscSetup.js | 15---------------
Dweb/setup/js/SetupSteps/PartCategorySetup.js | 15---------------
Mweb/setup/js/SetupSteps/PartUnitSetup.js | 16+++++-----------
Aweb/setup/js/SetupSteps/SchemaMigration.js | 9+++++++++
Mweb/setup/js/SetupSteps/SchemaSetup.js | 16+++++-----------
Mweb/setup/js/SetupSteps/SiPrefixSetup.js | 16+++++-----------
Mweb/setup/js/SetupSteps/UnitSetup.js | 16+++++-----------
Aweb/setup/js/SetupSteps/WarmupCacheSetup.js | 9+++++++++
Mweb/setup/js/SetupTests/AbstractTest.js | 37++++++++++++++++++++++++++++++-------
Dweb/setup/js/SetupTests/ConfigSaveAction.js | 16----------------
Mweb/setup/js/SetupTests/DatabaseConnectivityTest.js | 15+++++----------
Dweb/setup/js/SetupTests/FilesystemPermissionTest.js | 10----------
Aweb/setup/js/SetupTests/GenerateAuthKey.js | 9+++++++++
Dweb/setup/js/SetupTests/TwigTest.js | 10----------
Mweb/setup/js/SetupWizard.js | 129+++++++++++++++++++++++++++++++------------------------------------------------
Mweb/setup/js/TestResultPanel.js | 33++++++++++++++++++++++-----------
Mweb/setup/js/wizard/BreadCrumbWizard.js | 57+++++++++++++++++++++++++++++++++++++++++++++++++--------
646 files changed, 4766 insertions(+), 3656 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -21,8 +21,8 @@ theme/sass/.sass-cache/ /reports /nbproject/ partkeepr.jsfiles - - +app/config/parameters_setup.yml +app/authkey.php /web/bundles/ /web/images/* diff --git a/app/AppKernel.php b/app/AppKernel.php @@ -1,51 +1,10 @@ <?php use Symfony\Component\Config\Loader\LoaderInterface; -use Symfony\Component\DependencyInjection\Container; use Symfony\Component\HttpKernel\Kernel; class AppKernel extends Kernel { - /** - * @todo Remove this after successful migration so SF2 - * @var \AppKernel - */ - private static $kernel = null; - - /** - * Temporary constructor to inject the service container. - * - * @todo Remove this after successful migration to SF2 - * - * @param string $environment - * @param bool $debug - */ - public function __construct($environment, $debug) - { - parent::__construct($environment, $debug); - - AppKernel::$kernel = $this; - } - - /** - * Returns the service container - * - * @todo Remove this after successful migration to SF2 - * @return null|\Symfony\Component\DependencyInjection\ContainerInterface - */ - public static function getMigrationContainer() - { - if (self::$kernel instanceof \AppKernel) { - if (!self::$kernel->getContainer() instanceof Container) { - self::$kernel->boot(); - } - - return self::$kernel->getContainer(); - } - - return null; - } - public function registerBundles() { // Base 3rd party bundles required for PartKeepr operation diff --git a/app/SetupAppKernel.php b/app/SetupAppKernel.php @@ -0,0 +1,41 @@ +<?php + +use Symfony\Component\Config\Loader\LoaderInterface; +use Symfony\Component\HttpKernel\Kernel; + +/** + * This is a special stripped-down kernel which is used during setup. + */ +class SetupAppKernel extends Kernel +{ + public function registerBundles() + { + // Base 3rd party bundles required for PartKeepr operation + $bundles = array( + new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), + new Symfony\Bundle\SecurityBundle\SecurityBundle(), + new Symfony\Bundle\TwigBundle\TwigBundle(), + new Symfony\Bundle\MonologBundle\MonologBundle(), + new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), + new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), + new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(), + ); + + // Developer bundles + if (in_array($this->getEnvironment(), array('dev', 'test'))) { + $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); + $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); + $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); + $bundles[] = new Liip\FunctionalTestBundle\LiipFunctionalTestBundle(); + } + + $bundles[] = new \PartKeepr\SetupBundle\PartKeeprSetupBundle(); + + return $bundles; + } + + public function registerContainerConfiguration(LoaderInterface $loader) + { + $loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml'); + } +} diff --git a/app/config/config.yml b/app/config/config.yml @@ -2,6 +2,12 @@ imports: - { resource: parameters.yml } - { resource: security.yml } - { resource: partkeepr.yml } + - { resource: config_framework.yml } + - { resource: config_doctrine.yml } + - { resource: config_fos_user.yml } + - { resource: config_dunglas.yml } + - { resource: config_ldap.yml } + - { resource: config_partkeepr.yml } fos_rest: body_listener: true @@ -28,26 +34,6 @@ sensio_framework_extra: view: { annotations: false } router: { annotations: true } -framework: - #esi: ~ - translator: { fallback: en } - serializer: { enable_annotations: true } - secret: %secret% - router: - resource: "%kernel.root_dir%/config/routing.yml" - strict_requirements: ~ - form: ~ - csrf_protection: ~ - validation: { enabled: true, enable_annotations: true } - templating: - engines: ['twig'] - #assets_version: SomeVersionScheme - default_locale: "%locale%" - trusted_proxies: ~ - session: ~ - fragments: ~ - http_method_override: true - # Assetic Configuration assetic: debug: %kernel.debug% @@ -61,59 +47,9 @@ assetic: #yui_css: # jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar -# Doctrine Configuration -doctrine: - dbal: - driver: %database_driver% - host: %database_host% - port: %database_port% - dbname: %database_name% - user: %database_user% - password: %database_password% - charset: UTF8 - server_version: 5.6 - - # if using pdo_sqlite as your database driver, add the path in parameters.yml - # e.g. database_path: %kernel.root_dir%/data/data.db3 - # path: %database_path% - - orm: - auto_generate_proxy_classes: %kernel.debug% - connection: ~ - auto_mapping: true - mappings: - model: - type: annotation - dir: %kernel.root_dir%/../src/backend/PartKeepr/ - prefix: PartKeepr - is_bundle: false - gedmo_tree: - type: annotation - prefix: Gedmo\Tree\Entity - dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Tree/Entity" - alias: GedmoTree # this one is optional and will default to the name set for the mapping - is_bundle: false - -stof_doctrine_extensions: - default_locale: en_US - orm: - default: - tree: true - twig: exception_controller: 'FOS\RestBundle\Controller\ExceptionController::showAction' -fos_user: - db_driver: orm - firewall_name: main - user_class: PartKeepr\AuthBundle\Entity\FOSUser - -doctrine_migrations: - dir_name: %kernel.root_dir%/../src/PartKeepr/CoreBundle/DoctrineMigrations - namespace: PartKeepr\CoreBundle\DoctrineMigrations - table_name: SchemaVersions - name: Application Migrations - dunglas_api: title: "PartKeepr" description: "The PartKeepr REST API" @@ -157,1152 +93,3 @@ services: calls: - method: "setCircularReferenceLimit" arguments: [ [ 5 ] ] - - footprint.category_path_listener: - class: PartKeepr\FootprintBundle\Listeners\CategoryPathListener - arguments: - - "@service_container" - tags: - - { name: doctrine.event_listener, event: onFlush } - - storage_location.category_path_listener: - class: PartKeepr\StorageLocationBundle\Listeners\CategoryPathListener - arguments: - - "@service_container" - tags: - - { name: doctrine.event_listener, event: onFlush } - - part.category_path_listener: - class: PartKeepr\PartBundle\Listeners\CategoryPathListener - arguments: - - "service_container" - tags: - - { name: doctrine.event_listener, event: onFlush } - - part.stock_level_listener: - class: PartKeepr\PartBundle\Listeners\StockLevelListener - arguments: - - "@service_container" - tags: - - { name: doctrine.event_listener, event: onFlush } - - my_event_listener: - class: PartKeepr\UploadedFileBundle\EventListener\TemporaryFileEventListener - arguments: - - "@partkeepr_uploadedfile_service" - - "@partkeepr_image_service" - - "@annotation_reader" - - "@property_accessor" - - "@api.iri_converter" - tags: [ { name: "kernel.event_listener", event: "kernel.view", method: "replaceTemporaryFile", priority: 100 } ] - - resource.distributor: - parent: "api.resource" - arguments: [ "PartKeepr\\DistributorBundle\Entity\Distributor" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.footprint: - parent: "api.resource" - arguments: [ "PartKeepr\FootprintBundle\Entity\Footprint" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.footprint_image.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.footprint_image", "GET" ] - - resource.footprint_image.item_operation.custom_get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.footprint_image" # Resource - - [ "GET" ] # Methods - - "/footprint_images/{id}/getImage" # Path - - "PartKeeprFootprintBundle:FootprintImage:getImage" # Controller - - "FootprintImageGetImage" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.footprint_image: - parent: "api.resource" - arguments: [ "PartKeepr\FootprintBundle\Entity\FootprintImage" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initItemOperations" - arguments: [ [ "@resource.footprint_image.item_operation.get", "@resource.footprint_image.item_operation.custom_get" ] ] - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.footprint_attachment.item_operation.custom_get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.footprint_attachment" # Resource - - [ "GET" ] # Methods - - "/footprint_attachments/{id}/getFile" # Path - - "PartKeeprFootprintBundle:FootprintAttachment:getFile" # Controller - - "FootprintAttachmentGet" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.footprint_attachment.item_operation.custom_get_mime: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.footprint_attachment" # Resource - - [ "GET" ] # Methods - - "/footprint_attachments/{id}/getMimeTypeIcon" # Path - - "PartKeeprFootprintBundle:FootprintAttachment:getMimeTypeIcon" # Controller - - "FootprintAttachmentMimeTypeIcon" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.footprint_attachment.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.footprint_attachment", "GET" ] - - resource.footprint_attachment: - parent: "api.resource" - arguments: [ "PartKeepr\FootprintBundle\Entity\FootprintAttachment" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initItemOperations" - arguments: [ [ "@resource.footprint_attachment.item_operation.get", "@resource.footprint_attachment.item_operation.custom_get", "@resource.footprint_attachment.item_operation.custom_get_mime" ] ] - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.footprint_category.item_operation.move: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.footprint_category" # Resource - - [ "PUT" ] # Methods - - "/footprint_categories/{id}/move" # Path - - "partkeepr.category.move" # Controller - - "FootprintCategoryMove" # Route name - - resource.footprint_category.collection_operation.post: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: [ "@resource.footprint_category", "POST" ] - - resource.footprint_category.collection_operation.get_root: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: - - "@resource.footprint_category" # Resource - - [ "GET" ] # Methods - - "/footprint_categories/getExtJSRootNode" # Path - - "partkeepr.category.get_root_node" # Controller - - "PartKeeprFootprintCategoryGetRootNode" - - resource.footprint_category.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.footprint_category", "GET" ] - - resource.footprint_category.item_operation.put: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.footprint_category", "PUT" ] - - resource.footprint_category.item_operation.delete: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.footprint_category", "DELETE" ] - - resource.footprint_category: - parent: "api.resource" - arguments: [ "PartKeepr\FootprintBundle\Entity\FootprintCategory" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initCollectionOperations" - arguments: [ [ "@resource.footprint_category.collection_operation.get_root", "@resource.footprint_category.collection_operation.post" ] ] - - method: "initItemOperations" - arguments: [ [ "@resource.footprint_category.item_operation.get", "@resource.footprint_category.item_operation.put", "@resource.footprint_category.item_operation.delete", "@resource.footprint_category.item_operation.move" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.part.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.part", "GET" ] - - resource.part.item_operation.put: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.part", "PUT" ] - - resource.part.item_operation.delete: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.part", "DELETE" ] - - resource.part.item_operation.add_stock: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.part" # Resource - - [ "PUT" ] # Methods - - "/parts/{id}/addStock" # Path - - "partkeepr.part.add_stock" # Controller - - "PartAddStock" # Route name - - resource.part.item_operation.remove_stock: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.part" # Resource - - [ "PUT" ] # Methods - - "/parts/{id}/removeStock" # Path - - "partkeepr.part.remove_stock" # Controller - - "PartRemoveStock" # Route name - - resource.part.item_operation.set_stock: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.part" # Resource - - [ "PUT" ] # Methods - - "/parts/{id}/setStock" # Path - - "partkeepr.part.set_stock" # Controller - - "PartSetStock" # Route name - - resource.part: - parent: "api.resource" - arguments: [ "PartKeepr\\PartBundle\\Entity\\Part" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initItemOperations" - arguments: [ [ "@resource.part.item_operation.get", "@resource.part.item_operation.put", "@resource.part.item_operation.delete", "@resource.part.item_operation.add_stock", "@resource.part.item_operation.remove_stock", "@resource.part.item_operation.set_stock" ] ] - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.part_attachment.item_operation.custom_get_image: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.part_attachment" # Resource - - [ "GET" ] # Methods - - "/part_attachments/{id}/getImage" # Path - - "PartKeeprPartBundle:PartAttachment:getImage" # Controller - - "PartAttachmentGetImage" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.part_attachment.item_operation.custom_get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.part_attachment" # Resource - - [ "GET" ] # Methods - - "/part_attachments/{id}/getFile" # Path - - "PartKeeprPartBundle:PartAttachment:getFile" # Controller - - "PartAttachmentGet" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.part_attachment.item_operation.custom_get_mime: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.part_attachment" # Resource - - [ "GET" ] # Methods - - "/part_attachments/{id}/getMimeTypeIcon" # Path - - "PartKeeprPartBundle:PartAttachment:getMimeTypeIcon" # Controller - - "PartAttachmentMimeTypeIcon" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.part_attachment.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.part_attachment", "GET" ] - - resource.part_attachment: - parent: "api.resource" - arguments: [ "PartKeepr\\PartBundle\\Entity\\PartAttachment" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initItemOperations" - arguments: [ [ "@resource.part_attachment.item_operation.get", "@resource.part_attachment.item_operation.custom_get", "@resource.part_attachment.item_operation.custom_get_mime", "@resource.part_attachment.item_operation.custom_get_image" ] ] - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.part_category.item_operation.move: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.part_category" # Resource - - [ "PUT" ] # Methods - - "/part_categories/{id}/move" # Path - - "partkeepr.category.move" # Controller - - "PartKeeprPartCategoryMove" - - resource.part_category.collection_operation.post: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: [ "@resource.part_category", "POST" ] - - resource.part_category.collection_operation.get_root: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: - - "@resource.part_category" # Resource - - [ "GET" ] # Methods - - "/part_categories/getExtJSRootNode" # Path - - "partkeepr.category.get_root_node" # Controller - - "PartKeeprPartCategoryGetRootNode" - - resource.part_category.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.part_category", "GET" ] - - resource.part_category.item_operation.put: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.part_category", "PUT" ] - - resource.part_category.item_operation.delete: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.part_category", "DELETE" ] - - resource.part_category: - parent: "api.resource" - arguments: [ "PartKeepr\\PartBundle\Entity\\PartCategory" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initCollectionOperations" - arguments: [ [ "@resource.part_category.collection_operation.get_root", "@resource.part_category.collection_operation.post" ] ] - - method: "initItemOperations" - arguments: [ [ "@resource.part_category.item_operation.get", "@resource.part_category.item_operation.put", "@resource.part_category.item_operation.delete", "@resource.part_category.item_operation.move" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.part_distributor: - parent: "api.resource" - arguments: [ "PartKeepr\\PartBundle\\Entity\\PartDistributor" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.part_manufacturer: - parent: "api.resource" - arguments: [ "PartKeepr\\PartBundle\\Entity\\PartManufacturer" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.manufacturer: - parent: "api.resource" - arguments: [ "PartKeepr\\ManufacturerBundle\\Entity\\Manufacturer" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.manufacturer_ic_logo.item_operation.custom_get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.manufacturer_ic_logo" # Resource - - [ "GET" ] # Methods - - "/manufacturer_i_c_logos/{id}/getImage" # Path - - "PartKeeprManufacturerBundle:ManufacturerIcLogo:getImage" # Controller - - "ManufacturerIcLogoGetImage" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.manufacturer_ic_logo.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.manufacturer_ic_logo", "GET" ] - - resource.manufacturer_ic_logo.item_operation.put: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.manufacturer_ic_logo", "PUT" ] - - resource.manufacturer_ic_logo: - parent: "api.resource" - arguments: [ "PartKeepr\\ManufacturerBundle\Entity\ManufacturerICLogo" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initItemOperations" - arguments: [ [ "@resource.manufacturer_ic_logo.item_operation.get", "@resource.manufacturer_ic_logo.item_operation.put", "@resource.manufacturer_ic_logo.item_operation.custom_get" ] ] - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.partmeasurementunit.item_operation.custom_put: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.partmeasurementunit" # Resource - - [ "PUT" ] # Methods - - "/part_measurement_units/{id}/setDefault" # Path - - "PartKeeprPartBundle:PartMeasurementUnit:setDefault" # Controller - - "PartMeasurementUnitSetDefault" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - resource.partmeasurementunit.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.partmeasurementunit", "GET" ] - - resource.partmeasurementunit.item_operation.put: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.partmeasurementunit", "PUT" ] - - resource.partmeasurementunit: - parent: "api.resource" - arguments: [ "PartKeepr\\PartBundle\\Entity\\PartMeasurementUnit" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initItemOperations" - arguments: [ [ "@resource.partmeasurementunit.item_operation.custom_put", "@resource.partmeasurementunit.item_operation.get", "@resource.partmeasurementunit.item_operation.put" ] ] - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - - resource.unit: - parent: "api.resource" - arguments: [ "PartKeepr\\UnitBundle\Entity\Unit" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.siprefix: - parent: "api.resource" - arguments: [ "PartKeepr\\SiPrefixBundle\\Entity\\SiPrefix" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - -# ######################## Storage Location Categories###################################### - resource.storage_location: - parent: "api.resource" - arguments: [ "PartKeepr\StorageLocationBundle\Entity\StorageLocation" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.stock_entry: - parent: "api.resource" - arguments: [ "PartKeepr\StockBundle\Entity\StockEntry" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - -# ######################## Storage Location Categories###################################### - - resource.storage_location_category.item_operation.move: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.storage_location_category" # Resource - - [ "PUT" ] # Methods - - "/storage_location_categories/{id}/move" # Path - - "partkeepr.category.move" # Controller - - "StorageLocationCategoryMove" # Route name - - resource.storage_location_category.collection_operation.get_root: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: - - "@resource.storage_location_category" # Resource - - [ "GET" ] # Methods - - "/storage_location_categories/getExtJSRootNode" # Path - - "partkeepr.category.get_root_node" # Controller - - "StorageLocationCategoryGetRoot" # Route name - - resource.storage_location_category.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.storage_location_category", "GET" ] - - resource.storage_location_category.item_operation.put: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.storage_location_category", "PUT" ] - - resource.storage_location_category.item_operation.delete: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.storage_location_category", "DELETE" ] - - resource.storage_location_category.collection_operation.post: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: [ "@resource.storage_location_category", "POST" ] - - resource.storage_location_category: - parent: "api.resource" - arguments: [ "PartKeepr\StorageLocationBundle\Entity\StorageLocationCategory" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initCollectionOperations" - arguments: [ [ "@resource.storage_location_category.collection_operation.get_root", "@resource.storage_location_category.collection_operation.post" ] ] - - method: "initItemOperations" - arguments: [ [ "@resource.storage_location_category.item_operation.get", "@resource.storage_location_category.item_operation.put", "@resource.storage_location_category.item_operation.delete", "@resource.storage_location_category.item_operation.move" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.storage_location_image.item_operation.custom_get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.storage_location_image" # Resource - - [ "GET" ] # Methods - - "/storage_location_images/{id}/getImage" # Path - - "PartKeeprStorageLocationBundle:StorageLocationImage:getImage" # Controller - - "StorageLocationGetImage" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.storage_location_image: - parent: "api.resource" - arguments: [ "PartKeepr\StorageLocationBundle\Entity\StorageLocationImage" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initItemOperations" - arguments: [ [ "@resource.storage_location_image.item_operation.custom_get" ] ] - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - -# ######################## Temporary Images ###################################### - resource.tempimage.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.tempimage", "GET" ] - - resource.tempimage.collection_operation.custom_post: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: - - "@resource.tempimage" # Resource - - [ "POST" ] # Methods - - "/temp_images/upload" # Path - - "PartKeeprImageBundle:TemporaryImage:upload" # Controller - - "TemporaryImageUpload" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.tempimage.collection_operation.custom_post_webcam: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: - - "@resource.tempimage" # Resource - - [ "POST" ] # Methods - - "/temp_images/webcamUpload" # Path - - "PartKeeprImageBundle:TemporaryImage:webcamUpload" # Controller - - "TemporaryImageUploadWebcam" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.tempimage.item_operation.custom_get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.tempimage" # Resource - - [ "GET" ] # Methods - - "/temp_images/{id}/getImage" # Path - - "PartKeeprImageBundle:TemporaryImage:getImage" # Controller - - "TemporaryImageGet" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.tempimage: - parent: "api.resource" - arguments: [ "PartKeepr\\ImageBundle\\Entity\\TempImage" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initCollectionOperations" - arguments: [ [ "@resource.tempimage.collection_operation.custom_post", "@resource.tempimage.collection_operation.custom_post_webcam" ] ] - - method: "initItemOperations" - arguments: [ [ "@resource.tempimage.item_operation.get", "@resource.tempimage.item_operation.custom_get" ] ] - - resource.tempfile.collection_operation.custom_post: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: - - "@resource.tempfile" # Resource - - [ "POST" ] # Methods - - "/temp_uploaded_files/upload" # Path - - "PartKeeprUploadedFileBundle:TemporaryFile:upload" # Controller - - "TemporaryFileUpload" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.tempfile.collection_operation.custom_post_webcam: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: - - "@resource.tempfile" # Resource - - [ "POST" ] # Methods - - "/temp_uploaded_files/webcamUpload" # Path - - "PartKeeprUploadedFileBundle:TemporaryFile:webcamUpload" # Controller - - "TemporaryFileUploadWebcam" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.tempfile.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.tempfile", "GET" ] - - resource.tempfile.item_operation.custom_get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.tempfile" # Resource - - [ "GET" ] # Methods - - "/temp_uploaded_files/{id}/getFile" # Path - - "PartKeeprUploadedFileBundle:TemporaryFile:getFile" # Controller - - "TemporaryFileGet" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.tempfile.item_operation.custom_get_mimetype: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.tempfile" # Resource - - [ "GET" ] # Methods - - "/temp_uploaded_files/{id}/getMimeTypeIcon" # Path - - "PartKeeprUploadedFileBundle:TemporaryFile:getMimeTypeIcon" # Controller - - "TemporaryFileGetMimeTypeIcon" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.tempfile: - parent: "api.resource" - arguments: [ "PartKeepr\\UploadedFileBundle\\Entity\\TempUploadedFile" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initCollectionOperations" - arguments: [ [ "@resource.tempfile.collection_operation.custom_post" ] ] - - method: "initItemOperations" - arguments: [ [ "@resource.tempfile.item_operation.get", "@resource.tempfile.item_operation.custom_get", "@resource.tempfile.item_operation.custom_get_mimetype", "@resource.tempfile.collection_operation.custom_post_webcam" ] ] - - resource.tip_of_the_day.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.tip_of_the_day", "GET" ] - - resource.tip_of_the_day.item_operation.mark_read: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.tip_of_the_day" - - "PUT" - - "/tip_of_the_days/{id}/markTipRead" - - "partkeepr.tip_of_the_day.mark_read" - - "TipMarkRead" - - - resource.tip_of_the_day.collection_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: [ "@resource.tip_of_the_day", "GET" ] - - resource.tip_of_the_day.collection_operation.post: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: [ "@resource.tip_of_the_day", "POST" ] - - resource.tip_of_the_day.collection_operation.mark_all_unread: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: - - "@resource.tip_of_the_day" - - [ "POST" ] - - "/tip_of_the_days/markAllTipsAsUnread" - - "partkeepr.tip_of_the_day.mark_all_unread" - - "TipMarkAllUnrad" - - resource.tip_of_the_day: - parent: "api.resource" - arguments: [ "PartKeepr\\TipOfTheDayBundle\\Entity\\TipOfTheDay" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initCollectionOperations" - arguments: [ [ "@resource.tip_of_the_day.collection_operation.get", "@resource.tip_of_the_day.collection_operation.post", "@resource.tip_of_the_day.collection_operation.mark_all_unread" ] ] - - method: "initItemOperations" - arguments: [ [ "@resource.tip_of_the_day.item_operation.get", "@resource.tip_of_the_day.item_operation.mark_read" ] ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.tip_of_the_day_history.collection_operation.custom_get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: - - "@resource.tip_of_the_day_history" - - [ "GET" ] - - "/tip_of_the_day_histories" - - "partkeepr.tip_of_the_day_history.collection_get" - - "TipHistoriesGet" - - resource.tip_of_the_day_history: - parent: "api.resource" - arguments: [ "PartKeepr\\TipOfTheDayBundle\\Entity\\TipOfTheDayHistory" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initCollectionOperations" - arguments: [ [ "@resource.tip_of_the_day_history.collection_operation.custom_get" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.user.item_operation.get_preferences: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: - - "@resource.user" # Resource - - [ "GET" ] # Methods - - "/user_preferences" # Path - - "partkeepr.user_preference.get_preferences" # Controller - - "PartKeeprUserPreferenceGet" - - resource.user.item_operation.set_preference: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: - - "@resource.user" # Resource - - [ "POST", "PUT" ] # Methods - - "/user_preferences" # Path - - "partkeepr.user_preference.set_preference" # Controller - - "PartKeeprUserPreferenceSet" - - resource.user.item_operation.delete_preference: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.user" # Resource - - [ "DELETE" ] # Methods - - "/user_preferences" # Path - - "partkeepr.user_preference.delete_preference" # Controller - - "PartKeeprUserPreferenceDelete" - - resource.user.item_operation.login: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.user" # Resource - - [ "POST" ] # Methods - - "/users/login" # Path - - "partkeepr.auth.login" # Controller - - "PartKeeprAuthLogin" - - resource.user.collection_operation.get_providers: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.user" # Resource - - [ "GET" ] # Methods - - "/users/get_user_providers" # Path - - "partkeepr.auth.get_providers" # Controller - - "PartKeeprAuthGetProviders" - - resource.user.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.user", "GET" ] - - resource.user.item_operation.put_custom: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.user" # Resource - - [ "PUT" ] # Methods - - "/users/{id}" # Path - - "partkeepr.user.put" # Controller - - "PartKeeprUserPut" - - resource.user.collection_operation.post_custom: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createCollectionOperation" ] - arguments: - - "@resource.user" # Resource - - [ "POST" ] # Methods - - "/users" # Path - - "partkeepr.user.post" # Controller - - "PartKeeprUserPost" - - resource.user.item_operation.delete: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.user", "DELETE" ] - - resource.user_provider: - parent: "api.resource" - arguments: [ "PartKeepr\AuthBundle\Entity\UserProvider" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.user: - parent: "api.resource" - arguments: [ "PartKeepr\AuthBundle\Entity\User" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initCollectionOperations" - arguments: [ [ "@resource.user.collection_operation.get", "@resource.user.collection_operation.post_custom", "@resource.user.collection_operation.get_providers" ] ] - - method: "initItemOperations" - arguments: [ [ "@resource.user.item_operation.get", "@resource.user.item_operation.get", "@resource.user.item_operation.put_custom", "@resource.user.item_operation.delete", "@resource.user.item_operation.get_preferences", "@resource.user.item_operation.set_preference", "@resource.user.item_operation.delete_preference", "@resource.user.item_operation.login" ] ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.fos_user: - parent: "api.resource" - arguments: [ "PartKeepr\AuthBundle\Entity\FOSUser" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.project: - parent: "api.resource" - arguments: [ "PartKeepr\\ProjectBundle\\Entity\\Project" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.project_part: - parent: "api.resource" - arguments: [ "PartKeepr\\ProjectBundle\\Entity\\ProjectPart" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.project_attachment.item_operation.custom_get_image: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.project_attachment" # Resource - - [ "GET" ] # Methods - - "/project_attachments/{id}/getImage" # Path - - "PartKeeprProjectBundle:ProjectAttachment:getImage" # Controller - - "ProjectAttachmentGetImage" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.project_attachment.item_operation.custom_get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.project_attachment" # Resource - - [ "GET" ] # Methods - - "/project_attachments/{id}/getFile" # Path - - "PartKeeprProjectBundle:ProjectAttachment:getFile" # Controller - - "ProjectAttachmentGet" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.project_attachment.item_operation.custom_get_mime: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.project_attachment" # Resource - - [ "GET" ] # Methods - - "/project_attachments/{id}/getMimeTypeIcon" # Path - - "PartKeeprProjectBundle:ProjectAttachment:getMimeTypeIcon" # Controller - - "ProjectAttachmentMimeTypeIcon" # Route name - - # Context (will be present in Hydra documentation) - "@type": "hydra:Operation" - "hydra:title": "A custom operation" - "returns": "xmls:string" - - resource.project_attachment.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.project_attachment", "GET" ] - - resource.project_attachment: - parent: "api.resource" - arguments: [ "PartKeepr\\ProjectBundle\\Entity\\ProjectAttachment" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initItemOperations" - arguments: [ [ "@resource.project_attachment.item_operation.get", "@resource.project_attachment.item_operation.custom_get", "@resource.project_attachment.item_operation.custom_get_mime", "@resource.project_attachment.item_operation.custom_get_image" ] ] - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - - resource.system_notice.item_operation.get: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: [ "@resource.system_notice", "GET" ] - - resource.system_notice.item_operation.acknowledge: - class: "Dunglas\ApiBundle\Api\Operation\Operation" - public: false - factory: [ "@api.operation_factory", "createItemOperation" ] - arguments: - - "@resource.system_notice" # Resource - - [ "PUT" ] # Methods - - "/system_notices/{id}/acknowledge" # Path - - "partkeepr.system_notice.acknowledge" # Controller - - "SystemNoticeAcknowledge" # Route name - - resource.system_notice: - parent: "api.resource" - arguments: [ "PartKeepr\\CoreBundle\\Entity\\SystemNotice" ] - tags: [ { name: "api.resource" } ] - calls: - - method: "initItemOperations" - arguments: [ [ "@resource.system_notice.item_operation.get", "@resource.system_notice.item_operation.acknowledge" ] ] - - method: "initFilters" - arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] - - method: "initNormalizationContext" - arguments: [ { groups: [ "default" ] } ] - - method: "initDenormalizationContext" - arguments: - - { groups: [ "default" ] } - diff --git a/app/config/config_doctrine.yml b/app/config/config_doctrine.yml @@ -0,0 +1,44 @@ +# Doctrine Configuration +doctrine: + dbal: + driver: %database_driver% + host: %database_host% + port: %database_port% + dbname: %database_name% + user: %database_user% + password: %database_password% + charset: UTF8 + server_version: 5.6 + + # if using pdo_sqlite as your database driver, add the path in parameters.yml + # e.g. database_path: %kernel.root_dir%/data/data.db3 + # path: %database_path% + + orm: + auto_generate_proxy_classes: %kernel.debug% + connection: ~ + auto_mapping: true + mappings: + model: + type: annotation + dir: %kernel.root_dir%/../src/backend/PartKeepr/ + prefix: PartKeepr + is_bundle: false + gedmo_tree: + type: annotation + prefix: Gedmo\Tree\Entity + dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Tree/Entity" + alias: GedmoTree # this one is optional and will default to the name set for the mapping + is_bundle: false + +doctrine_migrations: + dir_name: %kernel.root_dir%/../src/PartKeepr/CoreBundle/DoctrineMigrations + namespace: PartKeepr\CoreBundle\DoctrineMigrations + table_name: SchemaVersions + name: Application Migrations + +stof_doctrine_extensions: + default_locale: en_US + orm: + default: + tree: true diff --git a/app/config/config_dunglas.yml b/app/config/config_dunglas.yml @@ -0,0 +1,7 @@ +dunglas_api: + title: "PartKeepr" + description: "The PartKeepr REST API" + collection: + pagination: + items_per_page: + client_can_change: true diff --git a/app/config/config_fos_user.yml b/app/config/config_fos_user.yml @@ -0,0 +1,4 @@ +fos_user: + db_driver: orm + firewall_name: main + user_class: PartKeepr\AuthBundle\Entity\FOSUser diff --git a/app/config/config_framework.yml b/app/config/config_framework.yml @@ -0,0 +1,19 @@ +framework: + #esi: ~ + translator: { fallback: en } + serializer: { enable_annotations: true } + secret: %secret% + router: + resource: "%kernel.root_dir%/config/routing.yml" + strict_requirements: ~ + form: ~ + csrf_protection: ~ + validation: { enabled: true, enable_annotations: true } + templating: + engines: ['twig'] + #assets_version: SomeVersionScheme + default_locale: "%locale%" + trusted_proxies: ~ + session: ~ + fragments: ~ + http_method_override: true diff --git a/app/config/config_ldap.yml b/app/config/config_ldap.yml @@ -0,0 +1,21 @@ +fr3d_ldap: + driver: + host: "%fr3d_ldap.driver.host%" + port: "%fr3d_ldap.driver.port%" + username: "%fr3d_ldap.driver.username%" + password: "%fr3d_ldap.driver.password%" + bindRequiresDn: "%fr3d_ldap.driver.bindRequiresDn%" + baseDn: "%fr3d_ldap.driver.baseDn%" + accountFilterFormat: "%fr3d_ldap.driver.accountFilterFormat%" + optReferrals: "%fr3d_ldap.driver.optReferrals%" + useSsl: "%fr3d_ldap.driver.useSsl%" + useStartTls: "%fr3d_ldap.driver.useStartTls%" + accountCanonicalForm: "%fr3d_ldap.driver.accountCanonicalForm%" + accountDomainName: "%fr3d_ldap.driver.accountDomainName%" + accountDomainNameShort: "%fr3d_ldap.driver.accountDomainNameShort%" + user: + baseDn: "%fr3d_ldap.user.baseDn%" + filter: "%fr3d_ldap.user.filter%" + attributes: # Specify ldap attributes mapping [ldap attribute, user object method] + - { ldap_attr: samaccountname, user_method: setUsername } + - { ldap_attr: email, user_method: setEmail } diff --git a/app/config/config_partkeepr.yml b/app/config/config_partkeepr.yml @@ -0,0 +1,1150 @@ +services: + footprint.category_path_listener: + class: PartKeepr\FootprintBundle\Listeners\CategoryPathListener + arguments: + - "@service_container" + tags: + - { name: doctrine.event_listener, event: onFlush } + + storage_location.category_path_listener: + class: PartKeepr\StorageLocationBundle\Listeners\CategoryPathListener + arguments: + - "@service_container" + tags: + - { name: doctrine.event_listener, event: onFlush } + + part.category_path_listener: + class: PartKeepr\PartBundle\Listeners\CategoryPathListener + arguments: + - "service_container" + tags: + - { name: doctrine.event_listener, event: onFlush } + + part.stock_level_listener: + class: PartKeepr\PartBundle\Listeners\StockLevelListener + arguments: + - "@service_container" + tags: + - { name: doctrine.event_listener, event: onFlush } + + temporary_file_listener: + class: PartKeepr\UploadedFileBundle\EventListener\TemporaryFileEventListener + arguments: + - "@partkeepr_uploadedfile_service" + - "@partkeepr_image_service" + - "@annotation_reader" + - "@property_accessor" + - "@api.iri_converter" + tags: [ { name: "kernel.event_listener", event: "kernel.view", method: "replaceTemporaryFile", priority: 100 } ] + + resource.distributor: + parent: "api.resource" + arguments: [ "PartKeepr\\DistributorBundle\Entity\Distributor" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.footprint: + parent: "api.resource" + arguments: [ "PartKeepr\FootprintBundle\Entity\Footprint" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.footprint_image.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.footprint_image", "GET" ] + + resource.footprint_image.item_operation.custom_get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.footprint_image" # Resource + - [ "GET" ] # Methods + - "/footprint_images/{id}/getImage" # Path + - "PartKeeprFootprintBundle:FootprintImage:getImage" # Controller + - "FootprintImageGetImage" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.footprint_image: + parent: "api.resource" + arguments: [ "PartKeepr\FootprintBundle\Entity\FootprintImage" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initItemOperations" + arguments: [ [ "@resource.footprint_image.item_operation.get", "@resource.footprint_image.item_operation.custom_get" ] ] + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.footprint_attachment.item_operation.custom_get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.footprint_attachment" # Resource + - [ "GET" ] # Methods + - "/footprint_attachments/{id}/getFile" # Path + - "PartKeeprFootprintBundle:FootprintAttachment:getFile" # Controller + - "FootprintAttachmentGet" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.footprint_attachment.item_operation.custom_get_mime: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.footprint_attachment" # Resource + - [ "GET" ] # Methods + - "/footprint_attachments/{id}/getMimeTypeIcon" # Path + - "PartKeeprFootprintBundle:FootprintAttachment:getMimeTypeIcon" # Controller + - "FootprintAttachmentMimeTypeIcon" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.footprint_attachment.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.footprint_attachment", "GET" ] + + resource.footprint_attachment: + parent: "api.resource" + arguments: [ "PartKeepr\FootprintBundle\Entity\FootprintAttachment" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initItemOperations" + arguments: [ [ "@resource.footprint_attachment.item_operation.get", "@resource.footprint_attachment.item_operation.custom_get", "@resource.footprint_attachment.item_operation.custom_get_mime" ] ] + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.footprint_category.item_operation.move: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.footprint_category" # Resource + - [ "PUT" ] # Methods + - "/footprint_categories/{id}/move" # Path + - "partkeepr.category.move" # Controller + - "FootprintCategoryMove" # Route name + + resource.footprint_category.collection_operation.post: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: [ "@resource.footprint_category", "POST" ] + + resource.footprint_category.collection_operation.get_root: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: + - "@resource.footprint_category" # Resource + - [ "GET" ] # Methods + - "/footprint_categories/getExtJSRootNode" # Path + - "partkeepr.category.get_root_node" # Controller + - "PartKeeprFootprintCategoryGetRootNode" + + resource.footprint_category.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.footprint_category", "GET" ] + + resource.footprint_category.item_operation.put: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.footprint_category", "PUT" ] + + resource.footprint_category.item_operation.delete: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.footprint_category", "DELETE" ] + + resource.footprint_category: + parent: "api.resource" + arguments: [ "PartKeepr\FootprintBundle\Entity\FootprintCategory" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initCollectionOperations" + arguments: [ [ "@resource.footprint_category.collection_operation.get_root", "@resource.footprint_category.collection_operation.post" ] ] + - method: "initItemOperations" + arguments: [ [ "@resource.footprint_category.item_operation.get", "@resource.footprint_category.item_operation.put", "@resource.footprint_category.item_operation.delete", "@resource.footprint_category.item_operation.move" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.part.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.part", "GET" ] + + resource.part.item_operation.put: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.part", "PUT" ] + + resource.part.item_operation.delete: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.part", "DELETE" ] + + resource.part.item_operation.add_stock: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.part" # Resource + - [ "PUT" ] # Methods + - "/parts/{id}/addStock" # Path + - "partkeepr.part.add_stock" # Controller + - "PartAddStock" # Route name + + resource.part.item_operation.remove_stock: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.part" # Resource + - [ "PUT" ] # Methods + - "/parts/{id}/removeStock" # Path + - "partkeepr.part.remove_stock" # Controller + - "PartRemoveStock" # Route name + + resource.part.item_operation.set_stock: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.part" # Resource + - [ "PUT" ] # Methods + - "/parts/{id}/setStock" # Path + - "partkeepr.part.set_stock" # Controller + - "PartSetStock" # Route name + + resource.part: + parent: "api.resource" + arguments: [ "PartKeepr\\PartBundle\\Entity\\Part" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initItemOperations" + arguments: [ [ "@resource.part.item_operation.get", "@resource.part.item_operation.put", "@resource.part.item_operation.delete", "@resource.part.item_operation.add_stock", "@resource.part.item_operation.remove_stock", "@resource.part.item_operation.set_stock" ] ] + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.part_attachment.item_operation.custom_get_image: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.part_attachment" # Resource + - [ "GET" ] # Methods + - "/part_attachments/{id}/getImage" # Path + - "PartKeeprPartBundle:PartAttachment:getImage" # Controller + - "PartAttachmentGetImage" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.part_attachment.item_operation.custom_get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.part_attachment" # Resource + - [ "GET" ] # Methods + - "/part_attachments/{id}/getFile" # Path + - "PartKeeprPartBundle:PartAttachment:getFile" # Controller + - "PartAttachmentGet" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.part_attachment.item_operation.custom_get_mime: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.part_attachment" # Resource + - [ "GET" ] # Methods + - "/part_attachments/{id}/getMimeTypeIcon" # Path + - "PartKeeprPartBundle:PartAttachment:getMimeTypeIcon" # Controller + - "PartAttachmentMimeTypeIcon" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.part_attachment.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.part_attachment", "GET" ] + + resource.part_attachment: + parent: "api.resource" + arguments: [ "PartKeepr\\PartBundle\\Entity\\PartAttachment" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initItemOperations" + arguments: [ [ "@resource.part_attachment.item_operation.get", "@resource.part_attachment.item_operation.custom_get", "@resource.part_attachment.item_operation.custom_get_mime", "@resource.part_attachment.item_operation.custom_get_image" ] ] + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.part_category.item_operation.move: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.part_category" # Resource + - [ "PUT" ] # Methods + - "/part_categories/{id}/move" # Path + - "partkeepr.category.move" # Controller + - "PartKeeprPartCategoryMove" + + resource.part_category.collection_operation.post: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: [ "@resource.part_category", "POST" ] + + resource.part_category.collection_operation.get_root: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: + - "@resource.part_category" # Resource + - [ "GET" ] # Methods + - "/part_categories/getExtJSRootNode" # Path + - "partkeepr.category.get_root_node" # Controller + - "PartKeeprPartCategoryGetRootNode" + + resource.part_category.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.part_category", "GET" ] + + resource.part_category.item_operation.put: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.part_category", "PUT" ] + + resource.part_category.item_operation.delete: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.part_category", "DELETE" ] + + resource.part_category: + parent: "api.resource" + arguments: [ "PartKeepr\\PartBundle\Entity\\PartCategory" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initCollectionOperations" + arguments: [ [ "@resource.part_category.collection_operation.get_root", "@resource.part_category.collection_operation.post" ] ] + - method: "initItemOperations" + arguments: [ [ "@resource.part_category.item_operation.get", "@resource.part_category.item_operation.put", "@resource.part_category.item_operation.delete", "@resource.part_category.item_operation.move" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.part_distributor: + parent: "api.resource" + arguments: [ "PartKeepr\\PartBundle\\Entity\\PartDistributor" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.part_manufacturer: + parent: "api.resource" + arguments: [ "PartKeepr\\PartBundle\\Entity\\PartManufacturer" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.manufacturer: + parent: "api.resource" + arguments: [ "PartKeepr\\ManufacturerBundle\\Entity\\Manufacturer" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.manufacturer_ic_logo.item_operation.custom_get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.manufacturer_ic_logo" # Resource + - [ "GET" ] # Methods + - "/manufacturer_i_c_logos/{id}/getImage" # Path + - "PartKeeprManufacturerBundle:ManufacturerIcLogo:getImage" # Controller + - "ManufacturerIcLogoGetImage" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.manufacturer_ic_logo.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.manufacturer_ic_logo", "GET" ] + + resource.manufacturer_ic_logo.item_operation.put: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.manufacturer_ic_logo", "PUT" ] + + resource.manufacturer_ic_logo: + parent: "api.resource" + arguments: [ "PartKeepr\\ManufacturerBundle\Entity\ManufacturerICLogo" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initItemOperations" + arguments: [ [ "@resource.manufacturer_ic_logo.item_operation.get", "@resource.manufacturer_ic_logo.item_operation.put", "@resource.manufacturer_ic_logo.item_operation.custom_get" ] ] + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.partmeasurementunit.item_operation.custom_put: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.partmeasurementunit" # Resource + - [ "PUT" ] # Methods + - "/part_measurement_units/{id}/setDefault" # Path + - "partkeepr.part_measurement_unit.set_default" # Controller + - "PartMeasurementUnitSetDefault" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.partmeasurementunit.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.partmeasurementunit", "GET" ] + + resource.partmeasurementunit.item_operation.put: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.partmeasurementunit", "PUT" ] + + resource.partmeasurementunit: + parent: "api.resource" + arguments: [ "PartKeepr\\PartBundle\\Entity\\PartMeasurementUnit" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initItemOperations" + arguments: [ [ "@resource.partmeasurementunit.item_operation.custom_put", "@resource.partmeasurementunit.item_operation.get", "@resource.partmeasurementunit.item_operation.put" ] ] + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + + resource.unit: + parent: "api.resource" + arguments: [ "PartKeepr\\UnitBundle\Entity\Unit" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.siprefix: + parent: "api.resource" + arguments: [ "PartKeepr\\SiPrefixBundle\\Entity\\SiPrefix" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + +# ######################## Storage Location Categories###################################### + resource.storage_location: + parent: "api.resource" + arguments: [ "PartKeepr\StorageLocationBundle\Entity\StorageLocation" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.stock_entry: + parent: "api.resource" + arguments: [ "PartKeepr\StockBundle\Entity\StockEntry" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + +# ######################## Storage Location Categories###################################### + + resource.storage_location_category.item_operation.move: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.storage_location_category" # Resource + - [ "PUT" ] # Methods + - "/storage_location_categories/{id}/move" # Path + - "partkeepr.category.move" # Controller + - "StorageLocationCategoryMove" # Route name + + resource.storage_location_category.collection_operation.get_root: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: + - "@resource.storage_location_category" # Resource + - [ "GET" ] # Methods + - "/storage_location_categories/getExtJSRootNode" # Path + - "partkeepr.category.get_root_node" # Controller + - "StorageLocationCategoryGetRoot" # Route name + + resource.storage_location_category.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.storage_location_category", "GET" ] + + resource.storage_location_category.item_operation.put: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.storage_location_category", "PUT" ] + + resource.storage_location_category.item_operation.delete: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.storage_location_category", "DELETE" ] + + resource.storage_location_category.collection_operation.post: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: [ "@resource.storage_location_category", "POST" ] + + resource.storage_location_category: + parent: "api.resource" + arguments: [ "PartKeepr\StorageLocationBundle\Entity\StorageLocationCategory" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initCollectionOperations" + arguments: [ [ "@resource.storage_location_category.collection_operation.get_root", "@resource.storage_location_category.collection_operation.post" ] ] + - method: "initItemOperations" + arguments: [ [ "@resource.storage_location_category.item_operation.get", "@resource.storage_location_category.item_operation.put", "@resource.storage_location_category.item_operation.delete", "@resource.storage_location_category.item_operation.move" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.storage_location_image.item_operation.custom_get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.storage_location_image" # Resource + - [ "GET" ] # Methods + - "/storage_location_images/{id}/getImage" # Path + - "PartKeeprStorageLocationBundle:StorageLocationImage:getImage" # Controller + - "StorageLocationGetImage" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.storage_location_image: + parent: "api.resource" + arguments: [ "PartKeepr\StorageLocationBundle\Entity\StorageLocationImage" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initItemOperations" + arguments: [ [ "@resource.storage_location_image.item_operation.custom_get" ] ] + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + +# ######################## Temporary Images ###################################### + resource.tempimage.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.tempimage", "GET" ] + + resource.tempimage.collection_operation.custom_post: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: + - "@resource.tempimage" # Resource + - [ "POST" ] # Methods + - "/temp_images/upload" # Path + - "PartKeeprImageBundle:TemporaryImage:upload" # Controller + - "TemporaryImageUpload" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.tempimage.collection_operation.custom_post_webcam: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: + - "@resource.tempimage" # Resource + - [ "POST" ] # Methods + - "/temp_images/webcamUpload" # Path + - "PartKeeprImageBundle:TemporaryImage:webcamUpload" # Controller + - "TemporaryImageUploadWebcam" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.tempimage.item_operation.custom_get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.tempimage" # Resource + - [ "GET" ] # Methods + - "/temp_images/{id}/getImage" # Path + - "PartKeeprImageBundle:TemporaryImage:getImage" # Controller + - "TemporaryImageGet" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.tempimage: + parent: "api.resource" + arguments: [ "PartKeepr\\ImageBundle\\Entity\\TempImage" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initCollectionOperations" + arguments: [ [ "@resource.tempimage.collection_operation.custom_post", "@resource.tempimage.collection_operation.custom_post_webcam" ] ] + - method: "initItemOperations" + arguments: [ [ "@resource.tempimage.item_operation.get", "@resource.tempimage.item_operation.custom_get" ] ] + + resource.tempfile.collection_operation.custom_post: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: + - "@resource.tempfile" # Resource + - [ "POST" ] # Methods + - "/temp_uploaded_files/upload" # Path + - "PartKeeprUploadedFileBundle:TemporaryFile:upload" # Controller + - "TemporaryFileUpload" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.tempfile.collection_operation.custom_post_webcam: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: + - "@resource.tempfile" # Resource + - [ "POST" ] # Methods + - "/temp_uploaded_files/webcamUpload" # Path + - "PartKeeprUploadedFileBundle:TemporaryFile:webcamUpload" # Controller + - "TemporaryFileUploadWebcam" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.tempfile.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.tempfile", "GET" ] + + resource.tempfile.item_operation.custom_get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.tempfile" # Resource + - [ "GET" ] # Methods + - "/temp_uploaded_files/{id}/getFile" # Path + - "PartKeeprUploadedFileBundle:TemporaryFile:getFile" # Controller + - "TemporaryFileGet" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.tempfile.item_operation.custom_get_mimetype: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.tempfile" # Resource + - [ "GET" ] # Methods + - "/temp_uploaded_files/{id}/getMimeTypeIcon" # Path + - "PartKeeprUploadedFileBundle:TemporaryFile:getMimeTypeIcon" # Controller + - "TemporaryFileGetMimeTypeIcon" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.tempfile: + parent: "api.resource" + arguments: [ "PartKeepr\\UploadedFileBundle\\Entity\\TempUploadedFile" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initCollectionOperations" + arguments: [ [ "@resource.tempfile.collection_operation.custom_post" ] ] + - method: "initItemOperations" + arguments: [ [ "@resource.tempfile.item_operation.get", "@resource.tempfile.item_operation.custom_get", "@resource.tempfile.item_operation.custom_get_mimetype", "@resource.tempfile.collection_operation.custom_post_webcam" ] ] + + resource.tip_of_the_day.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.tip_of_the_day", "GET" ] + + resource.tip_of_the_day.item_operation.mark_read: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.tip_of_the_day" + - "PUT" + - "/tip_of_the_days/{id}/markTipRead" + - "partkeepr.tip_of_the_day.mark_read" + - "TipMarkRead" + + + resource.tip_of_the_day.collection_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: [ "@resource.tip_of_the_day", "GET" ] + + resource.tip_of_the_day.collection_operation.post: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: [ "@resource.tip_of_the_day", "POST" ] + + resource.tip_of_the_day.collection_operation.mark_all_unread: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: + - "@resource.tip_of_the_day" + - [ "POST" ] + - "/tip_of_the_days/markAllTipsAsUnread" + - "partkeepr.tip_of_the_day.mark_all_unread" + - "TipMarkAllUnrad" + + resource.tip_of_the_day: + parent: "api.resource" + arguments: [ "PartKeepr\\TipOfTheDayBundle\\Entity\\TipOfTheDay" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initCollectionOperations" + arguments: [ [ "@resource.tip_of_the_day.collection_operation.get", "@resource.tip_of_the_day.collection_operation.post", "@resource.tip_of_the_day.collection_operation.mark_all_unread" ] ] + - method: "initItemOperations" + arguments: [ [ "@resource.tip_of_the_day.item_operation.get", "@resource.tip_of_the_day.item_operation.mark_read" ] ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.tip_of_the_day_history.collection_operation.custom_get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: + - "@resource.tip_of_the_day_history" + - [ "GET" ] + - "/tip_of_the_day_histories" + - "partkeepr.tip_of_the_day_history.collection_get" + - "TipHistoriesGet" + + resource.tip_of_the_day_history: + parent: "api.resource" + arguments: [ "PartKeepr\\TipOfTheDayBundle\\Entity\\TipOfTheDayHistory" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initCollectionOperations" + arguments: [ [ "@resource.tip_of_the_day_history.collection_operation.custom_get" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.user.item_operation.get_preferences: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: + - "@resource.user" # Resource + - [ "GET" ] # Methods + - "/user_preferences" # Path + - "partkeepr.user_preference.get_preferences" # Controller + - "PartKeeprUserPreferenceGet" + + resource.user.item_operation.set_preference: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: + - "@resource.user" # Resource + - [ "POST", "PUT" ] # Methods + - "/user_preferences" # Path + - "partkeepr.user_preference.set_preference" # Controller + - "PartKeeprUserPreferenceSet" + + resource.user.item_operation.delete_preference: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.user" # Resource + - [ "DELETE" ] # Methods + - "/user_preferences" # Path + - "partkeepr.user_preference.delete_preference" # Controller + - "PartKeeprUserPreferenceDelete" + + resource.user.item_operation.login: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.user" # Resource + - [ "POST" ] # Methods + - "/users/login" # Path + - "partkeepr.auth.login" # Controller + - "PartKeeprAuthLogin" + + resource.user.collection_operation.get_providers: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.user" # Resource + - [ "GET" ] # Methods + - "/users/get_user_providers" # Path + - "partkeepr.auth.get_providers" # Controller + - "PartKeeprAuthGetProviders" + + resource.user.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.user", "GET" ] + + resource.user.item_operation.put_custom: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.user" # Resource + - [ "PUT" ] # Methods + - "/users/{id}" # Path + - "partkeepr.user.put" # Controller + - "PartKeeprUserPut" + + resource.user.collection_operation.post_custom: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createCollectionOperation" ] + arguments: + - "@resource.user" # Resource + - [ "POST" ] # Methods + - "/users" # Path + - "partkeepr.user.post" # Controller + - "PartKeeprUserPost" + + resource.user.item_operation.delete: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.user", "DELETE" ] + + resource.user_provider: + parent: "api.resource" + arguments: [ "PartKeepr\AuthBundle\Entity\UserProvider" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.user: + parent: "api.resource" + arguments: [ "PartKeepr\AuthBundle\Entity\User" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initCollectionOperations" + arguments: [ [ "@resource.user.collection_operation.get", "@resource.user.collection_operation.post_custom", "@resource.user.collection_operation.get_providers" ] ] + - method: "initItemOperations" + arguments: [ [ "@resource.user.item_operation.get", "@resource.user.item_operation.get", "@resource.user.item_operation.put_custom", "@resource.user.item_operation.delete", "@resource.user.item_operation.get_preferences", "@resource.user.item_operation.set_preference", "@resource.user.item_operation.delete_preference", "@resource.user.item_operation.login" ] ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.fos_user: + parent: "api.resource" + arguments: [ "PartKeepr\AuthBundle\Entity\FOSUser" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.project: + parent: "api.resource" + arguments: [ "PartKeepr\\ProjectBundle\\Entity\\Project" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.project_part: + parent: "api.resource" + arguments: [ "PartKeepr\\ProjectBundle\\Entity\\ProjectPart" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.project_attachment.item_operation.custom_get_image: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.project_attachment" # Resource + - [ "GET" ] # Methods + - "/project_attachments/{id}/getImage" # Path + - "PartKeeprProjectBundle:ProjectAttachment:getImage" # Controller + - "ProjectAttachmentGetImage" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.project_attachment.item_operation.custom_get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.project_attachment" # Resource + - [ "GET" ] # Methods + - "/project_attachments/{id}/getFile" # Path + - "PartKeeprProjectBundle:ProjectAttachment:getFile" # Controller + - "ProjectAttachmentGet" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.project_attachment.item_operation.custom_get_mime: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.project_attachment" # Resource + - [ "GET" ] # Methods + - "/project_attachments/{id}/getMimeTypeIcon" # Path + - "PartKeeprProjectBundle:ProjectAttachment:getMimeTypeIcon" # Controller + - "ProjectAttachmentMimeTypeIcon" # Route name + - # Context (will be present in Hydra documentation) + "@type": "hydra:Operation" + "hydra:title": "A custom operation" + "returns": "xmls:string" + + resource.project_attachment.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.project_attachment", "GET" ] + + resource.project_attachment: + parent: "api.resource" + arguments: [ "PartKeepr\\ProjectBundle\\Entity\\ProjectAttachment" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initItemOperations" + arguments: [ [ "@resource.project_attachment.item_operation.get", "@resource.project_attachment.item_operation.custom_get", "@resource.project_attachment.item_operation.custom_get_mime", "@resource.project_attachment.item_operation.custom_get_image" ] ] + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + + resource.system_notice.item_operation.get: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: [ "@resource.system_notice", "GET" ] + + resource.system_notice.item_operation.acknowledge: + class: "Dunglas\ApiBundle\Api\Operation\Operation" + public: false + factory: [ "@api.operation_factory", "createItemOperation" ] + arguments: + - "@resource.system_notice" # Resource + - [ "PUT" ] # Methods + - "/system_notices/{id}/acknowledge" # Path + - "partkeepr.system_notice.acknowledge" # Controller + - "SystemNoticeAcknowledge" # Route name + + resource.system_notice: + parent: "api.resource" + arguments: [ "PartKeepr\\CoreBundle\\Entity\\SystemNotice" ] + tags: [ { name: "api.resource" } ] + calls: + - method: "initItemOperations" + arguments: [ [ "@resource.system_notice.item_operation.get", "@resource.system_notice.item_operation.acknowledge" ] ] + - method: "initFilters" + arguments: [ [ "@doctrine_reflection_service.search_filter" ] ] + - method: "initNormalizationContext" + arguments: [ { groups: [ "default" ] } ] + - method: "initDenormalizationContext" + arguments: + - { groups: [ "default" ] } + diff --git a/app/config/config_setup.yml b/app/config/config_setup.yml @@ -0,0 +1,20 @@ +framework: + secret: pksetup + router: + resource: "%kernel.root_dir%/config/routing_setup.yml" + templating: + engines: ['twig', 'php'] + +sensio_framework_extra: + view: { annotations: false } + router: { annotations: true } + +monolog: + handlers: + main: + type: stream + path: %kernel.logs_dir%/%kernel.environment%.log + level: debug + console: + type: console + bubble: false diff --git a/app/config/config_setup_test.yml b/app/config/config_setup_test.yml @@ -0,0 +1,13 @@ +imports: + - { resource: config_setup.yml } + - { resource: security.yml } + - { resource: parameters_setup.yml } + - { resource: partkeepr.yml } + - { resource: config_framework.yml } + - { resource: config_doctrine.yml } + - { resource: config_fos_user.yml } + - { resource: config_dunglas.yml } + - { resource: config_ldap.yml } + - { resource: config_partkeepr.yml } + + diff --git a/app/config/routing_setup.yml b/app/config/routing_setup.yml @@ -0,0 +1,2 @@ +_setup: + resource: "@PartKeeprSetupBundle/Resources/config/routing.yml" diff --git a/setup-data/footprints/footprints.yaml b/setup-data/footprints/footprints.yaml @@ -1,303 +0,0 @@ -# Missing CSP BGA Footprints from http://www.analog.com/en/technical-library/packages/csp-chip-scale-package/csp-bga-ball-grid-array/index.html -# TODO: brazed cerdip packages from http://www.analog.com/en/technical-library/packages/dip-dual-inline-package/cerdip-side-or-bottom-brazed/index.html -# TODO: add gullwing lead DIP packages from http://www.analog.com/en/technical-library/packages/dip-dual-inline-package/dip-gullwing-leads/index.html -# TODO: add metal/hybrid DIP packages from http://www.analog.com/en/technical-library/packages/dip-dual-inline-package/metal-or-hybrid-dip/index.html - -CBGA-32: - description: 32-Lead Ceramic Ball Grid Array - image: BGA/CBGA-32.png - category: BGA/CBGA - attachments: - - url: http://www.analog.com/static/imported-files/packages/6438543BG_32_3.pdf - description: Outline -FCBGA-576: - description: 576-Ball Ball Grid Array, Thermally Enhanced - image: BGA/FCBGA-576.png - category: BGA/FCBGA - attachments: - - url: http://www.analog.com/static/imported-files/packages/3130038348142876336BP_576.pdf - description: Outline -# PBGA -PBGA-119: - description: 119-Ball Plastic Ball Grid Array - image: BGA/PBGA-119.png - category: BGA/PBGA - attachments: - - url: http://www.analog.com/static/imported-files/packages/41287574715699B_119.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/37136694b_119.pdf - description: Footprint -PBGA-169: - description: 169-Ball Plastic Ball Grid Array - image: BGA/PBGA-169.png - category: BGA/PBGA - attachments: - - url: http://www.analog.com/static/imported-files/packages/4508238598123917727B_169.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/42256861b_169.pdf - description: Footprint -PBGA-225: - description: 225-Ball Plastic a Ball Grid Array - category: BGA/PBGA - image: BGA/PBGA-225.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/PKG_PDF/BGA%20(B)/B_225_2.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/footprints/BGA%20(B)/B-225-2.pdf - description: Footprint -PBGA-260: - description: 260-Ball Plastic Ball Grid Array - category: BGA/PBGA - image: BGA/PBGA-260.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/4532729474093B_260.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/655582610b_260.pdf - description: Footprint -PBGA-297: - description: 297-Ball Plastic Ball Grid Array - category: BGA/PBGA - image: BGA/PBGA-297.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/251630103B_297.pdf - description: Outline -PBGA-304: - description: 304-Lead Plastic Ball Grid Array - category: BGA/PBGA - image: BGA/PBGA-304.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/3641645393185830319B_304.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/174089929b_304.pdf - description: Footprint -PBGA-316: - description: 316-Lead Plastic Ball Grid Array - category: BGA/PBGA - image: BGA/PBGA-316.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/61868185924959B_316.pdf - description: Outline -PBGA-324: - description: 324-Ball Plastic Ball Grid Array - category: BGA/PBGA - image: BGA/PBGA-324.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/454473177139443477109483B_324.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/17779623b_324.pdf - description: Footprint -PBGA-385: - description: 385-Lead Ball Grid Array - category: BGA/PBGA - image: BGA/PBGA-385.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/45557425288079B_385.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/804295803b_385.pdf - description: Footprint -PBGA-400: - description: 400-Ball Plastic Ball Grid Array - category: BGA/PBGA - image: BGA/PBGA-400.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/349373926B_400.pdf - description: Outline -PBGA-484: - description: 484-Ball Plastic Ball Grid Array - category: BGA/PBGA - image: BGA/PBGA-484.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/3235251121324624786157688555B484.pdf - description: Outline -PBGA-625: - description: 625-Ball Plastic Ball Grid Array - category: BGA/PBGA - image: BGA/PBGA-625.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/45005548173527848192875606315B625.pdf - description: Outline -PBGA-676: - description: 676-Ball Plastic Ball Grid Array - category: BGA/PBGA - image: BGA/PBGA-676.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/B_676.pdf - description: Outline -# SBGA -SBGA-256: - description: 256-Ball Ball Grid Array, Thermally Enhanced - category: BGA/PBGA - image: BGA/SBGA-256.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/287254833BP_256.pdf - description: Outline -SBGA-304: - description: 304-Ball Ball Grid Array, Thermally Enhanced - category: BGA/PBGA - image: BGA/SBGA-304.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/3733895948083BP_304.pdf - description: Outline -SBGA-432: - description: 432-Ball Ball Grid Array, Thermally Enhanced - category: BGA/PBGA - image: BGA/SBGA-432.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/99289205BP_432.pdf - description: Outline - -# Ceramic DIP -CerDIP-8: - description: 8-Lead Ceramic Dual In-Line Package - category: DIP/CERDIP - image: DIP/CERDIP-8.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/3925655241313314758Q_8.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/footprints/CERDIP/q-8.pdf - description: Footprint -CerDIP-14: - description: 14-Lead Ceramic Dual In-Line Package - category: DIP/CERDIP - image: DIP/CERDIP-14.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/393665681442905251546090Q_14.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/39808055q_14.pdf - description: Footprint -CerDIP-16: - description: 16-Lead Ceramic Dual In-Line Package - category: DIP/CERDIP - image: DIP/CERDIP-16.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/54083157002221Q_16.pdf - description: Outline -CerDIP-18: - description: 18-Lead Ceramic Dual In-Line Package - category: DIP/CERDIP - image: DIP/CERDIP-18.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/3949539816247344490Q_18.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/292506864q_18.pdf - description: Footprint -CerDIP-20: - description: 20-Lead Ceramic Dual In-Line Package - category: DIP/CERDIP - image: DIP/CERDIP-20.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/50516416473314Q_20.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/434715247d_20.pdf - description: Footprint -CerDIP-24 Narrow: - description: 24-Lead Ceramic Dual In-Line Package - Narrow Body - category: DIP/CERDIP - image: DIP/CERDIP-24-N.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/PKG_PDF/CERDIP(Q)/Q_24_1.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/274999619q_24.pdf - description: Footprint -CerDIP-24 Wide: - description: 24-Lead Ceramic Dual In-Line Package - Wide Body - category: DIP/CERDIP - image: DIP/CERDIP-24-W.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/PKG_PDF/CERDIP(Q)/Q_24_2.pdf - description: Outline -CerDIP-28: - description: 28-Lead Ceramic Dual In-Line Package - category: DIP/CERDIP - image: DIP/CERDIP-28.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/4045339666127361303Q_28_2.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/165461283q_28.pdf - description: Footprint -CerDIP-40: - description: 40-Lead Ceramic Dual In-Line Package - category: DIP/CERDIP - image: DIP/CERDIP-40.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/281170859Q_40.pdf - description: Outline - -# Plastic DIP (PDIP) -PDIP-8: - description: 8-Lead Plastic Dual In-Line Package - category: DIP/PDIP - image: DIP/PDIP-8.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/PKG_PDF/PDIP(N)/N_8.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/footprints/PDIP/n-8.pdf - description: Footprint -PDIP-14: - description: 14-Lead Plastic Dual In-Line Package - category: DIP/PDIP - image: DIP/PDIP-14.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/N_14.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/n-14.pdf - description: Footprint -PDIP-16: - description: 16-Lead Plastic Dual In-Line Package - category: DIP/PDIP - image: DIP/PDIP-16.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/44768431550332N_16.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/59616100n_16.pdf - description: Footprint -PDIP-18: - description: 18-Lead Plastic Dual In-Line Package - category: DIP/PDIP - image: DIP/PDIP-18.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/44930452931834N_18.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/158309702n_18.pdf - description: Footprint -PDIP-20: - description: 20-Lead Plastic Dual In-Line Package - category: DIP/PDIP - image: DIP/PDIP-20.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/50601349676519N_20.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/1012961n_20.pdf - description: Footprint -PDIP-24: - description: 24-Lead Plastic Dual In-Line Package - category: DIP/PDIP - image: DIP/PDIP-24.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/50726455539629N_24_1.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/94593761n_24.pdf - description: Footprint -PDIP-28 Narrow: - description: 28-Lead Plastic Dual In-Line Package, Narrow Body - category: DIP/PDIP - image: DIP/PDIP-28-N.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/70961940N_28_1.pdf - description: Outline -PDIP-28 Wide: - description: 28-Lead Plastic Dual In-Line Package, Wide Body - category: DIP/PDIP - image: DIP/PDIP-28-W.png - attachments: - - url: http://www.analog.com/static/imported-files/packages/50849324123784N_28_2.pdf - description: Outline - - url: http://www.analog.com/static/imported-files/packages/197005836n_28.pdf - description: Footprint -SOIC-N-EP-8: - description: 8-Lead Standard Small Outline Package, with Expose Pad - attachments: - - url: http://www.analog.com/static/imported-files/packages/PKG_PDF/SOIC_ED(RD)/RD_8_1.pdf - description: FOO - - - \ No newline at end of file diff --git a/setup-data/manufacturers/images/lattice3.png b/setup-data/manufacturers/images/lattice3.png Binary files differ. diff --git a/setup-data/manufacturers/images/lds.png b/setup-data/manufacturers/images/lds.png Binary files differ. diff --git a/setup-data/manufacturers/images/lds1.png b/setup-data/manufacturers/images/lds1.png Binary files differ. diff --git a/setup-data/manufacturers/images/levone.png b/setup-data/manufacturers/images/levone.png Binary files differ. diff --git a/setup-data/manufacturers/images/lgs.png b/setup-data/manufacturers/images/lgs.png Binary files differ. diff --git a/setup-data/manufacturers/images/lgs1.png b/setup-data/manufacturers/images/lgs1.png Binary files differ. diff --git a/setup-data/manufacturers/images/linear.png b/setup-data/manufacturers/images/linear.png Binary files differ. diff --git a/setup-data/manufacturers/images/linfin.png b/setup-data/manufacturers/images/linfin.png Binary files differ. diff --git a/setup-data/manufacturers/images/liteon.png b/setup-data/manufacturers/images/liteon.png Binary files differ. diff --git a/setup-data/manufacturers/images/lucent.png b/setup-data/manufacturers/images/lucent.png Binary files differ. diff --git a/setup-data/manufacturers/images/macronix.png b/setup-data/manufacturers/images/macronix.png Binary files differ. diff --git a/setup-data/manufacturers/images/marvell.png b/setup-data/manufacturers/images/marvell.png Binary files differ. diff --git a/setup-data/manufacturers/images/matsush1.png b/setup-data/manufacturers/images/matsush1.png Binary files differ. diff --git a/setup-data/manufacturers/images/matsushi.png b/setup-data/manufacturers/images/matsushi.png Binary files differ. diff --git a/setup-data/manufacturers/images/maxim.png b/setup-data/manufacturers/images/maxim.png Binary files differ. diff --git a/setup-data/manufacturers/images/me.png b/setup-data/manufacturers/images/me.png Binary files differ. diff --git a/setup-data/manufacturers/images/mediavi1.png b/setup-data/manufacturers/images/mediavi1.png Binary files differ. diff --git a/setup-data/manufacturers/images/mediavi2.png b/setup-data/manufacturers/images/mediavi2.png Binary files differ. diff --git a/setup-data/manufacturers/images/mhs.png b/setup-data/manufacturers/images/mhs.png Binary files differ. diff --git a/setup-data/manufacturers/images/mhs2.png b/setup-data/manufacturers/images/mhs2.png Binary files differ. diff --git a/setup-data/manufacturers/images/micrel1.png b/setup-data/manufacturers/images/micrel1.png Binary files differ. diff --git a/setup-data/manufacturers/images/micrel2.png b/setup-data/manufacturers/images/micrel2.png Binary files differ. diff --git a/setup-data/manufacturers/images/microchp.png b/setup-data/manufacturers/images/microchp.png Binary files differ. diff --git a/setup-data/manufacturers/images/micron.png b/setup-data/manufacturers/images/micron.png Binary files differ. diff --git a/setup-data/manufacturers/images/micronas.png b/setup-data/manufacturers/images/micronas.png Binary files differ. diff --git a/setup-data/manufacturers/images/micronix.png b/setup-data/manufacturers/images/micronix.png Binary files differ. diff --git a/setup-data/manufacturers/images/microsemi1.png b/setup-data/manufacturers/images/microsemi1.png Binary files differ. diff --git a/setup-data/manufacturers/images/microsemi2.png b/setup-data/manufacturers/images/microsemi2.png Binary files differ. diff --git a/setup-data/manufacturers/images/minicirc.png b/setup-data/manufacturers/images/minicirc.png Binary files differ. diff --git a/setup-data/manufacturers/images/mitel.png b/setup-data/manufacturers/images/mitel.png Binary files differ. diff --git a/setup-data/manufacturers/images/mitsubis.png b/setup-data/manufacturers/images/mitsubis.png Binary files differ. diff --git a/setup-data/manufacturers/images/mlinear.png b/setup-data/manufacturers/images/mlinear.png Binary files differ. diff --git a/setup-data/manufacturers/images/mmi.png b/setup-data/manufacturers/images/mmi.png Binary files differ. diff --git a/setup-data/manufacturers/images/mos.png b/setup-data/manufacturers/images/mos.png Binary files differ. diff --git a/setup-data/manufacturers/images/mosaic.png b/setup-data/manufacturers/images/mosaic.png Binary files differ. diff --git a/setup-data/manufacturers/images/moselvit.png b/setup-data/manufacturers/images/moselvit.png Binary files differ. diff --git a/setup-data/manufacturers/images/mostek1.png b/setup-data/manufacturers/images/mostek1.png Binary files differ. diff --git a/setup-data/manufacturers/images/mostek2.png b/setup-data/manufacturers/images/mostek2.png Binary files differ. diff --git a/setup-data/manufacturers/images/mostek3.png b/setup-data/manufacturers/images/mostek3.png Binary files differ. diff --git a/setup-data/manufacturers/images/mosys.png b/setup-data/manufacturers/images/mosys.png Binary files differ. diff --git a/setup-data/manufacturers/images/motorol1.png b/setup-data/manufacturers/images/motorol1.png Binary files differ. diff --git a/setup-data/manufacturers/images/motorol2.png b/setup-data/manufacturers/images/motorol2.png Binary files differ. diff --git a/setup-data/manufacturers/images/mpd.png b/setup-data/manufacturers/images/mpd.png Binary files differ. diff --git a/setup-data/manufacturers/images/msystem.png b/setup-data/manufacturers/images/msystem.png Binary files differ. diff --git a/setup-data/manufacturers/images/murata.png b/setup-data/manufacturers/images/murata.png Binary files differ. diff --git a/setup-data/manufacturers/images/murata1.png b/setup-data/manufacturers/images/murata1.png Binary files differ. diff --git a/setup-data/manufacturers/images/mwave.png b/setup-data/manufacturers/images/mwave.png Binary files differ. diff --git a/setup-data/manufacturers/images/myson.png b/setup-data/manufacturers/images/myson.png Binary files differ. diff --git a/setup-data/manufacturers/images/nec1.png b/setup-data/manufacturers/images/nec1.png Binary files differ. diff --git a/setup-data/manufacturers/images/nec2.png b/setup-data/manufacturers/images/nec2.png Binary files differ. diff --git a/setup-data/manufacturers/images/nexflash.png b/setup-data/manufacturers/images/nexflash.png Binary files differ. diff --git a/setup-data/manufacturers/images/njr.png b/setup-data/manufacturers/images/njr.png Binary files differ. diff --git a/setup-data/manufacturers/images/ns1.png b/setup-data/manufacturers/images/ns1.png Binary files differ. diff --git a/setup-data/manufacturers/images/ns2.png b/setup-data/manufacturers/images/ns2.png Binary files differ. diff --git a/setup-data/manufacturers/images/nvidia.png b/setup-data/manufacturers/images/nvidia.png Binary files differ. diff --git a/setup-data/manufacturers/images/oak.png b/setup-data/manufacturers/images/oak.png Binary files differ. diff --git a/setup-data/manufacturers/images/oki.png b/setup-data/manufacturers/images/oki.png Binary files differ. diff --git a/setup-data/manufacturers/images/oki1.png b/setup-data/manufacturers/images/oki1.png Binary files differ. diff --git a/setup-data/manufacturers/images/opti.png b/setup-data/manufacturers/images/opti.png Binary files differ. diff --git a/setup-data/manufacturers/images/orbit.png b/setup-data/manufacturers/images/orbit.png Binary files differ. diff --git a/setup-data/manufacturers/images/oren.png b/setup-data/manufacturers/images/oren.png Binary files differ. diff --git a/setup-data/manufacturers/images/perform.png b/setup-data/manufacturers/images/perform.png Binary files differ. diff --git a/setup-data/manufacturers/images/pericom.png b/setup-data/manufacturers/images/pericom.png Binary files differ. diff --git a/setup-data/manufacturers/images/phaslink.png b/setup-data/manufacturers/images/phaslink.png Binary files differ. diff --git a/setup-data/manufacturers/images/philips.png b/setup-data/manufacturers/images/philips.png Binary files differ. diff --git a/setup-data/manufacturers/images/plx.png b/setup-data/manufacturers/images/plx.png Binary files differ. diff --git a/setup-data/manufacturers/images/pmc.png b/setup-data/manufacturers/images/pmc.png Binary files differ. diff --git a/setup-data/manufacturers/images/pmi.png b/setup-data/manufacturers/images/pmi.png Binary files differ. diff --git a/setup-data/manufacturers/images/ptc.png b/setup-data/manufacturers/images/ptc.png Binary files differ. diff --git a/setup-data/manufacturers/images/pwrsmart.png b/setup-data/manufacturers/images/pwrsmart.png Binary files differ. diff --git a/setup-data/manufacturers/images/qlogic.png b/setup-data/manufacturers/images/qlogic.png Binary files differ. diff --git a/setup-data/manufacturers/images/qualcomm.png b/setup-data/manufacturers/images/qualcomm.png Binary files differ. diff --git a/setup-data/manufacturers/images/quality.png b/setup-data/manufacturers/images/quality.png Binary files differ. diff --git a/setup-data/manufacturers/images/rabbit.png b/setup-data/manufacturers/images/rabbit.png Binary files differ. diff --git a/setup-data/manufacturers/images/ramtron.png b/setup-data/manufacturers/images/ramtron.png Binary files differ. diff --git a/setup-data/manufacturers/images/raytheon.png b/setup-data/manufacturers/images/raytheon.png Binary files differ. diff --git a/setup-data/manufacturers/images/rca.png b/setup-data/manufacturers/images/rca.png Binary files differ. diff --git a/setup-data/manufacturers/images/realtek.png b/setup-data/manufacturers/images/realtek.png Binary files differ. diff --git a/setup-data/manufacturers/images/rectron.png b/setup-data/manufacturers/images/rectron.png Binary files differ. diff --git a/setup-data/manufacturers/images/rendit.png b/setup-data/manufacturers/images/rendit.png Binary files differ. diff --git a/setup-data/manufacturers/images/renesas.png b/setup-data/manufacturers/images/renesas.png Binary files differ. diff --git a/setup-data/manufacturers/images/rockwell.png b/setup-data/manufacturers/images/rockwell.png Binary files differ. diff --git a/setup-data/manufacturers/images/rohm.png b/setup-data/manufacturers/images/rohm.png Binary files differ. diff --git a/setup-data/manufacturers/images/s3.png b/setup-data/manufacturers/images/s3.png Binary files differ. diff --git a/setup-data/manufacturers/images/sage.png b/setup-data/manufacturers/images/sage.png Binary files differ. diff --git a/setup-data/manufacturers/images/saifun.png b/setup-data/manufacturers/images/saifun.png Binary files differ. diff --git a/setup-data/manufacturers/images/sames.png b/setup-data/manufacturers/images/sames.png Binary files differ. diff --git a/setup-data/manufacturers/images/samsung.png b/setup-data/manufacturers/images/samsung.png Binary files differ. diff --git a/setup-data/manufacturers/images/sanken.png b/setup-data/manufacturers/images/sanken.png Binary files differ. diff --git a/setup-data/manufacturers/images/sanken1.png b/setup-data/manufacturers/images/sanken1.png Binary files differ. diff --git a/setup-data/manufacturers/images/sanyo.png b/setup-data/manufacturers/images/sanyo.png Binary files differ. diff --git a/setup-data/manufacturers/images/sanyo1.png b/setup-data/manufacturers/images/sanyo1.png Binary files differ. diff --git a/setup-data/manufacturers/images/scenix.png b/setup-data/manufacturers/images/scenix.png Binary files differ. diff --git a/setup-data/manufacturers/images/sec.png b/setup-data/manufacturers/images/sec.png Binary files differ. diff --git a/setup-data/manufacturers/images/sec1.png b/setup-data/manufacturers/images/sec1.png Binary files differ. diff --git a/setup-data/manufacturers/images/seeq.png b/setup-data/manufacturers/images/seeq.png Binary files differ. diff --git a/setup-data/manufacturers/images/seikoi.png b/setup-data/manufacturers/images/seikoi.png Binary files differ. diff --git a/setup-data/manufacturers/images/semelab.png b/setup-data/manufacturers/images/semelab.png Binary files differ. diff --git a/setup-data/manufacturers/images/semtech.png b/setup-data/manufacturers/images/semtech.png Binary files differ. diff --git a/setup-data/manufacturers/images/sgs1.png b/setup-data/manufacturers/images/sgs1.png Binary files differ. diff --git a/setup-data/manufacturers/images/sgs2.png b/setup-data/manufacturers/images/sgs2.png Binary files differ. diff --git a/setup-data/manufacturers/images/sharp.png b/setup-data/manufacturers/images/sharp.png Binary files differ. diff --git a/setup-data/manufacturers/images/shindgen.png b/setup-data/manufacturers/images/shindgen.png Binary files differ. diff --git a/setup-data/manufacturers/images/siemens1.png b/setup-data/manufacturers/images/siemens1.png Binary files differ. diff --git a/setup-data/manufacturers/images/siemens2.png b/setup-data/manufacturers/images/siemens2.png Binary files differ. diff --git a/setup-data/manufacturers/images/sierra.png b/setup-data/manufacturers/images/sierra.png Binary files differ. diff --git a/setup-data/manufacturers/images/sigmatel.png b/setup-data/manufacturers/images/sigmatel.png Binary files differ. diff --git a/setup-data/manufacturers/images/signetic.png b/setup-data/manufacturers/images/signetic.png Binary files differ. diff --git a/setup-data/manufacturers/images/siliconlabs.png b/setup-data/manufacturers/images/siliconlabs.png Binary files differ. diff --git a/setup-data/manufacturers/images/siliconm.png b/setup-data/manufacturers/images/siliconm.png Binary files differ. diff --git a/setup-data/manufacturers/images/silicons.png b/setup-data/manufacturers/images/silicons.png Binary files differ. diff --git a/setup-data/manufacturers/images/siliconx.png b/setup-data/manufacturers/images/siliconx.png Binary files differ. diff --git a/setup-data/manufacturers/images/silnans.png b/setup-data/manufacturers/images/silnans.png Binary files differ. diff --git a/setup-data/manufacturers/images/simtek.png b/setup-data/manufacturers/images/simtek.png Binary files differ. diff --git a/setup-data/manufacturers/images/sipex.png b/setup-data/manufacturers/images/sipex.png Binary files differ. diff --git a/setup-data/manufacturers/images/sis.png b/setup-data/manufacturers/images/sis.png Binary files differ. diff --git a/setup-data/manufacturers/images/smc1.png b/setup-data/manufacturers/images/smc1.png Binary files differ. diff --git a/setup-data/manufacturers/images/smsc.png b/setup-data/manufacturers/images/smsc.png Binary files differ. diff --git a/setup-data/manufacturers/images/smsc1.png b/setup-data/manufacturers/images/smsc1.png Binary files differ. diff --git a/setup-data/manufacturers/images/sony.png b/setup-data/manufacturers/images/sony.png Binary files differ. diff --git a/setup-data/manufacturers/images/space.png b/setup-data/manufacturers/images/space.png Binary files differ. diff --git a/setup-data/manufacturers/images/spectek.png b/setup-data/manufacturers/images/spectek.png Binary files differ. diff --git a/setup-data/manufacturers/images/spt.png b/setup-data/manufacturers/images/spt.png Binary files differ. diff --git a/setup-data/manufacturers/images/sss.png b/setup-data/manufacturers/images/sss.png Binary files differ. diff --git a/setup-data/manufacturers/images/sst.png b/setup-data/manufacturers/images/sst.png Binary files differ. diff --git a/setup-data/manufacturers/images/st.png b/setup-data/manufacturers/images/st.png Binary files differ. diff --git a/setup-data/manufacturers/images/summit.png b/setup-data/manufacturers/images/summit.png Binary files differ. diff --git a/setup-data/manufacturers/images/synergy.png b/setup-data/manufacturers/images/synergy.png Binary files differ. diff --git a/setup-data/manufacturers/images/synertek.png b/setup-data/manufacturers/images/synertek.png Binary files differ. diff --git a/setup-data/manufacturers/images/taiwsemi.png b/setup-data/manufacturers/images/taiwsemi.png Binary files differ. diff --git a/setup-data/manufacturers/images/tdk.png b/setup-data/manufacturers/images/tdk.png Binary files differ. diff --git a/setup-data/manufacturers/images/teccor.png b/setup-data/manufacturers/images/teccor.png Binary files differ. diff --git a/setup-data/manufacturers/images/telcom.png b/setup-data/manufacturers/images/telcom.png Binary files differ. diff --git a/setup-data/manufacturers/images/teledyne.png b/setup-data/manufacturers/images/teledyne.png Binary files differ. diff --git a/setup-data/manufacturers/images/telefunk.png b/setup-data/manufacturers/images/telefunk.png Binary files differ. diff --git a/setup-data/manufacturers/images/teltone.png b/setup-data/manufacturers/images/teltone.png Binary files differ. diff --git a/setup-data/manufacturers/images/thomscsf.png b/setup-data/manufacturers/images/thomscsf.png Binary files differ. diff --git a/setup-data/manufacturers/images/ti.png b/setup-data/manufacturers/images/ti.png Binary files differ. diff --git a/setup-data/manufacturers/images/ti1.png b/setup-data/manufacturers/images/ti1.png Binary files differ. diff --git a/setup-data/manufacturers/images/toko.png b/setup-data/manufacturers/images/toko.png Binary files differ. diff --git a/setup-data/manufacturers/images/toshiba1.png b/setup-data/manufacturers/images/toshiba1.png Binary files differ. diff --git a/setup-data/manufacturers/images/toshiba2.png b/setup-data/manufacturers/images/toshiba2.png Binary files differ. diff --git a/setup-data/manufacturers/images/toshiba3.png b/setup-data/manufacturers/images/toshiba3.png Binary files differ. diff --git a/setup-data/manufacturers/images/trident.png b/setup-data/manufacturers/images/trident.png Binary files differ. diff --git a/setup-data/manufacturers/images/triquint.png b/setup-data/manufacturers/images/triquint.png Binary files differ. diff --git a/setup-data/manufacturers/images/triscend.png b/setup-data/manufacturers/images/triscend.png Binary files differ. diff --git a/setup-data/manufacturers/images/tseng.png b/setup-data/manufacturers/images/tseng.png Binary files differ. diff --git a/setup-data/manufacturers/images/tundra.png b/setup-data/manufacturers/images/tundra.png Binary files differ. diff --git a/setup-data/manufacturers/images/turbo_ic.png b/setup-data/manufacturers/images/turbo_ic.png Binary files differ. diff --git a/setup-data/manufacturers/images/ubicom.png b/setup-data/manufacturers/images/ubicom.png Binary files differ. diff --git a/setup-data/manufacturers/images/umc.png b/setup-data/manufacturers/images/umc.png Binary files differ. diff --git a/setup-data/manufacturers/images/unitrode.png b/setup-data/manufacturers/images/unitrode.png Binary files differ. diff --git a/setup-data/manufacturers/images/usar.png b/setup-data/manufacturers/images/usar.png Binary files differ. diff --git a/setup-data/manufacturers/images/usar1.png b/setup-data/manufacturers/images/usar1.png Binary files differ. diff --git a/setup-data/manufacturers/images/utmc.png b/setup-data/manufacturers/images/utmc.png Binary files differ. diff --git a/setup-data/manufacturers/images/utron.png b/setup-data/manufacturers/images/utron.png Binary files differ. diff --git a/setup-data/manufacturers/images/v3.png b/setup-data/manufacturers/images/v3.png Binary files differ. diff --git a/setup-data/manufacturers/images/vadem.png b/setup-data/manufacturers/images/vadem.png Binary files differ. diff --git a/setup-data/manufacturers/images/vanguard.png b/setup-data/manufacturers/images/vanguard.png Binary files differ. diff --git a/setup-data/manufacturers/images/vantis.png b/setup-data/manufacturers/images/vantis.png Binary files differ. diff --git a/setup-data/manufacturers/images/via.png b/setup-data/manufacturers/images/via.png Binary files differ. diff --git a/setup-data/manufacturers/images/virata.png b/setup-data/manufacturers/images/virata.png Binary files differ. diff --git a/setup-data/manufacturers/images/vishay.png b/setup-data/manufacturers/images/vishay.png Binary files differ. diff --git a/setup-data/manufacturers/images/vistech.png b/setup-data/manufacturers/images/vistech.png Binary files differ. diff --git a/setup-data/manufacturers/images/vitelic.png b/setup-data/manufacturers/images/vitelic.png Binary files differ. diff --git a/setup-data/manufacturers/images/vlsi.png b/setup-data/manufacturers/images/vlsi.png Binary files differ. diff --git a/setup-data/manufacturers/images/volterra.png b/setup-data/manufacturers/images/volterra.png Binary files differ. diff --git a/setup-data/manufacturers/images/vtc.png b/setup-data/manufacturers/images/vtc.png Binary files differ. diff --git a/setup-data/manufacturers/images/wafscale.png b/setup-data/manufacturers/images/wafscale.png Binary files differ. diff --git a/setup-data/manufacturers/images/wdc1.png b/setup-data/manufacturers/images/wdc1.png Binary files differ. diff --git a/setup-data/manufacturers/images/wdc2.png b/setup-data/manufacturers/images/wdc2.png Binary files differ. diff --git a/setup-data/manufacturers/images/weitek.png b/setup-data/manufacturers/images/weitek.png Binary files differ. diff --git a/setup-data/manufacturers/images/winbond.png b/setup-data/manufacturers/images/winbond.png Binary files differ. diff --git a/setup-data/manufacturers/images/wolf.png b/setup-data/manufacturers/images/wolf.png Binary files differ. diff --git a/setup-data/manufacturers/images/xemics.png b/setup-data/manufacturers/images/xemics.png Binary files differ. diff --git a/setup-data/manufacturers/images/xicor.png b/setup-data/manufacturers/images/xicor.png Binary files differ. diff --git a/setup-data/manufacturers/images/xicor1.png b/setup-data/manufacturers/images/xicor1.png Binary files differ. diff --git a/setup-data/manufacturers/images/xilinx.png b/setup-data/manufacturers/images/xilinx.png Binary files differ. diff --git a/setup-data/manufacturers/images/yamaha.png b/setup-data/manufacturers/images/yamaha.png Binary files differ. diff --git a/setup-data/manufacturers/images/zetex.png b/setup-data/manufacturers/images/zetex.png Binary files differ. diff --git a/setup-data/manufacturers/images/zilog1.png b/setup-data/manufacturers/images/zilog1.png Binary files differ. diff --git a/setup-data/manufacturers/images/zilog2.png b/setup-data/manufacturers/images/zilog2.png Binary files differ. diff --git a/setup-data/manufacturers/images/zilog3.png b/setup-data/manufacturers/images/zilog3.png Binary files differ. diff --git a/setup-data/manufacturers/images/zilog4.png b/setup-data/manufacturers/images/zilog4.png Binary files differ. diff --git a/setup-data/manufacturers/images/zmda.png b/setup-data/manufacturers/images/zmda.png Binary files differ. diff --git a/setup-data/manufacturers/images/zoran.png b/setup-data/manufacturers/images/zoran.png Binary files differ. diff --git a/setup-data/manufacturers/manufacturers.yaml b/setup-data/manufacturers/manufacturers.yaml @@ -1,632 +0,0 @@ -'Integrated Circuit Designs': - - acer.png -ACTEL: - - actel.png -ALTINC: - - advldev.png -Aeroflex: - - aeroflex1.png - - aeroflex2.png -'Agilent Technologies': - - agilent.png -'AKM Semiconductor': - - akm.png -'Alesis Semiconductor': - - alesis.png -'ALi (Acer Laboratories Inc.)': - - ali1.png - - ali2.png -'Allayer Communications': - - allayer.png -'Allegro Microsystems': - - allegro.png -'Alliance Semiconductor': - - alliance.png -'Alpha Industries': - - alphaind.png -'Alpha Microelectronics': - - alphamic.png - - alpha.png -Altera: - - altera.png -'Advanced Micro Devices (AMD)': - - amd.png -'American Microsystems, Inc. (AMI)': - - ami1.png - - ami2.png -'Amic Technology': - - amic.png -Amphus: - - ampus.png -'Anachip Corp.': - - anachip.png -ANADIGICs: - - anadigic.png -'Analog Devices': - - analog1.png - - analog.png -'Analog Systems': - - anasys.png -'Anchor Chips': - - anchorch.png -'Apex Microtechnology': - - apex1.png - - apex.png -'ARK Logic': - - ark.png -ASD: - - asd.png -'Astec Semiconductor': - - astec.png -'ATC (Analog Technologie)': - - atc.png -ATecoM: - - atecom.png -'ATI Technologies': - - ati.png -Atmel: - - atmel.png -'AT&T': - - att.png -AudioCodes: - - audiocod.png -'Aura Vision': - - auravis.png -Aureal: - - aureal.png -'Austin Semiconductor': - - austin.png -'Avance Logic': - - averlog.png -'Bel Fuse': - - belfuse.png -'Benchmarq Microelectronics': - - benchmrq.png -'BI Technologies': - - bi.png -Bowmar/White: - - bowmar_white.png -Brightflash: - - bright.png -Broadcom: - - broadcom.png -'Brooktree(now Rockwell)': - - brooktre.png -'Burr Brown': - - burrbrwn.png -'California Micro Devices': - - calmicro.png -Calogic: - - calogic.png -'Catalyst Semiconductor': - - catalys1.png - - catalyst.png -'Centon Electronics': - - ccube.png -'Ceramate Technical': - - ceramate1.png - - ceramate2.png -'Cherry Semiconductor': - - cherry.png -'Chipcon AS': - - chipcon1.png - - chipcon2.png -Chips: - - chips.png -Chrontel: - - chrontel.png -'Cirrus Logic': - - cirrus.png -'ComCore Semiconductor': - - comcore.png -Conexant: - - conexant.png -'Cosmo Electronics': - - cosmo.png -Chrystal: - - crystal.png -Cygnal: - - cygnal.png -'Cypress Semiconductor': - - cypres1.png - - cypress.png -'Cyrix Corporation': - - cyrix.png -'Daewoo Electronics Semiconductor': - - daewoo.png -'Dallas Semiconductor': - - dallas1.png - - dallas2.png - - dallas3.png -'Davicom Semiconductor': - - davicom.png -'Data Delay Devices': - - ddd.png -'Diamond Technologies': - - diamond.png -DIOTEC: - - diotec.png -'DTC Data Technology': - - dtc1.png - - dtc2.png -DVDO: - - dvdo.png -'EG&G': - - edi.png -'Elan Microelectronics': - - egg.png -ELANTEC: - - elan.png - - elantec1.png - - elantec.png -'Electronic Arrays': - - elec_arrays.png -'Elite Flash Storage Technology Inc. (EFST)': - - 'elite[1].png' -'EM Microelectronik - Marin': - - emmicro.png -'Enhanced Memory Systems': - - enhmemsy.png -'Ensoniq Corp': - - ensoniq.png -'EON Silicon Devices': - - eon.png -Epson: - - epson1.png - - epson2.png -Ericsson: - - ericsson.png -'ESS Technology': - - ess.png -'Electronic Technology': - - etc.png -EXAR: - - exar.png -'Excel Semiconductor Inc.': - - excelsemi1.png - - excelsemi2.png - - exel.png -Fairschild: - - fairchil.png -'Freescale Semiconductor': - - freescale.png -Fujitsu: - - fujielec.png - - fujitsu2.png -'Galileo Technology': - - galileo.png -Galvantech: - - galvant.png -'GEC Plessey': - - gecples.png -Gennum: - - gennum.png -'General Electric (Harris)': - - ge.png -'General Instruments': - - gi1.png - - gi.png -'G-Link Technology': - - glink.png -'Goal Semiconductor': - - goal1.png - - goal2.png -Goldstar: - - goldstar1.png - - goldstar2.png -Gould: - - gould.png -'Greenwich Instruments': - - greenwich.png -'General Semiconductor': - - gsemi.png -'Harris Semiconductor': - - harris1.png - - harris2.png -VEB: - - hfo.png -'Hitachi Semiconductor': - - hitachi.png -Holtek: - - holtek.png -'Hewlett Packard': - - hp.png -Hualon: - - hualon.png -'Hynix Semiconductor': - - hynix.png -Hyundai: - - hyundai2.png -'IC Design': - - icdesign.png -'Integrated Circuit Systems (ICS)': - - icd.png - - ics.png -'IC - Haus': - - ichaus1.png - - ichaus.png -'ICSI (Integrated Circuit Solution Inc.)': - - icsi.png -I-Cube: - - icube.png -'IC Works': - - icworks.png -'Integrated Device Technology (IDT)': - - idt1.png - - idt.png -'IGS Technologies': - - igstech.png -'IMPALA Linear': - - impala.png -IMP: - - imp.png -Infineon: - - infineon.png -INMOS: - - inmos.png -Intel: - - intel2.png -Intersil: - - intresil4.png - - intrsil1.png - - intrsil2.png - - intrsil3.png -'International Rectifier': - - ir.png -'Information Storage Devices': - - isd.png -'ISSI (Integrated Silicon Solution, Inc.)': - - issi.png -'Integrated Technology Express': - - ite.png -'ITT Semiconductor (Micronas Intermetall)': - - itt.png -IXYS: - - ixys.png -'Korea Electronics (KEC)': - - kec.png -'Kota Microcircuits': - - kota.png -'Lattice Semiconductor Corp.': - - lattice1.png - - lattice2.png - - lattice3.png -'Lansdale Semiconductor': - - lds1.png - - lds.png -'Level One Communications': - - levone.png -'LG Semicon (Lucky Goldstar Electronic Co.)': - - lgs1.png - - lgs.png -'Linear Technology': - - linear.png -'Linfinity Microelectronics': - - linfin.png -Lite-On: - - liteon.png -'Lucent Technologies (AT&T Microelectronics)': - - lucent.png -'Macronix International': - - macronix.png -'Marvell Semiconductor': - - marvell.png -'Matsushita Panasonic': - - matsush1.png - - matsushi.png -'Maxim Dallas': - - maxim.png -'Media Vision': - - mediavi1.png - - mediavi2.png -'Microchip (Arizona Michrochip Technology)': - - me.png - - microchp.png -'Matra MHS': - - mhs2.png - - mhs.png -'Micrel Semiconductor': - - micrel1.png - - micrel2.png -Micronas: - - micronas.png -'Micronix Integrated Systems': - - micronix.png -'Micron Technology, Inc.': - - micron.png -Microsemi: - - microsemi1.png - - microsemi2.png -Mini-Circuits: - - minicirc.png -'Mitel Semiconductor': - - mitel.png -'Mitsubishi Semiconductor': - - mitsubis.png -'Micro Linear': - - mlinear.png -'MMI (Monolithic Memories, Inc.)': - - mmi.png -'Mosaic Semiconductor': - - mosaic.png -'Mosel Vitelic': - - moselvit.png -'MOS Technologies': - - mos.png -Mostek: - - mostek1.png - - mostek2.png - - mostek3.png -MoSys: - - mosys.png -Motorola: - - motorol1.png - - motorol2.png -Microtune: - - mpd.png -M-Systems: - - msystem.png -'Murata Manufacturing': - - murata1.png - - murata.png -'MWave (IBM)': - - mwave.png -'Myson Technology': - - myson.png -'NEC Electronics': - - nec1.png - - nec2.png -'NexFlash Technologies': - - nexflash.png -'New Japan Radio': - - njr.png -'National Semiconductor': - - ns1.png - - ns2.png -'NVidia Corporation': - - nvidia.png -'Oak Technology': - - oak.png -'Oki Semiconductor': - - oki1.png - - oki.png -Opti: - - opti.png -'Orbit Semiconductor': - - orbit.png -'Oren Semiconductor': - - oren.png -'Performance Semiconductor': - - perform.png -'Pericom Semiconductor': - - pericom.png -'PhaseLink Laboratories': - - phaslink.png -'Philips Semiconductor': - - philips.png -'PLX Technology': - - plx.png -'PMC- Sierra': - - pmc.png -'Precision Monolithics': - - pmi.png -'Princeton Technology': - - ptc.png -PowerSmart: - - pwrsmart.png -QuickLogic: - - qlogic.png -Qlogic: - - qualcomm.png -'Quality Semiconductor': - - quality.png -'Rabbit Semiconductor': - - rabbit.png -'Ramtron International Co.': - - ramtron.png -'Raytheon Semiconductor': - - raytheon.png -'RCA Solid State': - - rca.png -'Realtek Semiconductor': - - realtek.png -Rectron: - - rectron.png -Rendition: - - rendit.png -'Renesas Technology': - - renesas.png -Rockwell: - - rockwell.png -'Rohm Corp.': - - rohm.png -S3: - - s3.png -Sage: - - sage.png -'Saifun Semiconductors Ltd.': - - saifun.png -Sames: - - sames.png -Samsung: - - samsung.png -Sanken: - - sanken1.png - - sanken.png -Sanyo: - - sanyo1.png - - sanyo.png -Scenix: - - scenix.png -'Samsung Electronics': - - sec1.png - - sec.png -'SEEQ Technology': - - seeq.png -'Seiko Instruments': - - seikoi.png - - semelab.png -Semtech: - - semtech.png -SGS-Ates: - - sgs1.png -'SGS-Thomson Microelectonics ST-M)': - - sgs2.png -'Sharp Microelectronics (USA)': - - sharp.png -Shindengen: - - shindgen.png -'Siemens Microelectronics, Inc.': - - siemens1.png - - siemens2.png -Sierra: - - sierra.png -'Sigma Tel': - - sigmatel.png -Signetics: - - signetic.png -'Silicon Laboratories': - - siliconlabs.png -'Silicon Magic': - - siliconm.png -'Simtec Corp.': - - silicons.png - - simtek.png -Siliconix: - - siliconx.png -Siliconians: - - silnans.png -Sipex: - - sipex.png -'Silicon Integrated Systems': - - sis.png -SMC: - - smc1.png -'Standard Microsystems': - - smsc1.png - - smsc.png -'Sony Semiconductor': - - sony.png -'Space Electronics': - - space.png -Spectek: - - spectek.png -'Signal Processing Technologies': - - spt.png -'Solid State Scientific': - - sss.png -'Silicon Storage Technology (SST)': - - sst.png -STMicroelectronics: - - st.png -'SUMMIT Microelectronics': - - summit.png -'Synergy Semiconductor': - - synergy.png -Synertek: - - synertek.png -'Taiwan Semiconductor': - - taiwsemi.png -'TDK Semiconductor': - - tdk.png -'Teccor Electronics': - - teccor.png -'TelCom Semiconductor': - - telcom.png -Teledyne: - - teledyne.png -Telefunken: - - telefunk.png -Teltone: - - teltone.png -Thomson-CSF: - - thomscsf.png -'Texas Instruments': - - ti1.png - - ti.png -'Toko Amerika': - - toko.png -'Toshiba (US)': - - toshiba1.png - - toshiba2.png - - toshiba3.png -Trident: - - trident.png -'TriQuint Semiconductor': - - triquint.png -Triscend: - - triscend.png -'Tseng Labs': - - tseng.png -Tundra: - - tundra.png -'Turbo IC': - - turbo_ic.png -Ubicom: - - ubicom.png -'United Microelectronics Corp (UMC)': - - umc.png -Unitrode: - - unitrode.png -'USAR Systems': - - usar1.png - - usar.png -'United Technologies Microelectronics Center (UTMC)': - - utmc.png -Utron: - - utron.png -'V3 Semiconductor': - - v3.png -Vadem: - - vadem.png -'Vanguard International Semiconductor': - - vanguard.png -Vantis: - - vantis.png -'Via Technologies': - - via.png -Virata: - - virata.png -Vishay: - - vishay.png -'Vision Tech': - - vistech.png -Vitelic: - - vitelic.png -'VLSI Technology': - - vlsi.png -Volterra: - - volterra.png -VTC: - - vtc.png -'Waferscale Integration (WSI)': - - wafscale.png -'Western Digital': - - wdc1.png - - wdc2.png -Weitek: - - weitek.png -Winbond: - - winbond.png -'Wofson Microelectronics': - - wolf.png -Xwmics: - - xemics.png -Xicor: - - xicor1.png - - xicor.png -Xilinx: - - xilinx.png -Yamaha: - - yamaha.png -'Zetex Semiconductors': - - zetex.png -Zilog: - - zilog1.png - - zilog2.png - - zilog3.png - - zilog4.png -'ZMD (Zentrum Mikroelektronik Dresden)': - - zmda.png -Zoran: - - zoran.png diff --git a/setup-data/units.yaml b/setup-data/units.yaml @@ -1,160 +0,0 @@ -Meter: - symbol: m - prefixes: - - n - - ฮผ - - m - - c - - d - - k - - "" -Gram: - symbol: g - prefixes: - - k - - m - - "" -Second: - symbol: s - prefixes: - - m - - "" -Kelvin: - symbol: K - prefixes: - - "" -Mol: - symbol: mol - prefixes: - - "" -Candela: - symbol: cd - prefixes: - - m -Ampere: - symbol: A - prefixes: - - k - - m - - "" - - ฮผ - - n - - p -Ohm: - symbol: ฮฉ - prefixes: - - k - - m - - M - - "" - - G - - T -Volt: - symbol: V - prefixes: - - m - - "" - - k -Hertz: - symbol: Hz - prefixes: - - k - - M - - "" - - G - - T -Newton: - symbol: N - prefixes: - - k - - "" -Pascal: - symbol: Pa - prefixes: - - m - - "" - - k -Joule: - symbol: J - prefixes: - - m - - "" - - k - - M -Watt: - symbol: W - prefixes: - - k - - M - - "" - - G - - m - - ฮผ -Coulomb: - symbol: C - prefixes: - - k - - "" -Farad: - symbol: F - prefixes: - - m - - p - - "" - - n - - ฮผ -Siemens: - symbol: S - prefixes: - - m - - "" -Weber: - symbol: Wb - prefixes: - - "" -Tesla: - symbol: T - prefixes: - - "" -Henry: - symbol: H - prefixes: - - m - - ฮผ - - "" -Celsius: - symbol: ยฐC - prefixes: - - "" -Lumen: - symbol: lm - prefixes: - - "" -Lux: - symbol: lx - prefixes: - - "" -Becquerel: - symbol: Bq - prefixes: - - "" -Gray: - symbol: Gy - prefixes: - - "" -Sievert: - symbol: Sv - prefixes: - - m - - "" - - ฮผ -Katal: - symbol: kat - prefixes: - - "" -Ampere Hour: - symbol: Ah - prefixes: - - m - - "" - - k- \ No newline at end of file diff --git a/src/PartKeepr/DoctrineReflectionBundle/Command/GenerateEntityCommand.php b/src/PartKeepr/DoctrineReflectionBundle/Command/GenerateEntityCommand.php @@ -16,33 +16,12 @@ class GenerateEntityCommand extends ContainerAwareCommand public function execute(InputInterface $input, OutputInterface $output) { - $cacheDir = $this->getContainer()->get("kernel")->getCacheDir(); - - $cacheDir .= "/doctrinereflection"; - @mkdir($cacheDir, 0777, true); - $reflectionService = $this->getContainer()->get("doctrine_reflection_service"); - - $entities = $reflectionService->getEntities(); - - foreach ($entities as $entity) { - $model = $reflectionService->getEntity($entity); - - $this->writeCacheFile($cacheDir."/".$entity.'.js', $model); - } + $cacheDir = $this->getContainer()->get("kernel")->getCacheDir(); + $reflectionService->createCache($cacheDir); } - protected function writeCacheFile($file, $content) - { - $tmpFile = tempnam(dirname($file), basename($file)); - if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $file)) { - @chmod($file, 0666 & ~umask()); - return; - } - - throw new \RuntimeException(sprintf('Failed to write cache file "%s".', $file)); - } } diff --git a/src/PartKeepr/DoctrineReflectionBundle/Services/ReflectionService.php b/src/PartKeepr/DoctrineReflectionBundle/Services/ReflectionService.php @@ -201,4 +201,31 @@ class ReflectionService { return str_replace(".", "\\", $className); } + + public function createCache ($cacheDir) + { + $cacheDir .= "/doctrinereflection"; + @mkdir($cacheDir, 0777, true); + + $entities = $this->getEntities(); + + foreach ($entities as $entity) { + $model = $this->getEntity($entity); + + $this->writeCacheFile($cacheDir."/".$entity.'.js', $model); + } + } + + + protected function writeCacheFile($file, $content) + { + $tmpFile = tempnam(dirname($file), basename($file)); + if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $file)) { + @chmod($file, 0666 & ~umask()); + + return; + } + + throw new \RuntimeException(sprintf('Failed to write cache file "%s".', $file)); + } } diff --git a/src/PartKeepr/SetupBundle/Controller/AdminUserSetupController.php b/src/PartKeepr/SetupBundle/Controller/AdminUserSetupController.php @@ -0,0 +1,52 @@ +<?php +namespace PartKeepr\SetupBundle\Controller; + +use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Annotation\Route; + +class AdminUserSetupController extends SetupController +{ + /** + * @Route("/setup/createUser") + */ + public function createUserAction(Request $request) + { + $data = json_decode($request->getContent(), true); + + $response = $this->handleRequest($request, "/setup/_int_create_user", $data["adminuser"]); + + return new Response($response->getContent()); + } + + /** + * @Route("/setup/_int_create_user") + */ + public function intCreateUserAction(Request $request) + { + $response = array( + "success" => true, + "errors" => [], + "message" => "Admin user successfully created", + ); + + try { + $manager = $this->get('fos_user.user_manager'); + $user = $manager->findUserByUsername($request->query->get("username")); + + if ($user === null) { + $manipulator = $this->get('fos_user.util.user_manipulator'); + $manipulator->create($request->query->get("username"), $request->query->get("password"), + $request->query->get("email"), true, true); + } + } catch (\Exception $e) { + $response["success"] = false; + $response["message"] = "User creation error"; + $response["errors"] = [$e->getMessage()]; + } + + return new JsonResponse($response); + } + +} diff --git a/src/PartKeepr/SetupBundle/Controller/CacheWarmupSetupController.php b/src/PartKeepr/SetupBundle/Controller/CacheWarmupSetupController.php @@ -0,0 +1,54 @@ +<?php +namespace PartKeepr\SetupBundle\Controller; + +use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Annotation\Route; + +class CacheWarmupSetupController extends SetupController +{ + /** + * @Route("/setup/_int_cache_warmup") + */ + public function intSetupSchemaAction() + { + $response = array( + "success" => true, + "errors" => [], + "message" => "Cache successfully warmed up", + ); + + try { + $warmer = $this->get('cache_warmer'); + $warmer->enableOptionalWarmers(); + $warmer->warmUp($this->getParameter('kernel.cache_dir')); + + $reflectionService = $this->get("doctrine_reflection_service"); + $cacheDir = $this->get("kernel")->getCacheDir(); + $reflectionService->createCache($cacheDir); + } catch (\Exception $e) { + $response["success"] = false; + $response["message"] = "Cache warm up error"; + $response["errors"] = [$e->getMessage()]; + } + + return new JsonResponse($response); + } + + /** + * @Route("/setup/warmupCache") + */ + public function cacheWarmupAction(Request $request) + { + // Clear old cache + $cacheDir = $this->get("kernel")->getRootDir()."/cache/prod"; + + $filesystem = $this->get("filesystem"); + $filesystem->remove($cacheDir); + + $response = $this->handleRequest($request, "/setup/_int_cache_warmup", array(), "prod"); + + return new Response($response->getContent()); + } +} diff --git a/src/PartKeepr/SetupBundle/Controller/FootprintSetupController.php b/src/PartKeepr/SetupBundle/Controller/FootprintSetupController.php @@ -0,0 +1,154 @@ +<?php +namespace PartKeepr\SetupBundle\Controller; + +use PartKeepr\FootprintBundle\Entity\Footprint; +use PartKeepr\FootprintBundle\Entity\FootprintCategory; +use PartKeepr\FootprintBundle\Entity\FootprintImage; +use Symfony\Component\HttpFoundation\File\File; +use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Yaml\Parser; + +class FootprintSetupController extends SetupController +{ + const FOOTPRINT_PATH = "@PartKeeprSetupBundle/Resources/setup-data/footprints/"; + const FOOTPRINT_DATA = "footprints.yml"; + + /** + * @Route("/setup/_int_create_footprints") + */ + public function intCreateFootprints() + { + $response = array( + "success" => true, + "errors" => [], + "message" => "Default footprints successfully created", + ); + + $path = $this->get("kernel")->locateResource(self::FOOTPRINT_PATH.self::FOOTPRINT_DATA); + + $skipped = 0; + + try { + $yaml = new Parser(); + $data = $yaml->parse(file_get_contents($path)); + + $entityManager = $this->get("doctrine.orm.default_entity_manager"); + + foreach ($data as $footprintName => $footprintData) { + if ($this->footprintExists($footprintName)) { + $skipped++; + continue; + } + + $this->createFootprint($footprintName, $footprintData); + } + + $entityManager->flush(); + } catch (\Exception $e) { + $response["success"] = false; + $response["message"] = "Footprint creation error"; + $response["errors"] = [$e->getMessage()]; + } + + return new JsonResponse($response); + } + + /** + * @Route("/setup/createFootprints") + */ + public function createFootprintsAction(Request $request) + { + $response = $this->handleRequest($request, "/setup/_int_create_footprints"); + + return new Response($response->getContent()); + } + + protected function createFootprint($footprintName, $footprintData) + { + $fileService = $this->get("partkeepr_uploadedfile_service"); + + $footprintCategoryService = $this->get("partkeepr.footprint.category_service"); + $footprintCategoryRootNode = $footprintCategoryService->getRootNode(); + + $footprint = new Footprint(); + $footprint->setName($footprintName); + + if (array_key_exists("description", $footprintData)) { + $footprint->setDescription($footprintData["description"]); + } + + if (array_key_exists("category", $footprintData)) { + $footprintCategory = $this->addFootprintCategoryPath(explode("/", $footprintData["category"]), + $footprintCategoryRootNode); + $footprint->setCategory($footprintCategory); + } + + if (array_key_exists("image", $footprintData)) { + $footprintImage = new FootprintImage(); + + + $file = $this->get("kernel")->locateResource(self::FOOTPRINT_PATH.$footprintData["image"]); + $fileService->replaceFromFilesystem($footprintImage, new File($file)); + + $footprint->setImage($footprintImage); + } + + $this->get("doctrine.orm.default_entity_manager")->persist($footprint); + } + + /** + * Creates a node structure for the given path + * + * @param $path array The components of the path + * @param $parentNode FootprintCategory The parent node + * + * @return FootprintCategory + */ + protected function addFootprintCategoryPath(Array $path, FootprintCategory $parentNode) + { + if (count($path) == 0) { + return $parentNode; + } + $name = array_shift($path); + + $category = null; + + foreach ($parentNode->getChildren() as $child) { + if ($child->getName() == $name) { + $category = $child; + } + } + + if ($category === null) { + $category = new FootprintCategory(); + $category->setParent($parentNode); + $category->setName($name); + $parentNode->getChildren()->add($category); + + $this->get("doctrine.orm.default_entity_manager")->persist($category); + } + + return $this->addFootprintCategoryPath($path, $category); + } + + /** + * Checks if the specified footprint exists + * + * @param string $name The footprint name + */ + protected function footprintExists($name) + { + $dql = "SELECT COUNT(fp) FROM PartKeepr\FootprintBundle\Entity\Footprint fp WHERE fp.name = :name"; + $query = $this->get("doctrine.orm.default_entity_manager")->createQuery($dql); + $query->setParameter("name", $name); + + if ($query->getSingleScalarResult() == 0) { + return false; + } else { + return true; + } + } +} diff --git a/src/PartKeepr/SetupBundle/Controller/IndexController.php b/src/PartKeepr/SetupBundle/Controller/IndexController.php @@ -1,15 +0,0 @@ -<?php -namespace PartKeepr\SetupBundle\Controller; - -use Symfony\Bundle\FrameworkBundle\Controller\Controller; -use Symfony\Component\Routing\Annotation\Route; - -class IndexController extends Controller -{ - /** - * @Route("/setup") - */ - public function setupAction () { - return $this->render('PartKeeprSetupBundle::setup.html.twig'); - } -} diff --git a/src/PartKeepr/SetupBundle/Controller/ManufacturerSetupController.php b/src/PartKeepr/SetupBundle/Controller/ManufacturerSetupController.php @@ -0,0 +1,108 @@ +<?php +namespace PartKeepr\SetupBundle\Controller; + +use PartKeepr\ManufacturerBundle\Entity\Manufacturer; +use PartKeepr\ManufacturerBundle\Entity\ManufacturerICLogo; +use Symfony\Component\HttpFoundation\File\File; +use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Yaml\Parser; + +class ManufacturerSetupController extends SetupController +{ + const MANUFACTURER_PATH = "@PartKeeprSetupBundle/Resources/setup-data/manufacturers/"; + const MANUFACTURER_DATA = "manufacturers.yml"; + + /** + * @Route("/setup/_int_create_manufacturers") + */ + public function intCreateManufacturersAction() + { + $response = array( + "success" => true, + "errors" => [], + "message" => "Default manufacturers successfully created", + ); + + $path = $this->get("kernel")->locateResource(self::MANUFACTURER_PATH.self::MANUFACTURER_DATA); + + $skipped = 0; + + try { + $yaml = new Parser(); + $data = $yaml->parse(file_get_contents($path)); + + $entityManager = $this->get("doctrine.orm.default_entity_manager"); + + foreach ($data as $manufacturerName => $manufacturerData) { + if ($this->manufacturerExists($manufacturerName)) { + $skipped++; + continue; + } + + $this->createManufacturer($manufacturerName, $manufacturerData); + } + + $entityManager->flush(); + } catch (\Exception $e) { + $response["success"] = false; + $response["message"] = "Manufacturers creation error"; + $response["errors"] = [$e->getMessage()]; + } + + return new JsonResponse($response); + } + + /** + * @Route("/setup/createManufacturers") + */ + public function createManufacturersAction(Request $request) + { + $response = $this->handleRequest($request, "/setup/_int_create_manufacturers"); + + return new Response($response->getContent()); + } + + protected function createManufacturer($manufacturerName, $manufacturerData) + { + $fileService = $this->get("partkeepr_uploadedfile_service"); + + $manufacturer = new Manufacturer(); + $manufacturer->setName($manufacturerName); + + if (array_key_exists("iclogos", $manufacturerData)) { + + foreach ($manufacturerData["iclogos"] as $icLogo) { + $manufacturerIcLogo = new ManufacturerICLogo(); + + $file = $this->get("kernel")->locateResource(self::MANUFACTURER_PATH.$icLogo); + $fileService->replaceFromFilesystem($manufacturerIcLogo, new File($file)); + + $manufacturer->addIcLogo($manufacturerIcLogo); + } + } + + $this->get("doctrine.orm.default_entity_manager")->persist($manufacturer); + } + + + /** + * Checks if the specified manufacturer exists + * + * @param string $name The manufacturer name + */ + protected function manufacturerExists($name) + { + $dql = "SELECT COUNT(m) FROM PartKeepr\ManufacturerBundle\Entity\Manufacturer m WHERE m.name = :name"; + $query = $this->get("doctrine.orm.default_entity_manager")->createQuery($dql); + $query->setParameter("name", $name); + + if ($query->getSingleScalarResult() == 0) { + return false; + } else { + return true; + } + } +} diff --git a/src/PartKeepr/SetupBundle/Controller/PartUnitSetupController.php b/src/PartKeepr/SetupBundle/Controller/PartUnitSetupController.php @@ -0,0 +1,59 @@ +<?php +namespace PartKeepr\SetupBundle\Controller; + +use PartKeepr\PartBundle\Entity\PartMeasurementUnit; +use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Annotation\Route; + +class PartUnitSetupController extends SetupController +{ + /** + * @Route("/setup/createPartUnits") + */ + public function createPartUnitsAction(Request $request) + { + $response = $this->handleRequest($request, "/setup/_int_create_part_units"); + + return new Response($response->getContent()); + } + + /** + * @Route("/setup/_int_create_part_units") + */ + public function intCreatePartUnitsAction() + { + $response = array( + "success" => true, + "errors" => [], + "message" => "Default part unit successfully created", + ); + + try { + $entityManager = $this->get("doctrine.orm.default_entity_manager"); + + $dql = "SELECT COUNT(p) FROM PartKeepr\PartBundle\Entity\PartMeasurementUnit p WHERE p.default = :default"; + $query = $entityManager->createQuery($dql); + $query->setParameter("default", true); + + if ($query->getSingleScalarResult() == 0) { + $partUnit = new PartMeasurementUnit(); + $partUnit->setName("Pieces"); + $partUnit->setShortName("pcs"); + $partUnit->setDefault(true); + + $entityManager->persist($partUnit); + $entityManager->flush(); + + } + } catch (\Exception $e) { + $response["success"] = false; + $response["message"] = "Part unit setup error"; + $response["errors"] = [$e->getMessage()]; + } + + return new JsonResponse($response); + } + +} diff --git a/src/PartKeepr/SetupBundle/Controller/SchemaMigrationSetupController.php b/src/PartKeepr/SetupBundle/Controller/SchemaMigrationSetupController.php @@ -0,0 +1,56 @@ +<?php +namespace PartKeepr\SetupBundle\Controller; + +use Doctrine\Bundle\MigrationsBundle\Command\DoctrineCommand; +use Doctrine\DBAL\Migrations\Configuration\Configuration; +use Doctrine\DBAL\Migrations\Migration; +use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Annotation\Route; + +class SchemaMigrationSetupController extends SetupController +{ + /** + * @Route("/setup/_int_migrate_schema") + */ + public function intMigrateSchemaAction() + { + $response = array( + "success" => true, + "errors" => [], + "message" => "Database schema successfully migrated", + ); + + $configuration = $this->getMigrationConfiguration(); + $migration = new Migration($configuration); + + $version = $configuration->getLatestVersion(); + + $migration->migrate($version); + + return new JsonResponse($response); + } + + + protected function getMigrationConfiguration() + { + $config = new Configuration($this->get("doctrine.dbal.default_connection")); + + DoctrineCommand::configureMigrations($this->container, $config); + + return $config; + } + + /** + * @Route("/setup/schemaMigration") + */ + public function migrateSchemaAction(Request $request) + { + $response = $this->handleRequest($request, "/setup/_int_migrate_schema"); + + return new Response($response->getContent()); + } + + +} diff --git a/src/PartKeepr/SetupBundle/Controller/SchemaSetupController.php b/src/PartKeepr/SetupBundle/Controller/SchemaSetupController.php @@ -0,0 +1,47 @@ +<?php +namespace PartKeepr\SetupBundle\Controller; + +use Doctrine\ORM\Tools\SchemaTool; +use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Annotation\Route; + +class SchemaSetupController extends SetupController +{ + /** + * @Route("/setup/_int_setup_schema") + */ + public function intSetupSchemaAction() + { + $response = array( + "success" => true, + "errors" => [], + "message" => "Database successfully installed/updated", + ); + + $entityManager = $this->get("doctrine.orm.default_entity_manager"); + $schemaTool = new SchemaTool($entityManager); + $metadatas = $entityManager->getMetadataFactory()->getAllMetadata(); + + try { + $schemaTool->updateSchema($metadatas); + } catch (\Exception $e) { + $response["success"] = false; + $response["message"] = "Database setup error"; + $response["errors"] = [$e->getMessage()]; + } + + return new JsonResponse($response); + } + + /** + * @Route("/setup/schemaSetup") + */ + public function setupSchemaAction(Request $request) + { + $response = $this->handleRequest($request, "/setup/_int_setup_schema"); + + return new Response($response->getContent()); + } +} diff --git a/src/PartKeepr/SetupBundle/Controller/SetupController.php b/src/PartKeepr/SetupBundle/Controller/SetupController.php @@ -0,0 +1,226 @@ +<?php +namespace PartKeepr\SetupBundle\Controller; + +use Doctrine\DBAL\Exception\DriverException; +use Symfony\Bundle\FrameworkBundle\Controller\Controller; +use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Annotation\Route; + +class SetupController extends Controller +{ + const KEY_LENGTH = 32; + + /** + * @Route("/setup/_int_test_connectivity") + */ + public function intTestConnectivityAction() + { + $response = array( + "success" => true, + "errors" => [], + "message" => "Connection successful", + ); + + try { + $this->get("doctrine.dbal.default_connection")->connect(); + } catch (DriverException $e) { + $response["success"] = false; + $response["message"] = "Connection Error"; + $response["errors"] = [$e->getMessage()]; + } + + return new JsonResponse($response); + } + + + /** + * @Route("/setup/testConnectivity") + */ + public function testConnectivityAction(Request $request) + { + $this->dumpConfig($request); + + $response = $this->handleRequest($request, "/setup/_int_test_connectivity"); + + return new Response($response->getContent()); + } + + /** + * @Route("/setup/saveConfig") + */ + public function saveConfigAction(Request $request) + { + $this->dumpConfig($request, false); + + + $response = array( + "success" => true, + "errors" => [], + "message" => "Configuration saved successful", + ); + return new JsonResponse($response); + } + + /** + * @Route("/setup/generateAuthKey") + */ + public function generateAuthKeyAction() + { + $response = array( + "success" => true, + "message" => "Auth key successfully generated", + "errors" => array() + ); + + $parameters = array( + "authkey" => $this->generateSecret() + ); + + $contents = $this->container->get('templating')->render('PartKeeprSetupBundle::authkey.php.twig', $parameters); + file_put_contents($this->getAuthKeyPath(), $contents); + + return new JsonResponse($response); + } + + + protected function handleRequest(Request $request, $uri, $parameters = array(), $environment = "setup_test") + { + $data = json_decode($request->getContent(), true); + if (!array_key_exists("authKey", $data) || !$this->verifyAuthKey($data["authKey"])) { + $response["success"] = false; + $response["message"] = "Invalid Authentication Key"; + $response["errors"] = array(); + + return new JsonResponse($response); + } + + try { + $kernel = new \AppKernel($environment, true); + $internalRequest = Request::create($uri, "GET", $parameters); + + return $kernel->handle($internalRequest); + } catch (\Exception $e) { + $response["success"] = false; + $response["message"] = "Generic Error"; + $response["errors"] = [$e->getMessage()]; + + return new JsonResponse($response); + } + } + + protected function generateSecret () { + $secret = ""; + for ($i = 0; $i < self::KEY_LENGTH; $i++) { + $secret .= chr(65 + rand(0, 16)); + } + return $secret; + + + } + + protected function verifyAuthKey ($givenKey) { + $findText = "Your auth key is: "; + + $data = file_get_contents($this->getAuthKeyPath()); + $position = strpos($data, $findText); + + $key = substr($data, $position + strlen($findText), self::KEY_LENGTH); + + if ($key === $givenKey) { + return true; + } + + return false; + } + + private function dumpConfig(Request $request, $test = true) + { + $data = json_decode($request->getContent(), true); + + $parameters = array(); + $parameters["database"] = array( + "driver" => null, + "host" => "~", + "user" => "~", + "password" => "~", + "name" => "~", + "port" => 3306, + ); + + $parameters["mailer"] = array( + "transport" => "~", + "host" => "~", + "port" => "~", + "encryption" => "~", + "username" => "~", + "password" => "~", + "auth_mode" => "~", + ); + + $parameters["ldap"] = array( + "enabled" => "false", + "host" => "127.0.0.1", + "port" => "~", + "username" => "~", + "password" => "~", + "bindrequiresdn" => "false", + "basedn" => "", + "ssl" => "~", + "starttls" => "~", + "user_basedn" => "dc=blabla,dc=com", + "user_filter" => "~", + "user_username" => "~", + "user_name" => "~", + "user_email" => "~", + ); + + $secret = ""; + for ($i = 0; $i < 32; $i++) { + $secret .= chr(65 + rand(0, 16)); + } + $parameters["secret"] = $this->generateSecret(); + + + if (array_key_exists("database", $data)) { + $parameters["database"] = $this->applyIf($parameters["database"], $data["database"]); + } + + if (array_key_exists("mailer", $data)) { + $parameters["mailer"] = $this->applyIf($parameters["mailer"], $data["mailer"]); + } + + if (array_key_exists("ldap", $data)) { + $parameters["ldap"] = $this->applyIf($parameters["ldap"], $data["ldap"]); + } + $contents = $this->container->get('templating')->render('PartKeeprSetupBundle::setup.html.twig', $parameters); + + file_put_contents($this->getConfigPath($test), $contents); + } + + private function applyIf($target, $source) + { + foreach ($target as $key => $value) { + if (array_key_exists($key, $source)) { + $target[$key] = $source[$key]; + } + } + + return $target; + } + + private function getAuthKeyPath () { + return dirname(__FILE__)."/../../../../app/authkey.php"; + } + + private function getConfigPath ($test) { + if ($test) { + $filename = "parameters_setup.yml"; + } else { + $filename = "parameters.yml"; + } + return dirname(__FILE__)."/../../../../app/config/".$filename; + } + +} diff --git a/src/PartKeepr/SetupBundle/Controller/SiPrefixSetupController.php b/src/PartKeepr/SetupBundle/Controller/SiPrefixSetupController.php @@ -0,0 +1,83 @@ +<?php + + +namespace PartKeepr\SetupBundle\Controller; + +use PartKeepr\SiPrefixBundle\Entity\SiPrefix; +use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Yaml\Parser; + +class SiPrefixSetupController extends SetupController +{ + const SIPREFIX_PATH = "@PartKeeprSetupBundle/Resources/setup-data/"; + const SIPREFIX_DATA = "siprefixes.yml"; + + /** + * @Route("/setup/_int_create_si_prefixes") + */ + public function intCreateSiPrefixes() + { + $response = array( + "success" => true, + "errors" => [], + "message" => "SI Prefixes successfully created/updated", + ); + + $path = $this->get("kernel")->locateResource(self::SIPREFIX_PATH.self::SIPREFIX_DATA); + + try { + $yaml = new Parser(); + $data = $yaml->parse(file_get_contents($path)); + + $entityManager = $this->get("doctrine.orm.default_entity_manager"); + + foreach ($data as $prefixName => $prefixData) { + $prefix = $this->getSiPrefix($prefixName); + + if ($prefix === null) { + $prefix = new SiPrefix(); + $prefix->setPrefix($prefixName); + $entityManager->persist($prefix); + } + + $prefix->setExponent($prefixData["exponent"]); + $prefix->setSymbol($prefixData["symbol"]); + $prefix->setBase($prefixData["base"]); + + + } + $entityManager->flush(); + } catch (\Exception $e) { + $response["success"] = false; + $response["message"] = "SI Prefix creation error"; + $response["errors"] = [$e->getMessage()]; + } + + return new JsonResponse($response); + } + + /** + * @Route("/setup/createSiPrefixes") + */ + public function createSiPrefixesAction(Request $request) + { + $response = $this->handleRequest($request, "/setup/_int_create_si_prefixes"); + + return new Response($response->getContent()); + } + + /** + * Finds an SI Prefix by name + * + * @param string $name The SI Prefix name + * @return SiPrefix|null + */ + protected function getSiPrefix($name) + { + $repository = $this->get("doctrine.orm.default_entity_manager")->getRepository("PartKeeprSiPrefixBundle:SiPrefix"); + return $repository->findOneBy(array("prefix" => $name)); + } +} diff --git a/src/PartKeepr/SetupBundle/Controller/UnitSetupController.php b/src/PartKeepr/SetupBundle/Controller/UnitSetupController.php @@ -0,0 +1,107 @@ +<?php + + +namespace PartKeepr\SetupBundle\Controller; + +use PartKeepr\SiPrefixBundle\Entity\SiPrefix; +use PartKeepr\UnitBundle\Entity\Unit; +use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Yaml\Parser; + +class UnitSetupController extends SetupController +{ + const UNIT_PATH = "@PartKeeprSetupBundle/Resources/setup-data/"; + const UNIT_DATA = "units.yml"; + + /** + * @Route("/setup/_int_create_units") + */ + public function intCreateUnitsAction() + { + $response = array( + "success" => true, + "errors" => [], + "message" => "Default units successfully created/updated", + ); + + $path = $this->get("kernel")->locateResource(self::UNIT_PATH.self::UNIT_DATA); + + try { + $yaml = new Parser(); + $data = $yaml->parse(file_get_contents($path)); + + $entityManager = $this->get("doctrine.orm.default_entity_manager"); + + foreach ($data as $unitName => $unitData) { + $unit = $this->getUnit($unitName); + + if ($unit === null) { + $unit = new Unit(); + $unit->setName($unitName); + $unit->setSymbol($unitData["symbol"]); + + if (array_key_exists("prefixes", $unitData)) { + if (!is_array($unitData["prefixes"])) { + throw new \Exception($unitName." doesn't contain a prefix list, or the prefix list is not an array."); + } + + foreach ($unitData["prefixes"] as $name) { + $prefix = $this->getSiPrefix($name); + if ($prefix === null) { + throw new \Exception("Unable to find SI Prefix ".$name); + } + + $unit->getPrefixes()->add($prefix); + } + } + $entityManager->persist($unit); + $entityManager->flush(); + } + } + + } catch (\Exception $e) { + $response["success"] = false; + $response["message"] = "Unit creation error"; + $response["errors"] = [$e->getMessage()]; + } + + return new JsonResponse($response); + } + + /** + * @Route("/setup/createUnits") + */ + public function createUnitAction(Request $request) + { + $response = $this->handleRequest($request, "/setup/_int_create_units"); + + return new Response($response->getContent()); + } + + /** + * Checks if the specified SI Prefix + * + * @param string $name The footprint name + */ + protected function getUnit($name) + { + $repository = $this->get("doctrine.orm.default_entity_manager")->getRepository("PartKeeprUnitBundle:Unit"); + + return $repository->findOneBy(array("name" => $name)); + } + + /** + * Finds an SI Prefix by name + * + * @param string $name The SI Prefix name + * @return SiPrefix|null + */ + protected function getSiPrefix($name) + { + $repository = $this->get("doctrine.orm.default_entity_manager")->getRepository("PartKeeprSiPrefixBundle:SiPrefix"); + return $repository->findOneBy(array("prefix" => $name)); + } +} diff --git a/src/PartKeepr/SetupBundle/Resources/config/routing.yml b/src/PartKeepr/SetupBundle/Resources/config/routing.yml @@ -1,3 +1,39 @@ _setup: - resource: "@PartKeeprSetupBundle/Controller/IndexController.php" + resource: "@PartKeeprSetupBundle/Controller/SetupController.php" + type: annotation + +_setup_warmup: + resource: "@PartKeeprSetupBundle/Controller/CacheWarmupSetupController.php" + type: annotation + +_setup_schema: + resource: "@PartKeeprSetupBundle/Controller/SchemaSetupController.php" + type: annotation + +_setup_adminuser: + resource: "@PartKeeprSetupBundle/Controller/AdminUserSetupController.php" + type: annotation + +_setup_migration: + resource: "@PartKeeprSetupBundle/Controller/SchemaMigrationSetupController.php" + type: annotation + +_setup_part_unit: + resource: "@PartKeeprSetupBundle/Controller/PartUnitSetupController.php" + type: annotation + +_setup_footprint: + resource: "@PartKeeprSetupBundle/Controller/FootprintSetupController.php" + type: annotation + +_setup_si_prefixes: + resource: "@PartKeeprSetupBundle/Controller/SiPrefixSetupController.php" + type: annotation + +_setup_units: + resource: "@PartKeeprSetupBundle/Controller/UnitSetupController.php" + type: annotation + +_setup_manufacturers: + resource: "@PartKeeprSetupBundle/Controller/ManufacturerSetupController.php" type: annotation diff --git a/setup-data/footprints/BGA/CBGA-32.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/CBGA-32.png Binary files differ. diff --git a/setup-data/footprints/BGA/FCBGA-576.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/FCBGA-576.png Binary files differ. diff --git a/setup-data/footprints/BGA/PBGA-119.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-119.png Binary files differ. diff --git a/setup-data/footprints/BGA/PBGA-169.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-169.png Binary files differ. diff --git a/setup-data/footprints/BGA/PBGA-225.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-225.png Binary files differ. diff --git a/setup-data/footprints/BGA/PBGA-260.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-260.png Binary files differ. diff --git a/setup-data/footprints/BGA/PBGA-297.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-297.png Binary files differ. diff --git a/setup-data/footprints/BGA/PBGA-304.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-304.png Binary files differ. diff --git a/setup-data/footprints/BGA/PBGA-316.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-316.png Binary files differ. diff --git a/setup-data/footprints/BGA/PBGA-324.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-324.png Binary files differ. diff --git a/setup-data/footprints/BGA/PBGA-385.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-385.png Binary files differ. diff --git a/setup-data/footprints/BGA/PBGA-400.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-400.png Binary files differ. diff --git a/setup-data/footprints/BGA/PBGA-484.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-484.png Binary files differ. diff --git a/setup-data/footprints/BGA/PBGA-625.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-625.png Binary files differ. diff --git a/setup-data/footprints/BGA/PBGA-676.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/PBGA-676.png Binary files differ. diff --git a/setup-data/footprints/BGA/SBGA-256.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/SBGA-256.png Binary files differ. diff --git a/setup-data/footprints/BGA/SBGA-304.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/SBGA-304.png Binary files differ. diff --git a/setup-data/footprints/BGA/SBGA-432.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/BGA/SBGA-432.png Binary files differ. diff --git a/setup-data/footprints/DIP/CERDIP-14.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-14.png Binary files differ. diff --git a/setup-data/footprints/DIP/CERDIP-16.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-16.png Binary files differ. diff --git a/setup-data/footprints/DIP/CERDIP-18.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-18.png Binary files differ. diff --git a/setup-data/footprints/DIP/CERDIP-20.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-20.png Binary files differ. diff --git a/setup-data/footprints/DIP/CERDIP-24-N.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-24-N.png Binary files differ. diff --git a/setup-data/footprints/DIP/CERDIP-24-W.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-24-W.png Binary files differ. diff --git a/setup-data/footprints/DIP/CERDIP-28.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-28.png Binary files differ. diff --git a/setup-data/footprints/DIP/CERDIP-40.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-40.png Binary files differ. diff --git a/setup-data/footprints/DIP/CERDIP-8.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/CERDIP-8.png Binary files differ. diff --git a/setup-data/footprints/DIP/PDIP-14.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-14.png Binary files differ. diff --git a/setup-data/footprints/DIP/PDIP-16.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-16.png Binary files differ. diff --git a/setup-data/footprints/DIP/PDIP-18.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-18.png Binary files differ. diff --git a/setup-data/footprints/DIP/PDIP-20.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-20.png Binary files differ. diff --git a/setup-data/footprints/DIP/PDIP-24.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-24.png Binary files differ. diff --git a/setup-data/footprints/DIP/PDIP-28-N.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-28-N.png Binary files differ. diff --git a/setup-data/footprints/DIP/PDIP-28-W.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-28-W.png Binary files differ. diff --git a/setup-data/footprints/DIP/PDIP-8.png b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/DIP/PDIP-8.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/footprints.yml b/src/PartKeepr/SetupBundle/Resources/setup-data/footprints/footprints.yml @@ -0,0 +1,155 @@ +# Missing CSP BGA Footprints from http://www.analog.com/en/technical-library/packages/csp-chip-scale-package/csp-bga-ball-grid-array/index.html +# TODO: brazed cerdip packages from http://www.analog.com/en/technical-library/packages/dip-dual-inline-package/cerdip-side-or-bottom-brazed/index.html +# TODO: add gullwing lead DIP packages from http://www.analog.com/en/technical-library/packages/dip-dual-inline-package/dip-gullwing-leads/index.html +# TODO: add metal/hybrid DIP packages from http://www.analog.com/en/technical-library/packages/dip-dual-inline-package/metal-or-hybrid-dip/index.html + +CBGA-32: + description: 32-Lead Ceramic Ball Grid Array + image: BGA/CBGA-32.png + category: BGA/CBGA +FCBGA-576: + description: 576-Ball Ball Grid Array, Thermally Enhanced + image: BGA/FCBGA-576.png + category: BGA/FCBGA +# PBGA +PBGA-119: + description: 119-Ball Plastic Ball Grid Array + image: BGA/PBGA-119.png + category: BGA/PBGA +PBGA-169: + description: 169-Ball Plastic Ball Grid Array + image: BGA/PBGA-169.png + category: BGA/PBGA +PBGA-225: + description: 225-Ball Plastic a Ball Grid Array + category: BGA/PBGA + image: BGA/PBGA-225.png +PBGA-260: + description: 260-Ball Plastic Ball Grid Array + category: BGA/PBGA + image: BGA/PBGA-260.png +PBGA-297: + description: 297-Ball Plastic Ball Grid Array + category: BGA/PBGA + image: BGA/PBGA-297.png +PBGA-304: + description: 304-Lead Plastic Ball Grid Array + category: BGA/PBGA + image: BGA/PBGA-304.png +PBGA-316: + description: 316-Lead Plastic Ball Grid Array + category: BGA/PBGA + image: BGA/PBGA-316.png +PBGA-324: + description: 324-Ball Plastic Ball Grid Array + category: BGA/PBGA + image: BGA/PBGA-324.png +PBGA-385: + description: 385-Lead Ball Grid Array + category: BGA/PBGA + image: BGA/PBGA-385.png +PBGA-400: + description: 400-Ball Plastic Ball Grid Array + category: BGA/PBGA + image: BGA/PBGA-400.png +PBGA-484: + description: 484-Ball Plastic Ball Grid Array + category: BGA/PBGA + image: BGA/PBGA-484.png +PBGA-625: + description: 625-Ball Plastic Ball Grid Array + category: BGA/PBGA + image: BGA/PBGA-625.png +PBGA-676: + description: 676-Ball Plastic Ball Grid Array + category: BGA/PBGA + image: BGA/PBGA-676.png + +# SBGA +SBGA-256: + description: 256-Ball Ball Grid Array, Thermally Enhanced + category: BGA/PBGA + image: BGA/SBGA-256.png +SBGA-304: + description: 304-Ball Ball Grid Array, Thermally Enhanced + category: BGA/PBGA + image: BGA/SBGA-304.png +SBGA-432: + description: 432-Ball Ball Grid Array, Thermally Enhanced + category: BGA/PBGA + image: BGA/SBGA-432.png + +# Ceramic DIP +CerDIP-8: + description: 8-Lead Ceramic Dual In-Line Package + category: DIP/CERDIP + image: DIP/CERDIP-8.png +CerDIP-14: + description: 14-Lead Ceramic Dual In-Line Package + category: DIP/CERDIP + image: DIP/CERDIP-14.png +CerDIP-16: + description: 16-Lead Ceramic Dual In-Line Package + category: DIP/CERDIP + image: DIP/CERDIP-16.png +CerDIP-18: + description: 18-Lead Ceramic Dual In-Line Package + category: DIP/CERDIP + image: DIP/CERDIP-18.png +CerDIP-20: + description: 20-Lead Ceramic Dual In-Line Package + category: DIP/CERDIP + image: DIP/CERDIP-20.png +CerDIP-24 Narrow: + description: 24-Lead Ceramic Dual In-Line Package - Narrow Body + category: DIP/CERDIP + image: DIP/CERDIP-24-N.png +CerDIP-24 Wide: + description: 24-Lead Ceramic Dual In-Line Package - Wide Body + category: DIP/CERDIP + image: DIP/CERDIP-24-W.png +CerDIP-28: + description: 28-Lead Ceramic Dual In-Line Package + category: DIP/CERDIP + image: DIP/CERDIP-28.png +CerDIP-40: + description: 40-Lead Ceramic Dual In-Line Package + category: DIP/CERDIP + image: DIP/CERDIP-40.png + +# Plastic DIP (PDIP) +PDIP-8: + description: 8-Lead Plastic Dual In-Line Package + category: DIP/PDIP + image: DIP/PDIP-8.png +PDIP-14: + description: 14-Lead Plastic Dual In-Line Package + category: DIP/PDIP + image: DIP/PDIP-14.png +PDIP-16: + description: 16-Lead Plastic Dual In-Line Package + category: DIP/PDIP + image: DIP/PDIP-16.png +PDIP-18: + description: 18-Lead Plastic Dual In-Line Package + category: DIP/PDIP + image: DIP/PDIP-18.png +PDIP-20: + description: 20-Lead Plastic Dual In-Line Package + category: DIP/PDIP + image: DIP/PDIP-20.png +PDIP-24: + description: 24-Lead Plastic Dual In-Line Package + category: DIP/PDIP + image: DIP/PDIP-24.png +PDIP-28 Narrow: + description: 28-Lead Plastic Dual In-Line Package, Narrow Body + category: DIP/PDIP + image: DIP/PDIP-28-N.png +PDIP-28 Wide: + description: 28-Lead Plastic Dual In-Line Package, Wide Body + category: DIP/PDIP + image: DIP/PDIP-28-W.png +SOIC-N-EP-8: + description: 8-Lead Standard Small Outline Package, with Expose Pad + diff --git a/setup-data/manufacturers/images/acer.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/acer.png Binary files differ. diff --git a/setup-data/manufacturers/images/actel.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/actel.png Binary files differ. diff --git a/setup-data/manufacturers/images/advldev.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/advldev.png Binary files differ. diff --git a/setup-data/manufacturers/images/aeroflex1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/aeroflex1.png Binary files differ. diff --git a/setup-data/manufacturers/images/aeroflex2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/aeroflex2.png Binary files differ. diff --git a/setup-data/manufacturers/images/agilent.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/agilent.png Binary files differ. diff --git a/setup-data/manufacturers/images/akm.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/akm.png Binary files differ. diff --git a/setup-data/manufacturers/images/alesis.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/alesis.png Binary files differ. diff --git a/setup-data/manufacturers/images/ali1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ali1.png Binary files differ. diff --git a/setup-data/manufacturers/images/ali2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ali2.png Binary files differ. diff --git a/setup-data/manufacturers/images/allayer.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/allayer.png Binary files differ. diff --git a/setup-data/manufacturers/images/allegro.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/allegro.png Binary files differ. diff --git a/setup-data/manufacturers/images/alliance.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/alliance.png Binary files differ. diff --git a/setup-data/manufacturers/images/alpha.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/alpha.png Binary files differ. diff --git a/setup-data/manufacturers/images/alphaind.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/alphaind.png Binary files differ. diff --git a/setup-data/manufacturers/images/alphamic.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/alphamic.png Binary files differ. diff --git a/setup-data/manufacturers/images/altera.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/altera.png Binary files differ. diff --git a/setup-data/manufacturers/images/amd.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/amd.png Binary files differ. diff --git a/setup-data/manufacturers/images/ami1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ami1.png Binary files differ. diff --git a/setup-data/manufacturers/images/ami2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ami2.png Binary files differ. diff --git a/setup-data/manufacturers/images/amic.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/amic.png Binary files differ. diff --git a/setup-data/manufacturers/images/ampus.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ampus.png Binary files differ. diff --git a/setup-data/manufacturers/images/anachip.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/anachip.png Binary files differ. diff --git a/setup-data/manufacturers/images/anadigic.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/anadigic.png Binary files differ. diff --git a/setup-data/manufacturers/images/analog.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/analog.png Binary files differ. diff --git a/setup-data/manufacturers/images/analog1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/analog1.png Binary files differ. diff --git a/setup-data/manufacturers/images/anasys.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/anasys.png Binary files differ. diff --git a/setup-data/manufacturers/images/anchorch.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/anchorch.png Binary files differ. diff --git a/setup-data/manufacturers/images/apex.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/apex.png Binary files differ. diff --git a/setup-data/manufacturers/images/apex1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/apex1.png Binary files differ. diff --git a/setup-data/manufacturers/images/ark.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ark.png Binary files differ. diff --git a/setup-data/manufacturers/images/asd.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/asd.png Binary files differ. diff --git a/setup-data/manufacturers/images/astec.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/astec.png Binary files differ. diff --git a/setup-data/manufacturers/images/atc.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/atc.png Binary files differ. diff --git a/setup-data/manufacturers/images/atecom.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/atecom.png Binary files differ. diff --git a/setup-data/manufacturers/images/ati.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ati.png Binary files differ. diff --git a/setup-data/manufacturers/images/atmel.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/atmel.png Binary files differ. diff --git a/setup-data/manufacturers/images/att.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/att.png Binary files differ. diff --git a/setup-data/manufacturers/images/audiocod.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/audiocod.png Binary files differ. diff --git a/setup-data/manufacturers/images/auravis.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/auravis.png Binary files differ. diff --git a/setup-data/manufacturers/images/aureal.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/aureal.png Binary files differ. diff --git a/setup-data/manufacturers/images/austin.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/austin.png Binary files differ. diff --git a/setup-data/manufacturers/images/averlog.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/averlog.png Binary files differ. diff --git a/setup-data/manufacturers/images/belfuse.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/belfuse.png Binary files differ. diff --git a/setup-data/manufacturers/images/benchmrq.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/benchmrq.png Binary files differ. diff --git a/setup-data/manufacturers/images/bi.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/bi.png Binary files differ. diff --git a/setup-data/manufacturers/images/bowmar_white.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/bowmar_white.png Binary files differ. diff --git a/setup-data/manufacturers/images/bright.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/bright.png Binary files differ. diff --git a/setup-data/manufacturers/images/broadcom.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/broadcom.png Binary files differ. diff --git a/setup-data/manufacturers/images/brooktre.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/brooktre.png Binary files differ. diff --git a/setup-data/manufacturers/images/burrbrwn.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/burrbrwn.png Binary files differ. diff --git a/setup-data/manufacturers/images/calmicro.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/calmicro.png Binary files differ. diff --git a/setup-data/manufacturers/images/calogic.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/calogic.png Binary files differ. diff --git a/setup-data/manufacturers/images/catalys1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/catalys1.png Binary files differ. diff --git a/setup-data/manufacturers/images/catalyst.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/catalyst.png Binary files differ. diff --git a/setup-data/manufacturers/images/ccube.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ccube.png Binary files differ. diff --git a/setup-data/manufacturers/images/ceramate1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ceramate1.png Binary files differ. diff --git a/setup-data/manufacturers/images/ceramate2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ceramate2.png Binary files differ. diff --git a/setup-data/manufacturers/images/cherry.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cherry.png Binary files differ. diff --git a/setup-data/manufacturers/images/chipcon1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/chipcon1.png Binary files differ. diff --git a/setup-data/manufacturers/images/chipcon2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/chipcon2.png Binary files differ. diff --git a/setup-data/manufacturers/images/chips.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/chips.png Binary files differ. diff --git a/setup-data/manufacturers/images/chrontel.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/chrontel.png Binary files differ. diff --git a/setup-data/manufacturers/images/cirrus.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cirrus.png Binary files differ. diff --git a/setup-data/manufacturers/images/comcore.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/comcore.png Binary files differ. diff --git a/setup-data/manufacturers/images/conexant.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/conexant.png Binary files differ. diff --git a/setup-data/manufacturers/images/cosmo.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cosmo.png Binary files differ. diff --git a/setup-data/manufacturers/images/crystal.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/crystal.png Binary files differ. diff --git a/setup-data/manufacturers/images/cygnal.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cygnal.png Binary files differ. diff --git a/setup-data/manufacturers/images/cypres1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cypres1.png Binary files differ. diff --git a/setup-data/manufacturers/images/cypress.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cypress.png Binary files differ. diff --git a/setup-data/manufacturers/images/cyrix.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/cyrix.png Binary files differ. diff --git a/setup-data/manufacturers/images/daewoo.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/daewoo.png Binary files differ. diff --git a/setup-data/manufacturers/images/dallas1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/dallas1.png Binary files differ. diff --git a/setup-data/manufacturers/images/dallas2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/dallas2.png Binary files differ. diff --git a/setup-data/manufacturers/images/dallas3.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/dallas3.png Binary files differ. diff --git a/setup-data/manufacturers/images/davicom.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/davicom.png Binary files differ. diff --git a/setup-data/manufacturers/images/ddd.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ddd.png Binary files differ. diff --git a/setup-data/manufacturers/images/diamond.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/diamond.png Binary files differ. diff --git a/setup-data/manufacturers/images/diotec.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/diotec.png Binary files differ. diff --git a/setup-data/manufacturers/images/dtc1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/dtc1.png Binary files differ. diff --git a/setup-data/manufacturers/images/dtc2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/dtc2.png Binary files differ. diff --git a/setup-data/manufacturers/images/dvdo.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/dvdo.png Binary files differ. diff --git a/setup-data/manufacturers/images/edi.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/edi.png Binary files differ. diff --git a/setup-data/manufacturers/images/egg.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/egg.png Binary files differ. diff --git a/setup-data/manufacturers/images/elan.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/elan.png Binary files differ. diff --git a/setup-data/manufacturers/images/elantec.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/elantec.png Binary files differ. diff --git a/setup-data/manufacturers/images/elantec1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/elantec1.png Binary files differ. diff --git a/setup-data/manufacturers/images/elec_arrays.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/elec_arrays.png Binary files differ. diff --git a/setup-data/manufacturers/images/elite[1].png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/elite[1].png Binary files differ. diff --git a/setup-data/manufacturers/images/emmicro.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/emmicro.png Binary files differ. diff --git a/setup-data/manufacturers/images/enhmemsy.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/enhmemsy.png Binary files differ. diff --git a/setup-data/manufacturers/images/ensoniq.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ensoniq.png Binary files differ. diff --git a/setup-data/manufacturers/images/eon.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/eon.png Binary files differ. diff --git a/setup-data/manufacturers/images/epson1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/epson1.png Binary files differ. diff --git a/setup-data/manufacturers/images/epson2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/epson2.png Binary files differ. diff --git a/setup-data/manufacturers/images/ericsson.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ericsson.png Binary files differ. diff --git a/setup-data/manufacturers/images/ess.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ess.png Binary files differ. diff --git a/setup-data/manufacturers/images/etc.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/etc.png Binary files differ. diff --git a/setup-data/manufacturers/images/exar.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/exar.png Binary files differ. diff --git a/setup-data/manufacturers/images/excelsemi1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/excelsemi1.png Binary files differ. diff --git a/setup-data/manufacturers/images/excelsemi2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/excelsemi2.png Binary files differ. diff --git a/setup-data/manufacturers/images/exel.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/exel.png Binary files differ. diff --git a/setup-data/manufacturers/images/fairchil.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/fairchil.png Binary files differ. diff --git a/setup-data/manufacturers/images/freescale.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/freescale.png Binary files differ. diff --git a/setup-data/manufacturers/images/fujielec.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/fujielec.png Binary files differ. diff --git a/setup-data/manufacturers/images/fujitsu2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/fujitsu2.png Binary files differ. diff --git a/setup-data/manufacturers/images/galileo.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/galileo.png Binary files differ. diff --git a/setup-data/manufacturers/images/galvant.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/galvant.png Binary files differ. diff --git a/setup-data/manufacturers/images/ge.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ge.png Binary files differ. diff --git a/setup-data/manufacturers/images/gecples.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/gecples.png Binary files differ. diff --git a/setup-data/manufacturers/images/gennum.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/gennum.png Binary files differ. diff --git a/setup-data/manufacturers/images/gi.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/gi.png Binary files differ. diff --git a/setup-data/manufacturers/images/gi1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/gi1.png Binary files differ. diff --git a/setup-data/manufacturers/images/glink.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/glink.png Binary files differ. diff --git a/setup-data/manufacturers/images/goal1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/goal1.png Binary files differ. diff --git a/setup-data/manufacturers/images/goal2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/goal2.png Binary files differ. diff --git a/setup-data/manufacturers/images/goldstar1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/goldstar1.png Binary files differ. diff --git a/setup-data/manufacturers/images/goldstar2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/goldstar2.png Binary files differ. diff --git a/setup-data/manufacturers/images/gould.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/gould.png Binary files differ. diff --git a/setup-data/manufacturers/images/greenwich.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/greenwich.png Binary files differ. diff --git a/setup-data/manufacturers/images/gsemi.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/gsemi.png Binary files differ. diff --git a/setup-data/manufacturers/images/harris1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/harris1.png Binary files differ. diff --git a/setup-data/manufacturers/images/harris2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/harris2.png Binary files differ. diff --git a/setup-data/manufacturers/images/hfo.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/hfo.png Binary files differ. diff --git a/setup-data/manufacturers/images/hitachi.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/hitachi.png Binary files differ. diff --git a/setup-data/manufacturers/images/holtek.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/holtek.png Binary files differ. diff --git a/setup-data/manufacturers/images/hp.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/hp.png Binary files differ. diff --git a/setup-data/manufacturers/images/hualon.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/hualon.png Binary files differ. diff --git a/setup-data/manufacturers/images/hynix.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/hynix.png Binary files differ. diff --git a/setup-data/manufacturers/images/hyundai2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/hyundai2.png Binary files differ. diff --git a/setup-data/manufacturers/images/icd.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/icd.png Binary files differ. diff --git a/setup-data/manufacturers/images/icdesign.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/icdesign.png Binary files differ. diff --git a/setup-data/manufacturers/images/ichaus.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ichaus.png Binary files differ. diff --git a/setup-data/manufacturers/images/ichaus1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ichaus1.png Binary files differ. diff --git a/setup-data/manufacturers/images/ics.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ics.png Binary files differ. diff --git a/setup-data/manufacturers/images/icsi.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/icsi.png Binary files differ. diff --git a/setup-data/manufacturers/images/icube.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/icube.png Binary files differ. diff --git a/setup-data/manufacturers/images/icworks.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/icworks.png Binary files differ. diff --git a/setup-data/manufacturers/images/idt.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/idt.png Binary files differ. diff --git a/setup-data/manufacturers/images/idt1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/idt1.png Binary files differ. diff --git a/setup-data/manufacturers/images/igstech.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/igstech.png Binary files differ. diff --git a/setup-data/manufacturers/images/imp.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/imp.png Binary files differ. diff --git a/setup-data/manufacturers/images/impala.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/impala.png Binary files differ. diff --git a/setup-data/manufacturers/images/infineon.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/infineon.png Binary files differ. diff --git a/setup-data/manufacturers/images/inmos.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/inmos.png Binary files differ. diff --git a/setup-data/manufacturers/images/intel2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/intel2.png Binary files differ. diff --git a/setup-data/manufacturers/images/intresil4.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/intresil4.png Binary files differ. diff --git a/setup-data/manufacturers/images/intrsil1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/intrsil1.png Binary files differ. diff --git a/setup-data/manufacturers/images/intrsil2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/intrsil2.png Binary files differ. diff --git a/setup-data/manufacturers/images/intrsil3.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/intrsil3.png Binary files differ. diff --git a/setup-data/manufacturers/images/ir.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ir.png Binary files differ. diff --git a/setup-data/manufacturers/images/isd.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/isd.png Binary files differ. diff --git a/setup-data/manufacturers/images/issi.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/issi.png Binary files differ. diff --git a/setup-data/manufacturers/images/ite.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ite.png Binary files differ. diff --git a/setup-data/manufacturers/images/itex.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/itex.png Binary files differ. diff --git a/setup-data/manufacturers/images/itt.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/itt.png Binary files differ. diff --git a/setup-data/manufacturers/images/ixys.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ixys.png Binary files differ. diff --git a/setup-data/manufacturers/images/kec.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/kec.png Binary files differ. diff --git a/setup-data/manufacturers/images/kota.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/kota.png Binary files differ. diff --git a/setup-data/manufacturers/images/lattice1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lattice1.png Binary files differ. diff --git a/setup-data/manufacturers/images/lattice2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lattice2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lattice3.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lattice3.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lds.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lds.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lds1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lds1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/levone.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/levone.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lgs.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lgs.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lgs1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lgs1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/linear.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/linear.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/linfin.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/linfin.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/liteon.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/liteon.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lucent.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/lucent.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/macronix.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/macronix.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/marvell.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/marvell.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/matsush1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/matsush1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/matsushi.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/matsushi.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/maxim.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/maxim.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/me.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/me.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mediavi1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mediavi1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mediavi2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mediavi2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mhs.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mhs.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mhs2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mhs2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micrel1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micrel1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micrel2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micrel2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/microchp.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/microchp.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micron.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micron.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micronas.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micronas.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micronix.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/micronix.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/microsemi1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/microsemi1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/microsemi2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/microsemi2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/minicirc.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/minicirc.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mitel.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mitel.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mitsubis.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mitsubis.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mlinear.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mlinear.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mmi.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mmi.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mos.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mos.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mosaic.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mosaic.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/moselvit.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/moselvit.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mostek1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mostek1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mostek2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mostek2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mostek3.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mostek3.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mosys.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mosys.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/motorol1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/motorol1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/motorol2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/motorol2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mpd.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mpd.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/msystem.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/msystem.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/murata.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/murata.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/murata1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/murata1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mwave.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/mwave.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/myson.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/myson.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/nec1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/nec1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/nec2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/nec2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/nexflash.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/nexflash.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/njr.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/njr.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ns1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ns1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ns2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ns2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/nvidia.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/nvidia.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/oak.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/oak.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/oki.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/oki.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/oki1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/oki1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/opti.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/opti.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/orbit.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/orbit.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/oren.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/oren.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/perform.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/perform.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/pericom.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/pericom.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/phaslink.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/phaslink.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/philips.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/philips.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/plx.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/plx.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/pmc.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/pmc.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/pmi.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/pmi.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ptc.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ptc.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/pwrsmart.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/pwrsmart.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/qlogic.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/qlogic.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/qualcomm.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/qualcomm.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/quality.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/quality.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rabbit.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rabbit.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ramtron.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ramtron.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/raytheon.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/raytheon.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rca.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rca.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/realtek.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/realtek.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rectron.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rectron.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rendit.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rendit.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/renesas.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/renesas.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rockwell.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rockwell.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rohm.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/rohm.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/s3.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/s3.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sage.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sage.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/saifun.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/saifun.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sames.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sames.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/samsung.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/samsung.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sanken.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sanken.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sanken1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sanken1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sanyo.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sanyo.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sanyo1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sanyo1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/scenix.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/scenix.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sec.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sec.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sec1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sec1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/seeq.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/seeq.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/seikoi.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/seikoi.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/semelab.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/semelab.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/semtech.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/semtech.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sgs1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sgs1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sgs2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sgs2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sharp.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sharp.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/shindgen.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/shindgen.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siemens1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siemens1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siemens2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siemens2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sierra.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sierra.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sigmatel.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sigmatel.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/signetic.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/signetic.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siliconlabs.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siliconlabs.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siliconm.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siliconm.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/silicons.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/silicons.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siliconx.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/siliconx.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/silnans.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/silnans.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/simtek.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/simtek.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sipex.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sipex.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sis.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sis.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/smc1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/smc1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/smsc.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/smsc.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/smsc1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/smsc1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sony.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sony.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/space.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/space.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/spectek.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/spectek.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/spt.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/spt.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sss.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sss.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sst.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/sst.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/st.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/st.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/summit.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/summit.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/synergy.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/synergy.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/synertek.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/synertek.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/taiwsemi.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/taiwsemi.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/tdk.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/tdk.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/teccor.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/teccor.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/telcom.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/telcom.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/teledyne.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/teledyne.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/telefunk.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/telefunk.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/teltone.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/teltone.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/thomscsf.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/thomscsf.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ti.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ti.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ti1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ti1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/toko.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/toko.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/toshiba1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/toshiba1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/toshiba2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/toshiba2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/toshiba3.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/toshiba3.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/trident.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/trident.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/triquint.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/triquint.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/triscend.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/triscend.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/tseng.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/tseng.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/tundra.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/tundra.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/turbo_ic.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/turbo_ic.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ubicom.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/ubicom.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/umc.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/umc.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/unitrode.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/unitrode.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/usar.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/usar.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/usar1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/usar1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/utmc.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/utmc.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/utron.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/utron.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/v3.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/v3.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vadem.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vadem.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vanguard.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vanguard.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vantis.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vantis.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/via.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/via.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/virata.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/virata.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vishay.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vishay.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vistech.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vistech.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vitelic.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vitelic.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vlsi.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vlsi.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/volterra.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/volterra.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vtc.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/vtc.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/wafscale.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/wafscale.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/wdc1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/wdc1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/wdc2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/wdc2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/weitek.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/weitek.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/winbond.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/winbond.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/wolf.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/wolf.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/xemics.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/xemics.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/xicor.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/xicor.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/xicor1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/xicor1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/xilinx.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/xilinx.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/yamaha.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/yamaha.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zetex.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zetex.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zilog1.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zilog1.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zilog2.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zilog2.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zilog3.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zilog3.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zilog4.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zilog4.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zmda.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zmda.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zoran.png b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/iclogos/zoran.png Binary files differ. diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/manufacturers.yml b/src/PartKeepr/SetupBundle/Resources/setup-data/manufacturers/manufacturers.yml @@ -0,0 +1,916 @@ +'Integrated Circuit Designs': + iclogos: + - iclogos/acer.png +ACTEL: + iclogos: + - iclogos/actel.png +ALTINC: + iclogos: + - iclogos/advldev.png +Aeroflex: + iclogos: + - iclogos/aeroflex1.png + - iclogos/aeroflex2.png +'Agilent Technologies': + iclogos: + - iclogos/agilent.png +'AKM Semiconductor': + iclogos: + - iclogos/akm.png +'Alesis Semiconductor': + iclogos: + - iclogos/alesis.png +'ALi (Acer Laboratories Inc.)': + iclogos: + - iclogos/ali1.png + - iclogos/ali2.png +'Allayer Communications': + iclogos: + - iclogos/allayer.png +'Allegro Microsystems': + iclogos: + - iclogos/allegro.png +'Alliance Semiconductor': + iclogos: + - iclogos/alliance.png +'Alpha Industries': + iclogos: + - iclogos/alphaind.png +'Alpha Microelectronics': + iclogos: + - iclogos/alphamic.png + - iclogos/alpha.png +Altera: + iclogos: + - iclogos/altera.png +'Advanced Micro Devices (AMD)': + iclogos: + - iclogos/amd.png +'American Microsystems, Inc. (AMI)': + iclogos: + - iclogos/ami1.png + - iclogos/ami2.png +'Amic Technology': + iclogos: + - iclogos/amic.png +Amphus: + iclogos: + - iclogos/ampus.png +'Anachip Corp.': + iclogos: + - iclogos/anachip.png +ANADIGICs: + iclogos: + - iclogos/anadigic.png +'Analog Devices': + iclogos: + - iclogos/analog1.png + - iclogos/analog.png +'Analog Systems': + iclogos: + - iclogos/anasys.png +'Anchor Chips': + iclogos: + - iclogos/anchorch.png +'Apex Microtechnology': + iclogos: + - iclogos/apex1.png + - iclogos/apex.png +'ARK Logic': + iclogos: + - iclogos/ark.png +ASD: + iclogos: + - iclogos/asd.png +'Astec Semiconductor': + iclogos: + - iclogos/astec.png +'ATC (Analog Technologie)': + iclogos: + - iclogos/atc.png +ATecoM: + iclogos: + - iclogos/atecom.png +'ATI Technologies': + iclogos: + - iclogos/ati.png +Atmel: + iclogos: + - iclogos/atmel.png +'AT&T': + iclogos: + - iclogos/att.png +AudioCodes: + iclogos: + - iclogos/audiocod.png +'Aura Vision': + iclogos: + - iclogos/auravis.png +Aureal: + iclogos: + - iclogos/aureal.png +'Austin Semiconductor': + iclogos: + - iclogos/austin.png +'Avance Logic': + iclogos: + - iclogos/averlog.png +'Bel Fuse': + iclogos: + - iclogos/belfuse.png +'Benchmarq Microelectronics': + iclogos: + - iclogos/benchmrq.png +'BI Technologies': + iclogos: + - iclogos/bi.png +Bowmar/White: + iclogos: + - iclogos/bowmar_white.png +Brightflash: + iclogos: + - iclogos/bright.png +Broadcom: + iclogos: + - iclogos/broadcom.png +'Brooktree(now Rockwell)': + iclogos: + - iclogos/brooktre.png +'Burr Brown': + iclogos: + - iclogos/burrbrwn.png +'California Micro Devices': + iclogos: + - iclogos/calmicro.png +Calogic: + iclogos: + - iclogos/calogic.png +'Catalyst Semiconductor': + iclogos: + - iclogos/catalys1.png + - iclogos/catalyst.png +'Centon Electronics': + iclogos: + - iclogos/ccube.png +'Ceramate Technical': + iclogos: + - iclogos/ceramate1.png + - iclogos/ceramate2.png +'Cherry Semiconductor': + iclogos: + - iclogos/cherry.png +'Chipcon AS': + iclogos: + - iclogos/chipcon1.png + - iclogos/chipcon2.png +Chips: + iclogos: + - iclogos/chips.png +Chrontel: + iclogos: + - iclogos/chrontel.png +'Cirrus Logic': + iclogos: + - iclogos/cirrus.png +'ComCore Semiconductor': + iclogos: + - iclogos/comcore.png +Conexant: + iclogos: + - iclogos/conexant.png +'Cosmo Electronics': + iclogos: + - iclogos/cosmo.png +Chrystal: + iclogos: + - iclogos/crystal.png +Cygnal: + iclogos: + - iclogos/cygnal.png +'Cypress Semiconductor': + iclogos: + - iclogos/cypres1.png + - iclogos/cypress.png +'Cyrix Corporation': + iclogos: + - iclogos/cyrix.png +'Daewoo Electronics Semiconductor': + iclogos: + - iclogos/daewoo.png +'Dallas Semiconductor': + iclogos: + - iclogos/dallas1.png + - iclogos/dallas2.png + - iclogos/dallas3.png +'Davicom Semiconductor': + iclogos: + - iclogos/davicom.png +'Data Delay Devices': + iclogos: + - iclogos/ddd.png +'Diamond Technologies': + iclogos: + - iclogos/diamond.png +DIOTEC: + iclogos: + - iclogos/diotec.png +'DTC Data Technology': + iclogos: + - iclogos/dtc1.png + - iclogos/dtc2.png +DVDO: + iclogos: + - iclogos/dvdo.png +'EG&G': + iclogos: + - iclogos/egg.png +'Elan Microelectronics': + iclogos: + - iclogos/elan.png +ELANTEC: + iclogos: + - iclogos/elantec1.png + - iclogos/elantec.png +'Electronic Arrays': + iclogos: + - iclogos/elec_arrays.png +'Elite Flash Storage Technology Inc. (EFST)': + iclogos: + - iclogos/elite[1].png +'EM Microelectronik - Marin': + iclogos: + - iclogos/emmicro.png +'Enhanced Memory Systems': + iclogos: + - iclogos/enhmemsy.png +'Ensoniq Corp': + iclogos: + - iclogos/ensoniq.png +'EON Silicon Devices': + iclogos: + - iclogos/eon.png +Epson: + iclogos: + - iclogos/epson1.png + - iclogos/epson2.png +Ericsson: + iclogos: + - iclogos/ericsson.png +'ESS Technology': + iclogos: + - iclogos/ess.png +'Electronic Technology': + iclogos: + - iclogos/etc.png +EXAR: + iclogos: + - iclogos/exar.png +'Excel Semiconductor Inc.': + iclogos: + - iclogos/excelsemi1.png + - iclogos/excelsemi2.png + - iclogos/exel.png +Fairschild: + iclogos: + - iclogos/fairchil.png +'Freescale Semiconductor': + iclogos: + - iclogos/freescale.png +Fujitsu: + iclogos: + - iclogos/fujielec.png + - iclogos/fujitsu2.png +'Galileo Technology': + iclogos: + - iclogos/galileo.png +Galvantech: + iclogos: + - iclogos/galvant.png +'GEC Plessey': + iclogos: + - iclogos/gecples.png +Gennum: + iclogos: + - iclogos/gennum.png +'General Electric (Harris)': + iclogos: + - iclogos/ge.png +'General Instruments': + iclogos: + - iclogos/gi1.png + - iclogos/gi.png +'G-Link Technology': + iclogos: + - iclogos/glink.png +'Goal Semiconductor': + iclogos: + - iclogos/goal1.png + - iclogos/goal2.png +Goldstar: + iclogos: + - iclogos/goldstar1.png + - iclogos/goldstar2.png +Gould: + iclogos: + - iclogos/gould.png +'Greenwich Instruments': + iclogos: + - iclogos/greenwich.png +'General Semiconductor': + iclogos: + - iclogos/gsemi.png +'Harris Semiconductor': + iclogos: + - iclogos/harris1.png + - iclogos/harris2.png +VEB: + iclogos: + - iclogos/hfo.png +'Hitachi Semiconductor': + iclogos: + - iclogos/hitachi.png +Holtek: + iclogos: + - iclogos/holtek.png +'Hewlett Packard': + iclogos: + - iclogos/hp.png +Hualon: + iclogos: + - iclogos/hualon.png +'Hynix Semiconductor': + iclogos: + - iclogos/hynix.png +Hyundai: + iclogos: + - iclogos/hyundai2.png +'IC Design': + iclogos: + - iclogos/icdesign.png +'Integrated Circuit Systems (ICS)': + iclogos: + - iclogos/icd.png + - iclogos/ics.png +'IC - Haus': + iclogos: + - iclogos/ichaus1.png + - iclogos/ichaus.png +'ICSI (Integrated Circuit Solution Inc.)': + iclogos: + - iclogos/icsi.png +I-Cube: + iclogos: + - iclogos/icube.png +'IC Works': + iclogos: + - iclogos/icworks.png +'Integrated Device Technology (IDT)': + iclogos: + - iclogos/idt1.png + - iclogos/idt.png +'IGS Technologies': + iclogos: + - iclogos/igstech.png +'IMPALA Linear': + iclogos: + - iclogos/impala.png +IMP: + iclogos: + - iclogos/imp.png +Infineon: + iclogos: + - iclogos/infineon.png +INMOS: + iclogos: + - iclogos/inmos.png +Intel: + iclogos: + - iclogos/intel2.png +Intersil: + iclogos: + - iclogos/intresil4.png + - iclogos/intrsil1.png + - iclogos/intrsil2.png + - iclogos/intrsil3.png +'International Rectifier': + iclogos: + - iclogos/ir.png +'Information Storage Devices': + iclogos: + - iclogos/isd.png +'ISSI (Integrated Silicon Solution, Inc.)': + iclogos: + - iclogos/issi.png +'Integrated Technology Express': + iclogos: + - iclogos/ite.png +'ITT Semiconductor (Micronas Intermetall)': + iclogos: + - iclogos/itt.png +IXYS: + iclogos: + - iclogos/ixys.png +'Korea Electronics (KEC)': + iclogos: + - iclogos/kec.png +'Kota Microcircuits': + iclogos: + - iclogos/kota.png +'Lattice Semiconductor Corp.': + iclogos: + - iclogos/lattice1.png + - iclogos/lattice2.png + - iclogos/lattice3.png +'Lansdale Semiconductor': + iclogos: + - iclogos/lds1.png + - iclogos/lds.png +'Level One Communications': + iclogos: + - iclogos/levone.png +'LG Semicon (Lucky Goldstar Electronic Co.)': + iclogos: + - iclogos/lgs1.png + - iclogos/lgs.png +'Linear Technology': + iclogos: + - iclogos/linear.png +'Linfinity Microelectronics': + iclogos: + - iclogos/linfin.png +Lite-On: + iclogos: + - iclogos/liteon.png +'Lucent Technologies (AT&T Microelectronics)': + iclogos: + - iclogos/lucent.png +'Macronix International': + iclogos: + - iclogos/macronix.png +'Marvell Semiconductor': + iclogos: + - iclogos/marvell.png +'Matsushita Panasonic': + iclogos: + - iclogos/matsush1.png + - iclogos/matsushi.png +'Maxim Dallas': + iclogos: + - iclogos/maxim.png +'Media Vision': + iclogos: + - iclogos/mediavi1.png + - iclogos/mediavi2.png +'Microchip (Arizona Michrochip Technology)': + iclogos: + - iclogos/me.png + - iclogos/microchp.png +'Matra MHS': + iclogos: + - iclogos/mhs2.png + - iclogos/mhs.png +'Micrel Semiconductor': + iclogos: + - iclogos/micrel1.png + - iclogos/micrel2.png +Micronas: + iclogos: + - iclogos/micronas.png +'Micronix Integrated Systems': + iclogos: + - iclogos/micronix.png +'Micron Technology, Inc.': + iclogos: + - iclogos/micron.png +Microsemi: + iclogos: + - iclogos/microsemi1.png + - iclogos/microsemi2.png +Mini-Circuits: + iclogos: + - iclogos/minicirc.png +'Mitel Semiconductor': + iclogos: + - iclogos/mitel.png +'Mitsubishi Semiconductor': + iclogos: + - iclogos/mitsubis.png +'Micro Linear': + iclogos: + - iclogos/mlinear.png +'MMI (Monolithic Memories, Inc.)': + iclogos: + - iclogos/mmi.png +'Mosaic Semiconductor': + iclogos: + - iclogos/mosaic.png +'Mosel Vitelic': + iclogos: + - iclogos/moselvit.png +'MOS Technologies': + iclogos: + - iclogos/mos.png +Mostek: + iclogos: + - iclogos/mostek1.png + - iclogos/mostek2.png + - iclogos/mostek3.png +MoSys: + iclogos: + - iclogos/mosys.png +Motorola: + iclogos: + - iclogos/motorol1.png + - iclogos/motorol2.png +Microtune: + iclogos: + - iclogos/mpd.png +M-Systems: + iclogos: + - iclogos/msystem.png +'Murata Manufacturing': + iclogos: + - iclogos/murata1.png + - iclogos/murata.png +'MWave (IBM)': + iclogos: + - iclogos/mwave.png +'Myson Technology': + iclogos: + - iclogos/myson.png +'NEC Electronics': + iclogos: + - iclogos/nec1.png + - iclogos/nec2.png +'NexFlash Technologies': + iclogos: + - iclogos/nexflash.png +'New Japan Radio': + iclogos: + - iclogos/njr.png +'National Semiconductor': + iclogos: + - iclogos/ns1.png + - iclogos/ns2.png +'NVidia Corporation': + iclogos: + - iclogos/nvidia.png +'Oak Technology': + iclogos: + - iclogos/oak.png +'Oki Semiconductor': + iclogos: + - iclogos/oki1.png + - iclogos/oki.png +Opti: + iclogos: + - iclogos/opti.png +'Orbit Semiconductor': + iclogos: + - iclogos/orbit.png +'Oren Semiconductor': + iclogos: + - iclogos/oren.png +'Performance Semiconductor': + iclogos: + - iclogos/perform.png +'Pericom Semiconductor': + iclogos: + - iclogos/pericom.png +'PhaseLink Laboratories': + iclogos: + - iclogos/phaslink.png +'Philips Semiconductor': + iclogos: + - iclogos/philips.png +'PLX Technology': + iclogos: + - iclogos/plx.png +'PMC- Sierra': + iclogos: + - iclogos/pmc.png +'Precision Monolithics': + iclogos: + - iclogos/pmi.png +'Princeton Technology': + iclogos: + - iclogos/ptc.png +PowerSmart: + iclogos: + - iclogos/pwrsmart.png +QuickLogic: + iclogos: + - iclogos/qlogic.png +Qlogic: + iclogos: + - iclogos/qualcomm.png +'Quality Semiconductor': + iclogos: + - iclogos/quality.png +'Rabbit Semiconductor': + iclogos: + - iclogos/rabbit.png +'Ramtron International Co.': + iclogos: + - iclogos/ramtron.png +'Raytheon Semiconductor': + iclogos: + - iclogos/raytheon.png +'RCA Solid State': + iclogos: + - iclogos/rca.png +'Realtek Semiconductor': + iclogos: + - iclogos/realtek.png +Rectron: + iclogos: + - iclogos/rectron.png +Rendition: + iclogos: + - iclogos/rendit.png +'Renesas Technology': + iclogos: + - iclogos/renesas.png +Rockwell: + iclogos: + - iclogos/rockwell.png +'Rohm Corp.': + iclogos: + - iclogos/rohm.png +S3: + iclogos: + - iclogos/s3.png +Sage: + iclogos: + - iclogos/sage.png +'Saifun Semiconductors Ltd.': + iclogos: + - iclogos/saifun.png +Sames: + iclogos: + - iclogos/sames.png +Samsung: + iclogos: + - iclogos/samsung.png +Sanken: + iclogos: + - iclogos/sanken1.png + - iclogos/sanken.png +Sanyo: + iclogos: + - iclogos/sanyo1.png + - iclogos/sanyo.png +Scenix: + iclogos: + - iclogos/scenix.png +'Samsung Electronics': + iclogos: + - iclogos/sec1.png + - iclogos/sec.png +'SEEQ Technology': + iclogos: + - iclogos/seeq.png +'Seiko Instruments': + iclogos: + - iclogos/seikoi.png + - iclogos/semelab.png +Semtech: + iclogos: + - iclogos/semtech.png +SGS-Ates: + iclogos: + - iclogos/sgs1.png +'SGS-Thomson Microelectonics ST-M)': + iclogos: + - iclogos/sgs2.png +'Sharp Microelectronics (USA)': + iclogos: + - iclogos/sharp.png +Shindengen: + iclogos: + - iclogos/shindgen.png +'Siemens Microelectronics, Inc.': + iclogos: + - iclogos/siemens1.png + - iclogos/siemens2.png +Sierra: + iclogos: + - iclogos/sierra.png +'Sigma Tel': + iclogos: + - iclogos/sigmatel.png +Signetics: + iclogos: + - iclogos/signetic.png +'Silicon Laboratories': + iclogos: + - iclogos/siliconlabs.png +'Silicon Magic': + iclogos: + - iclogos/siliconm.png +'Simtec Corp.': + iclogos: + - iclogos/silicons.png + - iclogos/simtek.png +Siliconix: + iclogos: + - iclogos/siliconx.png +Siliconians: + iclogos: + - iclogos/silnans.png +Sipex: + iclogos: + - iclogos/sipex.png +'Silicon Integrated Systems': + iclogos: + - iclogos/sis.png +SMC: + iclogos: + - iclogos/smc1.png +'Standard Microsystems': + iclogos: + - iclogos/smsc1.png + - iclogos/smsc.png +'Sony Semiconductor': + iclogos: + - iclogos/sony.png +'Space Electronics': + iclogos: + - iclogos/space.png +Spectek: + iclogos: + - iclogos/spectek.png +'Signal Processing Technologies': + iclogos: + - iclogos/spt.png +'Solid State Scientific': + iclogos: + - iclogos/sss.png +'Silicon Storage Technology (SST)': + iclogos: + - iclogos/sst.png +STMicroelectronics: + iclogos: + - iclogos/st.png +'SUMMIT Microelectronics': + iclogos: + - iclogos/summit.png +'Synergy Semiconductor': + iclogos: + - iclogos/synergy.png +Synertek: + iclogos: + - iclogos/synertek.png +'Taiwan Semiconductor': + iclogos: + - iclogos/taiwsemi.png +'TDK Semiconductor': + iclogos: + - iclogos/tdk.png +'Teccor Electronics': + iclogos: + - iclogos/teccor.png +'TelCom Semiconductor': + iclogos: + - iclogos/telcom.png +Teledyne: + iclogos: + - iclogos/teledyne.png +Telefunken: + iclogos: + - iclogos/telefunk.png +Teltone: + iclogos: + - iclogos/teltone.png +Thomson-CSF: + iclogos: + - iclogos/thomscsf.png +'Texas Instruments': + iclogos: + - iclogos/ti1.png + - iclogos/ti.png +'Toko Amerika': + iclogos: + - iclogos/toko.png +'Toshiba (US)': + iclogos: + - iclogos/toshiba1.png + - iclogos/toshiba2.png + - iclogos/toshiba3.png +Trident: + iclogos: + - iclogos/trident.png +'TriQuint Semiconductor': + iclogos: + - iclogos/triquint.png +Triscend: + iclogos: + - iclogos/triscend.png +'Tseng Labs': + iclogos: + - iclogos/tseng.png +Tundra: + iclogos: + - iclogos/tundra.png +'Turbo IC': + iclogos: + - iclogos/turbo_ic.png +Ubicom: + iclogos: + - iclogos/ubicom.png +'United Microelectronics Corp (UMC)': + iclogos: + - iclogos/umc.png +Unitrode: + iclogos: + - iclogos/unitrode.png +'USAR Systems': + iclogos: + - iclogos/usar1.png + - iclogos/usar.png +'United Technologies Microelectronics Center (UTMC)': + iclogos: + - iclogos/utmc.png +Utron: + iclogos: + - iclogos/utron.png +'V3 Semiconductor': + iclogos: + - iclogos/v3.png +Vadem: + iclogos: + - iclogos/vadem.png +'Vanguard International Semiconductor': + iclogos: + - iclogos/vanguard.png +Vantis: + iclogos: + - iclogos/vantis.png +'Via Technologies': + iclogos: + - iclogos/via.png +Virata: + iclogos: + - iclogos/virata.png +Vishay: + iclogos: + - iclogos/vishay.png +'Vision Tech': + iclogos: + - iclogos/vistech.png +Vitelic: + iclogos: + - iclogos/vitelic.png +'VLSI Technology': + iclogos: + - iclogos/vlsi.png +Volterra: + iclogos: + - iclogos/volterra.png +VTC: + iclogos: + - iclogos/vtc.png +'Waferscale Integration (WSI)': + iclogos: + - iclogos/wafscale.png +'Western Digital': + iclogos: + - iclogos/wdc1.png + - iclogos/wdc2.png +Weitek: + iclogos: + - iclogos/weitek.png +Winbond: + iclogos: + - iclogos/winbond.png +'Wofson Microelectronics': + iclogos: + - iclogos/wolf.png +Xwmics: + iclogos: + - iclogos/xemics.png +Xicor: + iclogos: + - iclogos/xicor1.png + - iclogos/xicor.png +Xilinx: + iclogos: + - iclogos/xilinx.png +Yamaha: + iclogos: + - iclogos/yamaha.png +'Zetex Semiconductors': + iclogos: + - iclogos/zetex.png +Zilog: + iclogos: + - iclogos/zilog1.png + - iclogos/zilog2.png + - iclogos/zilog3.png + - iclogos/zilog4.png +'ZMD (Zentrum Mikroelektronik Dresden)': + iclogos: + - iclogos/zmda.png +Zoran: + iclogos: + - iclogos/zoran.png diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/siprefixes.yml b/src/PartKeepr/SetupBundle/Resources/setup-data/siprefixes.yml @@ -0,0 +1,116 @@ +yotta: + symbol: Y + exponent: 24 + base: 10 +zetta: + symbol: Z + exponent: 21 + base: 10 +exa: + symbol: E + exponent: 18 + base: 10 +peta: + symbol: P + exponent: 15 + base: 10 +tera: + symbol: T + exponent: 12 + base: 10 +giga: + symbol: G + exponent: 9 + base: 10 +mega: + symbol: M + exponent: 6 + base: 10 +kilo: + symbol: k + exponent: 3 + base: 10 +hecto: + symbol: h + exponent: 2 + base: 10 +deca: + symbol: da + exponent: 1 + base: 10 +"-": + symbol: "" + exponent: 0 + base: 10 +deci: + symbol: d + exponent: -1 + base: 10 +centi: + symbol: c + exponent: -2 + base: 10 +milli: + symbol: m + exponent: -3 + base: 10 +micro: + symbol: ฮผ + exponent: -6 + base: 10 +nano: + symbol: n + exponent: -9 + base: 10 +pico: + symbol: p + exponent: -12 + base: 10 +femto: + symbol: f + exponent: -15 + base: 10 +atto: + symbol: a + exponent: -18 + base: 10 +zepto: + symbol: z + exponent: -21 + base: 10 +yocto: + symbol: y + exponent: -24 + base: 10 +kibi: + symbol: Ki + exponent: 1 + base: 1024 +mebi: + symbol: Mi + exponent: 2 + base: 1024 +gibi: + symbol: Gi + exponent: 3 + base: 1024 +tebi: + symbol: Ti + exponent: 4 + base: 1024 +pebi: + symbol: Pi + exponent: 5 + base: 1024 +exbi: + symbol: Ei + exponent: 6 + base: 1024 +zebi: + symbol: Zi + exponent: 7 + base: 1024 +yobi: + symbol: Yi + exponent: 8 + base: 1024 diff --git a/src/PartKeepr/SetupBundle/Resources/setup-data/units.yml b/src/PartKeepr/SetupBundle/Resources/setup-data/units.yml @@ -0,0 +1,160 @@ +Meter: + symbol: m + prefixes: + - nano + - milli + - micro + - centi + - deci + - kilo + - "-" +Gram: + symbol: g + prefixes: + - kilo + - milli + - "-" +Second: + symbol: s + prefixes: + - milli + - "-" +Kelvin: + symbol: K + prefixes: + - "-" +Mol: + symbol: mol + prefixes: + - "-" +Candela: + symbol: cd + prefixes: + - milli +Ampere: + symbol: A + prefixes: + - kilo + - milli + - "-" + - milli + - nano + - pico +Ohm: + symbol: ฮฉ + prefixes: + - kilo + - milli + - micro + - "-" + - giga + - tera +Volt: + symbol: V + prefixes: + - milli + - "-" + - kilo +Hertz: + symbol: Hz + prefixes: + - kilo + - milli + - "-" + - giga + - tera +Newton: + symbol: N + prefixes: + - kilo + - "-" +Pascal: + symbol: Pa + prefixes: + - milli + - "-" + - kilo +Joule: + symbol: J + prefixes: + - milli + - "-" + - kilo + - micro +Watt: + symbol: W + prefixes: + - kilo + - milli + - "-" + - giga + - mega + - micro +Coulomb: + symbol: C + prefixes: + - kilo + - "-" +Farad: + symbol: F + prefixes: + - milli + - pico + - "-" + - nano + - micro +Siemens: + symbol: S + prefixes: + - milli + - "-" +Weber: + symbol: Wb + prefixes: + - "-" +Tesla: + symbol: T + prefixes: + - "-" +Henry: + symbol: H + prefixes: + - milli + - micro + - "-" +Celsius: + symbol: ยฐC + prefixes: + - "-" +Lumen: + symbol: lm + prefixes: + - "-" +Lux: + symbol: lx + prefixes: + - "-" +Becquerel: + symbol: Bq + prefixes: + - "-" +Gray: + symbol: Gy + prefixes: + - "-" +Sievert: + symbol: Sv + prefixes: + - milli + - "-" + - micro +Katal: + symbol: kat + prefixes: + - "-" +Ampere Hour: + symbol: Ah + prefixes: + - milli + - "-" + - kilo diff --git a/src/PartKeepr/SetupBundle/Resources/views/authkey.php.twig b/src/PartKeepr/SetupBundle/Resources/views/authkey.php.twig @@ -0,0 +1,6 @@ +<?php +/** + * Your auth key is: {{ authkey }} + * + * Copy and paste the auth key in order to proceed with setup + */ diff --git a/src/PartKeepr/SetupBundle/Resources/views/setup.html.twig b/src/PartKeepr/SetupBundle/Resources/views/setup.html.twig @@ -1 +1,42 @@ -asd +parameters: + database_driver: {{ database.driver }} + database_host: {{ database.host }} + database_port: {{ database.port }} + database_name: {{ database.name }} + database_user: {{ database.user }} + database_password: {{ database.password }} + # You should uncomment this if you want use pdo_sqlite + # database_path: "%kernel.root_dir%/data.db3" + + mailer_transport: {{ mailer.transport }} + mailer_host: {{ mailer.host }} + mailer_port: {{ mailer.port }} + mailer_encryption: {{ mailer.encryption }} + mailer_user: {{ mailer.username }} + mailer_password: {{ mailer.password }} + mailer_auth_mode: {{ mailer.auth_mode }} + + locale: en + + # A secret key that's used to generate certain security-related tokens + secret: {{ secret }} + + fr3d_ldap.enabled: {{ ldap.enabled }} + fr3d_ldap.driver.host: {{ ldap.host }} + fr3d_ldap.driver.port: {{ ldap.port }} + fr3d_ldap.driver.username: {{ ldap.username }} + fr3d_ldap.driver.password: {{ ldap.password }} + fr3d_ldap.driver.bindRequiresDn: {{ ldap.bindrequiresdn }} + fr3d_ldap.driver.baseDn: {{ ldap.basedn }} + fr3d_ldap.driver.accountFilterFormat: ~ # Optional. sprintf format %s will be the username + fr3d_ldap.driver.optReferrals: ~ # Optional. + fr3d_ldap.driver.useSsl: {{ ldap.ssl }} + fr3d_ldap.driver.useStartTls: {{ ldap.starttls }} + fr3d_ldap.driver.accountCanonicalForm: ~ # Optional. ACCTNAME_FORM_BACKSLASH this is only needed if your users have to login with something like HOST\User + fr3d_ldap.driver.accountDomainName: ~ + fr3d_ldap.driver.accountDomainNameShort: ~ + fr3d_ldap.user.baseDn: {{ ldap.user_basedn }} + fr3d_ldap.user.filter: {{ ldap.user_filter }} + fr3d_ldap.user.attribute.username: {{ ldap.user_username }} + fr3d_ldap.user.attribute.name: {{ ldap.user_name }} + fr3d_ldap.user.attribute.email: {{ ldap.user_email }} diff --git a/src/PartKeepr/SiPrefixBundle/Resources/data/siprefixes.yaml b/src/PartKeepr/SiPrefixBundle/Resources/data/siprefixes.yaml @@ -1,63 +0,0 @@ -yotta: - symbol: Y - exponent: 24 -zetta: - symbol: Z - exponent: 21 -exa: - symbol: E - exponent: 18 -peta: - symbol: P - exponent: 15 -tera: - symbol: T - exponent: 12 -giga: - symbol: G - exponent: 9 -mega: - symbol: M - exponent: 6 -kilo: - symbol: k - exponent: 3 -hecto: - symbol: h - exponent: 2 -deca: - symbol: da - exponent: 1 -"-": - symbol: "" - exponent: 0 -deci: - symbol: d - exponent: -1 -centi: - symbol: c - exponent: -2 -milli: - symbol: m - exponent: -3 -micro: - symbol: ฮผ - exponent: -6 -nano: - symbol: n - exponent: -9 -pico: - symbol: p - exponent: -12 -femto: - symbol: f - exponent: -15 -atto: - symbol: a - exponent: -18 -zepto: - symbol: z - exponent: -21 -yocto: - symbol: y - exponent: -24- \ No newline at end of file diff --git a/src/backend/PartKeepr/PartKeepr.php b/src/backend/PartKeepr/PartKeepr.php @@ -1,7 +1,6 @@ <?php namespace PartKeepr; -use Doctrine\ORM\EntityManager; use PartKeepr\Util\Configuration as PartKeeprConfiguration; @@ -83,34 +82,12 @@ class PartKeepr } - /** - * Returns the EntityManager. Shortcut for getEntityManager(). - * - * @return EntityManager The EntityManager - */ - public static function getEM() - { - return self::getEntityManager(); - } - public static function getRootDirectory() { return dirname(dirname(dirname(__DIR__))); } /** - * Returns the EntityManager. - * - * @return EntityManager The EntityManager - */ - public static function getEntityManager() - { - $container = \AppKernel::getMigrationContainer(); - - return $container->get('doctrine')->getManager(); - } - - /** * Returns the class metadata for all entity classes * * @return array an array of class metadata objects diff --git a/web/setup.php b/web/setup.php @@ -0,0 +1,15 @@ +<?php + +use Symfony\Component\HttpFoundation\Request; + +$loader = require_once __DIR__.'/../app/bootstrap.php.cache'; + +require_once __DIR__.'/../app/SetupAppKernel.php'; +require_once __DIR__.'/../app/AppKernel.php'; + +$kernel = new SetupAppKernel('setup', false); +$kernel->loadClassCache(); +$request = Request::createFromGlobals(); +$response = $kernel->handle($request); +$response->send(); +$kernel->terminate($request, $response); diff --git a/web/setup/css/BreadCrumbWizard.css b/web/setup/css/BreadCrumbWizard.css diff --git a/web/setup/index.html b/web/setup/index.html @@ -1,3 +1,4 @@ +<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> @@ -7,6 +8,7 @@ <link href='http://fonts.googleapis.com/css?family=Ubuntu:400,700italic' rel='stylesheet' type='text/css'> <link rel="stylesheet" href="../js/packages/extjs6/build/classic/theme-classic/resources/theme-classic-all.css"/> <link rel="stylesheet" href="../atelierspierrot/famfamfam-silk-sprite/silk-icons-sprite.css"/> + <link rel="stylesheet" href="css/BreadCrumbWizard.css"/> <script type="text/javascript" src="../js/packages/extjs6/build/ext-all-debug.js"></script> @@ -21,36 +23,32 @@ <script type="text/javascript" src="js/Cards/AbstractTestCard.js"></script> <script type="text/javascript" src="js/Cards/PrerequisitesTestCard.js"></script> + <script type="text/javascript" src="js/Cards/AdminUserCard.js"></script> <script type="text/javascript" src="js/Cards/DatabaseParametersCard.js"></script> <script type="text/javascript" src="js/Cards/DatabaseParametersCard.MySQL.js"></script> <script type="text/javascript" src="js/Cards/DatabaseParametersCard.PostgreSQL.js"></script> <script type="text/javascript" src="js/Cards/DatabaseConnectivityTestCard.js"></script> <script type="text/javascript" src="js/Cards/DatabaseSetupCard.js"></script> - <script type="text/javascript" src="js/Cards/ConfigFileModeCard.js"></script> - <script type="text/javascript" src="js/Cards/ConfigFileActionCard.js"></script> - <script type="text/javascript" src="js/Cards/ConfigSaveCard.js"></script> - <script type="text/javascript" src="js/Cards/ConfigDisplayCard.js"></script> + <script type="text/javascript" src="js/Cards/AuthKeyCard.js"></script> <script type="text/javascript" src="js/SetupTests/AbstractTest.js"></script> + <script type="text/javascript" src="js/SetupTests/GenerateAuthKey.js"></script> <script type="text/javascript" src="js/SetupTests/PHPTest.js"></script> <script type="text/javascript" src="js/SetupTests/PHPPrerequisitesTest.js"></script> - <script type="text/javascript" src="js/SetupTests/TwigTest.js"></script> <script type="text/javascript" src="js/SetupTests/DatabaseConnectivityTest.js"></script> <script type="text/javascript" src="js/SetupTests/PHPSettingsTest.js"></script> - <script type="text/javascript" src="js/SetupTests/FilesystemPermissionTest.js"></script> - <script type="text/javascript" src="js/SetupTests/ConfigSaveAction.js"></script> + <script type="text/javascript" src="js/SetupSteps/ConfigSetup.js"></script> + <script type="text/javascript" src="js/SetupSteps/WarmupCacheSetup.js"></script> <script type="text/javascript" src="js/SetupSteps/SchemaSetup.js"></script> + <script type="text/javascript" src="js/SetupSteps/SchemaMigration.js"></script> <script type="text/javascript" src="js/SetupSteps/AdminUserSetup.js"></script> <script type="text/javascript" src="js/SetupSteps/ManufacturerSetup.js"></script> - <script type="text/javascript" src="js/SetupSteps/PartCategorySetup.js"></script> <script type="text/javascript" src="js/SetupSteps/PartUnitSetup.js"></script> <script type="text/javascript" src="js/SetupSteps/SiPrefixSetup.js"></script> <script type="text/javascript" src="js/SetupSteps/UnitSetup.js"></script> <script type="text/javascript" src="js/SetupSteps/FootprintSetup.js"></script> - <script type="text/javascript" src="js/SetupSteps/ConfigFileSetup.js"></script> - <script type="text/javascript" src="js/SetupSteps/MiscSetup.js"></script> <script type="text/javascript" src="js/PartKeeprSetup.js"></script> </head> diff --git a/web/setup/js/Cards/AbstractTestCard.js b/web/setup/js/Cards/AbstractTestCard.js @@ -34,12 +34,12 @@ Ext.define('PartKeeprSetup.AbstractTestCard', { /** * Various Style Settings */ - showTitle: true, - titleCls: '', - titleStyle: 'font-size: 2.5em;line-height: 30px;', - cls: 'x-partkeepr-setup-basecard', autoScroll: true, + rerunTestText: "Re-run checks", + + margin: 20, + layout: { type: 'vbox', align: 'stretch' @@ -64,11 +64,11 @@ Ext.define('PartKeeprSetup.AbstractTestCard', { this.items = [ { - border: false, - height: 20, - bodyStyle: 'background:none;padding-bottom: 10px;', - html: this.cardMessage - }, + border: false, + bodyStyle: 'background:none;padding-bottom: 10px;', + height: 20, + html: this.cardMessage + }, this.testResultPanel, this.retestButton ]; diff --git a/web/setup/js/Cards/AdminUserCard.js b/web/setup/js/Cards/AdminUserCard.js @@ -0,0 +1,99 @@ +/** + * This card displays the admin user parameters + */ +Ext.define('PartKeeprSetup.AdminUserCard', { + extend: 'Ext.form.Panel', + + /** + * Various Style Settings + */ + margin: 20, + border: false, + bodyStyle: 'background: none;', + + autoScroll: true, + breadCrumbTitle: 'Admin User', + + defaults: { + labelWidth: 120 + }, + + /** + * Inits the component + */ + initComponent: function () + { + this.username = Ext.create("Ext.form.field.Text", { + fieldLabel: 'Username', + labelWidth: this.defaults.labelWidth, + allowBlank: false, + value: PartKeeprSetup.getApplication().getSetupConfig().adminuser.username + }); + + this.username.on("change", this.onUpdateParameters, this); + + this.password = Ext.create("Ext.form.field.Text", { + fieldLabel: 'Password', + inputType: "password", + allowBlank: false, + labelWidth: this.defaults.labelWidth, + value: PartKeeprSetup.getApplication().getSetupConfig().adminuser.password + + }); + + this.password.on("change", this.onUpdateParameters, this); + + this.email = Ext.create("Ext.form.field.Text", { + fieldLabel: 'E-Mail', + labelWidth: this.defaults.labelWidth, + vtype: 'email', + allowBlank: false, + value: PartKeeprSetup.getApplication().getSetupConfig().adminuser.email + + }); + + this.email.on("change", this.onUpdateParameters, this); + + this.items = [ + { + border: false, + bodyStyle: 'background:none;padding-bottom: 10px;', + html: 'Please enter the user which will become the administrator:' + }, + this.username, + this.password, + this.email + ]; + + this.callParent(); + this.on("activate", this.onActivate, this); + }, + /** + * Gets called when the card is activated + */ + onActivate: function () + { + // Disable the "next" button, this needs to get enabled by the database cards + Ext.ComponentQuery.query('#nextBtn')[0].disable(); + this.onUpdateParameters(); + }, + onUpdateParameters: function () + { + if (this.username.isValid() && this.password.isValid() && this.email.isValid()) { + var config = PartKeeprSetup.getApplication().getSetupConfig(); + + Ext.apply(config, { + adminuser: { + username: this.username.getValue(), + password: this.password.getValue(), + email: this.email.getValue() + } + }); + + Ext.ComponentQuery.query('#nextBtn')[0].enable(); + } else { + Ext.ComponentQuery.query('#nextBtn')[0].disable(); + } + + } +}); diff --git a/web/setup/js/Cards/AuthKeyCard.js b/web/setup/js/Cards/AuthKeyCard.js @@ -0,0 +1,71 @@ +/** + * This card displays the input field for the authentication key. + */ +Ext.define('PartKeeprSetup.AuthKeyCard', { + extend: 'Ext.form.Panel', + + /** + * Various Style Settings + */ + margin: 20, + autoScroll: true, + breadCrumbTitle: 'Authentication Key', + + defaults: { + labelWidth: 120 + }, + border: false, + bodyStyle: 'background: none;', + + /** + * Inits the component + */ + initComponent: function () + { + this.authKey = Ext.create("Ext.form.field.Text", { + fieldLabel: 'Authentication Key', + labelWidth: this.defaults.labelWidth, + allowBlank: false, + minLength: 32, + maxLength: 32, + minLengthText: "The authentication key must be 32 characters", + maxLengthText: "The authentication key must be 32 characters", + value: PartKeeprSetup.getApplication().getSetupConfig().authKey + }); + + this.authKey.on("change", this.onUpdateParameters, this); + + this.items = [ + { + border: false, + bodyStyle: 'background:none;padding-bottom: 10px;', + html: 'In order to protect unauthorized users to re-run setup, please open the file <strong>app/authkey.php</strong> and paste the authentication key in the field below:' + }, + this.authKey + ]; + + this.callParent(); + this.on("activate", this.onActivate, this); + }, + /** + * Gets called when the card is activated + */ + onActivate: function () + { + Ext.ComponentQuery.query('#nextBtn')[0].disable(); + this.onUpdateParameters(); + }, + onUpdateParameters: function () + { + if (this.authKey.isValid()) { + var config = PartKeeprSetup.getApplication().getSetupConfig(); + + Ext.apply(config, {authKey: this.authKey.getValue()}); + + Ext.ComponentQuery.query('#nextBtn')[0].enable(); + } else { + Ext.ComponentQuery.query('#nextBtn')[0].disable(); + } + + } +}); diff --git a/web/setup/js/Cards/ConfigDisplayCard.js b/web/setup/js/Cards/ConfigDisplayCard.js @@ -1,77 +0,0 @@ -/** - * This card tests the database connectivity for the MySQL database. - * - * Basically this submits all connection settings to a special PHP script, - * which then attempts to establish the database connection. - */ -Ext.define('PartKeeprSetup.ConfigDisplayCard', { - extend: 'Ext.panel.Panel', - - /** - * Misc style settings - */ - border: false, - bodyStyle: 'background: none;', - layout: { - type: 'vbox', - align : 'stretch', - pack : 'start' - }, - - /** - * Inits the component - */ - initComponent: function () { - - /** - * Creates a text area which displays the configuration file - */ - this.textArea = new Ext.form.field.TextArea({ - fieldStyle: "font-family: monospace;", - readOnly: true, - flex: 1, - anchor: '100%' - }); - - this.items = [ - { - xtype: 'displayfield', - value: "Copy and paste the contents into the config.php file, which needs to be placed " + - "in your PartKeepr's root directory." - }, - this.textArea - ]; - - this.callParent(); - - this.on("activateCard", this.onActivate, this); - }, - /** - * When the card is activated, automatically invoke all tests. - */ - onActivate: function () { - var params = Ext.getCmp("database-parameters-card").dbparams; - params.mode = "display"; - params.step = "configfile"; - - Ext.Ajax.request({ - url: "setup.php", - success: this.onConfigFileRetrieved, - scope: this, - params: params, - timeout: 120000 - }); - }, - /** - * Fills the text area with the config file. - * - * @param data The data as received from the AJAX call - */ - onConfigFileRetrieved: function (data) { - var obj = Ext.decode(data.responseText); - - this.textArea.setValue(obj.config); - - this.ownerCt.ownerCt.ownerCt.nextButton.setDisabled(false); - } -}); diff --git a/web/setup/js/Cards/ConfigFileActionCard.js b/web/setup/js/Cards/ConfigFileActionCard.js @@ -1,51 +0,0 @@ -/** - * This card executes the chosen configuration file mode. - */ -Ext.define('PartKeeprSetup.ConfigFileActionCard', { - extend: 'Ext.form.Panel', - - /** - * Various Style Settings - */ - title: 'Configuration File', - showTitle: true, - titleCls: '', - titleStyle: 'font-size: 2.5em;line-height: 30px;', - cls: 'x-partkeepr-setup-basecard', - id: 'config-action-card', - autoScroll: true, - mode: null, - layout: 'card', - - /** - * Inits the component - */ - initComponent: function () { - this.items = [ - this.createSaveCard(), - this.createDisplayCard() - ]; - - this.callParent(); - this.on("activate", this.onActivate, this); - }, - createSaveCard: function () { - return Ext.create("PartKeeprSetup.ConfigSaveCard", { - itemId: 'card-action-save' - }); - }, - createDisplayCard: function () { - return Ext.create("PartKeeprSetup.ConfigDisplayCard", { - itemId: 'card-action-display' - }); - }, - /** - * Gets called when the card is activated - */ - onActivate: function () { - this.getLayout().setActiveItem('card-action-' + Ext.getCmp("config-mode-card").mode); - this.getLayout().activeItem.fireEvent("activateCard"); - // Disable the "next" button, this needs to get enabled by the database cards - this.ownerCt.ownerCt.nextButton.setDisabled(true); - } -}); diff --git a/web/setup/js/Cards/ConfigFileModeCard.js b/web/setup/js/Cards/ConfigFileModeCard.js @@ -1,90 +0,0 @@ -/** - * This card manages the config file creation. - */ -Ext.define('PartKeeprSetup.ConfigFileModeCard', { - extend: 'Ext.form.Panel', - - /** - * Various Style Settings - */ - title: 'Configuration File', - showTitle: true, - titleCls: '', - titleStyle: 'font-size: 2.5em;line-height: 30px;', - cls: 'x-partkeepr-setup-basecard', - id: 'config-mode-card', - autoScroll: true, - mode: null, - - /** - * Inits the component - */ - initComponent: function () { - - this.saveOption = Ext.create("Ext.form.field.Radio", { - name: 'configfilemode', - inputValue: 'save', - boxLabel: 'Save', - listeners: { - scope: this, - change: this.setConfigFileMode - } - }); - - this.displayOption = Ext.create("Ext.form.field.Radio", { - name: 'configfilemode', - inputValue: 'display', - boxLabel: 'Display', - listeners: { - scope: this, - change: this.setConfigFileMode - } - }); - - this.items = [{ - xtype: 'displayfield', - value: 'PartKeepr needs a configuration file to operate. Please choose how to proceed:', - style: 'margin-bottom: 20px;' - }, - this.saveOption, - { - xtype: 'displayfield', - value: 'Attempts to save the configuration file. The configuration file may not exist, and it must be' + - 'writable by your web server.', - style: 'margin-left: 17px; margin-bottom: 5px;' - - }, - this.displayOption, - { - xtype: 'displayfield', - value: 'Displays the configuration file, so you can use copy and paste.', - style: 'margin-left: 17px; margin-bottom: 5px;' - }]; - - this.callParent(); - this.on("activate", this.onActivate, this); - }, - setConfigFileMode: function () { - if (this.saveOption.getValue()) { - this.mode = "save"; - } - - if (this.displayOption.getValue()) { - this.mode = "display"; - } - - this.ownerCt.ownerCt.nextButton.setDisabled(false); - }, - /** - * Gets called when the card is activated - */ - onActivate: function () { - // Disable the "next" button, this needs to get enabled by the database cards - if (this.saveOption.getValue() || this.displayOption.getValue()) { - this.ownerCt.ownerCt.nextButton.setDisabled(false); - } else { - this.ownerCt.ownerCt.nextButton.setDisabled(true); - } - - } -}); diff --git a/web/setup/js/Cards/ConfigSaveCard.js b/web/setup/js/Cards/ConfigSaveCard.js @@ -1,121 +0,0 @@ -/** - * This card attempts to save the configuration file. - * - */ -Ext.define('PartKeeprSetup.ConfigSaveCard', { - extend: 'Ext.panel.Panel', - - /** - * Contains the test results for this card - * @var PartKeeprSetup.TestResultPanel - */ - testResultPanel: null, - - /** - * Contains the initially hidden "Re-test" button to re-trigger the tests. - */ - retestButton: null, - - /** - * Contains the test which will be run - * @var array - */ - tests: null, - - border: false, - - bodyStyle: 'background: none;', - - rerunTestText: "Retry", - - /** - * Inits the component - */ - initComponent: function () { - this.testResultPanel = Ext.create("PartKeeprSetup.TestResultPanel", { - - }); - - this.testResultPanel.on("test-error", this.onTestError, this); - - this.retestButton = Ext.create("Ext.button.Button", { - text: this.rerunTestText, - hidden: true - }); - - this.retestButton.on("click", this.retest, this); - - this.items = [{ - border: false, - bodyStyle: 'background:none;padding-bottom: 10px;', - html: this.cardMessage - }, - this.testResultPanel, - this.retestButton ]; - - this.tests = new Array(); - - this.testRunner = Ext.create("PartKeeprSetup.TestRunner"); - this.testRunner.on("success", this.onTestSuccessful, this); - - this.setupTests(); - this.callParent(); - this.on("activateCard", this.onActivate, this); - }, - /** - * Re-runs the configured tests and hides the Re-test button, - * because we don't know if the tests will be successful. - */ - retest: function () { - this.retestButton.hide(); - this.runTests(); - }, - /** - * Called when an error occurs. Shows the "re-test" button - * and disables the "next" button. - */ - onTestError: function () { - this.retestButton.show(); - this.ownerCt.ownerCt.ownerCt.nextButton.setDisabled(true); - }, - /** - * Called when all tests are successful. Hides the "re-test" - * button and enables the "next" button. - */ - onTestSuccessful: function () { - this.retestButton.hide(); - this.ownerCt.ownerCt.ownerCt.nextButton.setDisabled(false); - }, - /** - * Invokes the test runner with all configured tests - */ - runTests: function () { - this.testResultPanel.clear(); - - // We need to clone the test array, because we wouldn't be able to run all tests twice - var clonedTests = this.tests.slice(0); - this.testRunner.run(clonedTests, this.testResultPanel); - - }, - /** - * When the card is activated, automatically invoke all tests. - */ - onActivate: function () { - this.ownerCt.ownerCt.ownerCt.nextButton.setDisabled(true); - this.retestButton.hide(); - - this.runTests(); - }, - /** - * This method needs to be overridden by subclasses. Subclasses - * need to append tests to the "tests" array, e.g. - * - * var j = Ext.create("PartKeeprSetup.FilesystemPermissionTest"); - * j.callback = this.testResultPanel; - * this.tests.push(j); - * - */ - setupTests: function () { - this.tests.push(new PartKeeprSetup.ConfigSaveAction()); - } -}); diff --git a/web/setup/js/Cards/DatabaseConnectivityTestCard.js b/web/setup/js/Cards/DatabaseConnectivityTestCard.js @@ -1,18 +1,19 @@ /** * This card tests the database connectivity for the MySQL database. - * + * * Basically this submits all connection settings to a special PHP script, * which then attempts to establish the database connection. */ Ext.define('PartKeeprSetup.DatabaseConnectivityTestCard', { - extend: 'PartKeeprSetup.AbstractTestCard', - - cardMessage: "Setup tests if the database is reachable. Please note that this may take a minute or two to display a status if your database is not reachable.", - title: 'Checking Database Connectivity', - /** - * Sets up the tests - */ - setupTests: function () { - this.tests.push(new PartKeeprSetup.DatabaseConnectivityTest()); - } + extend: 'PartKeeprSetup.AbstractTestCard', + + cardMessage: "Setup tests if the database is reachable. Please note that this may take a minute or two to display a status if your database is not reachable.", + breadCrumbTitle: 'Database Connectivity', + /** + * Sets up the tests + */ + setupTests: function () + { + this.tests.push(new PartKeeprSetup.DatabaseConnectivityTest()); + } }); diff --git a/web/setup/js/Cards/DatabaseParametersCard.MySQL.js b/web/setup/js/Cards/DatabaseParametersCard.MySQL.js @@ -2,195 +2,210 @@ * This card displays the database parameters for the MySQL database. */ Ext.define('PartKeeprSetup.DatabaseParametersCard.MySQL', { - extend: 'Ext.panel.Panel', - - /* - * Various style settings - */ - border: false, - layout: 'column', - bodyStyle: { - background: "none" - }, - defaults: { - labelWidth: 120 - }, - - /** - * Initializes the component and creates the various fields - */ - initComponent: function () { - this.createHintTemplate = Ext.create("Ext.Template", [ - "<code>CREATE DATABASE {dbname} CHARACTER SET UTF8;<br/>GRANT USAGE ON *.* TO {user}@{localhost} IDENTIFIED BY '{password}';<br/>GRANT ALL PRIVILEGES ON {dbname}.* TO {user}@{localhost};<br/><br/>" - ]); - - this.masterTemplate = Ext.create("Ext.Template", ["The database must be manually created prior installation." ]); - - this.hostname = Ext.create("Ext.form.field.Text", { - fieldLabel: 'Database Hostname', - labelWidth: this.defaults.labelWidth - }); - - this.hostname.on("change", this.onUpdateParameters, this); - - this.username = Ext.create("Ext.form.field.Text", { - fieldLabel: 'Database Username', - labelWidth: this.defaults.labelWidth - }); - - this.username.on("change", this.onUpdateParameters, this); - - this.password = Ext.create("Ext.form.field.Text", { - fieldLabel: 'Database Password', - inputType: "password", - labelWidth: this.defaults.labelWidth - }); - - this.password.on("change", this.onUpdateParameters, this); - - this.databaseName = Ext.create("Ext.form.field.Text", { - fieldLabel: 'Database Name', - labelWidth: this.defaults.labelWidth - }); - - this.databaseName.on("change", this.onUpdateParameters, this); - - this.port = Ext.create("Ext.form.field.Number", { - minValue: 0, - flex: 1, - disabled: true, - value: '3306', - labelWidth: this.defaults.labelWidth, - validateOnBlur: true, - validateOnChange: false, - validator: function (value) { - if (value === "" || value === 0) { - this.setValue(3306); - } - return true; - } - }); - - this.portDefault = Ext.create("Ext.form.field.Checkbox", { - boxLabel: 'Default', - flex: 1, - checked: true, - listeners: { - change: function (field) { - if (field.getValue()) { - this.port.disable(); - this.port.setValue(3306); - } else { - this.port.enable(); - } - }, - scope: this - } - }); - - this.showHintCheckbox = Ext.create("Ext.form.field.Checkbox", { - xtype: 'checkboxfield', - boxLabel: 'Show commands to create the database', - listeners: { - change: this.onUpdateParameters, - scope: this - } - }); - - this.items = [{ - xtype: 'panel', - border: false, - width: "300px", - bodyStyle: { - background: "none" - }, - items: [ - this.hostname, - this.databaseName, - this.username, - this.password, - { - xtype: 'fieldcontainer', - labelWidth: this.defaults.labelWidth, - layout: 'hbox', - width: 300, - fieldLabel: 'Database Port', - items: [ this.port, this.portDefault ] - } - - ] - },{ - xtype: 'panel', - border: false, - bodyStyle: { - background: "none" - }, - items: [ - this.showHintCheckbox, - { - xtype: 'container', - border: false, - style: 'overflow: auto;', - width: "450px", - height: "100px", - autoScroll: true, - layout: 'fit', - id: 'mysql-parameters-hint', - html: "&nbsp" - }] - }]; - - this.callParent(); - - this.on("activate", this.onUpdateParameters, this); - }, - /** - * This method gets fired as soon as something in the form was changed. - * - * We do this because of the real-time update of the "hints" message, which - * assists the user with commands to execute on the database. - */ - onUpdateParameters: function () { - if (this.showHintCheckbox.checked) { - var host; - - if (this.hostname.getValue() == "localhost" || this.hostname.getValue() == "127.0.0.1") { - host = this.hostname.getValue(); - } else { - host = "&lt;YOUR-CONNECTING-IP&gt;"; - } - - this.createHintTemplate.overwrite(Ext.getCmp("mysql-parameters-hint").getEl(), { - localhost: host, - user: this.username.getValue(), - password: this.password.getValue(), - dbname: this.databaseName.getValue() - }); - - this.masterTemplate.append(Ext.getCmp("mysql-parameters-hint").getEl()); - } else { - this.masterTemplate.overwrite(Ext.getCmp("mysql-parameters-hint").getEl()); - } - - if (this.hostname.getValue() !== "" && this.username.getValue() !== "" && this.password.getValue() !== "" && - this.databaseName.getValue() !== "") { - - this.paramsheet.ownerCt.ownerCt.nextButton.setDisabled(false); - } - - this.paramsheet.dbparams = { - driver: 'mysql', - host: this.hostname.getValue(), - user: this.username.getValue(), - password: this.password.getValue(), - dbname: this.databaseName.getValue() - }; - - if (!this.portDefault.getValue()) { - if (this.port.getValue() != 3306) { - this.paramsheet.dbparams.port = this.port.getValue(); - } - } - - } -});- \ No newline at end of file + extend: 'Ext.panel.Panel', + + /* + * Various style settings + */ + border: false, + layout: 'column', + bodyStyle: { + background: "none" + }, + defaults: { + labelWidth: 120 + }, + + /** + * Initializes the component and creates the various fields + */ + initComponent: function () + { + this.createHintTemplate = Ext.create("Ext.Template", [ + "<code>CREATE DATABASE {name} CHARACTER SET UTF8;<br/>GRANT USAGE ON *.* TO {user}@{localhost} IDENTIFIED BY '{password}';<br/>GRANT ALL PRIVILEGES ON {name}.* TO {user}@{localhost};<br/><br/>" + ]); + + this.masterTemplate = Ext.create("Ext.Template", ["The database must be manually created prior installation."]); + + this.hostname = Ext.create("Ext.form.field.Text", { + fieldLabel: 'Database Hostname', + labelWidth: this.defaults.labelWidth, + value: PartKeeprSetup.getApplication().getSetupConfig().database.host + }); + + this.hostname.on("change", this.onUpdateParameters, this); + + this.username = Ext.create("Ext.form.field.Text", { + fieldLabel: 'Database Username', + labelWidth: this.defaults.labelWidth, + value: PartKeeprSetup.getApplication().getSetupConfig().database.username + }); + + this.username.on("change", this.onUpdateParameters, this); + + this.password = Ext.create("Ext.form.field.Text", { + fieldLabel: 'Database Password', + inputType: "password", + labelWidth: this.defaults.labelWidth, + value: PartKeeprSetup.getApplication().getSetupConfig().database.password + }); + + this.password.on("change", this.onUpdateParameters, this); + + this.databaseName = Ext.create("Ext.form.field.Text", { + fieldLabel: 'Database Name', + labelWidth: this.defaults.labelWidth, + value: PartKeeprSetup.getApplication().getSetupConfig().database.dbname + }); + + this.databaseName.on("change", this.onUpdateParameters, this); + + this.port = Ext.create("Ext.form.field.Number", { + minValue: 0, + flex: 1, + disabled: true, + value: '3306', + labelWidth: this.defaults.labelWidth, + validateOnBlur: true, + validateOnChange: false, + validator: function (value) + { + if (value === "" || value === 0) { + this.setValue(PartKeeprSetup.getApplication().getSetupConfig().database.port); + } + return true; + }, + listeners: { + change: "onUpdateParameters", + scope: this + } + }); + + this.portDefault = Ext.create("Ext.form.field.Checkbox", { + boxLabel: 'Default', + flex: 1, + checked: (PartKeeprSetup.getApplication().getSetupConfig().database.port === 3306), + listeners: { + change: function (field) + { + if (field.getValue()) { + this.port.disable(); + this.port.setValue(3306); + } else { + this.port.enable(); + } + + this.onUpdateParameters(); + }, + scope: this + } + }); + + this.showHintCheckbox = Ext.create("Ext.form.field.Checkbox", { + xtype: 'checkboxfield', + boxLabel: 'Show commands to create the database', + listeners: { + change: this.onUpdateParameters, + scope: this + } + }); + + this.items = [ + { + xtype: 'panel', + border: false, + width: "300px", + bodyStyle: { + background: "none" + }, + items: [ + this.hostname, + this.databaseName, + this.username, + this.password, + { + xtype: 'fieldcontainer', + labelWidth: this.defaults.labelWidth, + layout: 'hbox', + width: 300, + fieldLabel: 'Database Port', + items: [this.port, this.portDefault] + } + + ] + }, { + xtype: 'panel', + border: false, + bodyStyle: { + background: "none" + }, + items: [ + this.showHintCheckbox, + { + xtype: 'container', + border: false, + style: 'overflow: auto;', + width: "450px", + height: "100px", + autoScroll: true, + layout: 'fit', + id: 'mysql-parameters-hint', + html: "&nbsp" + } + ] + } + ]; + + this.callParent(); + + this.on("activate", this.onUpdateParameters, this); + }, + /** + * This method gets fired as soon as something in the form was changed. + * + * We do this because of the real-time update of the "hints" message, which + * assists the user with commands to execute on the database. + */ + onUpdateParameters: function () + { + if (this.showHintCheckbox.checked) { + var host; + + if (this.hostname.getValue() == "localhost" || this.hostname.getValue() == "127.0.0.1") { + host = this.hostname.getValue(); + } else { + host = "&lt;YOUR-CONNECTING-IP&gt;"; + } + + this.createHintTemplate.overwrite(Ext.getCmp("mysql-parameters-hint").getEl(), { + localhost: host, + user: this.username.getValue(), + password: this.password.getValue(), + name: this.databaseName.getValue() + }); + + this.masterTemplate.append(Ext.getCmp("mysql-parameters-hint").getEl()); + } else { + this.masterTemplate.overwrite(Ext.getCmp("mysql-parameters-hint").getEl()); + } + + if (this.hostname.getValue() !== "" && this.username.getValue() !== "" && this.password.getValue() !== "" && + this.databaseName.getValue() !== "") { + Ext.ComponentQuery.query('#nextBtn')[0].enable(); + } + + var config = PartKeeprSetup.getApplication().getSetupConfig(); + + Ext.apply(config, { + database: { + driver: 'pdo_mysql', + host: this.hostname.getValue(), + user: this.username.getValue(), + password: this.password.getValue(), + name: this.databaseName.getValue(), + port: this.port.getValue() + } + }); + + } +}); diff --git a/web/setup/js/Cards/DatabaseParametersCard.PostgreSQL.js b/web/setup/js/Cards/DatabaseParametersCard.PostgreSQL.js @@ -2,195 +2,201 @@ * This card displays the database parameters for the PostgreSQL database. */ Ext.define('PartKeeprSetup.DatabaseParametersCard.PostgreSQL', { - extend: 'Ext.panel.Panel', - - /* - * Various style settings - */ - border: false, - layout: 'column', - bodyStyle: { - background: "none" - }, - defaults: { - labelWidth: 120 - }, - - /** - * Initializes the component and creates the various fields - */ - initComponent: function () { - this.createHintTemplate = Ext.create("Ext.Template", [ - "<code>CREATE USER {user} WITH UNENCRYPTED PASSWORD '{password}'; CREATE DATABASE {dbname} OWNER {user};<br/><br/></code>" - ]); - - this.masterTemplate = Ext.create("Ext.Template", ["The database must be manually created prior installation.<br/><br/><b>POSTGRES IS UNSUPPORTED; PROCEED AT YOUR OWN RISK</b>" ]); - - this.hostname = Ext.create("Ext.form.field.Text", { - fieldLabel: 'Database Hostname', - labelWidth: this.defaults.labelWidth - }); - - this.hostname.on("change", this.onUpdateParameters, this); - - this.username = Ext.create("Ext.form.field.Text", { - fieldLabel: 'Database Username', - labelWidth: this.defaults.labelWidth - }); - - this.username.on("change", this.onUpdateParameters, this); - - this.password = Ext.create("Ext.form.field.Text", { - fieldLabel: 'Database Password', - inputType: "password", - labelWidth: this.defaults.labelWidth - }); - - this.password.on("change", this.onUpdateParameters, this); - - this.databaseName = Ext.create("Ext.form.field.Text", { - fieldLabel: 'Database Name', - labelWidth: this.defaults.labelWidth - }); - - this.databaseName.on("change", this.onUpdateParameters, this); - - this.port = Ext.create("Ext.form.field.Number", { - minValue: 0, - flex: 1, - disabled: true, - value: '5432', - labelWidth: this.defaults.labelWidth, - validateOnBlur: true, - validateOnChange: false, - validator: function (value) { - if (value === "" || value === 0) { - this.setValue(5432); - } - return true; - } - }); - - this.portDefault = Ext.create("Ext.form.field.Checkbox", { - boxLabel: 'Default', - flex: 1, - checked: true, - listeners: { - change: function (field) { - if (field.getValue()) { - this.port.disable(); - this.port.setValue(5432); - } else { - this.port.enable(); - } - }, - scope: this - } - }); - - this.showHintCheckbox = Ext.create("Ext.form.field.Checkbox", { - xtype: 'checkboxfield', - boxLabel: 'Show commands to create the database', - listeners: { - change: this.onUpdateParameters, - scope: this - } - }); - - this.items = [{ - xtype: 'panel', - border: false, - width: "300px", - bodyStyle: { - background: "none" - }, - items: [ - this.hostname, - this.databaseName, - this.username, - this.password, - { - xtype: 'fieldcontainer', - labelWidth: this.defaults.labelWidth, - layout: 'hbox', - width: 300, - fieldLabel: 'Database Port', - items: [ this.port, this.portDefault ] - } - - ] - },{ - xtype: 'panel', - border: false, - bodyStyle: { - background: "none" - }, - items: [ - this.showHintCheckbox, - { - xtype: 'container', - border: false, - style: 'overflow: auto;', - width: "450px", - height: "100px", - autoScroll: true, - layout: 'fit', - id: 'postgresql-parameters-hint', - html: "&nbsp" - }] - }]; - - this.callParent(); - - this.on("activate", this.onUpdateParameters, this); - }, - /** - * This method gets fired as soon as something in the form was changed. - * - * We do this because of the real-time update of the "hints" message, which - * assists the user with commands to execute on the database. - */ - onUpdateParameters: function () { - if (this.showHintCheckbox.checked) { - var host; - - if (this.hostname.getValue() == "localhost" || this.hostname.getValue() == "127.0.0.1") { - host = this.hostname.getValue(); - } else { - host = "&lt;YOUR-CONNECTING-IP&gt;"; - } - - this.createHintTemplate.overwrite(Ext.getCmp("postgresql-parameters-hint").getEl(), { - localhost: host, - user: this.username.getValue(), - password: this.password.getValue(), - dbname: this.databaseName.getValue() - }); - - this.masterTemplate.append(Ext.getCmp("postgresql-parameters-hint").getEl()); - } else { - this.masterTemplate.overwrite(Ext.getCmp("postgresql-parameters-hint").getEl()); - } - - if (this.hostname.getValue() !== "" && this.username.getValue() !== "" && this.password.getValue() !== "" && - this.databaseName.getValue() !== "") { - - this.paramsheet.ownerCt.ownerCt.nextButton.setDisabled(false); - } - - this.paramsheet.dbparams = { - driver: 'pgsql', - host: this.hostname.getValue(), - user: this.username.getValue(), - password: this.password.getValue(), - dbname: this.databaseName.getValue() - }; - - if (!this.portDefault.getValue()) { - if (this.port.getValue() != 5432) { - this.paramsheet.dbparams.port = this.port.getValue(); - } - } - - } -});- \ No newline at end of file + extend: 'Ext.panel.Panel', + + /* + * Various style settings + */ + border: false, + layout: 'column', + bodyStyle: { + background: "none" + }, + defaults: { + labelWidth: 120 + }, + + /** + * Initializes the component and creates the various fields + */ + initComponent: function () + { + this.createHintTemplate = Ext.create("Ext.Template", [ + "<code>CREATE USER {user} WITH UNENCRYPTED PASSWORD '{password}'; CREATE DATABASE {dbname} OWNER {user};<br/><br/></code>" + ]); + + this.masterTemplate = Ext.create("Ext.Template", + ["The database must be manually created prior installation.<br/><br/><b>POSTGRES IS UNSUPPORTED; PROCEED AT YOUR OWN RISK</b>"]); + + this.hostname = Ext.create("Ext.form.field.Text", { + fieldLabel: 'Database Hostname', + labelWidth: this.defaults.labelWidth + }); + + this.hostname.on("change", this.onUpdateParameters, this); + + this.username = Ext.create("Ext.form.field.Text", { + fieldLabel: 'Database Username', + labelWidth: this.defaults.labelWidth + }); + + this.username.on("change", this.onUpdateParameters, this); + + this.password = Ext.create("Ext.form.field.Text", { + fieldLabel: 'Database Password', + inputType: "password", + labelWidth: this.defaults.labelWidth + }); + + this.password.on("change", this.onUpdateParameters, this); + + this.databaseName = Ext.create("Ext.form.field.Text", { + fieldLabel: 'Database Name', + labelWidth: this.defaults.labelWidth + }); + + this.databaseName.on("change", this.onUpdateParameters, this); + + this.port = Ext.create("Ext.form.field.Number", { + minValue: 0, + flex: 1, + disabled: true, + value: '5432', + labelWidth: this.defaults.labelWidth, + validateOnBlur: true, + validateOnChange: false, + validator: function (value) + { + if (value === "" || value === 0) { + this.setValue(5432); + } + return true; + } + }); + + this.portDefault = Ext.create("Ext.form.field.Checkbox", { + boxLabel: 'Default', + flex: 1, + checked: true, + listeners: { + change: function (field) + { + if (field.getValue()) { + this.port.disable(); + this.port.setValue(5432); + } else { + this.port.enable(); + } + }, + scope: this + } + }); + + this.showHintCheckbox = Ext.create("Ext.form.field.Checkbox", { + xtype: 'checkboxfield', + boxLabel: 'Show commands to create the database', + listeners: { + change: this.onUpdateParameters, + scope: this + } + }); + + this.items = [ + { + xtype: 'panel', + border: false, + width: "300px", + bodyStyle: { + background: "none" + }, + items: [ + this.hostname, + this.databaseName, + this.username, + this.password, + { + xtype: 'fieldcontainer', + labelWidth: this.defaults.labelWidth, + layout: 'hbox', + width: 300, + fieldLabel: 'Database Port', + items: [this.port, this.portDefault] + } + + ] + }, { + xtype: 'panel', + border: false, + bodyStyle: { + background: "none" + }, + items: [ + this.showHintCheckbox, + { + xtype: 'container', + border: false, + style: 'overflow: auto;', + width: "450px", + height: "100px", + autoScroll: true, + layout: 'fit', + id: 'postgresql-parameters-hint', + html: "&nbsp" + } + ] + } + ]; + + this.callParent(); + + this.on("activate", this.onUpdateParameters, this); + }, + /** + * This method gets fired as soon as something in the form was changed. + * + * We do this because of the real-time update of the "hints" message, which + * assists the user with commands to execute on the database. + */ + onUpdateParameters: function () + { + if (this.showHintCheckbox.checked) { + var host; + + if (this.hostname.getValue() == "localhost" || this.hostname.getValue() == "127.0.0.1") { + host = this.hostname.getValue(); + } else { + host = "&lt;YOUR-CONNECTING-IP&gt;"; + } + + this.createHintTemplate.overwrite(Ext.getCmp("postgresql-parameters-hint").getEl(), { + localhost: host, + user: this.username.getValue(), + password: this.password.getValue(), + name: this.databaseName.getValue() + }); + + this.masterTemplate.append(Ext.getCmp("postgresql-parameters-hint").getEl()); + } else { + this.masterTemplate.overwrite(Ext.getCmp("postgresql-parameters-hint").getEl()); + } + + if (this.hostname.getValue() !== "" && this.username.getValue() !== "" && this.password.getValue() !== "" && + this.databaseName.getValue() !== "") { + + Ext.ComponentQuery.query('#nextBtn')[0].enable(); + } + + var config = PartKeeprSetup.getApplication().getSetupConfig(); + + Ext.apply(config, { + database: { + driver: 'pdo_pgsql', + host: this.hostname.getValue(), + username: this.username.getValue(), + password: this.password.getValue(), + dbname: this.databaseName.getValue(), + port: this.port.getValue() + } + }); + } +}); diff --git a/web/setup/js/Cards/DatabaseParametersCard.js b/web/setup/js/Cards/DatabaseParametersCard.js @@ -1,116 +1,118 @@ /** * This card displays the database parameters. - * + * * This card supports multiple database types along with their special parameters. */ Ext.define('PartKeeprSetup.DatabaseParametersCard', { - extend: 'Ext.form.Panel', - - /** - * Various Style Settings - */ - title: 'Database Parameters', - showTitle: true, - titleCls: '', - titleStyle: 'font-size: 2.5em;line-height: 30px;', - cls: 'x-partkeepr-setup-basecard', - id: 'database-parameters-card', + extend: 'Ext.form.Panel', + + /** + * Various Style Settings + */ + margin: 20, + border: false, + bodyStyle: 'background: none;', autoScroll: true, - - /** - * Inits the component - */ - initComponent: function () { - - this.createDatabaseDropdown(); - - this.databaseSettings = Ext.create("Ext.panel.Panel", { - layout: 'card', - border: false, - bodyStyle: { - background: "none" - }, - items: [{ - border: false, - bodyStyle: { - background: "none" - }, - html: 'Please select a database driver' - }, - Ext.create("PartKeeprSetup.DatabaseParametersCard.MySQL", { paramsheet: this }), - Ext.create("PartKeeprSetup.DatabaseParametersCard.PostgreSQL", { paramsheet: this }) - ] - }); - - this.items = [{ - border: false, - bodyStyle: 'background:none;padding-bottom: 10px;', - html: 'Please enter your database parameters below:' - }, - this.databaseDropdown, - this.databaseSettings - ]; - - this.callParent(); - this.on("activate", this.onActivate, this); - }, - /** - * Creates the dropdown with all available database types. - */ - createDatabaseDropdown: function () { - var databaseTypes = Ext.create('Ext.data.Store', { - fields: ['type', 'name'], - data : [ - {"type":"mysql", "name":"MySQL"}, - {"type":"postgresql", "name":"PostgreSQL"} - ] - }); - - this.databaseDropdown = Ext.create('Ext.form.ComboBox', { - labelWidth: 120, - fieldLabel: 'Database Type', - store: databaseTypes, - queryMode: 'local', - displayField: 'name', - valueField: 'type', - triggerAction: 'all', - editable: false - }); - - this.databaseDropdown.on("select", this.onDriverSelect, this); + breadCrumbTitle: 'Database Parameters', + + /** + * Inits the component + */ + initComponent: function () + { + + this.createDatabaseDropdown(); + + this.databaseSettings = Ext.create("Ext.panel.Panel", { + layout: 'card', + border: false, + bodyStyle: { + background: "none" + }, + items: [ + { + border: false, + bodyStyle: { + background: "none" + }, + html: 'Please select a database driver' + }, + Ext.create("PartKeeprSetup.DatabaseParametersCard.MySQL"), + Ext.create("PartKeeprSetup.DatabaseParametersCard.PostgreSQL") + ] + }); + + this.items = [ + { + border: false, + bodyStyle: 'background:none;padding-bottom: 10px;', + html: 'Please enter your database parameters below:' + }, + this.databaseDropdown, + this.databaseSettings + ]; + + this.callParent(); + this.on("activate", this.onActivate, this); + }, + /** + * Creates the dropdown with all available database types. + */ + createDatabaseDropdown: function () + { + var databaseTypes = Ext.create('Ext.data.Store', { + fields: ['type', 'name'], + data: [ + {"type": "pdo_mysql", "name": "MySQL"}, + {"type": "pdo_pgsql", "name": "PostgreSQL"} + ] + }); + + this.databaseDropdown = Ext.create('Ext.form.ComboBox', { + labelWidth: 120, + fieldLabel: 'Database Type', + store: databaseTypes, + queryMode: 'local', + displayField: 'name', + valueField: 'type', + triggerAction: 'all', + editable: false, + value: PartKeeprSetup.getApplication().getSetupConfig().database.driver + }); + + this.databaseDropdown.on("change", this.onDriverSelect, this); + }, + /** + * This method is a callback from the database dropdown and displays + * the correct database settings page. + */ + onDriverSelect: function (a, value) + { + Ext.ComponentQuery.query('#nextBtn')[0].disable(); + + switch (value) { + case "pdo_mysql": + this.databaseSettings.layout.setActiveItem(1); + break; + case "pdo_pgsql": + this.databaseSettings.layout.setActiveItem(2); + break; + default: + this.databaseSettings.layout.setActiveItem(0); + break; + } + }, + /** + * Gets called when the card is activated + */ + onActivate: function () + { + this.onDriverSelect(null, this.databaseDropdown.getValue()); + + // Disable the "next" button, this needs to get enabled by the database cards + Ext.ComponentQuery.query('#nextBtn')[0].disable(); - }, - /** - * This method is a callback from the database dropdown and displays - * the correct database settings page. - */ - onDriverSelect: function (a,r) { - if (r.length == 1) { - switch (r[0].get("type")) { - case "mysql": - this.databaseSettings.layout.setActiveItem(1); - break; - case "postgresql": - this.databaseSettings.layout.setActiveItem(2); - break; - default: - this.databaseSettings.layout.setActiveItem(0); - break; - } - } else { - this.databaseSettings.layout.setActiveItem(0); - } - - this.ownerCt.ownerCt.nextButton.setDisabled(true); - }, - /** - * Gets called when the card is activated - */ - onActivate: function () { - // Disable the "next" button, this needs to get enabled by the database cards - this.ownerCt.ownerCt.nextButton.setDisabled(true); - - // Manually fire the activate event, in case the user switched cards back/forth. - this.databaseSettings.layout.getActiveItem().fireEvent("activate"); - } + // Manually fire the activate event, in case the user switched cards back/forth. + this.databaseSettings.layout.getActiveItem().fireEvent("activate"); + } }); diff --git a/web/setup/js/Cards/DatabaseSetupCard.js b/web/setup/js/Cards/DatabaseSetupCard.js @@ -1,27 +1,29 @@ /** * This card tests the database connectivity for the MySQL database. - * + * * Basically this submits all connection settings to a special PHP script, * which then attempts to establish the database connection. */ Ext.define('PartKeeprSetup.DatabaseSetupCard', { - extend: 'PartKeeprSetup.AbstractTestCard', - - cardMessage: "PartKeepr is now being set-up.", - title: 'PartKeepr is now being set-up, please wait', - rerunTestText: "Re-run setup", - /** - * Sets up the tests - */ - setupTests: function () { - this.tests.push(new PartKeeprSetup.SchemaSetup()); - this.tests.push(new PartKeeprSetup.AdminUserSetup()); - this.tests.push(new PartKeeprSetup.PartUnitSetup()); - this.tests.push(new PartKeeprSetup.FootprintSetup()); - this.tests.push(new PartKeeprSetup.PartCategorySetup()); - this.tests.push(new PartKeeprSetup.SiPrefixSetup()); - this.tests.push(new PartKeeprSetup.UnitSetup()); - this.tests.push(new PartKeeprSetup.ManufacturerSetup()); - this.tests.push(new PartKeeprSetup.MiscSetup()); - } + extend: 'PartKeeprSetup.AbstractTestCard', + + cardMessage: "PartKeepr is now being set-up.", + breadCrumbTitle: 'Setup', + rerunTestText: "Re-run setup", + /** + * Sets up the tests + */ + setupTests: function () + { + this.tests.push(new PartKeeprSetup.SchemaSetup()); + this.tests.push(new PartKeeprSetup.SchemaMigration()); + this.tests.push(new PartKeeprSetup.AdminUserSetup()); + this.tests.push(new PartKeeprSetup.PartUnitSetup()); + this.tests.push(new PartKeeprSetup.FootprintSetup()); + this.tests.push(new PartKeeprSetup.SiPrefixSetup()); + this.tests.push(new PartKeeprSetup.UnitSetup()); + this.tests.push(new PartKeeprSetup.ManufacturerSetup()); + this.tests.push(new PartKeeprSetup.ConfigSetup()); + this.tests.push(new PartKeeprSetup.WarmupCacheSetup()); + } }); diff --git a/web/setup/js/Cards/PrerequisitesTestCard.js b/web/setup/js/Cards/PrerequisitesTestCard.js @@ -2,16 +2,18 @@ * This card runs the prequisites test to make sure basic things like PHP and Doctrine are installed and configured. */ Ext.define('PartKeeprSetup.PrerequisitesTestCard', { - extend: 'PartKeeprSetup.AbstractTestCard', - - cardMessage: "Setup now checks if your server is capable of running PartKeepr.", - breadCrumbTitle: 'Checking prerequisites', - /** - * Sets up all tests - */ - setupTests: function () { - this.tests.push(new PartKeeprSetup.PHPTest()); - this.tests.push(new PartKeeprSetup.PHPPrerequisitesTest()); - this.tests.push(new PartKeeprSetup.PHPSettingsTest()); - } + extend: 'PartKeeprSetup.AbstractTestCard', + + cardMessage: "Setup now checks if your server is capable of running PartKeepr.", + breadCrumbTitle: 'Prerequisites', + /** + * Sets up all tests + */ + setupTests: function () + { + this.tests.push(new PartKeeprSetup.PHPTest()); + this.tests.push(new PartKeeprSetup.PHPPrerequisitesTest()); + this.tests.push(new PartKeeprSetup.PHPSettingsTest()); + this.tests.push(new PartKeeprSetup.GenerateAuthKey()); + } }); diff --git a/web/setup/js/PartKeeprSetup.js b/web/setup/js/PartKeeprSetup.js @@ -1,17 +1,52 @@ Ext.application({ name: 'PartKeeprSetup', - launch: function() { - this.createLayout(); + launch: function () + { + PartKeeprSetup.application = this; + this.createLayout(); }, + setupConfig: {}, /** * Creates the main viewport */ - createLayout: function () { + createLayout: function () + { + var initialConfig = { + database: { + driver: "", + host: "", + dbname: "", + username: "", + password: "", + port: null + }, + adminuser: { + username: "", + password: "", + email: "" + }, + authKey: "" + }; + + Ext.apply(this.setupConfig, initialConfig); + var win = Ext.create("Ext.window.Window", { layout: "fit", + title: "PartKeepr Setup", items: Ext.create("PartKeeprSetup.SetupWizard") }); - win.show(); + win.show(); + }, + getSetupConfig: function () + { + return this.setupConfig; + + }, + statics: { + getApplication: function () + { + return PartKeeprSetup.application; + } } }); diff --git a/web/setup/js/SetupSteps/AdminUserSetup.js b/web/setup/js/SetupSteps/AdminUserSetup.js @@ -2,13 +2,8 @@ * Creates the administrative user */ Ext.define('PartKeeprSetup.AdminUserSetup', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'setup.php', - name: "Database", - message: "Setting up the admin user", - - onBeforeRunTest: function () { - this.params = Ext.getCmp("database-parameters-card").dbparams; - this.params.step = "adminuser"; - } + extend: 'PartKeeprSetup.AbstractTest', + action: 'createUser', + name: "Database", + message: "Setting up the admin user", }); diff --git a/web/setup/js/SetupSteps/ConfigFileSetup.js b/web/setup/js/SetupSteps/ConfigFileSetup.js @@ -1,14 +0,0 @@ -/** - * Sets up the default units - */ -Ext.define('PartKeeprSetup.ConfigFileSetup', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'setup.php', - name: "Database", - message: "Creating the configuration file", - - onBeforeRunTest: function () { - this.params = Ext.getCmp("database-parameters-card").dbparams; - this.params.step = "configfile"; - } -});- \ No newline at end of file diff --git a/web/setup/js/SetupSteps/ConfigSetup.js b/web/setup/js/SetupSteps/ConfigSetup.js @@ -0,0 +1,9 @@ +/** + * Attempts to save the configuration file + */ +Ext.define('PartKeeprSetup.ConfigSetup', { + extend: 'PartKeeprSetup.AbstractTest', + action: 'saveConfig', + name: "Config File", + message: "Saving the configuration file", +}); diff --git a/web/setup/js/SetupSteps/FootprintSetup.js b/web/setup/js/SetupSteps/FootprintSetup.js @@ -2,13 +2,8 @@ * Sets up the footprints */ Ext.define('PartKeeprSetup.FootprintSetup', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'setup.php', - name: "Database", - message: "Setting up the default footprints", - - onBeforeRunTest: function () { - this.params = Ext.getCmp("database-parameters-card").dbparams; - this.params.step = "footprint"; - } -});- \ No newline at end of file + extend: 'PartKeeprSetup.AbstractTest', + action: 'createFootprints', + name: "Database", + message: "Setting up the default footprints", +}); diff --git a/web/setup/js/SetupSteps/ManufacturerSetup.js b/web/setup/js/SetupSteps/ManufacturerSetup.js @@ -2,13 +2,8 @@ * Sets up the Manufacturers */ Ext.define('PartKeeprSetup.ManufacturerSetup', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'setup.php', - name: "Database", - message: "Setting up the default manufacturers", - - onBeforeRunTest: function () { - this.params = Ext.getCmp("database-parameters-card").dbparams; - this.params.step = "manufacturer"; - } -});- \ No newline at end of file + extend: 'PartKeeprSetup.AbstractTest', + action: 'createManufacturers', + name: "Database", + message: "Setting up the default manufacturers", +}); diff --git a/web/setup/js/SetupSteps/MiscSetup.js b/web/setup/js/SetupSteps/MiscSetup.js @@ -1,14 +0,0 @@ -/** - * Sets up the default units - */ -Ext.define('PartKeeprSetup.MiscSetup', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'setup.php', - name: "Database", - message: "Setting up misc settings", - - onBeforeRunTest: function () { - this.params = Ext.getCmp("database-parameters-card").dbparams; - this.params.step = "miscsettings"; - } -});- \ No newline at end of file diff --git a/web/setup/js/SetupSteps/PartCategorySetup.js b/web/setup/js/SetupSteps/PartCategorySetup.js @@ -1,14 +0,0 @@ -/** - * Sets up the part categories - */ -Ext.define('PartKeeprSetup.PartCategorySetup', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'setup.php', - name: "Database", - message: "Setting up part categories", - - onBeforeRunTest: function () { - this.params = Ext.getCmp("database-parameters-card").dbparams; - this.params.step = "partcategory"; - } -});- \ No newline at end of file diff --git a/web/setup/js/SetupSteps/PartUnitSetup.js b/web/setup/js/SetupSteps/PartUnitSetup.js @@ -2,13 +2,8 @@ * Creates the part units */ Ext.define('PartKeeprSetup.PartUnitSetup', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'setup.php', - name: "Database", - message: "Setting up the part units", - - onBeforeRunTest: function () { - this.params = Ext.getCmp("database-parameters-card").dbparams; - this.params.step = "partunit"; - } -});- \ No newline at end of file + extend: 'PartKeeprSetup.AbstractTest', + action: 'createPartUnits', + name: "Database", + message: "Setting up the part units", +}); diff --git a/web/setup/js/SetupSteps/SchemaMigration.js b/web/setup/js/SetupSteps/SchemaMigration.js @@ -0,0 +1,9 @@ +/** + * Sets up the database schema + */ +Ext.define('PartKeeprSetup.SchemaMigration', { + extend: 'PartKeeprSetup.AbstractTest', + action: 'schemaMigration', + name: "Database", + message: "Migrating the database schema", +}); diff --git a/web/setup/js/SetupSteps/SchemaSetup.js b/web/setup/js/SetupSteps/SchemaSetup.js @@ -2,13 +2,8 @@ * Sets up the database schema */ Ext.define('PartKeeprSetup.SchemaSetup', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'setup.php', - name: "Database", - message: "Setting up the database schema", - - onBeforeRunTest: function () { - this.params = Ext.getCmp("database-parameters-card").dbparams; - this.params.step = "schema"; - } -});- \ No newline at end of file + extend: 'PartKeeprSetup.AbstractTest', + action: 'schemaSetup', + name: "Database", + message: "Setting up the database schema", +}); diff --git a/web/setup/js/SetupSteps/SiPrefixSetup.js b/web/setup/js/SetupSteps/SiPrefixSetup.js @@ -2,13 +2,8 @@ * Sets up the SI prefixes */ Ext.define('PartKeeprSetup.SiPrefixSetup', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'setup.php', - name: "Database", - message: "Setting up the SI Prefixes", - - onBeforeRunTest: function () { - this.params = Ext.getCmp("database-parameters-card").dbparams; - this.params.step = "siprefix"; - } -});- \ No newline at end of file + extend: 'PartKeeprSetup.AbstractTest', + action: 'createSiPrefixes', + name: "Database", + message: "Setting up the SI Prefixes", +}); diff --git a/web/setup/js/SetupSteps/UnitSetup.js b/web/setup/js/SetupSteps/UnitSetup.js @@ -2,13 +2,8 @@ * Sets up the default units */ Ext.define('PartKeeprSetup.UnitSetup', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'setup.php', - name: "Database", - message: "Setting up the default units", - - onBeforeRunTest: function () { - this.params = Ext.getCmp("database-parameters-card").dbparams; - this.params.step = "unit"; - } -});- \ No newline at end of file + extend: 'PartKeeprSetup.AbstractTest', + action: 'createUnits', + name: "Database", + message: "Setting up the default units", +}); diff --git a/web/setup/js/SetupSteps/WarmupCacheSetup.js b/web/setup/js/SetupSteps/WarmupCacheSetup.js @@ -0,0 +1,9 @@ +/** + * Attempts to save the configuration file + */ +Ext.define('PartKeeprSetup.WarmupCacheSetup', { + extend: 'PartKeeprSetup.AbstractTest', + action: 'warmupCache', + name: "Config File", + message: "Warming up the cache", +}); diff --git a/web/setup/js/SetupTests/AbstractTest.js b/web/setup/js/SetupTests/AbstractTest.js @@ -11,7 +11,9 @@ Ext.define('PartKeeprSetup.AbstractTest', { /** * Defines the URL to call */ - url: 'tests/check.php', + url: '../setup.php/setup/', + + action: '', /** * Defines if the call was successful or not. @@ -48,7 +50,7 @@ Ext.define('PartKeeprSetup.AbstractTest', { * * */ - params: null, + params: {}, /** * Constructs the test @@ -66,16 +68,38 @@ Ext.define('PartKeeprSetup.AbstractTest', { { this.onBeforeRunTest(); + var url = this.url; + + if (this.action !== "") { + url = url + this.action; + } + this.callback.outputTestMessage(this); Ext.Ajax.request({ - url: this.url, + url: url, success: this.onSuccess, + failure: this.onFailure, scope: this, - params: this.params, + params: Ext.encode(this.params), timeout: 120000 }); }, + onFailure: function (response) + { + this.success = false; + this.resultMessage = "Invalid Response from server"; + this.errors = ["Invalid Response from server", response.responseText]; + + if (this.callback) { + this.callback.appendTestResult(this); + } + + if (this.success) { + this.fireEvent("complete", this); + } + + }, /** * Callback for the Ext.Ajax.request method. Decodes the response, sets the object parameters, fires the "complete" * event and calls back the test result panel. @@ -95,8 +119,7 @@ Ext.define('PartKeeprSetup.AbstractTest', { obj.errors = ["Invalid Response from server", response.responseText]; } - - if (obj.success === false) { + if (!obj.success || obj.success === false) { if (Ext.isArray(obj.errors)) { this.errors = obj.errors; } else { @@ -123,6 +146,6 @@ Ext.define('PartKeeprSetup.AbstractTest', { */ onBeforeRunTest: function () { - return; + this.params = PartKeeprSetup.getApplication().getSetupConfig(); } }); diff --git a/web/setup/js/SetupTests/ConfigSaveAction.js b/web/setup/js/SetupTests/ConfigSaveAction.js @@ -1,15 +0,0 @@ -/** - * Attempts to save the configuration file - */ -Ext.define('PartKeeprSetup.ConfigSaveAction', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'setup.php', - name: "Config File", - message: "Saving the configuration file", - - onBeforeRunTest: function () { - this.params = Ext.getCmp("database-parameters-card").dbparams; - this.params.mode = "save"; - this.params.step = "configfile"; - } -});- \ No newline at end of file diff --git a/web/setup/js/SetupTests/DatabaseConnectivityTest.js b/web/setup/js/SetupTests/DatabaseConnectivityTest.js @@ -2,12 +2,8 @@ * Tests if the database can be reached */ Ext.define('PartKeeprSetup.DatabaseConnectivityTest', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'tests/check-database-connectivity.php', - name: "Database", - message: "Testing for database connectivity", - - onBeforeRunTest: function () { - this.params = Ext.getCmp("database-parameters-card").dbparams; - } -});- \ No newline at end of file + extend: 'PartKeeprSetup.AbstractTest', + action: 'testConnectivity', + name: "Database", + message: "Testing for database connectivity", +}); diff --git a/web/setup/js/SetupTests/FilesystemPermissionTest.js b/web/setup/js/SetupTests/FilesystemPermissionTest.js @@ -1,9 +0,0 @@ -/** - * Tests if the filesystem permissions are OK - */ -Ext.define('PartKeeprSetup.FilesystemPermissionTest', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'tests/check-permissions.php', - name: "Filesystem", - message: "Testing for proper filesystem permissions" -});- \ No newline at end of file diff --git a/web/setup/js/SetupTests/GenerateAuthKey.js b/web/setup/js/SetupTests/GenerateAuthKey.js @@ -0,0 +1,9 @@ +/** + * Tests if the most important PHP prerequisites are met (e.g. json_encode). + */ +Ext.define('PartKeeprSetup.GenerateAuthKey', { + extend: 'PartKeeprSetup.AbstractTest', + action: 'generateAuthKey', + name: "PHP", + message: "Generating setup auth key" +}); diff --git a/web/setup/js/SetupTests/TwigTest.js b/web/setup/js/SetupTests/TwigTest.js @@ -1,9 +0,0 @@ -/** - * Tests is doctrine is installed correctly on the server - */ -Ext.define('PartKeeprSetup.TwigTest', { - extend: 'PartKeeprSetup.AbstractTest', - url: 'tests/check-twig.php', - name: "PHP", - message: "Testing for the twig template engine" -});- \ No newline at end of file diff --git a/web/setup/js/SetupWizard.js b/web/setup/js/SetupWizard.js @@ -1,16 +1,11 @@ Ext.define('PartKeeprSetup.SetupWizard', { - extend: 'Ext.ux.BreadCrumbWizard', - - /** - * The wizard's window shouldn't have a close button - */ - closable: false, - + extend: 'Ext.ux.BreadCrumbWizard', + /** - * Title. Ovbiously. + * The wizard's window shouldn't have a close button */ - title: 'PartKeepr Setup', - + closable: false, + /** * Some style settings for the individual cards */ @@ -22,16 +17,16 @@ Ext.define('PartKeeprSetup.SetupWizard', { }, layout: 'card' }, - + /** * Configure the header */ - includeHeaderPanel: true, + includeHeaderPanel: true, headConfig: { headerPosition: 'bottom', position: 'top', - cls: "x-setup-header", - height: 120, + cls: "x-setup-header", + height: 120, stepText: '' }, @@ -41,81 +36,57 @@ Ext.define('PartKeeprSetup.SetupWizard', { width: 800, height: 500, - /** * Initializes the component */ - initComponent: function () { - this.items = this.setupCards(); - this.callParent(); + initComponent: function () + { + this.items = this.setupCards(); + this.callParent(); }, /** * Sets up all cards * @returns {Array} */ - setupCards: function () { - var cards = new Array(); - - cards.push(Ext.create('Ext.form.Panel', { + setupCards: function () + { + var cards = new Array(); + + cards.push(Ext.create('Ext.form.Panel', { breadCrumbTitle: 'Welcome', - titleCls: '', - titleStyle: 'font-size: 2.5em;line-height: 30px;', - cls: 'x-partkeepr-setup-basecard', - items: [{ - border: false, - bodyStyle: 'background:none;', - html: 'This wizard guides you through the setup of <b>PartKeepr</b>.<br/><br/>Note that you can '+ - 're-start setup any time, even if you already have an existing database. No existing data will '+ - 'be overwritten.' - }] + padding: 20, + border: false, + bodyStyle: 'background: none;', + html: 'This wizard guides you through the setup of <b>PartKeepr</b>.<br/><br/>Note that you can ' + + 're-start setup any time, even if you already have an existing database. No existing data will ' + + 'be overwritten.' })); - - cards.push(Ext.create("PartKeeprSetup.PrerequisitesTestCard")); - cards.push(Ext.create("PartKeeprSetup.DatabaseParametersCard")); - cards.push(Ext.create("PartKeeprSetup.DatabaseConnectivityTestCard")); - cards.push(Ext.create("PartKeeprSetup.DatabaseSetupCard")); - - cards.push(Ext.create("PartKeeprSetup.ConfigFileModeCard")); - cards.push(Ext.create("PartKeeprSetup.ConfigFileActionCard")); - - cards.push(Ext.create('Ext.form.Panel', { - title: 'Cron Setup', - showTitle: true, - titleCls: '', - titleStyle: 'font-size: 2.5em;line-height: 30px;', - cls: 'x-partkeepr-setup-basecard', - items: [{ - border: false, - bodyStyle: 'background:none;', - autoScroll: true, - html: "Please set up the following cronjobs:<br/><br/><code>"+ - "0 0,12 * * * /usr/bin/php &lt;path-to-partkeepr&gt;/cronjobs/CreateStatisticSnapshot.php<br/>"+ - "0 0,6,12,18 * * * /usr/bin/php &lt;path-to-partkeepr&gt;/cronjobs/UpdatePartCacheData.php<br/>"+ - "0 0 */2 * * /usr/bin/php &lt;path-to-partkeepr&gt;/cronjobs/CheckForUpdates.php<br/>"+ - "0 0 */2 * * /usr/bin/php &lt;path-to-partkeepr&gt;/cronjobs/UpdateTipsOfTheDay.php<br/>"+ - "</code><br/>If you cannot run cronjobs (e.g. you are on Windows), you can disable the "+ - "cronjobs by adding the following line to your config.php file:<br/><br/>"+ - '<code>Configuration::setOption("partkeepr.cronjobs.disablecheck", true);</code>' - }] - })); - - cards.push(Ext.create('Ext.form.Panel', { - title: 'Setup Complete', - showTitle: true, - titleCls: '', - titleStyle: 'font-size: 2.5em;line-height: 30px;', - cls: 'x-partkeepr-setup-basecard', - items: [{ - border: false, - bodyStyle: 'background:none;', - autoScroll: true, - html: "<b>PartKeepr is now set-up.</b><br/><br/>"+ - "If possible, set your web server's document root to the <b>frontend</b> directory.<br/><br/>"+ - "To open PartKeepr, open the 'frontend' directory using your browser.<br/><br/>"+ - "The default username/password combination is <b>admin/admin</b>" - }] + + var cardNames = [ + "PartKeeprSetup.PrerequisitesTestCard", + "PartKeeprSetup.AuthKeyCard", + "PartKeeprSetup.DatabaseParametersCard", + "PartKeeprSetup.DatabaseConnectivityTestCard", + "PartKeeprSetup.AdminUserCard", + "PartKeeprSetup.DatabaseSetupCard" + ]; + + for (var card = 0; card < cardNames.length; card++) { + cards.push(Ext.create(cardNames[card], { + setupConfig: this.setupConfig + })); + } + + cards.push(Ext.create('Ext.form.Panel', { + breadCrumbTitle: 'Setup Complete', + padding: 20, + border: false, + bodyStyle: 'background: none;', + html: "<b>PartKeepr is now set-up.</b><br/><br/>" + + "If possible, set your web server's document root to the <b>web/</b> directory.<br/><br/>" + + "To open PartKeepr, open the <b>web</b> directory using your browser.<br/><br/>" })); - - return cards; + + return cards; } }); diff --git a/web/setup/js/TestResultPanel.js b/web/setup/js/TestResultPanel.js @@ -21,7 +21,11 @@ Ext.define('PartKeeprSetup.TestResultPanel', { }, { name: 'errors', type: 'string' - }] + }, { + name: 'waiting', + type: 'boolean' + } + ] }, columns: [ { @@ -30,8 +34,12 @@ Ext.define('PartKeeprSetup.TestResultPanel', { }, { width: 30, dataIndex: 'success', - renderer: function (val) + renderer: function (val, metaData, record) { + if (record.get("waiting")) { + return '<span title="Waiting" style="vertical-align: top;" class="web-icon cog"></span>'; + } + if (val) { return '<span title="OK" style="vertical-align: top;" class="web-icon accept"></span>'; } else { @@ -41,19 +49,20 @@ Ext.define('PartKeeprSetup.TestResultPanel', { }, { flex: 2, dataIndex: 'message' - },{ + }, { flex: 0.5, xtype: 'widgetcolumn', dataIndex: 'success', widget: { hidden: true, - xtype: 'button', - defaultBindProperty: "hidden", - text: "Show details", - handler: function(widgetColumn) { - var record = widgetColumn.getWidgetRecord(); - Ext.Msg.alert("Error Details", record.get("errors")); - } + xtype: 'button', + defaultBindProperty: "hidden", + text: "Show details", + handler: function (widgetColumn) + { + var record = widgetColumn.getWidgetRecord(); + Ext.Msg.alert("Error Details", record.get("errors")); + } } } ], @@ -78,7 +87,8 @@ Ext.define('PartKeeprSetup.TestResultPanel', { { this.store.add({ name: test.message, - success: true + success: true, + waiting: true }); }, /** @@ -95,6 +105,7 @@ Ext.define('PartKeeprSetup.TestResultPanel', { rec.set("success", test.success); rec.set("message", test.resultMessage); rec.set("errors", test.errors.join("<br/>")); + rec.set("waiting", false); } rec.commit(); diff --git a/web/setup/js/wizard/BreadCrumbWizard.js b/web/setup/js/wizard/BreadCrumbWizard.js @@ -26,7 +26,8 @@ Ext.define('Ext.ux.BreadCrumbWizard', { defaults: { cls: 'x-wizard-component' }, - initComponent: function () { + initComponent: function () + { var me = this, breadCrumbComponents = [], cardItems = [], @@ -48,10 +49,11 @@ Ext.define('Ext.ux.BreadCrumbWizard', { disabled: index !== 0, pressed: index === 0, index: index, - text: childView.breadCrumbTitle, + text: childView.breadCrumbTitle + " ยป ", listeners: { toggle: { - fn: function (button, pressed) { + fn: function (button, pressed) + { if (pressed) { this.switchView(button.index); } @@ -73,6 +75,11 @@ Ext.define('Ext.ux.BreadCrumbWizard', { items: cardItems }); me.items = [ + Ext.create('Ext.Img', { + style: 'background-color: white;', + height: 90, + src: 'images/partkeepr-setup.svg' + }), me.breadCrumbContainer, me.cardContainer, { @@ -87,6 +94,13 @@ Ext.define('Ext.ux.BreadCrumbWizard', { }, items: [ { + text: 'Previous', + itemId: 'previousButton', + handler: me.onPrevious, + disabled: true, + scope: me + }, + { text: 'Next', itemId: 'nextBtn', handler: me.onNext, @@ -104,13 +118,21 @@ Ext.define('Ext.ux.BreadCrumbWizard', { me.callParent(); }, - switchView: function (index) { + switchView: function (index) + { var nextBtn = this.down('#nextBtn'), + previousButton = this.down('#previousButton'), childViewCount = this.cardContainer.items.getCount(); if (index < childViewCount) { this.cardContainer.getLayout().setActiveItem(index); this.currentIndex = index; + if (index === 0) { + previousButton.disable(); + } else { + previousButton.enable(); + } + if (index === childViewCount - 1) { nextBtn.setText('Submit'); } else { @@ -120,7 +142,23 @@ Ext.define('Ext.ux.BreadCrumbWizard', { throw new Error('Invalid view index: ' + index); } }, - onNext: function () { + onPrevious: function () + { + var me = this, + childViewCount = this.cardContainer.items.getCount(), + currentIndex = me.currentIndex, + breadCrumbButton; + + for (var i = currentIndex; i < childViewCount; i++) { + breadCrumbButton = me.breadCrumbContainer.items.getAt(i); + breadCrumbButton.disable(); + } + breadCrumbButton = me.breadCrumbContainer.items.getAt(currentIndex - 1); + breadCrumbButton.toggle(); + + }, + onNext: function () + { var me = this, nextBreadCrumbButton, currentIndex = me.currentIndex, @@ -137,12 +175,15 @@ Ext.define('Ext.ux.BreadCrumbWizard', { } } }, - onClose: function () { + onClose: function () + { this.fireEvent('close', this); }, - getSubmitData: function () { + getSubmitData: function () + { var submitData = {}; - this.cardContainer.items.each(function (childView) { + this.cardContainer.items.each(function (childView) + { if (childView.getSubmitData) { Ext.merge(submitData, childView.getSubmitData()); }