Merge branch 'master' of gitlab.cip.ifi.lmu.de:jost/UniWorX
This commit is contained in:
commit
06fcf4aa01
@ -445,9 +445,9 @@ postAdminFeaturesR = do
|
|||||||
]
|
]
|
||||||
dbtFilterUI mPrev = mconcat
|
dbtFilterUI mPrev = mconcat
|
||||||
-- [ prismAForm (singletonFilter "key") mPrev $ aopt intField (fslI MsgStudyTermsKey) -- Typing problem exactFilter suffices here
|
-- [ prismAForm (singletonFilter "key") mPrev $ aopt intField (fslI MsgStudyTermsKey) -- Typing problem exactFilter suffices here
|
||||||
[ prismAForm (singletonFilter "key") mPrev $ aopt (searchField False) (fslI MsgStudyTermsKey)
|
[ prismAForm (singletonFilter "key") mPrev $ aopt textField (fslI MsgStudyTermsKey)
|
||||||
, prismAForm (singletonFilter "name") mPrev $ aopt (searchField False) (fslI MsgStudyTermsName)
|
, prismAForm (singletonFilter "name") mPrev $ aopt textField (fslI MsgStudyTermsName)
|
||||||
, prismAForm (singletonFilter "incidence") mPrev $ aopt (searchField False) (fslI MsgStudyCandidateIncidence)
|
, prismAForm (singletonFilter "incidence") mPrev $ aopt textField (fslI MsgStudyCandidateIncidence)
|
||||||
]
|
]
|
||||||
dbtParams = def
|
dbtParams = def
|
||||||
psValidator = def & defaultSorting [SortAscBy "incidence", SortAscBy "key", SortAscBy "name"]
|
psValidator = def & defaultSorting [SortAscBy "incidence", SortAscBy "key", SortAscBy "name"]
|
||||||
|
|||||||
@ -517,7 +517,7 @@ postCorrectionsR = do
|
|||||||
[ prismAForm (singletonFilter "course" ) mPrev $ aopt (lift `hoistField` selectField courseOptions) (fslI MsgCourse)
|
[ prismAForm (singletonFilter "course" ) mPrev $ aopt (lift `hoistField` selectField courseOptions) (fslI MsgCourse)
|
||||||
, prismAForm (singletonFilter "term" ) mPrev $ aopt (lift `hoistField` selectField termOptions) (fslI MsgTerm)
|
, prismAForm (singletonFilter "term" ) mPrev $ aopt (lift `hoistField` selectField termOptions) (fslI MsgTerm)
|
||||||
, prismAForm (singletonFilter "school" ) mPrev $ aopt (lift `hoistField` selectField schoolOptions) (fslI MsgCourseSchool)
|
, prismAForm (singletonFilter "school" ) mPrev $ aopt (lift `hoistField` selectField schoolOptions) (fslI MsgCourseSchool)
|
||||||
, Map.singleton "sheet-search" . maybeToList <$> aopt (lift `hoistField` searchField False) (fslI MsgSheet) (Just <$> listToMaybe =<< ((Map.lookup "sheet-search" =<< mPrev) <|> (Map.lookup "sheet" =<< mPrev)))
|
, Map.singleton "sheet-search" . maybeToList <$> aopt (lift `hoistField` textField) (fslI MsgSheet) (Just <$> listToMaybe =<< ((Map.lookup "sheet-search" =<< mPrev) <|> (Map.lookup "sheet" =<< mPrev)))
|
||||||
, prismAForm (singletonFilter "israted" . maybePrism _PathPiece) mPrev $ aopt boolField (fslI MsgRatingTime)
|
, prismAForm (singletonFilter "israted" . maybePrism _PathPiece) mPrev $ aopt boolField (fslI MsgRatingTime)
|
||||||
]
|
]
|
||||||
courseOptions = runDB $ do
|
courseOptions = runDB $ do
|
||||||
|
|||||||
@ -200,7 +200,7 @@ makeCourseTable whereClause colChoices psValidator = do
|
|||||||
)
|
)
|
||||||
]
|
]
|
||||||
, dbtFilterUI = \mPrev -> mconcat $ catMaybes
|
, dbtFilterUI = \mPrev -> mconcat $ catMaybes
|
||||||
[ Just $ prismAForm (singletonFilter "search") mPrev $ aopt (searchField True) (fslI MsgCourseFilterSearch)
|
[ Just $ prismAForm (singletonFilter "search") mPrev $ aopt textField (fslI MsgCourseFilterSearch)
|
||||||
, muid $> prismAForm (singletonFilter "registered" . maybePrism _PathPiece) mPrev (aopt boolField (fslI MsgCourseFilterRegistered))
|
, muid $> prismAForm (singletonFilter "registered" . maybePrism _PathPiece) mPrev (aopt boolField (fslI MsgCourseFilterRegistered))
|
||||||
]
|
]
|
||||||
, dbtStyle = def { dbsFilterLayout = defaultDBSFilterLayout }
|
, dbtStyle = def { dbsFilterLayout = defaultDBSFilterLayout }
|
||||||
@ -1107,9 +1107,9 @@ makeCourseUserTable cid restrict colChoices psValidator = do
|
|||||||
dbtFilterUI mPrev = mconcat
|
dbtFilterUI mPrev = mconcat
|
||||||
[ fltrUserNameEmailUI mPrev
|
[ fltrUserNameEmailUI mPrev
|
||||||
, fltrUserMatriclenrUI mPrev
|
, fltrUserMatriclenrUI mPrev
|
||||||
, prismAForm (singletonFilter "degree") mPrev $ aopt (searchField False) (fslI MsgStudyFeatureDegree)
|
, prismAForm (singletonFilter "degree") mPrev $ aopt textField (fslI MsgStudyFeatureDegree)
|
||||||
, prismAForm (singletonFilter "field") mPrev $ aopt (searchField False) (fslI MsgCourseStudyFeature)
|
, prismAForm (singletonFilter "field") mPrev $ aopt textField (fslI MsgCourseStudyFeature)
|
||||||
, prismAForm (singletonFilter "tutorial") mPrev $ aopt (searchField False) (fslI MsgCourseTutorial)
|
, prismAForm (singletonFilter "tutorial") mPrev $ aopt textField (fslI MsgCourseTutorial)
|
||||||
]
|
]
|
||||||
dbtParams = DBParamsForm
|
dbtParams = DBParamsForm
|
||||||
{ dbParamsFormMethod = POST
|
{ dbParamsFormMethod = POST
|
||||||
|
|||||||
@ -131,8 +131,8 @@ getUsersR = do
|
|||||||
)
|
)
|
||||||
]
|
]
|
||||||
, dbtFilterUI = \mPrev -> mconcat
|
, dbtFilterUI = \mPrev -> mconcat
|
||||||
[ prismAForm (singletonFilter "user-search") mPrev $ aopt (searchField True) (fslI MsgName)
|
[ prismAForm (singletonFilter "user-search") mPrev $ aopt textField (fslI MsgName)
|
||||||
-- , prismAForm (singletonFilter "matriculation" ) mPrev $ aopt (searchField False) (fslI MsgMatrikelNr)
|
-- , prismAForm (singletonFilter "matriculation" ) mPrev $ aopt textField (fslI MsgMatrikelNr)
|
||||||
, prismAForm (singletonFilter "matriculation" ) mPrev $ aopt matriculationField (fslI MsgMatrikelNr)
|
, prismAForm (singletonFilter "matriculation" ) mPrev $ aopt matriculationField (fslI MsgMatrikelNr)
|
||||||
|
|
||||||
, prismAForm (singletonFilter "school" ) mPrev $ aopt (lift `hoistField` selectFieldList schoolOptions) (fslI MsgCourseSchool)
|
, prismAForm (singletonFilter "school" ) mPrev $ aopt (lift `hoistField` selectFieldList schoolOptions) (fslI MsgCourseSchool)
|
||||||
|
|||||||
@ -167,11 +167,11 @@ fltrUserNameLinkUI = fltrUserNameUI
|
|||||||
|
|
||||||
fltrUserNameUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
fltrUserNameUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
||||||
fltrUserNameUI mPrev =
|
fltrUserNameUI mPrev =
|
||||||
prismAForm (singletonFilter "user-name") mPrev $ aopt (searchField True) (fslI MsgCourseMembers)
|
prismAForm (singletonFilter "user-name") mPrev $ aopt textField (fslI MsgCourseMembers)
|
||||||
|
|
||||||
fltrUserNameEmailUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
fltrUserNameEmailUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
||||||
fltrUserNameEmailUI mPrev =
|
fltrUserNameEmailUI mPrev =
|
||||||
prismAForm (singletonFilter "user-name-email") mPrev $ aopt (searchField True) (fslI MsgCourseMembers)
|
prismAForm (singletonFilter "user-name-email") mPrev $ aopt textField (fslI MsgCourseMembers)
|
||||||
|
|
||||||
-------------------
|
-------------------
|
||||||
-- Matriclenumber
|
-- Matriclenumber
|
||||||
@ -188,7 +188,7 @@ fltrUserMatriclenr queryUser = ( "user-matriclenumber", FilterColumn $ mkContain
|
|||||||
|
|
||||||
fltrUserMatriclenrUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
fltrUserMatriclenrUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
||||||
fltrUserMatriclenrUI mPrev =
|
fltrUserMatriclenrUI mPrev =
|
||||||
prismAForm (singletonFilter "user-matriclenumber") mPrev $ aopt (searchField False) (fslI MsgMatrikelNr)
|
prismAForm (singletonFilter "user-matriclenumber") mPrev $ aopt textField (fslI MsgMatrikelNr)
|
||||||
|
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
@ -206,6 +206,6 @@ fltrUserEmail queryUser = ( "user-email", FilterColumn $ mkContainsFilter $ quer
|
|||||||
|
|
||||||
fltrUserEmailUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
fltrUserEmailUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
||||||
fltrUserEmailUI mPrev =
|
fltrUserEmailUI mPrev =
|
||||||
prismAForm (singletonFilter "user-email") mPrev $ aopt (searchField False) (fslI MsgEMail)
|
prismAForm (singletonFilter "user-email") mPrev $ aopt textField (fslI MsgEMail)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -217,7 +217,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* small list-item-padding for medium to large screens */
|
/* small list-item-padding for medium to large screens */
|
||||||
@media (min-width: 1025px) {
|
@media (min-width: 769px) {
|
||||||
|
|
||||||
.asidenav__list-item {
|
.asidenav__list-item {
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
|
|||||||
@ -23,6 +23,12 @@ $show-hide-toggle-size: 6px;
|
|||||||
border-top: 2px solid currentColor;
|
border-top: 2px solid currentColor;
|
||||||
transition: transform .2s ease;
|
transition: transform .2s ease;
|
||||||
transform: translateY(-50%) rotate(-45deg);
|
transform: translateY(-50%) rotate(-45deg);
|
||||||
|
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
left: auto;
|
||||||
|
right: 20px;
|
||||||
|
color: var(--color-font);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.show-hide__toggle--right::before {
|
.show-hide__toggle--right::before {
|
||||||
|
|||||||
@ -161,7 +161,7 @@
|
|||||||
tableFilterInputs.search.forEach(function(input) {
|
tableFilterInputs.search.forEach(function(input) {
|
||||||
var debouncedInput = debounce(function() {
|
var debouncedInput = debounce(function() {
|
||||||
if (input.value.length === 0 || input.value.length > 2) {
|
if (input.value.length === 0 || input.value.length > 2) {
|
||||||
updateFromTableFilter();
|
updateFromTableFilter(tableFilterForm);
|
||||||
}
|
}
|
||||||
}, INPUT_DEBOUNCE);
|
}, INPUT_DEBOUNCE);
|
||||||
input.addEventListener('input', debouncedInput);
|
input.addEventListener('input', debouncedInput);
|
||||||
@ -170,7 +170,7 @@
|
|||||||
tableFilterInputs.input.forEach(function(input) {
|
tableFilterInputs.input.forEach(function(input) {
|
||||||
var debouncedInput = debounce(function() {
|
var debouncedInput = debounce(function() {
|
||||||
if (input.value.length === 0 || input.value.length > 2) {
|
if (input.value.length === 0 || input.value.length > 2) {
|
||||||
updateFromTableFilter();
|
updateFromTableFilter(tableFilterForm);
|
||||||
}
|
}
|
||||||
}, INPUT_DEBOUNCE);
|
}, INPUT_DEBOUNCE);
|
||||||
input.addEventListener('input', debouncedInput);
|
input.addEventListener('input', debouncedInput);
|
||||||
@ -178,37 +178,36 @@
|
|||||||
|
|
||||||
tableFilterInputs.change.forEach(function(input) {
|
tableFilterInputs.change.forEach(function(input) {
|
||||||
input.addEventListener('change', function() {
|
input.addEventListener('change', function() {
|
||||||
updateFromTableFilter();
|
updateFromTableFilter(tableFilterForm);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
tableFilterInputs.select.forEach(function(input) {
|
tableFilterInputs.select.forEach(function(input) {
|
||||||
input.addEventListener('change', function() {
|
input.addEventListener('change', function() {
|
||||||
updateFromTableFilter();
|
updateFromTableFilter(tableFilterForm);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
tableFilterForm.addEventListener('submit', function(event) {
|
tableFilterForm.addEventListener('submit', function(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
updateFromTableFilter();
|
updateFromTableFilter(tableFilterForm);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateFromTableFilter() {
|
function updateFromTableFilter(tableFilterForm) {
|
||||||
var url = serializeTableFilterToURL();
|
var url = serializeTableFilterToURL();
|
||||||
var callback = null;
|
var callback = null;
|
||||||
|
|
||||||
var focusedSearch = tableFilterInputs.search.reduce(function(acc, input) {
|
var focusedInput = tableFilterForm.querySelector(':focus, :active');
|
||||||
return acc || (input.matches(':focus') && input);
|
// focus previously focused input
|
||||||
}, null);
|
if (focusedInput) {
|
||||||
// focus search input
|
var selectionStart = focusedInput.selectionStart;
|
||||||
if (focusedSearch) {
|
var focusId = focusedInput.id;
|
||||||
var selectionStart = focusedSearch.selectionStart;
|
|
||||||
callback = function(wrapper) {
|
callback = function(wrapper) {
|
||||||
var search = wrapper.querySelector('input[type="search"]');
|
var toBeFocused = wrapper.querySelector('#' + focusId);
|
||||||
if (search) {
|
if (toBeFocused) {
|
||||||
search.focus();
|
toBeFocused.focus();
|
||||||
search.selectionStart = selectionStart;
|
toBeFocused.selectionStart = selectionStart;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -136,7 +136,7 @@
|
|||||||
.navbar__list {
|
.navbar__list {
|
||||||
+ .navbar__list {
|
+ .navbar__list {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
padding-right: 80px;
|
padding-right: 40px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,9 +45,14 @@
|
|||||||
box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.6);
|
box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.6);
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
transition: box-shadow 0.2s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
&::after {
|
||||||
|
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.8);
|
||||||
|
}
|
||||||
|
|
||||||
.pagenav-secondary__list {
|
.pagenav-secondary__list {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
@ -58,7 +63,7 @@
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
display: none;
|
display: none;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 10px;
|
top: 50px;
|
||||||
width: 250px;
|
width: 250px;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
box-shadow: 0 0 6px 3px var(--color-grey-light);
|
box-shadow: 0 0 6px 3px var(--color-grey-light);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user