Compare commits
344 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5084836737 | ||
|
|
063e3bbea6 | ||
|
|
c3c4e9def2 | ||
|
|
7820efc121 | ||
|
|
5a6fe6ccf8 | ||
|
|
c69038d3ae | ||
|
|
5939e46eee | ||
|
|
a8a0a59982 | ||
|
|
73a08c031c | ||
|
|
c77e7bf725 | ||
|
|
7a4299c724 | ||
|
|
b9b0239837 | ||
|
|
a43ae71afd | ||
|
|
c4339a5d94 | ||
|
|
b161a38e9b | ||
|
|
735268034d | ||
|
|
aad473486f | ||
|
|
08970f2b7b | ||
|
|
6e8ad5b085 | ||
|
|
145d386ce2 | ||
|
|
94bfab762b | ||
|
|
20d8ad29e5 | ||
|
|
bbdbd5397c | ||
|
|
527650d03b | ||
|
|
126121065c | ||
|
|
48ccf844fa | ||
|
|
7556f989df | ||
|
|
8207597a58 | ||
|
|
1137768f84 | ||
|
|
5f6925858b | ||
|
|
77d1d93ebc | ||
|
|
c95af84452 | ||
|
|
62b5ec5b02 | ||
|
|
9f9a9a51b3 | ||
|
|
a2dd2509fd | ||
|
|
3c00f38a0f | ||
|
|
767e2c69f3 | ||
|
|
3b491d4a6b | ||
|
|
179ef7f060 | ||
|
|
a0fce2e0fb | ||
|
|
bce06543b2 | ||
|
|
9841dbbbc4 | ||
|
|
d61506fcf7 | ||
|
|
6a7fcd5c40 | ||
|
|
b4b273fc43 | ||
|
|
495201ebf7 | ||
|
|
e6d0d83070 | ||
|
|
564d5fcb31 | ||
|
|
c0a58897c0 | ||
|
|
1c2e5ecc0f | ||
|
|
6109368799 | ||
|
|
f8ea40d3d1 | ||
|
|
2fb65c5682 | ||
|
|
c6419e1c07 | ||
|
|
ba58e718b4 | ||
|
|
30c8fffa0a | ||
|
|
a560d4db31 | ||
|
|
fe72139410 | ||
|
|
6f9daa28eb | ||
|
|
d408bb9086 | ||
|
|
5f3bc8e74b | ||
|
|
bd3409285f | ||
|
|
18a3ff67cb | ||
|
|
61eda122e4 | ||
|
|
6cb70e865e | ||
|
|
4b32c28f7e | ||
|
|
f0a9b2c71d | ||
|
|
2e0fa9126a | ||
|
|
63b1f3834e | ||
|
|
1a4f148318 | ||
|
|
9de083afa7 | ||
|
|
551b5c42d8 | ||
|
|
30966b14af | ||
|
|
9bbf933b05 | ||
|
|
f8143b6c7c | ||
|
|
efba1b9038 | ||
|
|
80090a41ec | ||
|
|
0cff78d127 | ||
|
|
e88a81141f | ||
|
|
c88ce0d14d | ||
|
|
33e7ce6761 | ||
|
|
766afdeeae | ||
|
|
1edd6d3542 | ||
|
|
9be50152b3 | ||
|
|
7ad6dda260 | ||
|
|
e4b45231ec | ||
|
|
6b853750e5 | ||
|
|
dc1380edd1 | ||
|
|
b53847cb61 | ||
|
|
06b465540d | ||
|
|
0a734d8502 | ||
|
|
98eda57188 | ||
|
|
46781c94cd | ||
|
|
3a06d8802d | ||
|
|
0e26480674 | ||
|
|
92a4f025d8 | ||
|
|
5529204b17 | ||
|
|
da43f44fea | ||
|
|
ff23616bb5 | ||
|
|
de59f654af | ||
|
|
7d9c90f8dd | ||
|
|
b0886f970a | ||
|
|
afdf00eacb | ||
|
|
51148f1371 | ||
|
|
d58cc8d490 | ||
|
|
0c827b318b | ||
|
|
5d946b19cb | ||
|
|
d2e23adf84 | ||
|
|
7d35fae0f4 | ||
|
|
605d0ed8e1 | ||
|
|
c92f09fddb | ||
|
|
2cde817ffb | ||
|
|
87bf51b033 | ||
|
|
06b3d6e5ce | ||
|
|
b32379393f | ||
|
|
bbcc8aa9ac | ||
|
|
865c302f71 | ||
|
|
2cf8256079 | ||
|
|
e2a2746ed6 | ||
|
|
6854c568c7 | ||
|
|
d952a1199b | ||
|
|
7f2ccc860b | ||
|
|
f0d3d1b036 | ||
|
|
d9b9224045 | ||
|
|
8685e90513 | ||
|
|
a9f15fbcae | ||
|
|
7d266fdc4e | ||
|
|
7f03c7538f | ||
|
|
d90d7d7ddd | ||
|
|
7881e70afb | ||
|
|
e61f254ffc | ||
|
|
678b7700b4 | ||
|
|
1d1c14ae21 | ||
|
|
66d1872230 | ||
|
|
faa999ab2b | ||
|
|
6678905d79 | ||
|
|
3e98f05564 | ||
|
|
35bbea3052 | ||
|
|
86623822f5 | ||
|
|
ad1a9396ac | ||
|
|
2c6597c5fb | ||
|
|
da983af2cb | ||
|
|
c79fd5ed30 | ||
|
|
2d9e49f245 | ||
|
|
75d5f494a3 | ||
|
|
40852f9a6a | ||
|
|
7f07f35beb | ||
|
|
c6be6f480e | ||
|
|
617cc67467 | ||
|
|
0c9bc4e59e | ||
|
|
72048a5267 | ||
|
|
80d2347095 | ||
|
|
fa794d7a15 | ||
|
|
85b6571bc3 | ||
|
|
14aa12eb09 | ||
|
|
8af799614e | ||
|
|
f9e0add436 | ||
|
|
3782531f57 | ||
|
|
fab313a908 | ||
|
|
4e70cfdb95 | ||
|
|
75bbbcb4ca | ||
|
|
abf91c7b29 | ||
|
|
603fccb26c | ||
|
|
333d858f33 | ||
|
|
c9628722cb | ||
|
|
e56ccb0c82 | ||
|
|
61d916d94d | ||
|
|
7e573c73f9 | ||
|
|
4aa4e7c9fc | ||
|
|
161d72390b | ||
|
|
53ab21b016 | ||
|
|
7bb9929624 | ||
|
|
25dea384fe | ||
|
|
ceb93926a3 | ||
|
|
e9a6261752 | ||
|
|
434dbe035c | ||
|
|
f5e14e59e9 | ||
|
|
c8bf26a3b3 | ||
|
|
139d206413 | ||
|
|
a341db4cf7 | ||
|
|
b66f55362f | ||
|
|
fdb92a2012 | ||
|
|
b3a75690f1 | ||
|
|
0292a0fee6 | ||
|
|
c14761b9a1 | ||
|
|
8404736662 | ||
|
|
9edcc39de2 | ||
|
|
1620186f5d | ||
|
|
94afe20c20 | ||
|
|
d254f9809f | ||
|
|
18209c2448 | ||
|
|
519575893d | ||
|
|
f794218b6f | ||
|
|
4932fe3397 | ||
|
|
4f18a71124 | ||
|
|
07e9ff4290 | ||
|
|
176264b317 | ||
|
|
4c3033d414 | ||
|
|
61e6d55bcf | ||
|
|
c00086c740 | ||
|
|
e01b1b3935 | ||
|
|
c2c0196a3d | ||
|
|
3da652216b | ||
|
|
0ffb5df40b | ||
|
|
cfc26b283c | ||
|
|
1a615f8941 | ||
|
|
41dd7a2b2a | ||
|
|
c0b61991ba | ||
|
|
1597461c02 | ||
|
|
46c1f2a28b | ||
|
|
77fd73bc1b | ||
|
|
3ad17d64b0 | ||
|
|
412ec53d08 | ||
|
|
6f3be59b14 | ||
|
|
fce4c4dcb1 | ||
|
|
bb7d3d1a85 | ||
|
|
ff7499e373 | ||
|
|
958a7298fe | ||
|
|
69b80dc9c6 | ||
|
|
60531450c8 | ||
|
|
cbfdb88e13 | ||
|
|
fcd62d72b1 | ||
|
|
e8355fe4ff | ||
|
|
aabf879464 | ||
|
|
41928e4bb9 | ||
|
|
6f38f76e4a | ||
|
|
5cfb2d5f6a | ||
|
|
f6141e59e4 | ||
|
|
d581fbc2c8 | ||
|
|
ab0a8b3b61 | ||
|
|
4243710378 | ||
|
|
2a0350b9d1 | ||
|
|
f58b448f6b | ||
|
|
1f0625cfa1 | ||
|
|
5e4175723c | ||
|
|
61f1b145b7 | ||
|
|
5db853dbdd | ||
|
|
87d6d83c41 | ||
|
|
1d3d41b808 | ||
|
|
fc81e404ca | ||
|
|
3af215de45 | ||
|
|
2244c60499 | ||
|
|
9cf2798424 | ||
|
|
e23c0cb89f | ||
|
|
1684d211ff | ||
|
|
96e40721b2 | ||
|
|
e94c24ded7 | ||
|
|
ebe13fd665 | ||
|
|
fe2d696f1f | ||
|
|
3656822ac9 | ||
|
|
009b66eccf | ||
|
|
da3743ad55 | ||
|
|
47136ca774 | ||
|
|
00b3556188 | ||
|
|
b2b11812bd | ||
|
|
5e5b32e060 | ||
|
|
662c3f04dd | ||
|
|
2cdfeacc1b | ||
|
|
7559f5836b | ||
|
|
b2af86230a | ||
|
|
482c28804a | ||
|
|
48481586ec | ||
|
|
f33844d4af | ||
|
|
35f3350ddf | ||
|
|
84affbafa6 | ||
|
|
ae2d2ca2be | ||
|
|
f9dcefcc21 | ||
|
|
cb171bcac5 | ||
|
|
b92e46180c | ||
|
|
62d5ed48f0 | ||
|
|
83c6371016 | ||
|
|
33dd59fb81 | ||
|
|
e72577cbd8 | ||
|
|
85c22c897a | ||
|
|
6a89728380 | ||
|
|
d31c12cfaf | ||
|
|
91d2b89d68 | ||
|
|
fb85ac8d07 | ||
|
|
7ef17365be | ||
|
|
00b16c6434 | ||
|
|
4fd17f267a | ||
|
|
54b63fa218 | ||
|
|
70c770a975 | ||
|
|
cbf1fc1988 | ||
|
|
a71ad5dd02 | ||
|
|
22942c3bef | ||
|
|
b98fa6075e | ||
|
|
d88b90c398 | ||
|
|
ff8b88d187 | ||
|
|
f532665f06 | ||
|
|
6bab442651 | ||
|
|
df0da15dbb | ||
|
|
696325ac8b | ||
|
|
f1afe1ed20 | ||
|
|
456d8e365a | ||
|
|
6746c18092 | ||
|
|
45ae13749d | ||
|
|
330a6d0f87 | ||
|
|
76a0ef8d83 | ||
|
|
4a175aea4e | ||
|
|
90536b1cc2 | ||
|
|
f62148b28c | ||
|
|
100ac9dba0 | ||
|
|
dba243b1f7 | ||
|
|
4c8239c03d | ||
|
|
dab3a7135c | ||
|
|
0dae4cef08 | ||
|
|
14280a277c | ||
|
|
e9ac0a3209 | ||
|
|
efebfe3a13 | ||
|
|
472b7056c9 | ||
|
|
984ef44a43 | ||
|
|
94e8ca0c86 | ||
|
|
58a8d2f077 | ||
|
|
9f38a62fe5 | ||
|
|
c79e830888 | ||
|
|
ad25c048c4 | ||
|
|
bb33e3c831 | ||
|
|
f62f22b4bf | ||
|
|
7d339624b8 | ||
|
|
f27fb90457 | ||
|
|
2115c82587 | ||
|
|
4076b29b63 | ||
|
|
817384b761 | ||
|
|
3f9d9f23d5 | ||
|
|
7d5ee9750f | ||
|
|
1c333e4a24 | ||
|
|
4ae624a541 | ||
|
|
2540e90c37 | ||
|
|
2d196b1595 | ||
|
|
18fc20777b | ||
|
|
61b04d6e40 | ||
|
|
3263543d84 | ||
|
|
9ea4386354 | ||
|
|
ac23e8fd02 | ||
|
|
6bb3f222ea | ||
|
|
d7b7a3a4a8 | ||
|
|
4502582beb | ||
|
|
9355fcb58f | ||
|
|
c6f23e7b27 | ||
|
|
b986b3276c | ||
|
|
3e3935485f | ||
|
|
7047af44f6 | ||
|
|
2d5e9b6ea5 |
@@ -1,37 +0,0 @@
|
||||
ls
|
||||
pwd
|
||||
cd app
|
||||
ls
|
||||
cd views/
|
||||
cd backend/
|
||||
ls
|
||||
cd users/
|
||||
ls
|
||||
vi view.blade.php
|
||||
ls -alF
|
||||
cd
|
||||
pwd
|
||||
ls -alF
|
||||
pwd
|
||||
cd app
|
||||
ls
|
||||
cd views/
|
||||
cd backend/
|
||||
cd users/
|
||||
ls
|
||||
ls -alF
|
||||
chown snipeitftp view.blade.php
|
||||
sudo chown snipeitftp view.blade.php
|
||||
pwd
|
||||
ls
|
||||
vi view.blade.php
|
||||
set noswapfile
|
||||
set nobackup
|
||||
vi view.blade.php
|
||||
touch delete.me
|
||||
vi delete.me
|
||||
ls
|
||||
ls -alF
|
||||
touch view.blade.php
|
||||
touch index.blade.php
|
||||
vi view.blade.php
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -21,3 +21,4 @@ crowdin.yaml
|
||||
public/uploads/logo.gif
|
||||
public/uploads/logo.png
|
||||
.siteflow
|
||||
public/assets/.siteflow
|
||||
|
||||
170
CHANGELOG.md
170
CHANGELOG.md
@@ -1,5 +1,175 @@
|
||||
|
||||
|
||||
### v1.2.6.1 - Released Mar 12, 2015 08:25:28
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/7047af44f6544d2eeed0f0fcefdbdd44489f189a">view</a> • Fixed layout for remember me button
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/4502582beb064ffeee4a1cdf892f513e58534014">view</a> • Trying to fix pre-commit hook :(
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/61b04d6e40baa9054e1701455259d8d62fa868ff">view</a> • Fixes #579 - user cannot accept more than once
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/2d196b1595ec87f119ad5a82f8f676918c52c896">view</a> • Fixes #602 for strict_mode
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/2540e90c37f37515d8d0277a4152c4b8198a4222">view</a> • Fixes #605 - hides user requestable view from admins
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/1c333e4a24a4950418175a8c354d7541637b7658">view</a> • Fixes #596 - better routes for checking in multiple items from user
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/7d5ee9750f912d85ac0c7f42e2beaba7e026989c">view</a> • Added #596 fix for accessories
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/3f9d9f23d5190052deb1f36be919c650e8f773b8">view</a> • Fixes #280 - updated link to use config url
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/817384b7615a301d6d692aefe6e41cd92ecfd6e1">view</a> • Fixes #597 - print-friendly view on users
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/2115c82587e06049245f17f9d710fbc7a61e57b9">view</a> • Fixed DB format for nullable EULA
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/f62f22b4bf1399c3b98041dfe17f4cc8450847b2">view</a> • ref #599. showing groups in user detail view. fixes a small design bug with group edit view
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/ad25c048c4a52a7f80a479a3b7d621aaad18b1d7">view</a> • Updated Sentry version to fix #625
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/d31c12cfafb2ba323973964215f033bd9aeb1f9b">view</a> • Merge pull request #629 from uberbrady/unicode_fix
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/33dd59fb814089c81886c0264b2356df2b212864">view</a> • Fix #637 - Remove Deleted Models from drop down
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/cb171bcac5c4ccbb347f370e3d2b28783378c0b2">view</a> • Fixes #645 - adds zip and rar to filetype
|
||||
|
||||
|
||||
### v1.2.6 - Released Feb 28, 2015 08:27:45
|
||||
|
||||
|
||||
### v1.2.6-beta - Released Feb 27, 2015 03:17:06
|
||||
#### This is a pre-release
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/30df21c7aa2582bc3b1efbfd788c1aea2733aa7d">view</a> • Fixed missing checkedout-to info on asset view
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/70ae59ed6260101bcfb6e3cbd6309ecb9c1c935a">view</a> • Fixed a bug when no assets are in table that the autoincrement method blows up. Also optimzed the logic to get max id instead of popping top off creation date.
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/f8e12cabd4af8875abd759a3c9d6c2216cb88601">view</a> • Fixes #476 - added logo upload and header color
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/f85061f988a946f1d4a284fbfc8c442636c1364c">view</a> • Fix #541 - Headers not being skipped if checked
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/8b3e22b58e080b44e4de809b8598283fa6ba5bb0">view</a> • Fixes #546 - only insert data if values exist
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/083cb1b5ec51aa2b6932a59b9436a1a45fad5460">view</a> • Fix activate for strict db
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/35cf5b3d609fec2bc3613bdae42d338448413520">view</a> • Fixes #423
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/097bb38a231795aa52ff772a38887700e828256d">view</a> • Fixes #163 - accept acceptance + eula
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/b2af455523fcca1bb02018b38fdb6dc4861819d8">view</a> • Merge conflict resolution. Added a use at the same line as remote. Fixed
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/8879bff16084b2cfa0280fcb1f83d3f90368797f">view</a> • Fixed bug for reporting on upload in dashboard
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/3135869d5a3fafcf70e49dcbb99e36c2ec04ddd0">view</a> • Fixed font path
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/a5a1c4223b357b9cc2751a28e0c4e3085e476733">view</a> • Fixed chevrons
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/734dc49564e4f970846f786177c9d2928284fb5f">view</a> • Fixed icon
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/a6232cbfd8050ace613259df56afae243954c625">view</a> • Fix language string for create accessory
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/c2bbc1281ccdda65caa55665c66c78613142099f">view</a> • Mobile fixes
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/29863004e2e622a9b3b4616abdcd92f2b950bebe">view</a> • more small mobile fixes
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/8eaa70c39b3ace90a517387dc91f452aede18958">view</a> • Fixes #567 - bug in depreciation report csv export
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/e41621def05994302627cd4a6a81abd8e43c86be">view</a> • Fixed relation between accessory and category
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/9f3edd701b51a7aecf792e5736534c1bb15aca9a">view</a> • Fixes #565 - Soft Delete Models and Allow Restore
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/528c06cf7fb4f5c35d4b90eb256c0d195b8366b7">view</a> • Reverting icon fix
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/1ac401f0c036eca0cec1df0986d4c7e1903556fa">view</a> • Fixed EULA mail
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/6d16c97902dadad2351b627f3157257774a075f3">view</a> • Fixed back arrow
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/3e189d3502f8147c012b641cc366394875e9005c">view</a> • Fixes #538 - sortable tables
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/31df29cac878deeb75d8b9b5a2efc7c84ef4b592">view</a> • Fixed funky layout from datatables
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/efaf067b948899d0b784f47092dc3bc22fe504ca">view</a> • Fixed user relationship
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/5010720a976019306e37b89f5aa0e917c0ffdea3">view</a> • Fixed accessory relationship
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/a20e1f6943eab11fc937fcfeb3fe99dc0d520734">view</a> • Fixed attach to relation
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/19ad8970d76a1676de3494b758efa65c0ed6a5c1">view</a> • Fixed arrow icon
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/430b8233ed6f23402597fe54215b9988a3405dd7">view</a> • Fixed user relationship
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/c0c563b1c77ff9942212af89384c8ded40b83b29">view</a> • Fixes accessory relationshop for pivot
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/ef6eae63d86f159a170c3a322a44e08bab827080">view</a> • Fixed error icon
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/d33dcbbcb12172527cec977f679198f594ac975b">view</a> • Fixed bad method call in accessories on delete
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/04735f1affd2fdff9d6cf96ed583ece895cfb341">view</a> • Fixed assetlog display
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/c484afb12b0720eaba2d28f501bf547e2ad9caa9">view</a> • Fixed typo for accessories accept
|
||||
|
||||
|
||||
### v1.2.5 - Released Feb 18, 2015 03:18:10
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/00f7717142e11b90764ffce2d554c566f8ad219f">view</a> • Fix #475 and styling
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/49f25a23a99c08606d58101e039a885b89503fa7">view</a> • Merge pull request #516 from splaer/fix-475
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/58ff929d7193b054073ef46ae2fafdef51d51919">view</a> • Fixes error when no model present because new asset
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/f57c61dd4d789635cee6f62899807b1a7928800e">view</a> • Possible fix for #518 - license count issue
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/064c0211dbb310d1dfdb126e3ce2cee72a80f628">view</a> • Fix #517 - User Requestable Assets
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/4a5007264e1712250726047162df91041d12d28c">view</a> • Fixed mac address not showing
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/17258b73a1c09918960d894702a0ae341a18f0b8">view</a> • Fixes #520 - state no longer required
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/f40bb7b8b3a17ff772c797a3f91a845b068be3d2">view</a> • Fixes #520 postal code requirement
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/08ee02d0cd4d1ff9ed2b0600b75390c1e34c1f53">view</a> • Fixes #525 - added serial to asset model UI
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/24f5cdc743acd55ead02282e13e07f3cbd3551b0">view</a> • Fixes #523 - added file uploads to assets
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/e02bea4275306fb3d2696e3018066b4b1486fa8d">view</a> • Fixes #457 - added bulk options to hardware
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/4e4144ea749974332f645fa77eb74fbbfef51b90">view</a> • Fixed blade reference
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/b32d74de57a3a26326a220236838f57550549ca5">view</a> • Fixed seeder with duplicate ID
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/ea6a6d098ad1795fc5463c61b72240cdcd8a43e7">view</a> • Fixes #440 - removed unique constraint on serial
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/38961298ed6efe3649fdbf4b1e9b3278ab85567a">view</a> • Fixes #439 - loads javascript and CSS locally
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/063e5c407c8f817c16026887be16eeb42598417f">view</a> • Fixed the depreciation report, fixes to calculate current depreciated value (which were only used there). Additional fixes and refactoring around Depreciable, in terms of how assets get depreciation via models, and licenses get depreciation directly.
|
||||
|
||||
|
||||
### v1.2.4 - Released Feb 12, 2015 06:57:47
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/2277b6ee699a78108523eee11695a280e76b1bb4">view</a> • Fixed checkout logic for new assigned_to
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/dbc93de6b3966470f83254547f8029c60f489490">view</a> • Fixes checkin button on view
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/c06a4d4118039d112b69e48f9d4efc2be796f2e0">view</a> • Fixed wonky checkin/checkout buttons
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/31f4ba88f655e1386f2f4f0efae84399f7aa6d52">view</a> • Fix RTD query to not display checked out asset
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/5867c604104781c351f870ff3e0fd4b4d6eeb35a">view</a> • Fixed scope chaining on assigned_to
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/a2178392e65bcc35594d516a20f67eea8466e5c1">view</a> • Fixed seeder
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/7715731c4a2e423afb94873227eb728ad4877221">view</a> • Fix count in header
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/c2e532e32e4943e251dcb5fdd005e9b65d9798a5">view</a> • Fixed language file for status label messages
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/f36029a34a696d89b1058c9abdca7953d51e2bc4">view</a> • Fixed migration for to set assigned_to to null per #506
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/f72b38579037d76b5b188c5d85e24ca567e2480b">view</a> • Fix licenses so null instead of 0
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/34032c73ceee7a9666680f21bf7490fdc32dbdb6">view</a> • Fixed licenses so null instead of 0
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/7b165a12e05396b72381fc2789124acd2b98a2b8">view</a> • Fixes #508 - compacted UI for licenses overview
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/c89be345033bfbed326ffd4207a63438ea09378f">view</a> • Fixes #329 and #454 - added category asset view
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/35a133bbf9f7330a038dda2e79995b9825ca7633">view</a> • Fixes #382 - allow admins to restore deleted assets
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/80e10c4c9838ae4acea8847ed907c6ad05bfac1a">view</a> • Fixes #387 - sortable asset view by manufacturer
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/e343c157c5998d6f30a4e25da23ad1092d50c103">view</a> • Fixed naming conflict for requestable
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/cd5a352961a1e1e8d90368abf81fedee5ce94bef">view</a> • Fix for wrong math on remaining licenses when assigned to an asset
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/342a8b81afb2060a128d0667acc15fa5caafc2ea">view</a> • Fix for error when asset has null status
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/8cdd2156143864974423bea70521d45db6d0cb9c">view</a> • Fixed intenting
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/fbf03b225d732e12821bfc83b9bae7fb7b4b8be8">view</a> • Fixes #509 - added MAC address as model option
|
||||
|
||||
|
||||
### v1.2.4-beta - Released Feb 11, 2015 01:11:40
|
||||
#### This is a pre-release
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/389c27b2e691743eb361cc1fbe4ece4259ae6046">view</a> • Fixes #477 - wrong sidebar on asset view
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/7009b24748edab02921c609c26bc549fa96dcd2f">view</a> • Merge pull request #498 from snipe/fixes/477
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/c1600a33db6d4463d27f74f87389489210de700e">view</a> • Fixes #499 - timestamps in asset logs
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/b360736b7728d2ac872193bbe8888037c9794494">view</a> • Fixes #484
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/addfcd4bc5417784f95145394940f90f1302376f">view</a> • Fix RTD bug
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/d2438f9fdb9b281025c17e22ac2bfaa07ce04a2d">view</a> • Fixes #502 - normalized statuses
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/aef3a734a3530f109b82fc0897e25727293f9862">view</a> • Small fix for pending status
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/f175f52530e58bd5ab80139c526fc7838750cb11">view</a> • Fixed spacer in sidenav for list all
|
||||
|
||||
|
||||
### v1.2.3 - Released Feb 09, 2015 12:22:12
|
||||
|
||||
|
||||
### v1.2.3-beta - Released Feb 07, 2015 06:02:52
|
||||
#### This is a pre-release
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/950567e9d66a6836cbca1383d24fc8548d3cbadf">view</a> • Fixes issue related to #471 - assigning to user ID 0 causes erro
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/2b86f14e30c155f72b903428fd05a896ee9adfcc">view</a> • Possible fix for #484 - fullname issue
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/b3af102d22a2f4f147b863e0ba8c2e4064aad01a">view</a> • Fixed safe mode issue with license seeder
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/1db806f8b283e13dd04f20335d7087d12a04fa23">view</a> • Fixes #488 - longer user jobtitle
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/f5efc368a58e1b26689dadb285918b090b66eb59">view</a> • Fixes #487 - maintained and purchase order in strict mode
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/4dc81ce65fddced3282a9255a5a31ba8aa6a1458">view</a> • Resolves #478 - redirects non-reporting users to view assets page
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/cd338d2a70e1bd4dca3bc651813e51095d7155f0">view</a> • Fixes #483 - line breaks in notes on view
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/e67ba8a7437d4f27ae869072898e65749602f2dd">view</a> • Fix reporting error on depreciation
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/1aeb4de0fae723801f0cdb555c77b5ee17ae1919">view</a> • Possible fix for #491 - solving for giticide on package dep
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/c255edaf617872ac4a896106e56cc816209c2d5b">view</a> • More travis fixes
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/feeef4b66c1b6049a1f18c67e034907ea26c7da9">view</a> • Fix for asset log incorrectly using soft deletes
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/140bd137a48c199269d635aef57d14b1f0a4330a">view</a> • Minor display fixes
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/29f5b7c5e3adc994b727842730c0157429520197">view</a> • Fixed datetime
|
||||
|
||||
|
||||
### v1.2.2 - Released Jan 22, 2015 11:41:36
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/4a77dee79c18f0e2ab155c7024234150ce98b808">view</a> • Fixes #447 - added asset log entry on save
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/d85e5246807e597c1efac85c368a642a6fdcf944">view</a> • Fixes #451 - allows spaces in state name
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/95141d49ba3c4f2b17ed6a26c20e7ad2a8aac9cb">view</a> • Fixes #432 - add model name to checkout
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/3787a3f4bab9908f4903abdc2951cc254c8dc911">view</a> • Fixed language strings for incrementing IDs
|
||||
|
||||
|
||||
### v1.2.1 - Released Jan 22, 2015 09:24:01
|
||||
|
||||
|
||||
### v1.2.0 - Released Jan 22, 2015 09:24:01
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/8699a90093bd27c0502dcc25f6e7d55344d54a3b">view</a> • Fixed changelog
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/cff24309a1514f9ea991881ca72898c7a6358562">view</a> • Possibly fixes #343
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/b2d5dc9ec5460ff1f02db6c1a31ea87d224de4c9">view</a> • Fix #342
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/74ae2fceea68d18514e87edc008cb3016361beee">view</a> • Fix class on th
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/fc2d472ed350d7d63fb97942d00a97b62d4bed55">view</a> • Fixed english language string
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/89c7159c56f88bcf8459a5eb02d79d636335cb28">view</a> • Fix array check for empty rows
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/7ddc6d497af13e7894031ac763939be9863889a4">view</a> • Fix Report Langs
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/13b173409fcd5b5ce8e79566b5110eadcf51c233">view</a> • Fix License form langs
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/b73ae3147a60b29ac455063ecf419a609cce2cac">view</a> • Fixes #362, reduced asset name to 2 char min
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/637009054cc74b17e2dd226c6f8c467eed5b0962">view</a> • Fixed typo in english
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/6905d82fc48998f9c95c454c8bf37a34e30c002e">view</a> • Fixes #374 to keep the requirement to PHP 5.4
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/102481631330fbed894bf72510845bff6c88e59e">view</a> • Fix #377 - Checkout users last_name, first_name
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/d6a0249c60cbb026b2e3190285d50723a76f22ee">view</a> • Fixed #373 - added ability to auto-increment asset tags
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/1b41c974cf67c550b2cae39eeec8f90cb2da79e0">view</a> • Fixes #348 - remove constraints on license keys
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/89a2b87e42c18b308835ef71d196b91002b451ef">view</a> • Fixes #367 - added model number to dropdown
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/64c16a0bacfcde7c4d92971f2129f1b1aeac2c0e">view</a> • Fixes #386 and #273 - altered column type to text
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/daefc86e5878a21f9909806599f22198360c1f9b">view</a> • Formattig fixes for #386
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/73dd339772fcc35e50603ded115f67714620da69">view</a> • Fix #388 - License not showing checked out in view
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/0663ccb99fa926ff944dded330ba1f0cd95abbb3">view</a> • Check if ->adminuser->id isset before trying to print the fullName so we can catch when a user that created an asset has been deleted. Fixes #349
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/533be7f942cb6dfccd1e8a79c043d61791e4c54b">view</a> • fixed #435. using namespace with route groups to increase the readability
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/e434616db83a8d693af63b4705e1b24476fc3c17">view</a> • Merge pull request #436 from rashivkp/fix-435
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/5e496672c66428a1bbd37772aabd44f8bb1cb0fa">view</a> • Fixes #469
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/3c141e8f5017e8f161b6fd1fb82b288283b8450c">view</a> • Fixes #467
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/548de1a1a217e6b5c6fcbbf6cd4918f078e64542">view</a> • Fixes #468 - updated ordering on license checkout
|
||||
|
||||
|
||||
### v1.1 - Released Nov 06, 2014 02:16:26
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/fafd03f00f49cb9ffe81d50aa9ca3d1f1fa1d043">view</a> • Added DB Prefix to Migrations
|
||||
* <a href="http://github.com/snipe/snipe-it/commit/309772e67d62989f1f60141a4a10d724a44c6baa">view</a> • Fixed operator for setting bool display
|
||||
|
||||
15
CODE_OF_CONDUCT.md
Normal file
15
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Contributor Code of Conduct
|
||||
|
||||
As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
|
||||
|
||||
We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.
|
||||
|
||||
Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
|
||||
|
||||
This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.1.0, available at [http://contributor-covenant.org/version/1/1/0/](http://contributor-covenant.org/version/1/1/0/)
|
||||
@@ -1,6 +1,10 @@
|
||||
# Contribution Guidelines
|
||||
|
||||
Please submit all issues and pull requests to the [snipe/snipe-it](http://github.com/snipe/snipe-it) repository in the `develop` branch!
|
||||
**Before opening an issue to report a bug or request help, make sure you've checked the [Common Issues](http://snipeitapp.com/documentation/common-issues/) and [Getting Help](http://snipeitapp.com/documentation/getting-help/) pages.**
|
||||
|
||||
## Developing on Snipe-IT
|
||||
|
||||
Please submit all pull requests to the [snipe/snipe-it](http://github.com/snipe/snipe-it) repository in the `develop` branch!
|
||||
|
||||
**As you're working on bug-fixes or features, please break them out into their own feature branches and open the pull request against your feature branch**. It makes it _much_ easier to decipher down the road, as you open multiple pull requests over time, and makes it much easier for me to approve pull requests quickly.
|
||||
|
||||
@@ -19,3 +23,9 @@ The labels we use in GitHub Issues and Waffle.io indicate whether we've confirme
|
||||
If you're not a coder but want to give back to the project and you're fluent in other languages, that's okay too. We use [CrowdIn](https://crowdin.com) to manage translations, and it makes it super-simple for you to add translations (or validate proposed translations) to the project without messing with code. __Check out [the Snipe-IT CrowdIn translation project here](https://crowdin.com/project/snipe-it/)__.
|
||||
|
||||
Thanks!
|
||||
|
||||
-----
|
||||
|
||||
## Contributor Code of Conduct
|
||||
|
||||
Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
|
||||
|
||||
@@ -9,7 +9,7 @@ This is a FOSS project for asset management in IT Operations. Knowing who has wh
|
||||
|
||||
It is built on [Laravel 4.2](http://laravel.com) and uses the [Sentry 2](https://github.com/cartalyst/sentry) package.
|
||||
|
||||
This project is being actively developed and we're [releasing quite frequently](https://github.com/snipe/snipe-it/releases). ([Check out the live demo here](http://snipeitapp.com/demo.php).)
|
||||
This project is being actively developed and we're [releasing quite frequently](https://github.com/snipe/snipe-it/releases). ([Check out the live demo here](http://snipeitapp.com/demo/).)
|
||||
|
||||
__This is web-based software__. This means there there is no executable file (aka no .exe files), and it must be run on a web server and accessed through a web browser. It runs on any Mac OSX, flavor of Linux, as well as Windows.
|
||||
|
||||
@@ -65,3 +65,8 @@ Whenever you pull down a new version from master or develop, when you grab the [
|
||||
php artisan migrate
|
||||
|
||||
Forgetting to do this can mean your DB might end up out of sync with the new files you just pulled, or you may have some funky cached autoloader values. It's a good idea to get into the habit of running these every time you pull anything new down. If there are no database changes to migrate, it won't hurt anything to run migrations anyway.
|
||||
|
||||
## Contributor Code of Conduct
|
||||
|
||||
Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ class AppCommand extends Command
|
||||
'email' => null,
|
||||
'password' => null
|
||||
);
|
||||
|
||||
|
||||
protected $dummyData = true;
|
||||
|
||||
/**
|
||||
@@ -103,7 +103,7 @@ class AppCommand extends Command
|
||||
$this->call('db:seed', array('--force'=>true));
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
// Seeding Settings table is mandatory
|
||||
$this->call('db:seed', array('--class' => 'SettingsSeeder', '--force'=>true));
|
||||
// Seeding Statuslabels is strongly recommended
|
||||
@@ -207,7 +207,7 @@ class AppCommand extends Command
|
||||
$this->userData['password'] = $password;
|
||||
} while( ! $password);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Asks the user to create dummy data
|
||||
*
|
||||
@@ -217,7 +217,7 @@ class AppCommand extends Command
|
||||
protected function askUserDummyData()
|
||||
{
|
||||
// Ask the user to input the user password
|
||||
$dummydata = $this->ask('Do you want to seed your database with dummy data? (deafult is yes): ');
|
||||
$dummydata = $this->ask('Do you want to seed your database with dummy data? y/n (default is yes): ');
|
||||
|
||||
$this->dummyData = ( strstr($dummydata, 'y' ) || empty($dummydata) ) ? true : false;
|
||||
}
|
||||
@@ -318,6 +318,7 @@ class AppCommand extends Command
|
||||
$data = array_merge($this->userData, array(
|
||||
'activated' => 1,
|
||||
'manager_id' => NULL,
|
||||
'notes' => 'Generated on install',
|
||||
'permissions' => array(
|
||||
'admin' => 1,
|
||||
'user' => 1,
|
||||
@@ -349,7 +350,8 @@ class AppCommand extends Command
|
||||
'first_name' => 'John',
|
||||
'last_name' => 'Doe',
|
||||
'email' => 'john.doe@example.com',
|
||||
'password' => 'johndoe',
|
||||
'password' => substr(str_shuffle(str_repeat('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', mt_rand(1,10))),1,10),
|
||||
'notes' => 'Generated on install',
|
||||
'activated' => 1,
|
||||
'manager_id' => 1,
|
||||
);
|
||||
|
||||
89
app/commands/Versioning.php
Normal file
89
app/commands/Versioning.php
Normal file
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
|
||||
class Versioning extends Command {
|
||||
|
||||
/**
|
||||
* The console command name.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $name = 'versioning:update';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Generate and update app\'s version via git.';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function fire()
|
||||
{
|
||||
// Path to the file containing your version
|
||||
// This will be overwritten everything you commit a message
|
||||
$versionFile = app_path().'/config/version.php';
|
||||
|
||||
// The git's output
|
||||
// get the argument passed in the git command
|
||||
$hash_version = $this->argument('app_version');
|
||||
|
||||
// discard the commit hash
|
||||
$version = explode('-', $hash_version);
|
||||
$realVersion = $version[0] . '-' . $version[1];
|
||||
|
||||
// save the version array to a variable
|
||||
$array = var_export(array('app_version' => $realVersion,'hash_version' => $hash_version), true);
|
||||
|
||||
|
||||
// Construct our file content
|
||||
$content = <<<CON
|
||||
<?php
|
||||
return $array;
|
||||
CON;
|
||||
|
||||
// And finally write the file and output the current version
|
||||
\File::put($versionFile, $content);
|
||||
$this->line('Setting version: '. \Config::get('version.latest'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the console command arguments.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function getArguments()
|
||||
{
|
||||
return array(
|
||||
array('app_version', InputArgument::REQUIRED, 'version number is required.'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the console command options.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function getOptions()
|
||||
{
|
||||
return array(
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -102,6 +102,7 @@ return array(
|
||||
'Cartalyst\Sentry\SentryServiceProvider',
|
||||
'Chumper\Datatable\DatatableServiceProvider',
|
||||
'Dinesh\Barcode\BarcodeServiceProvider',
|
||||
'Maknz\Slack\SlackServiceProvider',
|
||||
|
||||
),
|
||||
|
||||
@@ -175,6 +176,7 @@ return array(
|
||||
'Reader' => 'League\Csv\Reader',
|
||||
'DNS1D' => 'Dinesh\Barcode\Facades\DNS1DFacade',
|
||||
'DNS2D' => 'Dinesh\Barcode\Facades\DNS2DFacade',
|
||||
'Slack' => 'Maknz\Slack\Facades\Slack',
|
||||
|
||||
),
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ return array(
|
||||
|
|
||||
*/
|
||||
|
||||
'host' => 'smtp.mailgun.org',
|
||||
'host' => 'smtp.mandrillapp.com',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
0
app/config/packages/chumper/datatable/.gitkeep
Normal file
0
app/config/packages/chumper/datatable/.gitkeep
Normal file
210
app/config/packages/chumper/datatable/config.php
Normal file
210
app/config/packages/chumper/datatable/config.php
Normal file
@@ -0,0 +1,210 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Table specific configuration options.
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
'table' => array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Table class
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Class(es) added to the table
|
||||
| Supported: string
|
||||
|
|
||||
*/
|
||||
|
||||
'class' => 'table table-bordered',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Table ID
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| ID given to the table. Used for connecting the table and the Datatables
|
||||
| jQuery plugin. If left empty a random ID will be generated.
|
||||
| Supported: string
|
||||
|
|
||||
*/
|
||||
|
||||
'id' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| DataTable options
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| jQuery dataTable plugin options. The array will be json_encoded and
|
||||
| passed through to the plugin. See https://datatables.net/usage/options
|
||||
| for more information.
|
||||
| Supported: array
|
||||
|
|
||||
*/
|
||||
|
||||
'options' => array(
|
||||
|
||||
"pagingType" => "full_numbers",
|
||||
'processing'=>true,
|
||||
'language'=>array(
|
||||
'processing'=>'<i class="fa fa-spinner fa-spin"></i> Loading...'
|
||||
),
|
||||
'deferRender'=> true,
|
||||
'stateSave'=> true,
|
||||
'paging'=>true,
|
||||
'pageLength'=> Setting::getSettings()->per_page,
|
||||
'lengthMenu'=>array(array(10,25,50,75,100,125,150,-1), array(10,25,50,75,100,125,150,'All')),
|
||||
'tableTools' => array(
|
||||
'sSwfPath'=> Config::get('app.url').'/assets/swf/copy_csv_xls_pdf.swf',
|
||||
'aButtons'=>array(
|
||||
array(
|
||||
'sExtends'=>'copy',
|
||||
'sButtonText'=>'Copy',
|
||||
'mColumns'=>'visible',
|
||||
'bFooter'=>false,
|
||||
),
|
||||
array(
|
||||
'sExtends'=>'print',
|
||||
'sButtonText'=>'Print',
|
||||
'mColumns'=>'visible',
|
||||
'bShowAll'=>true,
|
||||
),
|
||||
array(
|
||||
'sExtends'=>'collection',
|
||||
'sButtonText'=>'Export',
|
||||
'aButtons'=>array(
|
||||
array(
|
||||
'sExtends'=>'csv',
|
||||
'sButtonText'=>'csv',
|
||||
'mColumns'=>'visible',
|
||||
'bFooter'=>false,
|
||||
),
|
||||
array(
|
||||
'sExtends'=>'xls',
|
||||
'sButtonText'=>'XLS',
|
||||
'mColumns'=>'visible',
|
||||
'bFooter'=>false,
|
||||
),
|
||||
array(
|
||||
'sExtends'=>'pdf',
|
||||
'sButtonText'=>'PDF',
|
||||
'mColumns'=>'visible',
|
||||
'bFooter'=>false,
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| DataTable callbacks
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| jQuery dataTable plugin callbacks. The array will be json_encoded and
|
||||
| passed through to the plugin. See https://datatables.net/usage/callbacks
|
||||
| for more information.
|
||||
| Supported: array
|
||||
|
|
||||
*/
|
||||
|
||||
'callbacks' => array(
|
||||
"stateSaveCallback"=>"function (oSettings, oData) {
|
||||
localStorage.setItem('DataTables_'+window.location.pathname, JSON.stringify(oData));
|
||||
}",
|
||||
"stateLoadCallback"=>"function (oSettings) {
|
||||
return JSON.parse(localStorage.getItem('DataTables_'+window.location.pathname));
|
||||
}",
|
||||
),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Skip javascript in table template
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Determines if the template should echo the javascript
|
||||
| Supported: boolean
|
||||
|
|
||||
*/
|
||||
|
||||
'noScript' => false,
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Table view
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Template used to render the table
|
||||
| Supported: string
|
||||
|
|
||||
*/
|
||||
|
||||
'table_view' => 'datatable::template',
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Script view
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Template used to render the javascript
|
||||
| Supported: string
|
||||
|
|
||||
*/
|
||||
|
||||
'script_view' => 'datatable::javascript',
|
||||
|
||||
|
||||
),
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Engine specific configuration options.
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
'engine' => array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Search for exact words
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If the search should be done with exact matching
|
||||
| Supported: boolean
|
||||
|
|
||||
*/
|
||||
|
||||
'exactWordSearch' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Enable to display all records.
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Be careful! It may be overloaded with large record.
|
||||
| Supported: boolean
|
||||
|
|
||||
*/
|
||||
'enableDisplayAll' => false,
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Limit display when iDisplayLength invaild
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
'defaultDisplayLength' => 10,
|
||||
)
|
||||
|
||||
|
||||
);
|
||||
0
app/config/packages/maknz/slack/.gitkeep
Normal file
0
app/config/packages/maknz/slack/.gitkeep
Normal file
122
app/config/packages/maknz/slack/config.php
Normal file
122
app/config/packages/maknz/slack/config.php
Normal file
@@ -0,0 +1,122 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|-------------------------------------------------------------
|
||||
| Incoming webhook endpoint
|
||||
|-------------------------------------------------------------
|
||||
|
|
||||
| The endpoint which Slack generates when creating a
|
||||
| new incoming webhook. It will look something like
|
||||
| https://hooks.slack.com/services/XXXXXXXX/XXXXXXXX/XXXXXXXXXXXXXX
|
||||
|
|
||||
*/
|
||||
|
||||
'endpoint' => '',
|
||||
|
||||
/*
|
||||
|-------------------------------------------------------------
|
||||
| Default channel
|
||||
|-------------------------------------------------------------
|
||||
|
|
||||
| The default channel we should post to. The channel can either be a
|
||||
| channel like #general, a private #group, or a @username. Set to
|
||||
| null to use the default set on the Slack webhook
|
||||
|
|
||||
*/
|
||||
|
||||
'channel' => '#general',
|
||||
|
||||
/*
|
||||
|-------------------------------------------------------------
|
||||
| Default username
|
||||
|-------------------------------------------------------------
|
||||
|
|
||||
| The default username we should post as. Set to null to use
|
||||
| the default set on the Slack webhook
|
||||
|
|
||||
*/
|
||||
|
||||
'username' => 'Snipe-IT Bot',
|
||||
|
||||
/*
|
||||
|-------------------------------------------------------------
|
||||
| Default icon
|
||||
|-------------------------------------------------------------
|
||||
|
|
||||
| The default icon to use. This can either be a URL to an image or Slack
|
||||
| emoji like :ghost: or :heart_eyes:. Set to null to use the default
|
||||
| set on the Slack webhook
|
||||
|
|
||||
*/
|
||||
|
||||
'icon' => null,
|
||||
|
||||
/*
|
||||
|-------------------------------------------------------------
|
||||
| Link names
|
||||
|-------------------------------------------------------------
|
||||
|
|
||||
| Whether names like @regan should be converted into links
|
||||
| by Slack
|
||||
|
|
||||
*/
|
||||
|
||||
'link_names' => false,
|
||||
|
||||
/*
|
||||
|-------------------------------------------------------------
|
||||
| Unfurl links
|
||||
|-------------------------------------------------------------
|
||||
|
|
||||
| Whether Slack should unfurl links to text-based content
|
||||
|
|
||||
*/
|
||||
|
||||
'unfurl_links' => false,
|
||||
|
||||
/*
|
||||
|-------------------------------------------------------------
|
||||
| Unfurl media
|
||||
|-------------------------------------------------------------
|
||||
|
|
||||
| Whether Slack should unfurl links to media content such
|
||||
| as images and YouTube videos
|
||||
|
|
||||
*/
|
||||
|
||||
'unfurl_media' => true,
|
||||
|
||||
/*
|
||||
|-------------------------------------------------------------
|
||||
| Markdown in message text
|
||||
|-------------------------------------------------------------
|
||||
|
|
||||
| Whether message text should be interpreted in Slack's Markdown-like
|
||||
| language. For formatting options, see Slack's help article: http://goo.gl/r4fsdO
|
||||
|
|
||||
*/
|
||||
|
||||
'allow_markdown' => true,
|
||||
|
||||
/*
|
||||
|-------------------------------------------------------------
|
||||
| Markdown in attachments
|
||||
|-------------------------------------------------------------
|
||||
|
|
||||
| Which attachment fields should be interpreted in Slack's Markdown-like
|
||||
| language. By default, Slack assumes that no fields in an attachment
|
||||
| should be formatted as Markdown.
|
||||
|
|
||||
*/
|
||||
|
||||
'markdown_in_attachments' => [],
|
||||
|
||||
// Allow Markdown in just the text and title fields
|
||||
// 'markdown_in_attachments' => ['text', 'title']
|
||||
|
||||
// Allow Markdown in all fields
|
||||
// 'markdown_in_attachments' => ['pretext', 'text', 'title', 'fields', 'fallback']
|
||||
|
||||
];
|
||||
@@ -13,7 +13,7 @@ return array(
|
||||
|
|
||||
*/
|
||||
|
||||
'debug' => true,
|
||||
'debug' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -26,7 +26,7 @@ return array(
|
||||
|
|
||||
*/
|
||||
|
||||
'url' => 'http://staging.yourserver.com',
|
||||
'url' => 'http://production.yourserver.com',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -28,7 +28,7 @@ return array(
|
||||
|
|
||||
*/
|
||||
|
||||
'host' => 'smtp.mailgun.org',
|
||||
'host' => 'smtp.mandrillapp.com',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -28,7 +28,7 @@ return array(
|
||||
|
|
||||
*/
|
||||
|
||||
'host' => 'smtp.mailgun.org',
|
||||
'host' => 'smtp.mandrillapp.com',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -28,7 +28,7 @@ return array(
|
||||
|
|
||||
*/
|
||||
|
||||
'host' => 'smtp.mailgun.org',
|
||||
'host' => 'smtp.mandrillapp.com',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
5
app/config/version.php
Normal file
5
app/config/version.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
return array (
|
||||
'app_version' => 'v1.2.7-master',
|
||||
'hash_version' => 'v1.2.7-master',
|
||||
);
|
||||
@@ -32,16 +32,18 @@ class ChangeEmailController extends AuthorizedController
|
||||
*/
|
||||
public function postIndex()
|
||||
{
|
||||
// Declare the rules for the form validation
|
||||
$rules = array(
|
||||
'current_password' => 'required|between:3,32',
|
||||
'email' => 'required|email|unique:users,email,'.Sentry::getUser()->email.',email',
|
||||
'email_confirm' => 'required|same:email',
|
||||
);
|
||||
|
||||
|
||||
if (Config::get('app.lock_passwords')) {
|
||||
return Redirect::route('change-password')->with('error', Lang::get('admin/users/table.lock_passwords'));
|
||||
} else {
|
||||
|
||||
// Declare the rules for the form validation
|
||||
$rules = array(
|
||||
'current_password' => 'required|between:3,32',
|
||||
'email' => 'required|email|unique:users,email,'.Sentry::getUser()->email.',email',
|
||||
'email_confirm' => 'required|same:email',
|
||||
);
|
||||
|
||||
// Create a new validator instance from our validation rules
|
||||
$validator = Validator::make(Input::all(), $rules);
|
||||
|
||||
@@ -32,16 +32,19 @@ class ChangePasswordController extends AuthorizedController
|
||||
*/
|
||||
protected function postIndex()
|
||||
{
|
||||
// Declare the rules for the form validation
|
||||
|
||||
|
||||
if (Config::get('app.lock_passwords')) {
|
||||
return Redirect::route('change-password')->with('error', Lang::get('admin/users/table.lock_passwords'));
|
||||
} else {
|
||||
|
||||
// Declare the rules for the form validation
|
||||
$rules = array(
|
||||
'old_password' => 'required|min:6',
|
||||
'password' => 'required|min:6',
|
||||
'password_confirm' => 'required|same:password',
|
||||
);
|
||||
|
||||
if (Config::get('app.lock_passwords')) {
|
||||
return Redirect::route('change-password')->with('error', Lang::get('admin/users/table.lock_passwords'));
|
||||
} else {
|
||||
|
||||
// Create a new validator instance from our validation rules
|
||||
$validator = Validator::make(Input::all(), $rules);
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ use Asset;
|
||||
use Actionlog;
|
||||
use Lang;
|
||||
use Accessory;
|
||||
use DB;
|
||||
|
||||
class ViewAssetsController extends AuthorizedController
|
||||
{
|
||||
@@ -49,11 +50,11 @@ class ViewAssetsController extends AuthorizedController
|
||||
// Check if the asset exists
|
||||
if (is_null($asset = Asset::find($assetId))) {
|
||||
// Redirect to the asset management page
|
||||
return Redirect::to('hardware')->with('error', Lang::get('admin/hardware/message.does_not_exist'));
|
||||
return Redirect::to('frontend/account/view-assets')->with('error', Lang::get('admin/hardware/message.does_not_exist'));
|
||||
} else {
|
||||
|
||||
|
||||
return View::make('frontend/account/view-asset', compact('asset'));
|
||||
return View::make('frontend/account/view-assets', compact('asset'));
|
||||
}
|
||||
|
||||
|
||||
@@ -101,39 +102,56 @@ class ViewAssetsController extends AuthorizedController
|
||||
// Check if the asset exists
|
||||
if (is_null($findlog = Actionlog::find($logID))) {
|
||||
// Redirect to the asset management page
|
||||
return Redirect::to('account')->with('error', Lang::get('admin/hardware/message.does_not_exist'));
|
||||
return Redirect::to('account/view-assets')->with('error', Lang::get('admin/hardware/message.does_not_exist'));
|
||||
}
|
||||
|
||||
|
||||
if ($findlog->accepted_id!='') {
|
||||
// Redirect to the asset management page
|
||||
return Redirect::to('account/view-assets')->with('error', Lang::get('admin/users/message.error.asset_already_accepted'));
|
||||
}
|
||||
|
||||
$user = Sentry::getUser();
|
||||
$logaction = new Actionlog();
|
||||
$user = Sentry::getUser();
|
||||
$logaction = new Actionlog();
|
||||
|
||||
// Asset
|
||||
if (($findlog->asset_id!='') && ($findlog->asset_type=='hardware')) {
|
||||
$logaction->asset_id = $findlog->asset_id;
|
||||
$logaction->accessory_id = NULL;
|
||||
$logaction->asset_type = 'hardware';
|
||||
|
||||
// software
|
||||
} elseif (($findlog->asset_id!='') && ($findlog->asset_type=='software')) {
|
||||
$logaction->asset_id = $findlog->asset_id;
|
||||
$logaction->accessory_id = NULL;
|
||||
$logaction->asset_type = 'software';
|
||||
|
||||
// accessories
|
||||
} elseif ($findlog->accessory_id!='') {
|
||||
$logaction->asset_id = NULL;
|
||||
$logaction->accessory_id = $findlog->accessory_id;
|
||||
$logaction->asset_type = 'accessory';
|
||||
}
|
||||
|
||||
$logaction->checkedout_to = $findlog->checkedout_to;
|
||||
|
||||
$logaction->note = e(Input::get('note'));
|
||||
$logaction->user_id = $user->id;
|
||||
$logaction->accepted_at = date("Y-m-d h:i:s");
|
||||
$log = $logaction->logaction('accepted');
|
||||
// Asset
|
||||
if (($findlog->asset_id!='') && ($findlog->asset_type=='hardware')) {
|
||||
$logaction->asset_id = $findlog->asset_id;
|
||||
$logaction->accessory_id = NULL;
|
||||
$logaction->asset_type = 'hardware';
|
||||
|
||||
// software
|
||||
} elseif (($findlog->asset_id!='') && ($findlog->asset_type=='software')) {
|
||||
$logaction->asset_id = $findlog->asset_id;
|
||||
$logaction->accessory_id = NULL;
|
||||
$logaction->asset_type = 'software';
|
||||
|
||||
// accessories
|
||||
} elseif ($findlog->accessory_id!='') {
|
||||
$logaction->asset_id = NULL;
|
||||
$logaction->accessory_id = $findlog->accessory_id;
|
||||
$logaction->asset_type = 'accessory';
|
||||
}
|
||||
|
||||
$logaction->checkedout_to = $findlog->checkedout_to;
|
||||
|
||||
$logaction->note = e(Input::get('note'));
|
||||
$logaction->user_id = $user->id;
|
||||
$logaction->accepted_at = date("Y-m-d h:i:s");
|
||||
$log = $logaction->logaction('accepted');
|
||||
|
||||
|
||||
$update_checkout = DB::table('asset_logs')
|
||||
->where('id',$findlog->id)
|
||||
->update(array('accepted_id' => $logaction->id));
|
||||
|
||||
if ($update_checkout ) {
|
||||
return Redirect::to('account/view-assets')->with('success', 'You have successfully accept this asset.');
|
||||
|
||||
} else {
|
||||
return Redirect::to('account/view-assets')->with('error', 'Something went wrong ');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -14,6 +14,9 @@ use View;
|
||||
use User;
|
||||
use Actionlog;
|
||||
use Mail;
|
||||
use Datatable;
|
||||
use Slack;
|
||||
use Config;
|
||||
|
||||
class AccessoriesController extends AdminController
|
||||
{
|
||||
@@ -25,11 +28,7 @@ class AccessoriesController extends AdminController
|
||||
|
||||
public function getIndex()
|
||||
{
|
||||
// Grab all the accessories
|
||||
$accessories = Accessory::orderBy('created_at', 'DESC')->get();
|
||||
|
||||
// Show the page
|
||||
return View::make('backend/accessories/index', compact('accessories'));
|
||||
return View::make('backend/accessories/index');
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +40,7 @@ class AccessoriesController extends AdminController
|
||||
public function getCreate()
|
||||
{
|
||||
// Show the page
|
||||
$category_list = array('' => '') + DB::table('categories')->where('category_type','=','accessory')->whereNull('deleted_at')->lists('name', 'id');
|
||||
$category_list = array('' => '') + DB::table('categories')->where('category_type','=','accessory')->whereNull('deleted_at')->orderBy('name','ASC')->lists('name', 'id');
|
||||
return View::make('backend/accessories/edit')->with('accessory',new Accessory)->with('category_list',$category_list);
|
||||
}
|
||||
|
||||
@@ -99,7 +98,7 @@ class AccessoriesController extends AdminController
|
||||
return Redirect::to('admin/accessories')->with('error', Lang::get('admin/accessories/message.does_not_exist'));
|
||||
}
|
||||
|
||||
$category_list = array('' => '') + DB::table('categories')->where('category_type','=','accessory')->whereNull('deleted_at')->lists('name', 'id');
|
||||
$category_list = array('' => '') + DB::table('categories')->where('category_type','=','accessory')->whereNull('deleted_at')->orderBy('name','ASC')->lists('name', 'id');
|
||||
return View::make('backend/accessories/edit', compact('accessory'))->with('category_list',$category_list);
|
||||
}
|
||||
|
||||
@@ -177,7 +176,7 @@ class AccessoriesController extends AdminController
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -206,7 +205,7 @@ class AccessoriesController extends AdminController
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check out the accessory to a person
|
||||
**/
|
||||
@@ -236,6 +235,7 @@ class AccessoriesController extends AdminController
|
||||
return Redirect::to('accessories')->with('error', Lang::get('admin/accessories/message.not_found'));
|
||||
}
|
||||
|
||||
$admin_user = Sentry::getUser();
|
||||
$assigned_to = e(Input::get('assigned_to'));
|
||||
|
||||
|
||||
@@ -264,9 +264,9 @@ class AccessoriesController extends AdminController
|
||||
$accessory->assigned_to = e(Input::get('assigned_to'));
|
||||
|
||||
$accessory->users()->attach($accessory->id, array(
|
||||
'accessory_id' => $accessory->id,
|
||||
'accessory_id' => $accessory->id,
|
||||
'assigned_to' => e(Input::get('assigned_to'))));
|
||||
|
||||
|
||||
$logaction = new Actionlog();
|
||||
$logaction->accessory_id = $accessory->id;
|
||||
$logaction->checkedout_to = $accessory->assigned_to;
|
||||
@@ -274,30 +274,70 @@ class AccessoriesController extends AdminController
|
||||
$logaction->location_id = $user->location_id;
|
||||
$logaction->user_id = Sentry::getUser()->id;
|
||||
$logaction->note = e(Input::get('note'));
|
||||
|
||||
$settings = Setting::getSettings();
|
||||
|
||||
if ($settings->slack_endpoint) {
|
||||
|
||||
|
||||
$slack_settings = [
|
||||
'username' => $settings->botname,
|
||||
'channel' => $settings->slack_channel,
|
||||
'link_names' => true
|
||||
];
|
||||
|
||||
$client = new \Maknz\Slack\Client($settings->slack_endpoint,$slack_settings);
|
||||
|
||||
try {
|
||||
$client->attach([
|
||||
'color' => 'good',
|
||||
'fields' => [
|
||||
[
|
||||
'title' => 'Checked Out:',
|
||||
'value' => strtoupper($logaction->asset_type).' <'.Config::get('app.url').'/admin/accessories/'.$accessory->id.'/view'.'|'.$accessory->name.'> checked out to <'.Config::get('app.url').'/admin/users/'.$user->id.'/view|'.$user->fullName().'> by <'.Config::get('app.url').'/admin/users/'.$admin_user->id.'/view'.'|'.$admin_user->fullName().'>.'
|
||||
],
|
||||
[
|
||||
'title' => 'Note:',
|
||||
'value' => e($logaction->note)
|
||||
],
|
||||
|
||||
|
||||
|
||||
]
|
||||
])->send('Accessory Checked Out');
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
$log = $logaction->logaction('checkout');
|
||||
|
||||
|
||||
$accessory_user = DB::table('accessories_users')->where('assigned_to','=',$accessory->assigned_to)->where('accessory_id','=',$accessory->id)->first();
|
||||
|
||||
|
||||
$data['log_id'] = $logaction->id;
|
||||
$data['eula'] = $accessory->getEula();
|
||||
$data['first_name'] = $user->first_name;
|
||||
$data['item_name'] = $accessory->name;
|
||||
$data['require_acceptance'] = $accessory->requireAcceptance();
|
||||
|
||||
|
||||
|
||||
|
||||
if (($accessory->requireAcceptance()=='1') || ($accessory->getEula())) {
|
||||
|
||||
|
||||
Mail::send('emails.accept-asset', $data, function ($m) use ($user) {
|
||||
$m->to($user->email, $user->first_name . ' ' . $user->last_name);
|
||||
$m->subject('Confirm accessory delivery');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Redirect to the new accessory page
|
||||
return Redirect::to("admin/accessories")->with('success', Lang::get('admin/accessories/message.checkout.success'));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -307,7 +347,7 @@ class AccessoriesController extends AdminController
|
||||
* @param int $accessoryId
|
||||
* @return View
|
||||
**/
|
||||
public function getCheckin($accessoryUserId)
|
||||
public function getCheckin($accessoryUserId = null, $backto = null)
|
||||
{
|
||||
// Check if the accessory exists
|
||||
if (is_null($accessory_user = DB::table('accessories_users')->find($accessoryUserId))) {
|
||||
@@ -316,7 +356,7 @@ class AccessoriesController extends AdminController
|
||||
}
|
||||
|
||||
$accessory = Accessory::find($accessory_user->accessory_id);
|
||||
return View::make('backend/accessories/checkin', compact('accessory'));
|
||||
return View::make('backend/accessories/checkin', compact('accessory'))->with('backto',$backto);
|
||||
}
|
||||
|
||||
|
||||
@@ -326,7 +366,7 @@ class AccessoriesController extends AdminController
|
||||
* @param int $accessoryId
|
||||
* @return View
|
||||
**/
|
||||
public function postCheckin($accessoryUserId)
|
||||
public function postCheckin($accessoryUserId = null, $backto = null)
|
||||
{
|
||||
// Check if the accessory exists
|
||||
if (is_null($accessory_user = DB::table('accessories_users')->find($accessoryUserId))) {
|
||||
@@ -334,10 +374,13 @@ class AccessoriesController extends AdminController
|
||||
return Redirect::to('admin/accessories')->with('error', Lang::get('admin/accessories/message.not_found'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
$accessory = Accessory::find($accessory_user->accessory_id);
|
||||
$logaction = new Actionlog();
|
||||
$logaction->checkedout_to = $accessory_user->assigned_to;
|
||||
$return_to = $accessory_user->assigned_to;
|
||||
$admin_user = Sentry::getUser();
|
||||
|
||||
|
||||
// Was the accessory updated?
|
||||
if(DB::table('accessories_users')->where('id', '=', $accessory_user->id)->delete()) {
|
||||
@@ -345,18 +388,106 @@ class AccessoriesController extends AdminController
|
||||
$logaction->accessory_id = $accessory->id;
|
||||
$logaction->location_id = NULL;
|
||||
$logaction->asset_type = 'accessory';
|
||||
$logaction->user_id = Sentry::getUser()->id;
|
||||
$logaction->user_id = $admin_user->id;
|
||||
$logaction->note = e(Input::get('note'));
|
||||
|
||||
$settings = Setting::getSettings();
|
||||
|
||||
if ($settings->slack_endpoint) {
|
||||
|
||||
|
||||
$slack_settings = [
|
||||
'username' => $settings->botname,
|
||||
'channel' => $settings->slack_channel,
|
||||
'link_names' => true
|
||||
];
|
||||
|
||||
$client = new \Maknz\Slack\Client($settings->slack_endpoint,$slack_settings);
|
||||
|
||||
try {
|
||||
$client->attach([
|
||||
'color' => 'good',
|
||||
'fields' => [
|
||||
[
|
||||
'title' => 'Checked In:',
|
||||
'value' => strtoupper($logaction->asset_type).' <'.Config::get('app.url').'/admin/accessories/'.$accessory->id.'/view'.'|'.$accessory->name.'> checked in by <'.Config::get('app.url').'/admin/users/'.$admin_user->id.'/view'.'|'.$admin_user->fullName().'>.'
|
||||
],
|
||||
[
|
||||
'title' => 'Note:',
|
||||
'value' => e($logaction->note)
|
||||
],
|
||||
|
||||
]
|
||||
])->send('Accessory Checked In');
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
$log = $logaction->logaction('checkin from');
|
||||
|
||||
// Redirect to the new accessory page
|
||||
return Redirect::to("admin/accessories")->with('success', Lang::get('admin/accessories/message.checkin.success'));
|
||||
}
|
||||
if ($backto=='user') {
|
||||
return Redirect::to("admin/users/".$return_to.'/view')->with('success', Lang::get('admin/accessories/message.checkin.success'));
|
||||
} else {
|
||||
return Redirect::to("admin/accessories/".$accessory->id."/view")->with('success', Lang::get('admin/accessories/message.checkin.success'));
|
||||
}
|
||||
}
|
||||
|
||||
// Redirect to the accessory management page with error
|
||||
return Redirect::to("admin/accessories")->with('error', Lang::get('admin/accessories/message.checkin.error'));
|
||||
}
|
||||
|
||||
public function getDatatable()
|
||||
{
|
||||
$accessories = Accessory::select(array('id','name','qty'))
|
||||
->whereNull('deleted_at')
|
||||
->orderBy('created_at', 'DESC');
|
||||
|
||||
$accessories = $accessories->get();
|
||||
|
||||
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions',function($accessories)
|
||||
{
|
||||
return '<a href="'.route('checkout/accessory', $accessories->id).'" style="margin-right:5px;" class="btn btn-info btn-sm" '.(($accessories->numRemaining() > 0 ) ? '' : ' disabled').'>'.Lang::get('general.checkout').'</a><a href="'.route('update/accessory', $accessories->id).'" class="btn btn-warning btn-sm" style="margin-right:5px;"><i class="fa fa-pencil icon-white"></i></a><a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="'.route('delete/accessory', $accessories->id).'" data-content="'.Lang::get('admin/accessories/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($accessories->name).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a>';
|
||||
});
|
||||
|
||||
return Datatable::collection($accessories)
|
||||
->addColumn('name',function($accessories)
|
||||
{
|
||||
return link_to('admin/accessories/'.$accessories->id.'/view', $accessories->name);
|
||||
})
|
||||
->addColumn('qty',function($accessories)
|
||||
{
|
||||
return $accessories->qty;
|
||||
})
|
||||
->addColumn('numRemaining',function($accessories)
|
||||
{
|
||||
return $accessories->numRemaining();
|
||||
})
|
||||
->addColumn($actions)
|
||||
->searchColumns('name','qty','numRemaining','actions')
|
||||
->orderColumns('name','qty','numRemaining','actions')
|
||||
->make();
|
||||
}
|
||||
|
||||
public function getDataView($accessoryID)
|
||||
{
|
||||
$accessory = Accessory::find($accessoryID);
|
||||
$accessory_users = $accessory->users;
|
||||
|
||||
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions',function($accessory_users){
|
||||
return '<a href="'.route('checkin/accessory', $accessory_users->pivot->id).'" class="btn-flat info">Checkin</a>';
|
||||
});
|
||||
|
||||
return Datatable::collection($accessory_users)
|
||||
->addColumn('name',function($accessory_users)
|
||||
{
|
||||
return link_to('/admin/users/'.$accessory_users->id.'/view', $accessory_users->fullName());
|
||||
})
|
||||
->addColumn($actions)
|
||||
->make();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,6 +23,9 @@ use Location;
|
||||
use Log;
|
||||
use DNS2D;
|
||||
use Mail;
|
||||
use Datatable;
|
||||
use TCPDF;
|
||||
use Slack;
|
||||
|
||||
class AssetsController extends AdminController
|
||||
{
|
||||
@@ -36,40 +39,7 @@ class AssetsController extends AdminController
|
||||
|
||||
public function getIndex()
|
||||
{
|
||||
// Grab all the assets
|
||||
|
||||
$assets = Asset::with('model','assigneduser','assetstatus','defaultLoc','assetlog')->Hardware();
|
||||
// Filter results
|
||||
if (Input::get('Pending')) {
|
||||
$assets->Pending();
|
||||
} elseif (Input::get('RTD')) {
|
||||
$assets->RTD();
|
||||
} elseif (Input::get('Undeployable')) {
|
||||
$assets->Undeployable();
|
||||
} elseif (Input::get('Archived')) {
|
||||
$assets->Archived();
|
||||
} elseif (Input::get('Requestable')) {
|
||||
$assets->RequestableAssets();
|
||||
} elseif (Input::get('Deployed')) {
|
||||
$assets->Deployed();
|
||||
} elseif (Input::get('Deleted')) {
|
||||
$assets->withTrashed()->Deleted();
|
||||
}
|
||||
|
||||
$assets = $assets->orderBy('asset_tag', 'ASC')->get();
|
||||
|
||||
|
||||
// Paginate the users
|
||||
/**$assets = $assets->paginate(Setting::getSettings()->per_page)
|
||||
->appends(array(
|
||||
'Pending' => Input::get('Pending'),
|
||||
'RTD' => Input::get('RTD'),
|
||||
'Undeployable' => Input::get('Undeployable'),
|
||||
'Deployed' => Input::get('Deployed'),
|
||||
));
|
||||
**/
|
||||
|
||||
return View::make('backend/hardware/index', compact('assets'));
|
||||
return View::make('backend/hardware/index');
|
||||
}
|
||||
|
||||
|
||||
@@ -87,15 +57,16 @@ class AssetsController extends AdminController
|
||||
// Grab the dropdown list of models
|
||||
//$model_list = array('' => 'Select a Model') + Model::orderBy('name', 'asc')->lists('name'.' '. 'modelno', 'id');
|
||||
|
||||
$model_list = array('' => 'Select a Model') + DB::table('models')
|
||||
$model_list = array('' => Lang::get('general.select_model')) + DB::table('models')
|
||||
->select(DB::raw('concat(name," / ",modelno) as name, id'))->orderBy('name', 'asc')
|
||||
->orderBy('modelno', 'asc')
|
||||
->whereNull('deleted_at')
|
||||
->lists('name', 'id');
|
||||
|
||||
|
||||
$supplier_list = array('' => '') + Supplier::orderBy('name', 'asc')->lists('name', 'id');
|
||||
$assigned_to = array('' => 'Select a User') + DB::table('users')->select(DB::raw('concat (first_name," ",last_name) as full_name, id'))->whereNull('deleted_at')->lists('full_name', 'id');
|
||||
$location_list = array('' => '') + Location::orderBy('name', 'asc')->lists('name', 'id');
|
||||
$supplier_list = array('' => Lang::get('general.select_supplier')) + Supplier::orderBy('name', 'asc')->lists('name', 'id');
|
||||
$assigned_to = array('' => Lang::get('general.select_user')) + DB::table('users')->select(DB::raw('concat(first_name," ",last_name) as full_name, id'))->whereNull('deleted_at')->lists('full_name', 'id');
|
||||
$location_list = array('' => Lang::get('general.select_location')) + Location::orderBy('name', 'asc')->lists('name', 'id');
|
||||
|
||||
|
||||
// Grab the dropdown list of status
|
||||
@@ -186,6 +157,9 @@ class AssetsController extends AdminController
|
||||
$asset->rtd_location_id = e(Input::get('rtd_location_id'));
|
||||
}
|
||||
|
||||
$checkModel = Config::get('app.url').'/api/models/'.e(Input::get('model_id')).'/check';
|
||||
$asset->mac_address = ($checkModel == true) ? e(Input::get('mac_address')) : NULL;
|
||||
|
||||
// Save the asset data
|
||||
$asset->name = e(Input::get('name'));
|
||||
$asset->serial = e(Input::get('serial'));
|
||||
@@ -193,7 +167,6 @@ class AssetsController extends AdminController
|
||||
$asset->order_number = e(Input::get('order_number'));
|
||||
$asset->notes = e(Input::get('notes'));
|
||||
$asset->asset_tag = e(Input::get('asset_tag'));
|
||||
$asset->mac_address = e(Input::get('mac_address'));
|
||||
$asset->user_id = Sentry::getId();
|
||||
$asset->archived = '0';
|
||||
$asset->physical = '1';
|
||||
@@ -239,12 +212,12 @@ class AssetsController extends AdminController
|
||||
|
||||
|
||||
// Grab the dropdown list of models
|
||||
$model_list = array('' => '') + DB::table('models')
|
||||
$model_list = array('' => Lang::get('general.select_model')) + DB::table('models')
|
||||
->select(DB::raw('concat(name," / ",modelno) as name, id'))->orderBy('name', 'asc')
|
||||
->orderBy('modelno', 'asc')
|
||||
->lists('name', 'id');
|
||||
$supplier_list = array('' => '') + Supplier::orderBy('name', 'asc')->lists('name', 'id');
|
||||
$location_list = array('' => '') + Location::orderBy('name', 'asc')->lists('name', 'id');
|
||||
$supplier_list = array('' => Lang::get('general.select_supplier')) + Supplier::orderBy('name', 'asc')->lists('name', 'id');
|
||||
$location_list = array('' => Lang::get('general.select_location')) + Location::orderBy('name', 'asc')->lists('name', 'id');
|
||||
|
||||
// Grab the dropdown list of status
|
||||
$statuslabel_list = Statuslabel::orderBy('name', 'asc')->lists('name', 'id');
|
||||
@@ -321,6 +294,9 @@ class AssetsController extends AdminController
|
||||
$asset->rtd_location_id = e(Input::get('rtd_location_id'));
|
||||
}
|
||||
|
||||
$checkModel = Config::get('app.url').'/api/models/'.e(Input::get('model_id')).'/check';
|
||||
$asset->mac_address = ($checkModel == true) ? e(Input::get('mac_address')) : NULL;
|
||||
|
||||
// Update the asset data
|
||||
$asset->name = e(Input::get('name'));
|
||||
$asset->serial = e(Input::get('serial'));
|
||||
@@ -329,7 +305,6 @@ class AssetsController extends AdminController
|
||||
$asset->asset_tag = e(Input::get('asset_tag'));
|
||||
$asset->notes = e(Input::get('notes'));
|
||||
$asset->physical = '1';
|
||||
$asset->mac_address = e(Input::get('mac_address'));
|
||||
|
||||
// Was the asset updated?
|
||||
if($asset->save()) {
|
||||
@@ -395,7 +370,7 @@ class AssetsController extends AdminController
|
||||
}
|
||||
|
||||
// Get the dropdown of users and then pass it to the checkout view
|
||||
$users_list = array('' => 'Select a User') + DB::table('users')->select(DB::raw('concat(last_name,", ",first_name) as full_name, id'))->whereNull('deleted_at')->orderBy('last_name', 'asc')->orderBy('first_name', 'asc')->lists('full_name', 'id');
|
||||
$users_list = array('' => Lang::get('general.select_user')) + DB::table('users')->select(DB::raw('concat(last_name,", ",first_name) as full_name, id'))->whereNull('deleted_at')->orderBy('last_name', 'asc')->orderBy('first_name', 'asc')->lists('full_name', 'id');
|
||||
|
||||
return View::make('backend/hardware/checkout', compact('asset'))->with('users_list',$users_list);
|
||||
|
||||
@@ -415,6 +390,7 @@ class AssetsController extends AdminController
|
||||
$assigned_to = e(Input::get('assigned_to'));
|
||||
|
||||
|
||||
|
||||
// Declare the rules for the form validation
|
||||
$rules = array(
|
||||
'assigned_to' => 'required|min:1',
|
||||
@@ -443,6 +419,15 @@ class AssetsController extends AdminController
|
||||
// Was the asset updated?
|
||||
if($asset->save()) {
|
||||
$logaction = new Actionlog();
|
||||
|
||||
if (Input::has('checkout_at')) {
|
||||
if (Input::get('checkout_at')!= date("Y-m-d")){
|
||||
$logaction->created_at = e(Input::get('checkout_at')).' 00:00:00';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
$logaction->asset_id = $asset->id;
|
||||
$logaction->checkedout_to = $asset->assigned_to;
|
||||
$logaction->asset_type = 'hardware';
|
||||
@@ -450,21 +435,58 @@ class AssetsController extends AdminController
|
||||
$logaction->user_id = Sentry::getUser()->id;
|
||||
$logaction->note = e(Input::get('note'));
|
||||
$log = $logaction->logaction('checkout');
|
||||
|
||||
|
||||
$data['log_id'] = $logaction->id;
|
||||
$data['eula'] = $asset->getEula();
|
||||
$data['first_name'] = $user->first_name;
|
||||
$data['item_name'] = $asset->name;
|
||||
$data['item_name'] = $asset->showAssetName();
|
||||
$data['require_acceptance'] = $asset->requireAcceptance();
|
||||
|
||||
|
||||
|
||||
$settings = Setting::getSettings();
|
||||
|
||||
if ($settings->slack_endpoint) {
|
||||
|
||||
|
||||
$slack_settings = [
|
||||
'username' => $settings->botname,
|
||||
'channel' => $settings->slack_channel,
|
||||
'link_names' => true
|
||||
];
|
||||
|
||||
$client = new \Maknz\Slack\Client($settings->slack_endpoint,$slack_settings);
|
||||
|
||||
try {
|
||||
$client->attach([
|
||||
'color' => 'good',
|
||||
'fields' => [
|
||||
[
|
||||
'title' => 'Checked Out:',
|
||||
'value' => strtoupper($logaction->asset_type).' asset <'.Config::get('app.url').'/hardware/'.$asset->id.'/view'.'|'.$asset->showAssetName().'> checked out to <'.Config::get('app.url').'/admin/users/'.$user->id.'/view|'.$user->fullName().'> by <'.Config::get('app.url').'/hardware/'.$asset->id.'/view'.'|'.Sentry::getUser()->fullName().'>.'
|
||||
],
|
||||
[
|
||||
'title' => 'Note:',
|
||||
'value' => e($logaction->note)
|
||||
],
|
||||
|
||||
|
||||
|
||||
]
|
||||
])->send('Asset Checked Out');
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (($asset->requireAcceptance()=='1') || ($asset->getEula())) {
|
||||
|
||||
|
||||
Mail::send('emails.accept-asset', $data, function ($m) use ($user) {
|
||||
$m->to($user->email, $user->first_name . ' ' . $user->last_name);
|
||||
$m->subject('Confirm asset delivery');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Redirect to the new asset page
|
||||
return Redirect::to("hardware")->with('success', Lang::get('admin/hardware/message.checkout.success'));
|
||||
@@ -481,7 +503,7 @@ class AssetsController extends AdminController
|
||||
* @param int $assetId
|
||||
* @return View
|
||||
**/
|
||||
public function getCheckin($assetId)
|
||||
public function getCheckin($assetId, $backto = null)
|
||||
{
|
||||
// Check if the asset exists
|
||||
if (is_null($asset = Asset::find($assetId))) {
|
||||
@@ -489,7 +511,7 @@ class AssetsController extends AdminController
|
||||
return Redirect::to('hardware')->with('error', Lang::get('admin/hardware/message.not_found'));
|
||||
}
|
||||
|
||||
return View::make('backend/hardware/checkin', compact('asset'));
|
||||
return View::make('backend/hardware/checkin', compact('asset'))->with('backto', $backto);
|
||||
}
|
||||
|
||||
|
||||
@@ -499,7 +521,7 @@ class AssetsController extends AdminController
|
||||
* @param int $assetId
|
||||
* @return View
|
||||
**/
|
||||
public function postCheckin($assetId)
|
||||
public function postCheckin($assetId = null, $backto = null)
|
||||
{
|
||||
// Check if the asset exists
|
||||
if (is_null($asset = Asset::find($assetId))) {
|
||||
@@ -511,15 +533,28 @@ class AssetsController extends AdminController
|
||||
$user = User::find($asset->assigned_to);
|
||||
}
|
||||
|
||||
// This is just used for the redirect
|
||||
$return_to = $asset->assigned_to;
|
||||
|
||||
$logaction = new Actionlog();
|
||||
$logaction->checkedout_to = $asset->assigned_to;
|
||||
|
||||
// Update the asset data to null, since it's being checked in
|
||||
$asset->assigned_to = NULL;
|
||||
|
||||
|
||||
// Was the asset updated?
|
||||
if($asset->save()) {
|
||||
|
||||
if (Input::has('checkin_at')) {
|
||||
|
||||
if (!strtotime(Input::get('checkin_at'))) {
|
||||
$logaction->created_at = date("Y-m-d h:i:s");
|
||||
} elseif (Input::get('checkin_at')!= date("Y-m-d")) {
|
||||
$logaction->created_at = e(Input::get('checkin_at')).' 00:00:00';
|
||||
}
|
||||
}
|
||||
|
||||
$logaction->asset_id = $asset->id;
|
||||
$logaction->location_id = NULL;
|
||||
$logaction->asset_type = 'hardware';
|
||||
@@ -527,8 +562,47 @@ class AssetsController extends AdminController
|
||||
$logaction->user_id = Sentry::getUser()->id;
|
||||
$log = $logaction->logaction('checkin from');
|
||||
|
||||
// Redirect to the new asset page
|
||||
return Redirect::to("hardware")->with('success', Lang::get('admin/hardware/message.checkin.success'));
|
||||
$settings = Setting::getSettings();
|
||||
|
||||
if ($settings->slack_endpoint) {
|
||||
|
||||
|
||||
$slack_settings = [
|
||||
'username' => $settings->botname,
|
||||
'channel' => $settings->slack_channel,
|
||||
'link_names' => true
|
||||
];
|
||||
|
||||
$client = new \Maknz\Slack\Client($settings->slack_endpoint,$slack_settings);
|
||||
|
||||
try {
|
||||
$client->attach([
|
||||
'color' => 'good',
|
||||
'fields' => [
|
||||
[
|
||||
'title' => 'Checked In:',
|
||||
'value' => strtoupper($logaction->asset_type).' asset <'.Config::get('app.url').'/hardware/'.$asset->id.'/view'.'|'.$asset->showAssetName().'> checked in by <'.Config::get('app.url').'/hardware/'.$asset->id.'/view'.'|'.Sentry::getUser()->fullName().'>.'
|
||||
],
|
||||
[
|
||||
'title' => 'Note:',
|
||||
'value' => e($logaction->note)
|
||||
],
|
||||
|
||||
]
|
||||
])->send('Asset Checked In');
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ($backto=='user') {
|
||||
return Redirect::to("admin/users/".$return_to.'/view')->with('success', Lang::get('admin/hardware/message.checkin.success'));
|
||||
} else {
|
||||
return Redirect::to("hardware")->with('success', Lang::get('admin/hardware/message.checkin.success'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Redirect to the asset management page with error
|
||||
@@ -578,10 +652,10 @@ class AssetsController extends AdminController
|
||||
|
||||
if ($settings->qr_code == '1') {
|
||||
$asset = Asset::find($assetId);
|
||||
|
||||
|
||||
if (isset($asset->id,$asset->asset_tag)) {
|
||||
|
||||
$content = DNS2D::getBarcodePNG(route('view/hardware', $asset->id), "QRCODE",
|
||||
$content = DNS2D::getBarcodePNG(route('view/hardware', $asset->id), $settings->barcode_type,
|
||||
$this->qrCodeDimensions['height'],$this->qrCodeDimensions['width']);
|
||||
|
||||
$img = imagecreatefromstring(base64_decode($content));
|
||||
@@ -601,7 +675,7 @@ class AssetsController extends AdminController
|
||||
}
|
||||
|
||||
/**
|
||||
* Asset update.
|
||||
* Asset clone.
|
||||
*
|
||||
* @param int $assetId
|
||||
* @return View
|
||||
@@ -615,17 +689,16 @@ class AssetsController extends AdminController
|
||||
}
|
||||
|
||||
// Grab the dropdown list of models
|
||||
$model_list = array('' => '') + Model::lists('name', 'id');
|
||||
$model_list = array('' => Lang::get('general.select_model')) + Model::lists('name', 'id');
|
||||
|
||||
// Grab the dropdown list of status
|
||||
$statuslabel_list = Statuslabel::lists('name', 'id');
|
||||
|
||||
$location_list = array('' => '') + Location::lists('name', 'id');
|
||||
$location_list = array('' => Lang::get('general.select_location')) + Location::lists('name', 'id');
|
||||
|
||||
// get depreciation list
|
||||
$depreciation_list = array('' => '') + Depreciation::lists('name', 'id');
|
||||
$supplier_list = array('' => '') + Supplier::orderBy('name', 'asc')->lists('name', 'id');
|
||||
$assigned_to = array('' => 'Select a User') + DB::table('users')->select(DB::raw('concat (first_name," ",last_name) as full_name, id'))->whereNull('deleted_at')->lists('full_name', 'id');
|
||||
$supplier_list = array('' => Lang::get('general.select_supplier')) + Supplier::orderBy('name', 'asc')->lists('name', 'id');
|
||||
$assigned_to = array('' => Lang::get('general.select_user')) + DB::table('users')->select(DB::raw('concat(first_name," ",last_name) as full_name, id'))->whereNull('deleted_at')->lists('full_name', 'id');
|
||||
|
||||
$asset = clone $asset_to_clone;
|
||||
$asset->id = null;
|
||||
@@ -657,8 +730,8 @@ class AssetsController extends AdminController
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Upload the file to the server
|
||||
*
|
||||
@@ -679,7 +752,7 @@ class AssetsController extends AdminController
|
||||
foreach(Input::file('assetfile') as $file) {
|
||||
|
||||
$rules = array(
|
||||
'assetfile' => 'required|mimes:png,gif,jpg,jpeg,doc,docx,pdf,txt|max:2000'
|
||||
'assetfile' => 'required|mimes:png,gif,jpg,jpeg,doc,docx,pdf,txt,zip,rar|max:2000'
|
||||
);
|
||||
$validator = Validator::make(array('assetfile'=> $file), $rules);
|
||||
|
||||
@@ -788,10 +861,10 @@ class AssetsController extends AdminController
|
||||
return Redirect::route('hardware')->with('error', $error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Display bulk edit screen
|
||||
*
|
||||
@@ -800,21 +873,54 @@ class AssetsController extends AdminController
|
||||
public function postBulkEdit($assets = null)
|
||||
{
|
||||
|
||||
if (Input::has('edit_asset')) {
|
||||
|
||||
$assets = Input::get('edit_asset');
|
||||
|
||||
$supplier_list = array('' => '') + Supplier::orderBy('name', 'asc')->lists('name', 'id');
|
||||
$statuslabel_list = array('' => '') + Statuslabel::lists('name', 'id');
|
||||
$location_list = array('' => '') + Location::lists('name', 'id');
|
||||
if (!Input::has('edit_asset')) {
|
||||
return Redirect::back()->with('error', 'No assets selected');
|
||||
} else {
|
||||
$asset_raw_array = Input::get('edit_asset');
|
||||
foreach ($asset_raw_array as $asset_id => $value) {
|
||||
$asset_ids[] = $asset_id;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return View::make('backend/hardware/bulk')->with('assets',$assets)->with('supplier_list',$supplier_list)->with('statuslabel_list',$statuslabel_list)->with('location_list',$location_list);
|
||||
|
||||
if (Input::has('bulk_actions')) {
|
||||
|
||||
|
||||
// Create labels
|
||||
if (Input::get('bulk_actions')=='labels') {
|
||||
$assets = Asset::find($asset_ids);
|
||||
$assetcount = count($assets);
|
||||
$count = 0;
|
||||
|
||||
$settings = Setting::getSettings();
|
||||
return View::make('backend/hardware/labels')->with('assets',$assets)->with('settings',$settings)->with('count',$count);
|
||||
|
||||
|
||||
// Bulk edit
|
||||
} elseif (Input::get('bulk_actions')=='edit') {
|
||||
|
||||
$assets = Input::get('edit_asset');
|
||||
|
||||
$supplier_list = array('' => '') + Supplier::orderBy('name', 'asc')->lists('name', 'id');
|
||||
$statuslabel_list = array('' => '') + Statuslabel::lists('name', 'id');
|
||||
$location_list = array('' => '') + Location::lists('name', 'id');
|
||||
|
||||
return View::make('backend/hardware/bulk')->with('assets',$assets)->with('supplier_list',$supplier_list)->with('statuslabel_list',$statuslabel_list)->with('location_list',$location_list);
|
||||
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
return Redirect::back()->with('error', 'No action selected');
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Save bulk edits
|
||||
*
|
||||
@@ -824,63 +930,180 @@ class AssetsController extends AdminController
|
||||
{
|
||||
|
||||
if (Input::has('bulk_edit')) {
|
||||
|
||||
|
||||
$assets = Input::get('bulk_edit');
|
||||
|
||||
|
||||
if ( (Input::has('purchase_date')) || (Input::has('rtd_location_id')) || (Input::has('status_id')) ) {
|
||||
|
||||
|
||||
foreach ($assets as $key => $value) {
|
||||
|
||||
|
||||
$update_array = array();
|
||||
|
||||
if (Input::has('purchase_date')) {
|
||||
|
||||
if (Input::has('purchase_date')) {
|
||||
$update_array['purchase_date'] = e(Input::get('purchase_date'));
|
||||
}
|
||||
|
||||
if (Input::has('rtd_location_id')) {
|
||||
|
||||
if (Input::has('rtd_location_id')) {
|
||||
$update_array['rtd_location_id'] = e(Input::get('rtd_location_id'));
|
||||
}
|
||||
|
||||
if (Input::has('status_id')) {
|
||||
|
||||
if (Input::has('status_id')) {
|
||||
$update_array['status_id'] = e(Input::get('status_id'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if (DB::table('assets')
|
||||
->where('id', $key)
|
||||
->update($update_array)) {
|
||||
|
||||
->update($update_array)) {
|
||||
|
||||
$logaction = new Actionlog();
|
||||
$logaction->asset_id = $key;
|
||||
$logaction->asset_type = 'hardware';
|
||||
$logaction->created_at = date("Y-m-d h:i:s");
|
||||
|
||||
if (Input::has('rtd_location_id')) {
|
||||
|
||||
if (Input::has('rtd_location_id')) {
|
||||
$logaction->location_id = e(Input::get('rtd_location_id'));
|
||||
}
|
||||
$logaction->user_id = Sentry::getUser()->id;
|
||||
$log = $logaction->logaction('update');
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
} // endforeach
|
||||
|
||||
|
||||
return Redirect::to("hardware")->with('success', Lang::get('admin/hardware/message.update.success'));
|
||||
|
||||
// no values given, nothing to update
|
||||
// no values given, nothing to update
|
||||
} else {
|
||||
return Redirect::to("hardware")->with('info',Lang::get('admin/hardware/message.update.nothing_updated'));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
} // endif
|
||||
|
||||
return Redirect::to("hardware");
|
||||
|
||||
return Redirect::to("hardware");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public function getDatatable($status = null)
|
||||
{
|
||||
|
||||
$assets = Asset::with('model','assigneduser','assigneduser.userloc','assetstatus','defaultLoc','assetlog','model','model.category')->Hardware()->select(array('id', 'name','model_id','assigned_to','asset_tag','serial','status_id','purchase_date','deleted_at'));
|
||||
|
||||
|
||||
switch ($status) {
|
||||
case 'Pending':
|
||||
$assets->Pending();
|
||||
break;
|
||||
case 'RTD':
|
||||
$assets->RTD();
|
||||
break;
|
||||
case 'Undeployable':
|
||||
$assets->Undeployable();
|
||||
break;
|
||||
case 'Archived':
|
||||
$assets->Archived();
|
||||
break;
|
||||
case 'Requestable':
|
||||
$assets->RequestableAssets();
|
||||
break;
|
||||
case 'Deployed':
|
||||
$assets->Deployed();
|
||||
break;
|
||||
case 'Deleted':
|
||||
$assets->withTrashed()->Deleted();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
$assets = $assets->orderBy('asset_tag', 'ASC')->get();
|
||||
|
||||
|
||||
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function ($assets)
|
||||
{
|
||||
if ($assets->deleted_at=='') {
|
||||
return '<a href="'.route('update/hardware', $assets->id).'" class="btn btn-warning btn-sm"><i class="fa fa-pencil icon-white"></i></a> <a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="'.route('delete/hardware', $assets->id).'" data-content="'.Lang::get('admin/hardware/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($assets->asset_tag).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a>';
|
||||
} elseif ($assets->model->deleted_at=='') {
|
||||
return '<a href="'.route('restore/hardware', $assets->id).'" class="btn btn-warning btn-sm"><i class="fa fa-recycle icon-white"></i></a>';
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$inout = new \Chumper\Datatable\Columns\FunctionColumn('inout', function ($assets)
|
||||
{
|
||||
if (($assets->assigned_to !='') && ($assets->assigned_to > 0)) {
|
||||
return '<a href="'.route('checkin/hardware', $assets->id).'" class="btn btn-primary btn-sm">'.Lang::get('general.checkin').'</a>';
|
||||
} else {
|
||||
return '<a href="'.route('checkout/hardware', $assets->id).'" class="btn btn-info btn-sm">'.Lang::get('general.checkout').'</a>';
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
return Datatable::collection($assets)
|
||||
->addColumn('',function($assets)
|
||||
{
|
||||
return '<input type="checkbox" name="edit_asset['.$assets->id.']" class="one_required">';
|
||||
})
|
||||
->addColumn('name',function($assets)
|
||||
{
|
||||
return '<a title="'.$assets->name.'" href="hardware/'.$assets->id.'/view">'.$assets->name.'</a>';
|
||||
})
|
||||
->addColumn('asset_tag',function($assets)
|
||||
{
|
||||
return '<a title="'.$assets->asset_tag.'" href="hardware/'.$assets->id.'/view">'.$assets->asset_tag.'</a>';
|
||||
})
|
||||
|
||||
->showColumns('serial')
|
||||
|
||||
->addColumn('model',function($assets)
|
||||
{
|
||||
return $assets->model->name;
|
||||
})
|
||||
|
||||
->addColumn('status',function($assets)
|
||||
{
|
||||
if ($assets->assigned_to!='') {
|
||||
return link_to('../admin/users/'.$assets->assigned_to.'/view', $assets->assigneduser->fullName());
|
||||
} else {
|
||||
return $assets->assetstatus->name;
|
||||
}
|
||||
|
||||
})
|
||||
->addColumn('location',function($assets)
|
||||
{
|
||||
if ($assets->assigned_to && $assets->assigneduser->userloc) {
|
||||
return link_to('admin/settings/locations/'.$assets->assigneduser->userloc->id.'/edit', $assets->assigneduser->userloc->name);
|
||||
} elseif ($assets->defaultLoc){
|
||||
return link_to('admin/settings/locations/'.$assets->defaultLoc->id.'/edit', $assets->defaultLoc->name);
|
||||
}
|
||||
})
|
||||
->addColumn('category',function($assets)
|
||||
{
|
||||
return $assets->model->category->name;
|
||||
|
||||
})
|
||||
|
||||
->addColumn('eol',function($assets)
|
||||
{
|
||||
return $assets->eol_date();
|
||||
})
|
||||
|
||||
|
||||
->addColumn('checkout_date',function($assets)
|
||||
{
|
||||
if (($assets->assigned_to!='') && ($assets->assetlog->first())) {
|
||||
return $assets->assetlog->first()->created_at->format('Y-m-d');
|
||||
}
|
||||
|
||||
})
|
||||
->addColumn($inout)
|
||||
->addColumn($actions)
|
||||
->searchColumns('name', 'asset_tag', 'serial', 'model', 'status','location','eol','checkout_date', 'inout','category')
|
||||
->orderColumns('name', 'asset_tag', 'serial', 'model', 'status','location','eol','checkout_date', 'inout')
|
||||
->make();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ use Sentry;
|
||||
use Str;
|
||||
use Validator;
|
||||
use View;
|
||||
use Datatable;
|
||||
|
||||
class CategoriesController extends AdminController
|
||||
{
|
||||
@@ -22,11 +23,8 @@ class CategoriesController extends AdminController
|
||||
|
||||
public function getIndex()
|
||||
{
|
||||
// Grab all the categories
|
||||
$categories = Category::orderBy('created_at', 'DESC')->get();
|
||||
|
||||
// Show the page
|
||||
return View::make('backend/categories/index', compact('categories'));
|
||||
return View::make('backend/categories/index');
|
||||
}
|
||||
|
||||
|
||||
@@ -215,7 +213,65 @@ class CategoriesController extends AdminController
|
||||
|
||||
}
|
||||
|
||||
public function getDatatable()
|
||||
{
|
||||
// Grab all the categories
|
||||
$categories = Category::orderBy('created_at', 'DESC')->get();
|
||||
|
||||
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function($categories) {
|
||||
return '<a href="'.route('update/category', $categories->id).'" class="btn btn-warning btn-sm" style="margin-right:5px;"><i class="fa fa-pencil icon-white"></i></a><a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="'.route('delete/category', $categories->id).'" data-content="'.Lang::get('admin/categories/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($categories->name).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a>';
|
||||
});
|
||||
|
||||
return Datatable::collection($categories)
|
||||
->showColumns('name')
|
||||
->addColumn('category_type', function($categories) {
|
||||
return ucwords($categories->category_type);
|
||||
})
|
||||
->addColumn('count', function($categories) {
|
||||
return ($categories->category_type=='asset') ? link_to('/admin/settings/categories/'.$categories->id.'/view', $categories->assetscount()) : $categories->accessoriescount();
|
||||
})
|
||||
->addColumn('acceptance', function($categories) {
|
||||
return ($categories->require_acceptance=='1') ? '<i class="fa fa-check" style="margin-right:50%;margin-left:50%;"></i>' : '';
|
||||
})
|
||||
->addColumn('eula', function($categories) {
|
||||
return ($categories->getEula()) ? '<i class="fa fa-check" style="margin-right:50%;margin-left:50%;"></i></a>' : '';
|
||||
})
|
||||
->addColumn($actions)
|
||||
->searchColumns('name','category_type','count','acceptance','eula','actions')
|
||||
->orderColumns('name','category_type','count','acceptance','eula','actions')
|
||||
->make();
|
||||
}
|
||||
|
||||
public function getDataView($categoryID) {
|
||||
$category = Category::find($categoryID);
|
||||
$categoryassets = $category->assets;
|
||||
|
||||
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function ($categoryassets)
|
||||
{
|
||||
if (($categoryassets->assigned_to !='') && ($categoryassets->assigned_to > 0)) {
|
||||
return '<a href="'.route('checkin/hardware', $categoryassets->id).'" class="btn btn-primary btn-sm">'.Lang::get('general.checkin').'</a>';
|
||||
} else {
|
||||
return '<a href="'.route('checkout/hardware', $categoryassets->id).'" class="btn btn-info btn-sm">'.Lang::get('general.checkout').'</a>';
|
||||
}
|
||||
});
|
||||
|
||||
return Datatable::collection($categoryassets)
|
||||
->addColumn('name', function ($categoryassets) {
|
||||
return link_to('/hardware/'.$categoryassets->id.'/view', $categoryassets->name);
|
||||
})
|
||||
->addColumn('asset_tag', function ($categoryassets) {
|
||||
return link_to('/hardware/'.$categoryassets->id.'/view', $categoryassets->asset_tag);
|
||||
})
|
||||
->addColumn('assigned_to', function ($categoryassets) {
|
||||
if ($categoryassets->assigned_to) {
|
||||
return link_to('/admin/users/'.$categoryassets->assigned_to.'/view', $categoryassets->assigneduser->fullName());
|
||||
}
|
||||
})
|
||||
->addColumn($actions)
|
||||
->searchColumns('name','asset_tag','assigned_to','actions')
|
||||
->orderColumns('name','asset_tag','assigned_to','actions')
|
||||
->make();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -19,6 +19,10 @@ use Supplier;
|
||||
use Validator;
|
||||
use View;
|
||||
use Response;
|
||||
use Datatable;
|
||||
use Slack;
|
||||
use Config;
|
||||
use Session;
|
||||
|
||||
class LicensesController extends AdminController
|
||||
{
|
||||
@@ -33,11 +37,8 @@ class LicensesController extends AdminController
|
||||
|
||||
public function getIndex()
|
||||
{
|
||||
// Grab all the licenses
|
||||
$licenses = License::orderBy('created_at', 'DESC')->get();
|
||||
|
||||
// Show the page
|
||||
return View::make('backend/licenses/index', compact('licenses'));
|
||||
return View::make('backend/licenses/index');
|
||||
}
|
||||
|
||||
|
||||
@@ -134,6 +135,7 @@ class LicensesController extends AdminController
|
||||
|
||||
// Was the license created?
|
||||
if($license->save()) {
|
||||
|
||||
$insertedId = $license->id;
|
||||
// Save the license seat data
|
||||
for ($x=0; $x<$license->seats; $x++) {
|
||||
@@ -228,6 +230,7 @@ class LicensesController extends AdminController
|
||||
$license->depreciation_id = e(Input::get('depreciation_id'));
|
||||
$license->purchase_order = e(Input::get('purchase_order'));
|
||||
$license->maintained = e(Input::get('maintained'));
|
||||
$license->reassignable = e(Input::get('reassignable'));
|
||||
|
||||
if ( e(Input::get('supplier_id')) == '') {
|
||||
$license->supplier_id = NULL;
|
||||
@@ -268,6 +271,12 @@ class LicensesController extends AdminController
|
||||
$license->maintained = e(Input::get('maintained'));
|
||||
}
|
||||
|
||||
if ( e(Input::get('reassignable')) == '') {
|
||||
$license->reassignable = 0;
|
||||
} else {
|
||||
$license->reassignable = e(Input::get('reassignable'));
|
||||
}
|
||||
|
||||
if ( e(Input::get('purchase_order')) == '') {
|
||||
$license->purchase_order = '';
|
||||
} else {
|
||||
@@ -407,7 +416,7 @@ class LicensesController extends AdminController
|
||||
->leftJoin('users', 'users.id', '=', 'assets.assigned_to')
|
||||
->leftJoin('models', 'assets.model_id', '=', 'models.id')
|
||||
->select('assets.id', 'assets.name', 'first_name', 'last_name','asset_tag',
|
||||
DB::raw('concat (first_name," ",last_name) as full_name, assets.id as id, models.name as modelname'))
|
||||
DB::raw('concat(first_name," ",last_name) as full_name, assets.id as id, models.name as modelname'))
|
||||
->whereNull('assets.deleted_at')
|
||||
->get();
|
||||
|
||||
@@ -441,6 +450,7 @@ class LicensesController extends AdminController
|
||||
|
||||
$assigned_to = e(Input::get('assigned_to'));
|
||||
$asset_id = e(Input::get('asset_id'));
|
||||
$user = Sentry::getUser();
|
||||
|
||||
// Declare the rules for the form validation
|
||||
$rules = array(
|
||||
@@ -482,13 +492,13 @@ class LicensesController extends AdminController
|
||||
|
||||
|
||||
|
||||
// Check if the asset exists
|
||||
// Check if the asset exists
|
||||
if (is_null($licenseseat = LicenseSeat::find($seatId))) {
|
||||
// Redirect to the asset management page with error
|
||||
return Redirect::to('admin/licenses')->with('error', Lang::get('admin/licenses/message.not_found'));
|
||||
}
|
||||
|
||||
if ( e(Input::get('asset_id')) == '') {
|
||||
if (Input::get('asset_id') == '') {
|
||||
$licenseseat->asset_id = NULL;
|
||||
} else {
|
||||
$licenseseat->asset_id = e(Input::get('asset_id'));
|
||||
@@ -514,12 +524,55 @@ class LicensesController extends AdminController
|
||||
$logaction->asset_id = $licenseseat->license_id;
|
||||
|
||||
|
||||
$license = License::find($licenseseat->license_id);
|
||||
$settings = Setting::getSettings();
|
||||
|
||||
|
||||
// Update the asset data
|
||||
if ( e(Input::get('assigned_to')) == '') {
|
||||
$logaction->checkedout_to = NULL;
|
||||
$logaction->checkedout_to = NULL;
|
||||
$slack_msg = strtoupper($logaction->asset_type).' license <'.Config::get('app.url').'/admin/licenses/'.$license->id.'/view'.'|'.$license->name.'> checked out to <'.Config::get('app.url').'/hardware/'.$is_asset_id->id.'/view|'.$is_asset_id->showAssetName().'> by <'.Config::get('app.url').'/admin/users/'.$user->id.'/view'.'|'.$user->fullName().'>.';
|
||||
} else {
|
||||
$logaction->checkedout_to = e(Input::get('assigned_to'));
|
||||
$logaction->checkedout_to = e(Input::get('assigned_to'));
|
||||
$slack_msg = strtoupper($logaction->asset_type).' license <'.Config::get('app.url').'/admin/licenses/'.$license->id.'/view'.'|'.$license->name.'> checked out to <'.Config::get('app.url').'/admin/users/'.$is_assigned_to->id.'/view|'.$is_assigned_to->fullName().'> by <'.Config::get('app.url').'/admin/users/'.$user->id.'/view'.'|'.$user->fullName().'>.';
|
||||
}
|
||||
|
||||
|
||||
|
||||
if ($settings->slack_endpoint) {
|
||||
|
||||
|
||||
$slack_settings = [
|
||||
'username' => $settings->botname,
|
||||
'channel' => $settings->slack_channel,
|
||||
'link_names' => true
|
||||
];
|
||||
|
||||
$client = new \Maknz\Slack\Client($settings->slack_endpoint,$slack_settings);
|
||||
|
||||
try {
|
||||
$client->attach([
|
||||
'color' => 'good',
|
||||
'fields' => [
|
||||
[
|
||||
'title' => 'Checked Out:',
|
||||
'value' => $slack_msg
|
||||
],
|
||||
[
|
||||
'title' => 'Note:',
|
||||
'value' => e($logaction->note)
|
||||
],
|
||||
|
||||
|
||||
|
||||
]
|
||||
])->send('License Checked Out');
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$log = $logaction->logaction('checkout');
|
||||
|
||||
@@ -536,14 +589,14 @@ class LicensesController extends AdminController
|
||||
/**
|
||||
* Check the license back into inventory
|
||||
**/
|
||||
public function getCheckin($seatId)
|
||||
public function getCheckin($seatId = null, $backto = null)
|
||||
{
|
||||
// Check if the asset exists
|
||||
if (is_null($licenseseat = LicenseSeat::find($seatId))) {
|
||||
// Redirect to the asset management page with error
|
||||
return Redirect::to('admin/licenses')->with('error', Lang::get('admin/licenses/message.not_found'));
|
||||
}
|
||||
return View::make('backend/licenses/checkin', compact('licenseseat'));
|
||||
return View::make('backend/licenses/checkin', compact('licenseseat'))->with('backto',$backto);
|
||||
|
||||
}
|
||||
|
||||
@@ -552,14 +605,22 @@ class LicensesController extends AdminController
|
||||
/**
|
||||
* Check in the item so that it can be checked out again to someone else
|
||||
**/
|
||||
public function postCheckin($seatId)
|
||||
public function postCheckin($seatId = null, $backto = null)
|
||||
{
|
||||
// Check if the asset exists
|
||||
if (is_null($licenseseat = LicenseSeat::find($seatId))) {
|
||||
// Redirect to the asset management page with error
|
||||
return Redirect::to('admin/licenses')->with('error', Lang::get('admin/licenses/message.not_found'));
|
||||
}
|
||||
|
||||
$license = License::find($licenseseat->license_id);
|
||||
|
||||
if(!$license->reassignable) {
|
||||
// Not allowed to checkin
|
||||
Session::flash('error', 'License not reassignable.');
|
||||
return Redirect::back()->withInput();
|
||||
}
|
||||
|
||||
// Declare the rules for the form validation
|
||||
$rules = array(
|
||||
'note' => 'alpha_space',
|
||||
@@ -574,13 +635,15 @@ class LicensesController extends AdminController
|
||||
// Ooops.. something went wrong
|
||||
return Redirect::back()->withInput()->withErrors($validator);
|
||||
}
|
||||
|
||||
$return_to = $licenseseat->assigned_to;
|
||||
$logaction = new Actionlog();
|
||||
$logaction->checkedout_to = $licenseseat->assigned_to;
|
||||
|
||||
// Update the asset data
|
||||
$licenseseat->assigned_to = NULL;
|
||||
$licenseseat->asset_id = NULL;
|
||||
|
||||
$user = Sentry::getUser();
|
||||
|
||||
// Was the asset updated?
|
||||
if($licenseseat->save()) {
|
||||
@@ -588,11 +651,54 @@ class LicensesController extends AdminController
|
||||
$logaction->location_id = NULL;
|
||||
$logaction->asset_type = 'software';
|
||||
$logaction->note = e(Input::get('note'));
|
||||
$logaction->user_id = Sentry::getUser()->id;
|
||||
$log = $logaction->logaction('checkin from');
|
||||
$logaction->user_id = $user->id;
|
||||
|
||||
$settings = Setting::getSettings();
|
||||
|
||||
if ($settings->slack_endpoint) {
|
||||
|
||||
|
||||
$slack_settings = [
|
||||
'username' => $settings->botname,
|
||||
'channel' => $settings->slack_channel,
|
||||
'link_names' => true
|
||||
];
|
||||
|
||||
$client = new \Maknz\Slack\Client($settings->slack_endpoint,$slack_settings);
|
||||
|
||||
try {
|
||||
$client->attach([
|
||||
'color' => 'good',
|
||||
'fields' => [
|
||||
[
|
||||
'title' => 'Checked In:',
|
||||
'value' => strtoupper($logaction->asset_type).' <'.Config::get('app.url').'/admin/licenses/'.$license->id.'/view'.'|'.$license->name.'> checked in by <'.Config::get('app.url').'/admin/users/'.$user->id.'/view'.'|'.$user->fullName().'>.'
|
||||
],
|
||||
[
|
||||
'title' => 'Note:',
|
||||
'value' => e($logaction->note)
|
||||
],
|
||||
|
||||
]
|
||||
])->send('License Checked In');
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
$log = $logaction->logaction('checkin from');
|
||||
|
||||
|
||||
|
||||
if ($backto=='user') {
|
||||
return Redirect::to("admin/users/".$return_to.'/view')->with('success', Lang::get('admin/licenses/message.checkin.success'));
|
||||
} else {
|
||||
return Redirect::to("admin/licenses/".$licenseseat->license_id."/view")->with('success', Lang::get('admin/licenses/message.checkin.success'));
|
||||
}
|
||||
|
||||
// Redirect to the license page
|
||||
return Redirect::to("admin/licenses")->with('success', Lang::get('admin/licenses/message.checkin.success'));
|
||||
}
|
||||
|
||||
// Redirect to the license page with error
|
||||
@@ -664,7 +770,7 @@ class LicensesController extends AdminController
|
||||
foreach(Input::file('licensefile') as $file) {
|
||||
|
||||
$rules = array(
|
||||
'licensefile' => 'required|mimes:png,gif,jpg,jpeg,doc,docx,pdf,txt|max:2000'
|
||||
'licensefile' => 'required|mimes:png,gif,jpg,jpeg,doc,docx,pdf,txt,zip,rar|max:2000'
|
||||
);
|
||||
$validator = Validator::make(array('licensefile'=> $file), $rules);
|
||||
|
||||
@@ -773,4 +879,33 @@ class LicensesController extends AdminController
|
||||
return Redirect::route('licenses')->with('error', $error);
|
||||
}
|
||||
}
|
||||
|
||||
public function getDatatable() {
|
||||
$licenses = License::orderBy('created_at', 'DESC')->get();
|
||||
|
||||
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function($licenses) {
|
||||
return '<a href="'.route('update/license', $licenses->id).'" class="btn btn-warning btn-sm" style="margin-right:5px;"><i class="fa fa-pencil icon-white"></i></a><a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="'.route('delete/license', $licenses->id).'" data-content="'.Lang::get('admin/licenses/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($licenses->name).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a>';
|
||||
});
|
||||
|
||||
return Datatable::collection($licenses)
|
||||
->addColumn('name', function($licenses) {
|
||||
return link_to('/admin/licenses/'.$licenses->id.'/view', $licenses->name);
|
||||
})
|
||||
->addColumn('serial', function($licenses) {
|
||||
return link_to('/admin/licenses/'.$licenses->id.'/view', mb_strimwidth($licenses->serial, 0, 50, "..."));
|
||||
})
|
||||
->addColumn('totalSeats', function($licenses) {
|
||||
return $licenses->totalSeatsByLicenseID();
|
||||
})
|
||||
->addColumn('remaining', function($licenses) {
|
||||
return $licenses->remaincount();
|
||||
})
|
||||
->addColumn('purchase_date', function($licenses) {
|
||||
return $licenses->purchase_date;
|
||||
})
|
||||
->addColumn($actions)
|
||||
->searchColumns('name','serial','totalSeats','remaining','purchase_date','actions')
|
||||
->orderColumns('name','serial','totalSeats','remaining','purchase_date','actions')
|
||||
->make();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ use Manufacturer;
|
||||
use Str;
|
||||
use Validator;
|
||||
use View;
|
||||
use Datatable;
|
||||
|
||||
class ModelsController extends AdminController
|
||||
{
|
||||
@@ -24,16 +25,8 @@ class ModelsController extends AdminController
|
||||
*/
|
||||
public function getIndex()
|
||||
{
|
||||
// Grab all the models
|
||||
$models = Model::orderBy('created_at', 'DESC');
|
||||
if (Input::get('Deleted')) {
|
||||
$models->withTrashed()->Deleted();
|
||||
}
|
||||
|
||||
$models = $models->with('category','assets','depreciation')->get();
|
||||
|
||||
// Show the page
|
||||
return View::make('backend/models/index', compact('models'));
|
||||
return View::make('backend/models/index');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -315,6 +308,76 @@ class ModelsController extends AdminController
|
||||
return $view;
|
||||
|
||||
}
|
||||
|
||||
public function getDatatable($status = null)
|
||||
{
|
||||
$models = Model::orderBy('created_at', 'DESC')->with('category','assets','depreciation');
|
||||
($status != 'Deleted') ?: $models->withTrashed()->Deleted();;
|
||||
$models = $models->get();
|
||||
|
||||
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function($models) {
|
||||
if($models->deleted_at=='') {
|
||||
return '<a href="'.route('update/model', $models->id).'" class="btn btn-warning btn-sm" style="margin-right:5px;"><i class="fa fa-pencil icon-white"></i></a><a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="'.route('delete/model', $models->id).'" data-content="'.Lang::get('admin/models/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($models->name).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a>';
|
||||
} else {
|
||||
return '<a href="'.route('restore/model', $models->id).'" class="btn btn-warning btn-sm"><i class="fa fa-recycle icon-white"></i></a>';
|
||||
}
|
||||
});
|
||||
|
||||
return Datatable::collection($models)
|
||||
->addColumn('name', function ($models) {
|
||||
return link_to('/hardware/models/'.$models->id.'/view', $models->name);
|
||||
})
|
||||
->showColumns('modelno')
|
||||
->addColumn('asset_count', function($models) {
|
||||
return $models->assets->count();
|
||||
})
|
||||
->addColumn('depreciation', function($models) {
|
||||
return (($models->depreciation)&&($models->depreciation->id > 0)) ? $models->depreciation->name.' ('.$models->depreciation->months.')' : Lang::get('general.no_depreciation');
|
||||
})
|
||||
->addColumn('category', function($models) {
|
||||
return ($models->category) ? $models->category->name : '';
|
||||
})
|
||||
->addColumn('eol', function($models) {
|
||||
return ($models->eol) ? $models->eol.' '.Lang::get('general.months') : '';
|
||||
})
|
||||
->addColumn($actions)
|
||||
->searchColumns('name','modelno','asset_count','depreciation','category','eol','actions')
|
||||
->orderColumns('name','modelno','asset_count','depreciation','category','eol','actions')
|
||||
->make();
|
||||
}
|
||||
|
||||
|
||||
public function getDataView($modelID)
|
||||
{
|
||||
$model = Model::withTrashed()->find($modelID);
|
||||
$modelassets = $model->assets;
|
||||
|
||||
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function ($modelassets)
|
||||
{
|
||||
if (($modelassets->assigned_to !='') && ($modelassets->assigned_to > 0)) {
|
||||
return '<a href="'.route('checkin/hardware', $modelassets->id).'" class="btn btn-primary btn-sm">'.Lang::get('general.checkin').'</a>';
|
||||
} else {
|
||||
return '<a href="'.route('checkout/hardware', $modelassets->id).'" class="btn btn-info btn-sm">'.Lang::get('general.checkout').'</a>';
|
||||
}
|
||||
});
|
||||
|
||||
return Datatable::collection($modelassets)
|
||||
->addColumn('name', function ($modelassets) {
|
||||
return link_to('/hardware/'.$modelassets->id.'/view', $modelassets->name);
|
||||
})
|
||||
->addColumn('asset_tag', function ($modelassets) {
|
||||
return link_to('/hardware/'.$modelassets->id.'/view', $modelassets->asset_tag);
|
||||
})
|
||||
->showColumns('serial')
|
||||
->addColumn('assigned_to', function ($modelassets) {
|
||||
if ($modelassets->assigned_to) {
|
||||
return link_to('/admin/users/'.$modelassets->assigned_to.'/view', $modelassets->assigneduser->fullName());
|
||||
}
|
||||
})
|
||||
->addColumn($actions)
|
||||
->searchColumns('name','asset_tag','serial','assigned_to','actions')
|
||||
->orderColumns('name','asset_tag','serial','assigned_to','actions')
|
||||
->make();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ use View;
|
||||
use Location;
|
||||
use Redirect;
|
||||
use Response;
|
||||
use Actionlog;
|
||||
|
||||
class ReportsController extends AdminController
|
||||
{
|
||||
@@ -45,13 +46,13 @@ class ReportsController extends AdminController
|
||||
Lang::get('general.model_no'),
|
||||
Lang::get('general.name'),
|
||||
Lang::get('admin/hardware/table.serial'),
|
||||
Lang::get('general.status'),
|
||||
Lang::get('admin/hardware/table.purchase_date'),
|
||||
Lang::get('admin/hardware/table.purchase_cost'),
|
||||
Lang::get('admin/hardware/form.order'),
|
||||
Lang::get('admin/hardware/form.supplier'),
|
||||
Lang::get('admin/hardware/table.checkoutto'),
|
||||
Lang::get('admin/hardware/table.location'),
|
||||
Lang::get('general.status')
|
||||
Lang::get('admin/hardware/table.location')
|
||||
);
|
||||
$header = array_map('trim', $header);
|
||||
$rows[] = implode($header, ',');
|
||||
@@ -69,6 +70,11 @@ class ReportsController extends AdminController
|
||||
$row[] = '"'.$asset->model->modelno.'"';
|
||||
$row[] = $asset->name;
|
||||
$row[] = $asset->serial;
|
||||
if ($asset->assetstatus) {
|
||||
$row[] = $asset->assetstatus->name;
|
||||
} else {
|
||||
$row[] = '';
|
||||
}
|
||||
$row[] = $asset->purchase_date;
|
||||
$row[] = '"'.number_format($asset->purchase_cost).'"';
|
||||
if ($asset->order_number) {
|
||||
@@ -107,16 +113,6 @@ class ReportsController extends AdminController
|
||||
$row[] = ''; // Empty string if location is not set
|
||||
}
|
||||
|
||||
if (($asset->status_id == '0') && ($asset->assigned_to == '0')) {
|
||||
$row[] = Lang::get('general.ready_to_deploy');
|
||||
} elseif (($asset->status_id == '') && ($asset->assigned_to == '0')) {
|
||||
$row[] = Lang::get('general.pending');
|
||||
} elseif ($asset->assetstatus) {
|
||||
$row[] = $asset->assetstatus->name;
|
||||
} else {
|
||||
$row[] = '';
|
||||
}
|
||||
|
||||
$rows[] = implode($row, ',');
|
||||
}
|
||||
|
||||
@@ -217,6 +213,26 @@ class ReportsController extends AdminController
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Report for Activity
|
||||
*
|
||||
* @return View
|
||||
*/
|
||||
|
||||
public function getActivityReport()
|
||||
{
|
||||
$log_actions = Actionlog::orderBy('created_at', 'DESC')
|
||||
->with('adminlog')
|
||||
->with('accessorylog')
|
||||
->with('assetlog')
|
||||
->with('licenselog')
|
||||
->with('userlog')
|
||||
->orderBy('created_at','DESC')
|
||||
->get();
|
||||
return View::make('backend/reports/activity', compact('log_actions'));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show Report for Licenses
|
||||
*
|
||||
@@ -372,7 +388,7 @@ class ReportsController extends AdminController
|
||||
if (e(Input::get('purchase_date')) == '1') {
|
||||
$row[] = $asset->purchase_date;
|
||||
}
|
||||
if ((e(Input::get('purchase_cost')) == '1') && (e(Input::get('depreciation')) == '0')) {
|
||||
if (e(Input::get('purchase_cost')) == '1') {
|
||||
$row[] = '"'.number_format($asset->purchase_cost).'"';
|
||||
}
|
||||
if (e(Input::get('order')) == '1') {
|
||||
@@ -437,7 +453,7 @@ class ReportsController extends AdminController
|
||||
}
|
||||
}
|
||||
if (e(Input::get('depreciation')) == '1') {
|
||||
$depreciation = $asset->depreciate();
|
||||
$depreciation = $asset->getDepreciatedValue();
|
||||
$row[] = '"'.number_format($asset->purchase_cost).'"';
|
||||
$row[] = '"'.number_format($depreciation).'"';
|
||||
$row[] = '"'.number_format($asset->purchase_cost - $depreciation).'"';
|
||||
@@ -456,4 +472,4 @@ class ReportsController extends AdminController
|
||||
return Redirect::to("reports/custom")->with('error', Lang::get('admin/reports/message.error'));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ use Str;
|
||||
use Validator;
|
||||
use View;
|
||||
use Image;
|
||||
use Config;
|
||||
|
||||
class SettingsController extends AdminController
|
||||
{
|
||||
@@ -63,14 +64,22 @@ class SettingsController extends AdminController
|
||||
|
||||
|
||||
// Declare the rules for the form validation
|
||||
|
||||
$rules = array(
|
||||
"site_name" => 'required|min:3',
|
||||
"per_page" => 'required|min:1|numeric',
|
||||
"qr_text" => 'min:1|max:31',
|
||||
"logo" => 'mimes:jpeg,bmp,png,gif',
|
||||
"alert_email" => 'email',
|
||||
);
|
||||
"per_page" => 'required|min:1|numeric',
|
||||
"qr_text" => 'min:1|max:31',
|
||||
"logo" => 'mimes:jpeg,bmp,png,gif',
|
||||
"alert_email" => 'email',
|
||||
"slack_endpoint" => 'url',
|
||||
"slack_channel" => 'regex:/(?<!\w)#\w+/',
|
||||
"slack_botname" => 'alpha_dash',
|
||||
);
|
||||
|
||||
if (Config::get('app.lock_passwords')==false) {
|
||||
$rules['site_name'] = 'required|min:3';
|
||||
|
||||
}
|
||||
|
||||
// Create a new validator instance from our validation rules
|
||||
$validator = Validator::make(Input::all(), $rules);
|
||||
|
||||
@@ -80,7 +89,7 @@ class SettingsController extends AdminController
|
||||
// Ooops.. something went wrong
|
||||
return Redirect::back()->withInput()->withErrors($validator);
|
||||
}
|
||||
|
||||
|
||||
if (Input::get('clear_logo')=='1') {
|
||||
$setting->logo = NULL;
|
||||
} elseif (Input::file('logo')) {
|
||||
@@ -93,16 +102,18 @@ class SettingsController extends AdminController
|
||||
})->save($path);
|
||||
$setting->logo = $file_name;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Update the asset data
|
||||
$setting->id = '1';
|
||||
$setting->site_name = e(Input::get('site_name'));
|
||||
$setting->display_asset_name = e(Input::get('display_asset_name', '0'));
|
||||
$setting->display_checkout_date = e(Input::get('display_checkout_date', '0'));
|
||||
|
||||
if (Config::get('app.lock_passwords')==false) {
|
||||
$setting->site_name = e(Input::get('site_name'));
|
||||
}
|
||||
|
||||
$setting->per_page = e(Input::get('per_page'));
|
||||
$setting->qr_code = e(Input::get('qr_code', '0'));
|
||||
$setting->display_eol = e(Input::get('display_eol', '0'));
|
||||
$setting->barcode_type = e(Input::get('barcode_type'));
|
||||
$setting->load_remote = e(Input::get('load_remote', '0'));
|
||||
$setting->qr_text = e(Input::get('qr_text'));
|
||||
$setting->auto_increment_prefix = e(Input::get('auto_increment_prefix'));
|
||||
@@ -111,7 +122,10 @@ class SettingsController extends AdminController
|
||||
$setting->alerts_enabled = e(Input::get('alerts_enabled', '0'));
|
||||
$setting->header_color = e(Input::get('header_color'));
|
||||
$setting->default_eula_text = e(Input::get('default_eula_text'));
|
||||
|
||||
$setting->slack_endpoint = e(Input::get('slack_endpoint'));
|
||||
$setting->slack_channel = e(Input::get('slack_channel'));
|
||||
$setting->slack_botname = e(Input::get('slack_botname'));
|
||||
|
||||
|
||||
// Was the asset updated?
|
||||
if($setting->save()) {
|
||||
|
||||
@@ -20,7 +20,7 @@ use Redirect;
|
||||
use Sentry;
|
||||
use Validator;
|
||||
use View;
|
||||
use Chumper\Datatable\Facades\Datatable;
|
||||
use Datatable;
|
||||
use League\Csv\Reader;
|
||||
use Mail;
|
||||
|
||||
@@ -47,41 +47,9 @@ class UsersController extends AdminController
|
||||
*/
|
||||
public function getIndex()
|
||||
{
|
||||
// Grab all the users - depending on the scope to include
|
||||
$users = Sentry::getUserProvider()->createModel();
|
||||
|
||||
// Do we want to include the deleted users?
|
||||
// the with and onlyTrashed calls currently do not work - returns an
|
||||
// inconsistent array which cannot be displayed by the blade output
|
||||
|
||||
if (Input::get('withTrashed')) {
|
||||
|
||||
$users = $users->withTrashed();
|
||||
//$users = Sentry::getUserProvider()->createModel()->paginate();
|
||||
|
||||
} elseif (Input::get('onlyTrashed')) {
|
||||
|
||||
// this is a tempoary 'fix' to display NO deleted users.
|
||||
//$users = Sentry::getUserProvider()->createModel()->whereNotNull('deleted_at')->paginate();
|
||||
//$users = Sentry::findAllUsers();
|
||||
//$users = users::deletedUsers()->paginate();
|
||||
$users = Sentry::getUserProvider()->createModel()->onlyTrashed();
|
||||
//$users = users::whereNotNull('deleted_at')->paginate();
|
||||
//$users = $users->onlyTrashed();
|
||||
//$users = Users::onlyTrashed()->get();
|
||||
//$users = Sentry::getUserProvider()->createModel();
|
||||
}
|
||||
|
||||
|
||||
// Paginate the users
|
||||
$users = $users->paginate(100000)
|
||||
->appends(array(
|
||||
'withTrashed' => Input::get('withTrashed'),
|
||||
'onlyTrashed' => Input::get('onlyTrashed'),
|
||||
));
|
||||
|
||||
// Show the page
|
||||
return View::make('backend/users/index', compact('users'));
|
||||
return View::make('backend/users/index');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -176,22 +144,22 @@ class UsersController extends AdminController
|
||||
|
||||
// Redirect to the new user page
|
||||
//return Redirect::route('update/user', $user->id)->with('success', $success);
|
||||
|
||||
|
||||
if (Input::get('email_user')==1) {
|
||||
// Send the credentials through email
|
||||
|
||||
|
||||
$data = array();
|
||||
$data['email'] = e(Input::get('email'));
|
||||
$data['first_name'] = e(Input::get('first_name'));
|
||||
$data['password'] = e(Input::get('password'));
|
||||
|
||||
|
||||
Mail::send('emails.send-login', $data, function ($m) use ($user) {
|
||||
$m->to($user->email, $user->first_name . ' ' . $user->last_name);
|
||||
$m->subject('Welcome ' . $user->first_name);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return Redirect::route('users')->with('success', $success);
|
||||
}
|
||||
|
||||
@@ -309,11 +277,15 @@ class UsersController extends AdminController
|
||||
return Redirect::back()->withInput()->withErrors($validator);
|
||||
}
|
||||
|
||||
// Only update the email address if locking is set to false
|
||||
if (!Config::get('app.lock_passwords')) {
|
||||
$user->email = Input::get('email');
|
||||
}
|
||||
|
||||
try {
|
||||
// Update the user
|
||||
$user->first_name = Input::get('first_name');
|
||||
$user->last_name = Input::get('last_name');
|
||||
$user->email = Input::get('email');
|
||||
$user->employee_num = Input::get('employee_num');
|
||||
$user->activated = Input::get('activated', $user->activated);
|
||||
$user->permissions = Input::get('permissions');
|
||||
@@ -321,6 +293,7 @@ class UsersController extends AdminController
|
||||
$user->phone = Input::get('phone');
|
||||
$user->location_id = Input::get('location_id');
|
||||
$user->manager_id = Input::get('manager_id');
|
||||
$user->notes = Input::get('notes');
|
||||
|
||||
if ($user->manager_id == "") {
|
||||
$user->manager_id = NULL;
|
||||
@@ -332,7 +305,7 @@ class UsersController extends AdminController
|
||||
|
||||
|
||||
// Do we want to update the user password?
|
||||
if ($password) {
|
||||
if (($password) && (!Config::get('app.lock_passwords'))) {
|
||||
$user->password = $password;
|
||||
}
|
||||
|
||||
@@ -347,19 +320,22 @@ class UsersController extends AdminController
|
||||
$groupsToAdd = array_diff($selectedGroups, $userGroups);
|
||||
$groupsToRemove = array_diff($userGroups, $selectedGroups);
|
||||
|
||||
// Assign the user to groups
|
||||
foreach ($groupsToAdd as $groupId) {
|
||||
$group = Sentry::getGroupProvider()->findById($groupId);
|
||||
if (!Config::get('app.lock_passwords')) {
|
||||
|
||||
$user->addGroup($group);
|
||||
}
|
||||
// Assign the user to groups
|
||||
foreach ($groupsToAdd as $groupId) {
|
||||
$group = Sentry::getGroupProvider()->findById($groupId);
|
||||
|
||||
// Remove the user from groups
|
||||
foreach ($groupsToRemove as $groupId) {
|
||||
$group = Sentry::getGroupProvider()->findById($groupId);
|
||||
$user->addGroup($group);
|
||||
}
|
||||
|
||||
$user->removeGroup($group);
|
||||
}
|
||||
// Remove the user from groups
|
||||
foreach ($groupsToRemove as $groupId) {
|
||||
$group = Sentry::getGroupProvider()->findById($groupId);
|
||||
|
||||
$user->removeGroup($group);
|
||||
}
|
||||
}
|
||||
|
||||
// Was the user updated?
|
||||
if ($user->save()) {
|
||||
@@ -403,7 +379,7 @@ class UsersController extends AdminController
|
||||
|
||||
|
||||
// Do we have permission to delete this user?
|
||||
if ($user->isSuperUser() and ! Sentry::getUser()->isSuperUser()) {
|
||||
if ((!Sentry::getUser()->isSuperUser()) || (Config::get('app.lock_passwords'))) {
|
||||
// Redirect to the user management page
|
||||
return Redirect::route('users')->with('error', 'Insufficient permissions!');
|
||||
}
|
||||
@@ -490,33 +466,6 @@ class UsersController extends AdminController
|
||||
|
||||
}
|
||||
|
||||
public function getDatatable()
|
||||
{
|
||||
return Datatable::collection(User::all())
|
||||
->addColumn('name',function ($model) {
|
||||
$name = HTML::image($model->gravatar(), $model->first_name, array('class'=>'img-circle avatar hidden-phone', 'style'=>'max-width: 45px'));
|
||||
$name .= HTML::link(URL::action('Controllers\Admin\UsersController@getView', $model->id), $model->first_name . ' ' . $model->last_name, array('class' => 'name'));
|
||||
return $name;
|
||||
}
|
||||
)
|
||||
->showColumns('email')
|
||||
->addColumn('assets', function ($model) {
|
||||
$assets = $model->assets->count();
|
||||
return $assets;
|
||||
}
|
||||
)
|
||||
->addColumn('licenses', function ($model) {
|
||||
$licenses = $model->licenses->count();
|
||||
return $licenses;
|
||||
}
|
||||
)
|
||||
->addColumn('activated', function ($model) {
|
||||
$activated = $model->isActivated() ? '<i class="fa fa-check"></i>' : '';
|
||||
return $activated;
|
||||
}
|
||||
)
|
||||
->make();
|
||||
}
|
||||
|
||||
/**
|
||||
* Unsuspend the given user.
|
||||
@@ -619,7 +568,7 @@ class UsersController extends AdminController
|
||||
return Redirect::route('users')->with('error', $error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* User import.
|
||||
*
|
||||
@@ -640,8 +589,8 @@ class UsersController extends AdminController
|
||||
// Show the page
|
||||
return View::make('backend/users/import', compact('groups', 'selectedGroups', 'permissions', 'selectedPermissions'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* User import form processing.
|
||||
*
|
||||
@@ -649,92 +598,174 @@ class UsersController extends AdminController
|
||||
*/
|
||||
public function postImport()
|
||||
{
|
||||
|
||||
|
||||
if (! ini_get("auto_detect_line_endings")) {
|
||||
ini_set("auto_detect_line_endings", '1');
|
||||
}
|
||||
|
||||
$csv = Reader::createFromPath(Input::file('user_import_csv'));
|
||||
|
||||
$csv = Reader::createFromPath(Input::file('user_import_csv'));
|
||||
$csv->setNewline("\r\n");
|
||||
|
||||
|
||||
if (Input::get('has_headers')==1) {
|
||||
$csv->setOffset(1);
|
||||
$csv->setOffset(1);
|
||||
}
|
||||
|
||||
$duplicates = '';
|
||||
|
||||
|
||||
$duplicates = '';
|
||||
|
||||
$nbInsert = $csv->each(function ($row) use ($duplicates) {
|
||||
|
||||
|
||||
if (array_key_exists(2, $row)) {
|
||||
|
||||
|
||||
if (Input::get('activate')==1) {
|
||||
$activated = '1';
|
||||
$activated = '1';
|
||||
} else {
|
||||
$activated = '0';
|
||||
$activated = '0';
|
||||
}
|
||||
|
||||
|
||||
$pass = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 10);
|
||||
|
||||
|
||||
|
||||
try {
|
||||
|
||||
|
||||
|
||||
try {
|
||||
// Check if this email already exists in the system
|
||||
$user = DB::table('users')->where('email', $row[2])->first();
|
||||
if ($user) {
|
||||
if ($user) {
|
||||
$duplicates .= $row[2].', ';
|
||||
} else {
|
||||
|
||||
|
||||
$newuser = array(
|
||||
'first_name' => $row[0],
|
||||
'last_name' => $row[1],
|
||||
'email' => $row[2],
|
||||
'password' => $pass,
|
||||
'activated' => $activated,
|
||||
'permissions' => '{"user":1}'
|
||||
'permissions' => '{"user":1}',
|
||||
'notes' => 'Imported user'
|
||||
);
|
||||
|
||||
|
||||
DB::table('users')->insert($newuser);
|
||||
|
||||
$udpateuser = Sentry::findUserByLogin($row[2]);
|
||||
|
||||
|
||||
$updateuser = Sentry::findUserByLogin($row[2]);
|
||||
|
||||
// Update the user details
|
||||
$udpateuser->password = $pass;
|
||||
|
||||
$updateuser->password = $pass;
|
||||
|
||||
// Update the user
|
||||
$udpateuser->save();
|
||||
|
||||
|
||||
$updateuser->save();
|
||||
|
||||
|
||||
if (Input::get('email_user')==1) {
|
||||
// Send the credentials through email
|
||||
|
||||
|
||||
$data = array();
|
||||
$data['email'] = $row[2];
|
||||
$data['first_name'] = $row[0];
|
||||
$data['password'] = $pass;
|
||||
|
||||
|
||||
Mail::send('emails.send-login', $data, function ($m) use ($newuser) {
|
||||
$m->to($newuser['email'], $newuser['first_name'] . ' ' . $newuser['last_name']);
|
||||
$m->subject('Welcome ' . $newuser['first_name']);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo 'Caught exception: ', $e->getMessage(), "\n";
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
return Redirect::route('users')->with('duplicates',$duplicates)->with('success', 'Success');
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
return Redirect::route('users')->with('duplicates',$duplicates)->with('success', 'Success');
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function getDatatable($status = null)
|
||||
{
|
||||
|
||||
$users = User::with('assets','licenses','manager','sentryThrottle');
|
||||
|
||||
switch ($status) {
|
||||
case 'deleted':
|
||||
$users->GetDeleted();
|
||||
break;
|
||||
case '':
|
||||
$users->GetNotDeleted();
|
||||
break;
|
||||
}
|
||||
|
||||
$users = $users->orderBy('created_at', 'DESC')->get();
|
||||
|
||||
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function ($users)
|
||||
{
|
||||
$action_buttons = '';
|
||||
|
||||
|
||||
if ( ! is_null($users->deleted_at)) {
|
||||
$action_buttons .= '<a href="'.route('restore/user', $users->id).'" class="btn btn-warning btn-sm"><i class="fa fa-share icon-white"></i></a> ';
|
||||
} else {
|
||||
if ($users->accountStatus()=='suspended') {
|
||||
$action_buttons .= '<a href="'.route('unsuspend/user', $users->id).'" class="btn btn-warning btn-sm"><span class="fa fa-time icon-white"></span></a> ';
|
||||
}
|
||||
|
||||
$action_buttons .= '<a href="'.route('update/user', $users->id).'" class="btn btn-warning btn-sm"><i class="fa fa-pencil icon-white"></i></a> ';
|
||||
|
||||
if ((Sentry::getId() !== $users->id) && (!Config::get('app.lock_passwords'))) {
|
||||
$action_buttons .= '<a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="'.route('delete/user', $users->id).'" data-content="Are you sure you wish to delete this user?" data-title="Delete '.htmlspecialchars($users->first_name).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a> ';
|
||||
} else {
|
||||
$action_buttons .= ' <span class="btn delete-asset btn-danger btn-sm disabled"><i class="fa fa-trash icon-white"></i></span>';
|
||||
}
|
||||
}
|
||||
return $action_buttons;
|
||||
|
||||
});
|
||||
|
||||
|
||||
return Datatable::collection($users)
|
||||
->addColumn('name',function($users)
|
||||
{
|
||||
return '<a title="'.$users->fullName().'" href="users/'.$users->id.'/view">'.$users->fullName().'</a>';
|
||||
})
|
||||
|
||||
->addColumn('email',function($users)
|
||||
{
|
||||
return '<a title="'.$users->email.'" href="mailto:'.$users->email.'">'.$users->email.'</a>';
|
||||
})
|
||||
|
||||
->addColumn('manager',function($users)
|
||||
{
|
||||
if ($users->manager) {
|
||||
return '<a title="'.$users->manager->fullName().'" href="users/'.$users->manager->id.'/view">'.$users->manager->fullName().'</a>';
|
||||
}
|
||||
})
|
||||
|
||||
->addColumn('assets',function($users)
|
||||
{
|
||||
return $users->assets->count();
|
||||
})
|
||||
|
||||
->addColumn('licenses',function($users)
|
||||
{
|
||||
return $users->licenses->count();
|
||||
})
|
||||
->addColumn('activated',function($users)
|
||||
{
|
||||
return $users->isActivated() ? '<i class="fa fa-check"></i>' : '';
|
||||
})
|
||||
|
||||
->addColumn($actions)
|
||||
->searchColumns('name','email','manager','activated', 'licenses','assets')
|
||||
->orderColumns('name','email','manager','activated', 'licenses','assets')
|
||||
->make();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -14,21 +14,21 @@ class AddEulaFields extends Migration {
|
||||
{
|
||||
//
|
||||
Schema::table('settings', function ($table) {
|
||||
$table->longText('default_eula_text');
|
||||
$table->longText('default_eula_text')->nullable()->default(NULL);
|
||||
});
|
||||
|
||||
|
||||
Schema::table('categories', function ($table) {
|
||||
$table->longText('eula_text');
|
||||
$table->longText('eula_text')->nullable()->default(NULL);
|
||||
$table->boolean('use_default_eula')->default(0);
|
||||
$table->boolean('require_acceptance')->default(0);
|
||||
});
|
||||
|
||||
|
||||
Schema::table('asset_logs', function ($table) {
|
||||
$table->dateTime('requested_at')->nullable()->default(NULL);
|
||||
$table->dateTime('accepted_at')->nullable()->default(NULL);
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
Schema::create('requested_assets', function ($table) {
|
||||
$table->increments('id');
|
||||
$table->integer('asset_id')->default(NULL);
|
||||
@@ -51,18 +51,18 @@ class AddEulaFields extends Migration {
|
||||
Schema::table('settings', function ($table) {
|
||||
$table->dropColumn('default_eula_text');
|
||||
});
|
||||
|
||||
|
||||
Schema::table('categories', function ($table) {
|
||||
$table->dropColumn('eula_text');
|
||||
$table->dropColumn('use_default_eula');
|
||||
$table->dropColumn('require_acceptance');
|
||||
});
|
||||
|
||||
|
||||
Schema::table('asset_logs', function ($table) {
|
||||
$table->dropColumn('requested_at');
|
||||
$table->dropColumn('accepted_at');
|
||||
});
|
||||
|
||||
|
||||
Schema::drop('requested_assets');
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class UpdateAcceptedAtToAcceptanceId extends Migration {
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
//
|
||||
|
||||
Schema::table('asset_logs', function ($table) {
|
||||
$table->integer('accepted_id')->nullable()->default(NULL);
|
||||
});
|
||||
|
||||
$results = DB::select('select invitation.id AS invitation_id, acceptance.id AS acceptance_id FROM asset_logs invitation INNER JOIN asset_logs acceptance ON (invitation.checkedout_to=acceptance.checkedout_to AND invitation.asset_id=acceptance.asset_id) WHERE invitation.action_type="checkout" AND acceptance.action_type="accepted"');
|
||||
|
||||
|
||||
foreach ($results as $result) {
|
||||
$update = DB::update('update asset_logs set accepted_id=? where id=?', [$result->acceptance_id, $result->invitation_id]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
Schema::table('asset_logs', function ($table) {
|
||||
$table->dropColumn('accepted_id');
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddQrTypeToSettings extends Migration {
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
//
|
||||
Schema::table('settings', function ($table) {
|
||||
$table->string('barcode_type')->nullable()->default('QRCODE');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
Schema::table('settings', function ($table) {
|
||||
$table->dropColumn('barcode_type');
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddNoteToUser extends Migration {
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('users', function ($table) {
|
||||
$table->text('notes');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('users', function ($table) {
|
||||
$table->dropColumn('notes');
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddSlackToSettings extends Migration {
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('settings', function(Blueprint $table)
|
||||
{
|
||||
$table->string('slack_endpoint')->nullable()->default(NULL);
|
||||
$table->string('slack_channel')->nullable()->default(NULL);
|
||||
$table->string('slack_botname')->nullable()->default(NULL);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('settings', function(Blueprint $table)
|
||||
{
|
||||
//
|
||||
$table->dropColumn('slack_endpoint');
|
||||
$table->dropColumn('slack_channel');
|
||||
$table->dropColumn('slack_botname');
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddReassignableToLicenses extends Migration {
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('licenses', function(Blueprint $table)
|
||||
{
|
||||
$table->boolean('reassignable')->default(true);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('licenses', function(Blueprint $table)
|
||||
{
|
||||
//
|
||||
$table->dropColumn('reassignable');
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -15,7 +15,7 @@ class ActionlogSeeder extends Seeder
|
||||
'user_id' => '1',
|
||||
'action_type' => 'checkout',
|
||||
'asset_id' => '1',
|
||||
'checkedout_to' => '2',
|
||||
'checkedout_to' => '1',
|
||||
'location_id' => '3',
|
||||
'created_at' => $date->modify('-10 day'),
|
||||
'asset_type' => 'hardware',
|
||||
@@ -28,7 +28,7 @@ class ActionlogSeeder extends Seeder
|
||||
'user_id' => '1',
|
||||
'action_type' => 'checkin from',
|
||||
'asset_id' => '1',
|
||||
'checkedout_to' => '2',
|
||||
'checkedout_to' => '1',
|
||||
'location_id' => NULL,
|
||||
'created_at' => $date->modify('-10 day'),
|
||||
'asset_type' => 'hardware',
|
||||
@@ -54,7 +54,7 @@ class ActionlogSeeder extends Seeder
|
||||
'user_id' => '1',
|
||||
'action_type' => 'checkin from',
|
||||
'asset_id' => '1',
|
||||
'checkedout_to' => '2',
|
||||
'checkedout_to' => '1',
|
||||
'location_id' => NULL,
|
||||
'created_at' => $date->modify('-10 day'),
|
||||
'asset_type' => 'software',
|
||||
|
||||
@@ -244,8 +244,8 @@ class AssetsSeeder extends Seeder
|
||||
|
||||
|
||||
$asset[] = array(
|
||||
'name' => 'Drunken Shanenigans Laptop',
|
||||
'asset_tag' => 'NNY6564567775',
|
||||
'name' => 'Borked Laptop',
|
||||
'asset_tag' => 'NNY656456778975',
|
||||
'model_id' => 2,
|
||||
'serial' => 'WS99689080890',
|
||||
'purchase_date' => '2012-01-02',
|
||||
|
||||
@@ -15,6 +15,7 @@ class CategoriesSeeder extends Seeder
|
||||
'use_default_eula' => 0,
|
||||
'require_acceptance' => 0,
|
||||
'deleted_at' => NULL,
|
||||
'eula_text' => NULL,
|
||||
);
|
||||
|
||||
$date = new DateTime;
|
||||
@@ -26,6 +27,7 @@ class CategoriesSeeder extends Seeder
|
||||
'use_default_eula' => 0,
|
||||
'require_acceptance' => 0,
|
||||
'deleted_at' => NULL,
|
||||
'eula_text' => NULL,
|
||||
);
|
||||
|
||||
$date = new DateTime;
|
||||
@@ -37,6 +39,7 @@ class CategoriesSeeder extends Seeder
|
||||
'use_default_eula' => 0,
|
||||
'require_acceptance' => 0,
|
||||
'deleted_at' => NULL,
|
||||
'eula_text' => NULL,
|
||||
);
|
||||
|
||||
$date = new DateTime;
|
||||
@@ -48,6 +51,7 @@ class CategoriesSeeder extends Seeder
|
||||
'use_default_eula' => 0,
|
||||
'require_acceptance' => 0,
|
||||
'deleted_at' => NULL,
|
||||
'eula_text' => NULL,
|
||||
);
|
||||
|
||||
$date = new DateTime;
|
||||
@@ -59,6 +63,7 @@ class CategoriesSeeder extends Seeder
|
||||
'use_default_eula' => 0,
|
||||
'require_acceptance' => 0,
|
||||
'deleted_at' => NULL,
|
||||
'eula_text' => NULL,
|
||||
);
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ class LicenseSeatsSeeder extends Seeder
|
||||
|
||||
$license_seats[] = array(
|
||||
'license_id' => '1',
|
||||
'assigned_to' => '2',
|
||||
'assigned_to' => '1',
|
||||
'created_at' => $date->modify('-10 day')->format('Y-m-d H:i:s'),
|
||||
'updated_at' => $date->modify('-3 day')->format('Y-m-d H:i:s'),
|
||||
'deleted_at' => NULL,
|
||||
@@ -35,7 +35,7 @@ class LicenseSeatsSeeder extends Seeder
|
||||
|
||||
$license_seats[] = array(
|
||||
'license_id' => '1',
|
||||
'assigned_to' => '2',
|
||||
'assigned_to' => '1',
|
||||
'created_at' => $date->modify('-10 day')->format('Y-m-d H:i:s'),
|
||||
'updated_at' => $date->modify('-3 day')->format('Y-m-d H:i:s'),
|
||||
'deleted_at' => NULL,
|
||||
@@ -57,7 +57,7 @@ class LicenseSeatsSeeder extends Seeder
|
||||
|
||||
$license_seats[] = array(
|
||||
'license_id' => '1',
|
||||
'assigned_to' => '2',
|
||||
'assigned_to' => '1',
|
||||
'created_at' => $date->modify('-10 day')->format('Y-m-d H:i:s'),
|
||||
'updated_at' => $date->modify('-3 day')->format('Y-m-d H:i:s'),
|
||||
'deleted_at' => NULL,
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_asset_categories' => 'crwdns634:0crwdne634:0',
|
||||
'about_categories' => 'crwdns635:0crwdne635:0',
|
||||
'asset_categories' => 'crwdns636:0crwdne636:0',
|
||||
'category_name' => 'crwdns637:0crwdne637:0',
|
||||
'create' => 'crwdns638:0crwdne638:0',
|
||||
'update' => 'crwdns639:0crwdne639:0',
|
||||
|
||||
);
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'does_not_exist' => 'crwdns625:0crwdne625:0',
|
||||
'assoc_users' => 'crwdns626:0crwdne626:0',
|
||||
|
||||
'create' => array(
|
||||
'error' => 'crwdns627:0crwdne627:0',
|
||||
'success' => 'crwdns628:0crwdne628:0'
|
||||
),
|
||||
|
||||
'update' => array(
|
||||
'error' => 'crwdns629:0crwdne629:0',
|
||||
'success' => 'crwdns630:0crwdne630:0'
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'crwdns631:0crwdne631:0',
|
||||
'error' => 'crwdns632:0crwdne632:0',
|
||||
'success' => 'crwdns633:0crwdne633:0'
|
||||
)
|
||||
|
||||
);
|
||||
@@ -1,9 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'id' => 'crwdns622:0crwdne622:0',
|
||||
'parent' => 'crwdns623:0crwdne623:0',
|
||||
'title' => 'crwdns624:0crwdne624:0',
|
||||
|
||||
);
|
||||
@@ -1,12 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_asset_depreciations' => 'crwdns819:0crwdne819:0',
|
||||
'about_depreciations' => 'crwdns820:0crwdne820:0',
|
||||
'asset_depreciations' => 'crwdns821:0crwdne821:0',
|
||||
'create_depreciation' => 'crwdns822:0crwdne822:0',
|
||||
'depreciation_name' => 'crwdns823:0crwdne823:0',
|
||||
'number_of_months' => 'crwdns824:0crwdne824:0',
|
||||
'update_depreciation' => 'crwdns825:0crwdne825:0',
|
||||
|
||||
);
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'does_not_exist' => 'crwdns810:0crwdne810:0',
|
||||
'assoc_users' => 'crwdns811:0crwdne811:0',
|
||||
|
||||
|
||||
'create' => array(
|
||||
'error' => 'crwdns812:0crwdne812:0',
|
||||
'success' => 'crwdns813:0crwdne813:0'
|
||||
),
|
||||
|
||||
'update' => array(
|
||||
'error' => 'crwdns814:0crwdne814:0',
|
||||
'success' => 'crwdns815:0crwdne815:0'
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'crwdns816:0crwdne816:0',
|
||||
'error' => 'crwdns817:0crwdne817:0',
|
||||
'success' => 'crwdns818:0crwdne818:0'
|
||||
)
|
||||
|
||||
);
|
||||
@@ -1,10 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'id' => 'crwdns806:0crwdne806:0',
|
||||
'months' => 'crwdns807:0crwdne807:0',
|
||||
'term' => 'crwdns808:0crwdne808:0',
|
||||
'title' => 'crwdns809:0crwdne809:0',
|
||||
|
||||
);
|
||||
@@ -1,22 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'group_exists' => 'crwdns880:0crwdne880:0',
|
||||
'group_not_found' => 'crwdns881:0crwdne881:0',
|
||||
'group_name_required' => 'crwdns882:0crwdne882:0',
|
||||
|
||||
'success' => array(
|
||||
'create' => 'crwdns883:0crwdne883:0',
|
||||
'update' => 'crwdns884:0crwdne884:0',
|
||||
'delete' => 'crwdns885:0crwdne885:0',
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'crwdns886:0crwdne886:0',
|
||||
'create' => 'crwdns887:0crwdne887:0',
|
||||
'update' => 'crwdns888:0crwdne888:0',
|
||||
'delete' => 'crwdns889:0crwdne889:0',
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,9 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'id' => 'crwdns877:0crwdne877:0',
|
||||
'name' => 'crwdns878:0crwdne878:0',
|
||||
'users' => 'crwdns879:0crwdne879:0',
|
||||
|
||||
);
|
||||
@@ -1,13 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'group_management' => 'crwdns870:0crwdne870:0',
|
||||
'create_group' => 'crwdns871:0crwdne871:0',
|
||||
'edit_group' => 'crwdns872:0crwdne872:0',
|
||||
'group_name' => 'crwdns873:0crwdne873:0',
|
||||
'group_admin' => 'crwdns874:0crwdne874:0',
|
||||
'allow' => 'crwdns875:0crwdne875:0',
|
||||
'deny' => 'crwdns876:0crwdne876:0',
|
||||
|
||||
);
|
||||
@@ -1,34 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'checkedout_to' => 'crwdns695:0crwdne695:0',
|
||||
'checkout_to' => 'crwdns696:0crwdne696:0',
|
||||
'cost' => 'crwdns697:0crwdne697:0',
|
||||
'create' => 'crwdns698:0crwdne698:0',
|
||||
'date' => 'crwdns699:0crwdne699:0',
|
||||
'depreciates_on' => 'crwdns700:0crwdne700:0',
|
||||
'depreciation' => 'crwdns701:0crwdne701:0',
|
||||
'default_location' => 'crwdns702:0crwdne702:0',
|
||||
'eol_date' => 'crwdns703:0crwdne703:0',
|
||||
'eol_rate' => 'crwdns704:0crwdne704:0',
|
||||
'expires' => 'crwdns705:0crwdne705:0',
|
||||
'fully_depreciated' => 'crwdns706:0crwdne706:0',
|
||||
'help_checkout' => 'crwdns707:0crwdne707:0',
|
||||
'manufacturer' => 'crwdns708:0crwdne708:0',
|
||||
'model' => 'crwdns709:0crwdne709:0',
|
||||
'months' => 'crwdns710:0crwdne710:0',
|
||||
'name' => 'crwdns711:0crwdne711:0',
|
||||
'notes' => 'crwdns712:0crwdne712:0',
|
||||
'order' => 'crwdns713:0crwdne713:0',
|
||||
'qr' => 'crwdns714:0crwdne714:0',
|
||||
'requestable' => 'crwdns715:0crwdne715:0',
|
||||
'serial' => 'crwdns716:0crwdne716:0',
|
||||
'status' => 'crwdns717:0crwdne717:0',
|
||||
'supplier' => 'crwdns718:0crwdne718:0',
|
||||
'tag' => 'crwdns719:0crwdne719:0',
|
||||
'update' => 'crwdns720:0crwdne720:0',
|
||||
'warranty' => 'crwdns721:0crwdne721:0',
|
||||
'years' => 'crwdns722:0crwdne722:0',
|
||||
)
|
||||
;
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'asset' => 'crwdns755:0crwdne755:0',
|
||||
'checkin' => 'crwdns756:0crwdne756:0',
|
||||
'checkout' => 'crwdns757:0crwdne757:0',
|
||||
'clone' => 'crwdns758:0crwdne758:0',
|
||||
'edit' => 'crwdns759:0crwdne759:0',
|
||||
'pending' => 'crwdns760:0crwdne760:0',
|
||||
'view' => 'crwdns761:0crwdne761:0',
|
||||
);
|
||||
@@ -1,37 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'undeployable' => 'crwdns739:0crwdne739:0',
|
||||
'does_not_exist' => 'crwdns740:0crwdne740:0',
|
||||
'assoc_users' => 'crwdns741:0crwdne741:0',
|
||||
|
||||
'create' => array(
|
||||
'error' => 'crwdns742:0crwdne742:0',
|
||||
'success' => 'crwdns743:0crwdne743:0'
|
||||
),
|
||||
|
||||
'update' => array(
|
||||
'error' => 'crwdns744:0crwdne744:0',
|
||||
'success' => 'crwdns745:0crwdne745:0'
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'crwdns746:0crwdne746:0',
|
||||
'error' => 'crwdns747:0crwdne747:0',
|
||||
'success' => 'crwdns748:0crwdne748:0'
|
||||
),
|
||||
|
||||
'checkout' => array(
|
||||
'error' => 'crwdns749:0crwdne749:0',
|
||||
'success' => 'crwdns750:0crwdne750:0',
|
||||
'user_does_not_exist' => 'crwdns751:0crwdne751:0'
|
||||
),
|
||||
|
||||
'checkin' => array(
|
||||
'error' => 'crwdns752:0crwdne752:0',
|
||||
'success' => 'crwdns753:0crwdne753:0',
|
||||
'user_does_not_exist' => 'crwdns754:0crwdne754:0'
|
||||
)
|
||||
|
||||
);
|
||||
@@ -1,22 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'asset_tag' => 'crwdns723:0crwdne723:0',
|
||||
'asset_model' => 'crwdns724:0crwdne724:0',
|
||||
'book_value' => 'crwdns725:0crwdne725:0',
|
||||
'change' => 'crwdns726:0crwdne726:0',
|
||||
'checkout_date' => 'crwdns727:0crwdne727:0',
|
||||
'checkoutto' => 'crwdns728:0crwdne728:0',
|
||||
'diff' => 'crwdns729:0crwdne729:0',
|
||||
'dl_csv' => 'crwdns730:0crwdne730:0',
|
||||
'eol' => 'crwdns731:0crwdne731:0',
|
||||
'id' => 'crwdns732:0crwdne732:0',
|
||||
'location' => 'crwdns733:0crwdne733:0',
|
||||
'purchase_cost' => 'crwdns734:0crwdne734:0',
|
||||
'purchase_date' => 'crwdns735:0crwdne735:0',
|
||||
'serial' => 'crwdns736:0crwdne736:0',
|
||||
'status' => 'crwdns737:0crwdne737:0',
|
||||
'title' => 'crwdns738:0crwdne738:0',
|
||||
|
||||
);
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'asset' => 'crwdns904:0crwdne904:0',
|
||||
'checkin' => 'crwdns905:0crwdne905:0',
|
||||
'checkin' => 'crwdns905:0crwdne905:0',
|
||||
'cost' => 'crwdns907:0crwdne907:0',
|
||||
'cost' => 'crwdns907:0crwdne907:0',
|
||||
'create' => 'crwdns909:0crwdne909:0',
|
||||
'date' => 'crwdns910:0crwdne910:0',
|
||||
'date' => 'crwdns910:0crwdne910:0',
|
||||
'depreciation' => 'crwdns912:0crwdne912:0',
|
||||
'name' => 'crwdns913:0crwdne913:0',
|
||||
'no_depreciation' => 'crwdns914:0crwdne914:0',
|
||||
'notes' => 'crwdns915:0crwdne915:0',
|
||||
'order' => 'crwdns916:0crwdne916:0',
|
||||
'seats' => 'crwdns917:0crwdne917:0',
|
||||
'serial' => 'crwdns918:0crwdne918:0',
|
||||
'to_email' => 'crwdns919:0crwdne919:0',
|
||||
'to_name' => 'crwdns920:0crwdne920:0',
|
||||
'update' => 'crwdns921:0crwdne921:0',
|
||||
'checkout_help' => 'crwdns922:0crwdne922:0'
|
||||
);
|
||||
@@ -1,19 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'checkin' => 'crwdns950:0crwdne950:0',
|
||||
'checkout_history' => 'crwdns951:0crwdne951:0',
|
||||
'checkout' => 'crwdns952:0crwdne952:0',
|
||||
'edit' => 'crwdns953:0crwdne953:0',
|
||||
'clone' => 'crwdns954:0crwdne954:0',
|
||||
'history_for' => 'crwdns955:0crwdne955:0',
|
||||
'in_out' => 'crwdns956:0crwdne956:0',
|
||||
'info' => 'crwdns957:0crwdne957:0',
|
||||
'license_seats' => 'crwdns958:0crwdne958:0',
|
||||
'seat' => 'crwdns959:0crwdne959:0',
|
||||
'seats' => 'crwdns960:0crwdne960:0',
|
||||
'software_licenses' => 'crwdns961:0crwdne961:0',
|
||||
'user' => 'crwdns962:0crwdne962:0',
|
||||
'view' => 'crwdns963:0crwdne963:0',
|
||||
);
|
||||
@@ -1,38 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'does_not_exist' => 'crwdns934:0crwdne934:0',
|
||||
'user_does_not_exist' => 'crwdns935:0crwdne935:0',
|
||||
'asset_does_not_exist' => 'crwdns936:0crwdne936:0',
|
||||
'owner_doesnt_match_asset' => 'crwdns937:0crwdne937:0',
|
||||
'assoc_users' => 'crwdns938:0crwdne938:0',
|
||||
|
||||
|
||||
'create' => array(
|
||||
'error' => 'crwdns939:0crwdne939:0',
|
||||
'success' => 'crwdns940:0crwdne940:0'
|
||||
),
|
||||
|
||||
'update' => array(
|
||||
'error' => 'crwdns941:0crwdne941:0',
|
||||
'success' => 'crwdns942:0crwdne942:0'
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'crwdns943:0crwdne943:0',
|
||||
'error' => 'crwdns944:0crwdne944:0',
|
||||
'success' => 'crwdns945:0crwdne945:0'
|
||||
),
|
||||
|
||||
'checkout' => array(
|
||||
'error' => 'crwdns946:0crwdne946:0',
|
||||
'success' => 'crwdns947:0crwdne947:0'
|
||||
),
|
||||
|
||||
'checkin' => array(
|
||||
'error' => 'crwdns948:0crwdne948:0',
|
||||
'success' => 'crwdns949:0crwdne949:0'
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,17 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'assigned_to' => 'crwdns923:0crwdne923:0',
|
||||
'checkout' => 'crwdns924:0crwdne924:0',
|
||||
'id' => 'crwdns925:0crwdne925:0',
|
||||
'license_email' => 'crwdns926:0crwdne926:0',
|
||||
'license_name' => 'crwdns927:0crwdne927:0',
|
||||
'purchase_date' => 'crwdns928:0crwdne928:0',
|
||||
'purchased' => 'crwdns929:0crwdne929:0',
|
||||
'seats' => 'crwdns930:0crwdne930:0',
|
||||
'hardware' => 'crwdns931:0crwdne931:0',
|
||||
'serial' => 'crwdns932:0crwdne932:0',
|
||||
'title' => 'crwdns933:0crwdne933:0',
|
||||
|
||||
);
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'does_not_exist' => 'crwdns650:0crwdne650:0',
|
||||
'assoc_users' => 'crwdns651:0crwdne651:0',
|
||||
|
||||
|
||||
'create' => array(
|
||||
'error' => 'crwdns652:0crwdne652:0',
|
||||
'success' => 'crwdns653:0crwdne653:0'
|
||||
),
|
||||
|
||||
'update' => array(
|
||||
'error' => 'crwdns654:0crwdne654:0',
|
||||
'success' => 'crwdns655:0crwdne655:0'
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'crwdns656:0crwdne656:0',
|
||||
'error' => 'crwdns657:0crwdne657:0',
|
||||
'success' => 'crwdns658:0crwdne658:0'
|
||||
)
|
||||
|
||||
);
|
||||
@@ -1,15 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'id' => 'crwdns640:0crwdne640:0',
|
||||
'city' => 'crwdns641:0crwdne641:0',
|
||||
'state' => 'crwdns642:0crwdne642:0',
|
||||
'country' => 'crwdns643:0crwdne643:0',
|
||||
'create' => 'crwdns644:0crwdne644:0',
|
||||
'update' => 'crwdns645:0crwdne645:0',
|
||||
'name' => 'crwdns646:0crwdne646:0',
|
||||
'address' => 'crwdns647:0crwdne647:0',
|
||||
'zip' => 'crwdns648:0crwdne648:0',
|
||||
'locations' => 'crwdns649:0crwdne649:0',
|
||||
);
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'does_not_exist' => 'crwdns895:0crwdne895:0',
|
||||
'assoc_users' => 'crwdns896:0crwdne896:0',
|
||||
|
||||
'create' => array(
|
||||
'error' => 'crwdns897:0crwdne897:0',
|
||||
'success' => 'crwdns898:0crwdne898:0'
|
||||
),
|
||||
|
||||
'update' => array(
|
||||
'error' => 'crwdns899:0crwdne899:0',
|
||||
'success' => 'crwdns900:0crwdne900:0'
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'crwdns901:0crwdne901:0',
|
||||
'error' => 'crwdns902:0crwdne902:0',
|
||||
'success' => 'crwdns903:0crwdne903:0'
|
||||
)
|
||||
|
||||
);
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'asset_manufacturers' => 'crwdns890:0crwdne890:0',
|
||||
'create' => 'crwdns891:0crwdne891:0',
|
||||
'id' => 'crwdns892:0crwdne892:0',
|
||||
'name' => 'crwdns893:0crwdne893:0',
|
||||
'update' => 'crwdns894:0crwdne894:0',
|
||||
|
||||
);
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'does_not_exist' => 'crwdns671:0crwdne671:0',
|
||||
'assoc_users' => 'crwdns672:0crwdne672:0',
|
||||
|
||||
|
||||
'create' => array(
|
||||
'error' => 'crwdns673:0crwdne673:0',
|
||||
'success' => 'crwdns674:0crwdne674:0'
|
||||
),
|
||||
|
||||
'update' => array(
|
||||
'error' => 'crwdns675:0crwdne675:0',
|
||||
'success' => 'crwdns676:0crwdne676:0'
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'crwdns677:0crwdne677:0',
|
||||
'error' => 'crwdns678:0crwdne678:0',
|
||||
'success' => 'crwdns679:0crwdne679:0'
|
||||
)
|
||||
|
||||
);
|
||||
@@ -1,17 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'create' => 'crwdns659:0crwdne659:0',
|
||||
'created_at' => 'crwdns660:0crwdne660:0',
|
||||
'eol' => 'crwdns661:0crwdne661:0',
|
||||
'modelnumber' => 'crwdns662:0crwdne662:0',
|
||||
'name' => 'crwdns663:0crwdne663:0',
|
||||
'numassets' => 'crwdns664:0crwdne664:0',
|
||||
'title' => 'crwdns665:0crwdne665:0',
|
||||
'update' => 'crwdns666:0crwdne666:0',
|
||||
'view' => 'crwdns667:0crwdne667:0',
|
||||
'update' => 'crwdns666:0crwdne666:0',
|
||||
'clone' => 'crwdns669:0crwdne669:0',
|
||||
'edit' => 'crwdns670:0crwdne670:0',
|
||||
);
|
||||
@@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'display_asset_name' => 'crwdns828:0crwdne828:0',
|
||||
'display_checkout_date' => 'crwdns829:0crwdne829:0',
|
||||
'display_qr' => 'crwdns830:0crwdne830:0',
|
||||
'info' => 'crwdns831:0crwdne831:0',
|
||||
'per_page' => 'crwdns832:0crwdne832:0',
|
||||
'php_gd_info' => 'crwdns833:0crwdne833:0',
|
||||
'php_gd_warning' => 'crwdns834:0crwdne834:0',
|
||||
'qr_help' => 'crwdns835:0crwdne835:0',
|
||||
'qr_text' => 'crwdns836:0crwdne836:0',
|
||||
'setting' => 'crwdns837:0crwdne837:0',
|
||||
'settings' => 'crwdns838:0crwdne838:0',
|
||||
'site_name' => 'crwdns839:0crwdne839:0',
|
||||
'update' => 'crwdns840:0crwdne840:0',
|
||||
'value' => 'crwdns841:0crwdne841:0',
|
||||
);
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
|
||||
'update' => array(
|
||||
'error' => 'crwdns826:0crwdne826:0',
|
||||
'success' => 'crwdns827:0crwdne827:0'
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'does_not_exist' => 'crwdns686:0crwdne686:0',
|
||||
'assoc_users' => 'crwdns687:0crwdne687:0',
|
||||
|
||||
|
||||
'create' => array(
|
||||
'error' => 'crwdns688:0crwdne688:0',
|
||||
'success' => 'crwdns689:0crwdne689:0'
|
||||
),
|
||||
|
||||
'update' => array(
|
||||
'error' => 'crwdns690:0crwdne690:0',
|
||||
'success' => 'crwdns691:0crwdne691:0'
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'crwdns692:0crwdne692:0',
|
||||
'error' => 'crwdns693:0crwdne693:0',
|
||||
'success' => 'crwdns694:0crwdne694:0'
|
||||
)
|
||||
|
||||
);
|
||||
@@ -1,10 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'name' => 'crwdns680:0crwdne680:0',
|
||||
'title' => 'crwdns681:0crwdne681:0',
|
||||
'update' => 'crwdns682:0crwdne682:0',
|
||||
'create' => 'crwdns683:0crwdne683:0',
|
||||
'about' => 'crwdns684:0crwdne684:0',
|
||||
'info' => 'crwdns685:0crwdne685:0',
|
||||
);
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'does_not_exist' => 'crwdns861:0crwdne861:0',
|
||||
'assoc_users' => 'crwdns862:0crwdne862:0',
|
||||
|
||||
'create' => array(
|
||||
'error' => 'crwdns863:0crwdne863:0',
|
||||
'success' => 'crwdns864:0crwdne864:0'
|
||||
),
|
||||
|
||||
'update' => array(
|
||||
'error' => 'crwdns865:0crwdne865:0',
|
||||
'success' => 'crwdns866:0crwdne866:0'
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'crwdns867:0crwdne867:0',
|
||||
'error' => 'crwdns868:0crwdne868:0',
|
||||
'success' => 'crwdns869:0crwdne869:0'
|
||||
)
|
||||
|
||||
);
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'address' => 'crwdns842:0crwdne842:0',
|
||||
'assets' => 'crwdns843:0crwdne843:0',
|
||||
'city' => 'crwdns844:0crwdne844:0',
|
||||
'contact' => 'crwdns845:0crwdne845:0',
|
||||
'country' => 'crwdns846:0crwdne846:0',
|
||||
'create' => 'crwdns847:0crwdne847:0',
|
||||
'email' => 'crwdns848:0crwdne848:0',
|
||||
'fax' => 'crwdns849:0crwdne849:0',
|
||||
'id' => 'crwdns850:0crwdne850:0',
|
||||
'name' => 'crwdns851:0crwdne851:0',
|
||||
'notes' => 'crwdns852:0crwdne852:0',
|
||||
'phone' => 'crwdns853:0crwdne853:0',
|
||||
'state' => 'crwdns854:0crwdne854:0',
|
||||
'suppliers' => 'crwdns855:0crwdne855:0',
|
||||
'update' => 'crwdns856:0crwdne856:0',
|
||||
'url' => 'crwdns857:0crwdne857:0',
|
||||
'view' => 'crwdns858:0crwdne858:0',
|
||||
'view_assets_for' => 'crwdns859:0crwdne859:0',
|
||||
'zip' => 'crwdns860:0crwdne860:0',
|
||||
|
||||
);
|
||||
@@ -1,8 +0,0 @@
|
||||
<?php
|
||||
|
||||
|
||||
return array(
|
||||
|
||||
'edit' => 'crwdns804:0crwdne804:0',
|
||||
'clone' => 'crwdns805:0crwdne805:0',
|
||||
);
|
||||
@@ -1,29 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'user_exists' => 'crwdns787:0crwdne787:0',
|
||||
'user_not_found' => 'crwdns788:0crwdne788:0',
|
||||
'user_login_required' => 'crwdns789:0crwdne789:0',
|
||||
'user_password_required' => 'crwdns790:0crwdne790:0',
|
||||
'insufficient_permissions' => 'crwdns791:0crwdne791:0',
|
||||
|
||||
'success' => array(
|
||||
'create' => 'crwdns792:0crwdne792:0',
|
||||
'update' => 'crwdns793:0crwdne793:0',
|
||||
'delete' => 'crwdns794:0crwdne794:0',
|
||||
'ban' => 'crwdns795:0crwdne795:0',
|
||||
'unban' => 'crwdns796:0crwdne796:0',
|
||||
'suspend' => 'crwdns797:0crwdne797:0',
|
||||
'unsuspend' => 'crwdns798:0crwdne798:0',
|
||||
'restored' => 'crwdns799:0crwdne799:0'
|
||||
),
|
||||
|
||||
'error' => array(
|
||||
'create' => 'crwdns800:0crwdne800:0',
|
||||
'update' => 'crwdns801:0crwdne801:0',
|
||||
'delete' => 'crwdns802:0crwdne802:0',
|
||||
'unsuspend' => 'crwdns803:0crwdne803:0'
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,30 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'activated' => 'crwdns762:0crwdne762:0',
|
||||
'allow' => 'crwdns763:0crwdne763:0',
|
||||
'checkedout' => 'crwdns764:0crwdne764:0',
|
||||
'created_at' => 'crwdns765:0crwdne765:0',
|
||||
'createuser' => 'crwdns766:0crwdne766:0',
|
||||
'deny' => 'crwdns767:0crwdne767:0',
|
||||
'email' => 'crwdns768:0crwdne768:0',
|
||||
'employee_num' => 'crwdns769:0crwdne769:0',
|
||||
'first_name' => 'crwdns770:0crwdne770:0',
|
||||
'groupnotes' => 'crwdns771:0crwdne771:0',
|
||||
'id' => 'crwdns772:0crwdne772:0',
|
||||
'inherit' => 'crwdns773:0crwdne773:0',
|
||||
'job' => 'crwdns774:0crwdne774:0',
|
||||
'last_login' => 'crwdns775:0crwdne775:0',
|
||||
'last_name' => 'crwdns776:0crwdne776:0',
|
||||
'location' => 'crwdns777:0crwdne777:0',
|
||||
'manager' => 'crwdns778:0crwdne778:0',
|
||||
'name' => 'crwdns779:0crwdne779:0',
|
||||
'password_confirm' => 'crwdns780:0crwdne780:0',
|
||||
'password' => 'crwdns781:0crwdne781:0',
|
||||
'phone' => 'crwdns782:0crwdne782:0',
|
||||
'title' => 'crwdns783:0crwdne783:0',
|
||||
'updateuser' => 'crwdns784:0crwdne784:0',
|
||||
'cloneuser' => 'crwdns785:0crwdne785:0',
|
||||
'viewusers' => 'crwdns786:0crwdne786:0',
|
||||
);
|
||||
@@ -1,36 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'account_already_exists' => 'crwdns1102:0crwdne1102:0',
|
||||
'account_not_found' => 'crwdns1103:0crwdne1103:0',
|
||||
'account_not_activated' => 'crwdns1104:0crwdne1104:0',
|
||||
'account_suspended' => 'crwdns1105:0crwdne1105:0',
|
||||
'account_banned' => 'crwdns1106:0crwdne1106:0',
|
||||
|
||||
'signin' => array(
|
||||
'error' => 'crwdns1107:0crwdne1107:0',
|
||||
'success' => 'crwdns1108:0crwdne1108:0',
|
||||
),
|
||||
|
||||
'signup' => array(
|
||||
'error' => 'crwdns1109:0crwdne1109:0',
|
||||
'success' => 'crwdns1110:0crwdne1110:0',
|
||||
),
|
||||
|
||||
'forgot-password' => array(
|
||||
'error' => 'crwdns1111:0crwdne1111:0',
|
||||
'success' => 'crwdns1112:0crwdne1112:0',
|
||||
),
|
||||
|
||||
'forgot-password-confirm' => array(
|
||||
'error' => 'crwdns1113:0crwdne1113:0',
|
||||
'success' => 'crwdns1114:0crwdne1114:0',
|
||||
),
|
||||
|
||||
'activate' => array(
|
||||
'error' => 'crwdns1115:0crwdne1115:0',
|
||||
'success' => 'crwdns1116:0crwdne1116:0',
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'edit' => 'crwdns964:0crwdne964:0',
|
||||
'delete' => 'crwdns965:0crwdne965:0',
|
||||
'restore' => 'crwdns966:0crwdne966:0',
|
||||
'actions' => 'crwdns967:0crwdne967:0',
|
||||
'submit' => 'crwdns968:0crwdne968:0',
|
||||
|
||||
);
|
||||
@@ -1,89 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'address' => 'crwdns1019:0crwdne1019:0',
|
||||
'admin' => 'crwdns1020:0crwdne1020:0',
|
||||
'all_assets' => 'crwdns1021:0crwdne1021:0',
|
||||
'all' => 'crwdns1022:0crwdne1022:0',
|
||||
'asset_models' => 'crwdns1023:0crwdne1023:0',
|
||||
'asset' => 'crwdns1024:0crwdne1024:0',
|
||||
'asset_tag' => 'crwdns1025:0crwdne1025:0',
|
||||
'assets_available' => 'crwdns1026:0crwdne1026:0',
|
||||
'assets' => 'crwdns1027:0crwdne1027:0',
|
||||
'avatar_delete' => 'crwdns1028:0crwdne1028:0',
|
||||
'avatar_upload' => 'crwdns1029:0crwdne1029:0',
|
||||
'back' => 'crwdns1030:0crwdne1030:0',
|
||||
'cancel' => 'crwdns1031:0crwdne1031:0',
|
||||
'categories' => 'crwdns1032:0crwdne1032:0',
|
||||
'category' => 'crwdns1033:0crwdne1033:0',
|
||||
'changeemail' => 'crwdns1034:0crwdne1034:0',
|
||||
'changepassword' => 'crwdns1035:0crwdne1035:0',
|
||||
'checkin' => 'crwdns1036:0crwdne1036:0',
|
||||
'checkout' => 'crwdns1037:0crwdne1037:0',
|
||||
'city' => 'crwdns1038:0crwdne1038:0',
|
||||
'country' => 'crwdns1039:0crwdne1039:0',
|
||||
'create' => 'crwdns1040:0crwdne1040:0',
|
||||
'created_asset' => 'crwdns1041:0crwdne1041:0',
|
||||
'created_at' => 'crwdns1042:0crwdne1042:0',
|
||||
'currency' => 'crwdns1043:0crwdne1043:0',
|
||||
'current' => 'crwdns1044:0crwdne1044:0',
|
||||
'date' => 'crwdns1045:0crwdne1045:0',
|
||||
'delete' => 'crwdns1046:0crwdne1046:0',
|
||||
'deleted' => 'crwdns1047:0crwdne1047:0',
|
||||
'deployed' => 'crwdns1048:0crwdne1048:0',
|
||||
'depreciation_report' => 'crwdns1049:0crwdne1049:0',
|
||||
'depreciation' => 'crwdns1050:0crwdne1050:0',
|
||||
'editprofile' => 'crwdns1051:0crwdne1051:0',
|
||||
'eol' => 'crwdns1052:0crwdne1052:0',
|
||||
'first_name' => 'crwdns1053:0crwdne1053:0',
|
||||
'groups' => 'crwdns1054:0crwdne1054:0',
|
||||
'history_for' => 'crwdns1055:0crwdne1055:0',
|
||||
'id' => 'crwdns1056:0crwdne1056:0',
|
||||
'image_delete' => 'crwdns1057:0crwdne1057:0',
|
||||
'image_upload' => 'crwdns1058:0crwdne1058:0',
|
||||
'last_name' => 'crwdns1059:0crwdne1059:0',
|
||||
'license' => 'crwdns1060:0crwdne1060:0',
|
||||
'licenses_available' => 'crwdns1061:0crwdne1061:0',
|
||||
'licenses' => 'crwdns1062:0crwdne1062:0',
|
||||
'list_all' => 'crwdns1063:0crwdne1063:0',
|
||||
'location' => 'crwdns1064:0crwdne1064:0',
|
||||
'locations' => 'crwdns1065:0crwdne1065:0',
|
||||
'logout' => 'crwdns1066:0crwdne1066:0',
|
||||
'manufacturer' => 'crwdns1067:0crwdne1067:0',
|
||||
'manufacturers' => 'crwdns1068:0crwdne1068:0',
|
||||
'model_no' => 'crwdns1069:0crwdne1069:0',
|
||||
'months' => 'crwdns1070:0crwdne1070:0',
|
||||
'moreinfo' => 'crwdns1071:0crwdne1071:0',
|
||||
'name' => 'crwdns1072:0crwdne1072:0',
|
||||
'no_depreciation' => 'crwdns1073:0crwdne1073:0',
|
||||
'no_results' => 'crwdns1074:0crwdne1074:0',
|
||||
'no' => 'crwdns1075:0crwdne1075:0',
|
||||
'notes' => 'crwdns1076:0crwdne1076:0',
|
||||
'pending' => 'crwdns1077:0crwdne1077:0',
|
||||
'people' => 'crwdns1078:0crwdne1078:0',
|
||||
'per_page' => 'crwdns1079:0crwdne1079:0',
|
||||
'profile' => 'crwdns1080:0crwdne1080:0',
|
||||
'ready_to_deploy' => 'crwdns1081:0crwdne1081:0',
|
||||
'reports' => 'crwdns1082:0crwdne1082:0',
|
||||
'save' => 'crwdns1083:0crwdne1083:0',
|
||||
'settings' => 'crwdns1084:0crwdne1084:0',
|
||||
'sign_in' => 'crwdns1085:0crwdne1085:0',
|
||||
'site_name' => 'crwdns1086:0crwdne1086:0',
|
||||
'state' => 'crwdns1087:0crwdne1087:0',
|
||||
'status_labels' => 'crwdns1088:0crwdne1088:0',
|
||||
'status' => 'crwdns1089:0crwdne1089:0',
|
||||
'suppliers' => 'crwdns1090:0crwdne1090:0',
|
||||
'total_assets' => 'crwdns1091:0crwdne1091:0',
|
||||
'total_licenses' => 'crwdns1092:0crwdne1092:0',
|
||||
'undeployable' => 'crwdns1093:0crwdne1093:0',
|
||||
'unknown_admin' => 'crwdns1094:0crwdne1094:0',
|
||||
'user' => 'crwdns1095:0crwdne1095:0',
|
||||
'viewassets' => 'crwdns1096:0crwdne1096:0',
|
||||
'website' => 'crwdns1097:0crwdne1097:0',
|
||||
'welcome' => 'crwdns1098:0crwdne1098:0',
|
||||
'years' => 'crwdns1099:0crwdne1099:0',
|
||||
'yes' => 'crwdns1100:0crwdne1100:0',
|
||||
'zip' => 'crwdns1101:0crwdne1101:0',
|
||||
|
||||
);
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reminder Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
"password" => "crwdns969:0crwdne969:0",
|
||||
|
||||
"user" => "crwdns970:0crwdne970:0",
|
||||
|
||||
"token" => "crwdns971:0crwdne971:0",
|
||||
|
||||
"sent" => "crwdns972:0crwdne972:0",
|
||||
|
||||
);
|
||||
@@ -1,7 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'actions' => 'crwdns1016:0crwdne1016:0'
|
||||
|
||||
);
|
||||
@@ -1,95 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines contain the default error messages used by
|
||||
| the validator class. Some of these rules have multiple versions such
|
||||
| such as the size rules. Feel free to tweak each of these messages.
|
||||
|
|
||||
*/
|
||||
|
||||
"accepted" => "crwdns973:0crwdne973:0",
|
||||
"active_url" => "crwdns974:0crwdne974:0",
|
||||
"after" => "crwdns975:0crwdne975:0",
|
||||
"alpha" => "crwdns976:0crwdne976:0",
|
||||
"alpha_dash" => "crwdns977:0crwdne977:0",
|
||||
"alpha_num" => "crwdns978:0crwdne978:0",
|
||||
"before" => "crwdns979:0crwdne979:0",
|
||||
"between" => array(
|
||||
"numeric" => "crwdns980:0crwdne980:0",
|
||||
"file" => "crwdns981:0crwdne981:0",
|
||||
"string" => "crwdns982:0crwdne982:0",
|
||||
),
|
||||
"confirmed" => "crwdns983:0crwdne983:0",
|
||||
"date" => "crwdns984:0crwdne984:0",
|
||||
"date_format" => "crwdns985:0crwdne985:0",
|
||||
"different" => "crwdns986:0crwdne986:0",
|
||||
"digits" => "crwdns987:0crwdne987:0",
|
||||
"digits_between" => "crwdns988:0crwdne988:0",
|
||||
"email" => "crwdns989:0crwdne989:0",
|
||||
"exists" => "crwdns990:0crwdne990:0",
|
||||
"image" => "crwdns991:0crwdne991:0",
|
||||
"in" => "crwdns992:0crwdne992:0",
|
||||
"integer" => "crwdns993:0crwdne993:0",
|
||||
"ip" => "crwdns994:0crwdne994:0",
|
||||
"max" => array(
|
||||
"numeric" => "crwdns995:0crwdne995:0",
|
||||
"file" => "crwdns996:0crwdne996:0",
|
||||
"string" => "crwdns997:0crwdne997:0",
|
||||
),
|
||||
"mimes" => "crwdns998:0crwdne998:0",
|
||||
"min" => array(
|
||||
"numeric" => "crwdns999:0crwdne999:0",
|
||||
"file" => "crwdns1000:0crwdne1000:0",
|
||||
"string" => "crwdns1001:0crwdne1001:0",
|
||||
),
|
||||
"not_in" => "crwdns1002:0crwdne1002:0",
|
||||
"numeric" => "crwdns1003:0crwdne1003:0",
|
||||
"regex" => "crwdns1004:0crwdne1004:0",
|
||||
"required" => "crwdns1005:0crwdne1005:0",
|
||||
"required_if" => "crwdns1006:0crwdne1006:0",
|
||||
"required_with" => "crwdns1007:0crwdne1007:0",
|
||||
"required_without" => "crwdns1008:0crwdne1008:0",
|
||||
"same" => "crwdns1009:0crwdne1009:0",
|
||||
"size" => array(
|
||||
"numeric" => "crwdns1010:0crwdne1010:0",
|
||||
"file" => "crwdns1011:0crwdne1011:0",
|
||||
"string" => "crwdns1012:0crwdne1012:0",
|
||||
),
|
||||
"unique" => "crwdns1013:0crwdne1013:0",
|
||||
"url" => "crwdns1014:0crwdne1014:0",
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify custom validation messages for attributes using the
|
||||
| convention "attribute.rule" to name the lines. This makes it quick to
|
||||
| specify a specific custom language line for a given attribute rule.
|
||||
|
|
||||
*/
|
||||
|
||||
'custom' => array(),
|
||||
'alpha_space' => "crwdns1015:0crwdne1015:0",
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used to swap attribute place-holders
|
||||
| with something more reader friendly such as E-Mail Address instead
|
||||
| of "email". This simply helps us make messages a little cleaner.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => array(),
|
||||
|
||||
);
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_asset_categories' => 'About Asset Categories',
|
||||
'about_categories' => 'Asset categories help you organize your assets. Some example categories might be "Desktops", "Laptops", "Mobile Phones", "Tablets", and so on, but you can use asset categories any way that makes sense for you. ',
|
||||
'asset_categories' => 'Asset Categories',
|
||||
'category_name' => 'Category Name',
|
||||
'create' => 'Create Category',
|
||||
'update' => 'Update Category',
|
||||
|
||||
);
|
||||
@@ -1,9 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'id' => 'ID',
|
||||
'parent' => 'Parent',
|
||||
'title' => 'Asset Category Name',
|
||||
|
||||
);
|
||||
@@ -1,34 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'checkedout_to' => 'Checked Out To',
|
||||
'checkout_to' => 'Checkout to',
|
||||
'cost' => 'Purchase Cost',
|
||||
'create' => 'Create Asset',
|
||||
'date' => 'Purchase Date',
|
||||
'depreciates_on' => 'Depreciates On',
|
||||
'depreciation' => 'Depreciation',
|
||||
'default_location' => 'Default Location',
|
||||
'eol_date' => 'EOL Date',
|
||||
'eol_rate' => 'EOL Rate',
|
||||
'expires' => 'Expires',
|
||||
'fully_depreciated' => 'Fully Depreciated',
|
||||
'help_checkout' => 'If you wish to assign this asset immediately, you should select "Ready to Deploy" from the status list above, or unexpected things may happen. ',
|
||||
'manufacturer' => 'Manufacturer',
|
||||
'model' => 'Model',
|
||||
'months' => 'months',
|
||||
'name' => 'Asset Name',
|
||||
'notes' => 'Notes',
|
||||
'order' => 'Order Number',
|
||||
'qr' => 'QR Code',
|
||||
'requestable' => 'Users may request this asset',
|
||||
'serial' => 'Serial',
|
||||
'status' => 'Status',
|
||||
'supplier' => 'Supplier',
|
||||
'tag' => 'Asset Tag',
|
||||
'update' => 'Asset Update',
|
||||
'warranty' => 'Warranty',
|
||||
'years' => 'years',
|
||||
)
|
||||
;
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'asset' => 'Asset',
|
||||
'checkin' => 'Checkin Asset',
|
||||
'checkout' => 'Checkout Asset to User',
|
||||
'clone' => 'Clone Asset',
|
||||
'edit' => 'Edit Asset',
|
||||
'pending' => 'Pending Asset',
|
||||
'view' => 'View Asset',
|
||||
);
|
||||
@@ -1,38 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'undeployable' => '<strong>Warning: </strong> This asset has been marked as currently undeployable.
|
||||
If this status has changed, please update the asset status.',
|
||||
'does_not_exist' => 'Asset does not exist.',
|
||||
'assoc_users' => 'This asset is currently checked out to a user and cannot be deleted. Please check the asset in first, and then try deleting again. ',
|
||||
|
||||
'create' => array(
|
||||
'error' => 'Asset was not created, please try again. :(',
|
||||
'success' => 'Asset created successfully. :)'
|
||||
),
|
||||
|
||||
'update' => array(
|
||||
'error' => 'Asset was not updated, please try again',
|
||||
'success' => 'Asset updated successfully.'
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'Are you sure you wish to delete this asset?',
|
||||
'error' => 'There was an issue deleting the asset. Please try again.',
|
||||
'success' => 'The asset was deleted successfully.'
|
||||
),
|
||||
|
||||
'checkout' => array(
|
||||
'error' => 'Asset was not checked out, please try again',
|
||||
'success' => 'Asset checked out successfully.',
|
||||
'user_does_not_exist' => 'That user is invalid. Please try again.'
|
||||
),
|
||||
|
||||
'checkin' => array(
|
||||
'error' => 'Asset was not checked in, please try again',
|
||||
'success' => 'Asset checked in successfully.',
|
||||
'user_does_not_exist' => 'That user is invalid. Please try again.'
|
||||
)
|
||||
|
||||
);
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'asset' => 'Asset',
|
||||
'checkin' => 'Checkin',
|
||||
'checkin' => 'Checkin',
|
||||
'cost' => 'Purchase Cost',
|
||||
'cost' => 'Purchase Cost',
|
||||
'create' => 'Create License',
|
||||
'date' => 'Purchase Date',
|
||||
'date' => 'Purchase Date',
|
||||
'depreciation' => 'Depreciation',
|
||||
'name' => 'Software Name',
|
||||
'no_depreciation' => 'Do Not Depreciate',
|
||||
'notes' => 'Notes',
|
||||
'order' => 'Order No.',
|
||||
'seats' => 'Seats',
|
||||
'serial' => 'Serial',
|
||||
'to_email' => 'Licensed to Email',
|
||||
'to_name' => 'Licensed to Name',
|
||||
'update' => 'Update License',
|
||||
'checkout_help' => 'You must check a license out to a hardware asset or a person. You can select both, but the owner of the asset must match the person you\'re checking the asset out to.'
|
||||
);
|
||||
@@ -1,38 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'does_not_exist' => 'License does not exist.',
|
||||
'user_does_not_exist' => 'User does not exist.',
|
||||
'asset_does_not_exist' => 'The asset you are trying to associate with this license does not exist.',
|
||||
'owner_doesnt_match_asset' => 'The asset you are trying to associate with this license is owned by somene other than the person selected in the assigned to dropdown.',
|
||||
'assoc_users' => 'This license is currently checked out to a user and cannot be deleted. Please check the license in first, and then try deleting again. ',
|
||||
|
||||
|
||||
'create' => array(
|
||||
'error' => 'License was not created, please try again.',
|
||||
'success' => 'License created successfully.'
|
||||
),
|
||||
|
||||
'update' => array(
|
||||
'error' => 'License was not updated, please try again',
|
||||
'success' => 'License updated successfully.'
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'Are you sure you wish to delete this license?',
|
||||
'error' => 'There was an issue deleting the license. Please try again.',
|
||||
'success' => 'The license was deleted successfully.'
|
||||
),
|
||||
|
||||
'checkout' => array(
|
||||
'error' => 'There was an issue checking out the license. Please try again.',
|
||||
'success' => 'The license was checked out successfully'
|
||||
),
|
||||
|
||||
'checkin' => array(
|
||||
'error' => 'There was an issue checking in the license. Please try again.',
|
||||
'success' => 'The license was checked in successfully'
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'does_not_exist' => 'Manufacturer does not exist.',
|
||||
'assoc_users' => 'This manufacturer is currently associated with at least one model and cannot be deleted. Please update your models to no longer reference this manufacturer and try again. ',
|
||||
|
||||
'create' => array(
|
||||
'error' => 'Manufacturer was not created, please try again.',
|
||||
'success' => 'Manufacturer created successfully.'
|
||||
),
|
||||
|
||||
'update' => array(
|
||||
'error' => 'Manufacturer was not updated, please try again',
|
||||
'success' => 'Manufacturer updated successfully.'
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'Are you sure you wish to delete this manufacturer?',
|
||||
'error' => 'There was an issue deleting the blog post. Please try again.',
|
||||
'success' => 'The Manufacturer was deleted successfully.'
|
||||
)
|
||||
|
||||
);
|
||||
@@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'display_asset_name' => 'Display Asset Name',
|
||||
'display_checkout_date' => 'Display Checkout Date',
|
||||
'display_qr' => 'Display QR Codes',
|
||||
'info' => 'These settings let you customize certain aspects of your installation.',
|
||||
'per_page' => 'Results Per Page',
|
||||
'php_gd_info' => 'You must install php-gd to display QR codes, see <a href="http://www.php.net/manual/en/image.installation.php">install instructions</a>.',
|
||||
'php_gd_warning' => 'PHP Image Processing and GD plugin is NOT installed.',
|
||||
'qr_help' => 'Enable QR Codes first to set this',
|
||||
'qr_text' => 'QR Code Text',
|
||||
'setting' => 'Setting',
|
||||
'settings' => 'Settings',
|
||||
'site_name' => 'Site Name',
|
||||
'update' => 'Update Settings',
|
||||
'value' => 'Value',
|
||||
);
|
||||
@@ -1,10 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'name' => 'Status Name',
|
||||
'title' => 'Status Labels',
|
||||
'update' => 'Update Status Label',
|
||||
'create' => 'Create Status Label',
|
||||
'about' => 'About Status Labels',
|
||||
'info' => 'Status labels are used to describe the various reasons why an asset <strong><em>cannot</em></strong> be deployed. It could be broken, out for diagnostics, out for repair, lost or stolen, etc. Status labels allow your team to show the progression.',
|
||||
);
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'address' => 'Supplier Address',
|
||||
'assets' => 'Assets',
|
||||
'city' => 'City',
|
||||
'contact' => 'Contact Name',
|
||||
'country' => 'Country',
|
||||
'create' => 'Create Supplier',
|
||||
'email' => 'Email',
|
||||
'fax' => 'Fax',
|
||||
'id' => 'ID',
|
||||
'name' => 'Supplier Name',
|
||||
'notes' => 'Notes',
|
||||
'phone' => 'Phone',
|
||||
'state' => 'State',
|
||||
'suppliers' => 'Suppliers',
|
||||
'update' => 'Update Supplier',
|
||||
'url' => 'URL',
|
||||
'view' => 'View Supplier',
|
||||
'view_assets_for' => 'View Assets for',
|
||||
'zip' => 'Postal Code',
|
||||
|
||||
);
|
||||
@@ -1,8 +0,0 @@
|
||||
<?php
|
||||
|
||||
|
||||
return array(
|
||||
|
||||
'edit' => 'Edit User',
|
||||
'clone' => 'Clone User',
|
||||
);
|
||||
@@ -1,29 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'user_exists' => 'User already exists!',
|
||||
'user_not_found' => 'User [:id] does not exist.',
|
||||
'user_login_required' => 'The login field is required',
|
||||
'user_password_required' => 'The password is required.',
|
||||
'insufficient_permissions' => 'Insufficient Permissions.',
|
||||
|
||||
'success' => array(
|
||||
'create' => 'User was successfully created.',
|
||||
'update' => 'User was successfully updated.',
|
||||
'delete' => 'User was successfully deleted.',
|
||||
'ban' => 'User was successfully banned.',
|
||||
'unban' => 'User was successfully unbanned.',
|
||||
'suspend' => 'User was successfully suspended.',
|
||||
'unsuspend' => 'User was successfully unsuspended.',
|
||||
'restored' => 'User was successfully restored.'
|
||||
),
|
||||
|
||||
'error' => array(
|
||||
'create' => 'There was an issue creating the user. Please try again.',
|
||||
'update' => 'There was an issue updating the user. Please try again.',
|
||||
'delete' => 'There was an issue deleting the user. Please try again.',
|
||||
'unsuspend' => 'There was an issue unsuspending the user. Please try again.'
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,30 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'activated' => 'Active',
|
||||
'allow' => 'Allow',
|
||||
'checkedout' => 'Assets',
|
||||
'created_at' => 'Created',
|
||||
'createuser' => 'Create User',
|
||||
'deny' => 'Deny',
|
||||
'email' => 'Email',
|
||||
'employee_num' => 'Employee No.',
|
||||
'first_name' => 'First Name',
|
||||
'groupnotes' => 'Select a group to assign to the user, remember that a user takes on the permissions of the group they are assigned.',
|
||||
'id' => 'Id',
|
||||
'inherit' => 'Inherit',
|
||||
'job' => 'Job Title',
|
||||
'last_login' => 'Last Login',
|
||||
'last_name' => 'Last Name',
|
||||
'location' => 'Location',
|
||||
'manager' => 'Manager',
|
||||
'name' => 'Name',
|
||||
'password_confirm' => 'Confirm Password',
|
||||
'password' => 'Password',
|
||||
'phone' => 'Phone',
|
||||
'title' => 'Title',
|
||||
'updateuser' => 'Update User',
|
||||
'cloneuser' => 'Clone User',
|
||||
'viewusers' => 'View Users',
|
||||
);
|
||||
@@ -1,36 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'account_already_exists' => 'An account with the this email already exists.',
|
||||
'account_not_found' => 'The email account or password is incorrect.',
|
||||
'account_not_activated' => 'This user account is not activated.',
|
||||
'account_suspended' => 'This user account is suspended.',
|
||||
'account_banned' => 'This user account is banned.',
|
||||
|
||||
'signin' => array(
|
||||
'error' => 'There was a problem while trying to log you in, please try again.',
|
||||
'success' => 'You have successfully logged in.',
|
||||
),
|
||||
|
||||
'signup' => array(
|
||||
'error' => 'There was a problem while trying to create your account, please try again.',
|
||||
'success' => 'Account sucessfully created.',
|
||||
),
|
||||
|
||||
'forgot-password' => array(
|
||||
'error' => 'There was a problem while trying to get a reset password code, please try again.',
|
||||
'success' => 'Password recovery email successfully sent.',
|
||||
),
|
||||
|
||||
'forgot-password-confirm' => array(
|
||||
'error' => 'There was a problem while trying to reset your password, please try again.',
|
||||
'success' => 'Your password has been successfully reset.',
|
||||
),
|
||||
|
||||
'activate' => array(
|
||||
'error' => 'There was a problem while trying to activate your account, please try again.',
|
||||
'success' => 'Your account has been successfully activated.',
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'edit' => 'Edit',
|
||||
'delete' => 'Delete',
|
||||
'restore' => 'Restore',
|
||||
'actions' => 'Actions',
|
||||
'submit' => 'Submit',
|
||||
|
||||
);
|
||||
@@ -1,89 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'address' => 'Address',
|
||||
'admin' => 'Admin',
|
||||
'all_assets' => 'All Assets',
|
||||
'all' => 'All',
|
||||
'asset_models' => 'Asset Models',
|
||||
'asset' => 'Asset',
|
||||
'asset_tag' => 'Asset Tag',
|
||||
'assets_available' => 'assets available',
|
||||
'assets' => 'Assets',
|
||||
'avatar_delete' => 'Delete Avatar',
|
||||
'avatar_upload' => 'Upload Avatar',
|
||||
'back' => 'Back',
|
||||
'cancel' => 'Cancel',
|
||||
'categories' => 'Asset Categories',
|
||||
'category' => 'Asset Category',
|
||||
'changeemail' => 'Change Email Address',
|
||||
'changepassword' => 'Change Password',
|
||||
'checkin' => 'Checkin',
|
||||
'checkout' => 'Checkout',
|
||||
'city' => 'City',
|
||||
'country' => 'Country',
|
||||
'create' => 'Create New',
|
||||
'created_asset' => 'created asset',
|
||||
'created_at' => 'Created at',
|
||||
'currency' => '$',
|
||||
'current' => 'Current',
|
||||
'date' => 'Date',
|
||||
'delete' => 'Delete',
|
||||
'deleted' => 'Deleted',
|
||||
'deployed' => 'Deployed',
|
||||
'depreciation_report' => 'Depreciation Report',
|
||||
'depreciation' => 'Depreciation',
|
||||
'editprofile' => 'Edit Your Profile',
|
||||
'eol' => 'EOL',
|
||||
'first_name' => 'First Name',
|
||||
'groups' => 'Groups',
|
||||
'history_for' => 'History for',
|
||||
'id' => 'ID',
|
||||
'image_delete' => 'Delete Image',
|
||||
'image_upload' => 'Upload Image',
|
||||
'last_name' => 'Last Name',
|
||||
'license' => 'License',
|
||||
'licenses_available' => 'licenses available',
|
||||
'licenses' => 'Licenses',
|
||||
'list_all' => 'List All',
|
||||
'location' => 'Location',
|
||||
'locations' => 'Locations',
|
||||
'logout' => 'Logout',
|
||||
'manufacturer' => 'Manufacturer',
|
||||
'manufacturers' => 'Manufacturers',
|
||||
'model_no' => 'Model No.',
|
||||
'months' => 'months',
|
||||
'moreinfo' => 'More Info',
|
||||
'name' => 'Name',
|
||||
'no_depreciation' => 'No Depreciation',
|
||||
'no_results' => 'No Results.',
|
||||
'no' => 'No',
|
||||
'notes' => 'Notes',
|
||||
'pending' => 'Pending',
|
||||
'people' => 'People',
|
||||
'per_page' => 'Results Per Page',
|
||||
'profile' => 'Your profile',
|
||||
'ready_to_deploy' => 'Ready to Deploy',
|
||||
'reports' => 'Reports',
|
||||
'save' => 'Save',
|
||||
'settings' => 'Settings',
|
||||
'sign_in' => 'Sign in',
|
||||
'site_name' => 'Site Name',
|
||||
'state' => 'State',
|
||||
'status_labels' => 'Status Labels',
|
||||
'status' => 'Status',
|
||||
'suppliers' => 'Suppliers',
|
||||
'total_assets' => 'total assets',
|
||||
'total_licenses' => 'total licenses',
|
||||
'undeployable' => 'Un-deployable',
|
||||
'unknown_admin' => 'Unknown Admin',
|
||||
'user' => 'User',
|
||||
'viewassets' => 'View Assigned Assets',
|
||||
'website' => 'Website',
|
||||
'welcome' => 'Welcome, :name',
|
||||
'years' => 'years',
|
||||
'yes' => 'Yes',
|
||||
'zip' => 'Zip',
|
||||
|
||||
);
|
||||
@@ -1,20 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« Previous',
|
||||
|
||||
'next' => 'Next »',
|
||||
|
||||
);
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reminder Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
"password" => "Passwords must be six characters and match the confirmation.",
|
||||
|
||||
"user" => "Username or email address is incorrect",
|
||||
|
||||
"token" => "This password reset token is invalid.",
|
||||
|
||||
"sent" => "If a matching email address was found, a password reminder has been sent!",
|
||||
|
||||
);
|
||||
@@ -1,7 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
'actions' => 'Actions'
|
||||
|
||||
);
|
||||
@@ -1,95 +0,0 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines contain the default error messages used by
|
||||
| the validator class. Some of these rules have multiple versions such
|
||||
| such as the size rules. Feel free to tweak each of these messages.
|
||||
|
|
||||
*/
|
||||
|
||||
"accepted" => "The :attribute must be accepted.",
|
||||
"active_url" => "The :attribute is not a valid URL.",
|
||||
"after" => "The :attribute must be a date after :date.",
|
||||
"alpha" => "The :attribute may only contain letters.",
|
||||
"alpha_dash" => "The :attribute may only contain letters, numbers, and dashes.",
|
||||
"alpha_num" => "The :attribute may only contain letters and numbers.",
|
||||
"before" => "The :attribute must be a date before :date.",
|
||||
"between" => array(
|
||||
"numeric" => "The :attribute must be between :min - :max.",
|
||||
"file" => "The :attribute must be between :min - :max kilobytes.",
|
||||
"string" => "The :attribute must be between :min - :max characters.",
|
||||
),
|
||||
"confirmed" => "The :attribute confirmation does not match.",
|
||||
"date" => "The :attribute is not a valid date.",
|
||||
"date_format" => "The :attribute does not match the format :format.",
|
||||
"different" => "The :attribute and :other must be different.",
|
||||
"digits" => "The :attribute must be :digits digits.",
|
||||
"digits_between" => "The :attribute must be between :min and :max digits.",
|
||||
"email" => "The :attribute format is invalid.",
|
||||
"exists" => "The selected :attribute is invalid.",
|
||||
"image" => "The :attribute must be an image.",
|
||||
"in" => "The selected :attribute is invalid.",
|
||||
"integer" => "The :attribute must be an integer.",
|
||||
"ip" => "The :attribute must be a valid IP address.",
|
||||
"max" => array(
|
||||
"numeric" => "The :attribute may not be greater than :max.",
|
||||
"file" => "The :attribute may not be greater than :max kilobytes.",
|
||||
"string" => "The :attribute may not be greater than :max characters.",
|
||||
),
|
||||
"mimes" => "The :attribute must be a file of type: :values.",
|
||||
"min" => array(
|
||||
"numeric" => "The :attribute must be at least :min.",
|
||||
"file" => "The :attribute must be at least :min kilobytes.",
|
||||
"string" => "The :attribute must be at least :min characters.",
|
||||
),
|
||||
"not_in" => "The selected :attribute is invalid.",
|
||||
"numeric" => "The :attribute must be a number.",
|
||||
"regex" => "The :attribute format is invalid.",
|
||||
"required" => "The :attribute field is required.",
|
||||
"required_if" => "The :attribute field is required when :other is :value.",
|
||||
"required_with" => "The :attribute field is required when :values is present.",
|
||||
"required_without" => "The :attribute field is required when :values is not present.",
|
||||
"same" => "The :attribute and :other must match.",
|
||||
"size" => array(
|
||||
"numeric" => "The :attribute must be :size.",
|
||||
"file" => "The :attribute must be :size kilobytes.",
|
||||
"string" => "The :attribute must be :size characters.",
|
||||
),
|
||||
"unique" => "The :attribute has already been taken.",
|
||||
"url" => "The :attribute format is invalid.",
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify custom validation messages for attributes using the
|
||||
| convention "attribute.rule" to name the lines. This makes it quick to
|
||||
| specify a specific custom language line for a given attribute rule.
|
||||
|
|
||||
*/
|
||||
|
||||
'custom' => array(),
|
||||
'alpha_space' => "The :attribute field may only contain letters, commas, spaces and dashes.",
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used to swap attribute place-holders
|
||||
| with something more reader friendly such as E-Mail Address instead
|
||||
| of "email". This simply helps us make messages a little cleaner.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => array(),
|
||||
|
||||
);
|
||||
@@ -1,20 +1,20 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_accessories_title' => 'About Accessories',
|
||||
'about_accessories_text' => 'Accessories are anything you issue to users but that do not have a serial number (or you do not care about tracking them uniquely). For example, computer mice or keyboards.',
|
||||
'accessory_category' => 'Accessory Category',
|
||||
'accessory_name' => 'Accessory Name',
|
||||
'create' => 'Create Category',
|
||||
'eula_text' => 'Category EULA',
|
||||
'eula_text_help' => 'This field allows you to customize your EULAs for specific types of assets. If you only have one EULA for all of your assets, you can check the box below to use the primary default.',
|
||||
'require_acceptance' => 'Require users to confirm acceptance of assets in this category.',
|
||||
'no_default_eula' => 'No primary default EULA found. Add one in Settings.',
|
||||
'qty' => 'QTY',
|
||||
'total' => 'Total',
|
||||
'remaining' => 'Avail',
|
||||
'update' => 'Update Category',
|
||||
'use_default_eula' => 'Use the <a href="#" data-toggle="modal" data-target="#eulaModal">primary default EULA</a> instead.',
|
||||
'about_accessories_title' => 'حول الملحقات',
|
||||
'about_accessories_text' => 'الملحقات هي أي شيء تقوم بتسليمه للمستخدمين لكنه لا يحتوي على رقم تسلسلي (أو أنك لست بحاجة إلى تتبعه بشكل خاص). مثال: فأرة الحاسوب أو لوحة المفاتيح.',
|
||||
'accessory_category' => 'فئة الملحق',
|
||||
'accessory_name' => 'اسم الملحق',
|
||||
'create' => 'إنشاء فئة جديدة',
|
||||
'eula_text' => 'إنشاء اتفاقية جديدة',
|
||||
'eula_text_help' => 'يسمح لك هذا الحقل بتخصيص الاتفاقيات لأنواع معينة من الأصول. اذا كنت تمتلك اتفاقية واحدة لجميع أصولك يمكنك أن تقوم بتأشير المربع في الأسفل لاستخدام الاتفاقية الافتراضية.',
|
||||
'require_acceptance' => 'مطالبة المستخدمين بتأكيد قبولهم الأصول في هذه الفئة.',
|
||||
'no_default_eula' => 'ليس هناك اتفاقيات. قم باضافة واحدة من "الاعدادات".',
|
||||
'qty' => 'الكمية',
|
||||
'total' => 'المجموع',
|
||||
'remaining' => 'المتاح',
|
||||
'update' => 'تحديث الفئة',
|
||||
'use_default_eula' => 'قم باستعمال <a href="#" data-toggle="modal" data-target="#eulaModal">primary default EULA</a>.',
|
||||
'use_default_eula_disabled' => '<del>Use the primary default EULA instead.</del> No primary default EULA is set. Please add one in Settings.',
|
||||
|
||||
);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user