Breton-genealogy@groups.io | Inverness Oran Deaths JULY 26, 2023 WEDNESDAY (2024)

We are excited to announce several enhancements to the Groups.io web and app experience, which will be available starting Thursday, April 25th.Click here for more information.

" ); } else { wrap = '

Attachments:

    '; count = 0; for (i = 0; i < response.length; i++) { if (response[i].Inline == false) { wrap += '
  • ' + response[i].Name + ' (' + response[i].HumanSize + ')
  • "; count++; } } wrap += '

'; if (count > 0) { $('#attachments' + id).replaceWith(wrap); } else { $('#attachments' + id).replaceWith( "

" ); } } }); } var modTimeoutId; function modOnFormChange(id, draftid, groupurl, csrf) { clearTimeout(modTimeoutId); if (modSaving == true) { modTimeoutId = setTimeout(function () { // Runs 1 second (1000 ms) after the last change modOnFormChange(id, draftid, groupurl, csrf); }, 1000); return; } modTimeoutId = setTimeout(function () { // Runs 1 second (1000 ms) after the last change modSaveDraft(id, draftid, groupurl, csrf, false); }, 1000); } var modSaving = false; // modSaveDraft saves the current form state in the draft. function modSaveDraft(id, draftid, groupurl, csrf, onLeave) { if (draftid == 0) { console.log("DraftID 0, not modSaving"); return; } console.log("DELETEDDRAFT IS:", modDeletedDraft); console.log("DESTROYEDEDITOR IS:", modDestroyedEditor); if (modDeletedDraft == true) { console.log('NOT SAVING BECAUSE OF DELETED'); return; } if (modDestroyedEditor == true) { console.log('NOT SAVING BECAUSE OF DESTROYED'); return; } modSaving = true; console.log('modSaving'); var fromval = $('#from' + id).val(); var subject = $('#subject' + id).val(); var body = $('#editor' + id).val(); var bodytype = $('#bodytype' + id).val(); var replyto = $('#replyto' + id).val(); var special = '0'; if ($('#special').prop('checked') == true) { special = '1'; } var bccme = '0'; if ($('#bccmecheck' + id).prop('checked') == true) { bccme = '1'; } var bccall = '0'; if ($('#bccall' + id).prop('checked') == true) { bccall = '1'; } var saveval = '1'; if (onLeave == true) { saveval = '2'; } var hashtags = $('#hashtags').val(); upload = { draftid: draftid, csrf: csrf, from: fromval, subject: subject, body: body, bodytype: bodytype, special: special, replyto: replyto, bccme: bccme, bccall: bccall, hashtags: JSON.stringify(hashtags), mid: id, save: saveval }; let opts = { url: groupurl + '/draftop', cache: false, data: upload, method: 'POST', xhrFields: { withCredentials: true }, dataType: 'json' }; if (modUnloading == false) { // if we are unloading we don't want to retry, because sometimes // that can result in a spurious error, esp on Firefox opts.retryCount = 5; opts.retryVerify = modRetryVerify; } $.ajax(opts).done(function (response) { // Do something with the request console.log('saved'); modSaving = false; }); } // called to see if we need to continue retrying function modRetryVerify() { if (modDeletedDraft == true || modDestroyedEditor == true) { return false; } return true; } // stop modSaving drafts when we do a submit var postVar = null; // Code to find and return a selected piece of HTML. function modGetSelection(id) { var flag = 0; var sel = document.getSelection(); var selText = ''; id = 'msgbody' + id; var forkfork = document.getElementById(id); if (sel.rangeCount > 0) { var range = sel.getRangeAt(0); var test = range.cloneContents(); var clonedSelection = ''; if (typeof test.getElementByID != 'undefined') { clonedSelection = range.cloneContents().getElementById(id); } if (clonedSelection) { selText = clonedSelection.innerHTML; } else { clonedSelection = range.cloneContents(); var startNode = sel.getRangeAt(0).startContainer.parentNode; //console.log(modIsChild(startNode, forkfork)); if (modIsChild(startNode, forkfork)) { var div = document.createElement('div'); div.appendChild(clonedSelection); selText = div.innerHTML; } } } return selText.toString(); } function modIsChild(child, parent) { if (child === parent) return true; var current = child; while (current) { if (current === parent) return true; current = current.parentNode; } return false; } return { InitEditor: function ( id, bodyType, draftid, groupurl, csrf, handleAttachments, noFontChanges, isReply, isWiki, body, sig, onInitFunc ) { if (typeof onInitFunc === 'undefined') { onInitFunc = null; } document.body.addEventListener('htmx:beforeSwap', modDestroyAllEditors, {once: true}); modDeletedDraft = false; modDestroyedEditor = false; modUnloading = false; $('#preview' + id).hide(); $('#addattachments' + id).hide(); $('#return' + id).hide(); $('#markdownlink' + id).hide(); if (bodyType == 'html') { if (sig != '') { $('#editor' + id).val(sig); //tinyMCE.get('editor'+id).setContent(sig); } editor.initHTMLEditor( id, draftid, groupurl, csrf, handleAttachments, noFontChanges, isReply, isWiki, body, sig, onInitFunc ); } else { if (sig != '') { $('#editor' + id).val(sig); } editor.initPlainEditor(id, bodyType, groupurl, handleAttachments, sig); } }, initHTMLEditor: function ( id, draftid, groupurl, csrf, handleAttachments, noFontChanges, isReply, isWiki, body, sig, onInitFunc ) { if (typeof onInitFunc === 'undefined') { onInitFunc = null; } // extras: print, emoticons, image, insert, media, print /* All plugins: 'advlist autolink lists link image print preview hr anchor pagebreak', 'searchreplace wordcount visualblocks visualchars code fullscreen', 'insertdatetime media nonbreaking save table contextmenu directionality', 'emoticons template paste textcolor colorpicker textpattern imagetools codesample toc' */ modDeletedDraft = false; modDestroyedEditor = false; modUnloading = false; let attachments = ''; if (handleAttachments == 0 || handleAttachments == 3) { attachments = ' addPictures addAttachments'; } let fontchanges = ''; if (noFontChanges == false) { fontchanges = ' fontselect fontsizeselect forecolor backcolor'; } let fontawesome = ' charmap'; let forceRootBlock = false; if (isWiki == true) { attachments += ' addWikiImage addWikiLink addWikiTOC'; fontawesome = ' fontawesome'; // BORK fontawesome = ''; forceRootBlock = 'p'; } let toolbar1 = 'styleselect bold italic bullist numlist link blockquote alignleft aligncenter alignright' + attachments + ' advancedToolbar'; let toolbar2 = 'strikethrough underline hr alignjustify' + fontchanges + ' removeformat' + fontawesome + ' outdent indent undo redo preview code'; let small_toolbar1 = 'bold italic link blockquote' + attachments + ' advancedToolbar'; let small_toolbar2 = 'strikethrough underline hr alignjustify removeformat outdent indent'; let tm_fonts = 'Arial=arial,helvetica,sans-serif;' + 'Arial Black=arial black,avant garde;' + 'Comic Sans MS=comic sans ms;' + 'Courier Neue=courier_newregular,courier;' + 'Helvetica Neue=helvetica neue;' + 'Helvetica=helvetica;' + 'Impact=impactregular,chicago;' + 'Lucida Grande=lucida grande;' + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + 'Times New Roman=times new roman,times;' + 'Verdana=verdana,geneva'; let plugins = [ 'SplitBlockquote', 'advlist autolink lists link image preview hr anchor', 'code fullscreen', 'nonbreaking table charmap', 'textcolor colorpicker imagetools noneditable' ]; let css = '/bootstrap/3.3.6/css/bootstrap.min.css,/bootstrap/3.3.6/css/bootstrap-theme.min.css,/css/groupsio.css,/css/tinymce.css,/fontawesome/all.min.css'; let fontsizes = '8pt 10pt 11pt 12pt 14pt 18pt 24pt 36pt'; let codesample_languages = [ { text: 'C', value: 'c' }, { text: 'C#', value: 'csharp' }, { text: 'C++', value: 'cpp' }, { text: 'CSS', value: 'css' }, { text: 'Go', value: 'go' }, { text: 'HTML/XML', value: 'markup' }, { text: 'Java', value: 'java' }, { text: 'JavaScript', value: 'javascript' }, { text: 'PHP', value: 'php' }, { text: 'Python', value: 'python' }, { text: 'Ruby', value: 'ruby' } ]; let style_formats = [ { title: 'Paragraph', block: 'p' }, { title: 'Header 1', block: 'h1' }, { title: 'Header 2', block: 'h2' }, { title: 'Header 3', block: 'h3' }, { title: 'Header 4', block: 'h4' }, { title: 'Header 5', block: 'h5' }, { title: 'Header 6', block: 'h6' } ]; if (isReply == true) { toolbar1 = 'quoteMessage ' + toolbar1; small_toolbar1 = 'quoteMessage ' + small_toolbar1; } if (document.documentElement.clientWidth > 1000) { tinymce.init({ noneditable_noneditable_class: 'fa', extended_valid_elements: 'span[*]', branding: false, link_context_toolbar: true, default_link_target: '_blank', link_assume_external_targets: true, elementpath: false, forced_root_block: forceRootBlock, content_css: css, relative_urls: false, remove_script_host: false, menubar: false, statusbar: true, plugins: plugins, toolbar1: toolbar1, toolbar2: toolbar2, font_formats: tm_fonts, browser_spellcheck: true, contextmenu: false, selector: '#editor' + id, resize: true, fontsize_formats: fontsizes, style_formats: style_formats, setup: function (teditor) { teditor.on('Init', function (e) { // see if any text is selected toquote = modGetSelection(id); if (toquote != '') { console.log('id=' + id); editor.ShowMessageHistory(id, groupurl, 'html', toquote, sig, true); } else { if (body != "") { console.log("body setContent"); teditor.setContent(body); } else if (sig != "") { console.log("sig setContent " + sig); teditor.setContent(sig); } } if (onInitFunc != null) { onInitFunc(e); } }); teditor.on('BeforeRenderUI', function (e) { teditor.theme.panel .find('toolbar') .slice(1) .hide(); }); teditor.addButton('advancedToolbar', { tooltip: 'Show advanced toolbar', icon: 'fa fa-bars', onclick: function () { if (!this.active()) { this.active(true); teditor.theme.panel .find('toolbar') .slice(1) .show(); } else { this.active(false); teditor.theme.panel .find('toolbar') .slice(1) .hide(); } } }); teditor.addButton('addPictures', { tooltip: 'Add pictures', icon: 'fa fa-image', onclick: function () { modUploaderPrompt("pictures", id, draftid, groupurl, csrf); } }); teditor.addButton('addAttachments', { tooltip: 'Add attachments', icon: 'fa fa-paperclip', onclick: function () { modUploaderPrompt("attachments", id, draftid, groupurl, csrf); } }); if (groupurl != '') { teditor.addButton('quoteMessage', { tooltip: 'Quote post', icon: 'fa fa-comment', onclick: function () { editor.ShowMessageHistory(id, groupurl, 'html', '', sig, false); } }); } if (draftid != '' && draftid != '0' && draftid != 0) { teditor.on('NodeChange', function () { //tinymce.triggerSave(); if (tinymce.activeEditor != null) { let markupStr = tinymce.activeEditor.getContent(); $('#editor' + id).val(markupStr); modOnFormChange(id, draftid, groupurl, csrf); } }); teditor.on('keyup', function () { //tinymce.triggerSave(); let markupStr = tinymce.activeEditor.getContent(); $('#editor' + id).val(markupStr); modOnFormChange(id, draftid, groupurl, csrf); }); } if (isWiki == true) { // special wiki buttons teditor.addButton('addWikiImage', { tooltip: 'Insert image', icon: 'fa fa-image', onclick: function () { $('#ImageModal').modal({}); } }); teditor.addButton('addWikiLink', { tooltip: 'Insert link to wiki page', icon: 'fa fa-book', onclick: function () { $('#LinkModal').modal({}); } }); teditor.addButton('addWikiTOC', { tooltip: 'Insert table of contents', icon: 'fa fa-list-alt', onclick: function () { $('#TOCModal').modal({}); } }); } } }); } else { tinymce.init({ branding: false, link_context_toolbar: true, default_link_target: '_blank', link_assume_external_targets: true, elementpath: false, forced_root_block: forceRootBlock, content_css: css, relative_urls: false, remove_script_host: false, menubar: false, statusbar: true, plugins: plugins, toolbar1: small_toolbar1, toolbar2: small_toolbar2, font_formats: tm_fonts, browser_spellcheck: true, contextmenu: false, selector: '#editor' + id, resize: true, fontsize_formats: fontsizes, style_formats: style_formats, setup: function (teditor) { teditor.on('Init', function (e) { // see if any text is selected toquote = modGetSelection(id); if (toquote != '') { console.log('id=' + id); editor.ShowMessageHistory(id, groupurl, 'html', toquote, sig, true); } else { if (body != "") { console.log("body setContent"); teditor.setContent(body); } else if (sig != "") { console.log("sig setContent" + sig); teditor.setContent(sig); } } if (onInitFunc != null) { onInitFunc(e); } }); teditor.on('BeforeRenderUI', function (e) { teditor.theme.panel .find('toolbar') .slice(1) .hide(); }); teditor.addButton('advancedToolbar', { tooltip: 'Show advanced toolbar', icon: 'fa fa-bars', onclick: function () { if (!this.active()) { this.active(true); teditor.theme.panel .find('toolbar') .slice(1) .show(); } else { this.active(false); teditor.theme.panel .find('toolbar') .slice(1) .hide(); } } }); teditor.addButton('addPictures', { tooltip: 'Add pictures', icon: 'fa fa-image', onclick: function () { modUploaderPrompt("pictures", id, draftid, groupurl, csrf); } }); teditor.addButton('addAttachments', { tooltip: 'Add attachments', icon: 'fa fa-paperclip', onclick: function () { modUploaderPrompt("attachments", id, draftid, groupurl, csrf); } }); if (groupurl != '') { teditor.addButton('quoteMessage', { tooltip: 'Quote post', icon: 'fa fa-comment', onclick: function () { editor.ShowMessageHistory(id, groupurl, 'html', '', sig, false); } }); } if (draftid != '' && draftid != '0' && draftid != 0) { teditor.on('NodeChange', function () { if (tinymce.activeEditor != null) { //tinymce.triggerSave(); let markupStr = tinymce.activeEditor.getContent(); $('#editor' + id).val(markupStr); modOnFormChange(id, draftid, groupurl, csrf); } }); teditor.on('keyup', function () { //tinymce.triggerSave(); let markupStr = tinymce.activeEditor.getContent(); $('#editor' + id).val(markupStr); modOnFormChange(id, draftid, groupurl, csrf); }); } // special wiki buttons teditor.addButton('addWikiImage', { tooltip: 'Add Image', icon: 'fa fa-image', onclick: function () { $('#ImageModal').modal({}); } }); teditor.addButton('addWikiLink', { tooltip: 'Add Link', icon: 'fa fa-book', onclick: function () { $('#LinkModal').modal({}); } }); teditor.addButton('addWikiTOC', { tooltip: 'Table of Contents', icon: 'fa fa-list-alt', onclick: function () { $('#TOCModal').modal({}); } }); } }); // disable tooltips because they require double taps on mobile $('.note-editor *').tooltip('disable'); } }, initPlainEditor: function (id, bodyType, groupurl, handleAttachments, sig) { $('#addattachments').show(); if (bodyType == 'plain') { $('#bodytype' + id).val('plain'); $('#preview' + id).hide(); $('#return' + id).hide(); $('#preview' + id).hide(); $('#markdownlink' + id).hide(); } else { $('#bodytype' + id).val('markdown'); $('#markdownbuttons' + id).show(); $('#preview' + id).show(); $('#return' + id).hide(); $('#previewWindow' + id).hide(); $('#markdownlink' + id).show(); } toquote = modGetSelection(id); if (toquote != '') { editor.ShowMessageHistory(id, groupurl, 'plain', toquote, sig, true); //$('#editor' + id).val(toquote); } }, InitPostDraft: function (id, draftid, csrf, groupurl) { // save the draft when leaving the page. $(window).on('beforeunload', function () { modUnloading = true; modSaveDraft(id, draftid, groupurl, csrf, true); }); // save the draft 1 second after a change $('form input, form textarea').on('input propertychange change', function () { modOnFormChange(id, draftid, groupurl, csrf); }); modUpdateAttachments(id, draftid, csrf, groupurl); if (typeof Capacitor !== 'undefined') { modInitDeviceUploader(id, draftid, csrf, groupurl); } else { modInitWebUploader(id, draftid, csrf, groupurl); } }, // InitReplyDraft creates a new draft, assumes a hidden form input called #draftidmid, and then calls initWindow(). InitReplyDraft: function ( id, bodytype, draftid, groupurl, csrf, handleAttachments, noFontChanges, isReply, isWiki, body, sig, onInitFunc ) { console.log('in InitReplyDraft draftid=' + draftid); modDeletedDraft = false; modDestroyedEditor = false; modUnloading = false; if (draftid == 0) { // create a new draft console.log('generating new draft' + groupurl); console.log('id=' + id); upload = { mid: id, csrf: csrf, body: sig }; $.ajax({ url: groupurl + '/reply', cache: false, method: 'POST', data: upload, xhrFields: { withCredentials: true }, dataType: 'json', error: function (xhr, ajaxOptions, thrownError) { if (modDeletedDraft == false && modDestroyedEditor == false) { createAlert("There was an error saving the draft. Please reload the page.", true, false) } } }).done(function (response) { console.log('reply draft created'); console.log('draftid:' + response.DraftID); draftid = response.DraftID; $('#draftid' + id).val(response.DraftID); editor.InitEditor( id, bodytype, draftid, groupurl, csrf, handleAttachments, noFontChanges, true, false, body, sig, onInitFunc ); editor.InitPostDraft(id, draftid, csrf, groupurl); console.log('id=' + id); $('#bodytype' + id).val(bodytype); $('#cancel-' + id).attr( 'onclick', 'editor.discardReplyDraft("' + id + '", "' + draftid + '","' + bodytype + '","' + csrf + '","' + groupurl + '");' ); return; }); return; } editor.InitEditor( id, bodytype, draftid, groupurl, csrf, handleAttachments, noFontChanges, true, false, body, sig, onInitFunc ); editor.InitPostDraft(id, draftid, csrf, groupurl); $('#bodytype' + id).val(bodytype); $('#cancel-' + id).attr( 'onclick', 'editor.discardReplyDraft("' + id + '", "' + draftid + '","' + bodytype + '","' + csrf + '","' + groupurl + '");' ); console.log('DONE'); }, // discardReplyDraft deletes the draft and any attachments and returns the user to the previous page. discardReplyDraft: function (id, draftid, bodytype, csrf, groupurl) { console.log('editor delete reply draft'); upload = { draftid: draftid, csrf: csrf, jsondelete: '1' }; $.ajax({ url: groupurl + '/draftop', cache: false, data: upload, method: 'POST', xhrFields: { withCredentials: true }, dataType: 'json' }).done(function (response) { // Do something with the request console.log("success delete reply draft"); $('#draftid' + id).val(''); if (bodytype == 'html') { tinymce.get('editor' + id).remove(); } $('#subject' + id).val($('#origsubject' + id).val()); $('#editor' + id).val(''); modDeletedDraft = true; modDestroyedEditor = true; }); }, PreviewMarkdown: function (id, groupurl) { let markdown = $('#editor' + id).val(); upload = { md: markdown }; $.ajax({ url: groupurl + '/previewmd', cache: false, data: upload, method: 'POST', xhrFields: { withCredentials: true }, dataType: 'json' }).done(function (response) { // Do something with the request console.log(response.markdown); wrap = '

