You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
3.4 KiB
81 lines
3.4 KiB
/** @odoo-module **/
|
|
import { registry } from "@web/core/registry";
|
|
import { session } from "@web/session";
|
|
import { _t } from "@web/core/l10n/translation";
|
|
import { Component } from "@odoo/owl";
|
|
import { onWillStart, onMounted, useState,useRef } from "@odoo/owl";
|
|
import { useService } from "@web/core/utils/hooks";
|
|
const actionRegistry = registry.category("actions");
|
|
|
|
export class DropboxDashboard extends Component{
|
|
setup() {
|
|
super.setup(...arguments);
|
|
this.orm = useService('orm')
|
|
this.user = useService("user");
|
|
this.actionService = useService("action");
|
|
this.rootRef = useRef("root");
|
|
var self = this;
|
|
onWillStart(async () => {
|
|
await this.fetch_data();
|
|
});
|
|
}
|
|
/* Appends files retrieved by function(import_files) to div files */
|
|
async fetch_data(){
|
|
var self = this.actionService;
|
|
this.orm.call('dropbox.dashboard','action_import_files',['']
|
|
).then(function (result) {
|
|
if(result[0]=='e')
|
|
{
|
|
self.doAction({
|
|
'type': 'ir.actions.client',
|
|
'tag': 'display_notification',
|
|
'params': {
|
|
'message': 'Failed to Load Files [ '+result[1]+' ]',
|
|
'type': 'warning',
|
|
'sticky': false,
|
|
}
|
|
})
|
|
}
|
|
else if(!result){
|
|
self.doAction({
|
|
'type': 'ir.actions.client',
|
|
'tag': 'display_notification',
|
|
'params': {
|
|
'message': 'Please setup Access Token',
|
|
'type': 'warning',
|
|
'sticky': false,
|
|
}
|
|
})
|
|
}
|
|
else{
|
|
$('#files').empty();
|
|
var alt_src = "'dropbox_integration/static/src/img/file.png'"
|
|
$.each(Object.keys(result),function(index, name){
|
|
$('#files').append('<div class="col-sm-6 card dropbox_card" align="center"><a class="card-image-text dropbox_text" href="'+result[name]+'"><img class="card-img-top drop_box_image" align="center" src="'+result[name]+'" onerror="this.src='+alt_src+';"/<br/><br/>'+name+'</a></div>');
|
|
});
|
|
}
|
|
});
|
|
}
|
|
/* Calls upload function on click of upload */
|
|
upload(ev) {
|
|
var self = this;
|
|
self.actionService.doAction({
|
|
name: "Upload to Dropbox",
|
|
type: 'ir.actions.act_window',
|
|
res_model: 'dropbox.upload',
|
|
view_mode: 'form',
|
|
view_type: 'form',
|
|
views: [[false, 'form']],
|
|
target: 'new',
|
|
});
|
|
}
|
|
/* Search console function */
|
|
search_file (ev) {
|
|
var value = $('.header-search-input').val().toLowerCase()
|
|
$('.card').filter(function () {
|
|
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
|
|
});
|
|
}
|
|
}
|
|
DropboxDashboard.template = "DropboxDashboard"
|
|
registry.category("actions").add("dropbox_dashboard", DropboxDashboard)
|
|
|