1
0
Fork 0
mirror of https://github.com/mealie-recipes/mealie.git synced 2025-08-02 20:15:24 +02:00

reorganize all frontend items

This commit is contained in:
hay-kot 2021-08-01 19:24:47 -08:00
parent d67240d449
commit 00a8fdda41
147 changed files with 3845 additions and 743 deletions

205
frontend/utils/globals.js Normal file
View file

@ -0,0 +1,205 @@
import {
mdiAccount,
mdiSilverwareVariant,
mdiPlus,
mdiPlusCircle,
mdiDelete,
mdiContentSave,
mdiContentSaveEdit,
mdiSquareEditOutline,
mdiClose,
mdiTagMultipleOutline,
mdiBookOutline,
mdiAccountCog,
mdiAccountGroup,
mdiHome,
mdiMagnify,
mdiTranslate,
mdiClockTimeFourOutline,
mdiImport,
mdiEmail,
mdiLock,
mdiEye,
mdiEyeOff,
mdiCalendarMinus,
mdiCalendar,
mdiDiceMultiple,
mdiAlertCircle,
mdiDotsVertical,
mdiPrinter,
mdiShareVariant,
mdiHeart,
mdiHeartOutline,
mdiDotsHorizontal,
mdiCheckboxBlankOutline,
mdiCommentTextMultipleOutline,
mdiDownload,
mdiFile,
mdiFilePdfBox,
mdiFileImage,
mdiCodeJson,
mdiArrowUpDown,
mdiCog,
mdiSort,
mdiOrderAlphabeticalAscending,
mdiStar,
mdiNewBox,
mdiShuffleVariant,
mdiAlert,
mdiCheckboxMarkedCircle,
mdiInformation,
mdiBellAlert,
mdiRefreshCircle,
mdiMenu,
mdiWeatherSunny,
mdiWeatherNight,
mdiLink,
mdiRobot,
mdiLinkVariant,
mdiViewModule,
mdiViewDashboard,
mdiTools,
mdiCalendarWeek,
mdiCalendarToday,
mdiCalendarMultiselect,
mdiFormatListChecks,
mdiLogout,
mdiContentCopy,
mdiClipboardCheck,
mdiCloudUpload,
mdiDatabase,
mdiGithub,
mdiFolderOutline,
mdiApi,
mdiTestTube,
mdiDevTo,
mdiBackupRestore,
mdiNotificationClearAll,
mdiFood,
mdiWebhook,
mdiFilter,
mdiAccountPlusOutline,
mdiDesktopTowerMonitor,
mdiFormatColorFill,
mdiFormSelect,
mdiPageLayoutBody,
mdiCalendarWeekBegin,
mdiOpenInNew,
mdiCheck,
mdiBroom,
mdiCartCheck,
mdiArrowLeftBold,
mdiMinus,
mdiWindowClose,
mdiFolderZipOutline,
} from "@mdi/js";
const icons = {
// Primary
primary: mdiSilverwareVariant,
// General
alert: mdiAlert,
alertCircle: mdiAlertCircle,
api: mdiApi,
arrowLeftBold: mdiArrowLeftBold,
arrowUpDown: mdiArrowUpDown,
backupRestore: mdiBackupRestore,
bellAlert: mdiBellAlert,
broom: mdiBroom,
calendar: mdiCalendar,
calendarMinus: mdiCalendarMinus,
calendarMultiselect: mdiCalendarMultiselect,
calendarToday: mdiCalendarToday,
calendarWeek: mdiCalendarWeek,
calendarWeekBegin: mdiCalendarWeekBegin,
cartCheck: mdiCartCheck,
check: mdiCheck,
checkboxBlankOutline: mdiCheckboxBlankOutline,
checkboxMarkedCircle: mdiCheckboxMarkedCircle,
clipboardCheck: mdiClipboardCheck,
clockOutline: mdiClockTimeFourOutline,
codeBraces: mdiCodeJson,
codeJson: mdiCodeJson,
cog: mdiCog,
commentTextMultipleOutline: mdiCommentTextMultipleOutline,
contentCopy: mdiContentCopy,
database: mdiDatabase,
desktopTowerMonitor: mdiDesktopTowerMonitor,
devTo: mdiDevTo,
diceMultiple: mdiDiceMultiple,
dotsHorizontal: mdiDotsHorizontal,
dotsVertical: mdiDotsVertical,
download: mdiDownload,
email: mdiEmail,
externalLink: mdiLinkVariant,
eye: mdiEye,
eyeOff: mdiEyeOff,
file: mdiFile,
fileImage: mdiFileImage,
filePDF: mdiFilePdfBox,
filter: mdiFilter,
folderOutline: mdiFolderOutline,
food: mdiFood,
formatColorFill: mdiFormatColorFill,
formatListCheck: mdiFormatListChecks,
formSelect: mdiFormSelect,
github: mdiGithub,
heart: mdiHeart,
heartOutline: mdiHeartOutline,
home: mdiHome,
import: mdiImport,
information: mdiInformation,
link: mdiLink,
lock: mdiLock,
logout: mdiLogout,
menu: mdiMenu,
newBox: mdiNewBox,
notificationClearAll: mdiNotificationClearAll,
openInNew: mdiOpenInNew,
orderAlphabeticalAscending: mdiOrderAlphabeticalAscending,
pageLayoutBody: mdiPageLayoutBody,
printer: mdiPrinter,
refreshCircle: mdiRefreshCircle,
robot: mdiRobot,
search: mdiMagnify,
shareVariant: mdiShareVariant,
shuffleVariant: mdiShuffleVariant,
sort: mdiSort,
star: mdiStar,
testTube: mdiTestTube,
tools: mdiTools,
translate: mdiTranslate,
upload: mdiCloudUpload,
viewDashboard: mdiViewDashboard,
viewModule: mdiViewModule,
weatherNight: mdiWeatherNight,
weatherSunny: mdiWeatherSunny,
webhook: mdiWebhook,
windowClose: mdiWindowClose,
zip: mdiFolderZipOutline,
// Crud
createAlt: mdiPlus,
create: mdiPlusCircle,
delete: mdiDelete,
save: mdiContentSave,
update: mdiContentSaveEdit,
edit: mdiSquareEditOutline,
close: mdiClose,
minus: mdiMinus,
// Organization
tags: mdiTagMultipleOutline,
pages: mdiBookOutline,
// Admin
user: mdiAccount,
admin: mdiAccountCog,
group: mdiAccountGroup,
accountPlusOutline: mdiAccountPlusOutline,
};
export const globals = {
icons,
};