' + response.markdown + '

'; $('#editwindow' + id).hide(); $('#previewWindow' + id).replaceWith(wrap); $('#previewWindow' + id).show(); }); $('#preview' + id).hide(); $('#return' + id).show(); }, ReturnMarkdown: function (id) { $('#preview' + id).show(); $('#return' + id).hide(); $('#previewWindow' + id).hide(); $('#editwindow' + id).show(); }, ClearTimeout: function() { clearTimeout(modTimeoutId); }, ShowMessageHistory: function( id, groupurl, bodytype, selectedText, sig, firstTime ) { console.log('URL ' + groupurl); console.log('ID ' + id); if (bodytype == 'html' && firstTime == false) { existingmsg = tinyMCE.get('editor' + id).getContent(); } else { existingmsg = $('#editor' + id).val(); } if (selectedText == '') { upload = { preview: bodytype, id: id }; } else { upload = { preview: bodytype, id: id, text: selectedText }; if (firstTime == true) { existingmsg = sig; } } $.ajax({ url: groupurl + '/previewmd', cache: false, data: upload, method: 'POST', xhrFields: { withCredentials: true }, dataType: 'json' }).done(function (response) { $('#editor' + id).val(response.reply + existingmsg); if (bodytype == 'html') { console.log('SETTING ' + response.reply + existingmsg); tinyMCE.get('editor' + id).setContent(response.reply + existingmsg); tinyMCE.get('editor' + id).selection.select(tinyMCE.get('editor' + id).getBody(), true); tinyMCE.get('editor' + id).selection.collapse(false); console.log('DONE'); } }); $('#editor' + id).focus(); } /* $('form').submit(function(e) { clearTimeout(modTimeoutId); if (postVar != null) { postVar.abort(); } console.log("SETTING DELETED TO TRUE"); console.log("EVENT:", e); modDeletedDraft = true; if ($(this).hasClass('form-submitted')) { e.preventDefault(); return; } $(this).addClass('form-submitted'); }); */ };}());async function uploadAttachments(doctype, id, draftid, groupurl, csrf) { const result = await Capacitor.Plugins.FilePicker.pickFiles(); const file = result.files[0]; console.log("in uploadAttachments"); console.log("files:", result.files); console.log("mimeType:", file.mimeType); console.log("name:", file.name); console.log("doctype:", doctype);const b64toBlob = (base64, type = 'image/jpeg') => fetch(`data:${type};base64,${base64}`).then(res => res.blob());const result2 = await Capacitor.Plugins.Filesystem.readFile({path:file.path})console.log("result2: ", result2);const blob = await b64toBlob(result2.data, file.mimeType);console.log("in uploadAttachments 2, " + file.mimeType); uploadImage(doctype, id, draftid, groupurl, csrf, blob, file.name);}async function takePicture2(doctype, id, draftid, groupurl, csrf) { console.log("in takePicture2"); try { const image = await Capacitor.Plugins.Camera.getPhoto({ quality: 90, allowEditing: false, resultType: "uri" }); console.log("got image");const b64toBlob = (base64, type = 'image/jpeg') => fetch(`data:${type};base64,${base64}`).then(res => res.blob());const result = await Capacitor.Plugins.Filesystem.readFile({path:image.path})const blob = await b64toBlob(result.data);console.log("path: ", image.path); uploadImage(doctype, id, draftid, groupurl, csrf, blob, image.path.split("/").pop()); } catch (err) { console.log("catch err 1: ", err); }}async function uploadImage(doctype, id, draftid, groupurl, csrf, raw, name) { console.log("here0"); const controller = new AbortController(); const formData = new FormData(); console.log("here1"); formData.append("csrf", csrf); formData.append("draftid", draftid); formData.append("upload", "1"); if (doctype === "pictures") { formData.append("inline", "1"); } console.log("FORMDATA:", formData); formData.append("fileupload", raw, name); console.log("here3"); const myRequest = new Request(groupurl + '/draftop', { method: 'POST', credentials: 'include', body: formData, signal: controller.signal, mode: 'cors' }); console.log("uploading"); try { const response = await fetch(myRequest); const result = await response.json(); if (doctype === "pictures") { console.log("picture processing"); for (let i = result.length - 1; i >= 0; i--) { console.log("Processing: ", i); const fileurl = result[i]; console.log('FILE: ' + result[i]); console.log('URL: ' + fileurl); const imghtml = 'Breton-genealogy@groups.io | Inverness Oran Deaths JULY 26, 2023 WEDNESDAY (1)'; console.log('imghtml: ' + imghtml); tinymce.activeEditor.insertContent(imghtml); } } else { console.log("attachment processing"); updateAttachments(id, draftid, csrf, groupurl); console.log("attachment processing done"); } } catch (error) { console.error('Error:', error); }}

  1. Cape-Breton-Genealogy
  2. Topics

