diff --git a/app/settings.py b/app/settings.py index 7107e2a..f7b3a94 100644 --- a/app/settings.py +++ b/app/settings.py @@ -101,6 +101,7 @@ PIPELINE_JS = { 'source_filenames': ( 'js/app.js', 'js/forms.js', + 'js/tabs.js', ), 'output_filename': 'js/zuykov.js', }, @@ -108,7 +109,8 @@ PIPELINE_JS = { 'source_filenames': ( 'vendor/angular/angular.js', 'vendor/angular-bootstrap/ui-bootstrap.js', - 'vendor/angular-bootstrap/ui-bootstrap-tpls.js' + 'vendor/angular-bootstrap/ui-bootstrap-tpls.js', + 'vendor/jquery/dist/jquery.min.js', ), 'output_filename': 'js/vendor.js', } @@ -230,6 +232,7 @@ INSTALLED_APPS = ( # 'easy_thumbnails', 'cmsplugin_filer_image', + 'cmsplugin_tabs', # 'parler', 'taggit', 'taggit_autosuggest', diff --git a/media/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png b/media/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png new file mode 100644 index 0000000..37eff40 Binary files /dev/null and b/media/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png differ diff --git a/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__16x16_q85_crop_subsampling-2_upscale.png b/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__16x16_q85_crop_subsampling-2_upscale.png new file mode 100644 index 0000000..61cd3b0 Binary files /dev/null and b/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__16x16_q85_crop_subsampling-2_upscale.png differ diff --git a/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__210x10000_q85_subsampling-2.png b/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__210x10000_q85_subsampling-2.png new file mode 100644 index 0000000..c7e474c Binary files /dev/null and b/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__210x10000_q85_subsampling-2.png differ diff --git a/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__32x32_q85_crop_subsampling-2_upscale.png b/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__32x32_q85_crop_subsampling-2_upscale.png new file mode 100644 index 0000000..fb1fb59 Binary files /dev/null and b/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__32x32_q85_crop_subsampling-2_upscale.png differ diff --git a/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__371x208_q85_crop_subsampling-2_upscale.png b/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__371x208_q85_crop_subsampling-2_upscale.png new file mode 100644 index 0000000..2b74643 Binary files /dev/null and b/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__371x208_q85_crop_subsampling-2_upscale.png differ diff --git a/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__48x48_q85_crop_subsampling-2_upscale.png b/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__48x48_q85_crop_subsampling-2_upscale.png new file mode 100644 index 0000000..f61771c Binary files /dev/null and b/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__48x48_q85_crop_subsampling-2_upscale.png differ diff --git a/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__64x64_q85_crop_subsampling-2_upscale.png b/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__64x64_q85_crop_subsampling-2_upscale.png new file mode 100644 index 0000000..82807e4 Binary files /dev/null and b/media/filer_public_thumbnails/filer_public/5e/53/5e531e62-80cf-4a66-8cd1-71afcda7b20b/phone.png__64x64_q85_crop_subsampling-2_upscale.png differ diff --git a/npm-debug.log b/npm-debug.log new file mode 100644 index 0000000..2c38f12 --- /dev/null +++ b/npm-debug.log @@ -0,0 +1,139 @@ +0 info it worked if it ends with ok +1 verbose cli [ 'node', '/usr/local/bin/npm', '-g', 'install', 'yuglify' ] +2 info using npm@1.4.28 +3 info using node@v0.10.33 +4 verbose cache add [ 'yuglify', null ] +5 verbose cache add name=undefined spec="yuglify" args=["yuglify",null] +6 verbose parsed url { protocol: null, +6 verbose parsed url slashes: null, +6 verbose parsed url auth: null, +6 verbose parsed url host: null, +6 verbose parsed url port: null, +6 verbose parsed url hostname: null, +6 verbose parsed url hash: null, +6 verbose parsed url search: null, +6 verbose parsed url query: null, +6 verbose parsed url pathname: 'yuglify', +6 verbose parsed url path: 'yuglify', +6 verbose parsed url href: 'yuglify' } +7 silly lockFile a15791f5-yuglify yuglify +8 verbose lock yuglify /Users/fefa4ka/.npm/a15791f5-yuglify.lock +9 silly lockFile a15791f5-yuglify yuglify +10 silly lockFile a15791f5-yuglify yuglify +11 verbose addNamed [ 'yuglify', '' ] +12 verbose addNamed [ null, '*' ] +13 silly lockFile e77d10d2-yuglify yuglify@ +14 verbose lock yuglify@ /Users/fefa4ka/.npm/e77d10d2-yuglify.lock +15 silly addNameRange { name: 'yuglify', range: '*', hasData: false } +16 verbose request where is /yuglify +17 verbose request registry https://registry.npmjs.org/ +18 verbose request id b64ae15ba0fed38b +19 verbose url raw /yuglify +20 verbose url resolving [ 'https://registry.npmjs.org/', './yuglify' ] +21 verbose url resolved https://registry.npmjs.org/yuglify +22 verbose request where is https://registry.npmjs.org/yuglify +23 info trying registry request attempt 1 at 20:59:19 +24 http GET https://registry.npmjs.org/yuglify +25 http 200 https://registry.npmjs.org/yuglify +26 silly registry.get cb [ 200, +26 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R16B03)', +26 silly registry.get etag: '"6EX7Y8ZUNLQGJO6A3BVILGV17"', +26 silly registry.get 'content-type': 'application/json', +26 silly registry.get 'cache-control': 'max-age=60', +26 silly registry.get 'content-length': '23910', +26 silly registry.get 'accept-ranges': 'bytes', +26 silly registry.get date: 'Sun, 02 Aug 2015 17:59:19 GMT', +26 silly registry.get via: '1.1 varnish', +26 silly registry.get age: '0', +26 silly registry.get connection: 'keep-alive', +26 silly registry.get 'x-served-by': 'cache-fra1243-FRA', +26 silly registry.get 'x-cache': 'HIT', +26 silly registry.get 'x-cache-hits': '1', +26 silly registry.get 'x-timer': 'S1438538359.464688,VS0,VE483', +26 silly registry.get vary: 'Accept' } ] +27 silly addNameRange number 2 { name: 'yuglify', range: '*', hasData: true } +28 silly addNameRange versions [ 'yuglify', +28 silly addNameRange [ '0.0.1', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4' ] ] +29 verbose addNamed [ 'yuglify', '0.1.4' ] +30 verbose addNamed [ '0.1.4', '0.1.4' ] +31 silly lockFile 2278936e-yuglify-0-1-4 yuglify@0.1.4 +32 verbose lock yuglify@0.1.4 /Users/fefa4ka/.npm/2278936e-yuglify-0-1-4.lock +33 silly lockFile 677ad253-js-org-yuglify-yuglify-0-1-4-tgz https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz +34 verbose lock https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz /Users/fefa4ka/.npm/677ad253-js-org-yuglify-yuglify-0-1-4-tgz.lock +35 verbose addRemoteTarball [ 'https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz', +35 verbose addRemoteTarball '726d5e4af810f741ef21865f6f954c4078a3a45f' ] +36 info retry fetch attempt 1 at 20:59:20 +37 verbose fetch to= /var/folders/cs/sr52sk7s1yd855sf_12mn6dxl770mb/T/npm-72095-pywUKB2P/registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz +38 http GET https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz +39 http 200 https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz +40 silly lockFile 677ad253-js-org-yuglify-yuglify-0-1-4-tgz https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz +41 silly lockFile 677ad253-js-org-yuglify-yuglify-0-1-4-tgz https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz +42 silly lockFile 2278936e-yuglify-0-1-4 yuglify@0.1.4 +43 silly lockFile 2278936e-yuglify-0-1-4 yuglify@0.1.4 +44 silly lockFile e77d10d2-yuglify yuglify@ +45 silly lockFile e77d10d2-yuglify yuglify@ +46 silly resolved [ { name: 'yuglify', +46 silly resolved description: 'cli wrapper for uglify and cssmin used by YUI', +46 silly resolved version: '0.1.4', +46 silly resolved dependencies: { 'uglify-js': '~1.3.4', ycssmin: '~1.0.1', nopt: '~2.1.1' }, +46 silly resolved devDependencies: { 'yui-lint': '~0.1.1', jshint: '~0.9.0', vows: '*' }, +46 silly resolved main: './lib/index.js', +46 silly resolved bin: { yuglify: './bin/yuglify' }, +46 silly resolved scripts: +46 silly resolved { pretest: 'jshint --config ./node_modules/yui-lint/jshint.json ./lib/*.js ./bin/yuglify', +46 silly resolved test: 'vows --spec ./tests/*.js' }, +46 silly resolved preferGlobal: 'true', +46 silly resolved bugs: { url: 'http://github.com/yui/yuglify/issues' }, +46 silly resolved licenses: [ [Object] ], +46 silly resolved repository: { type: 'git', url: 'http://github.com/yui/yuglify.git' }, +46 silly resolved readme: 'yUglify\n=======\n\n`yuglify` is a wrapper around [UglifyJS](https://github.com/mishoo/UglifyJS) and [cssmin](https://github.com/jbleuzen/node-cssmin)\nwith the default YUI configurations on each of them.\n\n\nBuild Status\n------------\n\n[![Build Status](https://secure.travis-ci.org/yui/yuglify.png?branch=master)](http://travis-ci.org/yui/yuglify)\n\n\nCLI Usage\n----------\n\n npm -g install yuglify\n\n`yuglify` has a very simple CLI interface to allow you to compress files from the command line.\n\n yuglify ./lib/*.js #uses shell globbing, won\'t work on Windows\n\nThis will read all passed files and compress them (js or css) and write them back beside the original\nwith the name altered to `-min.js|css`.\n\nRequired\n--------\n\n npm install yuglify\n\n\n```javascript\n\nvar yuglify = require(\'yuglify\');\n\nyuglify.jsmin(\'&|]/.test( value ) ? scope.$eval( value ) : !!value; + + scope.tabs.index = scope.tabs.index || ( active ? index : null ); + + element.bind( 'click', function() { + scope.tabs.index = index; + scope.$$phase || scope.$apply(); + }); + + scope.$watch( 'tabs.index', function() { + element.toggleClass( 'active', scope.tabs.index === index ); + }); + } + }; + }) + + + .directive( 'ngTabBody', function() { + return { + scope: false, + restrict: 'EAC', + require: '^ngTabs', + link: function( scope, element, attributes, controller ) { + var index = controller.getTabBodyIndex(); + + scope.$watch( 'tabs.index', function() { + element.toggleClass( attributes.ngTabBody + ' show', scope.tabs.index === index ); + }); + } + }; + }); \ No newline at end of file diff --git a/zsite/static/less/main.less b/zsite/static/less/main.less index 7723005..5195e0a 100644 --- a/zsite/static/less/main.less +++ b/zsite/static/less/main.less @@ -26,6 +26,8 @@ @import url(http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic|Roboto+Slab:700,400&subset=cyrillic-ext,latin); +@import 'tabs.less'; + .breadcrumb { padding: 0; diff --git a/zsite/static/less/service.less b/zsite/static/less/service.less index bd0919b..eab06fd 100644 --- a/zsite/static/less/service.less +++ b/zsite/static/less/service.less @@ -201,7 +201,7 @@ } } - .tab-body { + #patents-example-lamp { background: url('/static/imgs/blueprint_bg.png') no-repeat; background-size: cover; @@ -235,7 +235,7 @@ - .patents-example-lamp { + #patents-example-lamp { .patent-visual { width: 30%; diff --git a/zsite/static/less/tabs.less b/zsite/static/less/tabs.less new file mode 100644 index 0000000..891f115 --- /dev/null +++ b/zsite/static/less/tabs.less @@ -0,0 +1,20 @@ +.tabs-list { + li.active { + a { + text-decoration: none; + color: #000; + } + } + + li { + vertical-align: top; + } +} + +.tab-body { + display: none; +} + +.tab-body.ng-show { + display: block; +} \ No newline at end of file diff --git a/zsite/templates/cmsplugin_tabs/tabs.html b/zsite/templates/cmsplugin_tabs/tabs.html new file mode 100644 index 0000000..e39ffca --- /dev/null +++ b/zsite/templates/cmsplugin_tabs/tabs.html @@ -0,0 +1,17 @@ +
+ + {% for tab in tabs %} +
+ {{ tab.content|safe }} +
+ {% endfor %} +
+ diff --git a/zsite/templates/menu_header.html b/zsite/templates/menu_header.html index 2474b68..8e946ac 100644 --- a/zsite/templates/menu_header.html +++ b/zsite/templates/menu_header.html @@ -1,9 +1,9 @@ {% load i18n menu_tags cache %} -{{ children.count }} + {% if children|length > 1 %}

{% trans 'Our Services' %}

-