比較提交
	
		
			3 次程式碼提交
		
	
	
		
			cc4506b918
			...
			b297498ca9
		
	
	| 作者 | SHA1 | 日期 | |
|---|---|---|---|
| b297498ca9 | |||
| fdcef18861 | |||
| 75268e0073 | 
@@ -25,7 +25,10 @@ Response HandlerSearch::handleRequest(const Request &r)
 | 
				
			|||||||
	std::string q = r.get("q");
 | 
						std::string q = r.get("q");
 | 
				
			||||||
	if(q.empty())
 | 
						if(q.empty())
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return errorResponse("Missing search term", "No search term supplied");
 | 
							TemplatePage searchForm = this->templ->getPage("searchform");
 | 
				
			||||||
 | 
							response.setBody(searchForm.render());
 | 
				
			||||||
 | 
							response.setStatus(200);
 | 
				
			||||||
 | 
							return response;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	auto pageDao = this->database->createPageDao();
 | 
						auto pageDao = this->database->createPageDao();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,6 +12,7 @@
 | 
				
			|||||||
#include <filesystem>
 | 
					#include <filesystem>
 | 
				
			||||||
#include <sys/mount.h>
 | 
					#include <sys/mount.h>
 | 
				
			||||||
#include <sys/capability.h>
 | 
					#include <sys/capability.h>
 | 
				
			||||||
 | 
					#define HAVE_LANDLOCK 0
 | 
				
			||||||
#include <qssb.h>
 | 
					#include <qssb.h>
 | 
				
			||||||
#include "../logger.h"
 | 
					#include "../logger.h"
 | 
				
			||||||
#include "../utils.h"
 | 
					#include "../utils.h"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,9 +13,10 @@
 | 
				
			|||||||
    <li><a href="{qswiki:config:linkrecent}">Recent changes</a></li>
 | 
					    <li><a href="{qswiki:config:linkrecent}">Recent changes</a></li>
 | 
				
			||||||
    <li><a href="{qswiki:config:linkallpages}">All pages</a></li>
 | 
					    <li><a href="{qswiki:config:linkallpages}">All pages</a></li>
 | 
				
			||||||
    <li><a href="{qswiki:config:linkallcats}">All categories</a></li>
 | 
					    <li><a href="{qswiki:config:linkallcats}">All categories</a></li>
 | 
				
			||||||
 | 
					    <li id="searchlink"><a href="{qswiki:config:linksearch}">Search</a></li>
 | 
				
			||||||
    </ul>
 | 
					    </ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <ul id="right" class="search">
 | 
					    <ul id="right" class="search">
 | 
				
			||||||
	<li><div><form action="{qswiki:config:wikipath}" method="GET"><input type="hidden" name="action" value="search"/><input type="text" name="q" value="search here" onfocus="this.value=''"></form></div></li>
 | 
						<li><div id="searchbar"><form action="{qswiki:config:wikipath}" method="GET"><input type="hidden" name="action" value="search"/><input type="text" name="q" value="search here" onfocus="this.value=''"></form></div></li>
 | 
				
			||||||
	</ul>
 | 
						</ul>
 | 
				
			||||||
</nav>
 | 
					</nav>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,6 +13,7 @@
 | 
				
			|||||||
    <li><a href="{qswiki:config:linkrecent}">Recent changes</a></li>
 | 
					    <li><a href="{qswiki:config:linkrecent}">Recent changes</a></li>
 | 
				
			||||||
    <li><a href="{qswiki:config:linkallpages}">All pages</a></li>
 | 
					    <li><a href="{qswiki:config:linkallpages}">All pages</a></li>
 | 
				
			||||||
    <li><a href="{qswiki:config:linkallcats}">All categories</a></li>
 | 
					    <li><a href="{qswiki:config:linkallcats}">All categories</a></li>
 | 
				
			||||||
 | 
					    <li id="searchlink"><a href="{qswiki:config:linksearch}">Search</a></li>
 | 
				
			||||||
    </ul>
 | 
					    </ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <ul>
 | 
					    <ul>
 | 
				
			||||||
@@ -20,6 +21,6 @@
 | 
				
			|||||||
	</ul>
 | 
						</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <ul id="right" class="search">
 | 
					    <ul id="right" class="search">
 | 
				
			||||||
	<li><div><form action="{qswiki:config:wikipath}" method="GET"><input type="hidden" name="action" value="search"/><input type="text" value="search here" onfocus="this.value=''" name="q"/></form></div></li>
 | 
						<li><div id="searchbar"><form action="{qswiki:config:wikipath}" method="GET"><input type="hidden" name="action" value="search"/><input type="text" value="search here" onfocus="this.value=''" name="q"/></form></div></li>
 | 
				
			||||||
	</ul>
 | 
						</ul>
 | 
				
			||||||
</nav>
 | 
					</nav>
 | 
				
			||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{qswiki:include:general_header}
 | 
				
			||||||
 | 
					<main id="content">
 | 
				
			||||||
 | 
					<h2>Search</h2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Search content of pages:
 | 
				
			||||||
 | 
					<form action="{qswiki:config:wikipath}" method="GET"><input type="hidden" name="action" value="search"/><input type="text" name="q" value="search here" onfocus="this.value=''"></form>
 | 
				
			||||||
 | 
					</main>
 | 
				
			||||||
 | 
					{qswiki:include:general_footer}
 | 
				
			||||||
@@ -23,7 +23,6 @@ h1, h2, h3
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	margin: 0;
 | 
						margin: 0;
 | 
				
			||||||
	padding: 0;
 | 
						padding: 0;
 | 
				
			||||||
        display: inline;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
nav
 | 
					nav
 | 
				
			||||||
