udata 8.0.2.dev29304__py2.py3-none-any.whl → 9.1.0__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of udata might be problematic. Click here for more details.

Files changed (86) hide show
  1. udata/__init__.py +1 -1
  2. udata/api/__init__.py +2 -0
  3. udata/api/commands.py +0 -2
  4. udata/api_fields.py +41 -3
  5. udata/commands/db.py +88 -48
  6. udata/core/dataservices/factories.py +33 -0
  7. udata/core/dataservices/models.py +42 -4
  8. udata/core/dataservices/rdf.py +106 -0
  9. udata/core/dataset/csv.py +8 -1
  10. udata/core/dataset/models.py +1 -2
  11. udata/core/dataset/rdf.py +37 -128
  12. udata/core/discussions/models.py +20 -0
  13. udata/core/organization/csv.py +5 -3
  14. udata/core/reports/__init__.py +0 -0
  15. udata/core/reports/api.py +44 -0
  16. udata/core/reports/constants.py +30 -0
  17. udata/core/reports/models.py +58 -0
  18. udata/core/reuse/csv.py +3 -0
  19. udata/core/site/api.py +33 -2
  20. udata/core/site/rdf.py +6 -1
  21. udata/core/spam/models.py +6 -0
  22. udata/core/topic/models.py +3 -2
  23. udata/core/topic/parsers.py +3 -2
  24. udata/core/user/apiv2.py +28 -0
  25. udata/db/__init__.py +0 -0
  26. udata/db/tasks.py +6 -0
  27. udata/features/notifications/__init__.py +0 -1
  28. udata/forms/fields.py +2 -2
  29. udata/harvest/api.py +19 -1
  30. udata/harvest/backends/base.py +118 -10
  31. udata/harvest/backends/dcat.py +28 -7
  32. udata/harvest/models.py +6 -0
  33. udata/harvest/tests/dcat/bnodes.xml +13 -2
  34. udata/harvest/tests/test_dcat_backend.py +21 -0
  35. udata/migrations/2024-06-11-fix-reuse-datasets-references.py +35 -0
  36. udata/models/__init__.py +1 -0
  37. udata/rdf.py +113 -2
  38. udata/routing.py +1 -1
  39. udata/settings.py +3 -1
  40. udata/static/admin.js +17 -17
  41. udata/static/admin.js.map +1 -1
  42. udata/static/chunks/{18.ad41fb75ac4226e1f3ce.js → 18.1922fd0b2b7fad122991.js} +3 -3
  43. udata/static/chunks/18.1922fd0b2b7fad122991.js.map +1 -0
  44. udata/static/chunks/{7.11ac4de064ae59691d49.js → 7.e2106342e94ee09393b1.js} +2 -2
  45. udata/static/chunks/7.e2106342e94ee09393b1.js.map +1 -0
  46. udata/static/common.js +1 -1
  47. udata/static/common.js.map +1 -1
  48. udata/storage/s3.py +3 -3
  49. udata/tasks.py +1 -0
  50. udata/tests/api/test_dataservices_api.py +26 -2
  51. udata/tests/api/test_datasets_api.py +1 -1
  52. udata/tests/api/test_reports_api.py +87 -0
  53. udata/tests/apiv2/test_me_api.py +40 -0
  54. udata/tests/dataset/test_dataset_rdf.py +19 -1
  55. udata/tests/frontend/test_auth.py +1 -4
  56. udata/tests/organization/test_csv_adapter.py +0 -1
  57. udata/tests/plugin.py +2 -0
  58. udata/tests/site/test_site_api.py +0 -1
  59. udata/tests/site/test_site_rdf.py +66 -0
  60. udata/tests/test_discussions.py +24 -34
  61. udata/tests/test_model.py +3 -2
  62. udata/tests/test_utils.py +1 -1
  63. udata/translations/ar/LC_MESSAGES/udata.mo +0 -0
  64. udata/translations/ar/LC_MESSAGES/udata.po +128 -64
  65. udata/translations/de/LC_MESSAGES/udata.mo +0 -0
  66. udata/translations/de/LC_MESSAGES/udata.po +128 -64
  67. udata/translations/es/LC_MESSAGES/udata.mo +0 -0
  68. udata/translations/es/LC_MESSAGES/udata.po +128 -64
  69. udata/translations/fr/LC_MESSAGES/udata.mo +0 -0
  70. udata/translations/fr/LC_MESSAGES/udata.po +128 -64
  71. udata/translations/it/LC_MESSAGES/udata.mo +0 -0
  72. udata/translations/it/LC_MESSAGES/udata.po +128 -64
  73. udata/translations/pt/LC_MESSAGES/udata.mo +0 -0
  74. udata/translations/pt/LC_MESSAGES/udata.po +128 -64
  75. udata/translations/sr/LC_MESSAGES/udata.mo +0 -0
  76. udata/translations/sr/LC_MESSAGES/udata.po +128 -64
  77. udata/translations/udata.pot +129 -65
  78. udata/uris.py +14 -13
  79. {udata-8.0.2.dev29304.dist-info → udata-9.1.0.dist-info}/METADATA +26 -7
  80. {udata-8.0.2.dev29304.dist-info → udata-9.1.0.dist-info}/RECORD +84 -72
  81. udata/static/chunks/18.ad41fb75ac4226e1f3ce.js.map +0 -1
  82. udata/static/chunks/7.11ac4de064ae59691d49.js.map +0 -1
  83. {udata-8.0.2.dev29304.dist-info → udata-9.1.0.dist-info}/LICENSE +0 -0
  84. {udata-8.0.2.dev29304.dist-info → udata-9.1.0.dist-info}/WHEEL +0 -0
  85. {udata-8.0.2.dev29304.dist-info → udata-9.1.0.dist-info}/entry_points.txt +0 -0
  86. {udata-8.0.2.dev29304.dist-info → udata-9.1.0.dist-info}/top_level.txt +0 -0
