Skip to content

Commit 8805b5a

Browse files
author
DoxasticFox
committed
blah
1 parent 07510aa commit 8805b5a

File tree

4 files changed

+216
-60
lines changed

4 files changed

+216
-60
lines changed

logic/custom-search.bsh

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
/****************************** SEARCH EXTENSION ******************************/
2+
/* Implements an extension to the search page which allows users to */
3+
/* constrain their searches by user. */
4+
/* */
5+
/* TODO: This code was copied from the harvard module and modified just */
6+
/* enough to make it work. The variable and function names could be better. */
7+
/******************************************************************************/
8+
delOnEvent("Control/Search", "show", "search()");
9+
addOnEvent("Control/Search", "show", "populateSelectUser()");
10+
addOnEvent("module", "load", "populateSite()");
11+
12+
addOnEvent("Control/Search/Select_User", "click", "search()");
13+
addOnEvent("Control/Search/Select_AreaCode", "click", "search()");
14+
15+
void populateSelectUser(){
16+
String refSearchUsers = "Control/Search/Select_User";
17+
String getNonDeletedUsersQuery = "SELECT userid, fname || ' ' || lname "+
18+
" FROM user "+
19+
" WHERE userdeleted is null "+
20+
" UNION " +
21+
"SELECT -1, '{All}'";
22+
23+
fetchAll(getNonDeletedUsersQuery, new FetchCallback() {
24+
onFetch(result) {
25+
populateDropDown(refSearchUsers, result, false);
26+
search();
27+
}
28+
});
29+
}
30+
31+
void populateSite() {
32+
List all = new ArrayList();
33+
all.add("");
34+
all.add("{All}");
35+
36+
List menuEntries = new ArrayList(getMenuEntries("AreaCode"));
37+
menuEntries.add(0, all);
38+
39+
populateDropDown("Control/Search/Select_AreaCode", menuEntries, false);
40+
}
41+
42+
// Overrides auto-generated definition
43+
void search(){
44+
String tabgroup = "Control";
45+
String refEntityList = tabgroup + "/Search/Entity_List";
46+
String refSearchTerm = tabgroup + "/Search/Search_Term";
47+
String refEntityTypes = tabgroup + "/Search/Entity_Types";
48+
String refSelectUser = tabgroup + "/Search/Select_User";
49+
String refSelectSite = tabgroup + "/Search/Select_AreaCode";
50+
51+
String type = getFieldValue(refEntityTypes);
52+
String term = getFieldValue(refSearchTerm);
53+
String user = getFieldValue(refSelectUser);
54+
String area = getFieldValue(refSelectSite);
55+
if (isNull(user)) return;
56+
String searchQuery = "SELECT uuid, response " +
57+
" FROM latestNonDeletedArchEntFormattedIdentifiers " +
58+
" WHERE uuid in (SELECT uuid " +
59+
" FROM latestNonDeletedArchEntIdentifiers " +
60+
" WHERE measure LIKE '{term}%' " +
61+
" AND ( aenttypename LIKE '{type}' OR '' = '{type}' ) " +
62+
" AND ( userid = {user} OR -1 = {user}) " +
63+
" ) " +
64+
" AND ( " +
65+
" ('{area}' = '') OR" +
66+
" uuid IN (" +
67+
" SELECT uuid" +
68+
" FROM latestnondeletedaentvalue" +
69+
" JOIN attributekey USING (attributeid)" +
70+
" WHERE attributename = 'AreaCode'" +
71+
" AND vocabid = '{area}'" +
72+
" )" +
73+
" )" +
74+
" ORDER BY response " +
75+
" LIMIT ? " +
76+
"OFFSET ? ";
77+
searchQuery = replaceFirst(searchQuery, "{term}", term);
78+
searchQuery = replaceFirst(searchQuery, "{type}", type);
79+
searchQuery = replaceFirst(searchQuery, "{type}", type);
80+
searchQuery = replaceFirst(searchQuery, "{user}", user);
81+
searchQuery = replaceFirst(searchQuery, "{user}", user);
82+
searchQuery = replaceFirst(searchQuery, "{area}", area);
83+
searchQuery = replaceFirst(searchQuery, "{area}", area);
84+
85+
populateCursorList(refEntityList, searchQuery, 25);
86+
refreshTabgroupCSS(tabgroup);
87+
88+
Log.d("Module", "Search query: " + searchQuery);
89+
}

