font-weight: bold;
}
+.normal_text {
+ font-size: 12pt;
+ margin-left: 32px;
+ margin-right: 32px;
+ margin-bottom: 16px;
+}
+
.problem_form {
margin-left: 32px;
margin-right: 32px;
margin-bottom: 16px;
}
+hr.main_navlink {
+ display: inline-block;
+ width: 480px;
+}
+
img.expand_section {
width: 14pt;
height: 14pt;
<a class="main_navlink" href="/start?problem_category=ACIDOBAZIC">pH jednosytné kyseliny/báze</a><br />
<a class="main_navlink" href="/start?problem_category=SOLUBILITY">Srážecí rovnováhy</a><br />
<a class="main_navlink" href="/start?problem_category=TITRATION_CURVE">Titrační křivka</a><br />
-
+ <hr class="main_navlink" />
+ <a class="main_navlink" href="/static/faq.html">FAQ</a><br />
--- /dev/null
+ <div class="backgrounded_block">
+ <div class="caption_v1">
+ Jak to funguje?
+ </div>
+ <div class="normal_text">
+ Generátor funguje „abstraktně”, vymyslí si smysluplné hodnoty a konstanty, ze kterých pak sestaví zadání příkladu. Žádná baterie příkladů s reálnými látkami zatím neexistuje.
+ </div>
+
+ <div class="caption_v1">
+ Jak se to používá?
+ </div>
+ <div class="normal_text">
+ Výsledek (výsledky) Vašeho výpočtu zapiště to příšlušného pole a kliknětě na „Zkontrolovat„. Výsledky, které by měly hodně desetinných míst nebo nul, lze je zapsat „chytrá kalkulačka-style” třeba takto: <pre>1,234e-5</pre>
+ Pokud do výsledkového pole napíšete něco, co nelze rozumně interpretovat jako číslo, generátor označí odpověď jako nesprávně zadanou.
+ <br />
+ Další příklad Vám generátor vymyslí po kliknutí na tlačítko „Další příklad”. Tam, kde to má smysl můžete zároveň změnit i parametry příkladu.
+ </div>
+
+ <div class="caption_v1">
+ Můj výsledek je správný, ale generátor tvrdí něco jiného.
+ </div>
+ <div class="normal_text">
+ To je dost dobře možné. Pokud je rozdíl mezi Vaším a vypočteným výsledkem malý, nejspíš za to může zaokrouhlovací nepřesnost. Pokud jde o větší rozdíl, klidně může být v generátoru nějaká chyba, v čemže případě mi to <a class="default_link" href="mailto:webmaster-nineq@devoid-pointer.net">řekněte</a>.
+ </div>
+ </div>
\ No newline at end of file
package body Face_Generator_Static is
+ function Display_Static_Page(Path: in String) return HTML_Code is
+ use AWS.Templates;
+
+ Translations: Translate_Set;
+ HTML: HTML_Code;
+ Temp: HTML_Code;
+ begin
+ Insert(Translations, Assoc("HEADER_CAPTION", "..."));
+ HTML := Parse(Filename => "templates/header.html", Translations => Translations);
+
+ Temp := Parse(Filename => Path, Cached => True);
+ Append_HTML(Source => HTML, New_Item => Temp);
+
+ Temp := Parse(Filename => "templates/footer.html");
+ Append_HTML(Source => HTML, New_Item => Temp);
+
+ return HTML;
+ end Display_Static_Page;
+
function Error_Display_Answer return HTML_Code is
use AWS.Templates;
begin
use Global_Types;
package Face_Generator_Static is
+ function Display_Static_Page(Path: in String) return HTML_Code;
function Error_Display_Answer return HTML_Code;
function Error_Display_Assignment return HTML_Code;
function Error_UID_Registration return HTML_Code;
--- /dev/null
+with Ada.Strings.Fixed;
+with AWS.Messages;
+with AWS.MIME;
+with AWS.Response;
+with AWS.Status;
+with Ada.Text_IO;
+with Face_Generator_Static;
+with Global_Types;
+
+use Global_Types;
+package body Handler_Static is
+
+ function File_Exists(Path: in String) return Boolean is
+ File: Ada.Text_IO.File_Type;
+ begin
+ begin
+ Ada.Text_IO.Open(File => File, Mode => Ada.Text_IO.In_File, Name => Path);
+ Ada.Text_IO.Close(File);
+ return True;
+ exception
+ when Ada.Text_IO.Name_Error =>
+ return False;
+ end;
+ end File_Exists;
+
+ function Handle(Request: AWS.Status.Data) return AWS.Response.Data is
+ use Ada.Strings.Fixed;
+
+ URI: constant String := AWS.Status.URI(Request);
+ Idx: Positive;
+ begin
+ Idx := Index(Source => URI, Pattern => "/", From => URI'Last, Going => Ada.Strings.Backward);
+ declare
+ File_Path: constant String := "templates/static/" & URI(Idx + 1 .. URI'Last);
+ begin
+ if File_Exists(File_Path) = False then
+ return AWS.Response.URL(Location => "/");
+ else
+ return AWS.Response.Build(Content_Type => AWS.MIME.Text_HTML,
+ Message_Body => HTML_To_Fixed_String(Face_Generator_Static.Display_Static_Page(File_Path)),
+ Status_Code => AWS.Messages.S200);
+ end if;
+ end;
+ end Handle;
+
+ function Callback return AWS.Dispatchers.Callback.Handler is
+ begin
+ return AWS.Dispatchers.Callback.Create(Handle'Access);
+ end Callback;
+
+end Handler_Static;
--- /dev/null
+with AWS.Dispatchers.Callback;
+
+package Handler_Static is
+ function Callback return AWS.Dispatchers.Callback.Handler;
+end Handler_Static;
with Handler_Next_Problem;
with Handler_Resources;
with Handler_Start;
+with Handler_Static;
with Handler_Styles;
package body Handlers is
Action => Handler_Next_Problem.Callback);
Handler.Register(URI => "/start",
Action => Handler_Start.Callback);
+ Handler.Register(URI => "/static",
+ Action => Handler_Static.Callback,
+ Prefix => True);
Handler.Register(URI => "/main_stylesheet",
Action => Handler_Styles.Main_Callback);
Handler.Register(URI => "/resources",