Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rebase #1

Merged
merged 325 commits into from
Sep 10, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
325 commits
Select commit Hold shift + click to select a range
8f90615
typo
peterdd Feb 20, 2019
da9b0d6
Update createTestData.php
peterdd Feb 20, 2019
559f7b9
data for selects when move task between projects
peterdd Feb 22, 2019
3fadbee
form selects for move task
peterdd Feb 22, 2019
f958471
allow unsetting operating_system value of task
peterdd Feb 22, 2019
946906d
Update en.php
peterdd Feb 22, 2019
c699c82
global/current/target project optgroup labels
peterdd Feb 22, 2019
80fc642
Merge pull request #704 from Flyspray/taskmoves
peterdd Feb 22, 2019
1b99c31
form changes during setup
peterdd Feb 23, 2019
5d2457b
Update en.php
peterdd Feb 23, 2019
5eed0c3
Update setup.css
peterdd Feb 23, 2019
51b1a1c
Update database.tpl
peterdd Feb 23, 2019
93fec13
update links, shorter translation tags
peterdd Feb 23, 2019
cfbb6b5
Merge pull request #705 from Flyspray/setupadmin
peterdd Feb 26, 2019
1d1525e
store optional realname and jabber_id during install
peterdd Feb 26, 2019
40cc2c9
Update administration.tpl
peterdd Feb 26, 2019
855ed1f
Update index.php
peterdd Feb 26, 2019
f90adeb
no default email and jabber address at install
peterdd Feb 26, 2019
91303e3
Update setup.css
peterdd Feb 26, 2019
1ca0f1e
check for opt. realname and opt. xmpp at install
peterdd Feb 26, 2019
260a258
add missing massops prefs at install
peterdd Feb 26, 2019
364a6a4
Update en.php
peterdd Feb 27, 2019
3e1b7bc
add massops pref also to upgrade.info
peterdd Feb 27, 2019
9c701dd
stricter move task check
peterdd Mar 2, 2019
803677b
extend versions selects when moving task
peterdd Mar 2, 2019
ef3948c
Update details.edit.tpl
peterdd Mar 2, 2019
34d36bb
Update en.php
peterdd Mar 2, 2019
0452872
Merge pull request #706 from Flyspray/movetask
peterdd Mar 2, 2019
8546ee8
utf8 jscalendar/lang/calendar-bg.js
peterdd Mar 3, 2019
66195e2
Update and rename calendar-he-utf8.js to calendar-he.js
peterdd Mar 3, 2019
85ff556
xml http header for rss1/rss2/atom feeds
peterdd Mar 5, 2019
cc2e427
transcode calendar-es.js to utf-8
peterdd Mar 5, 2019
fa67964
jscalendar lang chinese utf-8
peterdd Mar 7, 2019
59265b9
Delete cn_utf8.js
peterdd Mar 7, 2019
c879475
Update and rename calendar-cs-utf8.js to calendar-cs.js
peterdd Mar 7, 2019
92d6d7f
Delete calendar-cs-win.js
peterdd Mar 7, 2019
120141c
Delete calendar-hr.js
peterdd Mar 7, 2019
6020a27
Update and rename calendar-hr-utf8.js to calendar-hr.js
peterdd Mar 7, 2019
43b0e21
Delete calendar-ru_win_.js
peterdd Mar 7, 2019
225106a
Delete calendar-lt.js
peterdd Mar 7, 2019
687f4bd
Rename calendar-lt-utf8.js to calendar-lt.js
peterdd Mar 7, 2019
c188fb3
Delete calendar-ko.js
peterdd Mar 7, 2019
d744ec5
Update and rename calendar-ko-utf8.js to calendar-ko.js
peterdd Mar 7, 2019
653ec88
Update calendar-fr.js
peterdd Mar 7, 2019
0a311cf
Update calendar-it.js
peterdd Mar 7, 2019
bd9299b
Update calendar-tr.js
peterdd Mar 7, 2019
129b3c3
install: optional admin_xmpp or admin_realname
peterdd Mar 7, 2019
1a7f414
cache task details in array only when wanted
peterdd Mar 8, 2019
cd123f4
Update createTestData.php
peterdd Mar 8, 2019
869f459
Translated new strings
FrancescoGd Mar 8, 2019
0b3c333
Merge pull request #707 from FrancescoGd/it-translation
peterdd Mar 8, 2019
5c8d4d3
add missing locale to russian translations
peterdd Mar 10, 2019
e9272c9
add a rough calendar-mk.js for macedonian
peterdd Mar 11, 2019
e9b61f8
add calendar-sr.js for jscalendar
peterdd Mar 11, 2019
5c7ef69
fix warning when no options for tpl_select() submitted
peterdd Mar 11, 2019
eab07cc
update quickedit.php fix header status
peterdd Mar 11, 2019
16d3643
Update deletesearches.php
peterdd Mar 11, 2019
aa59730
Update savesearches.php
peterdd Mar 11, 2019
feaa8b8
Update testemail.php
peterdd Mar 11, 2019
4ca83c3
Merge pull request #708 from Flyspray/httpstatuscodes
peterdd Mar 11, 2019
3e3333d
fix warning at all projects csv export
peterdd Mar 12, 2019
0b66499
Update composer.json
peterdd Mar 12, 2019
fced40a
createTestData do not task cache to prevent hit php mem limit
peterdd Mar 12, 2019
2135612
bcc: instead to: when more than one recipient in a notification
peterdd Mar 12, 2019
7a8a6f4
Added rules for Visual Studio Code
Mar 12, 2019
b4c5a37
Merge pull request #709 from FrancescoGd/master
peterdd Mar 12, 2019
03106d5
Merge pull request #710 from Flyspray/bcc
peterdd Mar 12, 2019
c61055a
Update header.tpl
peterdd Mar 15, 2019
4345f46
Delete ie.css
peterdd Mar 15, 2019
3606303
Delete excanvas.js
peterdd Mar 15, 2019
e3826c5
replace class="required text" with required="required" attribute
peterdd Mar 15, 2019
8490821
Merge pull request #712 from Flyspray/drop-ie8-stuff
peterdd Mar 15, 2019
9e241a0
remove hardcoded * as required field hint
peterdd Mar 15, 2019
ad5c7a4
required="required" instead css class required
peterdd Mar 15, 2019
9d5987d
cosmetic: eL() is shorter
peterdd Mar 15, 2019
06acc8d
cosmetics on common.editalluser.tpl
peterdd Mar 15, 2019
569a124
cosmetics: newtask.tpl
peterdd Mar 15, 2019
51026e4
Update register.ok.tpl
peterdd Mar 15, 2019
fa44bdd
delete empty unused progressbar.tpl
peterdd Mar 15, 2019
0bcb02e
cosmetics myprofile.tpl
peterdd Mar 15, 2019
856dab0
cosmetics common.profile.tpl
peterdd Mar 15, 2019
1598ba3
show user_name also on myprofile
peterdd Mar 15, 2019
266c79c
icon for exporttasklist button, cosmetics
peterdd Mar 15, 2019
233a254
position the export tasklist button
peterdd Mar 15, 2019
5d1eb57
Merge pull request #713 from Flyspray/exporttasklistbutton
peterdd Mar 15, 2019
a2dc209
Created italian setup translation
Mar 15, 2019
e9137d7
Merge pull request #714 from FrancescoGd/master
peterdd Mar 15, 2019
235c9d1
min. PHP5.4 check at setup
peterdd Mar 17, 2019
be72805
do not test for removed php settings at setup
peterdd Mar 17, 2019
84f99c4
preinstall check avatars/ dir
peterdd Mar 17, 2019
98ad585
Update pre_install.tpl
peterdd Mar 17, 2019
a57ca17
Update README.md
peterdd Mar 18, 2019
623f43d
fix dokuwiki entities.conf for xml output (atom feed)
peterdd Mar 19, 2019
3b403c5
Add some missing French translations
jdorel Mar 23, 2019
9b9d4c3
Merge pull request #716 from jdorel/patch-1
peterdd Mar 23, 2019
2c1d3b5
Update README.md
peterdd Apr 17, 2019
be299f2
Update class.flyspray.php
peterdd Apr 21, 2019
a60d317
missing comma in fr.php
peterdd Apr 21, 2019
0e90f75
Update composer.json
peterdd Apr 22, 2019
34e7694
fix typo in fr.php
peterdd Apr 22, 2019
c781a0a
Merge pull request #718 from Flyspray/travisci-phpunit
peterdd Apr 22, 2019
595fd90
add --no-dev to install description
peterdd Apr 22, 2019
03d7955
Update flysprayTest.php
peterdd Apr 22, 2019
5e99e7f
Rename Tests to tests, make travis-ci working again (#719)
peterdd Apr 22, 2019
5b2732f
Update README.md
peterdd Apr 22, 2019
c0f56e8
set next version 1.0-rc10 dev
peterdd Apr 22, 2019
17c87bb
Longerlinks (#720)
peterdd May 5, 2019
1a44996
mitigate layout overflows by long words
peterdd May 5, 2019
e4b2068
Update theme.css
peterdd May 5, 2019
d62c037
thinner tags
peterdd May 5, 2019
1bcfb8a
word-wrap:anywhere curr. only supported by firefox
peterdd May 5, 2019
84c1bbe
installer: better checks for db prefix
peterdd May 7, 2019
d563129
Cosmetics to comply with PHP documentation
May 14, 2019
de61bba
Merge pull request #721 from FrancescoGd/cosmetic-parenthesis
peterdd May 14, 2019
bc41455
Small corrections
FrancescoGd May 17, 2019
53e78d2
Merge pull request #722 from FrancescoGd/small-corrections
peterdd May 17, 2019
e79c6a1
fix   of code sections in atom feed xml
peterdd Jun 16, 2019
df691fe
move new sub task nearby associate sub task
peterdd Jun 30, 2019
8a745c9
Merge pull request #723 from Flyspray/master
peterdd Jul 13, 2019
49de15a
Added russian string translations.
vityusha Jul 15, 2019
ea06292
Merge pull request #725 from vityusha/master
peterdd Jul 15, 2019
92b74eb
Some polish and small corrections
Jul 25, 2019
74b8f6d
Merge pull request #726 from FrancescoGd/master
peterdd Jul 26, 2019
e26c16a
document w 'watch task' access key
peterdd Jul 29, 2019
9045676
Update theme.css
peterdd Jul 29, 2019
924770d
detect basic browser and platform at session start
peterdd Jul 29, 2019
f880ece
basic usage of platform and browser for shortcuts help
peterdd Jul 29, 2019
72b77a3
shortcuts help a bit wider
peterdd Jul 29, 2019
f2aba30
Merge pull request #727 from Flyspray/accesskeyhelp
peterdd Jul 29, 2019
62bb2ba
wrap th in html
peterdd Aug 2, 2019
452af3e
show also todays activity
peterdd Aug 2, 2019
9e0f3e5
remove some old browserspecific
peterdd Aug 2, 2019
1b8823c
svg activity sparklines
peterdd Aug 2, 2019
05b7b5c
feat: make ldap configurable
Aug 28, 2019
94a5995
Update README to current rc9 version
trebmuh Aug 30, 2019
c046861
Merge pull request #731 from trebmuh/patch-1
peterdd Aug 30, 2019
90c5cce
Update the French translation
trebmuh Aug 30, 2019
1d17654
Merge pull request #732 from trebmuh/patch-1
peterdd Aug 30, 2019
93da4f1
remove a wrong nested span tag
peterdd Aug 31, 2019
fd650f2
Update French translation
trebmuh Aug 31, 2019
c56f371
Improving French translation
trebmuh Aug 31, 2019
8b2f54e
Merge pull request #733 from trebmuh/patch-1
peterdd Aug 31, 2019
06460aa
add a custom_mockup.css
peterdd Sep 2, 2019
e795ad5
remove a useless div
peterdd Sep 2, 2019
1b03963
fix nonselectable project selector on middle size screens
peterdd Sep 2, 2019
721c554
Merge pull request #734 from Flyspray/fix-overflow-projectselector
peterdd Sep 2, 2019
6d1de53
fix a missing ; in theme.css
peterdd Sep 2, 2019
9de57a7
fix FS#2569 : php warnings shown when no project exists
peterdd Sep 2, 2019
3a2bec2
shorter css for custom_mockup.css
peterdd Sep 2, 2019
8ce2c10
fix: php warning on count()
Sep 2, 2019
1528f9d
fix: remove php7 null coalescing operator
Sep 2, 2019
12a92ef
Merge pull request #730 from fch25804/master
peterdd Sep 4, 2019
df31414
ldap defaults and use ldap_uri instead a host and port config
peterdd Sep 4, 2019
ae90060
ldap_uri var for debug
peterdd Sep 4, 2019
25c7c2e
nofollow setting
peterdd Sep 14, 2019
d7e6d3f
setting of relnofollow
peterdd Sep 14, 2019
381dd0b
Update class.backend.php
peterdd Sep 14, 2019
d633e0d
Update modify.inc.php
peterdd Sep 14, 2019
045e531
use dokuwiki $conf until full rendered
peterdd Sep 14, 2019
5505ce0
Merge pull request #735 from Flyspray/fixdokuwikiconfusage
peterdd Sep 14, 2019
5b04b9d
fix hilighting searchwords for dokuwiki syntax
peterdd Sep 14, 2019
820d88f
only mild hilight searchwords
peterdd Sep 15, 2019
08b730c
set default relnofollow in flyspray-install.xml
peterdd Sep 15, 2019
c387b03
set default relnofollow in upgrade.info
peterdd Sep 15, 2019
70a5eab
Merge pull request #736 from Flyspray/master
peterdd Sep 15, 2019
a424bf6
Merge pull request #737 from Flyspray/relnofollow
peterdd Sep 15, 2019
1ecc0f6
wrap overlong strings
peterdd Sep 17, 2019
9a0761f
Standardize writing
FrancescoGd Sep 18, 2019
043f238
Merge pull request #738 from FrancescoGd/patch-1
peterdd Sep 20, 2019
8a39aa9
wrap task summary string if necessary
peterdd Sep 20, 2019
7e75943
workaround to fix dokuwiki render
peterdd Sep 24, 2019
98c096e
Merge pull request #591 from Flyspray/review-dokuwikitoolbar
peterdd Sep 24, 2019
561a781
Merge pull request #728 from Flyspray/svg-sparklines
peterdd Sep 24, 2019
0679864
Merge pull request #621 from Flyspray/bigimages-lightbox
peterdd Sep 24, 2019
3b80f59
minor css tweak for lightbox
peterdd Sep 24, 2019
98a0583
Update activity.php
peterdd Sep 24, 2019
07fff6b
fix FS#2576 position request reopen form
peterdd Sep 28, 2019
c06aed5
feat: search in tags
Oct 2, 2019
3515a2f
Merge pull request #740 from fch25804/master
peterdd Oct 3, 2019
3d0a0d0
re-open -> reopen
peterdd Oct 26, 2019
4ebd9ac
force htmlspecialchars defaults in dokuwiki xhtml.php
peterdd Oct 27, 2019
be353bb
fix a warning when dokuwiki rss syntax feature tried
peterdd Oct 27, 2019
8c78611
adapt note about dokuwiki rss feature
peterdd Oct 27, 2019
6649541
Merge pull request #742 from Flyspray/fix-dokuwiki-rss
peterdd Oct 27, 2019
0436473
trying to fix travis-ci
peterdd Oct 27, 2019
605c3e4
Update .travis.yml
peterdd Oct 27, 2019
2fc0655
only php7+ phpunit testing
peterdd Oct 27, 2019
e6e6f68
Update xhtml.php
peterdd Oct 28, 2019
ee49939
show adodb connection info on admin checks page
peterdd Oct 29, 2019
cca2be7
get collation info for postgresql
peterdd Oct 29, 2019
39b982d
Merge pull request #744 from Flyspray/more-dbinfo
peterdd Oct 29, 2019
4a181ef
limit preload task description on long tasklists (default theme)
peterdd Oct 31, 2019
f772796
Merge pull request #745 from Flyspray/perf-tasklist
peterdd Oct 31, 2019
9c2009c
stub for dark mode
peterdd Oct 31, 2019
10b5e04
add experimental darkmode.css to custom_example.css
peterdd Oct 31, 2019
8351913
Update es.php
Respawn84 Nov 20, 2019
c702a73
Merge pull request #746 from Respawn84/patch-1
peterdd Nov 20, 2019
9fa38a7
preview handler for others than dokuwiki syntax
peterdd Dec 3, 2019
f9da178
use latest HTMLPurifier 4.12
peterdd Dec 3, 2019
a4dcc8b
Update getpreview.php
peterdd Dec 4, 2019
cb67132
Pagination (#747)
peterdd Dec 7, 2019
e153274
Update darkmode.css
peterdd Dec 8, 2019
682987e
Morefonticons (#748)
peterdd Dec 8, 2019
080fadb
fix FS#2566
peterdd Dec 8, 2019
790f27c
fix a php7.4 warning during install
peterdd Dec 9, 2019
3c44b65
dbtable color darkmode (#749)
peterdd Dec 9, 2019
3758497
Update darkmode.css
peterdd Dec 9, 2019
f9ae6ce
fix nesting in darkmode.css
peterdd Dec 10, 2019
0274209
prevent flicker on tasklist
peterdd Dec 10, 2019
1beda02
do not show old mysql driver check for php7+ at preinstall check
peterdd Dec 10, 2019
de5e0e5
skip a hint during install when using php7+
peterdd Dec 10, 2019
5198fa2
Update en.php
peterdd Dec 10, 2019
80d216c
add file ownership hint during install
peterdd Dec 11, 2019
6b1e661
fix some PHP7.4 curly braces deprecations (#750)
peterdd Dec 11, 2019
b97fdab
fix another php7.4 array-style access of non-arrays notice
peterdd Dec 11, 2019
94c981d
add grip line to draggable element
peterdd Dec 12, 2019
afa209b
Create cz.php
peterdd Dec 12, 2019
9fbd402
fix FS#2591 not replace + at end of a search word
peterdd Feb 15, 2020
9c67ccc
Updated new strings (#751)
FrancescoGd Feb 15, 2020
bc69857
Merge pull request #752 from Flyspray/plusatsearchwordend
peterdd Feb 15, 2020
1a80f6b
fix FS#2592 store option hide_subtasks in saved searches too
peterdd Feb 15, 2020
8d47ea6
fix a php7.4 notice when deleting a comment
peterdd Feb 18, 2020
186c254
easier linking to a specific task comment
peterdd Feb 19, 2020
ef6dcbe
center tasktype, severity, priority icons of custom_example.css
peterdd Feb 22, 2020
57c1b0d
some more css for darkmode demo
peterdd Feb 22, 2020
d82f1aa
use of warning css class
peterdd Feb 22, 2020
2c18662
warning css class
peterdd Feb 22, 2020
b77f37a
replace loop png with fontawesome icon
peterdd Feb 24, 2020
7b98eba
Delete loop_alt3_12x9.png
peterdd Feb 24, 2020
6fe7836
default limit for listUsers()
peterdd Feb 24, 2020
e8ec41c
fix FS#2597 PHP7.4 notices for some notification types
peterdd Mar 25, 2020
7a18a1c
fix FS#2596 port in notifications email links
peterdd Mar 26, 2020
e242031
fix a undefined variable notice
peterdd Apr 2, 2020
56d3316
return also total usercount for userlist pagination
peterdd Apr 11, 2020
aa28aff
pagination not only for tasklist pagetype
peterdd Apr 11, 2020
4f307b1
shift some php code from editallusers template to page code
peterdd Apr 11, 2020
b594dad
Update common.editallusers.tpl
peterdd Apr 11, 2020
2b37afa
Merge pull request #753 from Flyspray/userpagination
peterdd Apr 12, 2020
d5b8dc4
little change of css for editallusers page
peterdd Apr 13, 2020
26a44ae
move some css to theme file
peterdd Apr 13, 2020
973aaf9
enabled/disabled user filter for userlist
peterdd Apr 15, 2020
bebdc9e
add basic enabled/disabled user filter form
peterdd Apr 15, 2020
99c7585
userstatus filter and pass offset to template
peterdd Apr 15, 2020
b11d62a
Merge pull request #754 from Flyspray/userlistfilter
peterdd Apr 15, 2020
24787e6
CSS classes for highlighting deadlines
peterdd Apr 29, 2020
3652ff9
highlight overdue tasks in tasklist duedate column
peterdd Apr 29, 2020
b12aefe
CSS classes for duedate in details view
peterdd Apr 29, 2020
faf7c76
quick_edit fix for progress_bar
peterdd Apr 30, 2020
d4196b9
fix FS#2605 compromise for length of confirmation_code
peterdd May 2, 2020
ddccb08
footer link to https of www.flyspray.org
peterdd May 2, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,9 @@ composer.phar
*.PHPEditProject
/avatars/*
/lang/*.php.bak
/lang/*.php.safe
/lang/*.php.safe
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
20 changes: 8 additions & 12 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,19 @@
language: php
dist: xenial

# Container-based infrastructure
sudo: false
language: php

# Cache composer
cache:
directories:
- $HOME/.composer/cache

services:
- mysql
- postgresql

php:
# composer needs at least php5.3.2, so php5.2 can't be tested here. Only with a full release with all additional packages yet installed..
# - 5.2
# - 5.3
- 5.4

# no extensive travis testing before we have some real tests and project stable
# - 5.5
- 5.6
# - hhvm
- 7.2

# optionally specify a list of environments, for example to test different RDBMS
env:
Expand All @@ -32,7 +28,7 @@ install:
before_script:
- if [[ "$DB" == "pgsql" ]]; then psql -c "DROP DATABASE IF EXISTS flyspray_test;" -U postgres; fi
- if [[ "$DB" == "pgsql" ]]; then psql -c "CREATE DATABASE flyspray_test;" -U postgres; fi
- if [[ "$DB" == "mysql" ]]; then mysql -e "CREATE DATABASE IF NOT EXISTS flyspray_test;" -uroot; fi
- if [[ "$DB" == "mysql" ]]; then mysql -e "CREATE DATABASE IF NOT EXISTS flyspray_test DEFAULT CHARSET=utf8mb4;"; fi

# omitting "script:" will default to phpunit
# use the $DB env variable to determine the phpunit.xml to use
Expand Down
23 changes: 10 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[![Build Status](https://travis-ci.org/Flyspray/flyspray.svg?branch=master)](https://travis-ci.org/Flyspray/flyspray) Flyspray/flyspray
[![Build Status](https://travis-ci.org/Flyspray/flyspray.svg?branch=master)](https://travis-ci.org/Flyspray/flyspray)

Please do not use Github for your bug reports or feature request. Instead use our live bug tracker at https://bugs.flyspray.org

Expand Down Expand Up @@ -28,14 +28,14 @@ http://flyspray.org/manual/install
4. Make sure flyspray.conf.php is writeable by the webserver.
5. Open http://yourflyspray/setup/ in your webbrowser. It detects the existing installation and you can follow the upgrade steps.

6. Note: Do not forget to press F5 (or CTRL+F5, depending on cache policy) after the upgrade in web browser to reload also cached css-files to see effects of updated CSS-files. They are cached by default for 14 days in the webbrowser.
6. Note: Do not forget to press F5 (or CTRL+F5, depending on cache policy) after the upgrade in web browser to reload also cached CSS-files to see effects of updated CSS-files. They are cached by default for 14 days in the webbrowser.

## Dependencies

### Install php
Linux: Just use the package manager or one of its frontends of your Linux distribution.
For instance for Debian based Linux distributions:
sudo apt-get install php5
sudo apt-get install php

Windows:
http://php.net/downloads
Expand All @@ -44,26 +44,23 @@ http://flyspray.org/manual/install

#### Installing from prepackaged releases that include also needed 3rd party libraries

Choose the matching download for your php version from http://www.flyspray.org/docs/download/

unzip flyspray-1.0*.zip (or tar xzf flyspray-1.0*.tgz if you prefer .tgz downloads)
tar xzf flyspray-1.0-rc9.tgz

Point your webbrowser where use unzipped the download file and follow the configuration instructions.
Rename folder flyspray-1.0-rc9 to shorter name or move to webroot if you want and point your webbrowser there and follow the configuration instructions.

#### Installing from source releases via command line

unzip flyspray-1.0*.zip (or tar xzf flyspray-1.0*.tar.gz if you prefer the .tar.gz download)
cd flyspray-1.0*
curl -L https://github.com/Flyspray/flyspray/archive/v1.0-rc9.tar.gz | tar xz
cd flyspray-1.0-rc9
curl -sS https://getcomposer.org/installer | php
php composer.phar install

Point your webbrowser where use unzipped the download file and follow the configuration instructions.
php composer.phar install --no-dev

Rename folder flyspray-1.0-rc9 to shorter name or move to webroot if you want and point your webbrowser there and follow the configuration instructions.

#### Windows users can download Windows installer on https://getcomposer.org/download/
If you downloaded the installer, make sure to include it to shell when asked.

#### Download vendors
Using command lines:
- 'cd' to the main Flyspray directory
- Type 'php composer.phar install' to automatically download the vendors
Users that have it integrated to shell can right click their Flyspray directory and choose "Composer->install" to automatically download the vendors
11 changes: 7 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,18 @@
"type": "application",
"description": "The Flyspray bug tracking system.",
"keywords": ["bug","bugs","tracker","issue","issues", "web"],
"homepage": "http://flyspray.org",
"homepage": "https://flyspray.org",
"license": "LGPL-2.1",
"require": {
"swiftmailer/swiftmailer": "~5.0",
"adodb/adodb-php": "~5.20",
"jamiebicknell/Sparkline": "1.*",
"ezyang/htmlpurifier": "~4.8.0",
"jamiebicknell/sparkline": "1.*",
"ezyang/htmlpurifier": "~4.12",
"dapphp/securimage": "3.6.6",
"league/oauth2-client": "~0.3|~0.12"
"league/oauth2-client": "~0.12"
},
"require-dev": {
"phpunit/phpunit": "*"
},
"repositories": [
{
Expand Down
2 changes: 1 addition & 1 deletion docs/README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Thanks for downloading version 1.x of Flyspray. For installation
instructions, take a look at the INSTALL text file. To upgrade from a
previous version, read the UPGRADING text file.

Flyspray is primarily being developed on Linux (Ubuntu, Debian, OpenSUSE), using Apache 2 and PHP 5 (5.2-5.6)
Flyspray is primarily being developed on Linux (Ubuntu, Debian, OpenSUSE), using Apache 2 and PHP 7
To report bugs or request features, use the bug tracking system at
http://bugs.flyspray.org/

Expand Down
7 changes: 3 additions & 4 deletions feed.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
define('IN_FS', true);
define('IN_FEED', true);

require_once(dirname(__FILE__).'/header.php');
require_once dirname(__FILE__).'/header.php';
$page = new FSTpl();

// Set up the basic XML head
header ('Content-type: text/html; charset=utf-8');
header('Content-Type: application/xml; charset=utf-8');

$max_items = (Req::num('num', 10) == 10) ? 10 : 20;
$sql_project = ' 1=1 ';
Expand Down Expand Up @@ -93,7 +93,7 @@

/* build a new feed if cache didn't work */
if($proj->prefs['others_view']){
$sql = $db->query("SELECT t.task_id, t.item_summary, t.detailed_desc, t.date_opened, t.date_closed, t.last_edited_time, t.opened_by,
$sql = $db->query("SELECT t.task_id, t.item_summary, t.detailed_desc, t.date_opened, t.date_closed, t.last_edited_time, t.opened_by,
COALESCE(u.real_name, 'anonymous') AS real_name,
COALESCE(u.email_address, t.anon_email) AS email_address
FROM {tasks} t
Expand Down Expand Up @@ -156,6 +156,5 @@
}
}

header('Content-Type: application/xml; charset=utf-8');
echo $content;
?>
104 changes: 62 additions & 42 deletions includes/class.backend.php
Original file line number Diff line number Diff line change
Expand Up @@ -303,14 +303,15 @@ public static function remove_vote($user_id, $task_id)
*/
public static function add_comment($task, $comment_text, $time = null)
{
global $conf, $db, $user, $notify, $proj;
global $conf, $db, $user, $notify, $proj, $fs;

if (!($user->perms('add_comments', $task['project_id']) && (!$task['is_closed'] || $user->perms('comment_closed', $task['project_id'])))) {
return false;
}

if($conf['general']['syntax_plugin'] != 'dokuwiki'){
$purifierconfig = HTMLPurifier_Config::createDefault();
if ($fs->prefs['relnofollow']) { $purifierconfig->set('HTML.Nofollow', true); }
$purifier = new HTMLPurifier($purifierconfig);
$comment_text = $purifier->purify($comment_text);
}
Expand Down Expand Up @@ -705,6 +706,9 @@ public static function create_user($user_name, $password, $real_name, $jabber_id
$newuser[0][$email] = array('recipient' => $email, 'lang' => $fs->prefs['lang_code']);
}

if(is_null($notify)) {
$notify = new Notifications();
}
// Notify the appropriate users
if ($fs->prefs['notify_registration']) {
$notify->create(NOTIFY_NEW_USER, null,
Expand Down Expand Up @@ -969,7 +973,7 @@ public static function add_reminder($task_id, $message, $how_often, $start_time,
*/
public static function create_task($args)
{
global $conf, $db, $user, $proj;
global $conf, $db, $user, $proj, $fs;

if (!isset($args)) return 0;

Expand Down Expand Up @@ -1078,6 +1082,7 @@ public static function create_task($args)
# dokuwiki syntax plugin filters on output
if($conf['general']['syntax_plugin'] != 'dokuwiki' && isset($sql_args['detailed_desc']) ){
$purifierconfig = HTMLPurifier_Config::createDefault();
if ($fs->prefs['relnofollow']) { $purifierconfig->set('HTML.Nofollow', true); }
$purifier = new HTMLPurifier($purifierconfig);
$sql_args['detailed_desc'] = $purifier->purify($sql_args['detailed_desc']);
}
Expand Down Expand Up @@ -1219,7 +1224,7 @@ public static function create_task($args)

if ($user->isAnon()) {
$anonuser = array();
$anonuser[$email] = array('recipient' => $args['anon_email'], 'lang' => $fs->prefs['lang_code']);
$anonuser[] = array('recipient' => $args['anon_email']);
$recipients = array($anonuser);
$notify->create(NOTIFY_ANON_TASK, $task_id, $token,
$recipients, NOTIFY_EMAIL, $proj->prefs['lang_code']);
Expand Down Expand Up @@ -1275,7 +1280,7 @@ public static function close_task($task_id, $reason, $comment, $mark100 = true)
array($user->id, time(), $task_id, 1));

// duplicate
if ($reason == 6) {
if ($reason == RESOLUTION_DUPLICATE) {
preg_match("/\b(?:FS#|bug )(\d+)\b/", $comment, $dupe_of);
if (count($dupe_of) >= 2) {
$existing = $db->query('SELECT * FROM {related} WHERE this_task = ? AND related_task = ? AND is_duplicate = 1',
Expand Down Expand Up @@ -1346,6 +1351,7 @@ public static function get_task_list($args, $visible, $offset = 0, $perpage = 20
// Keeps the overall logic somewhat simpler.
$from .= ' LEFT JOIN {assigned} ass ON t.task_id = ass.task_id';
$from .= ' LEFT JOIN {task_tag} tt ON t.task_id = tt.task_id';
$from .= ' LEFT JOIN {list_tag} flt ON tt.tag_id = flt.tag_id';
$cfrom = $from;

// Seems resution name really is needed...
Expand Down Expand Up @@ -1479,19 +1485,19 @@ public static function get_task_list($args, $visible, $offset = 0, $perpage = 20

# not every db system has this feature out of box, it is not standard sql
if($conf['database']['dbtype']=='mysqli' || $conf['database']['dbtype']=='mysql'){
$select .= ' GROUP_CONCAT(DISTINCT tg.tag_name ORDER BY tg.list_position) AS tags, ';
#$select .= ' GROUP_CONCAT(DISTINCT tg.tag_name ORDER BY tg.list_position) AS tags, ';
$select .= ' GROUP_CONCAT(DISTINCT tg.tag_id ORDER BY tg.list_position) AS tagids, ';
$select .= ' GROUP_CONCAT(DISTINCT tg.class ORDER BY tg.list_position) AS tagclass, ';
#$select .= ' GROUP_CONCAT(DISTINCT tg.class ORDER BY tg.list_position) AS tagclass, ';
} elseif($conf['database']['dbtype']=='pgsql'){
$select .= " array_to_string(array_agg(tg.tag_name ORDER BY tg.list_position), ',') AS tags, ";
#$select .= " array_to_string(array_agg(tg.tag_name ORDER BY tg.list_position), ',') AS tags, ";
$select .= " array_to_string(array_agg(CAST(tg.tag_id as text) ORDER BY tg.list_position), ',') AS tagids, ";
$select .= " array_to_string(array_agg(tg.class ORDER BY tg.list_position), ',') AS tagclass, ";
#$select .= " array_to_string(array_agg(tg.class ORDER BY tg.list_position), ',') AS tagclass, ";
} else{
# unsupported groupconcat or we just do not know how write it for the other databasetypes in this section
$select .= ' MIN(tg.tag_name) AS tags, ';
#$select .= ' MIN(tg.tag_name) AS tags, ';
#$select .= ' (SELECT COUNT(tt.tag_id) FROM {task_tag} tt WHERE tt.task_id = t.task_id) AS tagnum, ';
$select .= ' MIN(tg.tag_id) AS tagids, ';
$select .= " '' AS tagclass, ";
#$select .= " '' AS tagclass, ";
}
// task_tag join table is now always included in join
$from .= '
Expand Down Expand Up @@ -1741,45 +1747,59 @@ public static function get_task_list($args, $visible, $offset = 0, $perpage = 20
}
}

if (array_get($args, 'string')) {
$words = explode(' ', strtr(array_get($args, 'string'), '()', ' '));
$comments = '';
$where_temp = array();
if (array_get($args, 'string')) {
$words = explode(' ', strtr(array_get($args, 'string'), '()', ' '));
$comments = '';
$where_temp = array();

if (array_get($args, 'search_in_comments')) {
$comments .= " OR c.comment_text $LIKEOP ?";
}
if (array_get($args, 'search_in_details')) {
$comments .= " OR t.detailed_desc $LIKEOP ?";
}
if (array_get($args, 'search_in_comments')) {
$comments .= " OR c.comment_text $LIKEOP ?";
}
if (array_get($args, 'search_in_details')) {
$comments .= " OR t.detailed_desc $LIKEOP ?";
}

foreach ($words as $word) {
$likeWord = '%' . str_replace('+', ' ', trim($word)) . '%';
$where_temp[] = "(t.item_summary $LIKEOP ? OR t.task_id = ? $comments)";
array_push($sql_params, $likeWord, intval($word));
if (array_get($args, 'search_in_comments')) {
array_push($sql_params, $likeWord);
}
if (array_get($args, 'search_in_details')) {
array_push($sql_params, $likeWord);
}
}
foreach ($words as $word) {
$word = trim($word);
if ($word==''){
continue;
}

$where[] = '(' . implode((array_get($args, 'search_for_all') ? ' AND ' : ' OR '), $where_temp) . ')';
}
# The 2006-2020 hidden/undocumented '+' search feature: 'open+source' finds 'open source', but not 'open closed source'
if (substr($word, -1) === '+') {
# do not replace the + at end of a word like archlinux package name 'memtest86+'
$likeWord = '%' . trim(str_replace('+', ' ', substr($word, 0, -1))) . '+%';
} else {
$likeWord = '%' . trim(str_replace('+', ' ', $word)) . '%';
}

$where_temp[] = "(t.item_summary $LIKEOP ? OR t.task_id = ? OR flt.tag_name $LIKEOP ? $comments)";
array_push($sql_params, $likeWord, intval($word), $likeWord);
if (array_get($args, 'search_in_comments')) {
array_push($sql_params, $likeWord);
}
if (array_get($args, 'search_in_details')) {
array_push($sql_params, $likeWord);
}
}

if ($user->isAnon()) {
$where[] = 't.mark_private = 0 AND p.others_view = 1';
if(array_key_exists('status', $args)){
if (in_array('closed', $args['status']) && !in_array('open', $args['status'])) {
$where[] = 't.is_closed = 1';
} elseif (in_array('open', $args['status']) && !in_array('closed', $args['status'])) {
$where[] = 't.is_closed = 0';
if(count($where_temp)>0){
$where[] = '(' . implode((array_get($args, 'search_for_all') ? ' AND ' : ' OR '), $where_temp) . ')';
}
}

if ($user->isAnon()) {
$where[] = 't.mark_private = 0 AND p.others_view = 1';
if(array_key_exists('status', $args)){
if (in_array('closed', $args['status']) && !in_array('open', $args['status'])) {
$where[] = 't.is_closed = 1';
} elseif (in_array('open', $args['status']) && !in_array('closed', $args['status'])) {
$where[] = 't.is_closed = 0';
}
}
}
}

$where = (count($where)) ? 'WHERE ' . join(' AND ', $where) : '';
$where = (count($where)) ? 'WHERE ' . join(' AND ', $where) : '';

// Get the column names of table tasks for the group by statement
if (!strcasecmp($conf['database']['dbtype'], 'pgsql')) {
Expand Down
12 changes: 5 additions & 7 deletions includes/class.database.php
Original file line number Diff line number Diff line change
Expand Up @@ -227,12 +227,12 @@ public function query($sql, $inputarr = false, $numrows = -1, $offset = -1)
* cast to integer here anyway */
$result = $this->dblink->selectLimit($sql, (int) $numrows, (int) $offset, $inputarr);
} else {
$result = $this->dblink->execute($sql, $inputarr);
$result = $this->dblink->execute($sql, $inputarr);
}

if (!$result) {

if (function_exists("debug_backtrace") && defined('DEBUG_SQL')) {
if(function_exists("debug_backtrace") && defined('DEBUG_SQL')) {
echo "<pre style='text-align: left;'>";
var_dump(debug_backtrace());
echo "</pre>";
Expand All @@ -241,15 +241,13 @@ public function query($sql, $inputarr = false, $numrows = -1, $offset = -1)
$query_params = '';

if(is_array($inputarr) && count($inputarr)) {

$query_params = implode(',', array_map(array('Filters','noXSS'), $inputarr));

}

die (sprintf("Query {%s} with params {%s} Failed! (%s)",
Filters::noXSS($sql), $query_params, Filters::noXSS($this->dblink->errorMsg())));
}
die(sprintf("Query {%s} with params {%s} failed! (%s)",
Filters::noXSS($sql), $query_params, Filters::noXSS($this->dblink->errorMsg())));

}

return $result;
}
Expand Down
Loading