logic/dynamic-ui-context.bsh

+42-55
Original file line numberDiff line numberDiff line change
@@ -9,66 +9,53 @@
99
/* by overwriting the auto-generated record loading function using @POSTPROC. */
1010
/******************************************************************************/
1111
addOnEvent("Context", "show", "openContextTabs()");
12+
addOnEvent("Context", "fetch", "openContextTabs(true)");
1213
addOnEvent("Context/General/Fill_in_Context_Type_Details", "click", "openContextTabs()");
1314

14-
openContextTabs() {
15+
void openContextTabs() {
1516
openContextTabs(false);
1617
}
1718

18-
openContextTabs(Boolean showGeneralInformationTab){
19-
fetchOne("SELECT vocabName FROM vocabulary WHERE vocabid = '"+getFieldValue("Context/General/Context_Type")+"';",
20-
new FetchCallback() {
21-
onFetch(name) {
22-
if (!isNull(name)){
23-
String vocab = name.get(0);
24-
if ((vocab.equals("{Deposit}"))){
25-
cancelTab("Context/Cut", false);
26-
cancelTab("Context/Structure", false);
27-
cancelTab("Context/Skeleton", false);
28-
showTab("Context/Deposit");
29-
} else if (vocab.equals("{Negative_Element}")){
30-
cancelTab("Context/Deposit", false);
31-
cancelTab("Context/Structure", false);
32-
cancelTab("Context/Skeleton", false);
33-
showTab("Context/Cut");
34-
} else if (vocab.equals("{Structure}")){
35-
cancelTab("Context/Deposit", false);
36-
cancelTab("Context/Cut", false);
37-
cancelTab("Context/Skeleton", false);
38-
showTab("Context/Structure");
39-
} else if (vocab.equals("{Skeleton}")){
40-
cancelTab("Context/Deposit", false);
41-
cancelTab("Context/Cut", false);
42-
cancelTab("Context/Structure", false);
43-
showTab("Context/Skeleton");
44-
} else {
45-
cancelTab("Context/Cut", false);
46-
cancelTab("Context/Deposit", false);
47-
cancelTab("Context/Structure", false);
48-
cancelTab("Context/Skeleton", false);
49-
}
50-
} else {
51-
cancelTab("Context/Cut", false);
52-
cancelTab("Context/Deposit", false);
53-
cancelTab("Context/Structure", false);
54-
cancelTab("Context/Skeleton", false);
55-
}
56-
if(showGeneralInformationTab) {
57-
showTab("Context/General");
58-
}
59-
}
60-
});
61-
}
19+
void openContextTabs(Boolean showGeneralInformationTab){
20+
String refCut = "Context/Cut";
21+
String refDep = "Context/Deposit";
22+
String refSke = "Context/Skeleton";
23+
String refStr = "Context/Structure";
24+
String refGen = "Context/General";
25+
26+
String refCtxtType = "Context/General/Context_Type";
27+
String vocabName = getMenuValue(refCtxtType);
28+
29+
if (vocabName == null)
30+
vocabName = "";
6231

63-
loadContextFrom(String uuid) {
64-
String tabgroup = "Context";
65-
setUuid(tabgroup, uuid);
66-
if (isNull(uuid)) return;
32+
if (vocabName.equals("{Deposit}")){
33+
cancelTab(refCut, false);
34+
cancelTab(refStr, false);
35+
cancelTab(refSke, false);
36+
showTab (refDep);
37+
} else if (vocabName.equals("{Negative_Element}")){
38+
cancelTab(refDep, false);
39+
cancelTab(refStr, false);
40+
cancelTab(refSke, false);
41+
showTab (refCut);
42+
} else if (vocabName.equals("{Structure}")){
43+
cancelTab(refDep, false);
44+
cancelTab(refCut, false);
45+
cancelTab(refSke, false);
46+
showTab (refStr);
47+
} else if (vocabName.equals("{Skeleton}")){
48+
cancelTab(refDep, false);
49+
cancelTab(refCut, false);
50+
cancelTab(refStr, false);
51+
showTab (refSke);
52+
} else {
53+
cancelTab(refCut, false);
54+
cancelTab(refDep, false);
55+
cancelTab(refStr, false);
56+
cancelTab(refSke, false);
57+
}
6758

68-
FetchCallback cb = new FetchCallback() {
69-
onFetch(result) {
70-
openContextTabs(true);
71-
}
72-
};
73-
showTabGroup(tabgroup, uuid, cb);
59+
if(showGeneralInformationTab)
60+
showTab(refGen);
7461
}

logic/soil-texture-helper.bsh

-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
/******************************* TEXTURE HELPER *******************************/
22
onEvent("Context/Soil_Texture_Helper/Update_Soil_Texture", "click", "setTextureActual()");
33

4-
// Overrides the original function definition using @POSTPROC.
5-
onClickContextDepositSoilTextureHelper () {
6-
showTab("Context/Soil_Texture_Helper");
7-
}
8-
94
setTextureActual(){
105
String soilQuery= "SELECT vocabid " +
116
" FROM vocabulary JOIN attributekey USING (attributeid) "+

proc/post.sh

+85
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,89 @@ replacement="
3232
$string"
3333
perl -0777 -i.original -pe "s/\\Q$string/$replacement/igs" ui_logic.bsh
3434

35+
# SEARCH
36+
37+
38+
39+
40+
41+
42+
43+
string="
44+
<select1 ref=\"Entity_Types\">
45+
<label>{Entity_Types}<\/label>
46+
<item>
47+
<label>Options not loaded<\/label>
48+
<value>Options not loaded<\/value>
49+
<\/item>
50+
<\/select1>"
51+
replacement="
52+
<group ref=\"Colgroup_1\" faims_style=\"orientation\">
53+
<label\/>
54+
<group ref=\"Col_0\" faims_style=\"even\">
55+
<label\/>
56+
<select1 ref=\"Entity_Types\">
57+
<label>{Entity_Types}<\/label>
58+
<item>
59+
<label>Options not loaded<\/label>
60+
<value>Options not loaded<\/value>
61+
<\/item>
62+
<\/select1>
63+
<\/group>
64+
<group ref=\"Col_1\" faims_style=\"even\">
65+
<label\/>
66+
<select1 ref=\"Select_User\">
67+
<label>{Select_User}<\/label>
68+
<item>
69+
<label>Options not loaded<\/label>
70+
<value>Options not loaded<\/value>
71+
<\/item>
72+
<\/select1>
73+
<\/group>
74+
<group ref=\"Col_2\" faims_style=\"even\">
75+
<label\/>
76+
<select1 ref=\"Select_AreaCode\">
77+
<label>{Select_AreaCode}<\/label>
78+
<item>
79+
<label>Options not loaded<\/label>
80+
<value>Options not loaded<\/value>
81+
<\/item>
82+
<\/select1>
83+
<\/group>
84+
<\/group>"
85+
perl -0777 -i.original -pe "s/$string/$replacement/igs" ui_schema.xml
86+
87+
string="
88+
<Entity_Types\/>"
89+
replacement="
90+
<Colgroup_1>
91+
<Col_0>
92+
<Entity_Types\/>
93+
<\/Col_0>
94+
<Col_1>
95+
<Select_User\/>
96+
<\/Col_1>
97+
<Col_2>
98+
<Select_AreaCode\/>
99+
<\/Col_2>
100+
<\/Colgroup_1>
101+
<Select_User\/>"
102+
perl -0777 -i.original -pe "s/$string/$replacement/igs" ui_schema.xml
103+
104+
cat << EOF >> english.0.properties
105+
Select_User=Select User
106+
Select_AreaCode=Select Trench
107+
EOF
108+
109+
rm ui_schema.xml.original
110+
111+
112+
113+
114+
115+
116+
117+
118+
119+
35120
rm ui_logic.bsh.original

0 commit comments

Comments
 (0)