@@ -37,6 +36,7 @@ nav
 | 
				
			|||||||
	grid-area: nav;
 | 
						grid-area: nav;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
nav ul
 | 
					nav ul
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	background-color: #062463;
 | 
						background-color: #062463;
 | 
				
			||||||
@@ -47,16 +47,12 @@ nav ul
 | 
				
			|||||||
	display: flex;
 | 
						display: flex;
 | 
				
			||||||
	align-items: center;
 | 
						align-items: center;
 | 
				
			||||||
	flex-wrap: wrap;
 | 
						flex-wrap: wrap;
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
nav li
 | 
					nav li
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	margin: 0;
 | 
						margin: 0;
 | 
				
			||||||
	padding: 0;
 | 
						padding: 0;
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
nav a, nav a:visited
 | 
					nav a, nav a:visited
 | 
				
			||||||
@@ -68,7 +64,6 @@ nav a, nav a:visited
 | 
				
			|||||||
	font-weight: bold;
 | 
						font-weight: bold;
 | 
				
			||||||
	text-align: center;
 | 
						text-align: center;
 | 
				
			||||||
	line-height: 100%;
 | 
						line-height: 100%;
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
nav a:hover, nav a:focus
 | 
					nav a:hover, nav a:focus
 | 
				
			||||||
@@ -81,8 +76,6 @@ nav a:hover, nav a:focus
 | 
				
			|||||||
	font-weight: bold;
 | 
						font-weight: bold;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
a, a:visited
 | 
					a, a:visited
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	color: #062463;;
 | 
						color: #062463;;
 | 
				
			||||||
@@ -92,40 +85,36 @@ a:hover
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	background-color: #062463;
 | 
						background-color: #062463;
 | 
				
			||||||
	color: white;
 | 
						color: white;
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#content
 | 
					#content
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
padding: 15px;
 | 
						padding: 15px;
 | 
				
			||||||
font-family: monospace;
 | 
						font-family: monospace;
 | 
				
			||||||
font-size: 14pt;
 | 
						font-size: 14pt;
 | 
				
			||||||
flex: 1;
 | 
						flex: 1;
 | 
				
			||||||
grid-area: main
 | 
						grid-area: main
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#sidebar
 | 
					#sidebar
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
grid-area: side;
 | 
						grid-area: side;
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#sidebar ul
 | 
					#sidebar ul
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
list-style-type: none;
 | 
						list-style-type: none;
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#sidebar a, a:visited
 | 
					#sidebar a, a:visited
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	color: #062463;
 | 
						color: #062463;
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#sidebar a:hover
 | 
					#sidebar a:hover
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
   background-color: #062463;
 | 
						background-color: #062463;
 | 
				
			||||||
   color: white;
 | 
						color: white;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#content a, a:visited
 | 
					#content a, a:visited
 | 
				
			||||||
@@ -135,11 +124,10 @@ list-style-type: none;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#content a:hover
 | 
					#content a:hover
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
   background-color: #062463;
 | 
						background-color: #062463;
 | 
				
			||||||
   color: white;
 | 
						color: white;
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
footer
 | 
					footer
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	width: 100%;
 | 
						width: 100%;
 | 
				
			||||||
@@ -160,6 +148,7 @@ footer ul
 | 
				
			|||||||
	flex-wrap: wrap;
 | 
						flex-wrap: wrap;
 | 
				
			||||||
	align-items: center;
 | 
						align-items: center;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
footer li
 | 
					footer li
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	margin: 0;
 | 
						margin: 0;
 | 
				
			||||||
@@ -168,14 +157,12 @@ footer li
 | 
				
			|||||||
	line-height: 45px;
 | 
						line-height: 45px;
 | 
				
			||||||
	color: white;
 | 
						color: white;
 | 
				
			||||||
	font-weight: bold;
 | 
						font-weight: bold;
 | 
				
			||||||
	//flex: 1 1 0;
 | 
					 | 
				
			||||||
	text-align: center;
 | 
						text-align: center;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
footer a, a:visited
 | 
					footer a, a:visited
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	text-decoration: none;
 | 
						text-decoration: none;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	color: white;
 | 
						color: white;
 | 
				
			||||||
	display: inline-block;
 | 
						display: inline-block;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -190,7 +177,7 @@ footer a:hover, ul#nav a:focus
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#cats
 | 
					#cats
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
background-color: #062463;
 | 
						background-color: #062463;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.letter_search_result
 | 
					.letter_search_result
 | 
				
			||||||
@@ -198,20 +185,27 @@ background-color: #062463;
 | 
				
			|||||||
	text-decoration: underline;
 | 
						text-decoration: underline;
 | 
				
			||||||
	font-weight: bold;
 | 
						font-weight: bold;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ol
 | 
					ol
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	counter-reset: item;
 | 
						counter-reset: item;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.indexlink
 | 
					.indexlink
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
display: block;
 | 
						display: block;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.notexists
 | 
					.notexists
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	color: red !important;
 | 
						color: red !important;
 | 
				
			||||||
	font-weight: bold;
 | 
						font-weight: bold;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#searchlink
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						display: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@media screen and (orientation: portrait)
 | 
					@media screen and (orientation: portrait)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -219,13 +213,23 @@ display: block;
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		display: none;
 | 
							display: none;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	#footer li:nth-child(-n+2)
 | 
						#footer li:nth-child(-n+2)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		display: none;
 | 
							display: none;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	#footer li:nth-of-type(3)
 | 
						#footer li:nth-of-type(3)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		text-align: center;
 | 
							text-align: center;
 | 
				
			||||||
		width: 100%;
 | 
							width: 100%;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#searchlink {
 | 
				
			||||||
 | 
							display: inline;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#searchbar {
 | 
				
			||||||
 | 
							display: none;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		新增問題並參考
	
	封鎖使用者