Skip to content

Commit

Permalink
fix: filter: assign: params (#1108)
Browse files Browse the repository at this point in the history
  • Loading branch information
ssiyad committed Apr 11, 2023
1 parent 1736fbe commit 7276edb
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 34 deletions.
58 changes: 25 additions & 33 deletions desk/src/composables/listFilters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,67 +43,59 @@ export function useListFilters() {
function toQuery(filters: Array<FilterItem>) {
return filters
.map((f) => {
const value = transformValue(f);
return `${f.fieldname}:${f.filter_type}:${value}`;
return `${f.fieldname}:${f.filter_type}:${f.value}`;
})
.join("+");
}

function toFrappeFilter(f: Array<FilterItem>): FrappeFilters {
return f.reduce((p, c) => {
const operator = transformOperator(c);
const value = transformValue(c);
transformOperator(c);
transformValue(c);

p[c.fieldname] = [c.filter_type, c.value];

p[c.fieldname] = [operator, value];
return p;
}, {});
}

function queryFilters() {
const filters = fromQuery();
const frappeFilters = toFrappeFilter(filters);

return frappeFilters;
return toFrappeFilter(fromQuery());
}

function transformOperator(f: FilterItem): string {
const filterType = f.filter_type.toLowerCase();
function transformOperator(f: FilterItem) {
f.filter_type = f.filter_type.toLowerCase();

if (f.fieldname === "_assign") {
if (filterType === "is") f.filter_type = "like";
if (filterType === "is not") f.filter_type = "not like";
if (f.filter_type === "is") f.filter_type = "like";
if (f.filter_type === "is not") f.filter_type = "not like";
}

switch (filterType) {
switch (f.filter_type) {
case "is":
return "=";
f.filter_type = "=";
break;
case "is not":
return "!=";
f.filter_type = "!=";
break;
case "before":
return "<";
f.filter_type = "<";
break;
case "after":
return ">";
default:
return filterType;
f.filter_type = ">";
}

return f.filter_type;
}

function transformValue(f: FilterItem) {
f.value = f.value === "@me" ? getMe() : f.value;
const v = f.value;
if (f.value === "@me") f.value = authStore.userId;

switch (f.filter_type) {
case "like":
return `%${v}%`;
case "not like":
return `%${v}%`;
default:
return v;
}
}
f.value = ["like", "not like"].includes(f.filter_type)
? `%${f.value}%`
: f.value;

function getMe() {
return authStore.userId;
return f.value;
}

function transformLabel(f: FilterItem) {
Expand Down
2 changes: 1 addition & 1 deletion desk/src/composables/listManager.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { isEmpty } from "lodash";
import { ref, onMounted } from "vue";
import { createListResource, createResource } from "frappe-ui";
import { useListFilters } from "./listFilters";
import { isEmpty } from "lodash";

const GET_LIST_METHOD = "helpdesk.extends.client.get_list";
const GET_LIST_META_METHOD = "helpdesk.extends.client.get_list_meta";
Expand Down

0 comments on commit 7276edb

Please sign in to comment.