Search

DateDate1 - 1 of 1

  • previous page
  • next page

Inverness Oran Deaths JULY 26, 2023 WEDNESDAY

Carol MacLean

  • All Messages By This Member

#1449


Cape Breton Deaths courtesy of CAPE BRETON GENEALOGY & HISTORICAL ASSOCIATION

VISIT OUR WEBSITE -www.cbgen.org<http://www.cbgen.org/> NEW MEMBERS WELCOME

Inverness Oran DeathsJULY 26, 2023 WEDNESDAY

There were 4 new obituaries published today

MACOMBER, WENDY PATRICIA - 70 YRS

RANKIN, JOHN MALCOLM - 78 YRS

RANKIN, DONALD LEO - 79 YRS

TRACEY (BEATON), MARY AGNES - 86 YRS

MACOMBER
Wendy Patricia Macomber BFA, B.Ed., age 70, Upper River Denys: With heavy hearts we announce the passing of Wendy Macomber on Saturday, July 8th, 2023, surrounded by her loving family. Wendy was born in Halifax, Nova Scotia, and grew up in Noel Shore, Nova Scotia, the daughter of David Pratt Macomber and Margaret Faith Macomber (Main). Wendy started school at a one-room schoolhouse in Noel Shore and completed high school at Hants North Rural High in Kennetcook. Wendy went on to the Nova Scotia College of Art and Design, earning bachelors’ degrees in Fine Arts and Education. Most of Wendy’s ‘official’ career was spent in teaching Adult Education. A talented artist, Wendy did beautiful weaving, beadwork, and jewelry design. Quick and talented in crochet, we cherish the Christmas socks she left us in every colour and size. A keen learner and avid reader, Wendy immersed herself in any and all topics. Complementary / natural medical knowledge was a particular interest and those around her benefited tremendously. As a natural extension of this Wendy grew medicinal plants and developed delicious recipes that will live on long after her. Her baked oatmeal is legendary – sugar free of course. While very unpretentious, Wendy had a great interest in public policy. Some of her last words were a request to advocate for fairness and equality. Leading by example, Wendy was giving and kind to all who knew her. Wendy was a bit of a free spirit and spent many years travelling the globe. During one of these trips, she taught English as A Second Language in the Czech Republic and toured the nearby European countries. During a winter in Mexico, she studied painting with an emphasis on watercolour. In the 90s, Wendy spent months backpacking around Australia, New Zealand, and Tahiti. Wendy will be sadly missed by her loving husband of 45 years, Dougald MacNeil; daughter, Melanie MacNeil (James Ringwald), grandchildren Jayne, Olivia and Owen; Mother, Margaret Macomber (Main); sister, Carol Macomber; niece, Michelle Kelly (Louis) and grandniece, Kara Kelly. Wendy was predeceased by her father, David Macomber; numerous aunts and uncles; her brother-in-law, Douglas Lynch (Carol); and dear friends, Debbie Hepburn and Judy Grant. We are grateful to the nurses and doctors at the Inverness Consolidated Memorial Hospital for all of the caring attention given to Wendy. We’d also thank Wendy’s good friends Johanna, Rachel, and Allison. Wendy considered you more family than friends. A celebration of life for Wendy was held in the Blues Mills Fire Hall, 7548 Hwy 105, Blues Mills, on Tuesday, July 25th, from 6:00 p.m. to 8:30 p.m. Donations in memory of Wendy may be made to a charity of your choice. Arrangements are under the care of Dennis Haverstock Funeral Chapel, Whycocomagh. Words of comfort may be forwarded to the family at: www.haverstocks.com.

