Changeset 3322310
- Timestamp:
- 07/04/2025 12:10:16 PM (5 months ago)
- Location:
- jobbnorge-block
- Files:
-
- 24 edited
- 1 copied
-
tags/2.2.1 (copied) (copied from jobbnorge-block/trunk)
-
tags/2.2.1/CHANGELOG.md (modified) (1 diff)
-
tags/2.2.1/build/block.json (modified) (1 diff)
-
tags/2.2.1/build/init.asset.php (modified) (1 diff)
-
tags/2.2.1/build/init.js (modified) (1 diff)
-
tags/2.2.1/build/pagination.asset.php (modified) (1 diff)
-
tags/2.2.1/build/pagination.js (modified) (1 diff)
-
tags/2.2.1/package-lock.json (modified) (2 diffs)
-
tags/2.2.1/package.json (modified) (1 diff)
-
tags/2.2.1/readme.txt (modified) (2 diffs)
-
tags/2.2.1/src/block.json (modified) (1 diff)
-
tags/2.2.1/src/pagination.js (modified) (1 diff)
-
tags/2.2.1/wp-jobb-norge.php (modified) (1 diff)
-
trunk/CHANGELOG.md (modified) (1 diff)
-
trunk/build/block.json (modified) (1 diff)
-
trunk/build/init.asset.php (modified) (1 diff)
-
trunk/build/init.js (modified) (1 diff)
-
trunk/build/pagination.asset.php (modified) (1 diff)
-
trunk/build/pagination.js (modified) (1 diff)
-
trunk/package-lock.json (modified) (2 diffs)
-
trunk/package.json (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/src/block.json (modified) (1 diff)
-
trunk/src/pagination.js (modified) (1 diff)
-
trunk/wp-jobb-norge.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
jobbnorge-block/tags/2.2.1/CHANGELOG.md
r3322139 r3322310 1 1 # Changelog 2 3 ## 2.2.1 4 5 * **FIX**: Fix grid view not working in editor and frontend by properly configuring CSS file references 6 * **FIX**: Add grid styles to editor.scss to ensure grid layout works in WordPress block editor 7 * **ENHANCEMENT**: Update webpack configuration to build editor and style CSS separately 8 * **ENHANCEMENT**: Improve pagination scroll behavior to position 2em above block for better user experience 2 9 3 10 ## 2.2.0 -
jobbnorge-block/tags/2.2.1/build/block.json
r3322139 r3322310 3 3 "apiVersion": 2, 4 4 "name": "dss/jobbnorge", 5 "version": "2.2. 0",5 "version": "2.2.1", 6 6 "title": "Jobbnorge", 7 7 "category": "widgets", -
jobbnorge-block/tags/2.2.1/build/init.asset.php
r3322139 r3322310 1 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-primitives', 'wp-server-side-render'), 'version' => ' 7c82361092d9d86c438b');1 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-primitives', 'wp-server-side-render'), 'version' => '61f15486ca2a09f57b75'); -
jobbnorge-block/tags/2.2.1/build/init.js
r3322139 r3322310 1 !function(){"use strict";var e,o={938:function(e,o,t){var n=window.React,l=window.wp.primitives,r=(0,n.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(l.Path,{d:"M15.5 9.5a1 1 0 100-2 1 1 0 000 2zm0 1.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zm-2.25 6v-2a2.75 2.75 0 00-2.75-2.75h-4A2.75 2.75 0 003.75 15v2h1.5v-2c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v2h1.5zm7-2v2h-1.5v-2c0-.69-.56-1.25-1.25-1.25H15v-1.5h2.5A2.75 2.75 0 0120.25 15zM9.5 8.5a1 1 0 11-2 0 1 1 0 012 0zm1.5 0a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z",fillRule:"evenodd"})),a=window.wp.blocks,i=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"dss/jobbnorge","version":"2.2. 0","title":"Jobbnorge","category":"widgets","icon":"people","description":"Retrieve and display job listings from Jobbnorge.no","keywords":["jobbnorge","jobbnorge.no"],"supports":{"html":false},"attributes":{"columns":{"type":"number","default":3},"blockLayout":{"type":"string","default":"list"},"employerID":{"type":"string","default":""},"noJobsMessage":{"type":"string","default":""},"orderBy":{"type":"string","default":"Deadline"},"itemsToShow":{"type":"number","default":5},"displayEmployer":{"type":"boolean","default":false},"displayExcerpt":{"type":"boolean","default":true},"displayDeadline":{"type":"boolean","default":false},"displayScope":{"type":"boolean","default":false},"displayDate":{"type":"boolean","default":true},"excerptLength":{"type":"number","default":55},"enablePagination":{"type":"boolean","default":true},"jobsPerPage":{"type":"number","default":10}},"textdomain":"wp-jobbnorge-block","editorScript":"file:init.js","editorStyle":"file:editor.css","style":"file:style-init.css"}'),c=window.wp.blockEditor,b=window.wp.components,s=window.wp.element,p=(0,n.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(l.Path,{d:"m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z"})),d=(0,n.createElement)(l.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,n.createElement)(l.Path,{d:"M4 4v1.5h16V4H4zm8 8.5h8V11h-8v1.5zM4 20h16v-1.5H4V20zm4-8c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2z"})),m=(0,n.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(l.Path,{d:"m3 5c0-1.10457.89543-2 2-2h13.5c1.1046 0 2 .89543 2 2v13.5c0 1.1046-.8954 2-2 2h-13.5c-1.10457 0-2-.8954-2-2zm2-.5h6v6.5h-6.5v-6c0-.27614.22386-.5.5-.5zm-.5 8v6c0 .2761.22386.5.5.5h6v-6.5zm8 0v6.5h6c.2761 0 .5-.2239.5-.5v-6zm0-8v6.5h6.5v-6c0-.27614-.2239-.5-.5-.5z",fillRule:"evenodd",clipRule:"evenodd"})),u=window.wp.i18n,g=window.wp.serverSideRender,w=t.n(g);const{name:h}=i;(e=>{const{metadata:o,settings:t,name:n}=e;(0,a.registerBlockType)({name:n,...o},t)})({name:h,metadata:i,settings:{icon:r,example:{attributes:{employerID:"123[, 456, 789]"}},edit:function({attributes:e,setAttributes:o}){const[t,l]=(0,s.useState)(!e.employerID),{blockLayout:a,columns:i,displayScope:g,displayDate:h,displayEmployer:y,displayExcerpt:v,employerID:f,itemsToShow:_,noJobsMessage:k,orderBy:j,enablePagination:E,jobsPerPage:C}=e;function x(t){return()=>{const n=e[t];o({[t]:!n})}}const S=(0,c.useBlockProps)();var B;if(t)return(0,n.createElement)("div",{...S},(0,n.createElement)(b.Placeholder,{icon:r,label:"Jobbnorge"},(0,n.createElement)("form",{onSubmit:function(e){e.preventDefault(),f&&(o({employerID:f}),l(!1))},className:"wp-block-dss-jobbnorge__placeholder-form"},window.wpJobbnorgeBlock&&window.wpJobbnorgeBlock.employers?(0,n.createElement)(b.SelectControl,{multiple:!0,value:f.split(","),onChange:e=>o({employerID:e.toString()}),options:(null!==(B=wpJobbnorgeBlock.employers)&&void 0!==B?B:[]).map((e=>{var o;return{label:e.label,value:e.value,disabled:null!==(o=e?.disabled)&&void 0!==o&&o}})),className:"wp-block-dss-jobbnorge__placeholder-input",help:(0,u.__)("Select employers to display. Ctrl-click (Windows) or Cmd-click (Mac) to select multiple employers. Shift-click to select a range of employers.","wp-jobbnorge-block"),__nextHasNoMarginBottom:!0}):(0,n.createElement)(b.TextControl,{placeholder:(0,u.__)("Employer ID [,id2, id3, ..]","wp-jobbnorge-block"),value:f,onChange:e=>o({employerID:e}),className:"wp-block-dss-jobbnorge__placeholder-input"}),(0,n.createElement)(b.Button,{variant:"primary",type:"submit"},(0,u.__)("Save","wp-jobbnorge-block")))));const D=[{icon:p,title:(0,u.__)("Edit Jobbnorge URL","wp-jobbnorge-block"),onClick:()=>l(!0)},{icon:d,title:(0,u.__)("List view","wp-jobbnorge-block"),onClick:()=>o({blockLayout:"list"}),isActive:"list"===a},{icon:m,title:(0,u.__)("Grid view","wp-jobbnorge-block"),onClick:()=>o({blockLayout:"grid"}),isActive:"grid"===a}];return(0,n.createElement)(n.Fragment,null,(0,n.createElement)(c.BlockControls,null,(0,n.createElement)(b.ToolbarGroup,{controls:D})),(0,n.createElement)(c.InspectorControls,null,(0,n.createElement)(b.PanelBody,{title:(0,u.__)("Settings","wp-jobbnorge-block")},(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Enable pagination","wp-jobbnorge-block"),help:(0,u.__)("When enabled, all jobs will be displayed with pagination controls. When disabled, only the specified number of jobs will be shown.","wp-jobbnorge-block"),checked:E,onChange:e=>o({enablePagination:e})}),!E&&(0,n.createElement)(b.RangeControl,{__nextHasNoMarginBottom:!0,label:(0,u.__)("Number of items","wp-jobbnorge-block"),value:_,onChange:e=>o({itemsToShow:e}),min:1,max:100,required:!0}),E&&(0,n.createElement)(b.RangeControl,{__nextHasNoMarginBottom:!0,label:(0,u.__)("Jobs per page","wp-jobbnorge-block"),value:C,onChange:e=>o({jobsPerPage:e}),min:1,max:50,required:!0}),f.includes(",")&&(0,n.createElement)(b.RadioControl,{label:(0,u.__)("Order by","wp-jobbnorge-block"),selected:j,options:[{label:(0,u.__)("Deadline","wp-jobbnorge-block"),value:"Deadline"},{label:(0,u.__)("Employer","wp-jobbnorge-block"),value:"Employer"}],onChange:e=>o({orderBy:e})}),(0,n.createElement)(b.TextareaControl,{label:(0,u.__)("No jobs found message","wp-jobbnorge-block"),help:(0,u.__)("Message to display if no jobs are found","wp-jobbnorge-block"),value:k||(0,u.__)("There are no jobs at this time.","wp-jobbnorge-block"),onChange:e=>o({noJobsMessage:e})})),(0,n.createElement)(b.PanelBody,{title:(0,u.__)("Item","wp-jobbnorge-block")},(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display employer","wp-jobbnorge-block"),checked:y,onChange:x("displayEmployer")}),(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display excerpt","wp-jobbnorge-block"),checked:v,onChange:x("displayExcerpt")}),(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display deadline","wp-jobbnorge-block"),checked:h,onChange:x("displayDate")}),(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display scope","wp-jobbnorge-block"),checked:g,onChange:x("displayScope")})),"grid"===a&&(0,n.createElement)(b.PanelBody,{title:(0,u.__)("Grid view","wp-jobbnorge-block")},(0,n.createElement)(b.RangeControl,{__nextHasNoMarginBottom:!0,label:(0,u.__)("Columns","wp-jobbnorge-block"),value:i,onChange:e=>o({columns:e}),min:2,max:6,required:!0}))),(0,n.createElement)("div",{...S},(0,n.createElement)(b.Disabled,null,(0,n.createElement)(w(),{block:"dss/jobbnorge",attributes:e,httpMethod:"POST"}))))}}})}},t={};function n(e){var l=t[e];if(void 0!==l)return l.exports;var r=t[e]={exports:{}};return o[e](r,r.exports,n),r.exports}n.m=o,e=[],n.O=function(o,t,l,r){if(!t){var a=1/0;for(s=0;s<e.length;s++){t=e[s][0],l=e[s][1],r=e[s][2];for(var i=!0,c=0;c<t.length;c++)(!1&r||a>=r)&&Object.keys(n.O).every((function(e){return n.O[e](t[c])}))?t.splice(c--,1):(i=!1,r<a&&(a=r));if(i){e.splice(s--,1);var b=l();void 0!==b&&(o=b)}}return o}r=r||0;for(var s=e.length;s>0&&e[s-1][2]>r;s--)e[s]=e[s-1];e[s]=[t,l,r]},n.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(o,{a:o}),o},n.d=function(e,o){for(var t in o)n.o(o,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},n.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},function(){var e={410:0,308:0};n.O.j=function(o){return 0===e[o]};var o=function(o,t){var l,r,a=t[0],i=t[1],c=t[2],b=0;if(a.some((function(o){return 0!==e[o]}))){for(l in i)n.o(i,l)&&(n.m[l]=i[l]);if(c)var s=c(n)}for(o&&o(t);b<a.length;b++)r=a[b],n.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return n.O(s)},t=self.webpackChunkjobbnorge_block=self.webpackChunkjobbnorge_block||[];t.forEach(o.bind(null,0)),t.push=o.bind(null,t.push.bind(t))}();var l=n.O(void 0,[308],(function(){return n(938)}));l=n.O(l)}();1 !function(){"use strict";var e,o={938:function(e,o,t){var n=window.React,l=window.wp.primitives,r=(0,n.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(l.Path,{d:"M15.5 9.5a1 1 0 100-2 1 1 0 000 2zm0 1.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zm-2.25 6v-2a2.75 2.75 0 00-2.75-2.75h-4A2.75 2.75 0 003.75 15v2h1.5v-2c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v2h1.5zm7-2v2h-1.5v-2c0-.69-.56-1.25-1.25-1.25H15v-1.5h2.5A2.75 2.75 0 0120.25 15zM9.5 8.5a1 1 0 11-2 0 1 1 0 012 0zm1.5 0a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z",fillRule:"evenodd"})),a=window.wp.blocks,i=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"dss/jobbnorge","version":"2.2.1","title":"Jobbnorge","category":"widgets","icon":"people","description":"Retrieve and display job listings from Jobbnorge.no","keywords":["jobbnorge","jobbnorge.no"],"supports":{"html":false},"attributes":{"columns":{"type":"number","default":3},"blockLayout":{"type":"string","default":"list"},"employerID":{"type":"string","default":""},"noJobsMessage":{"type":"string","default":""},"orderBy":{"type":"string","default":"Deadline"},"itemsToShow":{"type":"number","default":5},"displayEmployer":{"type":"boolean","default":false},"displayExcerpt":{"type":"boolean","default":true},"displayDeadline":{"type":"boolean","default":false},"displayScope":{"type":"boolean","default":false},"displayDate":{"type":"boolean","default":true},"excerptLength":{"type":"number","default":55},"enablePagination":{"type":"boolean","default":true},"jobsPerPage":{"type":"number","default":10}},"textdomain":"wp-jobbnorge-block","editorScript":"file:init.js","editorStyle":"file:editor.css","style":"file:style-init.css"}'),c=window.wp.blockEditor,b=window.wp.components,s=window.wp.element,p=(0,n.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(l.Path,{d:"m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z"})),d=(0,n.createElement)(l.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,n.createElement)(l.Path,{d:"M4 4v1.5h16V4H4zm8 8.5h8V11h-8v1.5zM4 20h16v-1.5H4V20zm4-8c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2z"})),m=(0,n.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(l.Path,{d:"m3 5c0-1.10457.89543-2 2-2h13.5c1.1046 0 2 .89543 2 2v13.5c0 1.1046-.8954 2-2 2h-13.5c-1.10457 0-2-.8954-2-2zm2-.5h6v6.5h-6.5v-6c0-.27614.22386-.5.5-.5zm-.5 8v6c0 .2761.22386.5.5.5h6v-6.5zm8 0v6.5h6c.2761 0 .5-.2239.5-.5v-6zm0-8v6.5h6.5v-6c0-.27614-.2239-.5-.5-.5z",fillRule:"evenodd",clipRule:"evenodd"})),u=window.wp.i18n,g=window.wp.serverSideRender,w=t.n(g);const{name:h}=i;(e=>{const{metadata:o,settings:t,name:n}=e;(0,a.registerBlockType)({name:n,...o},t)})({name:h,metadata:i,settings:{icon:r,example:{attributes:{employerID:"123[, 456, 789]"}},edit:function({attributes:e,setAttributes:o}){const[t,l]=(0,s.useState)(!e.employerID),{blockLayout:a,columns:i,displayScope:g,displayDate:h,displayEmployer:y,displayExcerpt:v,employerID:f,itemsToShow:_,noJobsMessage:k,orderBy:j,enablePagination:E,jobsPerPage:C}=e;function x(t){return()=>{const n=e[t];o({[t]:!n})}}const S=(0,c.useBlockProps)();var B;if(t)return(0,n.createElement)("div",{...S},(0,n.createElement)(b.Placeholder,{icon:r,label:"Jobbnorge"},(0,n.createElement)("form",{onSubmit:function(e){e.preventDefault(),f&&(o({employerID:f}),l(!1))},className:"wp-block-dss-jobbnorge__placeholder-form"},window.wpJobbnorgeBlock&&window.wpJobbnorgeBlock.employers?(0,n.createElement)(b.SelectControl,{multiple:!0,value:f.split(","),onChange:e=>o({employerID:e.toString()}),options:(null!==(B=wpJobbnorgeBlock.employers)&&void 0!==B?B:[]).map((e=>{var o;return{label:e.label,value:e.value,disabled:null!==(o=e?.disabled)&&void 0!==o&&o}})),className:"wp-block-dss-jobbnorge__placeholder-input",help:(0,u.__)("Select employers to display. Ctrl-click (Windows) or Cmd-click (Mac) to select multiple employers. Shift-click to select a range of employers.","wp-jobbnorge-block"),__nextHasNoMarginBottom:!0}):(0,n.createElement)(b.TextControl,{placeholder:(0,u.__)("Employer ID [,id2, id3, ..]","wp-jobbnorge-block"),value:f,onChange:e=>o({employerID:e}),className:"wp-block-dss-jobbnorge__placeholder-input"}),(0,n.createElement)(b.Button,{variant:"primary",type:"submit"},(0,u.__)("Save","wp-jobbnorge-block")))));const D=[{icon:p,title:(0,u.__)("Edit Jobbnorge URL","wp-jobbnorge-block"),onClick:()=>l(!0)},{icon:d,title:(0,u.__)("List view","wp-jobbnorge-block"),onClick:()=>o({blockLayout:"list"}),isActive:"list"===a},{icon:m,title:(0,u.__)("Grid view","wp-jobbnorge-block"),onClick:()=>o({blockLayout:"grid"}),isActive:"grid"===a}];return(0,n.createElement)(n.Fragment,null,(0,n.createElement)(c.BlockControls,null,(0,n.createElement)(b.ToolbarGroup,{controls:D})),(0,n.createElement)(c.InspectorControls,null,(0,n.createElement)(b.PanelBody,{title:(0,u.__)("Settings","wp-jobbnorge-block")},(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Enable pagination","wp-jobbnorge-block"),help:(0,u.__)("When enabled, all jobs will be displayed with pagination controls. When disabled, only the specified number of jobs will be shown.","wp-jobbnorge-block"),checked:E,onChange:e=>o({enablePagination:e})}),!E&&(0,n.createElement)(b.RangeControl,{__nextHasNoMarginBottom:!0,label:(0,u.__)("Number of items","wp-jobbnorge-block"),value:_,onChange:e=>o({itemsToShow:e}),min:1,max:100,required:!0}),E&&(0,n.createElement)(b.RangeControl,{__nextHasNoMarginBottom:!0,label:(0,u.__)("Jobs per page","wp-jobbnorge-block"),value:C,onChange:e=>o({jobsPerPage:e}),min:1,max:50,required:!0}),f.includes(",")&&(0,n.createElement)(b.RadioControl,{label:(0,u.__)("Order by","wp-jobbnorge-block"),selected:j,options:[{label:(0,u.__)("Deadline","wp-jobbnorge-block"),value:"Deadline"},{label:(0,u.__)("Employer","wp-jobbnorge-block"),value:"Employer"}],onChange:e=>o({orderBy:e})}),(0,n.createElement)(b.TextareaControl,{label:(0,u.__)("No jobs found message","wp-jobbnorge-block"),help:(0,u.__)("Message to display if no jobs are found","wp-jobbnorge-block"),value:k||(0,u.__)("There are no jobs at this time.","wp-jobbnorge-block"),onChange:e=>o({noJobsMessage:e})})),(0,n.createElement)(b.PanelBody,{title:(0,u.__)("Item","wp-jobbnorge-block")},(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display employer","wp-jobbnorge-block"),checked:y,onChange:x("displayEmployer")}),(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display excerpt","wp-jobbnorge-block"),checked:v,onChange:x("displayExcerpt")}),(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display deadline","wp-jobbnorge-block"),checked:h,onChange:x("displayDate")}),(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display scope","wp-jobbnorge-block"),checked:g,onChange:x("displayScope")})),"grid"===a&&(0,n.createElement)(b.PanelBody,{title:(0,u.__)("Grid view","wp-jobbnorge-block")},(0,n.createElement)(b.RangeControl,{__nextHasNoMarginBottom:!0,label:(0,u.__)("Columns","wp-jobbnorge-block"),value:i,onChange:e=>o({columns:e}),min:2,max:6,required:!0}))),(0,n.createElement)("div",{...S},(0,n.createElement)(b.Disabled,null,(0,n.createElement)(w(),{block:"dss/jobbnorge",attributes:e,httpMethod:"POST"}))))}}})}},t={};function n(e){var l=t[e];if(void 0!==l)return l.exports;var r=t[e]={exports:{}};return o[e](r,r.exports,n),r.exports}n.m=o,e=[],n.O=function(o,t,l,r){if(!t){var a=1/0;for(s=0;s<e.length;s++){t=e[s][0],l=e[s][1],r=e[s][2];for(var i=!0,c=0;c<t.length;c++)(!1&r||a>=r)&&Object.keys(n.O).every((function(e){return n.O[e](t[c])}))?t.splice(c--,1):(i=!1,r<a&&(a=r));if(i){e.splice(s--,1);var b=l();void 0!==b&&(o=b)}}return o}r=r||0;for(var s=e.length;s>0&&e[s-1][2]>r;s--)e[s]=e[s-1];e[s]=[t,l,r]},n.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(o,{a:o}),o},n.d=function(e,o){for(var t in o)n.o(o,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},n.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},function(){var e={410:0,308:0};n.O.j=function(o){return 0===e[o]};var o=function(o,t){var l,r,a=t[0],i=t[1],c=t[2],b=0;if(a.some((function(o){return 0!==e[o]}))){for(l in i)n.o(i,l)&&(n.m[l]=i[l]);if(c)var s=c(n)}for(o&&o(t);b<a.length;b++)r=a[b],n.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return n.O(s)},t=self.webpackChunkjobbnorge_block=self.webpackChunkjobbnorge_block||[];t.forEach(o.bind(null,0)),t.push=o.bind(null,t.push.bind(t))}();var l=n.O(void 0,[308],(function(){return n(938)}));l=n.O(l)}(); -
jobbnorge-block/tags/2.2.1/build/pagination.asset.php
r3322139 r3322310 1 <?php return array('dependencies' => array(), 'version' => ' 56079d1585ce2446b104');1 <?php return array('dependencies' => array(), 'version' => '09b126faf8a7661ac618'); -
jobbnorge-block/tags/2.2.1/build/pagination.js
r3322139 r3322310 1 !function(){"use strict";function e(){document.querySelectorAll(".wp-block-dss-jobbnorge__pagination").forEach((function(e){const o=e.closest(".wp-block-dss-jobbnorge");if(!o)return;const n=o.getAttribute("data-attributes");if(!n)return;let r;try{r=JSON.parse(n)}catch(e){return void console.error("Failed to parse block attributes:",e)}const a=e.querySelector(".wp-block-dss-jobbnorge__pagination-prev"), s=e.querySelector(".wp-block-dss-jobbnorge__pagination-next");a&&!a.disabled&&a.addEventListener("click",(function(e){e.preventDefault(),t(parseInt(this.getAttribute("data-page")),r,o)})),s&&!s.disabled&&s.addEventListener("click",(function(e){e.preventDefault(),t(parseInt(this.getAttribute("data-page")),r,o)}))}))}function t(t,n,r){r.classList.add("wp-block-dss-jobbnorge__loading"),r.querySelectorAll(".wp-block-dss-jobbnorge__pagination button").forEach((function(e){e.disabled=!0}));const a=new FormData;a.append("action","jobbnorge_get_jobs"),a.append("page",t),a.append("attributes",JSON.stringify(n)),a.append("nonce",jobbnorgeAjax.nonce),fetch(jobbnorgeAjax.ajaxUrl,{method:"POST",body:a}).then((function(e){return e.json()})).then((function(n){n.success?(r.innerHTML=n.data.html,e(),r.scrollIntoView({behavior:"smooth",block:"start"}),function(e){if(history.pushState){const t=new URL(window.location);e>1?t.searchParams.set("jobbnorge_page",e):t.searchParams.delete("jobbnorge_page"),history.pushState({page:e},"",t)}}(t)):(console.error("AJAX request failed:",n.data),o(r,"Failed to load page. Please try again."))})).catch((function(e){console.error("AJAX request error:",e),o(r,"An error occurred while loading the page.")})).finally((function(){r.classList.remove("wp-block-dss-jobbnorge__loading")}))}function o(e,t){const o=document.createElement("div");o.className="wp-block-dss-jobbnorge__error notice notice-error",o.innerHTML="<p>"+t+"</p>",e.insertBefore(o,e.firstChild),setTimeout((function(){o.parentNode&&o.parentNode.removeChild(o)}),5e3)}document.addEventListener("DOMContentLoaded",(function(){e()})),window.addEventListener("popstate",(function(e){e.state&&e.state.page&&window.location.reload()}))}();1 !function(){"use strict";function e(){document.querySelectorAll(".wp-block-dss-jobbnorge__pagination").forEach((function(e){const o=e.closest(".wp-block-dss-jobbnorge");if(!o)return;const n=o.getAttribute("data-attributes");if(!n)return;let r;try{r=JSON.parse(n)}catch(e){return void console.error("Failed to parse block attributes:",e)}const a=e.querySelector(".wp-block-dss-jobbnorge__pagination-prev"),i=e.querySelector(".wp-block-dss-jobbnorge__pagination-next");a&&!a.disabled&&a.addEventListener("click",(function(e){e.preventDefault(),t(parseInt(this.getAttribute("data-page")),r,o)})),i&&!i.disabled&&i.addEventListener("click",(function(e){e.preventDefault(),t(parseInt(this.getAttribute("data-page")),r,o)}))}))}function t(t,n,r){r.classList.add("wp-block-dss-jobbnorge__loading"),r.querySelectorAll(".wp-block-dss-jobbnorge__pagination button").forEach((function(e){e.disabled=!0}));const a=new FormData;a.append("action","jobbnorge_get_jobs"),a.append("page",t),a.append("attributes",JSON.stringify(n)),a.append("nonce",jobbnorgeAjax.nonce),fetch(jobbnorgeAjax.ajaxUrl,{method:"POST",body:a}).then((function(e){return e.json()})).then((function(n){if(n.success){r.innerHTML=n.data.html,e();const o=r.getBoundingClientRect(),a=2*parseFloat(getComputedStyle(document.documentElement).fontSize),i=window.pageYOffset+o.top-a;window.scrollTo({top:i,behavior:"smooth"}),function(e){if(history.pushState){const t=new URL(window.location);e>1?t.searchParams.set("jobbnorge_page",e):t.searchParams.delete("jobbnorge_page"),history.pushState({page:e},"",t)}}(t)}else console.error("AJAX request failed:",n.data),o(r,"Failed to load page. Please try again.")})).catch((function(e){console.error("AJAX request error:",e),o(r,"An error occurred while loading the page.")})).finally((function(){r.classList.remove("wp-block-dss-jobbnorge__loading")}))}function o(e,t){const o=document.createElement("div");o.className="wp-block-dss-jobbnorge__error notice notice-error",o.innerHTML="<p>"+t+"</p>",e.insertBefore(o,e.firstChild),setTimeout((function(){o.parentNode&&o.parentNode.removeChild(o)}),5e3)}document.addEventListener("DOMContentLoaded",(function(){e()})),window.addEventListener("popstate",(function(e){e.state&&e.state.page&&window.location.reload()}))}(); -
jobbnorge-block/tags/2.2.1/package-lock.json
r3322139 r3322310 1 1 { 2 2 "name": "jobbnorge-block", 3 "version": "2.2. 0",3 "version": "2.2.1", 4 4 "lockfileVersion": 3, 5 5 "requires": true, … … 7 7 "": { 8 8 "name": "jobbnorge-block", 9 "version": "2.2. 0",9 "version": "2.2.1", 10 10 "license": "GPL-2.0-or-later", 11 11 "dependencies": { -
jobbnorge-block/tags/2.2.1/package.json
r3322139 r3322310 1 1 { 2 2 "name": "jobbnorge-block", 3 "version": "2.2. 0",3 "version": "2.2.1", 4 4 "description": "Jobbnorge Block for WordPress Gutenberg", 5 5 "author": "Per Søderlind <[email protected]>", -
jobbnorge-block/tags/2.2.1/readme.txt
r3322144 r3322310 5 5 Requires at least: 6.5 6 6 Requires PHP: 8.2 7 Stable tag: 2.2. 07 Stable tag: 2.2.1 8 8 License: GPL-2.0-or-later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 104 104 == Changelog == 105 105 106 = 2.2.1 = 107 108 * FIX: Fix grid view not working in editor and frontend by properly configuring CSS file references 109 * FIX: Add grid styles to editor.scss to ensure grid layout works in WordPress block editor 110 * ENHANCEMENT: Update webpack configuration to build editor and style CSS separately 111 * ENHANCEMENT: Improve pagination scroll behavior to position 2em above block for better user experience 112 106 113 = 2.2.0 = 107 114 -
jobbnorge-block/tags/2.2.1/src/block.json
r3322139 r3322310 3 3 "apiVersion": 2, 4 4 "name": "dss/jobbnorge", 5 "version": "2.2. 0",5 "version": "2.2.1", 6 6 "title": "Jobbnorge", 7 7 "category": "widgets", -
jobbnorge-block/tags/2.2.1/src/pagination.js
r3322139 r3322310 98 98 initializePagination(); 99 99 100 // Scroll to top of block 101 container.scrollIntoView({ 102 behavior: 'smooth', 103 block: 'start' 100 // Scroll to 2em above the top of the block 101 const containerRect = container.getBoundingClientRect(); 102 const twoEm = parseFloat(getComputedStyle(document.documentElement).fontSize) * 2; 103 const targetPosition = window.pageYOffset + containerRect.top - twoEm; 104 105 window.scrollTo({ 106 top: targetPosition, 107 behavior: 'smooth' 104 108 }); 105 109 -
jobbnorge-block/tags/2.2.1/wp-jobb-norge.php
r3322139 r3322310 6 6 * Requires at least: 5.9 7 7 * Requires PHP: 7.0 8 * Version: 2.2. 08 * Version: 2.2.1 9 9 * Author: PerS 10 10 * License: GPL-2.0-or-later -
jobbnorge-block/trunk/CHANGELOG.md
r3322139 r3322310 1 1 # Changelog 2 3 ## 2.2.1 4 5 * **FIX**: Fix grid view not working in editor and frontend by properly configuring CSS file references 6 * **FIX**: Add grid styles to editor.scss to ensure grid layout works in WordPress block editor 7 * **ENHANCEMENT**: Update webpack configuration to build editor and style CSS separately 8 * **ENHANCEMENT**: Improve pagination scroll behavior to position 2em above block for better user experience 2 9 3 10 ## 2.2.0 -
jobbnorge-block/trunk/build/block.json
r3322139 r3322310 3 3 "apiVersion": 2, 4 4 "name": "dss/jobbnorge", 5 "version": "2.2. 0",5 "version": "2.2.1", 6 6 "title": "Jobbnorge", 7 7 "category": "widgets", -
jobbnorge-block/trunk/build/init.asset.php
r3322139 r3322310 1 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-primitives', 'wp-server-side-render'), 'version' => ' 7c82361092d9d86c438b');1 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-primitives', 'wp-server-side-render'), 'version' => '61f15486ca2a09f57b75'); -
jobbnorge-block/trunk/build/init.js
r3322139 r3322310 1 !function(){"use strict";var e,o={938:function(e,o,t){var n=window.React,l=window.wp.primitives,r=(0,n.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(l.Path,{d:"M15.5 9.5a1 1 0 100-2 1 1 0 000 2zm0 1.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zm-2.25 6v-2a2.75 2.75 0 00-2.75-2.75h-4A2.75 2.75 0 003.75 15v2h1.5v-2c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v2h1.5zm7-2v2h-1.5v-2c0-.69-.56-1.25-1.25-1.25H15v-1.5h2.5A2.75 2.75 0 0120.25 15zM9.5 8.5a1 1 0 11-2 0 1 1 0 012 0zm1.5 0a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z",fillRule:"evenodd"})),a=window.wp.blocks,i=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"dss/jobbnorge","version":"2.2. 0","title":"Jobbnorge","category":"widgets","icon":"people","description":"Retrieve and display job listings from Jobbnorge.no","keywords":["jobbnorge","jobbnorge.no"],"supports":{"html":false},"attributes":{"columns":{"type":"number","default":3},"blockLayout":{"type":"string","default":"list"},"employerID":{"type":"string","default":""},"noJobsMessage":{"type":"string","default":""},"orderBy":{"type":"string","default":"Deadline"},"itemsToShow":{"type":"number","default":5},"displayEmployer":{"type":"boolean","default":false},"displayExcerpt":{"type":"boolean","default":true},"displayDeadline":{"type":"boolean","default":false},"displayScope":{"type":"boolean","default":false},"displayDate":{"type":"boolean","default":true},"excerptLength":{"type":"number","default":55},"enablePagination":{"type":"boolean","default":true},"jobsPerPage":{"type":"number","default":10}},"textdomain":"wp-jobbnorge-block","editorScript":"file:init.js","editorStyle":"file:editor.css","style":"file:style-init.css"}'),c=window.wp.blockEditor,b=window.wp.components,s=window.wp.element,p=(0,n.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(l.Path,{d:"m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z"})),d=(0,n.createElement)(l.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,n.createElement)(l.Path,{d:"M4 4v1.5h16V4H4zm8 8.5h8V11h-8v1.5zM4 20h16v-1.5H4V20zm4-8c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2z"})),m=(0,n.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(l.Path,{d:"m3 5c0-1.10457.89543-2 2-2h13.5c1.1046 0 2 .89543 2 2v13.5c0 1.1046-.8954 2-2 2h-13.5c-1.10457 0-2-.8954-2-2zm2-.5h6v6.5h-6.5v-6c0-.27614.22386-.5.5-.5zm-.5 8v6c0 .2761.22386.5.5.5h6v-6.5zm8 0v6.5h6c.2761 0 .5-.2239.5-.5v-6zm0-8v6.5h6.5v-6c0-.27614-.2239-.5-.5-.5z",fillRule:"evenodd",clipRule:"evenodd"})),u=window.wp.i18n,g=window.wp.serverSideRender,w=t.n(g);const{name:h}=i;(e=>{const{metadata:o,settings:t,name:n}=e;(0,a.registerBlockType)({name:n,...o},t)})({name:h,metadata:i,settings:{icon:r,example:{attributes:{employerID:"123[, 456, 789]"}},edit:function({attributes:e,setAttributes:o}){const[t,l]=(0,s.useState)(!e.employerID),{blockLayout:a,columns:i,displayScope:g,displayDate:h,displayEmployer:y,displayExcerpt:v,employerID:f,itemsToShow:_,noJobsMessage:k,orderBy:j,enablePagination:E,jobsPerPage:C}=e;function x(t){return()=>{const n=e[t];o({[t]:!n})}}const S=(0,c.useBlockProps)();var B;if(t)return(0,n.createElement)("div",{...S},(0,n.createElement)(b.Placeholder,{icon:r,label:"Jobbnorge"},(0,n.createElement)("form",{onSubmit:function(e){e.preventDefault(),f&&(o({employerID:f}),l(!1))},className:"wp-block-dss-jobbnorge__placeholder-form"},window.wpJobbnorgeBlock&&window.wpJobbnorgeBlock.employers?(0,n.createElement)(b.SelectControl,{multiple:!0,value:f.split(","),onChange:e=>o({employerID:e.toString()}),options:(null!==(B=wpJobbnorgeBlock.employers)&&void 0!==B?B:[]).map((e=>{var o;return{label:e.label,value:e.value,disabled:null!==(o=e?.disabled)&&void 0!==o&&o}})),className:"wp-block-dss-jobbnorge__placeholder-input",help:(0,u.__)("Select employers to display. Ctrl-click (Windows) or Cmd-click (Mac) to select multiple employers. Shift-click to select a range of employers.","wp-jobbnorge-block"),__nextHasNoMarginBottom:!0}):(0,n.createElement)(b.TextControl,{placeholder:(0,u.__)("Employer ID [,id2, id3, ..]","wp-jobbnorge-block"),value:f,onChange:e=>o({employerID:e}),className:"wp-block-dss-jobbnorge__placeholder-input"}),(0,n.createElement)(b.Button,{variant:"primary",type:"submit"},(0,u.__)("Save","wp-jobbnorge-block")))));const D=[{icon:p,title:(0,u.__)("Edit Jobbnorge URL","wp-jobbnorge-block"),onClick:()=>l(!0)},{icon:d,title:(0,u.__)("List view","wp-jobbnorge-block"),onClick:()=>o({blockLayout:"list"}),isActive:"list"===a},{icon:m,title:(0,u.__)("Grid view","wp-jobbnorge-block"),onClick:()=>o({blockLayout:"grid"}),isActive:"grid"===a}];return(0,n.createElement)(n.Fragment,null,(0,n.createElement)(c.BlockControls,null,(0,n.createElement)(b.ToolbarGroup,{controls:D})),(0,n.createElement)(c.InspectorControls,null,(0,n.createElement)(b.PanelBody,{title:(0,u.__)("Settings","wp-jobbnorge-block")},(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Enable pagination","wp-jobbnorge-block"),help:(0,u.__)("When enabled, all jobs will be displayed with pagination controls. When disabled, only the specified number of jobs will be shown.","wp-jobbnorge-block"),checked:E,onChange:e=>o({enablePagination:e})}),!E&&(0,n.createElement)(b.RangeControl,{__nextHasNoMarginBottom:!0,label:(0,u.__)("Number of items","wp-jobbnorge-block"),value:_,onChange:e=>o({itemsToShow:e}),min:1,max:100,required:!0}),E&&(0,n.createElement)(b.RangeControl,{__nextHasNoMarginBottom:!0,label:(0,u.__)("Jobs per page","wp-jobbnorge-block"),value:C,onChange:e=>o({jobsPerPage:e}),min:1,max:50,required:!0}),f.includes(",")&&(0,n.createElement)(b.RadioControl,{label:(0,u.__)("Order by","wp-jobbnorge-block"),selected:j,options:[{label:(0,u.__)("Deadline","wp-jobbnorge-block"),value:"Deadline"},{label:(0,u.__)("Employer","wp-jobbnorge-block"),value:"Employer"}],onChange:e=>o({orderBy:e})}),(0,n.createElement)(b.TextareaControl,{label:(0,u.__)("No jobs found message","wp-jobbnorge-block"),help:(0,u.__)("Message to display if no jobs are found","wp-jobbnorge-block"),value:k||(0,u.__)("There are no jobs at this time.","wp-jobbnorge-block"),onChange:e=>o({noJobsMessage:e})})),(0,n.createElement)(b.PanelBody,{title:(0,u.__)("Item","wp-jobbnorge-block")},(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display employer","wp-jobbnorge-block"),checked:y,onChange:x("displayEmployer")}),(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display excerpt","wp-jobbnorge-block"),checked:v,onChange:x("displayExcerpt")}),(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display deadline","wp-jobbnorge-block"),checked:h,onChange:x("displayDate")}),(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display scope","wp-jobbnorge-block"),checked:g,onChange:x("displayScope")})),"grid"===a&&(0,n.createElement)(b.PanelBody,{title:(0,u.__)("Grid view","wp-jobbnorge-block")},(0,n.createElement)(b.RangeControl,{__nextHasNoMarginBottom:!0,label:(0,u.__)("Columns","wp-jobbnorge-block"),value:i,onChange:e=>o({columns:e}),min:2,max:6,required:!0}))),(0,n.createElement)("div",{...S},(0,n.createElement)(b.Disabled,null,(0,n.createElement)(w(),{block:"dss/jobbnorge",attributes:e,httpMethod:"POST"}))))}}})}},t={};function n(e){var l=t[e];if(void 0!==l)return l.exports;var r=t[e]={exports:{}};return o[e](r,r.exports,n),r.exports}n.m=o,e=[],n.O=function(o,t,l,r){if(!t){var a=1/0;for(s=0;s<e.length;s++){t=e[s][0],l=e[s][1],r=e[s][2];for(var i=!0,c=0;c<t.length;c++)(!1&r||a>=r)&&Object.keys(n.O).every((function(e){return n.O[e](t[c])}))?t.splice(c--,1):(i=!1,r<a&&(a=r));if(i){e.splice(s--,1);var b=l();void 0!==b&&(o=b)}}return o}r=r||0;for(var s=e.length;s>0&&e[s-1][2]>r;s--)e[s]=e[s-1];e[s]=[t,l,r]},n.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(o,{a:o}),o},n.d=function(e,o){for(var t in o)n.o(o,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},n.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},function(){var e={410:0,308:0};n.O.j=function(o){return 0===e[o]};var o=function(o,t){var l,r,a=t[0],i=t[1],c=t[2],b=0;if(a.some((function(o){return 0!==e[o]}))){for(l in i)n.o(i,l)&&(n.m[l]=i[l]);if(c)var s=c(n)}for(o&&o(t);b<a.length;b++)r=a[b],n.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return n.O(s)},t=self.webpackChunkjobbnorge_block=self.webpackChunkjobbnorge_block||[];t.forEach(o.bind(null,0)),t.push=o.bind(null,t.push.bind(t))}();var l=n.O(void 0,[308],(function(){return n(938)}));l=n.O(l)}();1 !function(){"use strict";var e,o={938:function(e,o,t){var n=window.React,l=window.wp.primitives,r=(0,n.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(l.Path,{d:"M15.5 9.5a1 1 0 100-2 1 1 0 000 2zm0 1.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zm-2.25 6v-2a2.75 2.75 0 00-2.75-2.75h-4A2.75 2.75 0 003.75 15v2h1.5v-2c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v2h1.5zm7-2v2h-1.5v-2c0-.69-.56-1.25-1.25-1.25H15v-1.5h2.5A2.75 2.75 0 0120.25 15zM9.5 8.5a1 1 0 11-2 0 1 1 0 012 0zm1.5 0a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z",fillRule:"evenodd"})),a=window.wp.blocks,i=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"dss/jobbnorge","version":"2.2.1","title":"Jobbnorge","category":"widgets","icon":"people","description":"Retrieve and display job listings from Jobbnorge.no","keywords":["jobbnorge","jobbnorge.no"],"supports":{"html":false},"attributes":{"columns":{"type":"number","default":3},"blockLayout":{"type":"string","default":"list"},"employerID":{"type":"string","default":""},"noJobsMessage":{"type":"string","default":""},"orderBy":{"type":"string","default":"Deadline"},"itemsToShow":{"type":"number","default":5},"displayEmployer":{"type":"boolean","default":false},"displayExcerpt":{"type":"boolean","default":true},"displayDeadline":{"type":"boolean","default":false},"displayScope":{"type":"boolean","default":false},"displayDate":{"type":"boolean","default":true},"excerptLength":{"type":"number","default":55},"enablePagination":{"type":"boolean","default":true},"jobsPerPage":{"type":"number","default":10}},"textdomain":"wp-jobbnorge-block","editorScript":"file:init.js","editorStyle":"file:editor.css","style":"file:style-init.css"}'),c=window.wp.blockEditor,b=window.wp.components,s=window.wp.element,p=(0,n.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(l.Path,{d:"m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z"})),d=(0,n.createElement)(l.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,n.createElement)(l.Path,{d:"M4 4v1.5h16V4H4zm8 8.5h8V11h-8v1.5zM4 20h16v-1.5H4V20zm4-8c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2z"})),m=(0,n.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(l.Path,{d:"m3 5c0-1.10457.89543-2 2-2h13.5c1.1046 0 2 .89543 2 2v13.5c0 1.1046-.8954 2-2 2h-13.5c-1.10457 0-2-.8954-2-2zm2-.5h6v6.5h-6.5v-6c0-.27614.22386-.5.5-.5zm-.5 8v6c0 .2761.22386.5.5.5h6v-6.5zm8 0v6.5h6c.2761 0 .5-.2239.5-.5v-6zm0-8v6.5h6.5v-6c0-.27614-.2239-.5-.5-.5z",fillRule:"evenodd",clipRule:"evenodd"})),u=window.wp.i18n,g=window.wp.serverSideRender,w=t.n(g);const{name:h}=i;(e=>{const{metadata:o,settings:t,name:n}=e;(0,a.registerBlockType)({name:n,...o},t)})({name:h,metadata:i,settings:{icon:r,example:{attributes:{employerID:"123[, 456, 789]"}},edit:function({attributes:e,setAttributes:o}){const[t,l]=(0,s.useState)(!e.employerID),{blockLayout:a,columns:i,displayScope:g,displayDate:h,displayEmployer:y,displayExcerpt:v,employerID:f,itemsToShow:_,noJobsMessage:k,orderBy:j,enablePagination:E,jobsPerPage:C}=e;function x(t){return()=>{const n=e[t];o({[t]:!n})}}const S=(0,c.useBlockProps)();var B;if(t)return(0,n.createElement)("div",{...S},(0,n.createElement)(b.Placeholder,{icon:r,label:"Jobbnorge"},(0,n.createElement)("form",{onSubmit:function(e){e.preventDefault(),f&&(o({employerID:f}),l(!1))},className:"wp-block-dss-jobbnorge__placeholder-form"},window.wpJobbnorgeBlock&&window.wpJobbnorgeBlock.employers?(0,n.createElement)(b.SelectControl,{multiple:!0,value:f.split(","),onChange:e=>o({employerID:e.toString()}),options:(null!==(B=wpJobbnorgeBlock.employers)&&void 0!==B?B:[]).map((e=>{var o;return{label:e.label,value:e.value,disabled:null!==(o=e?.disabled)&&void 0!==o&&o}})),className:"wp-block-dss-jobbnorge__placeholder-input",help:(0,u.__)("Select employers to display. Ctrl-click (Windows) or Cmd-click (Mac) to select multiple employers. Shift-click to select a range of employers.","wp-jobbnorge-block"),__nextHasNoMarginBottom:!0}):(0,n.createElement)(b.TextControl,{placeholder:(0,u.__)("Employer ID [,id2, id3, ..]","wp-jobbnorge-block"),value:f,onChange:e=>o({employerID:e}),className:"wp-block-dss-jobbnorge__placeholder-input"}),(0,n.createElement)(b.Button,{variant:"primary",type:"submit"},(0,u.__)("Save","wp-jobbnorge-block")))));const D=[{icon:p,title:(0,u.__)("Edit Jobbnorge URL","wp-jobbnorge-block"),onClick:()=>l(!0)},{icon:d,title:(0,u.__)("List view","wp-jobbnorge-block"),onClick:()=>o({blockLayout:"list"}),isActive:"list"===a},{icon:m,title:(0,u.__)("Grid view","wp-jobbnorge-block"),onClick:()=>o({blockLayout:"grid"}),isActive:"grid"===a}];return(0,n.createElement)(n.Fragment,null,(0,n.createElement)(c.BlockControls,null,(0,n.createElement)(b.ToolbarGroup,{controls:D})),(0,n.createElement)(c.InspectorControls,null,(0,n.createElement)(b.PanelBody,{title:(0,u.__)("Settings","wp-jobbnorge-block")},(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Enable pagination","wp-jobbnorge-block"),help:(0,u.__)("When enabled, all jobs will be displayed with pagination controls. When disabled, only the specified number of jobs will be shown.","wp-jobbnorge-block"),checked:E,onChange:e=>o({enablePagination:e})}),!E&&(0,n.createElement)(b.RangeControl,{__nextHasNoMarginBottom:!0,label:(0,u.__)("Number of items","wp-jobbnorge-block"),value:_,onChange:e=>o({itemsToShow:e}),min:1,max:100,required:!0}),E&&(0,n.createElement)(b.RangeControl,{__nextHasNoMarginBottom:!0,label:(0,u.__)("Jobs per page","wp-jobbnorge-block"),value:C,onChange:e=>o({jobsPerPage:e}),min:1,max:50,required:!0}),f.includes(",")&&(0,n.createElement)(b.RadioControl,{label:(0,u.__)("Order by","wp-jobbnorge-block"),selected:j,options:[{label:(0,u.__)("Deadline","wp-jobbnorge-block"),value:"Deadline"},{label:(0,u.__)("Employer","wp-jobbnorge-block"),value:"Employer"}],onChange:e=>o({orderBy:e})}),(0,n.createElement)(b.TextareaControl,{label:(0,u.__)("No jobs found message","wp-jobbnorge-block"),help:(0,u.__)("Message to display if no jobs are found","wp-jobbnorge-block"),value:k||(0,u.__)("There are no jobs at this time.","wp-jobbnorge-block"),onChange:e=>o({noJobsMessage:e})})),(0,n.createElement)(b.PanelBody,{title:(0,u.__)("Item","wp-jobbnorge-block")},(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display employer","wp-jobbnorge-block"),checked:y,onChange:x("displayEmployer")}),(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display excerpt","wp-jobbnorge-block"),checked:v,onChange:x("displayExcerpt")}),(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display deadline","wp-jobbnorge-block"),checked:h,onChange:x("displayDate")}),(0,n.createElement)(b.ToggleControl,{label:(0,u.__)("Display scope","wp-jobbnorge-block"),checked:g,onChange:x("displayScope")})),"grid"===a&&(0,n.createElement)(b.PanelBody,{title:(0,u.__)("Grid view","wp-jobbnorge-block")},(0,n.createElement)(b.RangeControl,{__nextHasNoMarginBottom:!0,label:(0,u.__)("Columns","wp-jobbnorge-block"),value:i,onChange:e=>o({columns:e}),min:2,max:6,required:!0}))),(0,n.createElement)("div",{...S},(0,n.createElement)(b.Disabled,null,(0,n.createElement)(w(),{block:"dss/jobbnorge",attributes:e,httpMethod:"POST"}))))}}})}},t={};function n(e){var l=t[e];if(void 0!==l)return l.exports;var r=t[e]={exports:{}};return o[e](r,r.exports,n),r.exports}n.m=o,e=[],n.O=function(o,t,l,r){if(!t){var a=1/0;for(s=0;s<e.length;s++){t=e[s][0],l=e[s][1],r=e[s][2];for(var i=!0,c=0;c<t.length;c++)(!1&r||a>=r)&&Object.keys(n.O).every((function(e){return n.O[e](t[c])}))?t.splice(c--,1):(i=!1,r<a&&(a=r));if(i){e.splice(s--,1);var b=l();void 0!==b&&(o=b)}}return o}r=r||0;for(var s=e.length;s>0&&e[s-1][2]>r;s--)e[s]=e[s-1];e[s]=[t,l,r]},n.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(o,{a:o}),o},n.d=function(e,o){for(var t in o)n.o(o,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},n.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},function(){var e={410:0,308:0};n.O.j=function(o){return 0===e[o]};var o=function(o,t){var l,r,a=t[0],i=t[1],c=t[2],b=0;if(a.some((function(o){return 0!==e[o]}))){for(l in i)n.o(i,l)&&(n.m[l]=i[l]);if(c)var s=c(n)}for(o&&o(t);b<a.length;b++)r=a[b],n.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return n.O(s)},t=self.webpackChunkjobbnorge_block=self.webpackChunkjobbnorge_block||[];t.forEach(o.bind(null,0)),t.push=o.bind(null,t.push.bind(t))}();var l=n.O(void 0,[308],(function(){return n(938)}));l=n.O(l)}(); -
jobbnorge-block/trunk/build/pagination.asset.php
r3322139 r3322310 1 <?php return array('dependencies' => array(), 'version' => ' 56079d1585ce2446b104');1 <?php return array('dependencies' => array(), 'version' => '09b126faf8a7661ac618'); -
jobbnorge-block/trunk/build/pagination.js
r3322139 r3322310 1 !function(){"use strict";function e(){document.querySelectorAll(".wp-block-dss-jobbnorge__pagination").forEach((function(e){const o=e.closest(".wp-block-dss-jobbnorge");if(!o)return;const n=o.getAttribute("data-attributes");if(!n)return;let r;try{r=JSON.parse(n)}catch(e){return void console.error("Failed to parse block attributes:",e)}const a=e.querySelector(".wp-block-dss-jobbnorge__pagination-prev"), s=e.querySelector(".wp-block-dss-jobbnorge__pagination-next");a&&!a.disabled&&a.addEventListener("click",(function(e){e.preventDefault(),t(parseInt(this.getAttribute("data-page")),r,o)})),s&&!s.disabled&&s.addEventListener("click",(function(e){e.preventDefault(),t(parseInt(this.getAttribute("data-page")),r,o)}))}))}function t(t,n,r){r.classList.add("wp-block-dss-jobbnorge__loading"),r.querySelectorAll(".wp-block-dss-jobbnorge__pagination button").forEach((function(e){e.disabled=!0}));const a=new FormData;a.append("action","jobbnorge_get_jobs"),a.append("page",t),a.append("attributes",JSON.stringify(n)),a.append("nonce",jobbnorgeAjax.nonce),fetch(jobbnorgeAjax.ajaxUrl,{method:"POST",body:a}).then((function(e){return e.json()})).then((function(n){n.success?(r.innerHTML=n.data.html,e(),r.scrollIntoView({behavior:"smooth",block:"start"}),function(e){if(history.pushState){const t=new URL(window.location);e>1?t.searchParams.set("jobbnorge_page",e):t.searchParams.delete("jobbnorge_page"),history.pushState({page:e},"",t)}}(t)):(console.error("AJAX request failed:",n.data),o(r,"Failed to load page. Please try again."))})).catch((function(e){console.error("AJAX request error:",e),o(r,"An error occurred while loading the page.")})).finally((function(){r.classList.remove("wp-block-dss-jobbnorge__loading")}))}function o(e,t){const o=document.createElement("div");o.className="wp-block-dss-jobbnorge__error notice notice-error",o.innerHTML="<p>"+t+"</p>",e.insertBefore(o,e.firstChild),setTimeout((function(){o.parentNode&&o.parentNode.removeChild(o)}),5e3)}document.addEventListener("DOMContentLoaded",(function(){e()})),window.addEventListener("popstate",(function(e){e.state&&e.state.page&&window.location.reload()}))}();1 !function(){"use strict";function e(){document.querySelectorAll(".wp-block-dss-jobbnorge__pagination").forEach((function(e){const o=e.closest(".wp-block-dss-jobbnorge");if(!o)return;const n=o.getAttribute("data-attributes");if(!n)return;let r;try{r=JSON.parse(n)}catch(e){return void console.error("Failed to parse block attributes:",e)}const a=e.querySelector(".wp-block-dss-jobbnorge__pagination-prev"),i=e.querySelector(".wp-block-dss-jobbnorge__pagination-next");a&&!a.disabled&&a.addEventListener("click",(function(e){e.preventDefault(),t(parseInt(this.getAttribute("data-page")),r,o)})),i&&!i.disabled&&i.addEventListener("click",(function(e){e.preventDefault(),t(parseInt(this.getAttribute("data-page")),r,o)}))}))}function t(t,n,r){r.classList.add("wp-block-dss-jobbnorge__loading"),r.querySelectorAll(".wp-block-dss-jobbnorge__pagination button").forEach((function(e){e.disabled=!0}));const a=new FormData;a.append("action","jobbnorge_get_jobs"),a.append("page",t),a.append("attributes",JSON.stringify(n)),a.append("nonce",jobbnorgeAjax.nonce),fetch(jobbnorgeAjax.ajaxUrl,{method:"POST",body:a}).then((function(e){return e.json()})).then((function(n){if(n.success){r.innerHTML=n.data.html,e();const o=r.getBoundingClientRect(),a=2*parseFloat(getComputedStyle(document.documentElement).fontSize),i=window.pageYOffset+o.top-a;window.scrollTo({top:i,behavior:"smooth"}),function(e){if(history.pushState){const t=new URL(window.location);e>1?t.searchParams.set("jobbnorge_page",e):t.searchParams.delete("jobbnorge_page"),history.pushState({page:e},"",t)}}(t)}else console.error("AJAX request failed:",n.data),o(r,"Failed to load page. Please try again.")})).catch((function(e){console.error("AJAX request error:",e),o(r,"An error occurred while loading the page.")})).finally((function(){r.classList.remove("wp-block-dss-jobbnorge__loading")}))}function o(e,t){const o=document.createElement("div");o.className="wp-block-dss-jobbnorge__error notice notice-error",o.innerHTML="<p>"+t+"</p>",e.insertBefore(o,e.firstChild),setTimeout((function(){o.parentNode&&o.parentNode.removeChild(o)}),5e3)}document.addEventListener("DOMContentLoaded",(function(){e()})),window.addEventListener("popstate",(function(e){e.state&&e.state.page&&window.location.reload()}))}(); -
jobbnorge-block/trunk/package-lock.json
r3322139 r3322310 1 1 { 2 2 "name": "jobbnorge-block", 3 "version": "2.2. 0",3 "version": "2.2.1", 4 4 "lockfileVersion": 3, 5 5 "requires": true, … … 7 7 "": { 8 8 "name": "jobbnorge-block", 9 "version": "2.2. 0",9 "version": "2.2.1", 10 10 "license": "GPL-2.0-or-later", 11 11 "dependencies": { -
jobbnorge-block/trunk/package.json
r3322139 r3322310 1 1 { 2 2 "name": "jobbnorge-block", 3 "version": "2.2. 0",3 "version": "2.2.1", 4 4 "description": "Jobbnorge Block for WordPress Gutenberg", 5 5 "author": "Per Søderlind <[email protected]>", -
jobbnorge-block/trunk/readme.txt
r3322144 r3322310 5 5 Requires at least: 6.5 6 6 Requires PHP: 8.2 7 Stable tag: 2.2. 07 Stable tag: 2.2.1 8 8 License: GPL-2.0-or-later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 104 104 == Changelog == 105 105 106 = 2.2.1 = 107 108 * FIX: Fix grid view not working in editor and frontend by properly configuring CSS file references 109 * FIX: Add grid styles to editor.scss to ensure grid layout works in WordPress block editor 110 * ENHANCEMENT: Update webpack configuration to build editor and style CSS separately 111 * ENHANCEMENT: Improve pagination scroll behavior to position 2em above block for better user experience 112 106 113 = 2.2.0 = 107 114 -
jobbnorge-block/trunk/src/block.json
r3322139 r3322310 3 3 "apiVersion": 2, 4 4 "name": "dss/jobbnorge", 5 "version": "2.2. 0",5 "version": "2.2.1", 6 6 "title": "Jobbnorge", 7 7 "category": "widgets", -
jobbnorge-block/trunk/src/pagination.js
r3322139 r3322310 98 98 initializePagination(); 99 99 100 // Scroll to top of block 101 container.scrollIntoView({ 102 behavior: 'smooth', 103 block: 'start' 100 // Scroll to 2em above the top of the block 101 const containerRect = container.getBoundingClientRect(); 102 const twoEm = parseFloat(getComputedStyle(document.documentElement).fontSize) * 2; 103 const targetPosition = window.pageYOffset + containerRect.top - twoEm; 104 105 window.scrollTo({ 106 top: targetPosition, 107 behavior: 'smooth' 104 108 }); 105 109 -
jobbnorge-block/trunk/wp-jobb-norge.php
r3322139 r3322310 6 6 * Requires at least: 5.9 7 7 * Requires PHP: 7.0 8 * Version: 2.2. 08 * Version: 2.2.1 9 9 * Author: PerS 10 10 * License: GPL-2.0-or-later
Note: See TracChangeset
for help on using the changeset viewer.