From d56fdf83a7cdc16361f35f073963e36fd7e2228f Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 14 Dec 2012 16:39:26 +0530 Subject: [PATCH] refactored web / all-app now linked in app. no wnframework in website --- public/build.json | 73 ++++++++++++----------- public/css/ui/{views.css => appframe.css} | 49 --------------- public/css/ui/common.css | 21 ++++++- public/css/ui/layout.css | 51 ++++++++++++++++ public/html/app.html | 2 +- public/js/core.js | 38 ------------ public/js/legacy/globals.js | 7 --- public/js/legacy/utils/datatype.js | 11 ++++ public/js/legacy/utils/dom.js | 14 ----- public/js/wn/app.js | 68 +++++---------------- public/js/wn/{ => model}/meta.js | 0 public/js/wn/provide.js | 1 + public/js/wn/ui/messages.js | 2 +- 13 files changed, 136 insertions(+), 201 deletions(-) rename public/css/ui/{views.css => appframe.css} (66%) create mode 100644 public/css/ui/layout.css delete mode 100644 public/js/core.js rename public/js/wn/{ => model}/meta.js (100%) diff --git a/public/build.json b/public/build.json index 679a367198..174913dfc9 100644 --- a/public/build.json +++ b/public/build.json @@ -14,11 +14,9 @@ "public/css/all-web.css": [ "lib/public/css/bootstrap.css", "lib/public/css/legacy/body.css", - "lib/public/css/legacy/dialog.css", "lib/public/css/ui/common.css", + "lib/public/css/ui/layout.css", "lib/public/css/ui/fonts.css", - "lib/public/css/ui/list.css", - "lib/public/css/ui/views.css" ] }, @@ -40,7 +38,8 @@ "lib/public/css/legacy/sidebar.css", "lib/public/css/ui/common.css", "lib/public/css/ui/list.css", - "lib/public/css/ui/views.css", + "lib/public/css/ui/appframe.css", + "lib/public/css/ui/layout.css", "lib/public/css/ui/fonts.css", "lib/public/css/views/tree_grid.css", ] @@ -49,34 +48,7 @@ { "public/js/all-web.js": [ "lib/public/js/lib/bootstrap.min.js", - - "lib/public/js/wn/class.js", - "lib/public/js/wn/provide.js", - "lib/public/js/wn/assets.js", - "lib/public/js/wn/dom.js", - "lib/public/js/wn/meta.js", - "lib/public/js/wn/misc/user.js", - "lib/public/js/wn/misc/utils.js", "lib/public/js/lib/public/json2.js", - "lib/public/js/wn/ui/messages.js", - "lib/public/js/wn/ui/listing.js", - "lib/public/js/wn/views/container.js", - "lib/public/js/wn/views/pageview.js", - "lib/public/js/wn/request.js", - "lib/public/js/core.js", - - "lib/public/js/legacy/globals.js", - "lib/public/js/legacy/utils/datatype.js", - "lib/public/js/legacy/utils/datetime.js", - "lib/public/js/legacy/utils/dom.js", - "lib/public/js/legacy/utils/handler.js", - "lib/public/js/wn/ui/appframe.js", - "lib/public/js/wn/ui/field_group.js", - "lib/public/js/wn/ui/dialog.js", - "lib/public/js/wn/ui/button.js", - "lib/public/js/legacy/widgets/dialog.js", - "lib/public/js/legacy/webpage/loaders.js", - "lib/public/js/wn/app.js" ] }, @@ -89,35 +61,66 @@ "lib/public/js/lib/mousetrap.min.js", "lib/public/js/lib/center_image.js", "lib/public/js/legacy/utils/printElement.js", + "lib/public/js/lib/bootstrap.min.js", + "lib/public/js/lib/public/json2.js", "lib/public/js/lib/tiny_mce_3.5.7/jquery.tinymce.js:concat", "lib/public/js/lib/mousetrap.min.js", + "lib/public/js/wn/provide.js", + "lib/public/js/wn/class.js", + "lib/public/js/wn/assets.js", + "lib/public/js/wn/dom.js", + "lib/public/js/wn/ui/messages.js", + "lib/public/js/wn/ui/listing.js", + "lib/public/js/wn/request.js", "lib/public/js/wn/router.js", + "lib/public/js/wn/app.js", + + "lib/public/js/legacy/globals.js", + "lib/public/js/legacy/utils/datatype.js", + "lib/public/js/legacy/utils/datetime.js", + "lib/public/js/legacy/utils/dom.js", + "lib/public/js/wn/ui/appframe.js", + "lib/public/js/wn/ui/field_group.js", + "lib/public/js/wn/ui/dialog.js", + "lib/public/js/wn/ui/button.js", + "lib/public/js/wn/model/model.js", + "lib/public/js/wn/model/meta.js", "lib/public/js/wn/model/doclist.js", "lib/public/js/wn/model/sync.js", "lib/public/js/wn/model/create_new.js", "lib/public/js/wn/model/perm.js", + "lib/public/js/wn/misc/user.js", + "lib/public/js/wn/misc/utils.js", "lib/public/js/wn/misc/tools.js", + "lib/public/js/wn/misc/about.js", + + "lib/public/js/legacy/utils/handler.js", "lib/public/js/legacy/utils/printElement.js", + "lib/public/js/legacy/widgets/dialog.js", "lib/public/js/legacy/widgets/form/fields.js", - "lib/public/js/wn/ui/field_group.js", + "lib/public/js/legacy/webpage/loaders.js", + + "lib/public/js/wn/upload.js", "lib/public/js/wn/ui/themes.js", "lib/public/js/wn/ui/filters.js", "lib/public/js/wn/ui/search.js", "lib/public/js/wn/ui/tree.js", - "lib/public/js/wn/upload.js", - "lib/public/js/wn/misc/about.js", + + "lib/public/js/wn/views/container.js", + "lib/public/js/wn/views/pageview.js", "lib/public/js/wn/views/doclistview.js", "lib/public/js/wn/views/listview.js", "lib/public/js/wn/views/formview.js", - "lib/public/js/wn/form/formatters.js", "lib/public/js/wn/views/load_reportview.js", "lib/public/js/wn/views/reportview.js", "lib/public/js/wn/views/grid_report.js", "lib/public/js/wn/views/communication.js", + "lib/public/js/wn/form/formatters.js", + "lib/public/js/legacy/webpage/page_header.js", "lib/public/js/legacy/widgets/layout.js", "lib/public/js/legacy/widgets/tags.js", diff --git a/public/css/ui/views.css b/public/css/ui/appframe.css similarity index 66% rename from public/css/ui/views.css rename to public/css/ui/appframe.css index 50153ee53f..2f156b63c6 100644 --- a/public/css/ui/views.css +++ b/public/css/ui/appframe.css @@ -1,52 +1,3 @@ -h5 { - margin-bottom: 0px; -} - -.layout_wrapper, .layout-wrapper { - -moz-box-shadow: 0px 0px 3px rgba(0,0,0,0.9); - -webkit-box-shadow: 0px 0px 3px rgba(0,0,0,0.9); - box-shadow: 0px 0px 3px rgba(0,0,0,0.9); - background-color: #fff; - padding: 15px; -} - -.layout-wrapper-appframe { - padding: 0px; -} - -.layout-main { - padding: 15px; - background-color: #fff; -} - -.layout-wrapper-background { - background-color: #f2f2f2 !important; - padding: 0px; -} - -.layout-main-section { - width: 71%; - float: left; - padding: 15px; - background-color: #FFF; - min-height: 540px; - -moz-box-shadow: 1px 0px 1px #ccc; - -webkit-box-shadow: 1px 0px 1px #ccc; - box-shadow: 1px 0px 1px #ccc; -} - -.layout-side-section { - width: 22%; - /*float: right;*/ - color: #606060; - overflow-x: hidden; - padding: 15px; - min-height: 540px; -} - -.breadcrumb-area, .breadcrumb-area span { - vertical-align: middle; -} div.appframe-titlebar { padding: 6px; diff --git a/public/css/ui/common.css b/public/css/ui/common.css index 40daab5f59..cdf0c16721 100644 --- a/public/css/ui/common.css +++ b/public/css/ui/common.css @@ -29,12 +29,29 @@ a { visibility: hidden; } +/* alert */ + + +#alert-container { + position: fixed; + bottom: 8px; + right: 8px; + z-index: 10; +} + #alert-container .alert { -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + + overflow: hidden; + max-width: 400px; + text-overflow: ellipsis; + white-space: nowrap; } +/* avatar */ + .avatar { display: inline-block; vertical-align: middle; @@ -67,9 +84,7 @@ a { width: 72px; } -.layout-main-section h4 { - margin-bottom: 3px; -} +/* slickgrid */ ..slick-cell { font-size: 12px; diff --git a/public/css/ui/layout.css b/public/css/ui/layout.css new file mode 100644 index 0000000000..8a5e56db31 --- /dev/null +++ b/public/css/ui/layout.css @@ -0,0 +1,51 @@ +/* layout */ + +h5 { + margin-bottom: 0px; +} + +.layout_wrapper, .layout-wrapper { + -moz-box-shadow: 0px 0px 3px rgba(0,0,0,0.9); + -webkit-box-shadow: 0px 0px 3px rgba(0,0,0,0.9); + box-shadow: 0px 0px 3px rgba(0,0,0,0.9); + background-color: #fff; + padding: 15px; +} + +.layout-wrapper-appframe { + padding: 0px; +} + +.layout-main { + padding: 15px; + background-color: #fff; +} + +.layout-wrapper-background { + background-color: #f2f2f2 !important; + padding: 0px; +} + +.layout-main-section { + width: 71%; + float: left; + padding: 15px; + background-color: #FFF; + min-height: 540px; + -moz-box-shadow: 1px 0px 1px #ccc; + -webkit-box-shadow: 1px 0px 1px #ccc; + box-shadow: 1px 0px 1px #ccc; +} + +.layout-side-section { + width: 22%; + /*float: right;*/ + color: #606060; + overflow-x: hidden; + padding: 15px; + min-height: 540px; +} + +.layout-main-section h4 { + margin-bottom: 3px; +} \ No newline at end of file diff --git a/public/html/app.html b/public/html/app.html index 430583de79..24debcdc20 100644 --- a/public/html/app.html +++ b/public/html/app.html @@ -18,7 +18,7 @@ } window.app = true; - + diff --git a/public/js/core.js b/public/js/core.js deleted file mode 100644 index 54644792e8..0000000000 --- a/public/js/core.js +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) 2012 Web Notes Technologies Pvt Ltd (http://erpnext.com) -// -// MIT License (MIT) -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF -// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE -// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// - -// find files changed since last version - -if(!console) { - var console = { - log: function(txt) { - // suppress - } - } -} - -/* start the application */ -$(document).ready(function() { - wn.assets.check(); - wn.provide('wn.app'); - $.extend(wn.app, new wn.Application()); -}); diff --git a/public/js/legacy/globals.js b/public/js/legacy/globals.js index a819a51180..5a30516ace 100644 --- a/public/js/legacy/globals.js +++ b/public/js/legacy/globals.js @@ -39,14 +39,7 @@ var top_index=91; // form var _f = {}; - -// print var _p = {}; - -// email -var _e = {}; - -// report buidler var _r = {}; var FILTER_SEP = '\1'; diff --git a/public/js/legacy/utils/datatype.js b/public/js/legacy/utils/datatype.js index eaaed74fca..9474222d2d 100644 --- a/public/js/legacy/utils/datatype.js +++ b/public/js/legacy/utils/datatype.js @@ -144,6 +144,17 @@ function replace_newlines(t) { return t?t.replace(/\n/g, '
'):''; } +function cint(v, def) { + v=v+''; + v=lstrip(v, ['0']); + v=parseInt(v); + if(isNaN(v))v=def?def:0; return v; +} +function validate_email(id) { + if(strip(id.toLowerCase()).search("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?")==-1) return 0; else return 1; } +function validate_spl_chars(txt) { + if(txt.search(/^[a-zA-Z0-9_\- ]*$/)==-1) return 1; else return 0; } + function cstr(s) { if(s==null)return ''; return s+''; diff --git a/public/js/legacy/utils/dom.js b/public/js/legacy/utils/dom.js index 19361e096c..a349b3ca18 100644 --- a/public/js/legacy/utils/dom.js +++ b/public/js/legacy/utils/dom.js @@ -191,20 +191,6 @@ function add_sel_options(s, list, sel_val, o_style) { } } -function cint(v, def) { - v=v+''; - v=lstrip(v, ['0']); - v=parseInt(v); - if(isNaN(v))v=def?def:0; return v; -} -function validate_email(id) { - if(strip(id.toLowerCase()).search("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?")==-1) return 0; else return 1; } -function validate_spl_chars(txt) { - if(txt.search(/^[a-zA-Z0-9_\- ]*$/)==-1) return 1; else return 0; } - -function d2h(d) {return cint(d).toString(16);} -function h2d(h) {return parseInt(h,16);} - var $n = '\n'; function set_title(t) { document.title = (wn.title_prefix ? (wn.title_prefix + ' - ') : '') + t; diff --git a/public/js/wn/app.js b/public/js/wn/app.js index 898ed3563e..5e3cae5c9b 100644 --- a/public/js/wn/app.js +++ b/public/js/wn/app.js @@ -20,63 +20,25 @@ // OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // +if(!console) { + var console = { + log: function(txt) { + // suppress + } + } +} + +$(document).ready(function() { + wn.assets.check(); + wn.provide('wn.app'); + $.extend(wn.app, new wn.Application()); +}); + wn.Application = Class.extend({ init: function() { - var me = this; - if(window.app) { - this.load_app_js(function() { me.load_startup() }); - } else { - this.load_startup(); - } + this.load_startup(); }, - load_app_js: function(callback) { - var all_app = localStorage.getItem("all-app"); - - if(all_app) { - wn.dom.eval(all_app); - callback(); - return; - } - - var dialog = new wn.ui.Dialog({ - title: "Loading...", - width: 500, - user_cannot_cancel: true - }); - - dialog.show(); - - wn.messages.waiting(dialog.body, "", 5); - var bar = $(dialog.body).find(".bar"); - $.ajax({ - url: "js/all-app.js", - success: function(data, status, xhr) { - // add it to localstorage - localStorage.setItem('all-app', xhr.responseText); - dialog.hide(); - callback(); - }, - xhr: function() { - var xhr = jQuery.ajaxSettings.xhr(); - interval = setInterval(function() { - if(xhr.readyState > 2) { - var total = parseInt(xhr.getResponseHeader('Content-Length')); - var completed = parseInt(xhr.responseText.length); - var percent = (100.0 / total * completed).toFixed(2); - bar.css('width', (percent < 10 ? 10 : percent) + '%'); - } - }, 50); - wn.last_xhr = xhr; - return xhr; - }, - error: function(xhr, status, e) { - console.log(e.message); - eval(xhr.responseText); - } - }); - - }, load_startup: function() { var me = this; if(window.app) { diff --git a/public/js/wn/meta.js b/public/js/wn/model/meta.js similarity index 100% rename from public/js/wn/meta.js rename to public/js/wn/model/meta.js diff --git a/public/js/wn/provide.js b/public/js/wn/provide.js index 21b8c3df3b..3fe2ef8cf5 100644 --- a/public/js/wn/provide.js +++ b/public/js/wn/provide.js @@ -42,4 +42,5 @@ wn._ = function(txt) { wn.provide("locals"); wn.provide("wn.settings"); +wn.provide("wn.utils"); wn.provide("wn.ui"); \ No newline at end of file diff --git a/public/js/wn/ui/messages.js b/public/js/wn/ui/messages.js index c5c693740e..40b5994d7d 100644 --- a/public/js/wn/ui/messages.js +++ b/public/js/wn/ui/messages.js @@ -86,10 +86,10 @@ function show_alert(txt, add_class) { var div = $('
\ ×'+ txt +'
') .appendTo('#alert-container') - .addClass(add_class); div.find('.close').click(function() { $(this).parent().remove(); return false; }); + div.delay(7000).fadeOut(500); return div; } \ No newline at end of file