RANKIN
John Malcolm Rankin, formerly from Northeast Mabou, Nova Scotia, passed away October 17th, 2022, at his home in Brampton, Ontario. Born September 14th, 1944, John was the eldest son of the late John Dan and Janie (MacArthur) Rankin. He spent many years as a truck driver. Although John suffered from MS for many years, he never allowed his disease to break his spirit. He had the best laugh and will be fondly remembered for sharing his singing and guitar playing for many a family gathering. John is survived by his stepdaughter, Charlene Bartlett and her children in Ontario, as well as numerous cousins in both Canada and the United States. John is predeceased by his brothers, William and Alexander. A funeral mass will be held on Friday, July 28th, 2023, at 11:00 a.m. at St. Mary’s Church, Mabou, with Fr. Dan MacDonald officiating. Donations may be made to the St. Mary’s Parish Building Fund, Cemetery Fund, or a charity of your choice.

RANKIN
Donald Leo Rankin, June 29th, 1944 – July 12th, 2023: With sadness, we announce the unexpected passing of Donald Leo Rankin, on July 12th, 2023, following a beautiful evening at a ceilidh with his beloved wife, Rosalind (MacIntrye). Born in 1944 at Inverness, Cape Breton, Donald was the eldest child of Archie and Mary Rankin. Donald was a seeker, and he carried a childlike curiosity until the very end. He was forever a keen observer. His long daily walks nourished his love of nature and offered the possibility of an impassioned conversation with a stranger. He held a Bachelor of Science from the Nova Scotia Agricultural College and McGill University; education degrees from St. Francis Xavier University; and a law degree from Dalhousie University. He practiced law at Port Aux Choix, NL. He remained engaged in civic life and instilled that duty in his children. Donald’s passion for the arts never waned. He loved books and poetry, with Carl Sandburg and T.S. Eliot being among his favourites. He had an eclectic taste in music, spanning from Bob Seger, to Bach, to Buddy MacMaster. So moved at times, he would have to stop the car when such beauty came over the radio. Donald and Rosalind raised their family in northern Newfoundland. After returning to Inverness County, he fondly recalled the wide open, untamed landscapes of his former home and the resourcefulness of its people. In Cape Breton, he reconnected with many of the simple joys of his youth including the thrill of live fiddle music and horse racing at the Inverness Raceway. His greatest love was his wife Rosalind. Spontaneity and fidelity, he agreed, were the twin elements of a life well lived. Along with his wife Rosalind, Donald is survived by his children, Heather Rankin (Robert), Melissa Rankin, Andrew Rankin (Sara), Christian Rankin (Jessie), and Meriah Rankin, and his granddaughter Ruby, all of Halifax. He is also survived by his sisters, Louise Marie (Ray) MacArthur, Judique, Jessica (Daniel) MacLellan, Judique, Cathleen (Paul) Seamone, Dartmouth, Joan (Ed) Lake, Dartmouth, Carmel (Andy) Raymond, Halifax, Kimberley (John) MacInnis, Mabou, and brothers Reginald (Chris), Timberlea, John Archie (Anne Marie), Dartmouth, Randall (Jeanette), Judique, Xavier (Sarah), Ottawa, Michael (Heidi), Mabou. Donald was predeceased by his son Liam and his sister Maureen (Ronald) MacKenzie, Mabou Coal Mines. Visitation was held on Thursday, July 20th, from 4:00 p.m. to 7:00 p.m. at Green’s Funeral Home, Port Hawkesbury. Funeral mass was held on Friday, July 21st, at 10:00 a.m. at the St. Joseph’s Parish, with Rev. Joby Augustin officiating. Interment will take place in St. Joseph’s Cemetery. Memorial donations may be made to the Nova Scotia Nature Trust. Words of comfort may be sent to the family at www.greensfuneralhome.ca.

