Skip to content

Commit

Permalink
Merge pull request #415 from CCALI/397-lhi-contract
Browse files Browse the repository at this point in the history
397 lhi contract
  • Loading branch information
tobiasnteireho authored Dec 11, 2024
2 parents 9a50089 + eff6d1f commit fe18108
Show file tree
Hide file tree
Showing 39 changed files with 1,244 additions and 512 deletions.
6 changes: 4 additions & 2 deletions CAJA_WS.php
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@
$sql="insert into guides (title,editoruid) values ('".$mysqli->real_escape_string($title)."', ".$userid.")";
// If this fails on blank interview, likely `archive` Field in guides db needs to be ticked to allow default value of null
// Also make sure `archive` Field in guides db is set to 0 for default value
if ($res=$mysqli->query($sql)) {
if ($res=$mysqli->query($sql)) {
// Save as content to new folder owned by editor
$newgid=$mysqli->insert_id;
$userdir=$_SESSION['userdir'];
Expand All @@ -584,7 +584,9 @@
$newfile = $newdir.'/Guide.xml';
// ex: some/sever/path/userfiles/dev/guides/Guide924
$assetsdir = GUIDES_DIR.$newdir;
mkdir($assetsdir);

error_log("changing permissions fix for mac" . $assetsdir);
mkdir($assetsdir, 0775, true);
$filename=GUIDES_DIR.$newfile;
// create default Guide.xml and Guide.json
file_put_contents($filename,$xml);
Expand Down
72 changes: 72 additions & 0 deletions bad-answer-alert.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header("Access-Control-Allow-Headers: X-Requested-With");


$entityBody = file_get_contents('php://input');
$body_data = json_decode(file_get_contents('php://input'), true);

$path = dirname(__FILE__, 2);
$config = parse_ini_file($path . '/config_env.ini');
$service_email = $config['SERVICE_EMAIL'];


$keys = ["interviewtitle", "viewerversion",
"type", "authoremail"];
$user_agent = $_SERVER['HTTP_USER_AGENT'];

function checkRequest($keys, $user_agent){

foreach ($keys as $key){
if ((empty($_REQUEST[$key])) ||
(strlen($_REQUEST[$key]) === 0) ){
return false;
}
}
return true;
}

if (checkRequest($keys, $user_agent)){
error_log('bad viewer variable alert: '. $user_agent,0);
die();
}

$interviewtitle= ($body_data["guideTitle"]);
$viewerversion= ($body_data["viewerversion"]);
$variables = json_encode($body_data["invalidAnswers"]);
$authorid = ($body_data["authorid"]);
$url = $body_data["url"];
$uri = $body_data["uri"];
$created=$now=date("Y-m-d-H-i-s");


$message="
An A2J user has submitted an answerset with invalid dates or numbers:
<ul>
<li>Bad vars: " . $variables . "</li>
<li>Author ID: " . $authorid . "</li>
<li>Interview Title: " . htmlentities(stripslashes($interviewtitle)) . "</li>
<li>Interview URL: " . htmlentities(stripslashes($url)). "</li>
<li>Interview URI: " . htmlentities(stripslashes($uri)). "</li>
<li>Viewer Version: " . $viewerversion . "</li>
<li>User Agent: " . $user_agent . "</li>
</ul>
";


$to = $service_email;

/* subject */
$subject = "Bad Answer Values";

/* To send HTML mail, you can set the Content-type header. */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* additional headers */
$headers .= "From: A2J Viewer answerset parser <support@a2jauthor.org>\r\n";

/* and now mail it */
mail($to, $subject, $message, $headers);
2 changes: 1 addition & 1 deletion index.dev.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@
window.less = {async: true, fileSync: true};
</script>

<script src=node_modules/steal/steal.production.js?v=1696363232026" cache-key="v" cache-version="1696363232026" main="a2jauthor/app"></script>
<script src=node_modules/steal/steal.production.js?v=1732047794755" cache-key="v" cache-version="1732047794755" main="a2jauthor/app"></script>
</body>
</html>
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@
window.less = {async: true, fileSync: true};
</script>

<script src=node_modules/steal/steal.production.js?v=1697490197354" cache-key="v" cache-version="1697490197354" main="a2jauthor/app"></script>
<script src=node_modules/steal/steal.production.js?v=1733873012596" cache-key="v" cache-version="1733873012596" main="a2jauthor/app"></script>
</body>
</html>
19 changes: 19 additions & 0 deletions legacy/A2J_Pages.js
Original file line number Diff line number Diff line change
Expand Up @@ -459,6 +459,23 @@ var handleNullButtonTargets = function (buttons) {
return buttons
}

// this clears vars and problem messages before save in QDE
function checkPageHealth (page) {
var fields = page && page.fields
for (var field of fields) {
// no var assigned, clear any problem message
if (field.name === '') {
field.problem = ''
return
}
// bad var assigned, clear var name and problem message
if (field && field.problem && field.problem.length !== 0) {
field.name = ''
field.problem = ''
}
}
}

// Bring page edit window forward with page content
function gotoPageEdit (pageName) {
$pageEditDialog = window.$('.page-edit-form')
Expand Down Expand Up @@ -487,6 +504,8 @@ function gotoPageEdit (pageName) {
close: function () {
// cleanup QDE resize eventListener
window.removeEventListener('resize', debouncedSetQDEmaxHeight)
// check for mismatched field/variable types and clear assignments if `health problem`
checkPageHealth(page)
// callback from open below
this.removeOverlay()
// Update view and save any time edit dialog closes
Expand Down
79 changes: 79 additions & 0 deletions legacy/viewer/A2J_Languages.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Currently supported languages:
Chinese-Simplified
Korean
French
Hebrew
Polish
Russian
Dutch
Expand Down Expand Up @@ -229,6 +230,9 @@ Languages.regional.en = {
Ordinals_12: 'twelfth',
Ordinals_13: '13th',
RepeatAnd: 'and',
Show_Navigation:'Show Navigation',
Navigation_Panel:'Navigation Panel',
Open:'Open',

// Authoring system, non-translated elements.
// Tab names
Expand Down Expand Up @@ -1365,6 +1369,81 @@ Languages.regional.th = {
RepeatAnd: 'และ'
}

Languages.regional.he = {
locale: 'he',
Language: 'עברית',
LanguageEN: 'Hebrew',
AskYesNo_Yes: 'כן',
AskYesNo_No: 'לא',
Close: 'סגור',
Comment: 'הערה',
GoBack: 'חזרה',
GoNext: 'הבא',
LearnMore: 'קריאה נוספת',
MyProgress: 'ההתקדמות שלי',
ProvideFeedbackOrComment: 'משוב על עמוד זה',
SaveAndExit: 'שמור וצא',
ResumeExit: 'התחלה מחדש',
SendFeedback: 'שלח משוב',
SoundIsOff: 'צליל מושתק',
SoundIsOn: 'צליל פועל',
SoundPlay: 'הפעל',
SoundStop: 'עצור',
WhatDoYouMean: 'מה הכוונה?',
Continue: 'המשך',
Exit: 'יציאה ללא שמירה',
Male: 'זכר',
Female: 'נקבה',
ChooseListNumber: 'בחירה: ',
ChooseListText: 'בחר מרשימה זו: ',
CheckBoxNOTALabel: 'אף אחד מהתשובות',
ZoomNormal: 'גודל רגיל',
ZoomFull: 'מסך מלא',
TextEnlarge: 'הגדל תיבת טקסט',
TextShrink: 'הקטן תיבת טקסט',
TextSizeLetter: 'א',
UploadAnswers: 'יוצא, נא להמתין...',
CalcClear: 'נקה',
CalcEnter: 'הכנס',
MonthNamesShort: "ינו', פבר', מרץ, אפר', מאי, יוני, יולי, אוג', ספט', אוק', נוב', דצמ'",
MonthNamesLong: "ינואר, פברואר, מרץ, אפריל, מאי, יוני, יולי, ספטמבר, אוקטובר, נובמבר, דצמבר",
FieldPrompts_ResponseRequired: "חובה למלא תשובה בקווים הריקים ליד התיוג האדום לפני שממשיכים.",
FieldPrompts_SelectionRequired: 'חובה לבצע בחירה לפני שממשיכים.',
FieldPrompts_text: 'חובה להקליד תשובה במקומות הממורקרים לפני שממשיכים.',
FieldPrompts_textlong: 'חובה להקליד תשובה במקומות הממורקרים לפני שממשיכים.',
FieldPrompts_textpick: 'חובה לבחור מתוך המקום הממורקר לפני שממשיכים.',
FieldPrompts_number: 'חובה הלקליד מספר במקום הממורקר לפני שממשיכים.',
FieldPrompts_numberdollar: 'חובה להכניס סימן דולר במקום הממורקר לפני שממשיכים.',
FieldPrompts_numberssn: "חובה להכניס מס' תעודת זהות במקום הממורקר לפני שממשיכים.",
FieldPrompts_numberphone: "חובה להקליד מס' טלפון במקום הממורקר לפני שממשיכים.",
FieldPrompts_numberzip: 'חובה להקליד מיקוד במקום הממורקר לפני שממשיכים.',
FieldPrompts_numberpick: 'חובה לבחור מספר מתוך המקום הממורקר לפני שממשיכים.',
FieldPrompts_datemdy: 'חובה להקליד חודש, יום ושנה במקום הממורקר לפני שממשיכים.',
FieldPrompts_gender: 'בחרו אוואטר שייצג אותך.',
FieldPrompts_radio: 'חובה לבחור תגובה מתוך הבחירה הממורקרת לפני שממשיכים.',
FieldPrompts_checkbox: 'חובה לבחור אפשרות אחת או כמה לפני שממשיכים.',
FieldPrompts_checkboxNOTA: 'בחרו בבקשה אפשרות אחת או יותר או "אף אחת מהתשובות" לפני שממשיכים.',
Ordinals_1: 'ראשון',
Ordinals_2: 'שני',
Ordinals_3: 'שלישי',
Ordinals_4: 'רביעי',
Ordinals_5: 'חמישי',
Ordinals_6: 'שישי',
Ordinals_7: 'שביעי',
Ordinals_8: 'שמיני',
Ordinals_9: 'תשיעי',
Ordinals_10: 'עשירי',
Ordinals_11: 'אחד עשר',
Ordinals_12: 'שנים עשר',
Ordinals_13: 'שלושה עשר',
RepeatAnd: 'וגם',
Required: 'חובה',
Show_Navigation:'הראה ניווט',
Navigation_Panel:'לוח ניווט',
Open:'לִפְתוֹחַ',

}

if ($.datepicker) {
jQuery(function ($) {
/* Save the English in case author switches back */
Expand Down
Loading

0 comments on commit fe18108

Please sign in to comment.