52
frontend/utils/index.js Normal file
View file

@ -0,0 +1,52 @@
import { recipe } from "@/utils/recipe";
import { store } from "@/store";
// TODO: Migrate to Mixins
export const utils = {
recipe: recipe,
generateUniqueKey(item, index) {
return `${item}-${index}`;
},
getDateAsPythonDate(dateObject) {
if (!dateObject) return null;
const month = dateObject.getMonth() + 1;
const day = dateObject.getDate();
const year = dateObject.getFullYear();
return `${year}-${month}-${day}`;
},
notify: {
info: function(text, title = null) {
store.commit("setSnackbar", {
open: true,
title: title,
text: text,
color: "info",
});
},
success: function(text, title = null) {
store.commit("setSnackbar", {
open: true,
title: title,
text: text,
color: "success",
});
},
error: function(text, title = null) {
store.commit("setSnackbar", {
open: true,
title: title,
text: text,
color: "error",
});
},
warning: function(text, title = null) {
store.commit("setSnackbar", {
open: true,
title: title,
text: text,
color: "warning",
});
},
},
};

49
frontend/utils/recipe.js Normal file
View file

@ -0,0 +1,49 @@
export const recipe = {
/**
* Sorts a list of recipes in place
* @param {Array<Object>} list of recipes
* @param {Boolean} inverse - Z or A First
*/
sortAToZ(list) {
list.sort((a, b) => {
var textA = a.name.toUpperCase();
var textB = b.name.toUpperCase();
return textA < textB ? -1 : textA > textB ? 1 : 0;
});
},
sortByCreated(list) {
list.sort((a, b) => (a.dateAdded > b.dateAdded ? -1 : 1));
},
sortByUpdated(list) {
list.sort((a, b) => (a.dateUpdated > b.dateUpdated ? -1 : 1));
},
sortByRating(list) {
list.sort((a, b) => (a.rating > b.rating ? -1 : 1));
},
/**
*
* @param {Array<Object>} list
* @returns String / Recipe Slug
*/
randomRecipe(list) {
return list[Math.floor(Math.random() * list.length)];
},
shuffle(list) {
let last = list.length;
let n;
while (last > 0) {
n = rand(last);
swap(list, n, --last);
}
},
};
const rand = n =>
Math.floor(Math.random() * n)
function swap(t, i, j) {
let q = t[i];
t[i] = t[j];
t[j] = q;
return t;
}