TRACEY
It is with much sadness and broken hearts that we announce the passing of our loving mother, Mary Agnes Tracey, of Little Judique on Tuesday July 18th, 2023, at the age of 86 years. Mary Tracey (Beaton) was born to Joseph and Annie Beaton on July 1st, 1937, in Little Judique, Nova Scotia. Mary is survived by her six children, Ellen (Rod); Karen (Willie); Charlene (Burt); Brian (Karen); Allison (Bob); and Darryl (Dawn). She was fondly known as Nana to her 13 grandchildren: Seela, Morgan, Ryan, Dylan, Mitchell, Kaylan, James, Bailey, Darci, Kade, Cassie Jo, Callee Jean, and Alexander. Mom will be dearly missed by her sisters, Sally Johnson and Florence Connors; many nieces and nephews; sister-in-law, Mary Jane Tracey; brothers-in-law, Harold Tracey, Jerome Tracey (Betty). She was predeceased by her parents, Joseph and Annie (MacIsaac) Beaton; husband, Hugh Tracey; brother Murdoch Beaton; and infant brother, Neil Beaton; daughter-in-law, Bonnie Jean Tracey; sisters-in-law, Helen Jean (Tracey) MacDonald; Catherine MacRae and Judy Beaton; brothers-in-law, John Francis Tracey, James Tracey, Phil Johnson and Bill Connors; dear friend Pauline MacMillan. Mom was a dedicated mother first and foremost. She treasured her children and especially loved her role as Nana. A person of deep faith, committed to her church, and daily prayers. Mom loved bingo and playing cards with friends, watching her grandchildren succeed at their chosen sports and activities. Most importantly, she was always cheering on the Montreal Canadiens, Toronto Blue Jays, and the Port Hawkesbury Strait Pirates. She leaves behind memories of the special lady she was and will continue to be in our hearts. Mom, we find comfort in knowing that Dad, the love of your life, will be waiting for you with open arms. We loved you every day and now we will miss you every day. We would like to extend a special thank you to the doctors and staff at the R.K. MacDonald Nursing Home for their care and compassion during Mom’s brief stay, as well as the doctors and staff at the Inverness Hospital. Visitation took place on Sunday, July 23rd, 2023, at Port Hood and Area Resting Place from 2:00 p.m. – 4:00 p.m. and 6:00 p.m. – 9:00 p.m. Funeral mass was celebrated on Monday, July 24th, 2023, at 11:00 a.m. from St. Peter’s Parish, Port Hood, with Rev. Bernie MacDonald officiating. Interment to follow in the Parish Cemetery. A livestream service will be available from St. Peter’s Parish Facebook Page: (https://www.facebook.com/st.peters.Parish.PortHood/). Memorial donations may be made to St. Peter’s Cemetery, Port Hood.

Breton-genealogy@groups.io | Inverness Oran Deaths JULY 26, 2023 WEDNESDAY (2024)
Top Articles
Latest Posts
Article information

Author: Prof. An Powlowski

Last Updated:

Views: 5612

Rating: 4.3 / 5 (64 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Prof. An Powlowski

Birthday: 1992-09-29

Address: Apt. 994 8891 Orval Hill, Brittnyburgh, AZ 41023-0398

Phone: +26417467956738

Job: District Marketing Strategist

Hobby: Embroidery, Bodybuilding, Motor sports, Amateur radio, Wood carving, Whittling, Air sports

Introduction: My name is Prof. An Powlowski, I am a charming, helpful, attractive, good, graceful, thoughtful, vast person who loves writing and wants to share my knowledge and understanding with you.