This commit is contained in:
2020-06-29 22:05:02 +00:00
parent 31f87a7eb8
commit e263275abf
8 changed files with 84 additions and 9 deletions

View File

@@ -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
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.

View File

@@ -228,5 +228,34 @@ export default {
return new Intl.NumberFormat(languageName, {
minimumFractionDigits: 2
}).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]
);
}
};

View File

@@ -34,6 +34,29 @@ export default {
params: { recordid: tid.id }
});
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:
vm.$router.push({
name: "adm-translation",

View File

@@ -276,7 +276,8 @@ export default {
Enum = 10,
EmailAddress = 11,
HTTP = 12,
InternalId = 13
InternalId = 13,
MemorySize=14
*/
switch (ctrlType) {
//DateLike?

View File

@@ -81,7 +81,7 @@
</template>
<template v-else-if="c.t == 4">
<!-- TEXT (also maybe openable)-->
<template v-if="c.i">
<template v-if="c.i && c.i != 0">
<!-- openable object with an ID -->
<div
class="subtitle-1"
@@ -138,6 +138,10 @@
<!-- 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>
</template>
<template v-else-if="c.t == 14">
<!-- File / memory Size -->
{{ c.v }}
</template>
<template v-else>
<!-- UNKNOWN -->
{{ c.v }}
@@ -232,7 +236,7 @@
</template>
<template v-else-if="c.t == 4">
<!-- TEXT (also maybe openable)-->
<template v-if="c.i">
<template v-if="c.i && c.i != 0">
<!-- openable object with an ID -->
<div
class="subtitle-1"
@@ -292,6 +296,10 @@
<!-- 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>
</template>
<template v-else-if="c.t == 14">
<!-- File / memory Size -->
{{ c.v }}
</template>
<template v-else>
<!-- UNKNOWN -->
{{ c.v }}
@@ -629,7 +637,8 @@ function buildRecords(listData, columndefinitions) {
Enum = 10,
EmailAddress = 11,
HTTP = 12,
InternalId = 13
InternalId = 13,
MemorySize=14
}
*/
@@ -681,6 +690,14 @@ function buildRecords(listData, columndefinitions) {
display
);
break;
case 14: //MemorySize (file size)
display = window.$gz.locale.humanFileSize(
display,
languageName,
false,
2
);
break;
default:
//do nothing, allow it to stay as is (checkbox, plain text etc)
}

View File

@@ -40,7 +40,7 @@ export default {
/////////////////////////////
//
//
//
function clickHandler(menuItem) {
if (!menuItem) {
return;

View File

@@ -131,8 +131,6 @@ function generateMenu(vm) {
}
};
// //STUB REPORTS
// //Report not Print, print is a further option
// menuOptions.menuItems.push({

View File

@@ -175,7 +175,13 @@
</div>
<!-- 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-model="item.tempFilterOperator"
:items="selectLists.integerFilterOperators"