This commit is contained in:
@@ -78,7 +78,8 @@ todo: Administration - Attached files manager
|
|||||||
way to implement is to include the two column names of the values to use as the tid column at server end
|
way to implement is to include the two column names of the values to use as the tid column at server end
|
||||||
like the db table names but instead they are column names
|
like the db table names but instead they are column names
|
||||||
|
|
||||||
|
todo: pass function to grid to generate virtual column from client side?
|
||||||
|
But then sort and filter and ....blah blah blah
|
||||||
|
|
||||||
|
|
||||||
todo: BUG widget form now always dirty for some fucking reason, fuck this shit, fuck.
|
todo: BUG widget form now always dirty for some fucking reason, fuck this shit, fuck.
|
||||||
|
|||||||
@@ -228,5 +228,34 @@ export default {
|
|||||||
return new Intl.NumberFormat(languageName, {
|
return new Intl.NumberFormat(languageName, {
|
||||||
minimumFractionDigits: 2
|
minimumFractionDigits: 2
|
||||||
}).format(value);
|
}).format(value);
|
||||||
|
},
|
||||||
|
///////////////////////////////////////////
|
||||||
|
// Turn a file / memory size number into a local
|
||||||
|
// decimal format display and in reasonable human readable range
|
||||||
|
//
|
||||||
|
humanFileSize(bytes, languageName, si = false, dp = 1) {
|
||||||
|
const thresh = si ? 1000 : 1024;
|
||||||
|
|
||||||
|
if (Math.abs(bytes) < thresh) {
|
||||||
|
return bytes + " B";
|
||||||
|
}
|
||||||
|
|
||||||
|
const units = si
|
||||||
|
? ["kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]
|
||||||
|
: ["KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"];
|
||||||
|
let u = -1;
|
||||||
|
const r = 10 ** dp;
|
||||||
|
|
||||||
|
do {
|
||||||
|
bytes /= thresh;
|
||||||
|
++u;
|
||||||
|
} while (
|
||||||
|
Math.round(Math.abs(bytes) * r) / r >= thresh &&
|
||||||
|
u < units.length - 1
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
this.decimalLocalized(bytes.toFixed(dp), languageName) + " " + units[u]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -34,6 +34,29 @@ export default {
|
|||||||
params: { recordid: tid.id }
|
params: { recordid: tid.id }
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
case ayatype.FileAttachment:
|
||||||
|
//lookup the actual type
|
||||||
|
//then call this method again to do the actual open
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
try {
|
||||||
|
let res = await window.$gz.api.get("attachment/parent/" + tid.id);
|
||||||
|
console.log("res is", res);
|
||||||
|
if (res.error) {
|
||||||
|
throw res.error;
|
||||||
|
}
|
||||||
|
if (res.data.id && res.data.id != 0) {
|
||||||
|
this.handleOpenObjectClick(vm, res.data);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
//error here? or do nothing, doing nothing for now, should only apply if it's an orphan record and that is kind of obvious
|
||||||
|
//or error "Can't open nothing"
|
||||||
|
break;
|
||||||
case ayatype.Translation:
|
case ayatype.Translation:
|
||||||
vm.$router.push({
|
vm.$router.push({
|
||||||
name: "adm-translation",
|
name: "adm-translation",
|
||||||
|
|||||||
@@ -276,7 +276,8 @@ export default {
|
|||||||
Enum = 10,
|
Enum = 10,
|
||||||
EmailAddress = 11,
|
EmailAddress = 11,
|
||||||
HTTP = 12,
|
HTTP = 12,
|
||||||
InternalId = 13
|
InternalId = 13,
|
||||||
|
MemorySize=14
|
||||||
*/
|
*/
|
||||||
switch (ctrlType) {
|
switch (ctrlType) {
|
||||||
//DateLike?
|
//DateLike?
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<template v-else-if="c.t == 4">
|
<template v-else-if="c.t == 4">
|
||||||
<!-- TEXT (also maybe openable)-->
|
<!-- TEXT (also maybe openable)-->
|
||||||
<template v-if="c.i">
|
<template v-if="c.i && c.i != 0">
|
||||||
<!-- openable object with an ID -->
|
<!-- openable object with an ID -->
|
||||||
<div
|
<div
|
||||||
class="subtitle-1"
|
class="subtitle-1"
|
||||||
@@ -138,6 +138,10 @@
|
|||||||
<!-- Expects full url with protocol etc in c.v so might need to add to record builder -->
|
<!-- Expects full url with protocol etc in c.v so might need to add to record builder -->
|
||||||
<a :href="c.v" target="_blank">{{ c.v }}</a>
|
<a :href="c.v" target="_blank">{{ c.v }}</a>
|
||||||
</template>
|
</template>
|
||||||
|
<template v-else-if="c.t == 14">
|
||||||
|
<!-- File / memory Size -->
|
||||||
|
{{ c.v }}
|
||||||
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<!-- UNKNOWN -->
|
<!-- UNKNOWN -->
|
||||||
{{ c.v }}
|
{{ c.v }}
|
||||||
@@ -232,7 +236,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<template v-else-if="c.t == 4">
|
<template v-else-if="c.t == 4">
|
||||||
<!-- TEXT (also maybe openable)-->
|
<!-- TEXT (also maybe openable)-->
|
||||||
<template v-if="c.i">
|
<template v-if="c.i && c.i != 0">
|
||||||
<!-- openable object with an ID -->
|
<!-- openable object with an ID -->
|
||||||
<div
|
<div
|
||||||
class="subtitle-1"
|
class="subtitle-1"
|
||||||
@@ -292,6 +296,10 @@
|
|||||||
<!-- Expects full url with protocol etc in c.v so might need to add to record builder -->
|
<!-- Expects full url with protocol etc in c.v so might need to add to record builder -->
|
||||||
<a :href="c.v" target="_blank">{{ c.v }}</a>
|
<a :href="c.v" target="_blank">{{ c.v }}</a>
|
||||||
</template>
|
</template>
|
||||||
|
<template v-else-if="c.t == 14">
|
||||||
|
<!-- File / memory Size -->
|
||||||
|
{{ c.v }}
|
||||||
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<!-- UNKNOWN -->
|
<!-- UNKNOWN -->
|
||||||
{{ c.v }}
|
{{ c.v }}
|
||||||
@@ -629,7 +637,8 @@ function buildRecords(listData, columndefinitions) {
|
|||||||
Enum = 10,
|
Enum = 10,
|
||||||
EmailAddress = 11,
|
EmailAddress = 11,
|
||||||
HTTP = 12,
|
HTTP = 12,
|
||||||
InternalId = 13
|
InternalId = 13,
|
||||||
|
MemorySize=14
|
||||||
|
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
@@ -681,6 +690,14 @@ function buildRecords(listData, columndefinitions) {
|
|||||||
display
|
display
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
case 14: //MemorySize (file size)
|
||||||
|
display = window.$gz.locale.humanFileSize(
|
||||||
|
display,
|
||||||
|
languageName,
|
||||||
|
false,
|
||||||
|
2
|
||||||
|
);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
//do nothing, allow it to stay as is (checkbox, plain text etc)
|
//do nothing, allow it to stay as is (checkbox, plain text etc)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ export default {
|
|||||||
|
|
||||||
/////////////////////////////
|
/////////////////////////////
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
function clickHandler(menuItem) {
|
function clickHandler(menuItem) {
|
||||||
if (!menuItem) {
|
if (!menuItem) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -131,8 +131,6 @@ function generateMenu(vm) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// //STUB REPORTS
|
// //STUB REPORTS
|
||||||
// //Report not Print, print is a further option
|
// //Report not Print, print is a further option
|
||||||
// menuOptions.menuItems.push({
|
// menuOptions.menuItems.push({
|
||||||
|
|||||||
@@ -175,7 +175,13 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- INTEGER BUILDER -->
|
<!-- INTEGER BUILDER -->
|
||||||
<div v-if="item.uiFieldDataType === 5">
|
<!-- Also MemorySize type 14 are integers -->
|
||||||
|
<div
|
||||||
|
v-if="
|
||||||
|
item.uiFieldDataType === 5 ||
|
||||||
|
item.uiFieldDataType === 14
|
||||||
|
"
|
||||||
|
>
|
||||||
<v-select
|
<v-select
|
||||||
v-model="item.tempFilterOperator"
|
v-model="item.tempFilterOperator"
|
||||||
:items="selectLists.integerFilterOperators"
|
:items="selectLists.integerFilterOperators"
|
||||||
|
|||||||
Reference in New Issue
Block a user