@@ -1,3 +1,3 @@
1
- webpackJsonp([18,31],{887:function(e,t,o){var s,a;s=o(1469),a=o(1566),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},985:function(e,t,o){var s,a;o(1001),s=o(993),a=o(998),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},986:function(e,t,o){var s,a;s=o(992),a=o(997),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},992:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=300,s=5e3;t.default={name:"alert-box",data:function(){return{closing:!1}},props:{alert:Object},computed:{closable:function(){return void 0===this.alert.closable||this.alert.closable},classes:function classes(){var classes={"alert-dismissable":this.closable,in:!this.closing};return classes["alert-"+(this.alert.type||"success")]=!0,classes},details:function(){if(this.alert&&this.alert.details)return this.alert.details.replace(/\n/g,"<br/>")}},methods:{close:function(){var e=this;this.closing=!0,setTimeout(function(){e.$dispatch("notify:close",e.alert)},o)}},ready:function(){var e=this;this.alert.autoclose&&setTimeout(function(){e.$dispatch("notify:close",e.alert)},s)}}},993:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"box",props:{title:String,icon:null,boxclass:{type:String,default:""},bodyclass:{type:String,default:""},footerclass:{type:String,default:""},loading:Boolean,footer:null}}},994:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(986),a=_interopRequireDefault(s);t.default={name:"notification-zone",components:{Alert:a.default}}},995:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".box .box-tools>*{float:right}.box .box-tools .text-muted{color:#777!important}.box .box-tools .box-search{width:180px;display:inline-block}.box .box-tools .box-search input:focus{box-shadow:none;border-color:transparent!important}.box .box-tools .box-search .btn,.box .box-tools .box-search input[type=text]{box-shadow:none;background-color:#fbfbfb;border:1px solid #fbfbfb}.box .box-tools .box-search .btn:focus,.box .box-tools .box-search input[type=text]:focus{background-color:#fff;color:#666}.box .box-tools .box-search .btn:focus+.input-group-btn .btn,.box .box-tools .box-search input[type=text]:focus+.input-group-btn .btn{background-color:#fff;border-left-color:#fff;color:#666}.box .box-tools .box-search>*{border-top:1px solid #eee;border-bottom:1px solid #eee}.box .box-tools .box-search>:first-child{border-left:1px solid #eee}.box .box-tools .box-search>:last-child{border-right:1px solid #eee}.box .box-tools .btn-box-tool{font-size:14px;padding:6px 8px}.box .box-tools .btn-group{vertical-align:inherit}.box form{margin:10px}","",{version:3,sources:["/./js/components/containers/box.vue"],names:[],mappings:"AAAA,kBAAkB,WAAW,CAAC,4BAA4B,oBAAqB,CAAC,4BAA4B,YAAY,oBAAoB,CAAC,wCAAwC,gBAAgB,kCAAmC,CAAC,8EAAgF,gBAAgB,yBAAyB,wBAAwB,CAAC,0FAA4F,sBAAsB,UAAU,CAAC,sIAAwI,sBAAsB,uBAAuB,UAAU,CAAC,8BAA8B,0BAA0B,4BAA4B,CAAC,yCAA0C,0BAA0B,CAAC,wCAAyC,2BAA2B,CAAC,8BAA8B,eAAe,eAAe,CAAC,2BAA2B,sBAAsB,CAAC,UAAU,WAAW,CAAC",file:"box.vue",sourcesContent:['.box .box-tools>*{float:right}.box .box-tools .text-muted{color:#777 !important}.box .box-tools .box-search{width:180px;display:inline-block}.box .box-tools .box-search input:focus{box-shadow:none;border-color:transparent !important}.box .box-tools .box-search input[type="text"],.box .box-tools .box-search .btn{box-shadow:none;background-color:#fbfbfb;border:1px solid #fbfbfb}.box .box-tools .box-search input[type="text"]:focus,.box .box-tools .box-search .btn:focus{background-color:#fff;color:#666}.box .box-tools .box-search input[type="text"]:focus+.input-group-btn .btn,.box .box-tools .box-search .btn:focus+.input-group-btn .btn{background-color:#fff;border-left-color:#fff;color:#666}.box .box-tools .box-search>*{border-top:1px solid #eee;border-bottom:1px solid #eee}.box .box-tools .box-search>*:first-child{border-left:1px solid #eee}.box .box-tools .box-search>*:last-child{border-right:1px solid #eee}.box .box-tools .btn-box-tool{font-size:14px;padding:6px 8px}.box .box-tools .btn-group{vertical-align:inherit}.box form{margin:10px}'],sourceRoot:"webpack://"}])},996:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".notification-zone{padding:15px 15px 0;position:fixed;right:15px;bottom:15px;width:350px;z-index:10000}.notification-zone .alert:last-child{margin-bottom:0}.notification-zone .alert:not(:last-child){margin-bottom:5px}","",{version:3,sources:["/./js/components/notification-zone.vue"],names:[],mappings:"AAAA,mBAAmB,oBAAoB,eAAe,WAAW,YAAY,YAAY,aAAa,CAAC,qCAAqC,eAAe,CAAC,2CAA2C,iBAAiB,CAAC",file:"notification-zone.vue",sourcesContent:[".notification-zone{padding:15px 15px 0;position:fixed;right:15px;bottom:15px;width:350px;z-index:10000}.notification-zone .alert:last-child{margin-bottom:0}.notification-zone .alert:not(:last-child){margin-bottom:5px}"],sourceRoot:"webpack://"}])},997:function(e,t){e.exports=' <div class="alert fade" :class=classes> <button type=button class=close aria-hidden=true @click=close>×</button> <h4> <span class="icon fa fa-{{alert.icon || \'check\'}}"></span> {{alert.title}} </h4> {{{ details }}} </div> '},998:function(e,t){e.exports=' <div class="box {{ boxclass }}"> <header class=box-header v-show="title || icon"> <i v-show=icon class="fa fa-{{icon}}"></i> <h3 class=box-title>{{title}}</h3> <div class=box-tools> <slot name=tools></slot> </div> </header> <div class="box-body {{bodyclass}}"> <slot></slot> </div> <div class=overlay v-show=loading> <span class="fa fa-refresh fa-spin"></span> </div> <div class="box-footer clearfix {{footerclass}}" v-show=footer> <slot name=footer></slot> </div> </div> '},999:function(e,t){e.exports=' <div v-show="$root.notifications && $root.notifications.length > 0" class=notification-zone> <alert v-for="n in $root.notifications" :alert=n></alert> </div> '},1e3:function(e,t,o){var s,a;o(1002),s=o(994),a=o(999),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1001:function(e,t,o){var s=o(995);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1002:function(e,t,o){var s=o(996);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1039:function(e,t,o){var s,a;o(1181),s=o(1117),a=o(1158),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1078:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(1e3),a=_interopRequireDefault(s);t.default={name:"layout",props:{title:String,subtitle:String,page:String,actions:{type:Array,default:function(){return[]}},badges:Array},components:{NotificationZone:a.default},computed:{menu_actions:function(){if(this.actions&&this.actions.length>1)return this.actions}}}},1079:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".content-header h1 a{color:#000}.content-header h1 a .fa{font-size:.4em}","",{version:3,sources:["/./js/components/layout.vue"],names:[],mappings:"AAAA,qBAAqB,UAAW,CAAC,yBAAyB,cAAc,CAAC",file:"layout.vue",sourcesContent:[".content-header h1 a{color:black}.content-header h1 a .fa{font-size:.4em}"],sourceRoot:"webpack://"}])},1080:function(e,t){e.exports=' <div class=content-wrapper> <router-view></router-view> <section class=content-header> <div class="btn-group btn-group-sm btn-actions pull-right clearfix"> <div v-if=menu_actions class="btn-group btn-group-sm" role=group> <button type=button class="btn btn-info dropdown-toggle" data-toggle=dropdown> {{_(\'Edit\')}} <span class=caret></span> </button> <ul class="dropdown-menu dropdown-menu-right" role=menu> <li v-for="action in menu_actions" :role="action.divider ? \'separator\' : false" :class="{ \'divider\': action.divider }"> <a class=pointer v-if=!action.divider @click=action.method> <span v-if=action.icon class="fa fa-fw fa-{{action.icon}}"></span> {{action.label}} </a> </li> </ul> </div> </div> <h1> <a v-if=page :href=page :title="_(\'See on the site\')"> {{ title }} <span class="fa fa-external-link"></span> </a> <span v-if=!page>{{title}}</span> <small v-if=subtitle>{{subtitle}}</small> <small v-if=badges> <span v-for="badge in badges" class="label label-{{badge.class}}">{{badge.label}}</span> </small> </h1> </section> <notification-zone></notification-zone> <section class=content> <slot></slot> </section> </div> '},1081:function(e,t,o){var s,a;o(1082),s=o(1078),a=o(1080),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1082:function(e,t,o){var s=o(1079);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1098:function(e,t,o){function webpackContext(e){return o(webpackContextResolve(e))}function webpackContextResolve(e){return s[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var s={"./avatar.vue":1161,"./date.vue":1162,"./datetime.vue":1163,"./deletable-text.vue":1164,"./label.vue":1165,"./metric.vue":1166,"./playpause.vue":1167,"./progress-bars.vue":1168,"./since.vue":1169,"./text.vue":1170,"./thumbnail.vue":1171,"./timeago.vue":1172,"./visibility.vue":1173};webpackContext.keys=function(){return Object.keys(s)},webpackContext.resolve=webpackContextResolve,e.exports=webpackContext,webpackContext.id=1098},1101:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(57),a=(_interopRequireDefault(s),o(314)),i=_interopRequireDefault(a);t.default={name:"datatable-cell",default:"",props:{field:Object,item:Object},computed:{value:function(){if(!this.field||!this.item)return this.$options.default;if(this.field.key)if(i.default.isFunction(this.field.key))t=this.field.key(this.item);else for(var e=this.field.key.split("."),t=this.item,o=0;o<e.length;o++){var s=e[o];if(!t||!t.hasOwnProperty(s)){t=null;break}t=t[s]}else t=this.item;return t||this.$options.default}}}},1102:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attached:function(){this.$el.closest("td").classList.add("avatar-cell")}}},1103:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-date"}},1104:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-datetime"}},1105:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-deletable-text"}},1106:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-label",filters:{format:function(e){return this.field.hasOwnProperty("label_func")?this.field.label_func(e):e},color:function(e){return this.field.hasOwnProperty("label_type")?this.field.label_type(e):"default"}},computed:{labels:function(){return this.value instanceof Array?this.value:[this.value]}}}},1107:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-metric",default:0}},1108:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-playpause",default:!1}},1109:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-progress-bars",computed:{progress_class:function(){return this.value<1/3?"danger":this.value<2/3?"warning":this.value<.9?"primary":"success"}}}},1110:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-since"}},1111:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-text"}},1112:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(101),a=_interopRequireDefault(s);t.default={attached:function(){this.$el.closest("td").classList.add("thumbnail-cell")},computed:{src:function(){return this.value?this.value:this.field.placeholder?a.default.getFor(this.field.placeholder):a.default.generic}}}},1113:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-timeago"}},1114:function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=o(133),a={deleted:{label:(0,s._)("Deleted"),type:"danger"},archived:{label:(0,s._)("Archived"),type:"warning"},private:{label:(0,s._)("Private"),type:"info"},public:{label:(0,s._)("Public"),type:"success"}};t.default={name:"datatable-cell-visibility",computed:{status:function(){if(this.item)return this.item.deleted?a.deleted:this.item.archived?a.archived:this.item.private?a.private:a.public}}}},1115:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(200),a=_interopRequireDefault(s),i=o(57),r=_interopRequireDefault(i),n=o(1160),l=_interopRequireDefault(n);t.default={name:"datatable-row",props:{item:Object,fields:Array,selected:{type:Boolean,default:!1}},created:function(){var e=!0,t=!1,o=void 0;try{for(var s,i=(0,a.default)(this.fields);!(e=(s=i.next()).done);e=!0){var r=s.value;this.load_cell(r.type||"text")}}catch(n){t=!0,o=n}finally{try{!e&&i.return&&i.return()}finally{if(t)throw o}}},methods:{item_click:function(e){this.$dispatch("datatable:item:click",e)},load_cell:function(e){if(!this.$options.components.hasOwnProperty(e)){var t=o(1098)("./"+e+".vue");t.hasOwnProperty("mixins")||(t.mixins=[]),l.default in t.mixins||t.mixins.push(l.default),this.$options.components[e]=r.default.extend(t)}}}}},1116:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(1174),a=_interopRequireDefault(s);t.default={name:"datatable",components:{Row:a.default},props:{p:Object,fields:Array,track:{type:null,default:"id"}},data:function(){return{selected:null}},computed:{remote:function(){return this.p&&this.p.serverside},trackBy:function(){return this.track||""}},events:{"datatable:item:click":function(e){return this.selected=e,!0}},methods:{header_click:function(e){e.sort&&this.p.sort(this.sort_for(e))},sort_for:function(e){return this.remote?e.sort:e.key},classes_for:function(e){var t={pointer:Boolean(e.sort)},o=e.align||"left";return t["text-"+o]=!0,t},sort_classes_for:function(e){var t={};return this.p.sorted!=this.sort_for(e)?t["fa-sort"]=!0:this.p.reversed?this.p.reversed&&(t["fa-sort-desc"]=!0):t["fa-sort-asc"]=!0,t}},filters:{thwidth:function(e){switch(e){case void 0:return"";case 0:return 0;default:return e+5}}}}},1117:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(985),a=_interopRequireDefault(s),i=o(1175),r=_interopRequireDefault(i),n=o(1176),l=_interopRequireDefault(n);t.default={name:"datatable-widget",components:{Box:a.default,Datatable:r.default,PaginationWidget:l.default},data:function(){return{search_query:null,selected:null}},computed:{has_footer_children:function(){return this.$els.footer_container&&this.$els.footer_container.children.length},show_footer:function(){return this.p&&this.p.pages>1||this.has_footer_children},boxclasses:function(){return["datatable-widget",this.tint?"box-"+this.tint:"box-solid",this.boxclass].join(" ")}},props:{p:Object,title:String,icon:String,fields:Array,boxclass:String,tint:String,empty:String,loading:{type:Boolean,default:void 0},track:{type:null,default:"id"},downloads:{type:Array,default:function(){return[]}}},methods:{search:function(){this.p.search(this.search_query)}},watch:{search_query:function(e){this.p.search(e)}}}},1118:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=2;t.default={name:"pagination-widget",props:{p:Object},computed:{start:function(){return this.p?this.p.page<=o?1:this.p.page-o:-1},end:function(){return this.p?this.p.page+o>this.p.pages?this.p.pages:this.p.page+o:-1},range:function(){var e=this;return isNaN(this.start)||isNaN(this.end)||this.start>=this.end?[]:Array.apply(0,Array(this.end+1-this.start)).map(function(t,o){return o+e.start})}}}},1135:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".datatable td.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:0}","",{version:3,sources:["/./js/components/datatable/cell.vue"],names:[],mappings:"AAAA,uBAAuB,mBAAmB,gBAAgB,uBAAuB,WAAW,CAAC",file:"cell.vue",sourcesContent:[".datatable td.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:0}"],sourceRoot:"webpack://"}])},1136:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".datatable td.avatar-cell{padding:3px}","",{version:3,sources:["/./js/components/datatable/cells/avatar.vue"],names:[],mappings:"AAAA,0BAA0B,WAAW,CAAC",file:"avatar.vue",sourcesContent:[".datatable td.avatar-cell{padding:3px}"],sourceRoot:"webpack://"}])},1137:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".datatable td.thumbnail-cell{padding:3px}","",{version:3,sources:["/./js/components/datatable/cells/thumbnail.vue"],names:[],mappings:"AAAA,6BAA6B,WAAW,CAAC",file:"thumbnail.vue",sourcesContent:[".datatable td.thumbnail-cell{padding:3px}"],sourceRoot:"webpack://"}])},1138:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".datatable th{white-space:nowrap}","",{version:3,sources:["/./js/components/datatable/table.vue"],names:[],mappings:"AAAA,cAAc,kBAAkB,CAAC",file:"table.vue",sourcesContent:[".datatable th{white-space:nowrap}"],sourceRoot:"webpack://"}])},1139:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".datatable-widget .datatable-header>.row{width:100%}","",{version:3,sources:["/./js/components/datatable/widget.vue"],names:[],mappings:"AAAA,yCAAyC,UAAU,CAAC",file:"widget.vue",sourcesContent:[".datatable-widget .datatable-header>.row{width:100%}"],sourceRoot:"webpack://"}])},1140:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".label{margin:1px}","",{version:3,sources:["/./js/components/datatable/cells/label.vue"],names:[],mappings:"AACA,OACI,UAAY,CACf",file:"label.vue",sourcesContent:["\n.label {\n margin: 1px;\n}\n"],sourceRoot:"webpack://"}])},1143:function(e,t){e.exports=' <img :src="value | avatar_url field.width" :width=field.width :height=field.width /> '},1144:function(e,t){e.exports=' <time :datetime="value | dt YYYY-MM-DD">{{value | dt L}}</time> '},1145:function(e,t){e.exports=" <time :datetime=value>{{value | dt L LT}}</time> "},1146:function(e,t){e.exports=" <del v-if=item.deleted :title=\"_('This item has been deleted')\" :datetime=item.deleted>{{value}}</del> <span v-else>{{value}}</span> "},1147:function(e,t){e.exports=' <span v-for="label in labels" class="label label-{{label | color}}"> {{label | format}} </span> '},1148:function(e,t){e.exports=" <span class=badge :class=\"{\n 'bg-green': value > 0,\n 'bg-red': value == 0\n }\">{{value}}</span> "},1149:function(e,t){e.exports=" <i class=\"fa fa-fw fa-{{value ? 'play' : 'stop'}} text-{{value ? 'green' : 'red'}}\"></i> "},1150:function(e,t){e.exports=' <div class="progress progress-sm"> <span class="progress-bar progress-bar-{{ progress_class }}" :style="{width: value * 100 + \'%\'}" :title="_(\'Score:\') + \' \' + value * 100"> </span> </div> '},1151:function(e,t){e.exports=" <time :datetime=value>{{value | since}}</time> "},1152:function(e,t){e.exports="<span>{{value}}</span>"},1153:function(e,t){e.exports=" <img :src=src :width=field.width :height=field.width /> "},1154:function(e,t){e.exports=" <time :datetime=value class=timeago>{{value | timeago}}</time> "},1155:function(e,t){e.exports=' <span class="label label-{{ status.type }}">{{ status.label }}</span> '},1156:function(e,t){e.exports=" <tr class=pointer :class=\"{ 'active': selected }\" @click=item_click(item)> <td v-for=\"field in fields\" track-by=key :class=\"{\n 'text-center': field.align === 'center',\n 'text-left': field.align === 'left',\n 'text-right': field.align === 'right',\n 'ellipsis': field.ellipsis\n }\"> <component :is=\"field.type || 'text'\" :item=item :field=field> </component> </td> </tr> "},1157:function(e,t){e.exports=' <table class="table table-hover datatable"> <thead> <tr> <th v-for="field in fields" :class=classes_for(field) @click=header_click(field) :width="field.width | thwidth"> {{field.label}} <span class="fa fa-fw" v-if=field.sort :class=sort_classes_for(field)></span> </th> </tr> </thead> <tbody> <tr v-for="item in p.data" :track-by=trackBy is=row :item=item :fields=fields :selected="item === selected"> </tr> </tbody> </table> '},1158:function(e,t){e.exports=' <div> <box :title=title :icon=icon :boxclass=boxclasses bodyclass="table-responsive no-padding" footerclass="text-center clearfix" :loading="loading !== undefined ? loading : p.loading" :footer=show_footer> <aside slot=tools> <div class=btn-group v-show=downloads.length> <button type=button class="btn btn-box-tool dropdown-toggle" data-toggle=dropdown aria-expanded=false> <span class="fa fa-download"></span> </button> <ul class=dropdown-menu role=menu> <li v-for="download in downloads"> <a :href=download.url>{{download.label}}</a> </li> </ul> </div> <div class=box-search v-if=p.has_search> <div class=input-group> <input type=text class="form-control input-sm pull-right" style="width: 150px" :placeholder="_(\'Search\')" v-model=search_query debounce=500 @keyup.enter=search> <div class=input-group-btn> <button class="btn btn-sm btn-flat" @click=search> <i class="fa fa-search"></i> </button> </div> </div> </div> </aside> <header class=datatable-header> <slot name=header></slot> </header> <datatable v-if=p.has_data :p=p :fields=fields :track=track> </datatable> <div class="text-center lead" v-if=!p.has_data> {{ empty || _(\'No data\')}} </div> <footer slot=footer> <div :class="{ \'pull-right\': p.pages > 1 }" v-el:footer_container> <slot name=footer></slot> </div> <pagination-widget :p=p></pagination-widget> </footer> </box> </div> '},1159:function(e,t){e.exports=' <ul class="pagination pagination-sm no-margin" v-show="p && p.pages > 1"> <li :class="{ \'disabled\': !p || p.page == 1 }"> <a :title="_(\'First page\')" class=pointer @click=p.go_to_page(1)> &laquo; </a> </li> <li :class="{ \'disabled\': !p || p.page == 1 }"> <a :title="_(\'Previous page\')" class=pointer @click=p.previousPage()> &lsaquo; </a> </li> <li v-for="current in range" :class="{ \'active\': current == p.page }"> <a @click=p.go_to_page(current) class=pointer>{{ current }}</a> </li> <li :class="{ \'disabled\': !p || p.page == p.pages }"> <a :title="_(\'Next page\')" class=pointer @click=p.nextPage()> &rsaquo; </a> </li> <li :class="{ \'disabled\': !p || p.page == p.pages }"> <a :title="_(\'Last page\')" class=pointer @click=p.go_to_page(p.pages)> &raquo; </a> </li> </ul> '},1160:function(e,t,o){var s,a;o(1177),s=o(1101),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1161:function(e,t,o){var s,a;o(1178),s=o(1102),a=o(1143),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1162:function(e,t,o){var s,a;s=o(1103),a=o(1144),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1163:function(e,t,o){var s,a;s=o(1104),a=o(1145),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1164:function(e,t,o){var s,a;s=o(1105),a=o(1146),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1165:function(e,t,o){var s,a;o(1182),s=o(1106),a=o(1147),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1166:function(e,t,o){var s,a;s=o(1107),a=o(1148),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1167:function(e,t,o){var s,a;s=o(1108),a=o(1149),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1168:function(e,t,o){var s,a;s=o(1109),a=o(1150),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1169:function(e,t,o){var s,a;s=o(1110),a=o(1151),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1170:function(e,t,o){var s,a;s=o(1111),a=o(1152),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1171:function(e,t,o){var s,a;o(1179),s=o(1112),a=o(1153),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1172:function(e,t,o){var s,a;s=o(1113),a=o(1154),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1173:function(e,t,o){var s,a;s=o(1114),a=o(1155),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1174:function(e,t,o){var s,a;s=o(1115),a=o(1156),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1175:function(e,t,o){var s,a;o(1180),s=o(1116),a=o(1157),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1176:function(e,t,o){var s,a;s=o(1118),a=o(1159),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1177:function(e,t,o){var s=o(1135);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1178:function(e,t,o){var s=o(1136);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1179:function(e,t,o){var s=o(1137);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1180:function(e,t,o){var s=o(1138);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1181:function(e,t,o){var s=o(1139);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1182:function(e,t,o){var s=o(1140);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1187:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.HarvestSource=t.VALIDATION_STATUS_I18N=t.VALIDATION_STATUS_CLASSES=void 0;var s=o(21),a=_interopRequireDefault(s),i=o(20),r=_interopRequireDefault(i),n=o(46),l=_interopRequireDefault(n),u=o(27),d=_interopRequireDefault(u),c=o(26),p=_interopRequireDefault(c),f=o(39),b=o(133),h=o(19),v=_interopRequireDefault(h),x=(t.VALIDATION_STATUS_CLASSES={pending:"default",accepted:"success",refused:"danger"},t.VALIDATION_STATUS_I18N={pending:(0,b._)("Pending"),accepted:(0,b._)("Accepted"),refused:(0,b._)("Refused")},t.HarvestSource=function(e){function HarvestSource(){return(0,r.default)(this,HarvestSource),(0,d.default)(this,(HarvestSource.__proto__||(0,a.default)(HarvestSource)).apply(this,arguments))}return(0,p.default)(HarvestSource,e),(0,l.default)(HarvestSource,[{key:"fetch",value:function(e){return e=e||this.id||this.slug,this.loading=!0,e?this.$api("harvest.get_harvest_source",{ident:e},this.on_fetched):v.default.error("Unable to fetch HarvestSource: no identifier specified"),this}},{key:"save",value:function(e){return this.id?this.update(this,e):(this.loading=!0,void this.$api("harvest.create_harvest_source",{payload:this},this.on_fetched,this.on_error(e)))}},{key:"update",value:function(e,t){this.loading=!0,this.$api("harvest.update_harvest_source",{ident:this.id,payload:e},this.on_fetched,this.on_error(t))}}]),HarvestSource}(f.Model));t.default=x},1199:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.HarvestJob=t.STATUS_I18N=t.STATUS_CLASSES=void 0;var s=o(21),a=_interopRequireDefault(s),i=o(20),r=_interopRequireDefault(i),n=o(46),l=_interopRequireDefault(n),u=o(27),d=_interopRequireDefault(u),c=o(26),p=_interopRequireDefault(c),f=o(39),b=o(19),h=_interopRequireDefault(b),v=o(133),x=(t.STATUS_CLASSES={pending:"default",initializing:"primary",initialized:"info",processing:"info",done:"success","done-errors":"warning",failed:"danger",deleted:"danger"},t.STATUS_I18N={pending:(0,v._)("Pending"),initializing:(0,v._)("Initializing"),initialized:(0,v._)("Initialized"),processing:(0,v._)("Processing"),done:(0,v._)("Done"),"done-errors":(0,v._)("Done with errors"),failed:(0,v._)("Failed"),deleted:(0,v._)("Deleted")},t.HarvestJob=function(e){function HarvestJob(){return(0,r.default)(this,HarvestJob),(0,d.default)(this,(HarvestJob.__proto__||(0,a.default)(HarvestJob)).apply(this,arguments))}return(0,p.default)(HarvestJob,e),(0,l.default)(HarvestJob,[{key:"fetch",value:function(){return this.id?(this.loading=!0,this.$api("harvest.get_harvest_job",{ident:this.id},this.on_fetched)):h.default.error("Unable to fetch Job"),this}}]),HarvestJob}(f.Model));t.default=x},1300:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.harvest_backends=t.HarvestBackends=void 0;var s=o(21),a=_interopRequireDefault(s),i=o(20),r=_interopRequireDefault(i),n=o(27),l=_interopRequireDefault(n),u=o(26),d=_interopRequireDefault(u),c=o(39),p=t.HarvestBackends=function(e){function HarvestBackends(e){(0,r.default)(this,HarvestBackends);var t=(0,l.default)(this,(HarvestBackends.__proto__||(0,a.default)(HarvestBackends)).call(this,e));return t.$options.ns="harvest",t.$options.fetch="harvest_backends",t}return(0,d.default)(HarvestBackends,e),HarvestBackends}(c.List),f=t.harvest_backends=(new p).fetch();t.default=f},1302:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.STATUS_I18N=t.STATUS_CLASSES=void 0;var s=o(21),a=_interopRequireDefault(s),i=o(20),r=_interopRequireDefault(i),n=o(27),l=_interopRequireDefault(n),u=o(26),d=_interopRequireDefault(u),c=o(39),p=o(19),f=(_interopRequireDefault(p),
2
- o(133)),b=(t.STATUS_CLASSES={pending:"default",started:"info",done:"success",failed:"danger",skipped:"warning",archived:"warning"},t.STATUS_I18N={pending:(0,f._)("Pending"),started:(0,f._)("Started"),done:(0,f._)("Done"),failed:(0,f._)("Failed"),skipped:(0,f._)("Skipped"),archived:(0,f._)("Archived")},function(e){function HarvestItem(){return(0,r.default)(this,HarvestItem),(0,l.default)(this,(HarvestItem.__proto__||(0,a.default)(HarvestItem)).apply(this,arguments))}return(0,d.default)(HarvestItem,e),HarvestItem}(c.Model));t.default=b},1322:function(e,t,o){var s,a;s=o(1335),a=o(1359),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1334:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(1302),a=o(318),i=_interopRequireDefault(a),r=o(323),n=_interopRequireDefault(r);t.default={components:{Modal:i.default,DatasetCard:n.default},props:{item:Object},events:{"dataset:clicked":function(e){document.location=e.page}},filters:{statusClass:function(e){return s.STATUS_CLASSES[e]},statusI18n:function(e){return s.STATUS_I18N[e]}}}},1335:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(1199),a=o(1302),i=o(39),r=o(1039),n=_interopRequireDefault(r);t.default={name:"JobDetails",props:{job:s.HarvestJob,loading:{type:Boolean,default:void 0},empty:String,withSlot:{type:Boolean,default:!1}},components:{Datatable:n.default},data:function(){return{fields:[{label:this._("Remote ID"),key:"remote_id",sort:"remote_id",ellipsis:!0},{label:this._("Status"),key:"status",sort:"status",type:"label",width:100,label_type:function(e){return a.STATUS_CLASSES[e]},label_func:function(e){return a.STATUS_I18N[e]}}],p:new i.PageList({data:this.job.items})}},computed:{title:function(){return this.job.id?"Job "+this.job.id:"Job"}},events:{"datatable:item:click":function(e){this.$dispatch("harvest:job:item:selected",e)}},filters:{statusClass:function(e){return s.STATUS_CLASSES[e]||""},statusI18n:function(e){return s.STATUS_I18N[e]},count:function(e,t){return e?e.filter(function(e){return e.status===t}).length:"-"}},watch:{"job.items":function(e){this.p=new i.PageList({data:e})}}}},1336:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(99),a=_interopRequireDefault(s),i=o(1300),r=(_interopRequireDefault(i),o(1199)),n=_interopRequireDefault(r),l=o(1187),u=_interopRequireDefault(l),d=o(1322),c=_interopRequireDefault(d);t.default={name:"HarvestPreviewView",components:{JobWidget:c.default},props:{source:{type:Object,default:function(){return new u.default}},fromConfig:{type:Boolean,default:!1}},data:function(){return{job:new n.default,loading:!1}},computed:{empty:function(){return this.job.created?this._("No item found"):" "}},methods:{preview:function(){this.loading=!0,this.fromConfig?a.default.harvest.preview_harvest_source_config({payload:this.source},this.onPreviewFetch,this.$root.handleApiError):a.default.harvest.preview_harvest_source({ident:this.source.id},this.onPreviewFetch,this.$root.handleApiError)},onPreviewFetch:function(e){this.job.on_fetched(e),this.loading=!1}}}},1349:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".job-item-modal .modal-footer{text-align:center!important}","",{version:3,sources:["/./js/components/harvest/item.vue"],names:[],mappings:"AAAA,8BAA8B,2BAA4B,CAAC",file:"item.vue",sourcesContent:[".job-item-modal .modal-footer{text-align:center !important}"],sourceRoot:"webpack://"}])},1358:function(e,t){e.exports=" <modal class=job-item-modal v-ref:modal :class=\"{\n 'modal-success': item.status === 'done',\n 'modal-danger': item.status === 'failed',\n 'modal-warning': item.status === 'skipped'\n }\"> <div class=modal-body> <dl class=clearfix> <dt>{{ _('Remote ID') }}</dt> <dd>{{ item.remote_id }}</dd> <dt>{{ _('Started at') }}</dt> <dd>{{ item.started | dt }}</dd> <dt>{{ _('Ended at') }}</dt> <dd>{{ item.ended | dt }}</dd> <dt>{{ _('Status') }}</dt> <dd><span class=\"label label-{{ item.status | statusClass }}\">{{ item.status | statusI18n }}</span></dd> <dt v-if=item.dataset>{{ _('Dataset') }}</dt> <dd v-if=item.dataset> <dataset-card class=col-xs-12 clickable v-if=item.dataset.id :datasetid=item.dataset.id> </dataset-card> <dataset-card class=col-xs-12 clickable v-if=!item.dataset.id :dataset=item.dataset> </dataset-card> </dd> <dt v-if=item.errors.length>{{ _('Errors') }}</dt> <dd v-if=item.errors.length> <div v-for=\"error in item.errors\"> {{{error.message | markdown}}} <pre>{{error.details}}</pre> </div> </dd> </dl> </div> <footer class=modal-footer> <button type=button class=\"btn btn-outline btn-flat pointer\" @click=$refs.modal.close> {{ _('Close') }} </button> </footer> </modal> "},1359:function(e,t){e.exports=' <div> <datatable icon=cog :title=title bodyclass="table-responsive no-padding" :p=p :track=false :loading="loading !== undefined ? loading : job.loading" :fields=fields track=remote_id :empty=empty :tint="job.status | statusClass"> <div class=row slot=header> <div class=col-xs-12 :class="{\'col-lg-6\': job.created}" v-show=withSlot> <slot></slot> </div> <dl class="dl-horizontal col-xs-12" :class="{\'col-lg-6\': withSlot}" v-show=job.created> <dt>{{ _(\'Created at\') }}</dt> <dd>{{ job.created | dt }}</dd> <dt>{{ _(\'Ended at\') }}</dt> <dd>{{ job.ended | dt }}</dd> <dt>{{ _(\'Status\') }}</dt> <dd><span class="label label-{{ job.status | statusClass }}">{{ job.status | statusI18n }}</span></dd> <dt v-if="job.errors && job.errors.length">{{ _(\'Errors\') }}</dt> <dd v-if="job.errors && job.errors.length"> <div v-for="error in job.errors"> <p><strong>{{{error.message | markdown}}}</strong></p> <div v-if=error.details> <code><pre>{{error.details}}</pre></code> </div> </div> </dd> <dt v-if="job.items && job.items.length">{{ _(\'Items\') }}</dt> <dd v-if="job.items && job.items.length"> <span class=text-warning v-tooltip tooltip-placement=top :title="_(\'Number of skipped items\')">{{job.items | count \'skipped\'}}</span> / <span class=text-warning v-tooltip tooltip-placement=top :title="_(\'Number of archived items\')">{{job.items | count \'archived\'}}</span> / <span class=text-danger v-tooltip tooltip-placement=top :title="_(\'Number of failed items\')">{{job.items | count \'failed\'}}</span> / <span class=text-green v-tooltip tooltip-placement=top :title="_(\'Number of succeed items\')">{{job.items | count \'done\'}}</span> / <strong>{{job.items.length}}</strong> </dd> </dl> </div> </datatable> </div> '},1360:function(e,t){e.exports=' <div> <job-widget :job=job :loading=loading :empty=empty with-slot> <div class=text-center> <button class="btn btn-primary btn-flat" @click=preview> <span class="fa fa-cog"></span> {{ _(\'Preview\') }} </button> </div> </job-widget> </div> '},1376:function(e,t,o){var s,a;o(1390),s=o(1334),a=o(1358),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1377:function(e,t,o){var s,a;s=o(1336),a=o(1360),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1390:function(e,t,o){var s=o(1349);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1395:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(21),a=_interopRequireDefault(s),i=o(20),r=_interopRequireDefault(i),n=o(27),l=_interopRequireDefault(n),u=o(26),d=_interopRequireDefault(u),c=o(39),p=o(19),f=(_interopRequireDefault(p),function(e){function HarvestJobPage(e){(0,r.default)(this,HarvestJobPage);var t=(0,l.default)(this,(HarvestJobPage.__proto__||(0,a.default)(HarvestJobPage)).call(this,e));return t.$options.ns="harvest",t.$options.fetch="list_harvest_jobs",t}return(0,d.default)(HarvestJobPage,e),HarvestJobPage}(c.ModelPage));t.default=f},1430:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(99),a=_interopRequireDefault(s),i=o(318),r=_interopRequireDefault(i);t.default={components:{Modal:r.default},props:{source:Object},methods:{confirm:function(){var e=this;a.default.harvest.delete_harvest_source({ident:this.source.id},function(t){e.source.fetch(),e.$refs.modal.close()},this.$root.handleApiError)}}}},1432:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(1199),a=o(1039),i=_interopRequireDefault(a),r=o(1395),n=_interopRequireDefault(r),l=["id","created","status"],u=20;t.default={components:{Datatable:i.default},props:{source:Object,current:null},data:function(){return{AVATAR_SIZE:u,title:this._("Jobs"),jobs:new n.default({query:{page_size:10},mask:l}),fields:[{label:this._("Date"),key:"created",sort:"created",type:"datetime"},{label:this._("Status"),key:"status",type:"label",label_type:function(e){return s.STATUS_CLASSES[e]},label_func:function(e){return s.STATUS_I18N[e]}}]}},events:{"datatable:item:click":function(e){return this.$dispatch("harvest:job:selected",e),!0}},watch:{"source.id":function(e){e&&this.jobs.fetch({ident:e})}}}},1433:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(99),a=_interopRequireDefault(s),i=o(318),r=_interopRequireDefault(i);t.default={components:{Modal:r.default},props:{source:Object},data:function(){return{comment:null}},methods:{validate:function(){this.perform_validation("accepted")},reject:function(){this.perform_validation("refused")},perform_validation:function(e){var t=this;return"refused"!==e||this.comment?(this.$els.group.className.replace("has-error",""),!this.$els.group.className.indexOf("has-success")>=0&&(this.$els.group.className+=" has-success"),void a.default.harvest.validate_harvest_source({ident:this.source.id,payload:{state:e,comment:this.comment}},function(e){t.source.on_fetched(e),t.$refs.modal.close()},this.$root.handleApiError)):(this.$els.group.className.replace("has-success",""),void(!this.$els.group.className.indexOf("has-error")>=0&&(this.$els.group.className+=" has-error")))}}}},1469:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(1187),a=_interopRequireDefault(s),i=o(1199),r=_interopRequireDefault(i),n=o(1376),l=_interopRequireDefault(n),u=o(57),d=(_interopRequireDefault(u),o(1377)),c=_interopRequireDefault(d),p=o(1611),f=_interopRequireDefault(p),b=o(1322),h=_interopRequireDefault(b),v=o(1081),x=_interopRequireDefault(v),_=["id","name","url","owner","organization","backend","validation{state}","schedule","deleted"];t.default={name:"HarvestSourceView",components:{Preview:c.default,SourceWidget:f.default,JobWidget:h.default,Layout:x.default},data:function(){return{source:new a.default({mask:_}),current_job:null,current_item:null}},computed:{is_validation_pending:function(){return this.source&&this.source.validation&&"pending"===this.source.validation.state},should_validate:function(){return this.is_validation_pending&&this.$root.me.is_admin},display_warning:function(){return this.is_validation_pending&&!this.$root.me.is_admin},badges:function(){return this.source&&this.source.deleted?[{class:"danger",label:this._("Deleted")}]:[]},actions:function actions(){var actions=[{label:this._("Edit"),icon:"pencil",method:this.edit}];return this.$root.me.is_admin&&actions.push({label:this._("Scheduling"),icon:"history",method:this.schedule},{divider:!0}),actions.push({label:this._("Delete"),icon:"trash",method:this.confirm_delete}),actions}},events:{"harvest:job:selected":function(e){return this.current_job=new r.default({data:e}).fetch(),!0},"harvest:job:item:selected":function(e){return this.current_item=e,this.$root.$modal(l.default,{item:e}),!0}},methods:{edit:function(){this.$go({name:"harvester-edit",params:{oid:this.source.id}})},confirm_delete:function(){this.$root.$modal(o(1610),{source:this.source})},validate_source:function(){this.$root.$modal(o(1612),{source:this.source})},schedule:function(){this.$go({name:"harvester-schedule",params:{oid:this.source.id}})}},route:{data:function(){this.source.fetch(this.$route.params.oid)}}}},1527:function(e,t){e.exports=' <modal :title="_(\'Confirm deletion\')" class="modal-danger harvest-delete-modal" v-ref:modal> <div class=modal-body> <p class="lead text-center"> {{ _(\'You are about to delete this harvest source\') }} </p> <p class="lead text-center"> {{ _(\'Are you sure?\') }} </p> </div> <footer class="modal-footer text-center"> <button type=button class="btn btn-danger btn-flat pull-left" @click=$refs.modal.close> {{ _(\'Cancel\') }} </button> <button type=button class="btn btn-warning btn-flat" @click=confirm> {{ _(\'Confirm\') }} </button> </footer> </modal> '},1529:function(e,t){e.exports=" <div> <datatable :title=\"source.name || ''\" icon=tasks boxclass=harvest-jobs-widget :fields=fields :p=jobs :loading=\"source.loading || jobs.loading\" :empty=\"_('No job yet')\"> <header slot=header> {{{ source.description | markdown }}} <dl class=dl-horizontal> <dt v-if=source.owner>{{ _('Owner') }}</dt> <dd v-if=source.owner> <a v-link=\"{name:'user', params: {oid: source.owner.id}}\" :title=\"source.owner | display\"> <img class=avatar :src=\"source.owner | avatar_url AVATAR_SIZE\" :alt=\"source.owner | display\" :width=AVATAR_SIZE :height=AVATAR_SIZE> {{ source.owner | display }} </a> </dd> <dt v-if=source.organization>{{ _('Organization') }}</dt> <dd v-if=source.organization> <a v-link=\"{name:'organization', params: {oid: source.organization.id}}\" :title=\"source.organization | display\"> <img class=avatar :src=\"source.organization | logo_url AVATAR_SIZE\" :alt=\"source.organization | display\" :width=AVATAR_SIZE :height=AVATAR_SIZE> {{ source.organization | display }} </a> </dd> <dt>{{ _('Backend') }}</dt> <dd>{{ source.backend }}</dd> <dt>{{ _('URL') }}</dt> <dd>{{ source.url }}</dd> <dt>{{ _('Scheduling') }}</dt> <dd v-if=source.schedule>{{ source.schedule }}</dd> <dd v-else>{{ _('Not scheduled') }}</dd> <dt>{{ _('Jobs') }}</dt> <dd>{{ jobs.total }}</dd> </dl> </header> </datatable> </div> "},1530:function(e,t){e.exports=" <modal v-ref:modal :title=\"_('Harvest source validation')\" class=\"modal-info harvest-delete-modal\"> <div class=modal-body> <p> {{ _('You are about to validate (or not) this harvest source.') }} {{ _('It means that this source will be harvested regulary.') }} </p> <form role=form> <div class=form-group v-el:group> <label>{{ _('Reason') }}</label> <textarea class=form-control rows=3 v-el:comment :placeholder=\"_('Explain your validation')\" v-model=comment>\n </textarea> </div> </form></div> <footer class=\"modal-footer text-center\"> <button type=button class=\"btn btn-success btn-flat pull-left\" @click=validate> {{ _('Validate') }} </button> <button type=button class=\"btn btn-danger btn-flat\" @click=reject> {{ _('Reject') }} </button> </footer> </modal> "},1566:function(e,t){e.exports=" <div> <layout :title=\"source.name || ''\" :subtitle=\"source.backend || ''\" :actions=actions :badges=badges> <div class=\"alert alert-info\" v-if=should_validate> <div class=\"btn-toolbar pull-right\"> <div class=btn-group> <button class=\"btn btn-danger btn-xs\" @click=confirm_delete>{{ _('Delete') }}</button> </div> <div class=btn-group> <button class=\"btn btn-primary btn-xs\" @click=validate_source>{{ _('Validate') }}</button> </div> </div> {{ _('This harvest source has not been validated') }} </div> <div class=\"alert alert-warning\" v-if=display_warning> {{ _('This harvest source has not been validated') }} </div> <div class=row> <source-widget :source=source :class=\"{\n 'col-xs-12': !current_job,\n 'col-md-4': current_job,\n }\"> </source-widget> <job-widget v-if=current_job :job=current_job class=col-md-8> </job-widget> </div> <div class=row v-if=should_validate> <preview class=col-xs-12 :source=source></preview> </div> </layout> </div> "},1610:function(e,t,o){var s,a;s=o(1430),a=o(1527),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1611:function(e,t,o){var s,a;s=o(1432),a=o(1529),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1612:function(e,t,o){var s,a;s=o(1433),a=o(1530),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)}});
3
- //# sourceMappingURL=18.ad41fb75ac4226e1f3ce.js.map
1
+ webpackJsonp([18,31],{887:function(e,t,o){var s,a;s=o(1469),a=o(1566),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},985:function(e,t,o){var s,a;o(1001),s=o(993),a=o(998),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},986:function(e,t,o){var s,a;s=o(992),a=o(997),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},992:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=300,s=5e3;t.default={name:"alert-box",data:function(){return{closing:!1}},props:{alert:Object},computed:{closable:function(){return void 0===this.alert.closable||this.alert.closable},classes:function classes(){var classes={"alert-dismissable":this.closable,in:!this.closing};return classes["alert-"+(this.alert.type||"success")]=!0,classes},details:function(){if(this.alert&&this.alert.details)return this.alert.details.replace(/\n/g,"<br/>")}},methods:{close:function(){var e=this;this.closing=!0,setTimeout(function(){e.$dispatch("notify:close",e.alert)},o)}},ready:function(){var e=this;this.alert.autoclose&&setTimeout(function(){e.$dispatch("notify:close",e.alert)},s)}}},993:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"box",props:{title:String,icon:null,boxclass:{type:String,default:""},bodyclass:{type:String,default:""},footerclass:{type:String,default:""},loading:Boolean,footer:null}}},994:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(986),a=_interopRequireDefault(s);t.default={name:"notification-zone",components:{Alert:a.default}}},995:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".box .box-tools>*{float:right}.box .box-tools .text-muted{color:#777!important}.box .box-tools .box-search{width:180px;display:inline-block}.box .box-tools .box-search input:focus{box-shadow:none;border-color:transparent!important}.box .box-tools .box-search .btn,.box .box-tools .box-search input[type=text]{box-shadow:none;background-color:#fbfbfb;border:1px solid #fbfbfb}.box .box-tools .box-search .btn:focus,.box .box-tools .box-search input[type=text]:focus{background-color:#fff;color:#666}.box .box-tools .box-search .btn:focus+.input-group-btn .btn,.box .box-tools .box-search input[type=text]:focus+.input-group-btn .btn{background-color:#fff;border-left-color:#fff;color:#666}.box .box-tools .box-search>*{border-top:1px solid #eee;border-bottom:1px solid #eee}.box .box-tools .box-search>:first-child{border-left:1px solid #eee}.box .box-tools .box-search>:last-child{border-right:1px solid #eee}.box .box-tools .btn-box-tool{font-size:14px;padding:6px 8px}.box .box-tools .btn-group{vertical-align:inherit}.box form{margin:10px}","",{version:3,sources:["/./js/components/containers/box.vue"],names:[],mappings:"AAAA,kBAAkB,WAAW,CAAC,4BAA4B,oBAAqB,CAAC,4BAA4B,YAAY,oBAAoB,CAAC,wCAAwC,gBAAgB,kCAAmC,CAAC,8EAAgF,gBAAgB,yBAAyB,wBAAwB,CAAC,0FAA4F,sBAAsB,UAAU,CAAC,sIAAwI,sBAAsB,uBAAuB,UAAU,CAAC,8BAA8B,0BAA0B,4BAA4B,CAAC,yCAA0C,0BAA0B,CAAC,wCAAyC,2BAA2B,CAAC,8BAA8B,eAAe,eAAe,CAAC,2BAA2B,sBAAsB,CAAC,UAAU,WAAW,CAAC",file:"box.vue",sourcesContent:['.box .box-tools>*{float:right}.box .box-tools .text-muted{color:#777 !important}.box .box-tools .box-search{width:180px;display:inline-block}.box .box-tools .box-search input:focus{box-shadow:none;border-color:transparent !important}.box .box-tools .box-search input[type="text"],.box .box-tools .box-search .btn{box-shadow:none;background-color:#fbfbfb;border:1px solid #fbfbfb}.box .box-tools .box-search input[type="text"]:focus,.box .box-tools .box-search .btn:focus{background-color:#fff;color:#666}.box .box-tools .box-search input[type="text"]:focus+.input-group-btn .btn,.box .box-tools .box-search .btn:focus+.input-group-btn .btn{background-color:#fff;border-left-color:#fff;color:#666}.box .box-tools .box-search>*{border-top:1px solid #eee;border-bottom:1px solid #eee}.box .box-tools .box-search>*:first-child{border-left:1px solid #eee}.box .box-tools .box-search>*:last-child{border-right:1px solid #eee}.box .box-tools .btn-box-tool{font-size:14px;padding:6px 8px}.box .box-tools .btn-group{vertical-align:inherit}.box form{margin:10px}'],sourceRoot:"webpack://"}])},996:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".notification-zone{padding:15px 15px 0;position:fixed;right:15px;bottom:15px;width:350px;z-index:10000}.notification-zone .alert:last-child{margin-bottom:0}.notification-zone .alert:not(:last-child){margin-bottom:5px}","",{version:3,sources:["/./js/components/notification-zone.vue"],names:[],mappings:"AAAA,mBAAmB,oBAAoB,eAAe,WAAW,YAAY,YAAY,aAAa,CAAC,qCAAqC,eAAe,CAAC,2CAA2C,iBAAiB,CAAC",file:"notification-zone.vue",sourcesContent:[".notification-zone{padding:15px 15px 0;position:fixed;right:15px;bottom:15px;width:350px;z-index:10000}.notification-zone .alert:last-child{margin-bottom:0}.notification-zone .alert:not(:last-child){margin-bottom:5px}"],sourceRoot:"webpack://"}])},997:function(e,t){e.exports=' <div class="alert fade" :class=classes> <button type=button class=close aria-hidden=true @click=close>×</button> <h4> <span class="icon fa fa-{{alert.icon || \'check\'}}"></span> {{alert.title}} </h4> {{{ details }}} </div> '},998:function(e,t){e.exports=' <div class="box {{ boxclass }}"> <header class=box-header v-show="title || icon"> <i v-show=icon class="fa fa-{{icon}}"></i> <h3 class=box-title>{{title}}</h3> <div class=box-tools> <slot name=tools></slot> </div> </header> <div class="box-body {{bodyclass}}"> <slot></slot> </div> <div class=overlay v-show=loading> <span class="fa fa-refresh fa-spin"></span> </div> <div class="box-footer clearfix {{footerclass}}" v-show=footer> <slot name=footer></slot> </div> </div> '},999:function(e,t){e.exports=' <div v-show="$root.notifications && $root.notifications.length > 0" class=notification-zone> <alert v-for="n in $root.notifications" :alert=n></alert> </div> '},1e3:function(e,t,o){var s,a;o(1002),s=o(994),a=o(999),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1001:function(e,t,o){var s=o(995);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1002:function(e,t,o){var s=o(996);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1039:function(e,t,o){var s,a;o(1181),s=o(1117),a=o(1158),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1078:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(1e3),a=_interopRequireDefault(s);t.default={name:"layout",props:{title:String,subtitle:String,page:String,actions:{type:Array,default:function(){return[]}},badges:Array},components:{NotificationZone:a.default},computed:{menu_actions:function(){if(this.actions&&this.actions.length>1)return this.actions}}}},1079:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".content-header h1 a{color:#000}.content-header h1 a .fa{font-size:.4em}","",{version:3,sources:["/./js/components/layout.vue"],names:[],mappings:"AAAA,qBAAqB,UAAW,CAAC,yBAAyB,cAAc,CAAC",file:"layout.vue",sourcesContent:[".content-header h1 a{color:black}.content-header h1 a .fa{font-size:.4em}"],sourceRoot:"webpack://"}])},1080:function(e,t){e.exports=' <div class=content-wrapper> <router-view></router-view> <section class=content-header> <div class="btn-group btn-group-sm btn-actions pull-right clearfix"> <div v-if=menu_actions class="btn-group btn-group-sm" role=group> <button type=button class="btn btn-info dropdown-toggle" data-toggle=dropdown> {{_(\'Edit\')}} <span class=caret></span> </button> <ul class="dropdown-menu dropdown-menu-right" role=menu> <li v-for="action in menu_actions" :role="action.divider ? \'separator\' : false" :class="{ \'divider\': action.divider }"> <a class=pointer v-if=!action.divider @click=action.method> <span v-if=action.icon class="fa fa-fw fa-{{action.icon}}"></span> {{action.label}} </a> </li> </ul> </div> </div> <h1> <a v-if=page :href=page :title="_(\'See on the site\')"> {{ title }} <span class="fa fa-external-link"></span> </a> <span v-if=!page>{{title}}</span> <small v-if=subtitle>{{subtitle}}</small> <small v-if=badges> <span v-for="badge in badges" class="label label-{{badge.class}}">{{badge.label}}</span> </small> </h1> </section> <notification-zone></notification-zone> <section class=content> <slot></slot> </section> </div> '},1081:function(e,t,o){var s,a;o(1082),s=o(1078),a=o(1080),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1082:function(e,t,o){var s=o(1079);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1098:function(e,t,o){function webpackContext(e){return o(webpackContextResolve(e))}function webpackContextResolve(e){return s[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var s={"./avatar.vue":1161,"./date.vue":1162,"./datetime.vue":1163,"./deletable-text.vue":1164,"./label.vue":1165,"./metric.vue":1166,"./playpause.vue":1167,"./progress-bars.vue":1168,"./since.vue":1169,"./text.vue":1170,"./thumbnail.vue":1171,"./timeago.vue":1172,"./visibility.vue":1173};webpackContext.keys=function(){return Object.keys(s)},webpackContext.resolve=webpackContextResolve,e.exports=webpackContext,webpackContext.id=1098},1101:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(57),a=(_interopRequireDefault(s),o(314)),i=_interopRequireDefault(a);t.default={name:"datatable-cell",default:"",props:{field:Object,item:Object},computed:{value:function(){if(!this.field||!this.item)return this.$options.default;if(this.field.key)if(i.default.isFunction(this.field.key))t=this.field.key(this.item);else for(var e=this.field.key.split("."),t=this.item,o=0;o<e.length;o++){var s=e[o];if(!t||!t.hasOwnProperty(s)){t=null;break}t=t[s]}else t=this.item;return t||this.$options.default}}}},1102:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attached:function(){this.$el.closest("td").classList.add("avatar-cell")}}},1103:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-date"}},1104:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-datetime"}},1105:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-deletable-text"}},1106:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-label",filters:{format:function(e){return this.field.hasOwnProperty("label_func")?this.field.label_func(e):e},color:function(e){return this.field.hasOwnProperty("label_type")?this.field.label_type(e):"default"}},computed:{labels:function(){return this.value instanceof Array?this.value:[this.value]}}}},1107:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-metric",default:0}},1108:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-playpause",default:!1}},1109:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-progress-bars",computed:{progress_class:function(){return this.value<1/3?"danger":this.value<2/3?"warning":this.value<.9?"primary":"success"}}}},1110:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-since"}},1111:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-text"}},1112:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(101),a=_interopRequireDefault(s);t.default={attached:function(){this.$el.closest("td").classList.add("thumbnail-cell")},computed:{src:function(){return this.value?this.value:this.field.placeholder?a.default.getFor(this.field.placeholder):a.default.generic}}}},1113:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"datatable-cell-timeago"}},1114:function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=o(133),a={deleted:{label:(0,s._)("Deleted"),type:"danger"},archived:{label:(0,s._)("Archived"),type:"warning"},private:{label:(0,s._)("Private"),type:"info"},public:{label:(0,s._)("Public"),type:"success"}};t.default={name:"datatable-cell-visibility",computed:{status:function(){if(this.item)return this.item.deleted?a.deleted:this.item.archived?a.archived:this.item.private?a.private:a.public}}}},1115:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(200),a=_interopRequireDefault(s),i=o(57),r=_interopRequireDefault(i),n=o(1160),l=_interopRequireDefault(n);t.default={name:"datatable-row",props:{item:Object,fields:Array,selected:{type:Boolean,default:!1}},created:function(){var e=!0,t=!1,o=void 0;try{for(var s,i=(0,a.default)(this.fields);!(e=(s=i.next()).done);e=!0){var r=s.value;this.load_cell(r.type||"text")}}catch(n){t=!0,o=n}finally{try{!e&&i.return&&i.return()}finally{if(t)throw o}}},methods:{item_click:function(e){this.$dispatch("datatable:item:click",e)},load_cell:function(e){if(!this.$options.components.hasOwnProperty(e)){var t=o(1098)("./"+e+".vue");t.hasOwnProperty("mixins")||(t.mixins=[]),l.default in t.mixins||t.mixins.push(l.default),this.$options.components[e]=r.default.extend(t)}}}}},1116:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(1174),a=_interopRequireDefault(s);t.default={name:"datatable",components:{Row:a.default},props:{p:Object,fields:Array,track:{type:null,default:"id"}},data:function(){return{selected:null}},computed:{remote:function(){return this.p&&this.p.serverside},trackBy:function(){return this.track||""}},events:{"datatable:item:click":function(e){return this.selected=e,!0}},methods:{header_click:function(e){e.sort&&this.p.sort(this.sort_for(e))},sort_for:function(e){return this.remote?e.sort:e.key},classes_for:function(e){var t={pointer:Boolean(e.sort)},o=e.align||"left";return t["text-"+o]=!0,t},sort_classes_for:function(e){var t={};return this.p.sorted!=this.sort_for(e)?t["fa-sort"]=!0:this.p.reversed?this.p.reversed&&(t["fa-sort-desc"]=!0):t["fa-sort-asc"]=!0,t}},filters:{thwidth:function(e){switch(e){case void 0:return"";case 0:return 0;default:return e+5}}}}},1117:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(985),a=_interopRequireDefault(s),i=o(1175),r=_interopRequireDefault(i),n=o(1176),l=_interopRequireDefault(n);t.default={name:"datatable-widget",components:{Box:a.default,Datatable:r.default,PaginationWidget:l.default},data:function(){return{search_query:null,selected:null}},computed:{has_footer_children:function(){return this.$els.footer_container&&this.$els.footer_container.children.length},show_footer:function(){return this.p&&this.p.pages>1||this.has_footer_children},boxclasses:function(){return["datatable-widget",this.tint?"box-"+this.tint:"box-solid",this.boxclass].join(" ")}},props:{p:Object,title:String,icon:String,fields:Array,boxclass:String,tint:String,empty:String,loading:{type:Boolean,default:void 0},track:{type:null,default:"id"},downloads:{type:Array,default:function(){return[]}}},methods:{search:function(){this.p.search(this.search_query)}},watch:{search_query:function(e){this.p.search(e)}}}},1118:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=2;t.default={name:"pagination-widget",props:{p:Object},computed:{start:function(){return this.p?this.p.page<=o?1:this.p.page-o:-1},end:function(){return this.p?this.p.page+o>this.p.pages?this.p.pages:this.p.page+o:-1},range:function(){var e=this;return isNaN(this.start)||isNaN(this.end)||this.start>=this.end?[]:Array.apply(0,Array(this.end+1-this.start)).map(function(t,o){return o+e.start})}}}},1135:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".datatable td.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:0}","",{version:3,sources:["/./js/components/datatable/cell.vue"],names:[],mappings:"AAAA,uBAAuB,mBAAmB,gBAAgB,uBAAuB,WAAW,CAAC",file:"cell.vue",sourcesContent:[".datatable td.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:0}"],sourceRoot:"webpack://"}])},1136:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".datatable td.avatar-cell{padding:3px}","",{version:3,sources:["/./js/components/datatable/cells/avatar.vue"],names:[],mappings:"AAAA,0BAA0B,WAAW,CAAC",file:"avatar.vue",sourcesContent:[".datatable td.avatar-cell{padding:3px}"],sourceRoot:"webpack://"}])},1137:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".datatable td.thumbnail-cell{padding:3px}","",{version:3,sources:["/./js/components/datatable/cells/thumbnail.vue"],names:[],mappings:"AAAA,6BAA6B,WAAW,CAAC",file:"thumbnail.vue",sourcesContent:[".datatable td.thumbnail-cell{padding:3px}"],sourceRoot:"webpack://"}])},1138:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".datatable th{white-space:nowrap}","",{version:3,sources:["/./js/components/datatable/table.vue"],names:[],mappings:"AAAA,cAAc,kBAAkB,CAAC",file:"table.vue",sourcesContent:[".datatable th{white-space:nowrap}"],sourceRoot:"webpack://"}])},1139:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".datatable-widget .datatable-header>.row{width:100%}","",{version:3,sources:["/./js/components/datatable/widget.vue"],names:[],mappings:"AAAA,yCAAyC,UAAU,CAAC",file:"widget.vue",sourcesContent:[".datatable-widget .datatable-header>.row{width:100%}"],sourceRoot:"webpack://"}])},1140:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".label{margin:1px}","",{version:3,sources:["/./js/components/datatable/cells/label.vue"],names:[],mappings:"AACA,OACI,UAAY,CACf",file:"label.vue",sourcesContent:["\n.label {\n margin: 1px;\n}\n"],sourceRoot:"webpack://"}])},1143:function(e,t){e.exports=' <img :src="value | avatar_url field.width" :width=field.width :height=field.width /> '},1144:function(e,t){e.exports=' <time :datetime="value | dt YYYY-MM-DD">{{value | dt L}}</time> '},1145:function(e,t){e.exports=" <time :datetime=value>{{value | dt L LT}}</time> "},1146:function(e,t){e.exports=" <del v-if=item.deleted :title=\"_('This item has been deleted')\" :datetime=item.deleted>{{value}}</del> <span v-else>{{value}}</span> "},1147:function(e,t){e.exports=' <span v-for="label in labels" class="label label-{{label | color}}"> {{label | format}} </span> '},1148:function(e,t){e.exports=" <span class=badge :class=\"{\n 'bg-green': value > 0,\n 'bg-red': value == 0\n }\">{{value}}</span> "},1149:function(e,t){e.exports=" <i class=\"fa fa-fw fa-{{value ? 'play' : 'stop'}} text-{{value ? 'green' : 'red'}}\"></i> "},1150:function(e,t){e.exports=' <div class="progress progress-sm"> <span class="progress-bar progress-bar-{{ progress_class }}" :style="{width: value * 100 + \'%\'}" :title="_(\'Score:\') + \' \' + value * 100"> </span> </div> '},1151:function(e,t){e.exports=" <time :datetime=value>{{value | since}}</time> "},1152:function(e,t){e.exports="<span>{{value}}</span>"},1153:function(e,t){e.exports=" <img :src=src :width=field.width :height=field.width /> "},1154:function(e,t){e.exports=" <time :datetime=value class=timeago>{{value | timeago}}</time> "},1155:function(e,t){e.exports=' <span class="label label-{{ status.type }}">{{ status.label }}</span> '},1156:function(e,t){e.exports=" <tr class=pointer :class=\"{ 'active': selected }\" @click=item_click(item)> <td v-for=\"field in fields\" track-by=key :class=\"{\n 'text-center': field.align === 'center',\n 'text-left': field.align === 'left',\n 'text-right': field.align === 'right',\n 'ellipsis': field.ellipsis\n }\"> <component :is=\"field.type || 'text'\" :item=item :field=field> </component> </td> </tr> "},1157:function(e,t){e.exports=' <table class="table table-hover datatable"> <thead> <tr> <th v-for="field in fields" :class=classes_for(field) @click=header_click(field) :width="field.width | thwidth"> {{field.label}} <span class="fa fa-fw" v-if=field.sort :class=sort_classes_for(field)></span> </th> </tr> </thead> <tbody> <tr v-for="item in p.data" :track-by=trackBy is=row :item=item :fields=fields :selected="item === selected"> </tr> </tbody> </table> '},1158:function(e,t){e.exports=' <div> <box :title=title :icon=icon :boxclass=boxclasses bodyclass="table-responsive no-padding" footerclass="text-center clearfix" :loading="loading !== undefined ? loading : p.loading" :footer=show_footer> <aside slot=tools> <div class=btn-group v-show=downloads.length> <button type=button class="btn btn-box-tool dropdown-toggle" data-toggle=dropdown aria-expanded=false> <span class="fa fa-download"></span> </button> <ul class=dropdown-menu role=menu> <li v-for="download in downloads"> <a :href=download.url>{{download.label}}</a> </li> </ul> </div> <div class=box-search v-if=p.has_search> <div class=input-group> <input type=text class="form-control input-sm pull-right" style="width: 150px" :placeholder="_(\'Search\')" v-model=search_query debounce=500 @keyup.enter=search> <div class=input-group-btn> <button class="btn btn-sm btn-flat" @click=search> <i class="fa fa-search"></i> </button> </div> </div> </div> </aside> <header class=datatable-header> <slot name=header></slot> </header> <datatable v-if=p.has_data :p=p :fields=fields :track=track> </datatable> <div class="text-center lead" v-if=!p.has_data> {{ empty || _(\'No data\')}} </div> <footer slot=footer> <div :class="{ \'pull-right\': p.pages > 1 }" v-el:footer_container> <slot name=footer></slot> </div> <pagination-widget :p=p></pagination-widget> </footer> </box> </div> '},1159:function(e,t){e.exports=' <ul class="pagination pagination-sm no-margin" v-show="p && p.pages > 1"> <li :class="{ \'disabled\': !p || p.page == 1 }"> <a :title="_(\'First page\')" class=pointer @click=p.go_to_page(1)> &laquo; </a> </li> <li :class="{ \'disabled\': !p || p.page == 1 }"> <a :title="_(\'Previous page\')" class=pointer @click=p.previousPage()> &lsaquo; </a> </li> <li v-for="current in range" :class="{ \'active\': current == p.page }"> <a @click=p.go_to_page(current) class=pointer>{{ current }}</a> </li> <li :class="{ \'disabled\': !p || p.page == p.pages }"> <a :title="_(\'Next page\')" class=pointer @click=p.nextPage()> &rsaquo; </a> </li> <li :class="{ \'disabled\': !p || p.page == p.pages }"> <a :title="_(\'Last page\')" class=pointer @click=p.go_to_page(p.pages)> &raquo; </a> </li> </ul> '},1160:function(e,t,o){var s,a;o(1177),s=o(1101),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1161:function(e,t,o){var s,a;o(1178),s=o(1102),a=o(1143),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1162:function(e,t,o){var s,a;s=o(1103),a=o(1144),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1163:function(e,t,o){var s,a;s=o(1104),a=o(1145),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1164:function(e,t,o){var s,a;s=o(1105),a=o(1146),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1165:function(e,t,o){var s,a;o(1182),s=o(1106),a=o(1147),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1166:function(e,t,o){var s,a;s=o(1107),a=o(1148),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1167:function(e,t,o){var s,a;s=o(1108),a=o(1149),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1168:function(e,t,o){var s,a;s=o(1109),a=o(1150),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1169:function(e,t,o){var s,a;s=o(1110),a=o(1151),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1170:function(e,t,o){var s,a;s=o(1111),a=o(1152),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1171:function(e,t,o){var s,a;o(1179),s=o(1112),a=o(1153),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1172:function(e,t,o){var s,a;s=o(1113),a=o(1154),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1173:function(e,t,o){var s,a;s=o(1114),a=o(1155),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1174:function(e,t,o){var s,a;s=o(1115),a=o(1156),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1175:function(e,t,o){var s,a;o(1180),s=o(1116),a=o(1157),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1176:function(e,t,o){var s,a;s=o(1118),a=o(1159),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1177:function(e,t,o){var s=o(1135);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1178:function(e,t,o){var s=o(1136);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1179:function(e,t,o){var s=o(1137);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1180:function(e,t,o){var s=o(1138);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1181:function(e,t,o){var s=o(1139);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1182:function(e,t,o){var s=o(1140);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1187:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.HarvestSource=t.VALIDATION_STATUS_I18N=t.VALIDATION_STATUS_CLASSES=void 0;var s=o(21),a=_interopRequireDefault(s),i=o(20),r=_interopRequireDefault(i),n=o(46),l=_interopRequireDefault(n),d=o(27),u=_interopRequireDefault(d),c=o(26),p=_interopRequireDefault(c),f=o(39),b=o(133),h=o(19),v=_interopRequireDefault(h),x=(t.VALIDATION_STATUS_CLASSES={pending:"default",accepted:"success",refused:"danger"},t.VALIDATION_STATUS_I18N={pending:(0,b._)("Pending"),accepted:(0,b._)("Accepted"),refused:(0,b._)("Refused")},t.HarvestSource=function(e){function HarvestSource(){return(0,r.default)(this,HarvestSource),(0,u.default)(this,(HarvestSource.__proto__||(0,a.default)(HarvestSource)).apply(this,arguments))}return(0,p.default)(HarvestSource,e),(0,l.default)(HarvestSource,[{key:"fetch",value:function(e){return e=e||this.id||this.slug,this.loading=!0,e?this.$api("harvest.get_harvest_source",{ident:e},this.on_fetched):v.default.error("Unable to fetch HarvestSource: no identifier specified"),this}},{key:"save",value:function(e){return this.id?this.update(this,e):(this.loading=!0,void this.$api("harvest.create_harvest_source",{payload:this},this.on_fetched,this.on_error(e)))}},{key:"update",value:function(e,t){this.loading=!0,this.$api("harvest.update_harvest_source",{ident:this.id,payload:e},this.on_fetched,this.on_error(t))}}]),HarvestSource}(f.Model));t.default=x},1199:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.HarvestJob=t.STATUS_I18N=t.STATUS_CLASSES=void 0;var s=o(21),a=_interopRequireDefault(s),i=o(20),r=_interopRequireDefault(i),n=o(46),l=_interopRequireDefault(n),d=o(27),u=_interopRequireDefault(d),c=o(26),p=_interopRequireDefault(c),f=o(39),b=o(19),h=_interopRequireDefault(b),v=o(133),x=(t.STATUS_CLASSES={pending:"default",initializing:"primary",initialized:"info",processing:"info",done:"success","done-errors":"warning",failed:"danger",deleted:"danger"},t.STATUS_I18N={pending:(0,v._)("Pending"),initializing:(0,v._)("Initializing"),initialized:(0,v._)("Initialized"),processing:(0,v._)("Processing"),done:(0,v._)("Done"),"done-errors":(0,v._)("Done with errors"),failed:(0,v._)("Failed"),deleted:(0,v._)("Deleted")},t.HarvestJob=function(e){function HarvestJob(){return(0,r.default)(this,HarvestJob),(0,u.default)(this,(HarvestJob.__proto__||(0,a.default)(HarvestJob)).apply(this,arguments))}return(0,p.default)(HarvestJob,e),(0,l.default)(HarvestJob,[{key:"fetch",value:function(){return this.id?(this.loading=!0,this.$api("harvest.get_harvest_job",{ident:this.id},this.on_fetched)):h.default.error("Unable to fetch Job"),this}}]),HarvestJob}(f.Model));t.default=x},1300:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.harvest_backends=t.HarvestBackends=void 0;var s=o(21),a=_interopRequireDefault(s),i=o(20),r=_interopRequireDefault(i),n=o(27),l=_interopRequireDefault(n),d=o(26),u=_interopRequireDefault(d),c=o(39),p=t.HarvestBackends=function(e){function HarvestBackends(e){(0,r.default)(this,HarvestBackends);var t=(0,l.default)(this,(HarvestBackends.__proto__||(0,a.default)(HarvestBackends)).call(this,e));return t.$options.ns="harvest",t.$options.fetch="harvest_backends",t}return(0,u.default)(HarvestBackends,e),HarvestBackends}(c.List),f=t.harvest_backends=(new p).fetch();t.default=f},1302:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.STATUS_I18N=t.STATUS_CLASSES=void 0;var s=o(21),a=_interopRequireDefault(s),i=o(20),r=_interopRequireDefault(i),n=o(27),l=_interopRequireDefault(n),d=o(26),u=_interopRequireDefault(d),c=o(39),p=o(19),f=(_interopRequireDefault(p),
2
+ o(133)),b=(t.STATUS_CLASSES={pending:"default",started:"info",done:"success",failed:"danger",skipped:"warning",archived:"warning"},t.STATUS_I18N={pending:(0,f._)("Pending"),started:(0,f._)("Started"),done:(0,f._)("Done"),failed:(0,f._)("Failed"),skipped:(0,f._)("Skipped"),archived:(0,f._)("Archived")},function(e){function HarvestItem(){return(0,r.default)(this,HarvestItem),(0,l.default)(this,(HarvestItem.__proto__||(0,a.default)(HarvestItem)).apply(this,arguments))}return(0,u.default)(HarvestItem,e),HarvestItem}(c.Model));t.default=b},1322:function(e,t,o){var s,a;s=o(1335),a=o(1359),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1334:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(1302),a=o(318),i=_interopRequireDefault(a),r=o(323),n=_interopRequireDefault(r);t.default={components:{Modal:i.default,DatasetCard:n.default},props:{item:Object},events:{"dataset:clicked":function(e){document.location=e.page}},filters:{statusClass:function(e){return s.STATUS_CLASSES[e]},statusI18n:function(e){return s.STATUS_I18N[e]}}}},1335:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(1199),a=o(1302),i=o(39),r=o(1039),n=_interopRequireDefault(r);t.default={name:"JobDetails",props:{job:s.HarvestJob,loading:{type:Boolean,default:void 0},empty:String,withSlot:{type:Boolean,default:!1}},components:{Datatable:n.default},data:function(){var e=this;return{fields:[{label:this._("Remote ID"),key:"remote_id",sort:"remote_id",ellipsis:!0},{label:this._("Logs"),key:function(t){return t.logs.length?t.logs.length+" "+e._("logs"):""},width:80},{label:this._("Status"),key:"status",sort:"status",type:"label",width:100,label_type:function(e){return a.STATUS_CLASSES[e]},label_func:function(e){return a.STATUS_I18N[e]}}],p:new i.PageList({data:this.job.items})}},computed:{title:function(){return this.job.id?"Job "+this.job.id:"Job"}},events:{"datatable:item:click":function(e){this.$dispatch("harvest:job:item:selected",e)}},filters:{statusClass:function(e){return s.STATUS_CLASSES[e]||""},statusI18n:function(e){return s.STATUS_I18N[e]},count:function(e,t){return e?e.filter(function(e){return e.status===t}).length:"-"}},watch:{"job.items":function(e){this.p=new i.PageList({data:e})}}}},1336:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(99),a=_interopRequireDefault(s),i=o(1300),r=(_interopRequireDefault(i),o(1199)),n=_interopRequireDefault(r),l=o(1187),d=_interopRequireDefault(l),u=o(1322),c=_interopRequireDefault(u);t.default={name:"HarvestPreviewView",components:{JobWidget:c.default},props:{source:{type:Object,default:function(){return new d.default}},fromConfig:{type:Boolean,default:!1}},data:function(){return{job:new n.default,loading:!1}},computed:{empty:function(){return this.job.created?this._("No item found"):" "}},methods:{preview:function(){this.loading=!0,this.fromConfig?a.default.harvest.preview_harvest_source_config({payload:this.source},this.onPreviewFetch,this.$root.handleApiError):a.default.harvest.preview_harvest_source({ident:this.source.id},this.onPreviewFetch,this.$root.handleApiError)},onPreviewFetch:function(e){this.job.on_fetched(e),this.loading=!1}}}},1349:function(e,t,o){t=e.exports=o(37)(),t.push([e.id,".job-item-modal .modal-footer{text-align:center!important}","",{version:3,sources:["/./js/components/harvest/item.vue"],names:[],mappings:"AAAA,8BAA8B,2BAA4B,CAAC",file:"item.vue",sourcesContent:[".job-item-modal .modal-footer{text-align:center !important}"],sourceRoot:"webpack://"}])},1358:function(e,t){e.exports=" <modal class=job-item-modal v-ref:modal :class=\"{\n 'modal-success': item.status === 'done',\n 'modal-danger': item.status === 'failed',\n 'modal-warning': item.status === 'skipped'\n }\"> <div class=modal-body> <dl class=clearfix> <dt>{{ _('Remote ID') }}</dt> <dd>{{ item.remote_id }}</dd> <dt>{{ _('Started at') }}</dt> <dd>{{ item.started | dt }}</dd> <dt>{{ _('Ended at') }}</dt> <dd>{{ item.ended | dt }}</dd> <dt>{{ _('Status') }}</dt> <dd><span class=\"label label-{{ item.status | statusClass }}\">{{ item.status | statusI18n }}</span></dd> <dt v-if=item.dataset>{{ _('Dataset') }}</dt> <dd v-if=item.dataset> <dataset-card class=col-xs-12 clickable v-if=item.dataset.id :datasetid=item.dataset.id> </dataset-card> <dataset-card class=col-xs-12 clickable v-if=!item.dataset.id :dataset=item.dataset> </dataset-card> </dd> <dt v-if=item.dataservice>{{ _('Dataservice') }}</dt> <dd v-if=item.dataservice> <div class=card> <div class=card-body> <h4> <a :title=item.dataservice.title :href=item.dataservice.self_web_url> {{ item.dataservice.title | truncate 80 }} </a> <div class=clamp-3>{{{ item.dataservice.description | markdown 180 }}}</div> </h4> </div> </div> </dd> <dt v-if=item.errors.length>{{ _('Errors') }}</dt> <dd v-if=item.errors.length> <div v-for=\"error in item.errors\"> {{{error.message | markdown}}} <pre>{{error.details}}</pre> </div> </dd> <dt v-if=item.logs.length>{{ _('Logs') }}</dt> <dd v-if=item.logs.length> <div v-for=\"log in item.logs\"> {{log.level}} <div>{{log.message}}</div> </div> </dd> </dl> </div> <footer class=modal-footer> <button type=button class=\"btn btn-outline btn-flat pointer\" @click=$refs.modal.close> {{ _('Close') }} </button> </footer> </modal> "},1359:function(e,t){e.exports=' <div> <datatable icon=cog :title=title bodyclass="table-responsive no-padding" :p=p :track=false :loading="loading !== undefined ? loading : job.loading" :fields=fields track=remote_id :empty=empty :tint="job.status | statusClass"> <div class=row slot=header> <div class=col-xs-12 :class="{\'col-lg-6\': job.created}" v-show=withSlot> <slot></slot> </div> <dl class="dl-horizontal col-xs-12" :class="{\'col-lg-6\': withSlot}" v-show=job.created> <dt>{{ _(\'Created at\') }}</dt> <dd>{{ job.created | dt }}</dd> <dt>{{ _(\'Ended at\') }}</dt> <dd>{{ job.ended | dt }}</dd> <dt>{{ _(\'Status\') }}</dt> <dd><span class="label label-{{ job.status | statusClass }}">{{ job.status | statusI18n }}</span></dd> <dt v-if="job.errors && job.errors.length">{{ _(\'Errors\') }}</dt> <dd v-if="job.errors && job.errors.length"> <div v-for="error in job.errors"> <p><strong>{{{error.message | markdown}}}</strong></p> <div v-if=error.details> <code><pre>{{error.details}}</pre></code> </div> </div> </dd> <dt v-if="job.items && job.items.length">{{ _(\'Items\') }}</dt> <dd v-if="job.items && job.items.length"> <span class=text-warning v-tooltip tooltip-placement=top :title="_(\'Number of skipped items\')">{{job.items | count \'skipped\'}}</span> / <span class=text-warning v-tooltip tooltip-placement=top :title="_(\'Number of archived items\')">{{job.items | count \'archived\'}}</span> / <span class=text-danger v-tooltip tooltip-placement=top :title="_(\'Number of failed items\')">{{job.items | count \'failed\'}}</span> / <span class=text-green v-tooltip tooltip-placement=top :title="_(\'Number of succeed items\')">{{job.items | count \'done\'}}</span> / <strong>{{job.items.length}}</strong> </dd> </dl> </div> </datatable> </div> '},1360:function(e,t){e.exports=' <div> <job-widget :job=job :loading=loading :empty=empty with-slot> <div class=text-center> <button class="btn btn-primary btn-flat" @click=preview> <span class="fa fa-cog"></span> {{ _(\'Preview\') }} </button> </div> </job-widget> </div> '},1376:function(e,t,o){var s,a;o(1390),s=o(1334),a=o(1358),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1377:function(e,t,o){var s,a;s=o(1336),a=o(1360),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1390:function(e,t,o){var s=o(1349);"string"==typeof s&&(s=[[e.id,s,""]]);o(38)(s,{sourceMap:!0});s.locals&&(e.exports=s.locals)},1395:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(21),a=_interopRequireDefault(s),i=o(20),r=_interopRequireDefault(i),n=o(27),l=_interopRequireDefault(n),d=o(26),u=_interopRequireDefault(d),c=o(39),p=o(19),f=(_interopRequireDefault(p),function(e){function HarvestJobPage(e){(0,r.default)(this,HarvestJobPage);var t=(0,l.default)(this,(HarvestJobPage.__proto__||(0,a.default)(HarvestJobPage)).call(this,e));return t.$options.ns="harvest",t.$options.fetch="list_harvest_jobs",t}return(0,u.default)(HarvestJobPage,e),HarvestJobPage}(c.ModelPage));t.default=f},1430:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(99),a=_interopRequireDefault(s),i=o(318),r=_interopRequireDefault(i);t.default={components:{Modal:r.default},props:{source:Object},methods:{confirm:function(){var e=this;a.default.harvest.delete_harvest_source({ident:this.source.id},function(t){e.source.fetch(),e.$refs.modal.close()},this.$root.handleApiError)}}}},1432:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(1199),a=o(1039),i=_interopRequireDefault(a),r=o(1395),n=_interopRequireDefault(r),l=["id","created","status"],d=20;t.default={components:{Datatable:i.default},props:{source:Object,current:null},data:function(){return{AVATAR_SIZE:d,title:this._("Jobs"),jobs:new n.default({query:{page_size:10},mask:l}),fields:[{label:this._("Date"),key:"created",sort:"created",type:"datetime"},{label:this._("Status"),key:"status",type:"label",label_type:function(e){return s.STATUS_CLASSES[e]},label_func:function(e){return s.STATUS_I18N[e]}}]}},events:{"datatable:item:click":function(e){return this.$dispatch("harvest:job:selected",e),!0}},watch:{"source.id":function(e){e&&this.jobs.fetch({ident:e})}}}},1433:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(99),a=_interopRequireDefault(s),i=o(318),r=_interopRequireDefault(i);t.default={components:{Modal:r.default},props:{source:Object},data:function(){return{comment:null}},methods:{validate:function(){this.perform_validation("accepted")},reject:function(){this.perform_validation("refused")},perform_validation:function(e){var t=this;return"refused"!==e||this.comment?(this.$els.group.className.replace("has-error",""),!this.$els.group.className.indexOf("has-success")>=0&&(this.$els.group.className+=" has-success"),void a.default.harvest.validate_harvest_source({ident:this.source.id,payload:{state:e,comment:this.comment}},function(e){t.source.on_fetched(e),t.$refs.modal.close()},this.$root.handleApiError)):(this.$els.group.className.replace("has-success",""),void(!this.$els.group.className.indexOf("has-error")>=0&&(this.$els.group.className+=" has-error")))}}}},1469:function(e,t,o){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(1187),a=_interopRequireDefault(s),i=o(1199),r=_interopRequireDefault(i),n=o(1376),l=_interopRequireDefault(n),d=o(57),u=(_interopRequireDefault(d),o(1377)),c=_interopRequireDefault(u),p=o(1611),f=_interopRequireDefault(p),b=o(1322),h=_interopRequireDefault(b),v=o(1081),x=_interopRequireDefault(v),_=["id","name","url","owner","organization","backend","validation{state}","schedule","deleted"];t.default={name:"HarvestSourceView",components:{Preview:c.default,SourceWidget:f.default,JobWidget:h.default,Layout:x.default},data:function(){return{source:new a.default({mask:_}),current_job:null,current_item:null}},computed:{is_validation_pending:function(){return this.source&&this.source.validation&&"pending"===this.source.validation.state},should_validate:function(){return this.is_validation_pending&&this.$root.me.is_admin},display_warning:function(){return this.is_validation_pending&&!this.$root.me.is_admin},badges:function(){return this.source&&this.source.deleted?[{class:"danger",label:this._("Deleted")}]:[]},actions:function actions(){var actions=[{label:this._("Edit"),icon:"pencil",method:this.edit}];return this.$root.me.is_admin&&actions.push({label:this._("Scheduling"),icon:"history",method:this.schedule},{divider:!0}),actions.push({label:this._("Delete"),icon:"trash",method:this.confirm_delete}),actions}},events:{"harvest:job:selected":function(e){return this.current_job=new r.default({data:e}).fetch(),!0},"harvest:job:item:selected":function(e){return this.current_item=e,this.$root.$modal(l.default,{item:e}),!0}},methods:{edit:function(){this.$go({name:"harvester-edit",params:{oid:this.source.id}})},confirm_delete:function(){this.$root.$modal(o(1610),{source:this.source})},validate_source:function(){this.$root.$modal(o(1612),{source:this.source})},schedule:function(){this.$go({name:"harvester-schedule",params:{oid:this.source.id}})}},route:{data:function(){this.source.fetch(this.$route.params.oid)}}}},1527:function(e,t){e.exports=' <modal :title="_(\'Confirm deletion\')" class="modal-danger harvest-delete-modal" v-ref:modal> <div class=modal-body> <p class="lead text-center"> {{ _(\'You are about to delete this harvest source\') }} </p> <p class="lead text-center"> {{ _(\'Are you sure?\') }} </p> </div> <footer class="modal-footer text-center"> <button type=button class="btn btn-danger btn-flat pull-left" @click=$refs.modal.close> {{ _(\'Cancel\') }} </button> <button type=button class="btn btn-warning btn-flat" @click=confirm> {{ _(\'Confirm\') }} </button> </footer> </modal> '},1529:function(e,t){e.exports=" <div> <datatable :title=\"source.name || ''\" icon=tasks boxclass=harvest-jobs-widget :fields=fields :p=jobs :loading=\"source.loading || jobs.loading\" :empty=\"_('No job yet')\"> <header slot=header> {{{ source.description | markdown }}} <dl class=dl-horizontal> <dt v-if=source.owner>{{ _('Owner') }}</dt> <dd v-if=source.owner> <a v-link=\"{name:'user', params: {oid: source.owner.id}}\" :title=\"source.owner | display\"> <img class=avatar :src=\"source.owner | avatar_url AVATAR_SIZE\" :alt=\"source.owner | display\" :width=AVATAR_SIZE :height=AVATAR_SIZE> {{ source.owner | display }} </a> </dd> <dt v-if=source.organization>{{ _('Organization') }}</dt> <dd v-if=source.organization> <a v-link=\"{name:'organization', params: {oid: source.organization.id}}\" :title=\"source.organization | display\"> <img class=avatar :src=\"source.organization | logo_url AVATAR_SIZE\" :alt=\"source.organization | display\" :width=AVATAR_SIZE :height=AVATAR_SIZE> {{ source.organization | display }} </a> </dd> <dt>{{ _('Backend') }}</dt> <dd>{{ source.backend }}</dd> <dt>{{ _('URL') }}</dt> <dd>{{ source.url }}</dd> <dt>{{ _('Scheduling') }}</dt> <dd v-if=source.schedule>{{ source.schedule }}</dd> <dd v-else>{{ _('Not scheduled') }}</dd> <dt>{{ _('Jobs') }}</dt> <dd>{{ jobs.total }}</dd> </dl> </header> </datatable> </div> "},1530:function(e,t){e.exports=" <modal v-ref:modal :title=\"_('Harvest source validation')\" class=\"modal-info harvest-delete-modal\"> <div class=modal-body> <p> {{ _('You are about to validate (or not) this harvest source.') }} {{ _('It means that this source will be harvested regulary.') }} </p> <form role=form> <div class=form-group v-el:group> <label>{{ _('Reason') }}</label> <textarea class=form-control rows=3 v-el:comment :placeholder=\"_('Explain your validation')\" v-model=comment>\n </textarea> </div> </form></div> <footer class=\"modal-footer text-center\"> <button type=button class=\"btn btn-success btn-flat pull-left\" @click=validate> {{ _('Validate') }} </button> <button type=button class=\"btn btn-danger btn-flat\" @click=reject> {{ _('Reject') }} </button> </footer> </modal> "},1566:function(e,t){e.exports=" <div> <layout :title=\"source.name || ''\" :subtitle=\"source.backend || ''\" :actions=actions :badges=badges> <div class=\"alert alert-info\" v-if=should_validate> <div class=\"btn-toolbar pull-right\"> <div class=btn-group> <button class=\"btn btn-danger btn-xs\" @click=confirm_delete>{{ _('Delete') }}</button> </div> <div class=btn-group> <button class=\"btn btn-primary btn-xs\" @click=validate_source>{{ _('Validate') }}</button> </div> </div> {{ _('This harvest source has not been validated') }} </div> <div class=\"alert alert-warning\" v-if=display_warning> {{ _('This harvest source has not been validated') }} </div> <div class=row> <source-widget :source=source :class=\"{\n 'col-xs-12': !current_job,\n 'col-md-4': current_job,\n }\"> </source-widget> <job-widget v-if=current_job :job=current_job class=col-md-8> </job-widget> </div> <div class=row v-if=should_validate> <preview class=col-xs-12 :source=source></preview> </div> </layout> </div> "},1610:function(e,t,o){var s,a;s=o(1430),a=o(1527),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1611:function(e,t,o){var s,a;s=o(1432),a=o(1529),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)},1612:function(e,t,o){var s,a;s=o(1433),a=o(1530),e.exports=s||{},e.exports.__esModule&&(e.exports=e.exports.default),a&&(("function"==typeof e.exports?e.exports.options||(e.exports.options={}):e.exports).template=a)}});
3
+ //# sourceMappingURL=18.1922fd0b2b7fad122991.js.map